/* Suzies Camp: what theme.json can't express (02-DESIGN-SYSTEM section 6).
   Layout values follow design/static-mockup (the approved A4 dark-blue homepage). */

:root {
	--sc-ink: var(--wp--preset--color--ink);
	--sc-ink-soft: var(--wp--preset--color--ink-soft);
	--sc-muted: var(--wp--preset--color--muted);
	--sc-line: var(--wp--preset--color--line);
	--sc-line-strong: var(--wp--preset--color--line-strong);
	--sc-paper: var(--wp--preset--color--paper);
	--sc-navy: var(--wp--preset--color--navy);
	--sc-navy-line: var(--wp--preset--color--navy-line);
	--sc-on-navy-strong: var(--wp--preset--color--on-navy-strong);
	--sc-on-navy-muted: var(--wp--preset--color--on-navy-muted);
	--sc-brown: var(--wp--preset--color--brown);
	--sc-brown-dark: var(--wp--preset--color--brown-dark);
	--sc-gold: var(--wp--preset--color--gold);
	--sc-sign-gold: var(--wp--preset--color--sign-gold);
	--sc-sign-outline: var(--wp--preset--color--sign-outline);
	--sc-cream: var(--wp--preset--color--cream);
	--sc-display: var(--wp--preset--font-family--display);
	--sc-section: var(--wp--preset--spacing--70);
}

html { scroll-padding-top: 64px; }
body { overflow-x: hidden; }

/* Bands touch: no block gap between header, main, footer or home sections. */
.wp-site-blocks > *,
.sc-main > * { margin-block: 0; }

/* Children of the flex/grid components below are spaced by gap, not margins. */
:is(.sc-header__bar, .sc-hero__row, .sc-hero__text, .sc-hero__content, .sc-hero__photo,
	.sc-overnight__row, .sc-overnight__text, .sc-section-head, .sc-panels, .sc-panel,
	.sc-panel__media, .sc-panel__body, .sc-tent-strip, .sc-reviews__row, .sc-reviews__intro,
	.sc-reviews__cards, .sc-review, .sc-daytrips__row, .sc-homebase__row, .sc-homebase__text,
	.sc-amenities__row, .sc-amenities__head, .sc-cta, .sc-footer__row, .sc-footer__info,
	.sc-footer__find, .sc-footer__col, .sc-page-hero) > * { margin-block: 0; }

/* ---------- Shared pieces ---------- */

.is-style-eyebrow {
	margin: 0;
	font-family: var(--sc-display);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.3;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sc-brown);
}
.is-style-eyebrow.sc-on-dark { color: var(--sc-sign-gold); }

.is-style-chip {
	align-self: flex-start;
	width: fit-content;
	margin: 0;
	padding: 3px 10px;
	border-radius: 3px;
	background: var(--sc-brown);
	color: var(--sc-sign-gold);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.4;
}

.is-style-diamonds { margin: 0; padding: 0; list-style: none; }
.is-style-diamonds li { display: flex; gap: 10px; align-items: baseline; }
.is-style-diamonds li::before {
	content: "";
	flex: none;
	width: 10px;
	height: 10px;
	background: var(--sc-gold);
	border: 2px solid var(--sc-brown);
	transform: rotate(45deg);
}
.is-style-diamonds li + li { margin-top: 0; }

.sc-lead { font-size: var(--wp--preset--font-size--lead); color: var(--sc-ink-soft); max-width: 520px; text-wrap: pretty; }
.sc-muted { color: var(--sc-ink-soft); text-wrap: pretty; }
.sc-strong-link a { font-weight: 700; }

.has-navy-background-color :is(h1, h2, h3, h4) { color: var(--sc-on-navy-strong); }
.has-navy-background-color :focus-visible,
.sc-cta :focus-visible { outline-color: var(--sc-sign-gold) !important; }

.sc-section-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px 40px;
	margin-bottom: 36px;
}
.sc-section-head .is-style-eyebrow,
.sc-amenities__head .is-style-eyebrow { margin: 0 0 8px; }
.sc-section-head .is-style-eyebrow + *,
.sc-amenities__head .is-style-eyebrow + * { margin-top: 0; }
.sc-section-head__lead { max-width: 440px; }

/* Map frames (maps are lossless: never cropped) */
.sc-map { min-width: 0; margin: 0; padding: 10px; border-radius: 6px; background: var(--sc-paper); }
.sc-map img { width: 100%; height: auto; border-radius: 3px; }
.sc-map figcaption { margin: 6px 2px 0; font-size: 13px; color: var(--sc-muted); }

/* ---------- Buttons ---------- */

.wp-element-button { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; line-height: 1.2; text-decoration: none; }
.wp-block-button.sc-btn-lg > .wp-element-button { min-height: 52px; padding-inline: 26px; font-size: 17px; }
.wp-block-button.sc-btn-flat > .wp-element-button { border-color: transparent; }

.wp-block-button.is-style-outline > .wp-element-button {
	padding-block: 12px;
	padding-inline: 22px;
	border: 2px solid var(--sc-ink);
	background: transparent;
	color: var(--sc-ink);
}
.wp-block-button.is-style-outline.sc-btn-lg > .wp-element-button { padding-inline: 24px; }
.wp-block-button.is-style-outline > .wp-element-button:hover { background: var(--wp--preset--color--surface); }

.wp-block-button.is-style-on-dark > .wp-element-button {
	border-color: var(--sc-sign-gold);
	background: transparent;
	color: var(--sc-on-navy-strong);
}
.wp-block-button.is-style-on-dark > .wp-element-button:hover { background: rgba(242, 213, 138, 0.14); }

.wp-block-button.is-style-text > .wp-element-button {
	padding-inline: 4px;
	border-color: transparent;
	background: transparent;
	color: var(--wp--preset--color--link);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.wp-block-button.is-style-text > .wp-element-button:hover { color: var(--sc-ink); background: transparent; }

.wp-block-button.sc-btn-dark > .wp-element-button { padding-inline: 20px; border-color: var(--sc-ink); background: var(--sc-ink); color: #fff; }
.wp-block-button.sc-btn-dark > .wp-element-button:hover { background: var(--sc-ink-soft); }

/* External (Campspot) arrow */
.sc-ext > .wp-element-button::after {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Header ---------- */

.sc-header { border-bottom: 1px solid var(--sc-line); }
.sc-header__bar { padding-block: 14px; gap: 16px; }
.sc-header__actions { gap: 8px 28px; }
.sc-nav .wp-block-navigation__container { gap: 8px 28px; }
.sc-nav a { text-decoration: none; }
.sc-nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sc-nav .wp-block-navigation__submenu-container { border: 1px solid var(--sc-line) !important; border-radius: 6px; padding-block: 6px; }

/* ---------- Home: hero ---------- */

.sc-hero { padding-block: 48px 80px; clip-path: inset(0 -100vw); }
.sc-hero__row { display: flex; flex-wrap: wrap; gap: 48px; align-items: stretch; }
.sc-hero__text { position: relative; flex: 1 1 460px; display: flex; flex-direction: column; }
.sc-topo { position: absolute; left: -150px; top: -90px; z-index: 0; width: 760px; height: 700px; pointer-events: none; }
.sc-topo__line { stroke: var(--wp--preset--color--topo); stroke-width: 1.4; }
.sc-topo__index { stroke: var(--wp--preset--color--topo-strong); stroke-width: 2.4; }
.sc-topo__peak { fill: var(--wp--preset--color--topo-strong); }
.sc-hero__content { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 20px; }

.sc-toggle {
	align-self: flex-start;
	display: inline-flex;
	flex-wrap: nowrap;
	gap: 4px;
	padding: 4px;
	border: 2px solid var(--sc-ink);
	border-radius: 999px;
	background: #fff;
}
.sc-toggle__btn {
	min-height: 44px;
	padding: 0 16px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--sc-ink);
	font: 700 15px/1.2 var(--wp--preset--font-family--body);
	cursor: pointer;
}
.sc-toggle__btn[aria-pressed="true"] { background: var(--sc-gold); }
.sc-toggle__btn:focus-visible { outline: 3px solid var(--sc-ink); outline-offset: 2px; }

.sc-hero__eyebrow { display: flex; align-items: center; gap: 10px; }
.sc-hero__eyebrow::before {
	content: "";
	flex: none;
	width: 12px;
	height: 12px;
	background: var(--sc-gold);
	border: 2px solid var(--sc-brown);
	transform: rotate(45deg);
}
.sc-hero__ctas { gap: 12px; }

.sc-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 12px; margin-top: 6px; }
.sc-stat {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--sc-line);
	border-radius: 6px;
	background: #fff;
	color: var(--sc-ink);
	text-decoration: none;
}
.sc-stat:hover { border-color: var(--sc-ink); }
.sc-stat__img { width: 100%; height: 96px; object-fit: cover; }
.sc-stat__body { display: flex; align-items: baseline; gap: 8px; padding: 10px 14px 12px; }
.sc-stat__num { font-family: var(--sc-display); font-weight: 700; font-size: 30px; line-height: 1; color: var(--sc-brown); }
.sc-stat__label { font-weight: 700; }

.sc-hero__photo { position: relative; flex: 1 1 560px; min-width: 0; min-height: 600px; overflow: hidden; border-radius: 6px; background: #5a6e8a; }
.sc-hero__photo > .wp-block-image { position: absolute; inset: 0; margin: 0; }
.sc-hero__photo > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.sc-hero__img--while img { object-position: 55% center; }
.sc-hero__img--tonight img { object-position: center 60%; }
.sc-hero__photo > .sc-hero__img--tonight,
.sc-hero.is-tonight .sc-hero__photo > .sc-hero__img--while { display: none; }
.sc-hero.is-tonight .sc-hero__photo > .sc-hero__img--tonight { display: block; }

.sc-signpost { position: absolute; top: 28px; right: 28px; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.sc-signpost__board {
	padding: 9px 16px;
	border-radius: 4px;
	outline: 2px solid var(--sc-sign-outline);
	outline-offset: -6px;
	background: var(--sc-brown);
	color: var(--sc-sign-gold);
	font-family: var(--sc-display);
	font-weight: 700;
	font-size: 18px;
	letter-spacing: 0.08em;
	white-space: nowrap;
}
.sc-signpost__post { width: 14px; height: 70px; background: var(--sc-brown-dark); }

/* ---------- Home: overnight band ---------- */

.sc-overnight { padding-block: 56px; }
.sc-overnight__row { display: flex; flex-wrap: wrap; gap: 40px 64px; align-items: center; }
.sc-overnight__text { flex: 1 1 420px; display: flex; flex-direction: column; gap: 14px; }
.sc-overnight__text .wp-block-buttons { gap: 12px; margin-top: 6px; }
.sc-h2-band { font-size: var(--wp--preset--font-size--h-2-band); line-height: 1.08; }

.sc-i90 { flex: 1 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.sc-i90__head { display: flex; align-items: center; gap: 12px; }
.sc-shield {
	display: inline-flex;
	flex-direction: column;
	width: 56px;
	overflow: hidden;
	border: 2px solid #fff;
	border-radius: 6px 6px 16px 16px;
	color: #fff;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
}
.sc-shield__top { padding: 2px 0; background: #c8102e; font-size: 8px; letter-spacing: 0.04em; }
.sc-shield__num { padding: 2px 0 6px; background: #003f87; font-size: 19px; }
.sc-i90__caption { font-weight: 600; color: var(--sc-on-navy-muted); }
.sc-i90__strip { position: relative; height: 150px; }
.sc-i90__line { position: absolute; left: 13%; right: 13%; top: 76px; height: 4px; background: var(--sc-sign-gold); }
.sc-i90__stops { margin: 0; padding: 0; list-style: none; }
.sc-i90__stop {
	position: absolute;
	top: 61px;
	width: 130px;
	margin-left: -65px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
}
.sc-i90__stop--gillette { left: 13%; }
.sc-i90__stop--sturgis { left: 54.5%; top: auto; bottom: 55px; width: 110px; margin-left: -55px; gap: 4px; }
.sc-i90__stop--camp { left: 60%; }
.sc-i90__stop--rapid { left: 87%; }
.sc-i90__node { height: 34px; display: flex; align-items: center; }
.sc-i90__dot { width: 18px; height: 18px; border-radius: 50%; border: 3px solid var(--sc-sign-gold); background: var(--sc-navy); }
.sc-i90__star { width: 34px; height: 34px; border-radius: 50%; border: 4px solid var(--sc-on-navy-strong); background: var(--sc-gold); }
.sc-i90__town { font-family: var(--sc-display); font-size: 19px; line-height: 1.15; color: var(--sc-on-navy-strong); }
.sc-i90__town--camp { color: var(--sc-sign-gold); }
.sc-i90__mi { font-size: 15px; }
.sc-i90__mi--camp { font-weight: 700; }

/* ---------- Home: where you'll stay ---------- */

.sc-stay { padding-block: var(--sc-section); border-bottom: 1px solid var(--sc-line); }
.sc-panels { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(460px, 100%), 1fr)); gap: 28px; }
.sc-panel { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--sc-line); border-radius: 6px; background: var(--sc-paper); }
.sc-panel__media { position: relative; height: 300px; }
.sc-panel__img { height: 100%; margin: 0; }
.sc-panel__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.sc-panel__inset { position: absolute; right: 16px; bottom: 16px; width: 36%; height: 120px; margin: 0; }
.sc-panel__inset img { width: 100%; height: 100%; object-fit: cover; border: 4px solid var(--sc-paper); border-radius: 4px; }
.sc-panel__body { flex: 1; display: flex; flex-direction: column; gap: 16px; padding: 26px 28px 30px; }
.sc-panel__title { gap: 6px 14px; align-items: baseline; }
.sc-panel__title > * { margin: 0; }
.sc-panel__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 10px 20px; }
.sc-panel__ctas { gap: 12px; margin-top: auto !important; padding-top: 6px; }

.sc-tent-strip {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 20px;
	margin-top: 20px;
	padding: 16px 22px;
	border: 1px solid var(--sc-line);
	border-radius: 6px;
}
.sc-tent-strip:hover { border-color: var(--sc-ink); }
.sc-tent-strip strong { font-family: var(--sc-display); font-size: 20px; }
.sc-tent-strip__link a { color: var(--sc-ink); font-weight: 700; text-decoration: none; }
.sc-tent-strip__link a::after { content: ""; position: absolute; inset: 0; }

/* ---------- Home: reviews ---------- */

.sc-reviews { padding-block: var(--sc-section); border-bottom: 1px solid var(--sc-line); }
.sc-reviews__row { display: flex; flex-wrap: wrap; gap: 40px 56px; align-items: flex-start; }
.sc-reviews__intro { flex: 1 1 320px; display: flex; flex-direction: column; gap: 16px; }
.sc-rating { display: flex; align-items: center; gap: 16px; margin-top: 6px; }
.sc-rating__value { font-family: var(--sc-display); font-weight: 700; font-size: 72px; line-height: 1; color: var(--sc-brown); }
.sc-rating__detail { display: flex; flex-direction: column; gap: 6px; }
.sc-rating__stars { display: flex; gap: 3px; }
.sc-rating__count { font-weight: 600; }
.sc-reviews__cards { flex: 999 1 600px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; }
.sc-review { display: flex; flex-direction: column; gap: 14px; padding: 24px; border: 1px solid var(--sc-line); border-radius: 6px; background: #fff; }
.sc-review.is-placeholder { border: 2px dashed var(--sc-line-strong); }
.sc-review .is-style-chip { font-size: 13px; }
.sc-review__quote { font-family: var(--sc-display); font-size: 21px; line-height: 1.35; color: var(--sc-ink); }
.sc-review.is-placeholder .sc-review__quote { color: var(--sc-muted); }
.sc-review__cite { margin-top: auto !important; font-size: 14px; font-weight: 600; color: var(--sc-muted); }
.sc-review__cite a { color: inherit; }
.sc-review { margin: 0; }
blockquote.sc-review__quote { margin: 0; padding: 0; border: 0; }
blockquote.sc-review__quote p { margin: 0; }
.sc-review__stars { display: flex; gap: 2px; }
.sc-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; }

/* Day-trip drive-time table (plugin block, /day-trips/) */
.sc-trip-table { margin: 0; max-width: 100%; overflow-x: auto; }
.sc-trip-table table { width: 100%; border-collapse: collapse; font-size: 16px; }
.sc-trip-table caption { margin-bottom: 10px; text-align: left; font-family: var(--sc-display); font-weight: 700; font-size: 20px; }
.sc-trip-table :is(th, td) { padding: 10px 12px; border-bottom: 1px solid var(--sc-line); text-align: left; vertical-align: top; }
.sc-trip-table thead th { border-bottom: 2px solid var(--sc-ink); font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; }
.sc-trip-table tbody th { font-weight: 700; }
.sc-trip-table td:nth-child(2) { white-space: nowrap; }

/* ---------- Home: day trips and home base ---------- */

.sc-daytrips { padding-block: 96px 48px; }
.sc-daytrips .sc-section-head__lead { max-width: 460px; }
.sc-daytrips__row { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.sc-daytrips__row > .sc-map { flex: 999 1 620px; }
.sc-miles {
	flex: 1 1 340px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0 0 0 26px;
	border-left: 3px dashed var(--sc-sign-gold);
	list-style: none;
}
.sc-miles__item { position: relative; display: flex; align-items: baseline; gap: 16px; padding: 7px 0; }
.sc-miles__dot { position: absolute; left: -37px; top: 14px; width: 16px; height: 16px; border-radius: 50%; border: 3px solid var(--sc-sign-gold); background: var(--sc-navy); }
.sc-miles__mi { flex: none; width: 70px; font-family: var(--sc-display); font-weight: 700; font-size: 24px; line-height: 1; color: var(--sc-sign-gold); }
.sc-miles__place { display: block; font-family: var(--sc-display); font-size: 20px; line-height: 1.2; color: var(--sc-on-navy-strong); }
.sc-miles__desc { font-size: 15px; }

.sc-homebase { padding-block: 0 96px; }
.sc-homebase__row { display: flex; flex-wrap: wrap; gap: 40px; align-items: center; margin-top: 8px; padding-top: 48px; border-top: 1px solid var(--sc-navy-line); }
.sc-homebase__text { flex: 1 1 300px; display: flex; flex-direction: column; gap: 14px; }
.sc-homebase__title { font-size: clamp(30px, 3vw, 40px); line-height: 1.08; }
.sc-homebase__row > .sc-map { flex: 999 1 620px; }

/* ---------- Home: amenities ---------- */

.sc-amenities { padding-block: var(--sc-section) var(--wp--preset--spacing--60); }
.sc-amenities__row { display: flex; flex-wrap: wrap; gap: 32px 64px; align-items: flex-start; }
.sc-amenities__head { flex: 1 1 280px; }
.sc-amenity-list { flex: 999 1 560px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 16px 28px; font-size: 18px; }
.sc-amenity-list li { align-items: center; gap: 14px; }
.sc-amenity-list li::before { width: 12px; height: 12px; }


/* ---------- CTA band ---------- */

.sc-cta-wrap { padding-block: 0 var(--sc-section); }
.sc-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 32px 56px;
	align-items: center;
	justify-content: space-between;
	padding: 56px clamp(24px, 5vw, 64px);
	border-radius: 6px;
	outline: 2px solid var(--sc-sign-outline);
	outline-offset: -12px;
	background: var(--sc-brown);
	color: var(--sc-cream);
}
.sc-cta .sc-cta__title { flex: 1 1 420px; font-size: clamp(34px, 3.6vw, 48px); line-height: 1.05; color: var(--sc-cream); }
.sc-cta__buttons { gap: 12px; }
.sc-cta .is-style-on-dark > .wp-element-button { color: var(--sc-cream); font-weight: 600; }

/* ---------- Interior pages ---------- */

.sc-page-content > * { margin-block: 0; }
.sc-page-hero { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.sc-page-hero__row { display: flex; flex-wrap: wrap; gap: 32px 48px; align-items: center; }
.sc-page-hero__row > * { margin-block: 0; }
.sc-page-hero__text { flex: 1 1 420px; display: flex; flex-direction: column; gap: 18px; }
.sc-page-hero__text > * { margin-block: 0; }
.sc-page-hero__text .wp-block-buttons { gap: 12px; }
.sc-page-hero__img { flex: 1 1 460px; min-width: 0; margin: 0; }
.sc-page-hero__img img { width: 100%; height: auto; border-radius: 6px; }
/* Photos are cropped to 4:3. Maps keep their own shape (from the img width/height, which also reserves the space). */
.sc-page-hero__img:not(.is-map) img { aspect-ratio: 4 / 3; object-fit: cover; }

.sc-section { padding-block: var(--wp--preset--spacing--60); }
.sc-section.has-surface-background-color { border-block: 1px solid var(--sc-line); }
.sc-section + .sc-section:not(.has-background) { padding-top: 0; }
.sc-section h2 { font-size: clamp(30px, 3vw, 40px); line-height: 1.1; }
.sc-section h3 { font-size: var(--wp--preset--font-size--h-4); }
.has-navy-background-color.sc-section a:not(.wp-element-button) { color: var(--sc-sign-gold); }

/* Reading column, left-aligned under the left-aligned page header */
.is-layout-constrained > .sc-prose { max-width: 760px; margin-left: 0 !important; }
.sc-prose > * + * { margin-top: 1em; }
.sc-prose > h2 + *, .sc-prose > h3 + * { margin-top: 0.6em; }
.sc-prose > * + h2 { margin-top: 1.6em; }
.sc-prose > * + h3 { margin-top: 1.4em; }

.sc-split { display: flex; flex-wrap: wrap; gap: 32px 48px; align-items: center; }
.sc-split > * { flex: 1 1 380px; min-width: 0; margin-block: 0; }
.sc-split > .wp-block-image img { width: 100%; height: auto; border-radius: 6px; }

.sc-callout { padding: 24px 28px; border: 1px solid var(--sc-line); border-radius: 6px; background: #fff; }
.sc-callout > * { margin-block: 0; }
.sc-callout > * + * { margin-top: 0.8em; }
.sc-todo { padding: 14px 18px; border: 2px dashed var(--sc-line-strong); border-radius: 6px; color: var(--sc-muted); }

/* Spec and rate tables (core table block with class sc-table) */
.sc-table { margin: 0; }
.sc-table table { width: 100%; border-collapse: collapse; font-size: 16px; background: #fff; }
.sc-table :is(th, td) { padding: 10px 14px; border: 0; border-bottom: 1px solid var(--sc-line); text-align: left; vertical-align: top; }
.sc-table thead { border-bottom: 2px solid var(--sc-ink); }
.sc-table thead th { font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; }
.sc-table tbody td:first-child { font-weight: 700; }
.sc-table figcaption { margin-top: 8px; font-size: 14px; color: var(--sc-muted); }

/* Lists of links / guides */
.sc-link-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 10px 28px; }

/* Cabin cards (plugin block) */
.sc-cabins { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 20px; }
.sc-cabin { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--sc-line); border-radius: 6px; background: #fff; }
.sc-cabin__img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.sc-cabin__body { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 22px; }
.sc-cabin__title { margin: 0; font-size: 26px; }
.sc-cabin__facts { gap: 4px; display: grid; font-size: 16px; }
.sc-cabin .wp-block-buttons { margin-top: auto; }

/* FAQ panels (plugin block) */
.sc-faq { display: flex; flex-direction: column; gap: 10px; }
.sc-faq__group { margin: 28px 0 6px; font-size: clamp(26px, 2.6vw, 32px); }
.sc-faq__group:first-child { margin-top: 0; }
.sc-faq__item { border: 1px solid var(--sc-line); border-radius: 6px; background: #fff; }
.sc-faq__q { cursor: pointer; padding: 16px 20px; font-family: var(--sc-display); font-weight: 700; font-size: 20px; line-height: 1.25; list-style-position: outside; }
.sc-faq__q:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 3px; }
.sc-faq__a { padding: 0 20px 18px; }
.sc-faq__a p { margin: 0; }
.sc-faq__a p + p { margin-top: 0.7em; }
.sc-faq__check { color: var(--sc-muted); font-size: 15px; }

/* Amenities with details (plugin block) */
.sc-amenity-list.has-details li { align-items: baseline; }
.sc-amenity-list__detail { display: block; color: var(--sc-ink-soft); font-size: 15px; }

/* Galleries */
.sc-page-content .wp-block-gallery img { border-radius: 4px; }

/* ---------- Posts and archives ---------- */

.sc-page-content { padding-bottom: 0; }
.sc-article { padding-block: var(--wp--preset--spacing--60); }
.sc-article__meta { gap: 6px 16px; color: var(--sc-muted); font-size: 15px; }
.sc-article__meta > * { margin: 0; }
.sc-cards { padding-bottom: var(--wp--preset--spacing--60); }
.sc-card { display: flex; flex-direction: column; gap: 10px; }
.sc-card > * { margin: 0; }
.sc-card__title { font-size: var(--wp--preset--font-size--h-4); }
.sc-card__date { color: var(--sc-muted); font-size: 15px; }

/* ---------- Footer ---------- */

.sc-footer { padding-top: 72px; border-top: 1px solid var(--wp--preset--color--footer-line); }
.sc-footer__row { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; padding-bottom: 48px; }
.sc-footer__row > .sc-map { flex: 999 1 560px; border: 1px solid var(--wp--preset--color--footer-line); }
.sc-footer__info { flex: 1 1 340px; display: flex; flex-direction: column; gap: 22px; }
.sc-footer__find { display: flex; flex-direction: column; gap: 6px; }
.sc-footer__title { font-size: 30px; line-height: 1.1; }
.sc-footer__address { font-size: 19px; font-weight: 600; }
.sc-footer__info .wp-block-buttons { gap: 10px; }
.sc-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); gap: 20px 24px; padding-top: 18px; border-top: 1px solid var(--sc-line-strong); font-size: 15px; }
.sc-footer__col { display: flex; flex-direction: column; gap: 6px; }
.sc-footer__label { font-family: var(--sc-display); font-weight: 700; font-size: 18px; }
.sc-footer__legal { margin: 0; padding: 18px 0 32px; border-top: 1px solid var(--sc-line-strong); color: var(--wp--preset--color--small); font-size: 14px; }

/* ---------- Small screens ---------- */

@media (max-width: 700px) {
	.sc-topo { left: -24px; width: 100vw; height: auto; }
}

@media (max-width: 600px) {
	.sc-i90__stop { width: 88px; margin-left: -44px; }
	.sc-i90__stop--sturgis { width: 88px; margin-left: -44px; }
	.sc-i90__town { font-size: 16px; }
}

@media (max-width: 599px) {
	/* Page-header buttons stack full width on phones, so a late-loading bold font can't re-wrap them and push the photo (layout shift). */
	.sc-page-hero__text .wp-block-button { flex: 1 1 100%; }
	.sc-page-hero__text .wp-block-button > .wp-element-button { width: 100%; justify-content: center; }
	/* Drive-time table: drop "Best season" on phones; the rest scrolls inside its box if needed. */
	.sc-trip-table :is(th, td):nth-child(4) { display: none; }
	.sc-trip-table :is(th, td) { padding: 8px 8px; font-size: 15px; }
	.sc-table { overflow-x: auto; }
	.sc-header__book { order: 1; }
	.sc-nav { order: 2; }
	.sc-header__actions { gap: 12px; }
	.sc-header__book .wp-element-button { min-height: 44px; padding-inline: 14px; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Blog guides ---------- */

.sc-post-stay { margin-top: 2em; }
.sc-post-stay .wp-block-buttons { gap: 12px; }
.sc-sources { font-size: 15px; color: var(--sc-ink-soft); }
.sc-sources li + li { margin-top: 8px; }
.sc-sources a { display: inline-block; padding-block: 3px; } /* tap targets at least 24 px apart */
.sc-article .wp-block-post-featured-image img { border-radius: 6px; }
.sc-article .sc-table { margin-block: 1.2em; }
.sc-article .sc-lead { max-width: none; }
.sc-footer__legal a { display: inline-block; padding-block: 4px; color: inherit; } /* tap targets */
