/* ============================================================================
   Dining vertical (page-vertical template). Reusable across Things-to-Do
   verticals. Sections: hero-vertical (clip wedge + stat rail), ribbon-stats,
   itineraries, spotlight. Map + events sections use the shared section wrapper
   + Vibemap blocks (skinned in vibemap.css — not here).
   Tokens/aliases come from app.css; nothing hard-coded that has a preset.
   ========================================================================== */

/* ── Vertical hero (clip-path wedge + stat rail) ──────────────────────────*/
.hmd-hero-vertical {
	position: relative;
	overflow: hidden;
}
/* Yellow wedge, bleeds to the true right edge past the root padding. */
.hmd-hero-vertical::before {
	content: "";
	position: absolute;
	top: 0;
	right: calc(-1 * var(--wp--style--root--padding-right, 0px));
	width: calc(45% + var(--wp--style--root--padding-right, 0px));
	height: 100%;
	background: var(--yellow);
	clip-path: polygon(15% 0, 100% 0, 100% 100%, 0% 100%);
	z-index: 0;
}
.hmd-hero-vertical__inner {
	position: relative;
	z-index: 1;
}
.hmd-hero-vertical__crumbs {
	font-family: var(--font-display);
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--ink-soft);
	margin: 0 0 2rem;
}
.hmd-hero-vertical__crumbs a { color: var(--ink-soft); text-decoration: none; }
.hmd-hero-vertical__crumbs a:hover { color: var(--ink); }
.hmd-hero-vertical__crumbs span { color: var(--magenta); }

.hmd-hero-vertical__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: end;
}
.hmd-hero-vertical__title {
	font-family: var(--font-display);
	font-weight: 900;
	font-size: clamp(4rem, 13vw, 10rem);
	line-height: 0.82;
	letter-spacing: -0.05em;
	margin: 0 0 1.5rem;
}
.hmd-hero-vertical__title .accent { color: var(--magenta); }
.hmd-hero-vertical__lede {
	font-size: 1.1875rem;
	line-height: 1.55;
	max-width: 560px;
	margin: 0;
	color: var(--ink);
}

/* Right stat rail — overrides the grid's end-alignment to fill the cell and
   centre its content in the wedge; padded left so the big number sits fully on
   the yellow (clear of the diagonal). The title (lead column) stays bottom-anchored. */
.hmd-hero-vertical__rail {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-left: clamp(1.5rem, 5vw, 4rem);
}
.hmd-hero-vertical__stat {
	font-family: var(--font-display);
	font-weight: 900;
	font-size: clamp(3.5rem, 8vw, 6rem);
	line-height: 0.9;
	letter-spacing: -0.04em;
	color: var(--ink);
	margin: 0;
}
.hmd-hero-vertical__stat-label {
	font-family: var(--font-display);
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--ink);
	margin: 0.5rem 0 0;
}
.hmd-hero-vertical__meta { margin-top: 2rem; }
.hmd-hero-vertical__meta-row { align-items: center; }
.hmd-hero-vertical__meta-row p { margin: 0; }
.hmd-hero-vertical__meta-val {
	color: var(--yellow) !important;
	font-weight: 800;
}

/* ── District ribbon (dark stats strip) ───────────────────────────────────*/
.hmd-ribbon__inner {
	gap: 1.5rem;
	align-items: center;
}
.hmd-ribbon__inner > * { margin: 0; }
.hmd-ribbon__lbl {
	font-family: var(--font-display);
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--yellow);
}
.hmd-ribbon__headline {
	font-family: var(--font-display);
	font-weight: 900;
	font-size: 1.375rem;
	letter-spacing: -0.01em;
	line-height: 1.05;
	color: #fff;
}
.hmd-ribbon__right {
	margin-left: auto;
	gap: 2rem;
	align-items: center;
}
.hmd-ribbon__stat { gap: 0.125rem; }
.hmd-ribbon__stat-num {
	font-family: var(--font-display);
	font-weight: 900;
	font-size: 1.25rem;
	line-height: 1;
	color: var(--yellow);
	margin: 0;
}
.hmd-ribbon__stat-label {
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 800;
	opacity: 0.7;
	margin: 0;
}
/* Compact pill CTA (smaller than the default magenta button). */
.hmd-ribbon__cta .wp-block-button__link {
	padding: 0.625rem 1.125rem;
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
}

/* ── Itineraries (dark band) ──────────────────────────────────────────────*/
.hmd-itineraries__title {
	font-family: var(--font-display);
	font-weight: 900;
	font-size: clamp(2.5rem, 6vw, 4rem);
	letter-spacing: -0.03em;
	line-height: 0.95;
	margin: 0 0 1rem;
}
.hmd-itineraries__title .accent { color: var(--pink); }
.hmd-itineraries__lede {
	color: rgba(255, 255, 255, 0.7);
	font-size: 1rem;
	line-height: 1.6;
	max-width: 600px;
	margin: 0 0 3rem;
}
.hmd-itin-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
.hmd-itin-card {
	background: rgba(255, 255, 255, 0.04);
	border-radius: 16px;
	padding: 2rem;
	border-top: 4px solid var(--yellow);
}
.hmd-itin-card:nth-child(2) { border-top-color: var(--magenta); }
.hmd-itin-card:nth-child(3) { border-top-color: var(--teal); }
.hmd-itin-card__icon {
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	display: grid;
	place-items: center;
	color: var(--yellow);
	margin-bottom: 1rem;
}
.hmd-itin-card__icon .hmd-icon { width: 24px; height: 24px; }
.hmd-itin-card__title {
	font-family: var(--font-display);
	font-weight: 900;
	font-size: 1.375rem;
	line-height: 1.1;
	margin: 0 0 0.5rem;
	color: #fff;
}
.hmd-itin-card__desc {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.8125rem;
	line-height: 1.6;
	margin: 0 0 1.25rem;
}
.hmd-itin-card__stops {
	padding-left: 1.125rem;
	margin: 0;
	display: grid;
	gap: 0.75rem;
}
.hmd-itin-card__stops li {
	font-size: 0.8125rem;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.85);
}
.hmd-itin-card__stops li b { color: #fff; font-weight: 800; }

/* ── Vendor spotlight ─────────────────────────────────────────────────────*/
.hmd-spotlight__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
.hmd-spotlight__img {
	aspect-ratio: 5 / 6;
	border-radius: 16px;
	background: var(--coral);
	overflow: hidden;
}
.hmd-spotlight__title {
	font-family: var(--font-display);
	font-weight: 900;
	font-size: clamp(2rem, 5vw, 3.5rem);
	letter-spacing: -0.03em;
	line-height: 0.95;
	margin: 0 0 1.25rem;
}
.hmd-spotlight__quote {
	border-left: 4px solid var(--magenta);
	padding: 0.5rem 0 0.5rem 1.25rem;
	margin: 1.5rem 0;
}
.hmd-spotlight__quote p {
	font-family: var(--font-display);
	font-style: italic;
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.4;
	margin: 0;
}
.hmd-spotlight__quote cite {
	display: block;
	margin-top: 1rem;
	font-family: var(--font-body);
	font-style: normal;
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--ink-soft);
}
.hmd-spotlight__cta { margin-top: 2rem; gap: 0.75rem; }

/* ── Responsive ───────────────────────────────────────────────────────────*/
@media (max-width: 900px) {
	.hmd-hero-vertical::before { width: 100%; opacity: 0.5; }
	.hmd-hero-vertical__grid { grid-template-columns: 1fr; }
	.hmd-hero-vertical__rail { padding-bottom: 0; }
	.hmd-itin-grid { grid-template-columns: 1fr; }
	.hmd-spotlight__grid { grid-template-columns: 1fr; }
	.hmd-ribbon__inner { gap: 1rem; }
	.hmd-ribbon__right { margin-left: 0; width: 100%; }
}
@media (max-width: 600px) {
	.hmd-ribbon__right { flex-wrap: wrap; gap: 1.25rem; }
}
