/*
 * Visit Travel Publishing — DEV10 Travel Editorial baseline.
 * Composition only. Palettes, typography, radii, shadows and spacing come from Visit Travel Design tokens
 * (with safe fallbacks). Visual language ported from travel-destination-plugin v3.1.13: full-width page
 * shell, ~1180px page grid, ~980px feature sections, ~780px readable prose, utility rows, setup/fit columns.
 */

/* ---------------------------------------------------------------
 * Entity page shell: theme keeps header/footer; entity content owns the width.
 * ------------------------------------------------------------- */
.vat-entity-page .site-content > .ast-container,
.vat-entity-page #content > .ast-container { max-width: none; width: 100%; padding-left: 0; padding-right: 0; display: block; }
.vat-page {
    --vat-w-wide: var(--vat-content-wide, 1180px);
    --vat-w-feature: var(--vat-content-feature, 980px);
    --vat-w-readable: var(--vat-readable, 780px);
    --vat-gutter: clamp(16px, 4vw, 28px);
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 0 clamp(32px, 6vw, 72px);
    background: var(--vat-color-page, var(--vat-color-background, transparent));
    overflow-x: clip;
}

.vat-block {
    box-sizing: border-box;
    color: var(--vat-color-text, #1f2522);
    margin-block: var(--vat-section-gap, clamp(48px, 7vw, 96px));
    font-family: var(--vat-font-body, inherit);
}
.vat-block *, .vat-block *::before, .vat-block *::after { box-sizing: border-box; }
.vat-block__inner { width: min(var(--vat-content-wide, 1180px), calc(100% - 2 * var(--vat-gutter, 20px))); margin-inline: auto; }
/* All sections share the wide grid's left edge; narrower sections limit their content, not the grid. */
.vat-width--feature > .vat-block__inner > * { max-width: var(--vat-w-feature, 980px); }
.vat-width--readable > .vat-block__inner > * { max-width: var(--vat-w-readable, 780px); }
.vat-block img { max-width: 100%; height: auto; }
.vat-block h1, .vat-block h2, .vat-block h3 {
    color: var(--vat-color-heading, var(--vat-color-text, #1f2522));
    font-family: var(--vat-font-heading, Georgia, serif);
    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}
.vat-block h1 { font-size: clamp(2.5rem, 6vw, 5.4rem); line-height: .98; letter-spacing: -.045em; margin: 0; }
.vat-block h2 { font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: 1.05; letter-spacing: -.03em; margin: 0; }
.vat-block h3 { font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.25; margin: 0; }
.vat-block p, .vat-block li { color: var(--vat-color-muted, #5d6762); line-height: 1.7; }
.vat-eyebrow, .vat-card-label {
    display: inline-block;
    color: var(--vat-color-accent, #3e6b58);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.vat-section-head { max-width: var(--vat-w-readable, 780px); margin-bottom: clamp(20px, 3vw, 34px); }
.vat-section-head .vat-eyebrow { margin-bottom: 10px; }
.vat-section-head__intro { margin: 14px 0 0; font-size: clamp(1rem, 1.3vw, 1.12rem); }
.vat-prose { max-width: var(--vat-w-readable, 780px); font-size: clamp(1.06rem, 1.4vw, 1.2rem); }
.vat-prose p { margin: 0; color: var(--vat-color-text, #2b322e); }
.vat-list { margin: 14px 0 0; padding-left: 1.15rem; }
.vat-list li + li { margin-top: 8px; }
.vat-pill-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.vat-pill-list > span { display: inline-flex; align-items: center; min-height: 34px; padding: 7px 12px; border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-pill, 999px); background: var(--vat-color-surface, #fff); color: var(--vat-color-text, #1f2522); font-size: .88rem; line-height: 1.25; }

/* Hero: two explicit states */
.vat-hero { margin-top: 0; padding-top: clamp(28px, 5vw, 64px); }
.vat-hero__copy { min-width: 0; }
.vat-hero__copy .vat-eyebrow { margin-bottom: 16px; }
.vat-hero__intro { max-width: 680px; margin: 22px 0 0; font-size: clamp(1.08rem, 1.5vw, 1.3rem); color: var(--vat-color-text, #2b322e); }
.vat-hero__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.vat-hero__meta span { padding: 8px 12px; border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-pill, 999px); background: var(--vat-color-surface-soft, #f7f8f6); font-size: .83rem; font-weight: 700; }
.vat-hero--has-media .vat-hero__layout { display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.vat-hero--no-media .vat-hero__layout { display: block; max-width: 920px; }
.vat-hero--no-media .vat-hero__copy { padding-block: clamp(8px, 3vw, 32px); }
.vat-hero--no-media h1 { max-width: 16ch; }
.vat-hero__media { margin: 0; aspect-ratio: 4 / 3.4; overflow: hidden; border-radius: var(--vat-radius-hero, var(--vat-radius-xl, 28px)); box-shadow: var(--vat-shadow-hero, var(--vat-shadow-lg, 0 24px 60px rgba(0,0,0,.12))); background: var(--vat-color-surface-soft, #f5f6f4); }
.vat-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Quick facts: auto-fit, never a forced 5-column strip */
.vat-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 14px; }
.vat-fact { min-width: 0; padding: 17px 19px; border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-card, 18px); background: var(--vat-color-surface, #fff); box-shadow: var(--vat-shadow-card, none); }
.vat-fact__label { display: block; color: var(--vat-color-muted, #66706a); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.vat-fact__value { display: block; margin-top: 9px; color: var(--vat-color-text, #1f2522); font-size: 1rem; line-height: 1.3; }
.vat-fact__note { display: block; margin-top: 8px; color: var(--vat-color-muted, #66706a); font-size: .82rem; }

/* Utility rows (Getting there, Parking, Visit planning, Good to know) */
.vat-utility-rows { border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-utility-row { display: grid; grid-template-columns: minmax(130px, 200px) minmax(0, 1fr); gap: clamp(14px, 3vw, 32px); padding: 16px 0; border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-utility-row__label { color: var(--vat-color-heading, #1f2522); font-weight: 760; line-height: 1.5; }
.vat-utility-row__value { color: var(--vat-color-text, #2b322e); line-height: 1.65; min-width: 0; }
.vat-utility-rows--stacked .vat-utility-row { grid-template-columns: 1fr; gap: 4px; padding: 12px 0; }
.vat-utility-rows--stacked .vat-utility-row__label { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--vat-color-muted, #66706a); }

/* Status + notices */
.vat-status { display: inline-flex; align-items: baseline; gap: 10px; margin: 0 0 18px; padding: 8px 14px; border-radius: var(--vat-radius-pill, 999px); background: var(--vat-color-surface-soft, #f2f4f1); }
.vat-status__label { color: var(--vat-color-muted, #66706a); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vat-status strong { color: var(--vat-color-heading, #1f2522); }
.vat-status--difficult, .vat-status--very_difficult { background: var(--vat-color-warning-soft, #fbf1e6); }
.vat-notice { margin: 18px 0 0; padding: 14px 16px; border-left: 3px solid var(--vat-color-accent, #3e6b58); border-radius: 0 var(--vat-radius-sm, 8px) var(--vat-radius-sm, 8px) 0; background: var(--vat-color-surface-soft, #f5f6f4); color: var(--vat-color-text, #2b322e); }
.vat-notice--warning { border-left-color: var(--vat-color-warning, #c07a2c); }

/* Numbered feature rows (What to expect / Top experiences) */
.vat-experience-list { display: grid; gap: 0; border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-experience { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: clamp(14px, 3vw, 28px); padding: clamp(20px, 3vw, 28px) 0; border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-experience__number { color: var(--vat-color-accent, #3e6b58); font-family: var(--vat-font-heading, Georgia, serif); font-size: 1.5rem; line-height: 1.1; }
.vat-experience p { margin: 8px 0 0; max-width: 68ch; }

/* Where to stay */
.vat-stay-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 14px; }
.vat-stay-card { padding: 22px; border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-card, 18px); background: var(--vat-color-surface, #fff); box-shadow: var(--vat-shadow-card, none); }
.vat-stay-card--meta { grid-column: 1 / -1; }
.vat-stay-card .vat-card-label { margin-bottom: 8px; }

/* Setup (Available / Good to know) and Fit (Good for / Not ideal for) */
.vat-setup, .vat-fit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 4vw, 48px); }
.vat-setup--single, .vat-fit--single { grid-template-columns: minmax(0, 1fr); max-width: var(--vat-w-readable, 780px); }
.vat-setup + .vat-setup { margin-top: 24px; }
.vat-utility-rows + .vat-setup { margin-top: 28px; }
.vat-setup__title, .vat-fit__title { margin-bottom: 12px !important; font-family: var(--vat-font-body, inherit) !important; font-size: .8rem !important; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--vat-color-muted, #66706a) !important; }
.vat-marked-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-marked-list li { position: relative; margin: 0; padding: 12px 0 12px 30px; border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); color: var(--vat-color-text, #2b322e); }
.vat-marked-list li::before { position: absolute; left: 2px; top: 12px; font-weight: 800; }
.vat-marked-list--good li::before { content: '✓'; color: var(--vat-color-success, #2f7a4f); }
.vat-marked-list--not li::before { content: '×'; color: var(--vat-color-danger, #a8483a); font-size: 1.15em; line-height: 1.35; top: 10px; }
.vat-marked-list--note li::before { content: '–'; color: var(--vat-color-accent, #3e6b58); }
.vat-fit__family { margin-top: 24px; }

/* Reality check: intentional callout */
.vat-reality { padding: clamp(20px, 3vw, 30px) clamp(20px, 3vw, 32px); border-left: 4px solid var(--vat-color-accent, #3e6b58); border-radius: 0 var(--vat-radius-panel, 18px) var(--vat-radius-panel, 18px) 0; background: var(--vat-color-surface-soft, #f5f6f4); }
.vat-reality .vat-section-head { margin-bottom: 14px; }
.vat-reality h2 { font-size: clamp(1.4rem, 2.4vw, 2rem); }
.vat-reality__narrative { margin: 0; color: var(--vat-color-text, #2b322e); }
.vat-reality__warning { margin: 14px 0 0; color: var(--vat-color-text, #2b322e); }
.vat-reality__crowds { margin: 12px 0 0; }
.vat-reality .vat-marked-list { margin-top: 14px; border-top: 0; }
.vat-reality .vat-marked-list li { padding-block: 6px; border-bottom: 0; }
.vat-reality .vat-marked-list li::before { top: 6px; }

/* Explore around */
.vat-explore-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.vat-explore-card { display: flex; flex-direction: column; min-width: 0; color: inherit; text-decoration: none; border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-card, 18px); overflow: hidden; background: var(--vat-color-surface, #fff); box-shadow: var(--vat-shadow-card, none); transition: transform .2s ease, box-shadow .2s ease; }
.vat-explore-card:not(.vat-explore-card--unlinked):hover, .vat-explore-card:focus-visible { transform: translateY(-2px); box-shadow: var(--vat-shadow-card-hover, 0 16px 38px rgba(0,0,0,.08)); }
.vat-explore-card__media { display: block; aspect-ratio: 16 / 10; background: var(--vat-color-surface-soft, #eef1ee); overflow: hidden; }
.vat-explore-card__media img { width: 100%; height: 100%; object-fit: cover; }
.vat-explore-card__media--placeholder { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--vat-color-surface-soft, #eef1ee), var(--vat-color-surface-strong, #dfe7e2)); }
.vat-explore-card__media--placeholder span { font-family: var(--vat-font-heading, Georgia, serif); font-size: 2.4rem; color: var(--vat-color-accent, #3e6b58); opacity: .7; }
.vat-explore-card__body { display: grid; gap: 6px; padding: 16px 18px 18px; }
.vat-explore-card__body strong { color: var(--vat-color-heading, #1f2522); font-size: 1.12rem; }
.vat-explore-card__note { color: var(--vat-color-muted, #66706a); font-size: .9rem; line-height: 1.5; }
.vat-explore--empty { margin-block: 24px; }
.vat-empty-note { margin: 0; padding: 12px 14px; border: 1px dashed var(--vat-color-border, rgba(31,37,34,.2)); border-radius: var(--vat-radius-sm, 8px); font-size: .88rem; }

/* FAQ */
.vat-faq { display: grid; gap: 0; border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-faq__item { border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); background: transparent; }
.vat-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; padding: 18px 2px; color: var(--vat-color-heading, #1f2522); font-weight: 760; font-size: 1.05rem; }
.vat-faq__item summary:focus-visible { outline: 2px solid var(--vat-color-accent, #3e6b58); outline-offset: 2px; }
.vat-faq__item summary::-webkit-details-marker { display: none; }
.vat-faq__item summary::after { content: '+'; flex: none; color: var(--vat-color-accent, #3e6b58); font-size: 1.3rem; line-height: 1; }
.vat-faq__item[open] summary::after { content: '–'; }
.vat-faq__answer { padding: 0 2px 20px; max-width: var(--vat-w-readable, 780px); }
.vat-faq__answer p { margin: 0; }

/* Final CTA: concluding band */
.vat-final-cta { padding: clamp(32px, 6vw, 72px) clamp(22px, 5vw, 64px); border-radius: var(--vat-radius-panel, 24px); background: var(--vat-color-surface-strong, var(--vat-color-surface-soft, #eef2ef)); text-align: center; }
.vat-final-cta .vat-eyebrow { margin-bottom: 12px; }
.vat-final-cta h2 { max-width: 22ch; margin-inline: auto; }
.vat-final-cta p { max-width: 640px; margin: 16px auto 0; font-size: 1.08rem; }
.vat-final-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
.vat-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; border-radius: var(--vat-radius-button, 999px); text-decoration: none; font-weight: 760; }
.vat-btn--primary { background: var(--vat-color-accent, #3e6b58); color: var(--vat-color-on-accent, #fff); }
.vat-btn--secondary { border: 1px solid var(--vat-color-border-strong, rgba(31,37,34,.28)); color: var(--vat-color-text, #1f2522); background: transparent; }

/* ---------------------------------------------------------------
 * Presentation family: Mediterranean — approved legacy direction
 * ------------------------------------------------------------- */
.vat-family--mediterranean.vat-block--hero .vat-hero__layout { grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr); }
.vat-family--mediterranean.vat-block--hero .vat-hero__media { aspect-ratio: 4 / 5; }
.vat-family--mediterranean.vat-block--quick-facts .vat-facts { margin-top: -26px; position: relative; z-index: 2; }
.vat-family--mediterranean.vat-block--quick-facts .vat-fact { backdrop-filter: blur(8px); }
.vat-variant--visual-steps .vat-experience-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; border-top: 0; }
.vat-variant--visual-steps .vat-experience { border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-card, 18px); padding: 22px; grid-template-columns: 48px minmax(0,1fr); }
.vat-variant--card-grid .vat-stay-card { min-height: 185px; }
.vat-variant--split-guide .vat-info-rows { grid-template-columns: repeat(2, minmax(0,1fr)); }
.vat-variant--soft-panel .vat-reality { max-width: none; }
.vat-variant--scenic-grid .vat-explore-card:first-child { grid-column: span 2; }
.vat-variant--scenic-grid .vat-explore-card:first-child .vat-explore-card__media { aspect-ratio: 16 / 7; }
.vat-variant--scenic-band .vat-final-cta { min-height: 260px; display: flex; flex-direction: column; justify-content: center; }

/* ---------------------------------------------------------------
 * Presentation family: Editorial — approved legacy editorial_travel
 * ------------------------------------------------------------- */
.vat-family--editorial .vat-block__inner { width: min(var(--vat-content-editorial, 1060px), calc(100% - 44px)); }
.vat-family--editorial.vat-block--hero .vat-block__inner { width: min(var(--vat-content-wide, 1180px), calc(100% - 44px)); }
.vat-family--editorial.vat-block--hero .vat-hero__layout { grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); align-items: end; }
.vat-family--editorial.vat-block--hero .vat-hero__media { min-height: 520px; border-radius: var(--vat-radius-md, 14px); }
.vat-variant--inline-strip .vat-facts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); gap: 0; }
.vat-variant--inline-strip .vat-fact { border: 0; border-right: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: 0; padding-inline: 18px; }
.vat-variant--inline-strip .vat-fact:last-child { border-right: 0; }
.vat-variant--readable-column .vat-section-head, .vat-variant--readable-column .vat-prose { margin-inline: auto; }
.vat-variant--numbered-rows .vat-experience { grid-template-columns: 90px minmax(0,1fr); padding-block: 34px; }
.vat-variant--editorial-cards .vat-stay-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.vat-variant--clean-rows .vat-info-rows, .vat-variant--compact-table .vat-planning-grid { display: block; border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-variant--clean-rows .vat-fact, .vat-variant--compact-table .vat-fact { display: grid; grid-template-columns: 210px minmax(0,1fr); gap: 20px; border: 0; border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: 0; padding: 16px 0; }
.vat-variant--bordered-editorial .vat-reality { margin-left: min(8vw, 90px); border-left-width: 4px; border-radius: 0 var(--vat-radius-panel, 18px) var(--vat-radius-panel, 18px) 0; }
.vat-variant--editorial-grid .vat-explore-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.vat-variant--editorial-band .vat-final-cta { border-left: 4px solid var(--vat-color-accent, #3e6b58); border-radius: 0 var(--vat-radius-panel, 18px) var(--vat-radius-panel, 18px) 0; }

/* ---------------------------------------------------------------
 * Presentation family: Urban / City — external reference synthesis
 * ------------------------------------------------------------- */
.vat-family--urban .vat-block__inner { width: min(var(--vat-content-wide, 1240px), calc(100% - 36px)); }
.vat-family--urban.vat-block--hero .vat-hero__layout { grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr); gap: 18px; }
.vat-family--urban.vat-block--hero .vat-hero__copy { padding: clamp(24px, 5vw, 64px); border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-card, 16px); background: var(--vat-color-surface, #fff); }
.vat-family--urban.vat-block--hero .vat-hero__media { min-height: 520px; border-radius: var(--vat-radius-card, 16px); }
.vat-variant--dense-cards .vat-facts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 6px; }
.vat-variant--dense-cards .vat-fact { border-radius: var(--vat-radius-sm, 8px); }
.vat-variant--grid-lead .vat-section-head { display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; max-width: none; align-items: end; }
.vat-variant--grid-lead .vat-section-head__intro { margin: 0; }
.vat-variant--modular-grid .vat-experience-list { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; border: 0; }
.vat-variant--modular-grid .vat-experience { display: block; min-height: 190px; padding: 20px; border: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: var(--vat-radius-sm, 8px); }
.vat-variant--modular-grid .vat-experience__number { display: block; margin-bottom: 30px; }
.vat-variant--location-panels .vat-stay-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.vat-variant--location-panels .vat-stay-card { border-radius: var(--vat-radius-sm, 8px); min-height: 170px; }
.vat-variant--location-panels .vat-stay-card--meta { grid-column: span 2; }
.vat-variant--transit-rows .vat-info-rows { display: block; }
.vat-variant--transit-rows .vat-fact { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 20px; border-radius: 0; border-width: 0 0 1px; padding-inline: 0; }
.vat-variant--signal-panel .vat-parking-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.vat-variant--high-contrast-panel .vat-reality { max-width: none; border-width: 2px; }
.vat-variant--city-cards .vat-explore-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.vat-variant--city-cards .vat-explore-card { border-radius: var(--vat-radius-sm, 8px); }
.vat-variant--boxed-accordion .vat-faq { max-width: none; grid-template-columns: repeat(2, minmax(0,1fr)); }
.vat-variant--strong-band .vat-final-cta { border-width: 2px; border-radius: var(--vat-radius-sm, 8px); }

/* ---------------------------------------------------------------
 * Presentation family: Nature / Scenic — external reference synthesis
 * ------------------------------------------------------------- */
.vat-family--nature.vat-block--hero .vat-block__inner { width: min(var(--vat-content-wide, 1320px), calc(100% - 28px)); }
.vat-family--nature.vat-block--hero .vat-hero__layout { position: relative; display: block; min-height: clamp(580px, 72vw, 820px); overflow: hidden; border-radius: var(--vat-radius-hero, 30px); }
.vat-family--nature.vat-block--hero .vat-hero__media { position: absolute; inset: 0; min-height: 100%; border-radius: inherit; box-shadow: none; }
.vat-family--nature.vat-block--hero .vat-hero__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 20%, rgba(0,0,0,.64) 100%); }
.vat-family--nature.vat-block--hero .vat-hero__copy { position: absolute; z-index: 2; inset: auto clamp(24px, 5vw, 72px) clamp(24px, 5vw, 68px); max-width: 820px; }
.vat-family--nature.vat-block--hero .vat-hero__copy h1, .vat-family--nature.vat-block--hero .vat-hero__intro, .vat-family--nature.vat-block--hero .vat-eyebrow, .vat-family--nature.vat-block--hero .vat-hero__meta span { color: var(--vat-color-on-image, #fff); }
.vat-family--nature.vat-block--hero .vat-hero__meta span { border-color: rgba(255,255,255,.3); background: rgba(0,0,0,.22); }
.vat-variant--trail-cards .vat-facts { grid-template-columns: repeat(3, minmax(0,1fr)); }
.vat-variant--trail-cards .vat-fact:nth-child(1), .vat-variant--trail-cards .vat-fact:nth-child(2) { grid-column: span 1; }
.vat-variant--flowing-lead .vat-section-head, .vat-variant--flowing-lead .vat-prose { max-width: 880px; margin-inline: auto; }
.vat-variant--scenic-rows .vat-experience { grid-template-columns: 56px minmax(0,1fr); max-width: 900px; margin-inline: auto; }
.vat-variant--lodge-cards .vat-stay-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.vat-variant--lodge-cards .vat-stay-card { min-height: 210px; }
.vat-variant--route-card .vat-info-rows { grid-template-columns: 1fr; max-width: 920px; }
.vat-variant--route-card .vat-fact { display: grid; grid-template-columns: 200px minmax(0,1fr); gap: 24px; }
.vat-variant--earth-notice .vat-parking-grid { grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 920px; }
.vat-variant--natural-grid .vat-facility-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.vat-variant--field-note .vat-reality { max-width: 860px; margin-inline: auto; }
.vat-variant--landscape-grid .vat-explore-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.vat-variant--landscape-grid .vat-explore-card__media { aspect-ratio: 16 / 8; }
.vat-variant--open-accordion .vat-faq__item { border-width: 0 0 1px; border-radius: 0; }
.vat-variant--scenic-cover-band .vat-final-cta { min-height: 300px; display: flex; flex-direction: column; justify-content: center; }

/* ---------------------------------------------------------------
 * Presentation family: Compact Guide — legacy compact direction
 * ------------------------------------------------------------- */
.vat-family--compact-guide { margin-block: var(--vat-section-gap-compact, 38px); }
.vat-family--compact-guide .vat-block__inner { width: min(var(--vat-content-compact, 960px), calc(100% - 32px)); }
.vat-family--compact-guide.vat-block--hero .vat-hero__layout { grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); gap: 24px; }
.vat-family--compact-guide.vat-block--hero .vat-hero__media { min-height: 340px; border-radius: var(--vat-radius-card, 14px); }
.vat-family--compact-guide.vat-block--hero h1 { font-size: clamp(2.2rem, 5vw, 4.2rem); }
.vat-variant--compact-table .vat-facts, .vat-family--compact-guide .vat-info-rows, .vat-family--compact-guide .vat-planning-grid { display: block; }
.vat-variant--compact-table .vat-fact, .vat-family--compact-guide .vat-info-rows .vat-fact, .vat-family--compact-guide .vat-planning-grid .vat-fact { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 18px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-radius: 0; }
.vat-variant--compact-list .vat-experience { padding-block: 16px; grid-template-columns: 44px minmax(0,1fr); }
.vat-variant--compact-cards .vat-stay-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.vat-variant--compact-notice .vat-parking-grid { grid-template-columns: 1fr; }
.vat-variant--compact-list.vat-facility-grid, .vat-family--compact-guide .vat-facility-grid { display: flex; flex-wrap: wrap; }
.vat-variant--compact-split .vat-fit-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.vat-variant--compact-panel .vat-reality { padding: 22px; border-radius: var(--vat-radius-card, 14px); }
.vat-variant--dense-links .vat-explore-grid { display: block; }
.vat-variant--dense-links .vat-explore-card { display: grid; grid-template-columns: 110px minmax(0,1fr); border-width: 0 0 1px; border-radius: 0; }
.vat-variant--dense-links .vat-explore-card__media { aspect-ratio: 1; }
.vat-variant--compact-accordion .vat-faq__item summary { padding-block: 14px; }
.vat-variant--compact-band .vat-final-cta { padding: 24px; border-radius: var(--vat-radius-card, 14px); }

/* Responsive (legacy families) */
@media (max-width: 980px) {
    .vat-hero__layout,
    .vat-family--editorial.vat-block--hero .vat-hero__layout,
    .vat-family--urban.vat-block--hero .vat-hero__layout,
    .vat-family--compact-guide.vat-block--hero .vat-hero__layout { grid-template-columns: 1fr; }
    .vat-hero__media { min-height: 440px; }
    .vat-stay-grid, .vat-explore-grid, .vat-variant--location-panels .vat-stay-grid, .vat-variant--city-cards .vat-explore-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .vat-facility-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .vat-variant--modular-grid .vat-experience-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .vat-variant--boxed-accordion .vat-faq { grid-template-columns: 1fr; }
    .vat-family--nature.vat-block--hero .vat-hero__layout { min-height: 640px; }
}

@media (max-width: 680px) {
    .vat-block__inner, .vat-family--editorial .vat-block__inner, .vat-family--urban .vat-block__inner, .vat-family--compact-guide .vat-block__inner { width: min(100% - 24px, var(--vat-content-wide, 1180px)); }
    .vat-block h1 { font-size: clamp(2.4rem, 13vw, 4.4rem); }
    .vat-info-rows, .vat-parking-grid, .vat-planning-grid, .vat-stay-grid, .vat-fit-grid, .vat-explore-grid, .vat-facility-grid, .vat-variant--visual-steps .vat-experience-list, .vat-variant--modular-grid .vat-experience-list, .vat-variant--editorial-grid .vat-explore-grid, .vat-variant--landscape-grid .vat-explore-grid, .vat-variant--earth-notice .vat-parking-grid, .vat-variant--natural-grid .vat-facility-grid { grid-template-columns: 1fr; }
    .vat-stay-card--meta, .vat-fit-card--family, .vat-variant--scenic-grid .vat-explore-card:first-child { grid-column: auto; }
    .vat-experience, .vat-variant--numbered-rows .vat-experience { grid-template-columns: 44px minmax(0,1fr); gap: 12px; }
    .vat-variant--grid-lead .vat-section-head { grid-template-columns: 1fr; gap: 12px; }
    .vat-variant--clean-rows .vat-fact, .vat-variant--compact-table .vat-fact, .vat-variant--transit-rows .vat-fact, .vat-variant--route-card .vat-fact, .vat-family--compact-guide .vat-info-rows .vat-fact, .vat-family--compact-guide .vat-planning-grid .vat-fact { grid-template-columns: 1fr; gap: 6px; }
    .vat-variant--bordered-editorial .vat-reality { margin-left: 0; }
    .vat-variant--dense-links .vat-explore-card { grid-template-columns: 88px minmax(0,1fr); }
    .vat-family--nature.vat-block--hero .vat-hero__layout { min-height: 560px; }
    .vat-family--nature.vat-block--hero .vat-hero__copy { inset: auto 20px 24px; }
}

/* Responsive — Travel Editorial baseline (tablet ~768px, mobile ~390px) */
@media (max-width: 980px) {
    .vat-hero--has-media .vat-hero__layout { grid-template-columns: 1fr; }
    .vat-hero__media { aspect-ratio: 16 / 10; min-height: 0; }
}
@media (max-width: 680px) {
    .vat-page { --vat-gutter: 16px; }
    .vat-block { margin-block: var(--vat-section-gap-compact, 44px); }
    .vat-block h1 { font-size: clamp(2.2rem, 10vw, 3.4rem); }
    .vat-hero--no-media h1 { max-width: none; }
    .vat-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .vat-fact { padding: 14px; }
    .vat-utility-row { grid-template-columns: 1fr; gap: 4px; padding: 14px 0; }
    .vat-setup, .vat-fit { grid-template-columns: 1fr; gap: 26px; }
    .vat-experience { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }
    .vat-explore-grid { grid-template-columns: 1fr; }
    .vat-final-cta { text-align: left; }
    .vat-final-cta h2, .vat-final-cta p { margin-inline: 0; }
    .vat-final-cta__actions { justify-content: flex-start; }
    .vat-final-cta__actions .vat-btn { flex: 1 1 100%; }
}
@media (max-width: 340px) {
    .vat-facts { grid-template-columns: 1fr; }
}

/* ===============================================================
 * DEV10.3 Travel Editorial composition (v3.1.13 visual language).
 * Renderer/CSS only — canonical block content and contracts unchanged.
 * ============================================================= */

/* Hero → snapshot rhythm */
.vat-block--hero.vat-family--travel-editorial { margin-bottom: clamp(18px, 3vw, 32px); }
.vat-block--hero + .vat-snapshot-block { margin-top: 0; }

/* Compact snapshot (replaces five large fact cards in Travel Editorial) */
.vat-snapshot { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); margin: 0; padding: 6px 0; border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); border-bottom: 1px solid var(--vat-color-border, rgba(31,37,34,.14)); }
.vat-snapshot__item { min-width: 0; padding: 14px 18px; border-left: 1px solid var(--vat-color-border, rgba(31,37,34,.10)); }
.vat-snapshot__item:first-child { border-left: 0; padding-left: 0; }
.vat-snapshot dt { margin: 0 0 6px; color: var(--vat-color-muted, #66706a); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.vat-snapshot dd { margin: 0; color: var(--vat-color-heading, #1f2522); font-size: 1rem; font-weight: 650; line-height: 1.35; }

/* Alternate surface band for structured editorial sections */
.vat-band { margin-block: 0; padding-block: clamp(44px, 6vw, 80px); background: var(--vat-color-surface-soft, #f4f3ee); }
.vat-band + .vat-band { padding-top: 0; }

/* Split section (Where to stay, Visit planning) */
.vat-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.vat-split--single { grid-template-columns: minmax(0, 1fr); max-width: var(--vat-w-readable, 780px); }
.vat-split__intro { margin: 0 0 16px; color: var(--vat-color-text, #2b322e); font-size: clamp(1.02rem, 1.3vw, 1.12rem); }
.vat-split__note { margin: 10px 0 0; font-size: .85rem; }
.vat-subhead { margin: 0 0 10px !important; font-family: var(--vat-font-body, inherit) !important; font-size: .78rem !important; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--vat-color-muted, #66706a) !important; }
.vat-split__lead .vat-subhead:not(:first-child), .vat-split__detail .vat-subhead:not(:first-child) { margin-top: 26px !important; }
.vat-split .vat-pill-list { margin-top: 0; }
.vat-band .vat-pill-list > span { background: var(--vat-color-surface, #fff); }

/* Access with integrated parking */
.vat-access__parking { margin-top: 28px; }
.vat-access__parking-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 8px; }
.vat-access__parking-head .vat-subhead { margin: 0 !important; }
.vat-access__parking-head .vat-status { margin: 0; }
.vat-utility-rows--compact .vat-utility-row { padding: 12px 0; }
.vat-block--access .vat-notice { margin-top: 22px; }

/* Facilities as an editorial setup band */
.vat-setup--editorial { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.vat-setup--editorial .vat-setup__col--available .vat-marked-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr)); column-gap: 18px; }
.vat-setup--editorial.vat-setup--single { grid-template-columns: minmax(0, 1fr); }
.vat-band .vat-marked-list, .vat-band .vat-utility-rows { border-top-color: var(--vat-color-border, rgba(31,37,34,.16)); }

/* Fit: spacing only */
.vat-fit { gap: clamp(20px, 4vw, 56px); }
.vat-fit__title { margin-bottom: 8px !important; }

/* Reality check: one concise panel at feature width */
.vat-reality .vat-reality__narrative + .vat-reality__narrative { margin-top: 12px; }
.vat-reality .vat-reality__narrative { max-width: 72ch; }

/* Final CTA without valid targets: editorial conclusion only */
.vat-final-cta--no-actions { padding-block: clamp(28px, 4vw, 48px); }

/* Responsive (1024 / 768 / 390) */
@media (max-width: 1024px) {
    .vat-split, .vat-setup--editorial { grid-template-columns: minmax(0, 1fr); }
    .vat-snapshot { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .vat-snapshot__item:nth-child(3n + 1) { border-left: 0; padding-left: 0; }
}
@media (max-width: 680px) {
    .vat-snapshot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vat-snapshot__item { padding: 12px 12px 12px 0; border-left: 0; border-top: 1px solid var(--vat-color-border, rgba(31,37,34,.10)); }
    .vat-snapshot__item:nth-child(-n + 2) { border-top: 0; }
    .vat-band { padding-block: 40px; }
    .vat-setup--editorial .vat-setup__col--available .vat-marked-list { grid-template-columns: 1fr; }
}
@media (max-width: 340px) {
    .vat-snapshot { grid-template-columns: 1fr; }
}

/* ===============================================================
 * DEV10.4 Travel Editorial page composition (v3.1.13 reference).
 * ============================================================= */

/* Image-led hero (v3.1.13: .96/1.04 grid, tall rounded image with a soft offset backdrop) */
.vat-hero--has-media .vat-hero__layout { grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: clamp(32px, 5vw, 64px); min-height: clamp(420px, 42vw, 560px); }
.vat-hero--has-media .vat-hero__media { position: relative; aspect-ratio: auto; height: clamp(360px, 36vw, 520px); overflow: visible; box-shadow: none; background: transparent; }
.vat-hero--has-media .vat-hero__media::before { content: ''; position: absolute; inset: -18px -18px 18px 22px; border-radius: calc(var(--vat-radius-hero, 28px) + 18px); background: var(--vat-color-surface-soft, #f1eee6); z-index: 0; }
.vat-hero--has-media .vat-hero__media img { position: relative; z-index: 1; border-radius: var(--vat-radius-hero, 28px); box-shadow: var(--vat-shadow-hero, 0 24px 60px rgba(0,0,0,.14)); }
.vat-hero--no-media { padding-bottom: 8px; }
.vat-hero--no-media .vat-hero__layout { border-left: 3px solid var(--vat-color-accent, #3e6b58); padding-left: clamp(18px, 3vw, 32px); }

/* Aside composition: heading / intro / media column + structured body column */
.vat-aside { display: grid; grid-template-columns: minmax(240px, .42fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.vat-aside__head h2 { font-size: clamp(1.7rem, 2.8vw, 2.5rem); }
.vat-aside__head .vat-eyebrow { margin-bottom: 10px; }
.vat-aside__intro { margin: 14px 0 0; color: var(--vat-color-text, #2b322e); }
.vat-aside__media { margin: 22px 0 0; overflow: hidden; border-radius: var(--vat-radius-card, 20px); box-shadow: var(--vat-shadow-card, 0 14px 34px rgba(0,0,0,.08)); }
.vat-aside__media img { display: block; width: 100%; height: clamp(200px, 22vw, 280px); object-fit: cover; }
.vat-aside__body { min-width: 0; }
.vat-aside-section .vat-section-head { display: none; }
.vat-width--feature.vat-aside-section > .vat-block__inner > * { max-width: none; }

/* Columns inside an aside body (Available / Good to know, Good for / Not ideal, Timing / Tickets) */
.vat-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 4vw, 44px); }
.vat-columns--single { grid-template-columns: minmax(0, 1fr); }
.vat-subhead--spaced { margin-top: 26px !important; }

/* Parking panel + callout inside Getting there */
.vat-panel { margin-top: 26px; padding: clamp(16px, 2.4vw, 22px) clamp(18px, 2.6vw, 26px); border: 1px solid var(--vat-color-border, rgba(31,37,34,.12)); border-radius: var(--vat-radius-card, 18px); background: var(--vat-color-surface-soft, #f6f4ef); }
.vat-panel .vat-access__parking { margin-top: 0; }
.vat-panel .vat-utility-rows { border-top: 0; }
.vat-panel .vat-utility-row:last-child { border-bottom: 0; }
.vat-callout { margin-top: 22px; padding: 16px 20px; border-left: 4px solid var(--vat-color-warning, #c07a2c); border-radius: 0 var(--vat-radius-sm, 10px) var(--vat-radius-sm, 10px) 0; background: var(--vat-color-warning-soft, #fbf3e8); }
.vat-callout strong { display: block; margin-bottom: 4px; color: var(--vat-color-heading, #1f2522); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.vat-callout p { margin: 0; color: var(--vat-color-text, #2b322e); }
.vat-callout--soft { border-left-color: var(--vat-color-accent, #3e6b58); background: var(--vat-color-surface, #fff); }
.vat-band .vat-callout--soft { background: var(--vat-color-surface, #fff); }

/* Bands: setup / stay / planning sit on a soft surface with an inner panel feel */
.vat-band.vat-aside-section .vat-aside__body { padding: clamp(18px, 3vw, 30px); border: 1px solid var(--vat-color-border, rgba(31,37,34,.10)); border-radius: var(--vat-radius-panel, 24px); background: var(--vat-color-surface, #fff); }

@media (max-width: 1024px) {
    .vat-aside { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .vat-aside__media img { height: clamp(200px, 40vw, 300px); }
    .vat-hero--has-media .vat-hero__layout { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .vat-hero--has-media .vat-hero__media { height: auto; }
    .vat-hero--has-media .vat-hero__media img { aspect-ratio: 16 / 10; height: auto; }
    .vat-hero--has-media .vat-hero__media::before { inset: -10px -10px 10px 12px; }
}
@media (max-width: 680px) {
    .vat-columns { grid-template-columns: minmax(0, 1fr); }
    .vat-hero--has-media .vat-hero__media::before { display: none; }
    .vat-band.vat-aside-section .vat-aside__body { padding: 16px; }
}

/* Entity-type PDF Guide: common component across Beach/Destination/Attraction. */
.vat-guide-cta{margin:3rem auto;padding:0 20px}.vat-guide-cta__wrap{max-width:1324px;margin:0 auto}
.vat-guide-cta__card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:34px;padding:40px;background:#f8eee4;border-radius:22px}
.vat-guide-cta__eyebrow{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#795c44}
.vat-guide-cta__card h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(30px,3vw,46px);margin:12px 0}
.vat-guide-cta__card h3{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:26px;margin:0 0 20px}
.vat-guide-cta__action{background:#fff;border-radius:16px;padding:25px;align-self:center}
.vat-guide-cta__action input{display:block;width:100%;margin:9px 0 15px;padding:12px;border:1px solid #cabba9;border-radius:6px}
.vat-guide-cta__action label{display:block;font-size:13px;font-weight:600}
.vat-guide-cta__action a{display:inline-block;text-decoration:none}
@media(max-width:720px){.vat-guide-cta__card{grid-template-columns:1fr;padding:24px;gap:20px}}

.vat-location-map{margin:3rem auto;padding:0 20px}.vat-location-map__wrap{max-width:1324px;margin:auto}
.vat-location-map h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;margin:12px 0 22px}
.vat-location-map__frame{width:100%;min-height:300px;border-radius:16px;overflow:hidden;background:#e8ede7}
.vat-location-map__frame iframe{display:block;width:100%;height:340px;border:0}
.vat-location-map__wrap>a{display:inline-block;margin-top:15px}
