/* Private Tour in Barcelona: content pages (about, faq, contact, policies, sitemap).
   Source file: final/pages.css. build-pages.mjs copies it to dist/assets/css/pages.css (linked with a content hash).
   Same system as the homepage: palette "Midnight & Champagne", Fraunces (display) + Manrope (UI), pill buttons,
   24px cards, 28px large media, 14px form fields, fine champagne hairlines that start with a small lozenge, bare 1.5px
   line icons (teal on ivory, champagne on navy). Header, footer, buttons, accordion, reviews and CTA rules are
   copied from final/index.html so the pages read as one site. */
:root{
  --navy:#0E1B2C; --navy-2:#142438; --navy-3:#1C3048; --navy-4:#2A4160;
  --champ:#C8A96A; --champ-d:#9C7B40; --champ-l:#E3CD9E; --champ-100:#EFE4CC; --champ-50:#F8F2E6;
  --ivory:#F5F1EA; --ivory-2:#ECE6DA;
  --teal:#1F6F6B; --teal-d:#185955;
  --white:#FFFFFF;
  --ink:#0E1B2C; --ink-2:#394656; --ink-3:#56606E;
  --on-dark:#F5F1EA; --on-dark-2:rgba(245,241,234,.78); --on-dark-3:rgba(245,241,234,.62);
  --hair:rgba(14,27,44,.12); --hair-dark:rgba(200,169,106,.26);
  --rule:rgba(200,169,106,.7); --rule-dark:rgba(200,169,106,.45);
  --r-card:24px; --r-media:28px; --r-field:14px;
  --shadow:0 1px 2px rgba(14,27,44,.05),0 18px 40px -18px rgba(14,27,44,.22);
  --shadow-lg:0 2px 4px rgba(14,27,44,.06),0 32px 64px -24px rgba(14,27,44,.34);
  --wrap:1280px; --gut:40px;
  --serif:"Fraunces", Georgia, serif; --sans:"Manrope", system-ui, sans-serif;
  --t1:88px; --t2:58px; --t3:40px; --t4:28px; --t5:22px; --t6:18px; --t-page:74px;
  --w-display:320; --w-title:380; --w-small:420;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;font-weight:500;-webkit-font-smoothing:antialiased;text-wrap:pretty}
img{display:block;max-width:100%;height:auto}
figure{margin:0}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:var(--w-title);font-optical-sizing:auto;font-variation-settings:"SOFT" 40;letter-spacing:-.018em;line-height:1.06;text-wrap:balance}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
dl,dd{margin:0}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.site-header :focus-visible,.phero :focus-visible,.section--navy :focus-visible,.cta :focus-visible,.help :focus-visible,.wa-card :focus-visible,.assist :focus-visible,.footer :focus-visible{outline-color:var(--champ-l)}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.wrap{max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
.nw{white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
a.sr-only:focus{left:16px;top:16px;z-index:100;width:auto;height:auto;margin:0;padding:12px 18px;overflow:visible;clip:auto;white-space:normal;background:var(--ivory);color:var(--navy);border-radius:12px;font-weight:700;box-shadow:var(--shadow-lg)}
.sm-only{display:none}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.h2{font-size:var(--t2);font-weight:var(--w-display)}
.h2 em{font-style:italic;font-weight:var(--w-display)}
.lede{font-size:19px;line-height:1.6;color:var(--ink-2);max-width:52ch}
.stars{display:inline-flex;gap:2px;color:var(--champ)}
.stars .ic{width:15px;height:15px;color:var(--champ)}

/* champagne hairline above every section heading */
.hair{position:relative;border-top:1px solid var(--rule);padding-top:40px}
.hair::before{content:"";position:absolute;left:0;top:-4px;width:7px;height:7px;background:var(--champ);transform:rotate(45deg)}
.hair--dark{border-top-color:var(--rule-dark)}
.sec-head{margin-bottom:48px}
.sec-head .lede{margin-top:20px}

/* inset champagne frame on large photos */
.frame{position:relative}
.frame::after{content:"";position:absolute;inset:12px;border:1px solid rgba(227,205,158,.72);border-radius:12px;pointer-events:none}

/* buttons */
.btn{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;font:700 15.5px/1 var(--sans);letter-spacing:.01em;white-space:nowrap;transition:transform .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease}
.btn .ic{width:18px;height:18px}
.btn:active{transform:translateY(1px)}
.btn--gold{background:var(--champ);color:var(--navy)}
.btn--gold:hover{background:var(--champ-l)}
.btn--navy{background:var(--navy);color:var(--ivory)}
.btn--navy:hover{background:var(--navy-3)}
.btn--line{color:var(--navy);box-shadow:inset 0 0 0 1px rgba(14,27,44,.3)}
.btn--line:hover{box-shadow:inset 0 0 0 1px var(--teal);color:var(--teal)}
.btn--ghost-light{color:var(--ivory);box-shadow:inset 0 0 0 1px rgba(245,241,234,.5)}
.btn--ghost-light:hover{box-shadow:inset 0 0 0 1px var(--champ);color:var(--champ-l)}
.btn--lg{height:60px;padding:0 32px;font-size:16.5px}
.btn--block{width:100%}
.btn[disabled]{opacity:.7;cursor:progress}
.link-arrow{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:15.5px;color:var(--teal)}
.link-arrow .ic{width:18px;height:18px;transition:transform .2s}
.link-arrow:hover .ic{transform:translateX(3px)}
.link-arrow--champ{color:var(--champ-l)}
/* links inside running text */
.tlink{color:var(--teal);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:rgba(31,111,107,.4)}
.tlink:hover{text-decoration-color:currentColor}
.tlink--light{color:var(--champ-l);text-decoration-color:rgba(227,205,158,.45)}

/* ---------- header (as on the homepage; it sits over the navy page hero) ---------- */
.site-header{position:absolute;top:0;left:0;right:0;z-index:20;color:var(--ivory)}
.site-header__bar{position:relative;display:flex;align-items:center;gap:32px;height:96px}
.site-header__bar::after{content:"";position:absolute;left:var(--gut);right:var(--gut);bottom:0;height:1px;background:rgba(200,169,106,.26)}
.logo{display:inline-flex;align-items:center;gap:14px;flex:none;min-height:48px}
.logo__mark{width:48px;height:48px}
.logo__text{display:flex;flex-direction:column;line-height:1}
.logo__name{font-family:var(--serif);font-size:23px;font-weight:var(--w-small);letter-spacing:-.01em;font-variation-settings:"SOFT" 60}
.logo__sub{font-size:10.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--champ);margin-top:6px}
.nav{display:flex;gap:28px;margin-left:auto}
.nav a{font-size:14.5px;font-weight:600;color:rgba(245,241,234,.9);padding:6px 0;white-space:nowrap}
.nav a:hover{color:var(--champ-l)}
.nav a[aria-current="page"]{color:var(--champ-l);box-shadow:inset 0 -1px 0 var(--champ)}
.header-actions{display:flex;align-items:center;gap:20px}
.header-wa{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14.5px;font-weight:700;white-space:nowrap}
.header-wa .ic{color:var(--champ)}
.header-actions .btn{height:46px;padding:0 22px;font-size:14.5px}
.menu-btn{display:none}

/* ---------- page hero: navy band, breadcrumbs, one Fraunces h1 ---------- */
.phero{position:relative;overflow:hidden;background:var(--navy);color:var(--ivory);padding:176px 0 104px}
.phero::before{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(900px 520px at 86% 0%,rgba(42,65,96,.62),rgba(14,27,44,0) 70%),
  radial-gradient(760px 420px at 0% 100%,rgba(31,111,107,.16),rgba(14,27,44,0) 70%)}
/* the logo's double ring, drawn large and faint at the right edge */
.phero::after{content:"";position:absolute;right:-140px;top:118px;width:540px;height:540px;border-radius:50%;border:1px solid rgba(200,169,106,.22);outline:1px solid rgba(200,169,106,.11);outline-offset:-46px;pointer-events:none}
.phero__inner{position:relative;z-index:1}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px;font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.crumbs li{display:inline-flex;align-items:center;gap:14px;min-height:44px;color:rgba(245,241,234,.72)}
.crumbs li+li::before{content:"";width:5px;height:5px;flex:none;background:var(--champ);transform:rotate(45deg)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--champ-l)}
.crumbs a:hover{color:var(--ivory)}
.phero__title{font-size:var(--t-page);line-height:1.02;font-weight:var(--w-display);letter-spacing:-.026em;margin-top:18px;max-width:15ch;font-variation-settings:"SOFT" 50}
.phero__title em{font-style:italic;color:var(--champ-l);font-weight:var(--w-display)}
.phero__lede{font-size:20px;line-height:1.6;color:var(--on-dark-2);max-width:58ch;margin-top:26px}
.phero__meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:30px;font-size:14.5px;font-weight:700;color:var(--on-dark-2)}
.phero__meta li{display:inline-flex;align-items:center;gap:9px}
.phero__meta .ic{width:18px;height:18px;color:var(--champ)}
/* about: copy left, framed photo right */
.phero--split .phero__inner{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:72px;align-items:center}
.phero--split .phero__title{max-width:12ch}
.phero__media{border-radius:var(--r-media);overflow:hidden;box-shadow:0 30px 60px -24px rgba(0,0,0,.55)}
.phero__media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:32% 50%}
.stats{display:flex;flex-wrap:wrap;gap:18px 0;margin-top:40px}
.stats li{display:flex;flex-direction:column;padding:2px 32px;border-left:1px solid rgba(200,169,106,.45)}
.stats li:first-child{padding-left:0;border-left:0}
.stats b{font-family:var(--serif);font-weight:var(--w-display);font-size:46px;line-height:1;letter-spacing:-.02em;color:var(--champ-l);font-variant-numeric:lining-nums;font-variation-settings:"SOFT" 60}
.stats span{margin-top:10px;font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-2)}

/* ---------- sections ---------- */
.section{padding:120px 0}
/* two ivory sections in a row share one gap */
.section:not(.section--navy)+.section:not(.section--navy){padding-top:0}
.section--navy{background:var(--navy);color:var(--on-dark)}
.section--navy .lede{color:var(--on-dark-2)}
.section--navy .h2{color:var(--ivory)}
.section--navy .h2 em{color:var(--champ-l)}

/* ---------- about ---------- */
.statement{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:40px}
.statement .eyebrow{align-self:start;padding-top:10px}
.statement__text{font-family:var(--serif);font-size:30px;line-height:1.42;font-weight:var(--w-display);letter-spacing:-.012em;color:var(--navy);font-variation-settings:"SOFT" 60;max-width:44em}
/* heading and the four trust points in the left column, the story text beside them (text last on phones) */
.story{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"head text" "trust text";grid-template-rows:auto 1fr;column-gap:88px;row-gap:44px;align-items:start}
.story>.sec-head{grid-area:head;margin-bottom:0}
.story>.story__text{grid-area:text}
.story>.trust{grid-area:trust}
.story__text{display:grid;gap:24px;max-width:66ch}
.story__text p{font-size:18px;line-height:1.75;color:var(--ink-2)}
.story__text p:first-child{font-size:19.5px;color:var(--ink)}
.trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:34px 8px;border-radius:var(--r-card);background:var(--white);box-shadow:inset 0 0 0 1px rgba(200,169,106,.4),var(--shadow)}
.trust li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:4px 14px;padding:6px 28px;align-content:start}
.trust li+li{border-left:1px solid rgba(200,169,106,.45)}
.trust__ico{grid-row:span 2;color:var(--teal)}
.trust__ico .ic{width:26px;height:26px}
.trust__title{font-size:16.5px;font-weight:800;line-height:1.3;color:var(--ink)}
.trust__desc{font-size:14.5px;line-height:1.5;color:var(--ink-3)}
/* stacked variant (about page, left column): after the base rules so it wins */
.trust.trust--stack{grid-template-columns:minmax(0,1fr);padding:6px 30px}
.trust.trust--stack li,.trust.trust--stack li:first-child{padding:22px 0}
.trust.trust--stack li+li{border-left:0;border-top:1px solid var(--hair)}

/* reviews: the homepage's "What our guests say" band and its two review cards */
.rev-head{text-align:center;max-width:640px;margin:0 auto 48px}
.rev-head .lede{margin-top:14px;color:var(--on-dark-3)}
.rev-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.revcard{background:var(--white);color:var(--ink);border-radius:var(--r-card);padding:34px 36px 28px;box-shadow:0 24px 50px -20px rgba(0,0,0,.4)}
.revcard__title{font-family:var(--serif);font-size:20px;font-weight:var(--w-title);color:var(--ink)}
.revcard__sub{font-size:14px;color:var(--ink-3);margin-top:3px}
.revcard__brand{display:flex;align-items:center;justify-content:space-between;margin-top:20px}
.revcard__brand-name{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:15px}
.revcard__brand .ic--brand{width:22px;height:22px}
.revcard--ta .ic--brand{color:var(--teal)}
.ta-dots{display:flex;gap:5px}
.ta-dots span{position:relative;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--teal);box-sizing:border-box}
.ta-dots span::after{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;background:var(--teal);transform:translate(-50%,-50%)}
.revcard__hr{border:0;border-top:1px solid var(--hair);margin:22px 0}
.revcard__text{margin:0;font-size:17px;line-height:1.55;color:var(--ink-2);min-height:3.1em}
.revcard__foot{display:flex;align-items:center;justify-content:space-between;margin-top:26px}
.revcard__who{display:flex;align-items:center;gap:12px;min-width:0}
.revcard__avatar{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--white);font-family:var(--serif);font-weight:var(--w-title);font-size:17px}
.revcard__name{font-weight:800;font-size:15px}
.revcard__nav{display:flex;gap:8px;flex:none}
.revcard__arrow{width:38px;height:38px;border-radius:50%;border:1px solid var(--hair);background:var(--white);display:grid;place-items:center;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.revcard__arrow:hover,.revcard__arrow:focus-visible{background:var(--ivory);border-color:var(--champ)}
.revcard__arrow .ic{width:16px;height:16px;color:var(--ink)}
.revcard__arrow--prev .ic{transform:rotate(90deg)}
.revcard__arrow--next .ic{transform:rotate(-90deg)}

/* closing CTA: photo left in an inset frame, copy on solid navy (as on the homepage) */
.cta-sec{padding:120px 0}
.cta{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);border-radius:var(--r-media);overflow:hidden;background:var(--navy);color:var(--ivory);box-shadow:var(--shadow-lg);min-height:560px}
.cta__photo{margin:12px 0 12px 12px;border-radius:20px;overflow:hidden}
.cta__photo img{width:100%;height:100%;object-fit:cover;object-position:30% 50%}
.cta__body{display:flex;flex-direction:column;justify-content:center;padding:56px 52px}
.cta .h2 span,.cta .h2 em{display:block}
.cta .h2 em{padding-bottom:6px;color:var(--champ-l)}
.cta .h2{color:var(--ivory)}
.cta p{font-size:17px;line-height:1.7;color:rgba(245,241,234,.86);margin:22px 0 34px;max-width:52ch}
.cta__btns{display:flex;flex-wrap:wrap;gap:14px}

/* ---------- compact help band (FAQ, policies, sitemap) ---------- */
.assist{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:center;padding:60px 64px;border-radius:var(--r-media);background:var(--navy);color:var(--ivory);box-shadow:var(--shadow-lg)}
.assist::after{content:"";position:absolute;right:-120px;bottom:-230px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(200,169,106,.2);outline:1px solid rgba(200,169,106,.1);outline-offset:-36px;pointer-events:none}
.assist__copy,.assist__actions{position:relative;z-index:1}
.assist__title{font-size:var(--t3);font-weight:var(--w-display);color:var(--ivory);line-height:1.1}
.assist__title em{font-style:italic;color:var(--champ-l);font-weight:var(--w-display)}
.assist__copy p{font-size:17px;line-height:1.7;color:var(--on-dark-2);margin-top:18px;max-width:54ch}
.assist__actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px}

/* ---------- FAQ ---------- */
.faq-layout{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:72px;align-items:start}
.faq-aside{position:sticky;top:32px;display:grid;gap:24px}
.jump{padding:22px 28px 14px;border-radius:var(--r-card);background:var(--white);box-shadow:inset 0 0 0 1px rgba(200,169,106,.45)}
.jump__label{font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.jump ol{margin-top:6px}
.jump a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:50px;border-bottom:1px solid var(--hair);font-size:16px;font-weight:700;color:var(--navy)}
.jump li:last-child a{border-bottom:0}
.jump a:hover{color:var(--teal)}
.jump small{font-family:var(--serif);font-style:italic;font-size:17px;font-weight:var(--w-title);color:var(--champ-d)}
.help{padding:30px 30px 22px;border-radius:var(--r-card);background:var(--navy);color:var(--ivory)}
.help__title{font-size:var(--t4);margin-bottom:10px;color:var(--ivory)}
.help p{font-size:15px;color:var(--on-dark-2);margin-bottom:14px}
.help a{display:flex;align-items:center;gap:12px;min-height:44px;font-size:15.5px;font-weight:700;overflow-wrap:anywhere}
.help a:hover{color:var(--champ-l)}
.help .ic{color:var(--champ);width:20px;height:20px}
.faq-group{scroll-margin-top:24px}
.faq-group+.faq-group{margin-top:72px}
.faq-group__title{font-size:var(--t3);font-weight:var(--w-display);margin-bottom:28px;padding-top:32px}
.faq-group__title em{font-style:italic;font-weight:var(--w-display)}
.acc{border-radius:var(--r-card);background:var(--white);box-shadow:var(--shadow);padding:8px 36px}
.acc details{border-bottom:1px solid var(--hair)}
.acc details:last-child{border-bottom:0}
.acc summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;cursor:pointer;font-family:var(--serif);font-size:var(--t5);line-height:1.3;font-weight:var(--w-small);color:var(--navy)}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{color:var(--teal)}
.acc__tog{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(200,169,106,.7);color:var(--champ-d);transition:transform .25s ease,background .25s}
.acc__tog .ic{width:18px;height:18px}
.acc details[open] .acc__tog{transform:rotate(45deg);background:var(--champ);color:var(--navy)}
.acc details p{max-width:64ch;font-size:16.5px;line-height:1.7;color:var(--ink-2);padding:0 64px 26px 0;margin-top:-6px}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:start}
.form-card{scroll-margin-top:24px;padding:44px 48px 48px;border-radius:var(--r-card);background:var(--white);box-shadow:inset 0 0 0 1px rgba(200,169,106,.45),var(--shadow)}
.form-card__title{font-size:var(--t3);font-weight:var(--w-display)}
.form-card__title em{font-style:italic;font-weight:var(--w-display);color:var(--teal)}
.form-card__sub{margin-top:12px;font-size:16px;color:var(--ink-3)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px;margin-top:32px}
.f{display:flex;flex-direction:column;gap:9px;min-width:0}
.f--full{grid-column:1/-1}
.f label{font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.f label b{color:var(--champ-d);font-weight:800;margin-left:2px}
.f__hint{font-size:14px;font-weight:600;color:var(--ink-3)}
.f input,.f select,.f textarea{width:100%;min-width:0;min-height:56px;margin:0;border:1px solid rgba(14,27,44,.2);border-radius:var(--r-field);background:var(--ivory);font:600 16.5px/1.4 var(--sans);color:var(--navy);padding:15px 16px;appearance:none;-webkit-appearance:none;transition:border-color .2s,box-shadow .2s,background .2s}
.f input::placeholder,.f textarea::placeholder{color:var(--ink-3);font-weight:500;opacity:1}
.f input:hover,.f select:hover,.f textarea:hover{border-color:rgba(14,27,44,.36)}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--teal);background:var(--white);box-shadow:0 0 0 3px rgba(31,111,107,.18)}
.f textarea{min-height:148px;resize:vertical}
.f__select{position:relative}
/* a phone too narrow for a long tour name shows it with an ellipsis instead of cutting it */
.f select{padding-right:48px;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.f__chev{position:absolute;right:16px;top:50%;width:18px;height:18px;margin-top:-9px;color:var(--ink-3);pointer-events:none}
.f input[type=date]{cursor:pointer}
.form__aside{display:flex;align-items:flex-start;gap:10px;align-self:end;min-height:56px;padding:6px 0 0;font-size:14.5px;line-height:1.55;font-weight:600;color:var(--ink-3)}
.form__aside .ic{width:18px;height:18px;margin-top:2px;color:var(--teal)}
.form__foot{grid-column:1/-1;display:grid;gap:16px;margin-top:6px}
.form__note{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.55;color:var(--ink-3)}
.form__note .ic{width:18px;height:18px;margin-top:2px;color:var(--teal)}
.form-msg{margin-top:24px;padding:22px 24px;border-radius:18px;font-size:16px;line-height:1.6}
.form-msg:focus{outline:none}
.form-msg--error{background:var(--champ-50);box-shadow:inset 0 0 0 1px rgba(156,123,64,.55);color:var(--ink)}
.form-msg--error strong{color:var(--navy)}
.form-done{margin-top:32px;padding:36px 32px;border-radius:20px;background:var(--champ-50);box-shadow:inset 0 0 0 1px rgba(200,169,106,.5);text-align:center}
.form-done:focus{outline:none}
.form-done__ico{width:56px;height:56px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:var(--white)}
.form-done__ico .ic{width:26px;height:26px;stroke-width:1.8}
.form-done h3{font-size:var(--t4);color:var(--navy)}
.form-done p{margin-top:10px;font-size:16px;color:var(--ink-2)}
.lines{display:grid;gap:20px}
.wa-card{padding:36px 36px 32px;border-radius:var(--r-card);background:var(--navy);color:var(--ivory);box-shadow:var(--shadow-lg)}
.wa-card__ico{display:block;color:var(--champ);margin-bottom:18px}
.wa-card__ico .ic{width:34px;height:34px}
.wa-card h2{font-size:var(--t4);color:var(--ivory)}
.wa-card p{margin:12px 0 24px;font-size:15.5px;line-height:1.6;color:var(--on-dark-2)}
.wa-card .btn{width:100%}
.dl{padding:6px 32px;border-radius:var(--r-card);background:var(--white);box-shadow:var(--shadow)}
.dl>div{padding:22px 0;border-bottom:1px solid var(--hair)}
.dl>div:last-child{border-bottom:0}
.dl dt{display:flex;align-items:center;gap:12px;font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.dl .ic{width:22px;height:22px;color:var(--teal)}
.dl dd{margin-top:6px;padding-left:34px;font-size:16.5px;font-weight:700;line-height:1.5;color:var(--navy);overflow-wrap:anywhere}
.dl dd small{display:block;margin-top:2px;font-size:14.5px;font-weight:600;color:var(--ink-3);overflow-wrap:normal}
.dl dd a:hover{color:var(--teal)}
.next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.next a{display:flex;flex-direction:column;gap:10px;padding:30px 32px 28px;border-radius:var(--r-card);background:var(--ivory-2);transition:background .2s}
.next a:hover{background:var(--champ-100)}
.next .ic{width:26px;height:26px;color:var(--teal)}
.next strong{font-family:var(--serif);font-size:var(--t5);font-weight:var(--w-small);line-height:1.25;color:var(--navy)}
.next span{font-size:15px;line-height:1.55;color:var(--ink-2)}
.next em{margin-top:auto;padding-top:6px;display:inline-flex;align-items:center;gap:8px;font-style:normal;font-size:15px;font-weight:700;color:var(--teal)}
.next em .ic{width:18px;height:18px}

/* ---------- policies: contents list left, readable text right (max ~70ch) ---------- */
.legal{display:grid;grid-template-columns:260px minmax(0,1fr);gap:96px;align-items:start}
.toc{position:sticky;top:32px}
.toc__label{font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:14px}
.toc ol{counter-reset:toc;border-left:1px solid var(--rule)}
.toc a{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px;padding:10px 0 10px 20px;font-size:15px;font-weight:600;line-height:1.45;color:var(--ink-2)}
.toc a::before{counter-increment:toc;content:counter(toc,decimal-leading-zero);font-family:var(--serif);font-style:italic;font-size:15px;color:var(--champ-d)}
.toc a:hover{color:var(--teal)}
.prose{max-width:70ch}
.clause{scroll-margin-top:24px}
.clause+.clause{margin-top:56px;padding-top:52px;border-top:1px solid var(--hair)}
.clause h2{display:flex;align-items:baseline;gap:16px;font-size:34px;font-weight:var(--w-title);line-height:1.15;color:var(--navy);margin-bottom:20px}
.clause h2 .num{flex:none;font-size:18px;font-style:italic;font-weight:var(--w-small);color:var(--champ-d);letter-spacing:0}
.prose p{font-size:17.5px;line-height:1.78;color:var(--ink-2)}
.prose p+p,.prose p+ul,.prose ul+p{margin-top:18px}
.prose ul{display:grid;gap:16px}
.prose li{position:relative;padding-left:28px;font-size:17.5px;line-height:1.72;color:var(--ink-2)}
.prose li::before{content:"";position:absolute;left:4px;top:.72em;width:6px;height:6px;background:var(--champ);transform:rotate(45deg)}
.prose strong{color:var(--navy);font-weight:800}
.keyfact{display:grid;grid-template-columns:auto minmax(0,1fr);gap:36px;align-items:center;margin-bottom:56px;padding:34px 40px;border-radius:var(--r-card);background:var(--white);box-shadow:inset 0 0 0 1px rgba(200,169,106,.45),var(--shadow)}
/* .keyfact .x beats .prose p */
.keyfact .keyfact__num{display:flex;align-items:baseline;gap:8px;font-family:var(--serif);font-size:96px;line-height:.9;font-weight:var(--w-display);letter-spacing:-.04em;color:var(--navy);font-variation-settings:"SOFT" 60}
.keyfact .keyfact__num span{font-size:26px;font-style:italic;letter-spacing:0;color:var(--champ-d)}
.keyfact .keyfact__text{font-size:18px;line-height:1.6;color:var(--ink-2);padding-left:36px;border-left:1px solid var(--rule)}
.keyfact__text strong{color:var(--navy)}

/* ---------- sitemap: dotted-leader tour lists (as the homepage's "more ways") ---------- */
.smap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.ledger{min-width:0;padding:32px 36px 26px;border-radius:var(--r-card);background:var(--white);box-shadow:var(--shadow);scroll-margin-top:24px}
.ledger--wide{grid-column:1/-1}
.ledger__head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;padding-bottom:22px;margin-bottom:6px;border-bottom:1px solid rgba(200,169,106,.55)}
.ledger__icon{display:grid;place-items:center;color:var(--teal)}
.ledger__icon .ic{width:30px;height:30px}
.ledger__title{font-size:var(--t5);font-weight:var(--w-small);line-height:1.2}
.ledger__sub{font-size:14px;font-weight:700;color:var(--ink-3);margin-top:6px}
.menu{display:grid}
.ledger--wide .menu{grid-template-columns:1fr 1fr;column-gap:56px}
.menu__row{position:relative;display:flex;align-items:flex-end;padding:13px 0}
.menu__row::before{content:"";position:absolute;left:0;right:0;bottom:18px;border-bottom:2px dotted rgba(200,169,106,.8)}
.menu__label{position:relative;flex:1;min-width:0;padding-right:16px;font-size:15.5px;line-height:1.45;text-wrap:balance}
.menu__name{font-weight:700;color:var(--navy);background:var(--white);padding-right:12px}
.menu__row:hover .menu__name{color:var(--teal)}
.menu__tail{position:relative;flex:none;display:flex;align-items:flex-end;gap:14px;background:var(--white);padding-left:12px}
.menu__meta{min-width:10.5ch;text-align:right;font-size:14px;font-weight:700;color:var(--ink-3);white-space:nowrap;padding-bottom:2px}
.menu__sep{margin:0 6px;color:var(--champ-d)}
.menu__price{min-width:64px;text-align:right;font-family:var(--serif);font-size:var(--t5);font-weight:var(--w-title);line-height:1;color:var(--navy);letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.pages__col{padding:30px 36px 20px;border-radius:var(--r-card);background:var(--white);box-shadow:var(--shadow)}
.pages__col h3{font-size:var(--t5);font-weight:var(--w-small);padding-bottom:16px;border-bottom:1px solid rgba(200,169,106,.55)}
.pages__col a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;border-bottom:1px solid var(--hair);font-size:16px;font-weight:700;color:var(--navy)}
.pages__col li:last-child a{border-bottom:0}
.pages__col a:hover{color:var(--teal)}
.pages__col a .ic{width:18px;height:18px;color:var(--teal)}
.pages__col a[aria-current="page"]{color:var(--ink-3)}

/* ---------- footer (as on the homepage) ---------- */
/* site-wide floating WhatsApp button: fixed to the viewport, follows scroll on every page.
   A soft pulsing ring (::before, behind the icon) keeps it eye-catching without being loud. */
.wa-float{position:fixed;right:24px;bottom:24px;z-index:45;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(150deg,var(--teal),var(--teal-d));color:var(--white);border:2px solid rgba(245,241,234,.85);box-shadow:0 12px 28px -8px rgba(0,0,0,.45),0 4px 16px -2px rgba(31,111,107,.6),inset 0 1px 1px rgba(255,255,255,.25);transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}
.wa-float::before{content:"";position:absolute;inset:-3px;border-radius:50%;background:var(--teal);opacity:.5;z-index:-1;animation:wa-pulse 2.6s cubic-bezier(.4,0,.6,1) infinite}
.wa-float:hover,.wa-float:focus-visible{transform:scale(1.1) translateY(-2px);box-shadow:0 16px 34px -8px rgba(0,0,0,.5),0 6px 20px -2px rgba(31,111,107,.75),inset 0 1px 1px rgba(255,255,255,.3)}
.wa-float .ic{position:relative;width:30px;height:30px;stroke-width:1.7;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.5}70%,100%{transform:scale(1.9);opacity:0}}

.footer{background:var(--navy);color:var(--on-dark);padding:96px 0 40px}
.footer__top{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:80px;padding-bottom:64px;border-bottom:1px solid var(--hair-dark)}
.footer__tag{font-size:15.5px;line-height:1.65;color:var(--on-dark-2);margin:24px 0 20px;max-width:40ch}
.footer__contact{display:grid;gap:0}
.footer__contact a{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:700;font-size:15.5px;overflow-wrap:anywhere}
.footer__contact .ic{color:var(--champ)}
.footer__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.footer__cols h3{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--champ);margin-bottom:10px;text-wrap:initial}
.footer__cols ul{display:grid;gap:0}
.footer__cols a{display:inline-block;min-width:44px;padding:10px 0;line-height:24px;font-size:15px;color:var(--on-dark-2);font-weight:600}
.footer__cols a:hover,.footer__cols a[aria-current="page"]{color:var(--champ-l)}
.footer__cols small{color:var(--on-dark-3);font-weight:600;font-size:13.5px}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:32px;font-size:14px;color:var(--on-dark-3);font-weight:600}
.footer__trust{display:flex;flex-wrap:wrap;gap:8px 28px}
.footer__trust li{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.footer__trust .ic{width:17px;height:17px;color:var(--champ)}

/* ================= responsive ================= */
@media (min-width:761px) and (max-width:1359px){
  .nav{gap:24px}
  .faq-layout{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px}
}
@media (max-width:1180px){
  :root{--t2:50px;--t-page:62px}
  .nav{gap:20px}.header-wa span{display:none}
  .legal{grid-template-columns:220px minmax(0,1fr);gap:64px}
}
@media (max-width:1024px){
  .nav,.header-wa{display:none}
  .menu-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(245,241,234,.4);color:var(--ivory);margin-left:auto;background:transparent;border:0;cursor:pointer}
  .header-actions{margin-left:0}
  /* the menu button opens the same nav as a panel under the header */
  .site-header[data-open] .nav{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:var(--gut);right:var(--gut);margin:0;padding:6px 24px 12px;background:var(--navy);border-radius:0 0 20px 20px;box-shadow:0 24px 48px -16px rgba(0,0,0,.5)}
  .site-header[data-open] .nav a{display:flex;align-items:center;min-height:48px;padding:0;font-size:16px;border-bottom:1px solid var(--hair-dark);box-shadow:none}
  .site-header[data-open] .nav a:last-child{border-bottom:0}
  .faq-layout{grid-template-columns:minmax(0,1fr);gap:48px}
  .faq-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .legal{grid-template-columns:minmax(0,1fr);gap:40px}
  .toc{position:static;padding:24px 28px 16px;border-radius:var(--r-card);background:var(--white);box-shadow:inset 0 0 0 1px rgba(200,169,106,.45)}
  .toc ol{border-left:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
  .toc a{padding-left:0;border-bottom:1px solid var(--hair)}
  .toc li:last-child a{border-bottom:0}
  .assist{grid-template-columns:minmax(0,1fr);gap:32px;padding:48px 44px}
  .assist__actions{flex-direction:row;flex-wrap:wrap}
  .cta{grid-template-columns:minmax(0,1fr);min-height:0}
  .cta__photo{margin:12px 12px 0;height:340px}
  .cta__body{padding:44px 44px 48px}
  .ledger--wide .menu{grid-template-columns:minmax(0,1fr)}
  .next{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:960px){
  .contact{grid-template-columns:minmax(0,1fr)}
}
@media (min-width:761px) and (max-width:960px){
  .phero--split .phero__inner{grid-template-columns:minmax(0,1fr);gap:48px}
  .phero--split .phero__title{max-width:15ch}
  .story{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "text" "trust";grid-template-rows:auto;gap:40px}
  .statement{grid-template-columns:minmax(0,1fr);gap:20px}
  .lines{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .smap,.pages{grid-template-columns:minmax(0,1fr)}
  .footer__top{grid-template-columns:minmax(0,1fr);gap:48px}
}
@media (max-width:900px){
  .rev-cards{grid-template-columns:minmax(0,1fr);gap:20px}
}
@media (max-width:760px){
  :root{--gut:20px;--t1:44px;--t2:38px;--t3:32px;--t4:25px;--t5:20px;--t6:18px;--t-page:44px}
  body{font-size:16px}
  .wa-float{right:16px;bottom:20px;height:54px;width:54px}
  .wa-float .ic{width:26px;height:26px}
  .h2{line-height:1.08}
  .lede{font-size:17px}
  .hair{padding-top:30px}
  .sec-head{margin-bottom:32px}
  /* buttons may wrap their label instead of forcing their row wider than the card */
  .btn{white-space:normal;height:auto;min-height:48px;padding-block:10px;text-align:center;line-height:1.25}
  /* header */
  .site-header__bar{height:76px;gap:12px}
  .logo__mark{width:40px;height:40px}
  .logo{gap:10px;min-height:44px}
  .logo__name{font-size:19px}
  .logo__sub{font-size:9.5px;letter-spacing:.26em;margin-top:5px}
  .header-actions .btn{display:none}
  .menu-btn{width:44px;height:44px}
  /* page hero */
  .phero{padding:112px 0 56px}
  .phero::after{width:300px;height:300px;right:-150px;top:72px;outline-offset:-26px}
  .crumbs ol{font-size:12px;letter-spacing:.12em;column-gap:12px}
  .crumbs li{gap:12px}
  .phero__title{margin-top:10px;line-height:1.06}
  .phero__lede{font-size:17px;margin-top:18px}
  .phero__meta{flex-direction:column;gap:10px;margin-top:22px;font-size:15px}
  .phero--split .phero__inner{grid-template-columns:minmax(0,1fr);gap:36px}
  .phero__media{border-radius:22px}
  .phero__media img{aspect-ratio:auto;height:260px}
  .frame::after{inset:9px;border-radius:9px}
  .stats{display:grid;gap:0;margin-top:28px;border-top:1px solid rgba(200,169,106,.3)}
  .stats li,.stats li:first-child{flex-direction:row;align-items:baseline;gap:16px;padding:14px 0;border-left:0;border-bottom:1px solid rgba(200,169,106,.3)}
  .stats b{flex:none;min-width:3.9em;font-size:30px}
  .stats span{margin-top:0;font-size:12px;letter-spacing:.12em}
  .section{padding:64px 0}
  /* about */
  .statement{grid-template-columns:minmax(0,1fr);gap:16px}
  .statement .eyebrow{padding-top:0;font-size:12px;letter-spacing:.13em}
  .statement__text{font-size:20px;line-height:1.5}
  .story{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "text" "trust";grid-template-rows:auto;gap:28px}
  .story__text{gap:18px}
  .story__text p,.story__text p:first-child{font-size:17px;line-height:1.7}
  .trust{grid-template-columns:minmax(0,1fr);padding:4px 20px}
  .trust li,.trust li:first-child{grid-template-columns:24px minmax(0,1fr);gap:2px 14px;padding:16px 0}
  .trust li+li{border-left:0;border-top:1px solid var(--hair)}
  .trust__ico .ic{width:24px;height:24px}
  .trust__title{font-size:16px}
  .trust__desc{font-size:16px}
  .rev-head{margin-bottom:28px}
  .rev-cards{grid-template-columns:minmax(0,1fr);gap:18px}
  .revcard{padding:26px 24px 22px}
  .cta-sec{padding:64px 0}
  .cta{grid-template-columns:minmax(0,1fr);min-height:0;border-radius:24px}
  .cta__photo{margin:8px 8px 0;height:260px;border-radius:18px}
  .cta__body{padding:30px 24px}
  .cta p{font-size:16.5px;margin:18px 0 26px}
  .cta__btns{flex-direction:column;align-items:stretch}
  .cta__btns .btn{width:100%;padding:10px 18px;font-size:15.5px}
  /* help band */
  .assist{padding:34px 24px 30px;gap:26px;border-radius:24px}
  .assist::after{display:none}
  .assist__copy p{font-size:16.5px}
  .assist__actions{flex-direction:column;align-items:stretch}
  .assist__actions .link-arrow{align-self:flex-start}
  /* faq */
  .faq-aside{grid-template-columns:minmax(0,1fr);gap:16px}
  .jump{padding:18px 22px 10px}
  .faq-group+.faq-group{margin-top:48px}
  .faq-group__title{margin-bottom:20px;padding-top:26px}
  .acc{padding:4px 22px}
  .acc summary{padding:20px 0;gap:16px;text-wrap:balance}
  .acc details p{padding-right:0;font-size:16px}
  .help{padding:26px 24px 18px}
  .help p,.help a{font-size:16px}
  /* contact */
  .form-card{padding:28px 20px 26px;border-radius:22px}
  .form{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:24px}
  .form-card__sub{font-size:16px}
  .f input,.f select,.f textarea{font-size:16px}
  .form__note{font-size:15px}
  .form__aside{min-height:0;padding:0;margin-top:-6px;font-size:15px}
  .dl dd{padding-left:0}
  .lines{grid-template-columns:minmax(0,1fr);gap:16px}
  .wa-card{padding:28px 24px 24px}
  .dl{padding:4px 22px}
  .dl dd{font-size:16px}
  .next a{padding:24px 22px}
  /* policies */
  .toc{padding:20px 22px 12px}
  .toc ol{grid-template-columns:minmax(0,1fr)}
  .clause+.clause{margin-top:40px;padding-top:36px}
  .clause h2{font-size:26px;gap:12px;margin-bottom:16px}
  .clause h2 .num{font-size:16px}
  .prose p,.prose li{font-size:16.5px;line-height:1.72}
  .keyfact{grid-template-columns:minmax(0,1fr);gap:18px;margin-bottom:40px;padding:26px 22px}
  .keyfact .keyfact__num{font-size:72px}
  .keyfact .keyfact__text{padding:18px 0 0;border-left:0;border-top:1px solid var(--rule);font-size:16.5px}
  /* sitemap: no leader on phones; hairline rows with duration left and price right */
  .smap,.pages{grid-template-columns:minmax(0,1fr);gap:16px}
  .ledger{padding:24px 20px 16px}
  .ledger__head{gap:14px}
  .menu__row{flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--hair)}
  .menu li:first-child .menu__row{border-top:0}
  .menu__row::before{display:none}
  .menu__label{flex-basis:100%;padding-right:0;font-size:16px;line-height:1.4}
  .menu__name{padding-right:0;background:none}
  .menu__tail{flex-basis:100%;justify-content:space-between;align-items:baseline;margin-top:6px;padding-left:0;background:none}
  .menu__meta{min-width:0;text-align:left}
  .menu__price{min-width:56px}
  .pages__col{padding:24px 22px 12px}
  /* footer */
  .footer{padding:56px 0 28px}
  .footer__top{grid-template-columns:minmax(0,1fr);gap:36px;padding-bottom:36px}
  .footer__tag{margin:18px 0 12px;font-size:16px}
  .footer__contact a{font-size:16px}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}
  .footer__cols h3{margin-bottom:4px}
  .footer__cols a{font-size:16px}
  .footer__cols>div:last-child{grid-column:1/-1}
  .footer__cols>div:last-child ul{grid-template-columns:1fr 1fr;column-gap:24px}
  .lg-only{display:none}
  .sm-only{display:inline}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:16px}
  .footer__trust{flex-wrap:wrap;gap:10px 20px}
}
@media (max-width:360px){
  .stats b{font-size:26px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.wa-float::before{animation:none!important}html{scroll-behavior:auto}}

/* contact form: the "Preferred date" field is a button + custom calendar, matching the homepage booking bar,
   not a native browser date input. */
.f--date{position:relative}
.f--date input[type="date"]{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.f__datebtn{width:100%;min-width:0;min-height:56px;margin:0;border:1px solid rgba(14,27,44,.2);border-radius:var(--r-field);background:var(--ivory);font:600 16.5px/1.4 var(--sans);color:var(--navy);padding:15px 16px;text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
.f__datebtn:hover{border-color:rgba(14,27,44,.36)}
.f__datebtn[aria-expanded="true"]{outline:none;border-color:var(--teal);background:var(--white);box-shadow:0 0 0 3px rgba(31,111,107,.18)}
.f__datebtn.is-placeholder{color:var(--ink-3);font-weight:500}
.field__cal{position:absolute;top:calc(100% + 8px);left:0;z-index:30;width:308px;max-width:calc(100vw - 40px);background:var(--white);border-radius:var(--r-card);box-shadow:var(--shadow-lg);border:1px solid var(--hair);padding:18px}
.field__cal[hidden]{display:none}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal__head strong{font:700 15.5px var(--sans);color:var(--navy)}
.cal__nav{width:30px;height:30px;border-radius:50%;border:0;background:var(--ivory);color:var(--navy);font:700 16px var(--sans);line-height:1;display:grid;place-items:center;cursor:pointer}
.cal__nav:disabled{opacity:.35;cursor:default}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.cal__dow{font:700 11px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:6px 0}
.cal__day{aspect-ratio:1;display:grid;place-items:center;border:0;background:transparent;border-radius:50%;font:600 14px var(--sans);color:var(--navy);cursor:pointer}
.cal__day:hover:not(:disabled){background:var(--champ-50)}
.cal__day[aria-selected="true"]{background:var(--teal);color:var(--white);font-weight:800}
.cal__day:disabled{color:var(--hair-dark);cursor:default}
.cal__day--empty{visibility:hidden;cursor:default}
