/*
 * Visit Travel — approved Beach Page Master (Figma: Beach / Desktop 1440 node 34-2, Beach / Mobile 390 node 127-2).
 * Loaded only on Beach pages in the travel-editorial family. One semantic structure; responsive CSS only.
 * DEV10.5.3: measured against the approved frames — 1324px content column at 1440 (58px gutters), 20px gutters at 390.
 */
.vat-master {
    --vbm-bg: #faf6ef;
    --vbm-card: #fffaf3;
    --vbm-peach: #f5dcbd;
    --vbm-peach-soft: #fdefdf;
    --vbm-border: #efe1cd;
    --vbm-border-strong: #f0d2ad;
    --vbm-ink: #2b1d12;
    --vbm-text: #4d3d30;
    --vbm-muted: #8a786a;
    --vbm-orange: #f2731c;
    --vbm-orange-ink: #c4560c;
    --vbm-green: #3f7d4f;
    --vbm-serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
    --vbm-sans: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --vbm-wrap: 1324px;
    --vbm-gutter: clamp(20px, 4.03vw, 58px);
    --vbm-radius: 24px;
    --vbm-radius-sm: 14px;
    --vbm-section: clamp(56px, 6.7vw, 96px);
    background: var(--vbm-bg);
    color: var(--vbm-text);
    font-family: var(--vbm-sans);
    font-size: 16px;
    line-height: 1.6;
    overflow-x: clip;
}
.vat-master *, .vat-master *::before, .vat-master *::after { box-sizing: border-box; }
.vat-master img { display: block; max-width: 100%; height: auto; }
.vat-master ul, .vat-master ol { margin: 0; padding: 0; list-style: none; }
.vat-master li { margin: 0; border: 0; }
.vat-master h1, .vat-master h2, .vat-master h3, .vat-master h4 {
    margin: 0;
    color: var(--vbm-ink);
    font-family: var(--vbm-serif);
    font-weight: 400;
    letter-spacing: -.012em;
    text-wrap: balance;
}
.vat-master h1 { font-size: clamp(2.75rem, 5vw, 4.5rem); line-height: 1; }
.vat-master h2 { font-size: clamp(1.9rem, 3.35vw, 3rem); line-height: 1.06; }
.vat-master h3 { font-size: clamp(1.4rem, 1.95vw, 1.75rem); line-height: 1.12; }
.vat-master h4 { font-size: 1.35rem; line-height: 1.2; }
.vat-master p { margin: 0; }
.vat-master a { text-decoration: none; }
.vbm-icon { display: block; flex: none; width: 1em; height: 1em; }
.vbm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vbm-wrap { width: min(var(--vbm-wrap), calc(100% - 2 * var(--vbm-gutter))); margin-inline: auto; }
.vbm-section { padding-block: var(--vbm-section) 0; scroll-margin-top: 90px; }
.vat-master > .vbm-section:last-child { padding-bottom: var(--vbm-section); }
.vbm-eyebrow { display: inline-block; color: var(--vbm-orange); font-family: var(--vbm-sans); font-size: .69rem; font-weight: 600; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase; }
.vbm-head { max-width: 820px; margin-bottom: clamp(28px, 3.4vw, 48px); }
.vbm-head h2 { margin-top: 16px; }
.vbm-head__intro { margin-top: clamp(14px, 1.7vw, 24px) !important; color: var(--vbm-text); font-size: .95rem; }
.vbm-prose { max-width: 940px; }
.vbm-prose p + p { margin-top: 14px; }

/* Buttons and links */
.vbm-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
.vbm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 26px; border-radius: 999px; border: 1.5px solid transparent; font-family: var(--vbm-sans); font-size: .9rem; font-weight: 600; line-height: 1; text-decoration: none !important; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.vbm-btn .vbm-icon { font-size: 1rem; }
.vbm-btn--primary { background: var(--vbm-orange); color: #fff !important; }
.vbm-btn--primary:hover, .vbm-btn--primary:focus-visible { background: var(--vbm-orange-ink); }
.vbm-btn--ghost { background: var(--vbm-card); border-color: var(--vbm-orange); color: var(--vbm-orange-ink) !important; }
.vbm-btn--ghost:hover, .vbm-btn--ghost:focus-visible { background: var(--vbm-peach-soft); }
.vbm-btn--small { min-height: 40px; padding: 0 20px; font-size: .84rem; }
.vbm-link { display: inline-flex; align-items: center; gap: 6px; color: var(--vbm-orange-ink) !important; font-size: .92rem; font-weight: 600; text-decoration: none !important; }
.vbm-link:hover { text-decoration: underline !important; }
.vat-master a:focus-visible, .vat-master summary:focus-visible { outline: 2px solid var(--vbm-orange); outline-offset: 3px; }

/* 1. Hero + facts + nav */
.vbm-hero { padding-top: clamp(28px, 3vw, 44px); }
.vbm-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.vbm-hero--media .vbm-hero__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.vbm-hero__copy { min-width: 0; max-width: 600px; }
.vbm-hero__copy .vbm-eyebrow { margin-bottom: 18px; }
.vbm-hero__lead { margin-top: 18px !important; color: var(--vbm-ink); font-size: clamp(1.15rem, 2vw, 1.8rem); line-height: 1.3; }
.vbm-hero__intro { margin-top: 26px !important; max-width: 500px; color: var(--vbm-text); font-size: 1.05rem; }
.vbm-hero__media { margin: 0; position: relative; aspect-ratio: 800 / 520; }
.vbm-hero__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 46% 34% 40% 30% / 38% 30% 46% 40%; }
.vbm-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 28px 0 0; }
.vbm-facts--1 { grid-template-columns: minmax(0, 1fr); max-width: 220px; }
.vbm-facts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vbm-fact { min-width: 0; padding: 18px; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius-sm); }
.vbm-fact dt { color: var(--vbm-orange); font-size: .66rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.vbm-fact dd { margin: 12px 0 0; }
.vbm-fact strong { display: block; color: var(--vbm-ink); font-size: 1.06rem; font-weight: 600; line-height: 1.25; }
.vbm-fact dd > span { display: block; margin-top: 6px; color: var(--vbm-muted); font-size: .76rem; line-height: 1.4; }
.vbm-nav { margin-top: clamp(32px, 5vw, 72px); }
.vbm-nav__list { display: flex; gap: 10px; padding: 10px !important; overflow-x: auto; scrollbar-width: none; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: 999px; }
.vbm-nav__list::-webkit-scrollbar { display: none; }
.vbm-nav__list li { flex: 1 0 auto; }
.vbm-nav__list a { display: block; padding: 10px 18px; border: 1px solid var(--vbm-border); border-radius: 999px; background: #fff; color: var(--vbm-ink) !important; font-size: .82rem; font-weight: 500; text-align: center; text-decoration: none !important; white-space: nowrap; }
.vbm-nav__list li:first-child a { background: var(--vbm-peach); border-color: var(--vbm-peach); color: var(--vbm-orange-ink) !important; }
.vbm-nav__list a:hover { border-color: var(--vbm-orange); }

/* 2. Why visit — image left (60%), warm peach editorial panel right */
.vbm-why__card { display: grid; grid-template-columns: minmax(0, 794fr) minmax(0, 530fr); min-height: clamp(420px, 42vw, 605px); overflow: hidden; border-radius: var(--vbm-radius); background: var(--vbm-peach); }
.vbm-why--text .vbm-why__card { grid-template-columns: minmax(0, 1fr); min-height: 0; }
.vbm-why__media { margin: 0; min-height: 100%; }
.vbm-why__media img { width: 100%; height: 100%; object-fit: cover; }
.vbm-why__body { display: flex; flex-direction: column; padding: clamp(28px, 3.3vw, 48px) clamp(28px, 4.4vw, 64px) clamp(28px, 3.3vw, 48px) clamp(28px, 2.6vw, 37px); }
.vbm-why--text .vbm-why__body { max-width: 900px; padding: clamp(28px, 3.4vw, 48px); }
.vbm-why__head h2 { margin-top: 16px; }
.vbm-why__text { margin-top: clamp(20px, 2.4vw, 34px); }
.vbm-why__text p { color: var(--vbm-ink); font-size: .95rem; line-height: 1.55; }
.vbm-why__text p + p { margin-top: clamp(16px, 2.6vw, 36px); }
.vbm-why__text .vbm-btn { margin-top: clamp(24px, 3.4vw, 48px); background: var(--vbm-card); }

/* Approved long-form overviews remain accessible without overgrowing the Figma split card. */
.vbm-why__more { margin-top: 18px; }
.vbm-why__more > summary { width: fit-content; color: var(--vbm-orange-ink); font-size: .88rem; font-weight: 600; cursor: pointer; }
.vbm-why__more > summary:hover { text-decoration: underline; }
.vbm-why__more-content { display: grid; gap: 14px; margin-top: 16px; }
.vbm-why__more-content p { margin: 0 !important; }

/* 3. Getting there — three equal cards, number + label + mode icon, editorial body, factual foot / CTA */
.vbm-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.1vw, 30px); }
.vbm-options--1 { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
.vbm-options--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vbm-option { display: flex; flex-direction: column; min-width: 0; padding: 26px; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); }
.vbm-option--accent { background: var(--vbm-peach-soft); border-color: var(--vbm-border-strong); }
.vbm-option__top { display: flex; align-items: center; gap: 18px; }
.vbm-option__num { color: var(--vbm-orange); font-family: var(--vbm-serif); font-size: 2.5rem; line-height: 1; }
.vbm-option__tag { color: var(--vbm-muted); font-size: .66rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.vbm-option__icon { order: 3; margin-left: auto; color: var(--vbm-text); font-size: 2rem; }
.vbm-option h3 { margin: 22px 0 18px; }
.vbm-option p { color: var(--vbm-text); font-size: .875rem; line-height: 1.55; }
.vbm-option > p + p { margin-top: 10px; }
.vbm-option .vbm-option__foot { margin-top: auto; padding-top: 26px; color: var(--vbm-ink); font-size: .82rem; font-weight: 600; }
.vbm-option__foot::before { content: ''; display: block; margin-bottom: 14px; border-top: 1px solid var(--vbm-border-strong); }
.vbm-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.vbm-pills li { padding: 8px 14px; border: 1px solid var(--vbm-border); border-radius: 999px; background: var(--vbm-card); font-size: .85rem; }

/* 4. Parking advisory — compact warning band */
.vbm-advisory { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px 28px; align-items: start; margin-top: clamp(16px, 2.1vw, 30px); padding: 24px 26px; background: var(--vbm-peach-soft); border: 1px solid var(--vbm-border-strong); border-radius: var(--vbm-radius); }
.vbm-advisory__icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 16px; background: var(--vbm-peach); color: var(--vbm-orange-ink); font-size: 2rem; }
.vbm-advisory h3 { margin: 8px 0 8px; font-family: var(--vbm-sans); font-size: 1.35rem; font-weight: 600; letter-spacing: 0; }
.vbm-advisory__main p { color: var(--vbm-text); font-size: .875rem; }
.vbm-advisory__more { margin-top: 10px; font-size: .82rem; }
.vbm-advisory__more summary { color: var(--vbm-orange-ink); font-weight: 600; cursor: pointer; }
.vbm-advisory__more ul { margin-top: 8px; display: grid; gap: 6px; }
.vbm-advisory__more li { color: var(--vbm-text); padding-left: 14px; position: relative; }
.vbm-advisory__more li::before { content: ''; position: absolute; left: 0; top: .6em; width: 5px; height: 5px; border-radius: 50%; background: var(--vbm-muted); }
.vbm-advisory__tips { grid-column: 2; padding-top: 14px; border-top: 1px solid var(--vbm-border-strong); }
.vbm-advisory__tips ul { margin-top: 12px; display: grid; gap: 8px; }
.vbm-advisory__tips li { position: relative; padding-left: 22px; color: var(--vbm-ink); font-size: .9rem; font-weight: 600; line-height: 1.4; }
.vbm-advisory__tips li::before { content: ''; position: absolute; left: 0; top: .45em; width: 7px; height: 7px; border-radius: 50%; background: var(--vbm-orange); }

/* 5. Location map */
.vbm-map__card { display: grid; grid-template-columns: minmax(0, 880fr) minmax(280px, 444fr); overflow: hidden; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); }
.vbm-map__frame { position: relative; min-height: 308px; background: #e8efe9; }
.vbm-map__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vbm-map__info { display: flex; flex-direction: column; gap: 12px; padding: 30px 34px; border-left: 1px solid var(--vbm-border); }
.vbm-map__info h3 { font-size: clamp(1.6rem, 2.2vw, 2rem); }
.vbm-map__place { color: var(--vbm-text); font-size: .95rem; }
.vbm-map__note { max-width: 240px; color: var(--vbm-muted); font-size: .84rem; }
.vbm-map__info .vbm-btn { margin-top: auto; }

/* 6. What to expect — narrative, then photo + Beach essentials side by side */
.vbm-expect__story { color: var(--vbm-text); font-size: 1rem; line-height: 1.6; }
.vbm-expect__story strong { color: var(--vbm-ink); }
.vbm-expect__highlights { display: grid; gap: 8px; margin-top: 18px !important; }
.vbm-expect__highlights li { position: relative; padding-left: 18px; }
.vbm-expect__highlights li::before { content: ''; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: 50%; background: var(--vbm-orange); }
/* Long approved legacy copy remains accessible without taking over the visual hierarchy. */
.vbm-expect__more { margin-top: 20px; padding-top: 12px; border-top: 1px solid var(--vbm-border); }
.vbm-expect__more > summary { width: fit-content; color: var(--vbm-orange-ink); font-size: .9rem; font-weight: 600; cursor: pointer; }
.vbm-expect__more > summary:hover { text-decoration: underline; }
.vbm-expect__more > summary::marker { color: var(--vbm-orange); }
.vbm-expect__more-content { display: grid; gap: 14px; padding-top: 18px; }
.vbm-expect__more-content p { margin-top: 0 !important; }
.vbm-expect__more[open] { padding-bottom: 6px; }
.vbm-expect__row { display: grid; grid-template-columns: minmax(0, 582fr) minmax(0, 718fr); gap: 24px; margin-top: clamp(32px, 5.5vw, 80px); }
.vbm-expect__row--single { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.vbm-expect__media { margin: 0; align-self: stretch; }
.vbm-expect__media img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; border-radius: var(--vbm-radius); }
.vbm-essentials { padding: clamp(22px, 2.2vw, 32px); background: var(--vbm-peach-soft); border: 1px solid var(--vbm-border-strong); border-radius: var(--vbm-radius); }
.vbm-essentials__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--vbm-border-strong); }
.vbm-essentials__head h3 { margin-top: 8px; font-size: clamp(1.5rem, 2.1vw, 1.9rem); }
.vbm-essentials__mark { color: var(--vbm-orange-ink); font-size: 2rem; }
.vbm-essentials__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding-top: 18px; }
.vbm-essentials__cols--one { grid-template-columns: minmax(0, 1fr); }
.vbm-essentials__col + .vbm-essentials__col { padding-left: 22px; border-left: 1px solid var(--vbm-border-strong); }
.vbm-essentials__col:first-child { padding-right: 22px; }
.vbm-essentials h4 { margin-bottom: 12px; }
.vbm-checks { display: grid; gap: 8px; }
.vbm-checks li { display: flex; gap: 12px; align-items: flex-start; }
.vbm-checks .vbm-icon { color: var(--vbm-green); font-size: 1.1rem; margin-top: 2px; }
.vbm-checks strong { display: block; color: var(--vbm-ink); font-size: .95rem; font-weight: 600; line-height: 1.3; }
.vbm-checks small { display: block; color: var(--vbm-muted); font-size: .76rem; line-height: 1.35; }
.vbm-bring { display: grid; gap: 6px; }
.vbm-bring li { display: flex; gap: 10px; align-items: center; color: var(--vbm-ink); font-size: .9rem; }
.vbm-bring .vbm-icon { color: var(--vbm-orange-ink); font-size: .95rem; }
.vbm-essentials__chips { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--vbm-border-strong); }
.vbm-essentials__chips ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); margin-top: 14px; }
.vbm-essentials__chips li { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 4px 10px; text-align: center; color: var(--vbm-ink); font-size: .9rem; font-weight: 600; line-height: 1.3; }
.vbm-essentials__chips li + li { border-left: 1px solid var(--vbm-border-strong); }
.vbm-essentials__chips .vbm-icon { color: var(--vbm-orange-ink); font-size: 1.6rem; }

/* Marked lists (✓ good, – note) */
.vat-master .vat-marked-list { display: grid; gap: 12px; border: 0; }
.vat-master .vat-marked-list li { position: relative; padding: 0 0 0 36px; color: var(--vbm-ink); font-size: 1.05rem; line-height: 1.45; border: 0; }
.vat-master .vat-marked-list li::before { position: absolute; left: 4px; top: 0; font-weight: 600; }
.vat-master .vat-marked-list--good li::before { content: '✓'; color: var(--vbm-orange-ink); }
.vat-master .vat-marked-list--note li::before { content: '–'; color: var(--vbm-orange); }

/* 7. Fit */
.vbm-fit__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 44px); }
.vbm-fit__card { padding: clamp(22px, 2.2vw, 32px); background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); }
.vbm-fit__card--think { background: var(--vbm-peach-soft); border-color: var(--vbm-border-strong); }
.vbm-fit__top { display: flex; align-items: center; justify-content: space-between; }
.vbm-fit__top .vbm-icon { color: var(--vbm-orange-ink); font-size: 1.9rem; }
.vbm-fit__card h3 { margin: 10px 0 22px; padding-bottom: 18px; border-bottom: 1px solid var(--vbm-border); font-size: clamp(1.4rem, 2.1vw, 1.9rem); }
.vbm-fit__note { margin-top: 18px !important; color: var(--vbm-muted); font-size: .88rem; }

/* 8. Stay nearby */
.vbm-stay__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 42px); align-items: stretch; }
.vbm-stay__grid--1 { grid-template-columns: minmax(0, 640px); }
.vbm-stay__card { display: flex; flex-direction: column; overflow: hidden; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); }
.vbm-stay__media { margin: 0; overflow: hidden; }
.vbm-stay__media img { width: 100%; height: 196px; object-fit: cover; }
.vbm-stay__body { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: 24px 28px 14px; }
.vbm-stay__body h3 { font-size: clamp(1.7rem, 2.5vw, 2.25rem); }
.vbm-stay__body p { max-width: 330px; color: var(--vbm-text); font-size: .875rem; }
.vbm-stay__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--vbm-border); }
.vbm-stay__actions .vbm-btn { min-width: 180px; min-height: 44px; }

/* 9. Experiences — official GetYourGuide widget in a neutral shell (no styling inside the provider iframe) */
.vbm-widget { padding: 24px 26px; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); }
.vbm-widget__frame { margin-top: 14px; min-height: 120px; }
.vbm-widget__note { margin-top: 12px !important; color: var(--vbm-muted); font-size: .74rem; }
/* 10. Explore around */

/* 11. Practical info — six compact facts with icons */

.vbm-fact__icon { display: block; margin-bottom: 12px; color: var(--vbm-orange-ink); font-size: 1.75rem; }

/* 12. FAQ */
.vbm-faq__list { background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); overflow: hidden; }
.vbm-faq__item + .vbm-faq__item, .vbm-faq__more { border-top: 1px solid var(--vbm-border); }
.vbm-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 28px; color: var(--vbm-ink); font-weight: 600; font-size: 1.05rem; cursor: pointer; list-style: none; }
.vbm-faq__item summary::-webkit-details-marker, .vbm-faq__more > summary::-webkit-details-marker { display: none; }
.vbm-faq__item summary::after { content: '+'; flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--vbm-border-strong); background: var(--vbm-peach-soft); color: var(--vbm-orange); font-weight: 500; line-height: 1; }
.vbm-faq__item[open] summary::after { content: '–'; }
.vbm-faq__answer { max-width: 1120px; padding: 0 28px 24px; color: var(--vbm-text); font-size: .95rem; }
.vbm-faq__more > summary { padding: 18px 28px; color: var(--vbm-orange-ink); font-weight: 600; font-size: .92rem; cursor: pointer; list-style: none; }
.vbm-faq__more[open] > summary { border-bottom: 1px solid var(--vbm-border); }
.vbm-short { display: none; }

/* 13. Final guide (renders only when functional) */
.vbm-guide__card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 32px; padding: clamp(26px, 3.4vw, 44px); background: var(--vbm-peach); border-radius: var(--vbm-radius); }
.vbm-guide__card h2 { margin-top: 12px; }
.vbm-guide__copy p { margin-top: 14px !important; max-width: 560px; }
.vbm-guide__form { display: grid; gap: 12px; align-content: start; padding: 22px; background: var(--vbm-card); border-radius: 18px; }
.vbm-guide__form label { color: var(--vbm-muted); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.vbm-guide__form input { min-height: 46px; padding: 0 16px; border: 1px solid var(--vbm-border-strong); border-radius: 12px; background: #fff; font: inherit; }

/* Pass-through canonical blocks (shortcodes, embeds, third-party blocks) */
.vbm-other .vbm-prose > * + * { margin-top: 14px; }

/* Tablet ≤ 1100: hero and wide two-column compositions stack */
@media (max-width: 1100px) {
    .vbm-hero--media .vbm-hero__grid { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
    .vbm-hero--media .vbm-hero__copy { display: contents; }
    .vbm-hero--media .vbm-hero__media { order: 1; margin-top: 26px; }
    .vbm-hero--media .vbm-facts { order: 2; margin-top: 16px; }
    .vbm-hero__copy { max-width: 720px; }
    .vbm-hero__media { aspect-ratio: 16 / 10; }
    .vbm-hero__media img { border-radius: var(--vbm-radius); }
    .vbm-expect__row { grid-template-columns: minmax(0, 1fr); }
    .vbm-expect__media img { min-height: 0; max-height: none; aspect-ratio: 16 / 9; }
    .vbm-guide__card { grid-template-columns: minmax(0, 1fr); }
}

/* ≤ 900: cards stack */
@media (max-width: 900px) {
    .vbm-options, .vbm-options--2 { grid-template-columns: minmax(0, 1fr); }
    .vbm-advisory { grid-template-columns: auto minmax(0, 1fr); }
    .vbm-advisory__tips { grid-column: 1 / -1; padding-left: 0; padding-top: 14px; border-left: 0; border-top: 1px solid var(--vbm-border-strong); }
    .vbm-map__card { grid-template-columns: minmax(0, 1fr); }
    .vbm-map__frame { min-height: 260px; }
    .vbm-map__info { border-left: 0; border-top: 1px solid var(--vbm-border); }
    .vbm-map__note { max-width: none; }
    .vbm-why__card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* Mobile master ≤ 768 (approved Mobile 390 composition) */
@media (max-width: 768px) {
    .vat-master { font-size: 15px; }
    /* Mobile master type scale in px: Astra lowers the root font-size on phones, rem minimums would shrink with it. */
    .vat-master h1 { font-size: 46px; }
    .vat-master h2 { font-size: 32px; }
    .vat-master h3 { font-size: 23px; }
    .vbm-option h3, .vbm-fit__card h3 { font-size: 25px; }
    .vbm-essentials__head h3, .vbm-stay__body h3 { font-size: 27px; }
    .vbm-hero__lead { font-size: 18px; }
    .vbm-head__intro, .vbm-hero__intro, .vbm-expect__story, .vbm-why__text p, .vbm-faq__answer { font-size: 14.5px; }
.vbm-option p,
.vbm-advisory__main p,
.vbm-stay__body p,
.vbm-map__place { font-size: 14px; }

    .vbm-option .vbm-option__foot, .vbm-checks small, .vbm-fact dd > span, .vbm-map__note { font-size: 12.5px; }
    .vbm-checks strong, .vbm-bring li, .vbm-faq__item summary { font-size: 14.5px; }
    .vbm-eyebrow, .vbm-fact dt { font-size: 10.5px; }
    .vbm-head { margin-bottom: 24px; }
    .vbm-head h2 { margin-top: 12px; }
    /* Why visit: heading, then photo, then the peach editorial card. */
    .vbm-why__card { display: flex; flex-direction: column; min-height: 0; gap: 18px; overflow: visible; background: transparent; border-radius: 0; }
    .vbm-why__body { display: contents; }
    .vbm-why__head { order: 0; }
    .vbm-why__media { order: 1; }
    .vbm-why__media img { aspect-ratio: 4 / 3; height: auto; border-radius: 20px; }
    .vbm-why__text { order: 2; margin-top: 0; padding: 22px 20px; background: var(--vbm-peach); border-radius: 20px; }
    .vbm-why__text p { font-size: .9rem; }
    .vbm-why--text .vbm-why__body { display: contents; }
    .vbm-option { padding: 22px 20px; }
    .vbm-option h3 { margin: 18px 0 14px; }
    /* Parking: no icon column, arrival tips as one inline row. */
    .vbm-advisory { grid-template-columns: minmax(0, 1fr); padding: 20px; }
    .vbm-advisory__icon { display: none; }
    .vbm-advisory__tips { display: block; }
    .vbm-advisory__tips ul { display: grid; gap: 8px; margin: 8px 0 0; }
    .vbm-advisory__tips li { padding-left: 18px; font-size: .875rem; }
    .vbm-advisory__tips li::before { width: 4px; height: 4px; top: .55em; }
    .vbm-essentials__cols { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .vbm-essentials__col + .vbm-essentials__col { padding-left: 0; padding-top: 16px; border-left: 0; border-top: 1px solid var(--vbm-border-strong); }
    .vbm-essentials__col:first-child { padding-right: 0; }
    .vbm-bring { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vbm-essentials__chips ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .vbm-essentials__chips li { padding: 4px 6px; font-size: .8rem; }
    .vat-master .vat-marked-list li { font-size: .92rem; padding-left: 28px; }
    .vbm-fit__grid, .vbm-stay__grid { grid-template-columns: minmax(0, 1fr); }
    .vbm-stay__media img { height: auto; aspect-ratio: 16 / 9; }
    .vbm-stay__body { padding: 20px 20px 14px; }

    .vbm-fact__icon { display: none; }
    .vbm-faq__item summary { padding: 18px 20px; font-size: .92rem; }
    .vbm-faq__answer { padding: 0 20px 18px; font-size: .88rem; }
    .vbm-faq__more > summary { padding: 16px 20px; }
    .vbm-long { display: none; }
    .vbm-short { display: inline; }
}

/* Small phones ≤ 430 (Mobile master 390) */
@media (max-width: 430px) {
    .vbm-facts { gap: 8px; }
    .vbm-fact { padding: 10px; }
    .vbm-fact dd { margin-top: 8px; }
    .vbm-fact strong { font-size: .86rem; }
    .vbm-fact span { font-size: .7rem; }
    .vbm-actions { gap: 10px; }
    .vbm-actions .vbm-btn { flex: 1 1 0; padding: 0 12px; font-size: .82rem; }
    .vbm-stay__actions .vbm-btn { min-width: 0; }
}
@media (max-width: 340px) {
.vbm-facts { grid-template-columns: minmax(0, 1fr); }

}

/* DEV10.5.6 visual master alignment — Figma Desktop 34:2, Mobile 127:2.
   These rules adjust presentation only; evidence, candidates and canonical data are untouched. */
@media (min-width: 1101px) {
    /* Desktop Figma: 1324px rail at y≈680, 625px Why Visit card, 370px access cards. */
    .vat-master .vbm-nav { margin-top: 61px; }
    .vat-master .vbm-why { padding-top: 64px; }
    .vat-master .vbm-why__card { min-height: 625px; }
    .vat-master .vbm-why__text { display: flex; flex-direction: column; flex: 1; }
    .vat-master .vbm-why__text > .vbm-btn { align-self: flex-start; margin-top: auto; }
    .vat-master .vbm-options .vbm-option { min-height: 370px; }
    .vat-master .vbm-fit__card { min-height: 285px; }
    .vat-master .vbm-stay__card { min-height: 420px; }
    .vat-master .vbm-expect__row { min-height: 430px; }
}
/* Natural-width desktop tabs match the master; not nine equal-width columns. */
.vat-master .vbm-nav__list { justify-content: space-between; }
.vat-master .vbm-nav__list li { flex: 0 0 auto; }
.vat-master .vbm-nav__mobile { display: none; }
/* A longer approved editorial heading must not take over the hero image area. */
.vat-master .vbm-hero--long-title h1 { font-size: clamp(2.6rem, 4vw, 3.85rem); line-height: 1.04; overflow-wrap: break-word; }
@media (max-width: 768px) {
    /* Figma mobile uses x=18 / width=354, not x=20 / width=350. */
    .vat-master { --vbm-gutter: 18px; }
    .vat-master .vbm-hero--long-title h1 { font-size: clamp(32px, 9vw, 38px); line-height: 1.06; }
    .vat-master .vbm-nav { margin-top: 26px; }
    .vat-master .vbm-nav__list { display: none; }
    .vat-master .vbm-nav__mobile { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, .95fr); gap: 7px; padding: 6px !important; height: 54px; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: 999px; }
    .vat-master .vbm-nav__mobile > li { min-width: 0; }
    .vat-master .vbm-nav__mobile > li > a,
    .vat-master .vbm-nav__more summary { display: flex; align-items: center; justify-content: center; gap: 5px; height: 40px; padding: 0 6px; color: var(--vbm-ink); background: #fff; border: 1px solid var(--vbm-border); border-radius: 999px; font-size: 12px; font-weight: 500; text-align: center; white-space: nowrap; cursor: pointer; list-style: none; }
    .vat-master .vbm-nav__mobile > li:first-child > a { color: var(--vbm-orange-ink); background: var(--vbm-peach); border-color: var(--vbm-peach); }
    .vat-master .vbm-nav__more { position: relative; }
    .vat-master .vbm-nav__more summary::-webkit-details-marker { display: none; }
    .vat-master .vbm-nav__more summary .vbm-icon { font-size: 13px; color: var(--vbm-orange-ink); }
    .vat-master .vbm-nav__more ul { position: absolute; z-index: 20; top: calc(100% + 10px); right: 0; width: min(270px, calc(100vw - 36px)); padding: 8px !important; background: #fff; border: 1px solid var(--vbm-border); border-radius: 16px; box-shadow: 0 12px 35px rgba(43,29,18,.12); }
    .vat-master .vbm-nav__more ul a { display: block; padding: 11px 14px; color: var(--vbm-ink); font-size: 13px; border-radius: 8px; text-decoration: none; }
    .vat-master .vbm-nav__more ul a:hover, .vat-master .vbm-nav__more ul a:focus-visible { background: var(--vbm-peach-soft); }
    .vat-master .vbm-why__text { display: block; }
    .vat-master .vbm-why__text .vbm-btn { margin-top: 26px; }
    .vat-master .vbm-options .vbm-option { min-height: 378px; }
    .vat-master .vbm-map__frame { min-height: 223px; }
    .vat-master .vbm-hero__media { aspect-ratio: 354 / 237; }
}

@media (max-width: 430px) {
    /* Approved Figma mobile: 3 × 114px by 98px facts separated by 6px. */
    .vat-master .vbm-facts { gap: 6px; }
    .vat-master .vbm-fact { min-height: 98px; }
}
@media (min-width: 1101px) {
    /* Keep the desktop hero geometry stable even when supported secondary facts are short. */
    .vat-master .vbm-hero__grid { min-height: 521px; }
}
@media (max-width: 430px) {
    /* Mobile master: 354×222 Why Visit photograph and 488px warm editorial panel. */
    .vat-master .vbm-why__media img { aspect-ratio: 354 / 222; }
    .vat-master .vbm-why__text { display: flex; flex-direction: column; min-height: 488px; }
    .vat-master .vbm-why__text > .vbm-btn { align-self: flex-start; margin-top: auto; }
}

/* Shared guide CTA arrangement; the approved Beach typography/colors remain inherited. */
.vbm-guide .vat-guide-cta__card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:34px;background:#f8eee4;padding:40px;border-radius:20px}
.vbm-guide .vat-guide-cta__eyebrow{letter-spacing:.08em;text-transform:uppercase;font-size:11px}
.vbm-guide .vat-guide-cta__action{padding:25px;background:#fff;border-radius:14px;align-self:center}
.vbm-guide .vat-guide-cta__action input{display:block;width:100%;margin:8px 0 14px;padding:12px;border:1px solid #ddd;border-radius:6px}
@media(max-width:720px){.vbm-guide .vat-guide-cta__card{grid-template-columns:1fr;padding:24px;gap:20px}}

/* F6 Destination Master: the same Beach components, tokens and breakpoints, with content-aware composition. */
.vat-master--destination .vbm-destination-stay .vbm-stay__card { min-height: 225px; }
.vat-master--destination .vbm-destination-stay .vbm-stay__body { height: 100%; display: flex; flex-direction: column; }
.vat-master--destination .vbm-destination-stay .vbm-stay__actions { margin-top: auto; padding-top: 20px; }


@media (max-width: 767px) {
    .vat-master--destination .vbm-destination-stay .vbm-stay__card { min-height: 0; }
    .vat-master--destination .vbm-destination-stay .vbm-stay__body { min-height: 205px; }
}

/* Destination editorial panels grow with actual approved copy, unlike fixed-height Beach photo treatment. */
@media (min-width: 1101px) {
    .vat-master--destination .vbm-why__card { min-height: 460px; }
}
@media (max-width: 430px) {
    .vat-master--destination .vbm-why__text { min-height: 0; }
    .vat-master--destination .vbm-why__text > .vbm-btn { margin-top: 26px; }
}

/* DEV10.5.6-F7: Attraction shares Beach/Destination masters; no fixed-height text clipping. */
.vat-master--attraction .vbm-why__text, .vat-master--attraction .vbm-why__card { min-height: 0; }
.vat-master--attraction .vbm-why__text > .vbm-btn { margin-top: 26px; }
.vat-master--attraction .vbm-attraction-site .vbm-essentials__col li { overflow-wrap: anywhere; }
@media (max-width: 768px) {
 .vat-master--attraction .vbm-why__text { min-height: 0; }
 .vat-master--attraction .vbm-attraction-site .vbm-expect__story { min-height: 0; }
}

@media (min-width: 769px) { .vat-master--attraction .vbm-hero h1 { font-size: clamp(2.9rem, 3.6vw, 3.55rem); line-height: 1.08; } }
@media (max-width: 768px) { .vat-master--attraction .vbm-hero h1 { font-size: clamp(2rem, 9vw, 2.4rem); line-height: 1.06; } }

/* F12 / Entity master real-content composition.
   Scoped to Destination/Attraction. Beach Master geometry stays approved and untouched.
   One 1324px outer rail, optional media never reserves an empty column. */
.vat-master--destination,
.vat-master--attraction { --vbm-section: clamp(42px, 4.1vw, 66px); }
.vat-master--destination .vbm-wrap,
.vat-master--attraction .vbm-wrap { min-width: 0; }
.vat-master--destination .vbm-head,
.vat-master--attraction .vbm-head { max-width: 1100px; }
.vat-master--destination .vbm-head__intro,
.vat-master--attraction .vbm-head__intro { max-width: 900px; }
.vat-master--destination .vbm-options .vbm-option,
.vat-master--attraction .vbm-options .vbm-option,
.vat-master--destination .vbm-fit__card,
.vat-master--attraction .vbm-fit__card,
.vat-master--destination .vbm-stay__card,
.vat-master--attraction .vbm-stay__card { min-height: 0; }
.vat-master--destination .vbm-hero__description,
.vat-master--attraction .vbm-hero__description { display: contents; }
.vat-master--destination .vbm-stay__body,
.vat-master--attraction .vbm-stay__body { height: auto; min-height: 0; }
.vat-master--destination .vbm-stay__body p,
.vat-master--attraction .vbm-stay__body p { max-width: none; }
.vat-master--destination .vbm-why--text .vbm-why__card,
.vat-master--attraction .vbm-why--text .vbm-why__card { min-height: 0; }
.vat-master--destination .vbm-why--text .vbm-why__body,
.vat-master--attraction .vbm-why--text .vbm-why__body { max-width: none; }
.vat-master--destination .vbm-expect__row--single,
.vat-master--attraction .vbm-expect__row--single { max-width: none; min-height: 0; }

/* Without media: a two-column editorial fallback rather than a huge blank photo hole.
   With media: the existing Figma image-left hero and overview remain unchanged. */
@media (min-width: 901px) {
  .vat-master--destination .vbm-hero--text .vbm-hero__grid,
  .vat-master--attraction .vbm-hero--text .vbm-hero__grid { min-height: 0; }
  .vat-master--destination .vbm-hero--text .vbm-hero__copy,
  .vat-master--attraction .vbm-hero--text .vbm-hero__copy {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    align-items: start;
    column-gap: clamp(32px, 5vw, 88px);
    row-gap: 20px;
    max-width: none;
  }
  .vat-master--destination .vbm-hero--text .vbm-hero__copy > .vbm-eyebrow,
  .vat-master--attraction .vbm-hero--text .vbm-hero__copy > .vbm-eyebrow { grid-column: 1; grid-row: 1; }
  .vat-master--destination .vbm-hero--text h1,
  .vat-master--attraction .vbm-hero--text h1 { grid-column: 1; grid-row: 2; }
  .vat-master--destination .vbm-hero--text .vbm-hero__description,
  .vat-master--attraction .vbm-hero--text .vbm-hero__description {
    display: block; grid-column: 2; grid-row: 1 / 4;
    padding: 18px 0 12px 30px; border-left: 2px solid var(--vbm-border-strong);
  }
  .vat-master--destination .vbm-hero--text .vbm-hero__description .vbm-hero__intro,
  .vat-master--attraction .vbm-hero--text .vbm-hero__description .vbm-hero__intro { max-width: 620px; }
  .vat-master--destination .vbm-hero--text .vbm-actions,
  .vat-master--attraction .vbm-hero--text .vbm-actions { grid-column: 1; grid-row: 3; }
  .vat-master--destination .vbm-hero--text .vbm-facts,
  .vat-master--attraction .vbm-hero--text .vbm-facts {
    grid-column: 1 / -1; grid-row: 4; width: 100%; margin-top: 26px;
    grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
  }
  .vat-master--destination .vbm-why--text .vbm-why__body,
  .vat-master--attraction .vbm-why--text .vbm-why__body {
    display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
    gap: clamp(26px, 4vw, 62px); align-items: start;
    padding: clamp(34px, 3.6vw, 52px);
  }
  .vat-master--destination .vbm-why--text .vbm-why__text,
  .vat-master--attraction .vbm-why--text .vbm-why__text { margin-top: 0; }
}
/* Destination activity composition: every approved item has a full card, and
   Passport signatures are fallback-only. Logistics live in an Arrival disclosure. */

.vat-master--destination .vbm-arrival-context {
  margin-top: 22px; padding: 16px 22px; border: 1px solid var(--vbm-border);
  background: var(--vbm-card); border-radius: 16px;
}
.vat-master--destination .vbm-arrival-context > summary {
  color: var(--vbm-orange-ink); font-size: .94rem; font-weight: 600; cursor: pointer;
}
.vat-master--destination .vbm-arrival-context__body {
  display: grid; gap: 12px; max-width: 1000px;
  padding-top: 18px; color: var(--vbm-text); font-size: .95rem;
}
.vat-master--destination .vbm-arrival-context__body p { margin: 0; }

/* Stay areas are a responsive list of all relevant named bases. No invented
   association between an accommodation TYPE and a particular AREA. */
.vat-master--destination .vbm-destination-stay .vbm-stay__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.vat-master--destination .vbm-destination-stay .vbm-stay__grid--1 { grid-template-columns: minmax(0, 1fr); }
.vat-master--destination .vbm-destination-stay .vbm-stay__card--no-media { min-height: 0; }
.vat-master--destination .vbm-destination-stay .vbm-stay__body { padding: clamp(22px, 2.4vw, 32px); }
.vat-master--destination .vbm-destination-stay .vbm-stay__body p { max-width: 760px; }
.vat-master--destination .vbm-destination-stay .vbm-stay__actions { margin-top: 20px; padding-top: 18px; }

/* Attraction: on-site text and visit tips align on the same rail rather than
   two vertically separated and mismatched-width columns. */
@media (min-width: 901px) {
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-wrap {
    display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
    gap: 24px clamp(24px, 3vw, 46px); align-items: start;
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-head { grid-column: 1 / -1; }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-expect__story {
    grid-column: 1; grid-row: 2; min-width: 0;
    padding: clamp(18px, 2.2vw, 30px); background: var(--vbm-card);
    border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius);
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-expect__row {
    grid-column: 2; grid-row: 2; display: grid; grid-template-columns: 1fr;
    gap: 18px; margin: 0; max-width: none; min-height: 0;
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-expect__media img {
    width: 100%; height: auto; min-height: 0; aspect-ratio: 16/9; object-fit: cover;
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-essentials__cols {
    grid-template-columns: minmax(0,1fr); gap: 18px;
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-essentials__col + .vbm-essentials__col {
    padding-left: 0; padding-top: 18px; border-left: 0; border-top: 1px solid var(--vbm-border);
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-essentials__col:first-child { padding-right: 0; }
}
@media (min-width: 1250px) {
  /* Make short on-site planning lists compact; avoid a tall, mostly empty right panel. */
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-essentials__cols:not(.vbm-essentials__cols--one) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-essentials__col + .vbm-essentials__col {
    padding-left: 18px; padding-top: 0; border-left: 1px solid var(--vbm-border); border-top: 0;
  }
  .vat-master--attraction .vbm-attraction-site--with-sidebar .vbm-essentials__col:first-child { padding-right: 14px; }
}
@media (max-width: 900px) {


  .vat-master--destination .vbm-destination-stay .vbm-stay__grid { grid-template-columns: minmax(0,1fr); }
  .vat-master--destination .vbm-options .vbm-option,
  .vat-master--attraction .vbm-options .vbm-option { min-height: 0; }
  .vat-master--attraction .vbm-attraction-site .vbm-expect__row { min-height: 0; }
}
@media (max-width: 768px) {
  .vat-master--destination .vbm-hero__description,
  .vat-master--attraction .vbm-hero__description { display: block; }

  .vat-master--destination .vbm-destination-stay .vbm-stay__body { min-height: 0; }
}
/* F15 Attraction Master refinement (Figma Attraction 217:2 Desktop / 217:533 Mobile) — scoped to
   .vat-master--attraction only; Beach, Destination and Hub rules are untouched. Content-driven heights. */
/* Visit Essentials / Before you go: one white card, icon + label + value or the whole approved note (3 × 2 on desktop). */

/* Hero: the photo always follows the frame proportion (800:520 desktop, 16:10 tablet, 354:237 phone); a portrait
   photograph is cropped instead of stretching the hero to 1600px on tablets. */
.vat-master--attraction .vbm-hero__media { overflow: hidden; }
.vat-master--attraction .vbm-hero__media img { position: absolute; inset: 0; }

/* Getting There: the mode tag sits between the number and the icon, as in the master. */
.vat-master--attraction .vbm-option__top { gap: 14px; }

@media (max-width: 768px) {

/* Odd fact counts on the two-column phone grid: the last fact spans the row instead of leaving a half cell. */


}


/* Stay nearby: Beach base cards (F14) reused; with a photo on every base, the Figma photo card. */
.vat-master--attraction .vbm-stay--bases .vbm-stay__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 20px); }
.vat-master--attraction .vbm-stay--bases .vbm-stay__grid--1 { grid-template-columns: minmax(0, 640px); }
.vat-master--attraction .vbm-stay__card--base { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; align-items: start; min-height: 0; padding: clamp(18px, 1.8vw, 24px); overflow: visible; }
.vat-master--attraction .vbm-stay__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--vbm-peach-soft); border: 1px solid var(--vbm-border-strong); color: var(--vbm-orange-ink); font-size: 1.25rem; }
.vat-master--attraction .vbm-stay__card--base .vbm-stay__body { display: grid; gap: 6px; padding: 0; min-height: 0; }
.vat-master--attraction .vbm-stay__card--base .vbm-stay__body h3 { font-size: clamp(1.4rem, 1.9vw, 1.7rem); }
.vat-master--attraction .vbm-stay__card--base .vbm-stay__facts { color: var(--vbm-ink); font-size: .84rem; font-weight: 600; }
.vat-master--attraction .vbm-stay__card--base .vbm-stay__actions { margin-top: 8px; padding-top: 12px; }
.vat-master--attraction .vbm-stay__card--photo { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0; overflow: hidden; }
.vat-master--attraction .vbm-stay__card--photo .vbm-stay__media img { height: 196px; }
.vat-master--attraction .vbm-stay__card--photo .vbm-stay__body { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 22px 26px 18px; }
.vat-master--attraction .vbm-stay__card--photo .vbm-stay__actions { margin-top: auto; }
@media (max-width: 768px) {
  .vat-master--attraction .vbm-stay--bases .vbm-stay__grid,
  .vat-master--attraction .vbm-stay--bases .vbm-stay__grid--1 { grid-template-columns: minmax(0, 1fr); }
  .vat-master--attraction .vbm-stay__card--base:not(.vbm-stay__card--photo) { grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 16px; }
  .vat-master--attraction .vbm-stay__icon { width: 38px; height: 38px; font-size: 1.1rem; }
  .vat-master--attraction .vbm-stay__card--base .vbm-stay__body h3 { font-size: 23px; }
  .vat-master--attraction .vbm-stay__card--photo .vbm-stay__media img { height: auto; aspect-ratio: 16 / 9; }
  .vat-master--attraction .vbm-stay__card--photo .vbm-stay__body { padding: 18px 18px 14px; }
}

/* F13 Destination refinement — scoped to .vat-master--destination only (Beach, Attraction and Hub untouched).
   Content-driven heights: no min-height, no fixed card heights; cards in one row share the row height. */

/* Getting There: one card structure (number + mode icon, title, approved text, labelled facts, warning note). */
.vat-master--destination .vbm-arrival-card { padding: clamp(22px, 2vw, 28px); }
.vat-master--destination .vbm-arrival-card .vbm-option__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--vbm-peach-soft); border: 1px solid var(--vbm-border-strong); color: var(--vbm-orange-ink); font-size: 1.3rem; }
.vat-master--destination .vbm-arrival-card h3 { margin: 16px 0 10px; }
.vat-master--destination .vbm-arrival-card__text p { color: var(--vbm-text); font-size: .9rem; line-height: 1.6; }
.vat-master--destination .vbm-arrival-card__text p + p { margin-top: 10px; }
.vat-master--destination .vbm-arrival-card__facts { display: grid; gap: 12px; margin: 18px 0 0; }
.vat-master--destination .vbm-arrival-card__facts dt { color: var(--vbm-muted); font-size: .64rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.vat-master--destination .vbm-arrival-card__facts dd { margin: 3px 0 0; color: var(--vbm-ink); font-size: .86rem; line-height: 1.5; }
.vat-master--destination .vbm-arrival-card__note { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px !important; padding: 12px 14px; background: var(--vbm-peach-soft); border-radius: 12px; color: var(--vbm-ink); font-size: .84rem; line-height: 1.5; }
.vat-master--destination .vbm-arrival-card__note .vbm-icon { margin-top: 2px; color: var(--vbm-orange-ink); font-size: 1.05rem; }

/* Travel realities: a calm disclosure with icon, count and readable note columns. */
.vat-master--destination .vbm-arrival-context { margin-top: clamp(16px, 2vw, 24px); padding: 0; overflow: hidden; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: 20px; }
.vat-master--destination .vbm-arrival-context > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 16px 22px; color: var(--vbm-ink); font-size: 1rem; font-weight: 400; cursor: pointer; list-style: none; }
.vat-master--destination .vbm-arrival-context > summary::-webkit-details-marker { display: none; }
.vat-master--destination .vbm-arrival-context > summary:hover .vbm-arrival-context__title strong { color: var(--vbm-orange-ink); }
.vat-master--destination .vbm-arrival-context__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--vbm-peach); color: var(--vbm-orange-ink); font-size: 1.3rem; }
.vat-master--destination .vbm-arrival-context__title { display: grid; gap: 4px; min-width: 0; }
.vat-master--destination .vbm-arrival-context__title strong { color: var(--vbm-ink); font-size: 1.02rem; font-weight: 600; line-height: 1.3; }
.vat-master--destination .vbm-arrival-context__count { color: var(--vbm-muted); font-size: .8rem; white-space: nowrap; }
.vat-master--destination .vbm-arrival-context__chevron { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--vbm-border-strong); background: var(--vbm-peach-soft); color: var(--vbm-orange); line-height: 1; }
.vat-master--destination .vbm-arrival-context__chevron::before { content: '+'; }
.vat-master--destination .vbm-arrival-context[open] .vbm-arrival-context__chevron::before { content: '–'; }
.vat-master--destination .vbm-arrival-context__body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; max-width: none; padding: 0 22px 22px; color: var(--vbm-text); font-size: .9rem; }
.vat-master--destination .vbm-arrival-context__body--1 { max-width: none; }
.vat-master--destination .vbm-arrival-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-content: start; padding: 16px 18px; background: var(--vbm-bg); border-radius: 14px; }
.vat-master--destination .vbm-arrival-note__num { color: var(--vbm-orange); font-family: var(--vbm-serif); font-size: 1.6rem; line-height: 1; }
.vat-master--destination .vbm-arrival-note p { max-width: 62ch; margin: 0; line-height: 1.6; }
.vat-master--destination .vbm-arrival-note strong { color: var(--vbm-ink); font-weight: 600; }
@media (min-width: 901px) {
  .vat-master--destination .vbm-arrival-context__body--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vat-master--destination .vbm-arrival-context__body--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Suitability: the family note sits inside the "Think twice" card. */
.vat-master--destination .vbm-fit__card { display: flex; flex-direction: column; }
.vat-master--destination .vbm-fit__card-note { margin-top: 18px !important; padding: 12px 14px; background: var(--vbm-card); border-radius: 12px; color: var(--vbm-text); font-size: .86rem; line-height: 1.5; }
.vat-master--destination .vbm-fit__card-note strong { color: var(--vbm-ink); }

/* Where to stay: compact area chooser, 2×2 on desktop (3 areas → 3 columns), one column on phones. */
.vat-master--destination .vbm-areas__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
.vat-master--destination .vbm-areas__grid--1 { grid-template-columns: minmax(0, 640px); }
.vat-master--destination .vbm-area { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 18px; align-items: start; padding: clamp(18px, 1.8vw, 24px); background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: 20px; }
.vat-master--destination .vbm-area__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--vbm-peach-soft); border: 1px solid var(--vbm-border-strong); color: var(--vbm-orange-ink); font-size: 1.35rem; }
.vat-master--destination .vbm-area__body { min-width: 0; }
.vat-master--destination .vbm-area h3 { margin: 2px 0 6px; font-size: clamp(1.35rem, 1.8vw, 1.6rem); }
.vat-master--destination .vbm-area__text { color: var(--vbm-text); font-size: .9rem; line-height: 1.55; }
.vat-master--destination .vbm-area__text + .vbm-area__tradeoff { margin-top: 8px; }
.vat-master--destination .vbm-area__tradeoff + .vbm-area__text { margin-top: 10px; }
.vat-master--destination .vbm-area__tradeoff { color: var(--vbm-ink); font-size: .86rem; line-height: 1.5; }
.vat-master--destination .vbm-area__tradeoff span { display: inline-block; margin-right: 6px; padding: 2px 8px; border-radius: 999px; background: var(--vbm-peach-soft); color: var(--vbm-orange-ink); font-size: .62rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; vertical-align: 1px; }
.vat-master--destination .vbm-area__fit { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; color: var(--vbm-muted); font-size: .84rem; line-height: 1.45; }
.vat-master--destination .vbm-area__fit .vbm-icon { margin-top: 2px; color: var(--vbm-orange-ink); }
.vat-master--destination .vbm-areas__notes { margin-top: 16px; padding: 16px 20px; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: 16px; }
.vat-master--destination .vbm-areas__notes ul { display: grid; gap: 6px; margin-top: 8px; }
.vat-master--destination .vbm-areas__notes li { position: relative; padding-left: 16px; color: var(--vbm-text); font-size: .88rem; }
.vat-master--destination .vbm-areas__notes li::before { content: ''; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--vbm-orange); }
.vat-master--destination .vbm-areas__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 18px; }
.vat-master--destination .vbm-areas__types { color: var(--vbm-ink); font-size: .9rem; }
.vat-master--destination .vbm-areas__types .vbm-eyebrow { margin-right: 8px; }
@media (min-width: 1101px) {
  .vat-master--destination .vbm-areas__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .vat-master--destination .vbm-arrival-card .vbm-option__icon { width: 38px; height: 38px; font-size: 1.1rem; }
  .vat-master--destination .vbm-arrival-card__text p, .vat-master--destination .vbm-area__text { font-size: 14px; }
  .vat-master--destination .vbm-arrival-card__facts dd, .vat-master--destination .vbm-arrival-card__note, .vat-master--destination .vbm-area__tradeoff, .vat-master--destination .vbm-fit__card-note { font-size: 13px; }
  .vat-master--destination .vbm-arrival-context > summary { grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; padding: 14px 16px; }
  .vat-master--destination .vbm-arrival-context__icon { width: 36px; height: 36px; font-size: 1.1rem; }
  .vat-master--destination .vbm-arrival-context__count { display: none; }
  .vat-master--destination .vbm-arrival-context__title strong { font-size: 14.5px; }
  .vat-master--destination .vbm-arrival-context__body { padding: 0 14px 14px; font-size: 14px; }
  .vat-master--destination .vbm-arrival-note { padding: 14px; }
  .vat-master--destination .vbm-areas__grid { grid-template-columns: minmax(0, 1fr); }
  .vat-master--destination .vbm-area { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 18px; }
  .vat-master--destination .vbm-area__icon { width: 40px; height: 40px; font-size: 1.15rem; }
  .vat-master--destination .vbm-area h3 { font-size: 23px; }


}

/* F15.1 visual & data fallback refinement — four target sections only:
   Destination · Getting There (content-weighted columns), Beach + Attraction · Stay Nearby (compact name-only bases),
   Attraction · Getting There (one mode beside the Parking panel). Other sections and Hub are untouched. */

/* Beach + Attraction · Stay Nearby: a base with only a name is a compact card and is not stretched to its neighbour. */
.vat-master--beach .vbm-stay--bases .vbm-stay__grid--uneven,
.vat-master--attraction .vbm-stay--bases .vbm-stay__grid--uneven,
.vat-master--beach .vbm-stay--bases .vbm-stay__grid--minimal,
.vat-master--attraction .vbm-stay--bases .vbm-stay__grid--minimal { align-items: start; }
.vat-master--beach .vbm-stay__card--base.vbm-stay__card--minimal,
.vat-master--attraction .vbm-stay__card--base.vbm-stay__card--minimal { grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 14px; padding: 14px 18px; }
.vat-master--beach .vbm-stay__card--minimal .vbm-stay__icon,
.vat-master--attraction .vbm-stay__card--minimal .vbm-stay__icon { width: 40px; height: 40px; font-size: 1.1rem; }
.vat-master--beach .vbm-stay__card--base.vbm-stay__card--minimal .vbm-stay__body,
.vat-master--attraction .vbm-stay__card--base.vbm-stay__card--minimal .vbm-stay__body { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.vat-master--beach .vbm-stay__card--base.vbm-stay__card--minimal .vbm-stay__body h3,
.vat-master--attraction .vbm-stay__card--base.vbm-stay__card--minimal .vbm-stay__body h3 { font-size: clamp(1.3rem, 1.7vw, 1.55rem); }
.vat-master--beach .vbm-stay__card--base.vbm-stay__card--minimal .vbm-stay__actions,
.vat-master--attraction .vbm-stay__card--base.vbm-stay__card--minimal .vbm-stay__actions { margin-top: 0; padding-top: 0; border-top: 0; }

/* Attraction · Getting There: one arrival mode sits beside the Parking panel instead of above it. */
@media (min-width: 901px) {
  .vat-master--attraction .vbm-access__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.1vw, 30px); align-items: stretch; }
  .vat-master--attraction .vbm-access__pair .vbm-options--1 { max-width: none; }
  .vat-master--attraction .vbm-access__pair .vbm-advisory { grid-template-columns: auto minmax(0, 1fr); align-content: start; margin-top: 0; }
  .vat-master--attraction .vbm-access__pair .vbm-advisory__tips { grid-column: 1 / -1; padding-left: 0; padding-top: 14px; border-left: 0; border-top: 1px solid var(--vbm-border-strong); }
}

/* F13.2 Destination visual refinement — scoped to .vat-master--destination only (Beach, Attraction, Hub untouched).
   No fixed heights and no text clipping: grids size to the real content. */

/* Getting There: "2 + 1" on desktop when the renderer chose it (--split) — Drive and Transfer stack on the left, Without a
   car spans both rows on the right. Left cards keep natural heights; row 2 absorbs extra height if the right is longer. */
.vat-master--destination .vbm-destination-arrival .vbm-option__num { font-size: 2.1rem; }
.vat-master--destination .vbm-destination-arrival .vbm-arrival-card h3 { margin: 12px 0 8px; }
.vat-master--destination .vbm-destination-arrival .vbm-arrival-card__facts { margin-top: 14px; gap: 10px; }
.vat-master--destination .vbm-destination-arrival .vbm-arrival-card__note { margin-top: 14px; }


@media (min-width: 901px) and (max-width: 1100px) {
/* Tablet: three equal columns would be too narrow to read; two columns, the third card on its own row. */

}

/* Travel realities: same disclosure and notes, slightly tighter. */
.vat-master--destination .vbm-arrival-context { margin-top: clamp(14px, 1.5vw, 20px); }
.vat-master--destination .vbm-arrival-context > summary { padding: 14px 20px; }
.vat-master--destination .vbm-arrival-context__body { gap: 12px; padding: 0 20px 20px; }
.vat-master--destination .vbm-arrival-note { padding: 14px 16px; }

/* Where to stay: same cards, tighter spacing. */
.vat-master--destination .vbm-areas__grid { gap: clamp(12px, 1.2vw, 16px); }
.vat-master--destination .vbm-area { gap: 16px; padding: clamp(16px, 1.4vw, 20px); }
.vat-master--destination .vbm-area__icon { width: 44px; height: 44px; font-size: 1.25rem; }
.vat-master--destination .vbm-area h3 { margin: 0 0 4px; }
.vat-master--destination .vbm-areas__notes { margin-top: 14px; padding: 14px 18px; }
.vat-master--destination .vbm-areas__foot { margin-top: 14px; }
@media (max-width: 768px) {
  .vat-master--destination .vbm-area { grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 16px; }
  .vat-master--destination .vbm-area__icon { width: 38px; height: 38px; font-size: 1.1rem; }
}

/* F14 Beach Master refinement — scoped to .vat-master--beach (What to Expect, Stay nearby) and two Destination fixes
   scoped to .vat-master--destination. Attraction and Hub are untouched. No fixed text heights, no clipping. */

/* Beach · What to Expect: [story | photo], then Beach essentials across the full width. */
.vat-master--beach .vbm-expect__lead { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 3.2vw, 48px); align-items: stretch; }
.vat-master--beach .vbm-expect__lead--text,
.vat-master--beach .vbm-expect__lead--media { grid-template-columns: minmax(0, 1fr); }
.vat-master--beach .vbm-expect__lead .vbm-expect__story { max-width: none; }
.vat-master--beach .vbm-expect__photo { position: relative; margin: 0; min-height: 280px; overflow: hidden; border-radius: var(--vbm-radius); }
.vat-master--beach .vbm-expect__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vat-master--beach .vbm-expect__lead--media .vbm-expect__photo { min-height: 0; aspect-ratio: 16 / 9; max-width: 760px; }
@media (min-width: 1101px) {
  /* No photo: the story uses the full row in two readable columns instead of one 150-character line. */
  .vat-master--beach .vbm-expect__lead--text .vbm-expect__story { columns: 2 340px; column-gap: clamp(32px, 4vw, 56px); }
  .vat-master--beach .vbm-expect__lead--text .vbm-expect__story > * { break-inside: avoid; }
}
.vat-master--beach .vbm-essentials--wide { margin-top: clamp(20px, 2.4vw, 32px); }
.vat-master--beach .vbm-essentials__items { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding-top: 18px; }
.vat-master--beach .vbm-essentials__items--cols-1 { grid-template-columns: minmax(0, 360px); }
.vat-master--beach .vbm-essentials__items--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vat-master--beach .vbm-essentials__items--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vat-master--beach .vbm-essential { display: flex; gap: 12px; align-items: flex-start; min-width: 0; padding: 14px 16px; background: var(--vbm-card); border: 1px solid var(--vbm-border-strong); border-radius: var(--vbm-radius-sm); }
.vat-master--beach .vbm-essential__icon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--vbm-peach); color: var(--vbm-orange-ink); font-size: 1.1rem; }
.vat-master--beach .vbm-essential__body { display: grid; gap: 3px; min-width: 0; }
.vat-master--beach .vbm-essential__label { color: var(--vbm-muted); font-size: .64rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.vat-master--beach .vbm-essential strong { color: var(--vbm-ink); font-size: .98rem; font-weight: 600; line-height: 1.3; overflow-wrap: break-word; }
.vat-master--beach .vbm-essential small { color: var(--vbm-text); font-size: .82rem; line-height: 1.45; }
.vat-master--beach .vbm-essentials__bring { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--vbm-border-strong); }
.vat-master--beach .vbm-essentials__bring h4 { margin-bottom: 10px; }
.vat-master--beach .vbm-essentials__bring .vbm-bring { display: flex; flex-wrap: wrap; gap: 8px 22px; }
@media (max-width: 1100px) {
  .vat-master--beach .vbm-essentials__items--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .vat-master--beach .vbm-expect__lead { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .vat-master--beach .vbm-expect__photo { min-height: 0; aspect-ratio: 16 / 10; }
}
@media (max-width: 768px) {
  .vat-master--beach .vbm-essentials__items--cols-3,
  .vat-master--beach .vbm-essentials__items--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vat-master--beach .vbm-essential { padding: 12px; gap: 10px; }
  .vat-master--beach .vbm-essential strong { font-size: 14px; }
  .vat-master--beach .vbm-essential small { font-size: 12.5px; }
}
@media (max-width: 430px) {
  .vat-master--beach .vbm-essentials__items,
  .vat-master--beach .vbm-essentials__items--cols-1,
  .vat-master--beach .vbm-essentials__items--cols-2,
  .vat-master--beach .vbm-essentials__items--cols-3,
  .vat-master--beach .vbm-essentials__items--cols-4 { grid-template-columns: minmax(0, 1fr); }
}

/* Beach · Stay nearby: compact base cards, no large photos; one base = one card, not half an empty row. */
.vat-master--beach .vbm-stay--bases .vbm-stay__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 20px); }
.vat-master--beach .vbm-stay--bases .vbm-stay__grid--1 { grid-template-columns: minmax(0, 640px); }
.vat-master--beach .vbm-stay__card--base { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; align-items: start; min-height: 0; padding: clamp(18px, 1.8vw, 24px); overflow: visible; }
.vat-master--beach .vbm-stay__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--vbm-peach-soft); border: 1px solid var(--vbm-border-strong); color: var(--vbm-orange-ink); font-size: 1.25rem; }
.vat-master--beach .vbm-stay__card--base .vbm-stay__body { display: grid; gap: 6px; padding: 0; min-height: 0; }
.vat-master--beach .vbm-stay__card--base .vbm-stay__body h3 { font-size: clamp(1.4rem, 1.9vw, 1.7rem); }
.vat-master--beach .vbm-stay__card--base .vbm-stay__body p { max-width: none; }
.vat-master--beach .vbm-stay__card--base .vbm-stay__facts { color: var(--vbm-ink); font-size: .84rem; font-weight: 600; }
.vat-master--beach .vbm-stay__card--base .vbm-stay__actions { margin-top: 8px; padding-top: 12px; }
@media (max-width: 768px) {
  .vat-master--beach .vbm-stay--bases .vbm-stay__grid,
  .vat-master--beach .vbm-stay--bases .vbm-stay__grid--1 { grid-template-columns: minmax(0, 1fr); }
  .vat-master--beach .vbm-stay__card--base { grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 16px; }
  .vat-master--beach .vbm-stay__icon { width: 38px; height: 38px; font-size: 1.1rem; }
  .vat-master--beach .vbm-stay__card--base .vbm-stay__body h3 { font-size: 23px; }
}


/* F19.4: the approved count-adaptive public compositions. Content stays in Canonical Page blocks. */

/* Experiences: one landscape photo, then one complete collection in editorial order. */
.vat-master--destination .vbm-destination-things__media { margin: 0 0 24px; overflow: hidden; border-radius: var(--vbm-radius); }
.vat-master--destination .vbm-destination-things__media img { display: block; width: 100%; height: clamp(260px, 24vw, 340px); object-fit: cover; object-position: center; }
.vat-master--destination .vbm-destination-activities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 0; margin: 0; list-style: none; align-items: start; }
.vat-master--destination .vbm-destination-activity { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; min-width: 0; padding: clamp(20px, 2.1vw, 30px); background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); }
.vat-master--destination .vbm-destination-activity:last-child:nth-child(odd) { grid-column: 1 / -1; }
.vat-master--destination .vbm-destination-activity:last-child:nth-child(odd) > div { max-width: 88ch; }
.vat-master--destination .vbm-destination-activity__num { font-family: var(--vbm-serif); font-size: 2rem; line-height: 1.1; color: var(--vbm-orange); }
.vat-master--destination .vbm-destination-activity h3 { margin: 0 0 10px; font-size: clamp(1.3rem, 1.8vw, 1.65rem); }
.vat-master--destination .vbm-destination-activity p { margin: 0; font-size: 1rem; line-height: 1.65; }
.vat-master--destination .vbm-destination-things__tips { margin-top: 24px; }

/* Site guide: an independently sized photo and short introduction; all detailed content below. */
.vat-master--attraction .vbm-site__lead { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 3vw, 40px); align-items: start; margin-bottom: 28px; }
.vat-master--attraction .vbm-site__lead--media { grid-template-columns: minmax(0, 760px); }
.vat-master--attraction .vbm-site__photo { margin: 0; overflow: hidden; border-radius: var(--vbm-radius); }
.vat-master--attraction .vbm-site__photo img { display: block; position: static; width: 100%; height: auto; aspect-ratio: 16 / 10; max-height: 420px; object-fit: cover; }
.vat-master--attraction .vbm-site__intro { padding: 12px 0; color: var(--vbm-text); font-size: 1rem; line-height: 1.7; }
.vat-master--attraction .vbm-site__intro p { max-width: 65ch; margin: 14px 0 0; }
.vat-master--attraction .vbm-site__story { max-width: 82ch; margin: 0 0 28px; color: var(--vbm-text); font-size: 1rem; line-height: 1.7; }
.vat-master--attraction .vbm-site__story p { margin: 0 0 18px; }
.vat-master--attraction .vbm-site__plan { padding: clamp(22px, 2.5vw, 34px); background: var(--vbm-peach-soft); border: 1px solid var(--vbm-border-strong); border-radius: var(--vbm-radius); }
.vat-master--attraction .vbm-site__plan-head { display: flex; justify-content: space-between; align-items: start; gap: 18px; padding-bottom: 22px; border-bottom: 1px solid var(--vbm-border-strong); }
.vat-master--attraction .vbm-site__plan-head h3 { margin: 8px 0 0; font-size: clamp(1.6rem, 2.1vw, 2rem); }
.vat-master--attraction .vbm-site__mark { color: var(--vbm-orange-ink); font-size: 1.9rem; }
.vat-master--attraction .vbm-site__col { padding-top: 24px; min-width: 0; }
.vat-master--attraction .vbm-site__col + .vbm-site__col { margin-top: 24px; border-top: 1px solid var(--vbm-border-strong); }
.vat-master--attraction .vbm-site__col h4 { margin: 0 0 18px; font-size: 1.45rem; }
.vat-master--attraction .vbm-site__see, .vat-master--attraction .vbm-site__notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
.vat-master--attraction .vbm-site__see li, .vat-master--attraction .vbm-site__notes li { align-items: start; min-width: 0; line-height: 1.65; }
.vat-master--attraction .vbm-site__see li:last-child:nth-child(odd), .vat-master--attraction .vbm-site__notes li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.vat-master--attraction .vbm-site__see strong { display: block; font-size: 1.04rem; line-height: 1.45; }
.vat-master--attraction .vbm-site__description { display: block; margin-top: 7px; max-width: 80ch; font-size: 1rem; line-height: 1.65; color: var(--vbm-text); }
.vat-master--attraction .vbm-site__notes { font-size: 1rem; }
.vat-master--attraction .vbm-site__notes .vbm-icon { margin-top: .25em; }
.vat-master--attraction .vbm-site__facilities { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--vbm-border-strong); }
.vat-master--attraction .vbm-site__facilities ul { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; }
.vat-master--attraction .vbm-site__facilities li { display: flex; align-items: start; gap: 9px; padding: 12px 16px; max-width: 100%; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: 12px; font-size: .96rem; line-height: 1.5; }
.vat-master--attraction .vbm-site__facilities small { display: block; margin-top: 3px; font-size: .91rem; color: var(--vbm-text); }
.vat-master--attraction .vbm-site__facilities .vbm-icon { color: var(--vbm-green); margin-top: .2em; }

/* Access and practical facts share a six-track grid: 3+2 and 3+2+2 end rows remain balanced. */
.vat-master .vbm-access .vbm-options, .vat-master .vbm-practical__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; max-width: none; align-items: start; }
.vat-master .vbm-access .vbm-options > *, .vat-master .vbm-practical__grid > * { grid-column: span 2; min-width: 0; }
.vat-master .vbm-access .vbm-options--1 > *, .vat-master .vbm-practical__grid--1 > * { grid-column: 1 / -1; }
.vat-master .vbm-access .vbm-options--2 > *, .vat-master .vbm-practical__grid--2 > * { grid-column: span 3; }
.vat-master .vbm-access .vbm-options:has(> :last-child:nth-child(3n + 1)):has(> :nth-child(4)) > :nth-last-child(-n + 4),
.vat-master .vbm-practical__grid:has(> :last-child:nth-child(3n + 1)):has(> :nth-child(4)) > :nth-last-child(-n + 4),
.vat-master .vbm-access .vbm-options:has(> :last-child:nth-child(3n + 2)) > :nth-last-child(-n + 2),
.vat-master .vbm-practical__grid:has(> :last-child:nth-child(3n + 2)) > :nth-last-child(-n + 2) { grid-column: span 3; }
.vat-master .vbm-access .vbm-option { min-height: 0; }
.vat-master .vbm-access .vbm-options--1 .vbm-option p { max-width: 90ch; }
.vat-master .vbm-practical__grid { gap: 0; margin: 0; padding: clamp(14px, 1.8vw, 24px); background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); }
.vat-master .vbm-practical__grid .vbm-fact { padding: 16px; border: 0; background: transparent; border-radius: 0; }
.vat-master .vbm-practical__grid .vbm-fact dt { font-size: .73rem; }
.vat-master .vbm-practical__grid .vbm-fact dd { margin-top: 9px; }
.vat-master .vbm-practical__grid .vbm-fact strong { font-size: 1.2rem; }
.vat-master .vbm-practical__grid .vbm-fact dd > span { max-width: 85ch; font-size: .96rem; line-height: 1.6; }
.vat-master--destination .vbm-arrival-context__body--1 { max-width: none; }
.vat-master--destination .vbm-arrival-context__body--1 .vbm-arrival-note p { max-width: 100ch; }
@media (min-width: 901px) {
  .vat-master--destination .vbm-arrival-context__body:has(> .vbm-arrival-note:nth-child(2)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vat-master--destination .vbm-arrival-context__body > .vbm-arrival-note:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* One base is a complete feature; two bases keep the existing balanced cards. */
.vat-master .vbm-stay--bases.vbm-stay--single .vbm-stay__grid--1 { grid-template-columns: minmax(0, 1fr); max-width: none; }
.vat-master .vbm-stay__card--photo { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.vat-master .vbm-stay__card--photo .vbm-stay__body { padding: 24px; }
.vat-master .vbm-stay--bases.vbm-stay--single .vbm-stay__card--photo { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; gap: 0; padding: 0; }
.vat-master .vbm-stay--single .vbm-stay__card--photo .vbm-stay__media { margin: 0; align-self: start; }
.vat-master .vbm-stay--single .vbm-stay__card--photo .vbm-stay__media img { display: block; width: 100%; height: auto; max-height: 360px; aspect-ratio: 16 / 10; object-fit: cover; }
.vat-master .vbm-stay--single .vbm-stay__card--photo .vbm-stay__body { padding: clamp(24px, 3vw, 42px); }
.vat-master .vbm-stay--single .vbm-stay__body p { max-width: 75ch; }

/* One Explore Around card component for Destination, Beach and Attraction, including missing images. */
.vat-master .vbm-explore__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 0; margin: 0; list-style: none; align-items: start; }
.vat-master .vbm-explore__list--1 { grid-template-columns: minmax(0, 420px); }
.vat-master .vbm-explore__list--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 920px; }
.vat-master .vbm-explore__list--1, .vat-master .vbm-explore__list--2 { margin-inline: auto; }
.vat-master .vbm-explore__list > li { min-width: 0; }
.vat-master .vbm-explore__row { display: flex; flex-direction: column; gap: 0; padding: 0; width: 100%; overflow: hidden; background: var(--vbm-card); border: 1px solid var(--vbm-border); border-radius: var(--vbm-radius); color: inherit; text-decoration: none; }
.vat-master a.vbm-explore__row:hover { border-color: var(--vbm-border-strong); }
.vat-master .vbm-explore__media { display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #ebe4da; color: #9a8a7c; }
.vat-master .vbm-explore__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vat-master .vbm-explore__media .vbm-icon { font-size: 2.4rem; }
.vat-master .vbm-explore__body { display: grid; gap: 9px; padding: 22px; }
.vat-master .vbm-explore__body strong { color: var(--vbm-ink); font-family: var(--vbm-serif); font-size: clamp(1.4rem, 1.8vw, 1.75rem); font-weight: 400; line-height: 1.2; overflow-wrap: break-word; }
.vat-master .vbm-explore__text { color: var(--vbm-text); font-size: .98rem; line-height: 1.6; }
.vat-master .vbm-explore__more { display: inline-flex; gap: 6px; align-items: center; margin-top: 5px; color: var(--vbm-orange-ink); font-size: .9rem; font-weight: 600; }
.vat-master .vbm-explore__arrow { display: none; }
@media (max-width: 1000px) {
  .vat-master .vbm-access .vbm-options, .vat-master .vbm-practical__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vat-master .vbm-access .vbm-options > *, .vat-master .vbm-practical__grid > * { grid-column: auto !important; }
  .vat-master .vbm-access .vbm-options > :last-child:nth-child(odd), .vat-master .vbm-practical__grid > :last-child:nth-child(odd) { grid-column: 1 / -1 !important; }
  .vat-master .vbm-explore__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vat-master .vbm-explore__list--1 { grid-template-columns: minmax(0, 420px); }
  .vat-master .vbm-explore__list--3 > li:last-child { grid-column: 1 / -1; width: calc((100% - 22px) / 2); justify-self: center; }
}
@media (max-width: 900px) {
  .vat-master--attraction .vbm-site__lead { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .vat-master--attraction .vbm-site__photo img { aspect-ratio: 16 / 9; }
}
@media (max-width: 650px) {
  .vat-master--destination .vbm-destination-activities { grid-template-columns: minmax(0, 1fr); }
  .vat-master--destination .vbm-destination-things__media img { height: auto; max-height: 340px; aspect-ratio: 16 / 10; }
  .vat-master--attraction .vbm-site__see, .vat-master--attraction .vbm-site__notes { grid-template-columns: minmax(0, 1fr); }
  .vat-master .vbm-access .vbm-options, .vat-master .vbm-practical__grid { grid-template-columns: minmax(0, 1fr); }
  .vat-master .vbm-practical__grid .vbm-fact { padding: 16px 6px; }
  .vat-master .vbm-practical__grid .vbm-fact + .vbm-fact { border-top: 1px solid var(--vbm-border); }
  .vat-master .vbm-stay--bases.vbm-stay--single .vbm-stay__card--photo { grid-template-columns: minmax(0, 1fr); }
  .vat-master .vbm-explore__list { grid-template-columns: minmax(0, 1fr); }
  .vat-master .vbm-explore__list--3 > li:last-child { grid-column: auto; width: auto; justify-self: stretch; }
}
