@charset "UTF-8";

/* UI */

a, button,
.a, .button {
	cursor: pointer;
}

a {
	text-decoration: none;
	color: inherit;
}

a:hover {
	text-decoration: unset;
}

input, button {
	font-family: inherit;
	font-size: inherit;
}

button:focus:not(:focus-visible),
.button:focus:not(:focus-visible) {
	outline: none;
}

button,
.button {
	background: none;
	border: none;
	color: var(--blue);
	padding: .25rem .5rem;
	display: flex;
	align-items: center;
	max-width: max-content;
}

:is(button,.button) > span {
	display: inline-block;
}

button [class*='fa-'],
.button [class*='fa-'] {
	color: inherit;
}

/* UI -> OUTLINED BUTTONS */

:is(button,.button):is(.border,.primary) {
	border-radius: var(--radius);
	min-height: var(--min-button);
	padding-block: .3em;
	transition: .5s ease-out;
	border: none;
	--offset: 0;
}

:is(button,.button):is(.border,.primary)::before {
	border-width: var(--border-1);
	border-style: solid;
	border-radius: inherit;
	content: "";
	display: block;
	position: absolute;
	top: var(--offset);
	left: var(--offset);
	right: var(--offset);
	bottom: var(--offset);
	transition-duration: .2s;
	z-index: 1;
}

:is(button,.button):is(.border,.primary) [class*='fa-'] {
	color: inherit;
}

:is( button, .button ):is( .border, .primary ):is( :hover, :focus ) {
	transition-duration: .3s;
	--offset: calc(-2 * var(--border-1));
}

:is( button, .button ).border {
	color: var(--blue);
	position: relative;
	margin-block: 1rem;
	font-weight: 549;
	padding-inline: 1rem;
}

:is(button,.button).border::before {
	border-color: currentColor;
	color: inherit;
}

/* UI -> PRIMARY BUTTONS */

button.primary,
.button.primary {
	padding-inline: 1.25rem;
	position: relative;
	background: var(--blue);
	color: white;
	font-size: 1em;
	font-weight: bold;
}

button.primary::before,
.button.primary::before {
	border-color: var(--text-1);
}

:is( button, .button ).primary:is( :focus, :hover ) {
	background: var(--red);
}

/* UI -> SUBTLE BUTTONS */

button.a,
.button.a {
	font-size: var(--font-size-mini);
	font-family: var(--label-font);
	font-weight: 700;
	letter-spacing: .075em;
	padding-inline: 0;
	padding-block: .5rem;
	text-transform: uppercase;
}

:is(button,.button).a [class*='fa-'] {
	font-size: 1rem;
}

:is(a,button) [class*='-right'] {
	transition-duration: .2s;
	transition-timing-function: var(--spring-easing);
}
:is(a,button):hover [class*='-right'] {
	transform: translateX(.25em);
}

/* UI -> drawers */

summary {
	padding-block: .5rem;
	font-weight: 700;
	display: flex;
	min-height: var(--min-button);
}

summary + * {
	margin-top: 0;
}

details > *,
summary [class*='-right'] {
	transition-duration: .2s;
}

summary [class*='-right'] {
	margin-left: .5rem;
}

details[open] > summary [class*='-right'] {
	rotate: 90deg;
}

/* UI -> cards */

.card {
	border-radius: var(--radius);
	border: var(--border);
	box-shadow: var(--shadow);
	background: var(--back-1);
	--padding: clamp(1rem, .9rem + 1vw, 2rem);
}

.card > :not(:is(img,figure)) {
	margin-inline: var(--padding);
	margin-block: var(--padding);
}

/* UI -> Special cases */

.hours {
	display: flex;
}

.hours:is(.open,.opening) {
	color: var(--green);
}
.hours.closing {
	color: var(--yellow-700);
}
.hours.closed {
	color: var(--text-2);
}

.hours [class*='fa-'] {
	color: inherit !important;
}

.hours > div {
	white-space: initial;
}

.hours span {
	white-space: nowrap;
}

.hours span:not(.status) {
	color: var(--text-2) !important;
}

::placeholder {
	opacity: 1;
	color: var(--text-3);
}

/* GRAPHICS */

figure {
	margin: 0;
}

/* i {
	font: var(--fa-font-regular);
} */

[class*='fa-'] + *,
* + [class*='fa-'] {
	margin-left: .5rem;
}

.bdr {
	border: var(--border);
	border-radius: var(--radius);
}

img {
	display: block;
	width: 100%;
}

figure {
	margin: 0;
}
figure img {
	display: block;
	width:100%
}



/* MAIN LAYOUT */

.body,
footer {
	padding-inline: var(--padding);
	max-width: 100vw;
	overflow: hidden;
	display: block;
	grid-template-columns: 1fr;
	column-gap: 1rem;
}

.body > :is(section, .section),
footer {
	grid-column: 1 / -1;
	width: 100%;
}

.body > :is(section, .section) {
	margin-inline: auto;
	box-sizing: border-box;
}

.body > :is(section, .section):first-of-type {
	margin-top: 3%;
}

.body .no-page-padding {
	margin-inline: calc(var(--padding) * -1);
	padding-inline: 2rem;
	width: calc(100% + (var(--padding) * 2));
	grid-column: 1 / -1;
}

footer {
	background: var(--navy);
	color: white;
	margin: 0;
	margin-top: 2rem;
	padding-block: 5rem;
}

footer > div {
	grid-column: 1 / -1;
}

@media (min-width: 40rem) {
	.body {
		display: grid;
		grid-template-columns: 9rem 1fr 9rem;
	}
}

@media (min-width: 70rem) {
	.body > :is(section, .section) {
		max-width: unset;
		grid-column-start: 2;
	}
	.body > .no-page-padding {
		grid-column-start: 1;
	}
}
@media (min-width: 90rem) {
	.body > :is(section, .section),
	footer > div {
		grid-column: 2;
		padding-right: 0;
		max-width: calc(100vw - 9rem - 9rem);
	}
	.body > .no-page-padding {
		grid-column: 1 / -1;
		max-width: calc(100vw);
	}
}