/* ============================================================
   A Rota — seicheles.com  (Era dos Descobrimentos)
   Parchment cream + ocean indigo + gold leaf + azulejo cobalt.
   Marcellus display / EB Garamond body / Cormorant accent.
   Bespoke, not a recolour. Bump CSS_VER (pt_data_strs.CSS_VER) on edit.
   ============================================================ */

:root{
  --indigo:#12385C; --indigo-2:#0C2740; --indigo-3:#1B4A78;
  --cobalt:#1E5AA8; --gold:#C9A227; --gold-2:#A9861B;
  --cream:#FAF3E2; --cream-2:#F4E9CF; --cream-3:#EADFC2;
  --ink:#1B2A38; --ink-soft:#40505E; --line:rgba(27,42,56,.16);
  --sea:#1FA5A0; --rose:#C77B6B;             /* sea + rose: imagery / money pages only */
  --display:'Marcellus',Georgia,serif;
  --serif:'EB Garamond',Georgia,serif;
  --accent:'Cormorant',Georgia,serif;
  --wrap:1200px; --pad:clamp(1.1rem,4vw,2.4rem);
  --r:3px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--serif); font-size:1.075rem; line-height:1.68;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(201,162,39,.05), transparent 45%),
    radial-gradient(circle at 88% 82%, rgba(30,90,168,.05), transparent 45%);
}
img{max-width:100%; display:block}
a{color:var(--indigo); text-decoration:none}
a:hover{color:var(--gold-2)}
h1,h2,h3,h4{font-family:var(--display); font-weight:400; line-height:1.14; color:var(--indigo)}
em{font-style:italic; font-family:var(--accent); color:var(--gold-2); font-weight:500}
.container{max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad)}
.skip{position:absolute; left:-999px}
.skip:focus{left:1rem; top:1rem; background:var(--indigo); color:var(--cream); padding:.6rem 1rem; z-index:99}

/* ---------- NAV ---------- */
.nav{position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:.7rem var(--pad); background:rgba(250,243,226,.86); backdrop-filter:blur(9px);
  border-bottom:1px solid var(--line); transition:padding .25s, background .25s}
.nav.scrolled{padding-block:.45rem; background:rgba(250,243,226,.96); box-shadow:0 6px 24px rgba(18,56,92,.09)}
.nav__brand{display:flex; align-items:center; gap:.55rem; color:var(--indigo)}
.nav__mark{width:34px; height:34px; color:var(--gold-2)}
.nav__brand-text{font-family:var(--display); font-size:1.32rem; letter-spacing:.01em; color:var(--indigo)}
.nav__brand-text b{color:var(--gold-2)}
.nav__brand-tld{color:var(--ink-soft); font-size:.92em}
.nav__links{display:none; align-items:center; gap:1.15rem}
.nav__links a{font-family:var(--display); font-size:.96rem; color:var(--ink); padding:.2rem 0; position:relative}
.nav__links a:hover{color:var(--indigo)}
.nav__links a.nav__accent{color:var(--gold-2)}
.nav__links a.nav__wa{background:var(--indigo); color:var(--cream); padding:.45rem .9rem; border-radius:var(--r)}
.nav__links a.nav__wa:hover{background:var(--indigo-2); color:#fff}
.nav__menu{font-family:var(--display); font-size:1rem; letter-spacing:.03em; background:none; border:1px solid var(--indigo);
  color:var(--indigo); padding:.4rem 1rem; border-radius:var(--r); cursor:pointer}
@media(min-width:1040px){ .nav__links{display:flex} .nav__menu{display:none} }

.menu{position:fixed; inset:0 0 0 auto; z-index:60; background:var(--indigo); color:var(--cream);
  width:min(440px,92vw); overflow-y:auto; box-shadow:-20px 0 60px rgba(0,0,0,.35)}
body.menu-open{overflow:hidden}
.menu__inner{padding:5rem var(--pad) 2.5rem}
.menu__group{margin-bottom:2rem}
.menu__group h3{color:var(--gold); font-size:.86rem; letter-spacing:.16em; text-transform:uppercase; margin:0 0 .8rem}
.menu__group ul{list-style:none; margin:0; padding:0}
.menu__group li{border-bottom:1px solid rgba(250,243,226,.14)}
.menu__group a{display:block; color:var(--cream); font-family:var(--display); font-size:1.12rem; padding:.7rem 0}
.menu__group a:hover{color:var(--gold)}
.menu__contact{display:flex; flex-direction:column; gap:.6rem; margin-top:1rem}
.menu__contact a{color:var(--gold); font-size:.98rem}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex; align-items:center; gap:.5rem; font-family:var(--display); font-size:1rem;
  padding:.8rem 1.5rem; border-radius:var(--r); border:1px solid transparent; cursor:pointer; transition:.2s}
.btn--gold{background:var(--gold); color:var(--indigo-2)}
.btn--gold:hover{background:var(--gold-2); color:var(--cream)}
.btn--ghost{background:transparent; border-color:currentColor; color:inherit}
.btn--ghost:hover{background:rgba(255,255,255,.1)}
.btn--indigo{background:var(--indigo); color:var(--cream)}
.btn--indigo:hover{background:var(--indigo-2); color:#fff}
.btn--wa{background:#25623f; color:#fff}
.btn--wa:hover{background:#1c4b30; color:#fff}

/* ---------- HERO ---------- */
.hero{position:relative; background:var(--indigo); color:var(--cream); overflow:hidden;
  padding:clamp(3.4rem,9vw,6.5rem) 0 clamp(2.6rem,6vw,4rem)}
.hero__bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.6; z-index:0}
.hero::after{content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg, rgba(9,29,49,.94) 22%, rgba(12,39,64,.72) 52%, rgba(12,39,64,.34) 100%)}
.hero__compass{position:absolute; right:-120px; top:50%; transform:translateY(-50%); width:min(520px,52vw);
  color:rgba(201,162,39,.16); pointer-events:none; z-index:2}
.hero__inner{position:relative; max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad)}
.hero__eyebrows{display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem;
  font-family:var(--display); font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold)}
.hero__inner{position:relative; z-index:3; max-width:var(--wrap)}
@media(min-width:980px){ .hero__inner{padding-right:34%} }
.hero h1{color:var(--cream); font-size:clamp(2.1rem,5vw,3.5rem); margin:1.4rem 0 1rem; max-width:18ch;
  text-shadow:0 2px 22px rgba(6,20,36,.6)}
.hero h1 em{color:var(--gold)}
.hero__lead{font-size:clamp(1.05rem,2.3vw,1.26rem); max-width:54ch; color:rgba(250,243,226,.94);
  text-shadow:0 1px 14px rgba(6,20,36,.55)}
.hero__cta{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.8rem}
.hero__rule{margin:2.4rem 0 1.2rem; color:rgba(201,162,39,.5)}
.hero__data{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(250,243,226,.16);
  border:1px solid rgba(250,243,226,.16)}
.hero__data div{background:var(--indigo); padding:1rem 1.1rem}
.hero__data dt{font-family:var(--display); font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gold); margin:0}
.hero__data dd{margin:.25rem 0 0; font-family:var(--display); font-size:1.5rem; color:var(--cream)}
@media(min-width:760px){ .hero__data{grid-template-columns:repeat(4,1fr)} }

/* ---------- SECTIONS ---------- */
.sec{padding:clamp(3rem,7vw,5.5rem) 0}
.sec--cream2{background:var(--cream-2)}
.sec--indigo{background:var(--indigo); color:var(--cream)}
.sec--indigo h2,.sec--indigo h3{color:var(--cream)}
.eyebrow{font-family:var(--display); font-size:.82rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-2)}
.sec--indigo .eyebrow{color:var(--gold)}
.sec__head{max-width:60ch; margin-bottom:2.4rem}
.sec__head h2{font-size:clamp(1.8rem,4vw,2.7rem); margin:.5rem 0 0}
.lead{font-size:1.15rem; color:var(--ink-soft)}
.sec--indigo .lead{color:rgba(250,243,226,.85)}

/* ---------- SERVICE CARDS ---------- */
.cards{display:grid; grid-template-columns:1fr; gap:1.3rem}
@media(min-width:640px){ .cards{grid-template-columns:repeat(2,1fr)} }
@media(min-width:980px){ .cards{grid-template-columns:repeat(3,1fr)} }
.card{position:relative; background:var(--cream); border:1px solid var(--line); border-radius:var(--r);
  padding:1.7rem 1.5rem 1.5rem; display:flex; flex-direction:column; overflow:hidden}
.card__img{width:calc(100% + 3rem); margin:-1.7rem -1.5rem 1.2rem; aspect-ratio:16/10; object-fit:cover;
  display:block; background:var(--cream-3); transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.card:hover .card__img{transform:scale(1.05)}
.card__rom{font-family:var(--display); color:var(--gold-2); font-size:1.1rem; letter-spacing:.08em}
.card__label{font-family:var(--display); font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-soft); margin:.2rem 0 .8rem}
.card h3{font-size:1.5rem; margin:0 0 .6rem}
.card p{margin:0 0 1.2rem; color:var(--ink-soft); font-size:1rem}
.card__foot{margin-top:auto; display:flex; align-items:baseline; justify-content:space-between; gap:.6rem;
  padding-top:1rem; border-top:1px solid var(--line)}
.card__price{font-family:var(--display); font-size:1.5rem; color:var(--indigo)}
.card__price small{font-size:.8rem; color:var(--ink-soft)}
.card__go{font-family:var(--display); color:var(--gold-2)}
.card--self{border-color:rgba(201,162,39,.5)}
.card--self .card__rom{color:var(--gold-2)}

/* ---------- TRUST BAND ---------- */
.trust{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(250,243,226,.18);
  border:1px solid rgba(250,243,226,.18); margin-top:2rem}
.trust div{background:var(--indigo); padding:1.5rem 1.2rem; text-align:center}
.trust b{display:block; font-family:var(--display); font-size:2.1rem; color:var(--gold)}
.trust span{display:block; font-size:.94rem; color:rgba(250,243,226,.82); margin-top:.35rem}
@media(min-width:760px){ .trust{grid-template-columns:repeat(3,1fr)} }
@media(min-width:1040px){ .trust{grid-template-columns:repeat(6,1fr)} }

/* ---------- GUIDE TEASERS ---------- */
.guides{display:grid; grid-template-columns:1fr; gap:1.3rem}
@media(min-width:640px){ .guides{grid-template-columns:repeat(2,1fr)} }
@media(min-width:1040px){ .guides{grid-template-columns:repeat(4,1fr)} }
.gcard{background:var(--cream); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; display:flex; flex-direction:column}
.gcard__img{aspect-ratio:4/3; background:var(--cream-3); object-fit:cover; width:100%}
.gcard__body{padding:1.2rem 1.2rem 1.4rem; display:flex; flex-direction:column; flex:1}
.gcard__rom{font-family:var(--display); color:var(--gold-2)}
.gcard__ch{font-family:var(--display); font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-soft)}
.gcard h3{font-size:1.2rem; margin:.4rem 0 .6rem}
.gcard__meta{margin-top:auto; font-size:.86rem; color:var(--ink-soft)}

/* ---------- ISLAND INDEX ---------- */
.islindex{columns:2; column-gap:2rem; margin-top:1.6rem; font-family:var(--display)}
@media(min-width:760px){ .islindex{columns:4} }
.islindex li{list-style:none; display:flex; justify-content:space-between; gap:.5rem; padding:.42rem 0;
  border-bottom:1px dotted rgba(250,243,226,.28); break-inside:avoid; color:var(--cream)}
.islindex li span:last-child{color:var(--gold)}
.islnote{margin-top:1.6rem; color:rgba(250,243,226,.72); font-style:italic; max-width:60ch}

/* ---------- FAQ ---------- */
.faq{max-width:820px; margin:0 auto}
.faq details{border-bottom:1px solid var(--line); padding:.4rem 0}
.faq summary{font-family:var(--display); font-size:1.22rem; color:var(--indigo); cursor:pointer; padding:.9rem 0; list-style:none; display:flex; justify-content:space-between; gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+'; color:var(--gold-2); font-size:1.5rem; line-height:1}
.faq details[open] summary::after{content:'–'}
.faq p{margin:0 0 1rem; color:var(--ink-soft)}

/* ---------- KEYFACT / ARCHFIG ---------- */
.keyfact{background:var(--cream-2); border-left:3px solid var(--gold); padding:1.1rem 1.3rem; border-radius:var(--r); margin:1.6rem 0}
.keyfact__k{font-family:var(--display); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-2)}
.keyfact p{margin:.3rem 0 0}
.archfig{margin:0}
.archfig__frame{display:block; border:1px solid var(--line); padding:.5rem; background:var(--cream); border-radius:var(--r)}
.archfig img{border-radius:2px; width:100%}
.archfig figcaption{font-size:.86rem; color:var(--ink-soft); font-style:italic; margin-top:.5rem}

/* ---------- LEAD FORM ---------- */
.leadform{background:var(--cream); border:1px solid var(--line); border-radius:var(--r); padding:1.6rem}
.sec--indigo .leadform{background:var(--indigo-2); border-color:rgba(250,243,226,.2)}
.leadform h3{margin:0 0 1rem}
.lf__grid{display:grid; grid-template-columns:1fr; gap:.8rem}
@media(min-width:600px){ .lf__grid{grid-template-columns:1fr 1fr} }
.leadform input,.leadform select,.leadform textarea{width:100%; padding:.7rem .8rem; border:1px solid var(--line);
  border-radius:var(--r); font-family:var(--serif); font-size:1rem; background:#fff; color:var(--ink)}
.leadform .lf__err{border-color:var(--rose); box-shadow:0 0 0 3px rgba(199,123,107,.2)}
.lf__actions{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem}
.lf__full{grid-column:1/-1}

/* ---------- DISCLAIMER ---------- */
.disc{font-size:.86rem; color:var(--ink-soft); line-height:1.55; background:var(--cream-2);
  border:1px solid var(--line); border-radius:var(--r); padding:.7rem .9rem; margin:1rem 0}
.disc--compact{background:none; border:none; padding:.2rem 0; font-size:.8rem; margin:.5rem 0 0}
.sec--indigo .disc{background:var(--indigo-2); color:rgba(250,243,226,.72); border-color:rgba(250,243,226,.18)}

/* ---------- TP WIDGET PENDING ---------- */
.tp-pending{background:var(--cream-2); border:1px dashed var(--gold-2); border-radius:var(--r); padding:1.3rem; color:var(--ink-soft)}
.tp-pending a{color:var(--gold-2); font-weight:600}
.tpframe{width:100%; height:600px; border:0; overflow:hidden}
@media(max-width:600px){ .tpframe{height:760px} }

/* ---------- FOOTER ---------- */
.footer{background:var(--indigo-2); color:var(--cream); padding-top:3rem}
.footer__disc{font-size:.84rem; color:rgba(250,243,226,.6); border-bottom:1px solid rgba(250,243,226,.14); padding-bottom:1.4rem; margin-bottom:2rem}
.footer__top{display:grid; grid-template-columns:1fr; gap:2rem}
@media(min-width:760px){ .footer__top{grid-template-columns:2fr 1fr 1fr 1fr 1fr} }
.footer__brand h3{color:var(--cream); font-size:1.5rem; margin:0 0 .8rem}
.footer__brand h3 b{color:var(--gold)}
.footer__brand p{color:rgba(250,243,226,.75); font-size:.96rem}
.footer__meta{font-family:var(--display); font-size:.78rem; letter-spacing:.1em; color:var(--gold) !important; margin-top:1rem}
.footer__col h4{color:var(--gold); font-size:.82rem; letter-spacing:.13em; text-transform:uppercase; margin:0 0 .9rem}
.footer__col a{display:block; color:rgba(250,243,226,.82); font-size:.95rem; padding:.28rem 0}
.footer__col a:hover{color:var(--gold)}
.footer__last{font-family:var(--accent); font-style:italic; font-size:1.2rem; color:var(--gold);
  text-align:center; border-top:1px solid rgba(250,243,226,.14); margin-top:2.4rem; padding-top:1.8rem}
.footer__bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem; padding:1.4rem 0 2rem;
  font-size:.85rem; color:rgba(250,243,226,.6)}
.footer__bottom a{color:rgba(250,243,226,.72)}
.seynet{background:var(--indigo); border-top:1px solid rgba(250,243,226,.12)}
.seynet__in{max-width:var(--wrap); margin:0 auto; padding:1.3rem var(--pad); display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; font-size:.82rem}
.seynet__label{font-family:var(--display); color:var(--gold); letter-spacing:.1em; text-transform:uppercase; font-size:.74rem}
.seynet__row a{color:rgba(250,243,226,.72)}
.seynet__row a:hover{color:var(--gold)}
.seynet__langs a{color:rgba(201,162,39,.85)}

/* ---------- PAGE HERO / CRUMBS / PROSE ---------- */
.phero{position:relative; background:var(--indigo); color:var(--cream); overflow:hidden;
  padding:clamp(2.6rem,7vw,4.6rem) 0 clamp(2rem,5vw,3.2rem)}
.phero--img{min-height:clamp(320px,50vh,500px); display:flex; align-items:flex-end; padding-block:0}
.phero--img .phero__in{padding-block:clamp(1.6rem,4vw,2.8rem)}
.phero--img::after{content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(9,29,49,.94) 0%, rgba(9,29,49,.60) 38%, rgba(9,29,49,.12) 78%, rgba(9,29,49,.05) 100%)}
.phero__bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9; z-index:0}
.phero__in{position:relative; z-index:2}
.phero h1{color:var(--cream); font-size:clamp(2rem,5vw,3.3rem); margin:.7rem 0 .8rem; max-width:20ch}
.phero__lead{font-size:clamp(1.02rem,2.2vw,1.22rem); max-width:60ch; color:rgba(250,243,226,.9)}
.crumbs{font-family:var(--display); font-size:.82rem; color:rgba(250,243,226,.7); margin-bottom:.3rem}
.crumbs a{color:var(--gold)}
.crumbs i{color:rgba(250,243,226,.45); font-style:normal; margin:0 .35rem}
.prose{max-width:72ch; font-size:1.1rem}
.prose h2{font-size:clamp(1.6rem,3.4vw,2.2rem); margin:2.4rem 0 .8rem}
.prose h3{font-size:1.35rem; margin:1.8rem 0 .6rem}
.prose p{margin:0 0 1.1rem; color:var(--ink)}
.prose ul,.prose ol{margin:0 0 1.2rem; padding-left:1.2rem; color:var(--ink)}
.prose li{margin:.35rem 0}
.prose a{color:var(--gold-2); text-decoration:underline; text-underline-offset:2px}
.prose img{border-radius:var(--r); margin:1.4rem 0}
.prose blockquote{border-left:3px solid var(--gold); margin:1.6rem 0; padding:.4rem 0 .4rem 1.2rem;
  font-family:var(--accent); font-style:italic; font-size:1.3rem; color:var(--indigo)}
.prose .src{font-size:.9rem; color:var(--ink-soft)}
.prose .src ol{padding-left:1.3rem}
.wide{max-width:var(--wrap)}
.grid2{display:grid; grid-template-columns:1fr; gap:1.6rem; align-items:start}
@media(min-width:860px){ .grid2{grid-template-columns:1.4fr .9fr} }
.gallery{display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; margin:1.4rem 0}
@media(min-width:760px){ .gallery{grid-template-columns:repeat(3,1fr)} }
.gallery img{aspect-ratio:4/3; object-fit:cover; width:100%; border-radius:var(--r)}
.gallery--cap{grid-template-columns:1fr; gap:1.2rem}
@media(min-width:620px){ .gallery--cap{grid-template-columns:repeat(2,1fr)} }
.gallery--cap .archfig img{aspect-ratio:4/3; object-fit:cover; width:100%}
.gallery--cap figcaption{font-size:.86rem; color:var(--ink-soft); font-style:italic; margin-top:.5rem}
.pricetable{width:100%; border-collapse:collapse; margin:1.4rem 0; font-size:1rem}
.pricetable th,.pricetable td{text-align:left; padding:.7rem .8rem; border-bottom:1px solid var(--line)}
.pricetable th{font-family:var(--display); color:var(--indigo); background:var(--cream-2)}
.pricetable td:last-child{font-family:var(--display); color:var(--gold-2); white-space:nowrap}
.hubgrid{display:grid; grid-template-columns:1fr; gap:1.2rem}
@media(min-width:640px){ .hubgrid{grid-template-columns:repeat(2,1fr)} }
@media(min-width:980px){ .hubgrid{grid-template-columns:repeat(3,1fr)} }
.hubcard{display:flex; flex-direction:column; background:var(--cream); border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden}
.hubcard img{aspect-ratio:16/10; object-fit:cover; width:100%; background:var(--cream-3)}
.hubcard__b{padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; flex:1}
.hubcard h3{font-size:1.3rem; margin:0 0 .5rem}
.hubcard p{margin:0 0 1rem; color:var(--ink-soft); font-size:.98rem}
.hubcard__go{margin-top:auto; font-family:var(--display); color:var(--gold-2)}

/* ---------- DEEP TOUR / PRODUCT PAGES ---------- */
.phero--tour{padding-block:clamp(1.6rem,4vw,2.4rem)}
.thead__meta{display:flex; flex-wrap:wrap; gap:.7rem 1.2rem; align-items:center; margin-top:.8rem}
.thead__price{font-family:var(--display); font-size:1.15rem; color:var(--cream)}
.thead__price b{color:var(--gold)}
.tourc__rate{font-family:var(--display); color:var(--gold)}
.tourc__rate span{color:var(--ink-soft); font-size:.9em}
.phero .tourc__rate span{color:rgba(250,243,226,.7)}
.pill{display:inline-block; border:1px solid rgba(250,243,226,.4); border-radius:100px; padding:.15rem .8rem; font-size:.85rem; color:var(--cream)}
.tgal{margin:1.4rem 0 0}
.tgal__main{aspect-ratio:16/10; border-radius:var(--r); overflow:hidden; background:var(--cream-3); border:1px solid var(--line)}
.tgal__main img{width:100%; height:100%; object-fit:cover}
.tgal__ths{display:grid; grid-template-columns:repeat(6,1fr); gap:.5rem; margin-top:.5rem}
@media(max-width:600px){ .tgal__ths{grid-template-columns:repeat(4,1fr)} }
.tg__th{padding:0; border:2px solid transparent; border-radius:var(--r); overflow:hidden; cursor:pointer; background:none; aspect-ratio:4/3}
.tg__th img{width:100%; height:100%; object-fit:cover}
.tg__th.is-on{border-color:var(--gold)}
/* ---------- LIGHTBOX GALLERY (ported) ---------- */
.gallery--lb{grid-template-columns:repeat(2,1fr)}
.gallery--lb.gallery--c3{grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){ .gallery--lb.gallery--c3{grid-template-columns:repeat(3,1fr)} }
.gallery--lb .gal__cell{margin:0; position:relative; overflow:hidden; border-radius:var(--r); background:var(--cream-3)}
.gallery--lb .gal__cell img{aspect-ratio:4/3; object-fit:cover; width:100%; display:block;
  transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.gallery--lb .gal__cell:hover img{transform:scale(1.05)}
.gallery--lb .gal__cell figcaption{position:absolute; left:0; right:0; bottom:0; padding:.9rem .8rem .55rem;
  font-size:.82rem; color:#fff; background:linear-gradient(to top,rgba(9,32,52,.82),transparent);
  opacity:0; transition:opacity .3s}
.gallery--lb .gal__cell:hover figcaption{opacity:1}
.lb{position:fixed; inset:0; z-index:200; background:rgba(6,22,38,.94); display:flex; align-items:center;
  justify-content:center; gap:.4rem; padding:clamp(.6rem,3vw,2rem)}
.lb[hidden]{display:none}
body.lb-open{overflow:hidden}
.lb__stage{margin:0; display:flex; flex-direction:column; align-items:center; max-width:min(1100px,92vw); max-height:88vh}
.lb__img{max-width:100%; max-height:82vh; object-fit:contain; border-radius:6px; box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb__cap{color:rgba(255,255,255,.85); font-size:.9rem; margin-top:.7rem; text-align:center; font-style:italic}
.lb__x{position:absolute; top:1rem; right:1.2rem; background:none; border:none; color:#fff; font-size:2.2rem;
  line-height:1; cursor:pointer; opacity:.85}
.lb__x:hover{opacity:1}
.lb__nav{flex:0 0 auto; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff;
  width:48px; height:48px; border-radius:50%; font-size:1.8rem; line-height:1; cursor:pointer; transition:background .2s}
.lb__nav:hover{background:rgba(255,255,255,.24)}
@media(max-width:600px){ .lb__nav{width:40px; height:40px; font-size:1.4rem} }
/* ---------- STRUCTURED ENQUIRY FORM (bookform) ---------- */
.bf__grid .bf__field{display:flex; flex-direction:column; gap:.35rem}
.bf__field>span{font-size:.86rem; color:var(--ink-soft)}
.sec--indigo .bf__field>span{color:rgba(250,243,226,.82)}
.bf__req{color:var(--gold-2)}
.sec--indigo .bf__req{color:var(--gold)}
.bf__hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0}
/* ---------- WEDDING FILM CARDS ---------- */
.filmgrid{display:grid; grid-template-columns:1fr; gap:1.1rem; margin:1.4rem 0}
@media(min-width:680px){ .filmgrid{grid-template-columns:repeat(2,1fr)} }
@media(min-width:1040px){ .filmgrid{grid-template-columns:repeat(3,1fr)} }
.film{margin:0; position:relative; border-radius:var(--r); overflow:hidden; background:var(--cream-3); aspect-ratio:16/10}
.film__face{padding:0; border:none; background:none; cursor:pointer; width:100%; height:100%; position:relative; display:block}
.film__face img{width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.film:hover .film__face img{transform:scale(1.05)}
.film__play{position:absolute; inset:0; margin:auto; width:62px; height:62px; border-radius:50%;
  background:rgba(201,162,39,.92); color:var(--indigo-2); display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.35); transition:transform .2s}
.film:hover .film__play{transform:scale(1.08)}
.film__cap{position:absolute; left:0; right:0; bottom:0; padding:1.1rem .9rem .6rem; text-align:left;
  color:#fff; font-size:.86rem; background:linear-gradient(to top,rgba(9,32,52,.85),transparent)}
.film__cap b{font-family:var(--display); font-weight:400}
.film__frame{width:100%; height:100%; border:0; display:block; aspect-ratio:16/10}
/* ---------- image credits + map embed ---------- */
.imgcredit{font-size:.76rem; color:var(--ink-soft); margin:.5rem 0 0; opacity:.85}
.imgcredit a{color:inherit; text-decoration:underline}
.mapembed{margin:1.4rem 0; border-radius:var(--r); overflow:hidden; border:1px solid var(--line); background:var(--cream-3)}
.mapembed iframe{width:100%; height:340px; border:0; display:block}
/* ---------- CAR QUOTE / ENQUIRY WIDGET (qbox) ---------- */
.qbox{background:var(--cream); border:1px solid var(--line); border-radius:var(--r); padding:1.4rem}
.qbox h3{text-align:center; margin:0 0 1rem; font-size:1.35rem}
.qbox .field{display:flex; flex-direction:column; gap:.3rem; margin-bottom:.7rem}
.qbox .field label{font-size:.82rem; color:var(--ink-soft)}
.qbox input,.qbox select{width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:4px;
  background:var(--cream-2); font:inherit; color:var(--ink)}
.qbox .grid-field{display:grid; grid-template-columns:1fr 1fr; gap:.6rem}
.qbox__carname{font-family:var(--display); color:var(--indigo); font-size:1.1rem; text-align:center; margin-bottom:.6rem}
.qbox__total{display:flex; justify-content:space-between; align-items:baseline; margin:.9rem 0 .2rem;
  padding-top:.8rem; border-top:1px solid var(--line)}
.qbox__total b{font-family:var(--display); font-size:1.5rem; color:var(--gold-2)}
.qbox__note{font-size:.8rem; color:var(--ink-soft); line-height:1.5; margin:.5rem 0 0}
.qbox__err{color:var(--rose); font-size:.82rem; margin:.3rem 0 0; min-height:1em}
.qactions{display:flex; flex-direction:column; gap:.6rem; margin-top:.8rem}
.qactions .btn{width:100%; text-align:center}
.tourwrap{display:grid; grid-template-columns:1fr; gap:2rem; margin-top:1.6rem; align-items:start}
@media(min-width:940px){ .tourwrap{grid-template-columns:1.55fr .95fr} }
.tourbody{max-width:none}
.tourbody h2{font-size:clamp(1.4rem,2.8vw,1.9rem)}
.grid2b{display:grid; grid-template-columns:1fr; gap:1rem; margin:1.2rem 0}
@media(min-width:600px){ .grid2b{grid-template-columns:1fr 1fr} }
.checklist{list-style:none; padding:0; margin:0 0 1.2rem}
.checklist li{position:relative; padding-left:1.7rem; margin:.5rem 0}
.checklist li::before{content:'✦'; position:absolute; left:0; color:var(--gold-2)}
.vbadge{background:var(--indigo); color:var(--cream); border-radius:var(--r); padding:1.1rem 1.3rem; margin:0 0 1.4rem}
.vbadge__b{display:inline-block; font-family:var(--display); color:var(--indigo-2); background:var(--gold); padding:.2rem .8rem; border-radius:100px; font-size:.82rem; margin-bottom:.5rem}
.vbadge p{margin:0; color:rgba(250,243,226,.86); font-size:.96rem}
.rvbox{background:var(--cream-2); border:1px solid var(--line); border-radius:var(--r); padding:1.4rem}
.rvbox__score{display:flex; align-items:center; gap:.7rem; flex-wrap:wrap}
.rvbox__score b{font-family:var(--display); font-size:2.2rem; color:var(--indigo)}
.rvstars{color:var(--gold)}
.rvbox__score span{color:var(--ink-soft)}
.rvbox__hl{font-size:1.1rem; margin:.8rem 0 .4rem}
.rvsplit{display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; color:var(--ink-soft); font-size:.95rem; margin-bottom:.8rem}
.rvsplit b{color:var(--gold-2)}
.rvbox__note{font-size:.9rem; color:var(--ink-soft)}
.tbookwrap{position:sticky; top:90px}
@media(max-width:939px){ .tourwrap .tbookwrap{order:-1; position:static; top:auto} }
.tbook{background:var(--cream); border:1px solid var(--gold-2); border-radius:var(--r); padding:1.4rem; box-shadow:0 10px 30px rgba(18,56,92,.08)}
.tbook h3{margin:0 0 .6rem}
.tbook__price{font-family:var(--display); font-size:1.1rem; color:var(--ink-soft); margin:0}
.tbook__price b{font-size:1.7rem; color:var(--indigo)}
.tbook__rate{color:var(--gold-2); font-family:var(--display); margin:.2rem 0 1rem}
.tbook .btn{width:100%; justify-content:center; margin-bottom:.6rem}
.tbook__list{list-style:none; padding:0; margin:.8rem 0; font-size:.9rem}
.tbook__list li{padding-left:1.3rem; position:relative; margin:.4rem 0; color:var(--ink-soft)}
.tbook__list li::before{content:'✓'; position:absolute; left:0; color:var(--sea)}
.tbook__ask{font-family:var(--accent); font-style:italic; color:var(--indigo); margin:.6rem 0 .5rem}
.trustband{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
@media(min-width:820px){ .trustband{grid-template-columns:repeat(4,1fr)} }
.trustband__i{background:var(--cream); padding:1rem 1.1rem; text-align:center}
.trustband__i b{display:block; font-family:var(--display); color:var(--indigo)}
.trustband__i span{font-size:.85rem; color:var(--ink-soft)}

/* ---------- REVEAL ---------- */
[data-reveal]{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease}
[data-reveal].in{opacity:1; transform:none}
.phero__in,.hero__inner{opacity:1 !important; transform:none !important}
@media(prefers-reduced-motion:reduce){ [data-reveal]{opacity:1; transform:none; transition:none} html{scroll-behavior:auto} }

/* ---------- HOTELS: featured + rating ---------- */
.hfeat{display:grid; grid-template-columns:1fr; gap:0; background:var(--cream); border:1px solid var(--gold-2); border-radius:var(--r); overflow:hidden; margin:1.4rem 0 2rem; box-shadow:0 12px 34px rgba(18,56,92,.10)}
@media(min-width:760px){ .hfeat{grid-template-columns:1.15fr 1fr} }
.hfeat__img{position:relative; display:block}
.hfeat__img img{width:100%; height:100%; min-height:240px; object-fit:cover; display:block}
.hfeat__no1{position:absolute; top:.8rem; left:.8rem; background:var(--gold); color:var(--indigo-2,#0d2842); font-family:var(--display); font-size:.82rem; padding:.25rem .8rem; border-radius:100px}
.hfeat__body{padding:1.6rem 1.7rem; display:flex; flex-direction:column; justify-content:center}
.hfeat__body h3{font-size:1.5rem; margin:.3rem 0 .7rem}
.hfeat__body p{color:var(--ink-soft); margin:0 0 1rem}
.hrate2{font-family:var(--display); color:var(--gold-2); font-size:1rem}
.hrate2 b{color:var(--indigo); font-size:1.1rem}
.hrate2 span{color:var(--ink-soft); font-size:.85rem}

/* ---------- FACT GRID (dishes, tips, checklists) ---------- */
.factgrid{display:grid; grid-template-columns:1fr; gap:1rem; margin-top:.4rem}
@media(min-width:620px){ .factgrid{grid-template-columns:repeat(2,1fr)} }
@media(min-width:980px){ .factgrid{grid-template-columns:repeat(3,1fr)} }
.factcard{background:var(--cream); border:1px solid var(--line); border-left:3px solid var(--gold-2); border-radius:var(--r); padding:1.1rem 1.2rem}
.factcard h3{font-size:1.12rem; margin:0 0 .4rem; color:var(--indigo)}
.factcard p{margin:0; color:var(--ink-soft); font-size:.96rem}

/* ---------- WEDDING GALLERY ---------- */
.wgal{display:grid; grid-template-columns:repeat(2,1fr); gap:.5rem; margin-top:.6rem}
@media(min-width:620px){ .wgal{grid-template-columns:repeat(3,1fr)} }
@media(min-width:980px){ .wgal{grid-template-columns:repeat(4,1fr)} }
.wgal img{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--r); background:var(--cream-3)}

/* ---------- COOKIE CONSENT ---------- */
.consent{position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:200; max-width:640px; margin:0 auto;
  background:var(--indigo); color:#fff; border:1px solid var(--gold-2); border-radius:var(--r);
  padding:1rem 1.2rem; box-shadow:0 16px 40px rgba(0,0,0,.3); display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1rem}
.consent[hidden]{display:none}
.consent p{margin:0; flex:1 1 260px; font-size:.9rem; color:#f2e9d6}
.consent__btns{display:flex; gap:.6rem; margin-left:auto}
.consent .btn{padding:.5rem 1rem; font-size:.9rem}
.consent .btn--ghost{color:#fff; border-color:rgba(255,255,255,.5)}

/* ---------- AUTHOR / E-E-A-T ---------- */
.byline{display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1rem; margin:0 0 1.8rem; padding-bottom:1rem;
  border-bottom:1px solid var(--line); font-family:var(--display); font-size:.94rem; color:var(--ink-soft)}
.byline__by b{color:var(--indigo)}
.byline__date{font-size:.82rem; letter-spacing:.03em}
.byline__date::before{content:'·'; margin-right:.9rem; color:var(--gold-2)}
.sec--indigo .byline{border-color:rgba(250,243,226,.2); color:rgba(250,243,226,.8)}
.sec--indigo .byline__by b{color:var(--cream)}
.authorbox{display:flex; gap:1.2rem; align-items:flex-start; background:var(--cream-2); border:1px solid var(--line);
  border-left:3px solid var(--gold); border-radius:var(--r); padding:1.4rem 1.5rem; margin:2.6rem 0 0; max-width:72ch}
.authorbox__mono{flex:none; width:54px; height:54px; border-radius:50%; background:var(--indigo); color:var(--gold);
  font-family:var(--display); font-size:1.24rem; display:flex; align-items:center; justify-content:center}
.authorbox__body{flex:1}
.authorbox__k{font-family:var(--display); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-2)}
.authorbox__body h3{font-size:1.24rem; margin:.15rem 0 .1rem}
.authorbox__role{font-family:var(--display); font-size:.9rem; color:var(--ink-soft); margin:0 0 .55rem}
.authorbox__body p{margin:0 0 .6rem; color:var(--ink-soft); font-size:.98rem}
.authorbox__body a{font-family:var(--display); color:var(--gold-2)}

/* ---------- TABLE OF CONTENTS (long reads) ---------- */
.toc{background:var(--cream-2); border:1px solid var(--line); border-radius:var(--r); padding:1.2rem 1.4rem; margin:0 0 2rem; max-width:72ch}
.toc__k{font-family:var(--display); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-2)}
.toc ol{margin:.6rem 0 0; padding-left:1.3rem; columns:2; column-gap:2rem}
@media(max-width:600px){ .toc ol{columns:1} }
.toc li{margin:.3rem 0; font-family:var(--display); break-inside:avoid}
.toc a{color:var(--indigo)}
.toc a:hover{color:var(--gold-2)}

/* ---------- SOURCES / CITATIONS ---------- */
.sources{background:var(--cream-2); border:1px solid var(--line); border-radius:var(--r); padding:1.3rem 1.5rem; margin:2.2rem 0 0; max-width:72ch}
.sources h3{font-size:1.1rem; margin:0 0 .6rem}
.sources ol{margin:0; padding-left:1.3rem; font-size:.92rem; color:var(--ink-soft)}
.sources li{margin:.4rem 0}
.sources a{color:var(--gold-2); text-decoration:underline; text-underline-offset:2px; word-break:break-word}

/* ---------- ROTA INTERACTIVE MAP (portolan chart) ---------- */
.rmap{margin:0; background:var(--cream-2,#f3e9d2); border:1px solid var(--gold-2); border-radius:var(--r); overflow:hidden; box-shadow:0 14px 40px rgba(18,56,92,.12)}
.rmap__cap{padding:1.6rem 1.6rem .4rem}
.rmap__cap h2{margin:.2rem 0 .3rem}
.rmap__cap p{margin:0; color:var(--ink-soft)}
.rmap svg{display:block; width:100%; height:auto}
.rmap__border{fill:none; stroke:var(--gold-2); stroke-width:2}
.rmap__rhumb line{stroke:rgba(18,56,92,.14); stroke-width:.6}
.rmap__isles path{fill:#173e5f; stroke:var(--gold); stroke-width:1.4; transition:fill .25s ease, transform .25s ease; transform-origin:center}
.rmap__isle{cursor:pointer}
.rmap__isle:hover path, .rmap__isle:focus path, .rmap__isle.is-hot path{fill:var(--gold-2)}
.rmap__label{fill:#12385c; font-family:var(--display,'Marcellus',serif); font-size:19px; paint-order:stroke; stroke:#f7edd6; stroke-width:3px}
.rmap__isle:hover .rmap__label{fill:#8a6d17}
.rmap__dot circle{fill:#173e5f; opacity:.7}
.rmap__dot text{fill:#4a5b68; font-family:var(--body,'EB Garamond',serif); font-size:13px}
.rmap__rose circle{fill:none; stroke:var(--gold-2); stroke-width:1.1}
.rmap__rose polygon{fill:var(--gold); opacity:.85}
.rmap__nsew{fill:#8a6d17; font-family:var(--display,serif); font-size:15px; text-anchor:middle}
.rmap__title{fill:#8a6d17; font-family:var(--display,serif); font-size:15px; letter-spacing:.22em; text-anchor:middle; opacity:.8}
@media(max-width:640px){ .rmap__label{font-size:22px} .rmap__dot text{font-size:15px} }

/* ---------- HOTEL GUEST REVIEWS (real, attributed) ---------- */
.hreviews{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; margin:1rem 0 .4rem}
.hreview{margin:0; padding:1.2rem 1.3rem; background:var(--cream-2,#f3e9d2); border:1px solid var(--gold-2); border-radius:var(--r); box-shadow:0 8px 24px rgba(18,56,92,.07)}
.hreview blockquote{margin:0 0 .7rem; padding:0; border:0; font-family:var(--body,'EB Garamond',serif); font-size:1.02rem; line-height:1.55; color:var(--ink)}
.hreview blockquote::before{content:"\201C"; color:var(--gold); font-family:var(--display,serif); font-size:1.6rem; line-height:0; vertical-align:-.35em; margin-right:.15em}
.hreview figcaption{font-size:.82rem; color:var(--ink-soft); letter-spacing:.02em}
.hreview figcaption::before{content:"\2605 "; color:var(--gold)}

/* ============================================================
   DESIGN ELEVATION (sc- namespace) — "edition" concept in motion.
   All motion gated behind prefers-reduced-motion. No JS libraries.
   ============================================================ */

/* ---- 5a. paper/film grain on the cream (backmost body layer, never over text) ---- */
body{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.06'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(circle at 12% 18%, rgba(201,162,39,.05), transparent 45%),
    radial-gradient(circle at 88% 82%, rgba(30,90,168,.05), transparent 45%);
  background-size:160px 160px, auto, auto;
}

/* ---- 5b. graded hero + slow Ken Burns (home hero only, motion-gated) ---- */
.hero__bg,.phero__bg{filter:saturate(.94) contrast(1.03) brightness(.97) sepia(.05)}
@keyframes sc-ken{from{transform:scale(1.02)}to{transform:scale(1.09)}}
@media (prefers-reduced-motion:no-preference){
  .hero__bg{animation:sc-ken 26s ease-in-out infinite alternate; transform-origin:center; will-change:transform}
}

/* ---- 3. living compass: rhumb lines draw on load, rose fades, drift on scroll ---- */
.sc-compass{width:100%; height:auto; display:block; overflow:visible}
.sc-compass .sc-rh{stroke-dasharray:92; stroke-dashoffset:0}     /* default: fully drawn (reduced-motion) */
.sc-hero-compass{position:absolute; right:-80px; top:50%; transform:translateY(-50%);
  width:min(340px,42vw); color:rgba(201,162,39,.14); pointer-events:none; z-index:1}
@keyframes sc-draw{to{stroke-dashoffset:0}}
@keyframes sc-fade{to{opacity:1}}
@media (prefers-reduced-motion:no-preference){
  .sc-compass .sc-rh{stroke-dashoffset:92; animation:sc-draw 2.4s ease forwards}
  .sc-compass__rhumb .sc-rh:nth-child(1){animation-delay:.05s}
  .sc-compass__rhumb .sc-rh:nth-child(2){animation-delay:.18s}
  .sc-compass__rhumb .sc-rh:nth-child(3){animation-delay:.31s}
  .sc-compass__rhumb .sc-rh:nth-child(4){animation-delay:.44s}
  .sc-compass__rhumb .sc-rh:nth-child(5){animation-delay:.57s}
  .sc-compass__rhumb .sc-rh:nth-child(6){animation-delay:.70s}
  .sc-compass__rhumb .sc-rh:nth-child(7){animation-delay:.83s}
  .sc-compass__rhumb .sc-rh:nth-child(8){animation-delay:.96s}
  .sc-compass__rose{opacity:0; animation:sc-fade 1.4s ease .7s forwards}
}

/* ---- 4. Vasco da Gama route line (draws on scroll-in, caravel travels) ---- */
.sc-route{margin:1.8rem 0; background:var(--cream-2); border:1px solid var(--gold-2); border-radius:var(--r);
  overflow:hidden; box-shadow:0 14px 40px rgba(18,56,92,.12)}
.sc-route__cap{padding:1.5rem 1.6rem .3rem}
.sc-route__cap h2{margin:.2rem 0 .35rem; font-size:clamp(1.4rem,3vw,2rem)}
.sc-route__cap p{margin:0; color:var(--ink-soft); max-width:62ch}
.sc-route svg{display:block; width:100%; height:auto}
.sc-route__sea{fill:#eadfbf}
.sc-route__grid line{stroke:rgba(18,56,92,.09); stroke-width:.6}
/* stylised coastlines: aged land tint with an ink shoreline */
.sc-route__land path{fill:#d8c79a; stroke:rgba(18,56,92,.5); stroke-width:1.1; stroke-linejoin:round}
.sc-route__sey circle{fill:var(--indigo)}
.sc-route__ocean text{fill:rgba(18,56,92,.3); font-family:var(--display); font-style:italic;
  font-size:13px; letter-spacing:.16em}
/* portolan compass rose sitting in open ocean */
.sc-route__rays line{stroke:rgba(169,134,27,.32); stroke-width:.6}
.sc-route__rosering{fill:none; stroke:rgba(169,134,27,.55); stroke-width:.9}
.sc-route__star1{fill:var(--indigo)}
.sc-route__star2{fill:rgba(169,134,27,.75)}
.sc-route__rosehub{fill:var(--indigo)}
.sc-route__roseN{fill:var(--indigo); font-family:var(--display); font-size:12px}
.sc-route__wp circle{fill:var(--indigo)}
.sc-route__wp text{fill:var(--indigo); font-family:var(--display); font-size:16px;
  paint-order:stroke; stroke:#eadfbf; stroke-width:3px}
.sc-route__path{fill:none; stroke:rgba(169,134,27,.45); stroke-width:1.6; stroke-dasharray:2 8; stroke-linecap:round}
.sc-route__draw{fill:none; stroke:var(--gold-2); stroke-width:2.6; stroke-linecap:round; stroke-dashoffset:0}
.sc-route__ship{color:var(--indigo); offset-distance:100%; offset-rotate:auto}
@media (prefers-reduced-motion:no-preference){
  .sc-route__draw{stroke-dashoffset:100; transition:stroke-dashoffset 2.8s ease .15s}
  .sc-route.is-drawn .sc-route__draw{stroke-dashoffset:0}
  .sc-route__ship{offset-distance:0%; transition:offset-distance 2.8s ease .15s}
  .sc-route.is-drawn .sc-route__ship{offset-distance:100%}
}

/* ---- 2. editorial gallery (lead + supporting, never equal rectangles) ---- */
.gallery--edit{display:grid; grid-template-columns:repeat(2,1fr); grid-auto-rows:42vw; gap:.6rem; margin:1.5rem 0}
.gallery--edit .gal__cell{height:100%; position:relative; overflow:hidden; border-radius:var(--r); background:var(--cream-3)}
.gallery--edit .gal__cell img{width:100%; height:100%; object-fit:cover; aspect-ratio:auto;
  transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.gallery--edit .gal__cell:hover img{transform:scale(1.03)}
.gallery--edit .gal__cell::after{content:''; position:absolute; inset:.4rem; border:1px solid rgba(201,162,39,0);
  border-radius:2px; transition:border-color .3s; pointer-events:none}
.gallery--edit .gal__cell:hover::after{border-color:rgba(201,162,39,.7)}
.gallery--edit .gal__cell figcaption{position:absolute; left:0; right:0; bottom:0; padding:1rem .8rem .55rem;
  font-size:.82rem; color:#fff; background:linear-gradient(to top,rgba(9,32,52,.85),transparent);
  opacity:0; transform:translateY(8px); transition:opacity .4s ease, transform .4s ease}
.gallery--edit .gal__cell:hover figcaption{opacity:1; transform:translateY(0)}
.gallery--edit .gal__cell--lead{grid-column:1/-1}
@media(min-width:560px){ .gallery--edit{grid-auto-rows:150px} }
@media(min-width:820px){
  .gallery--edit{grid-template-columns:repeat(4,1fr); grid-auto-rows:152px}
  .gallery--edit .gal__cell--lead{grid-column:span 2; grid-row:span 2}
}
@media(min-width:1100px){ .gallery--edit{grid-auto-rows:174px} }

/* ---- 1. lightbox: gold chrome + edition counter ---- */
.lb__count{position:absolute; top:1.2rem; left:1.4rem; font-family:var(--display); letter-spacing:.16em;
  font-size:.82rem; color:var(--gold); text-transform:uppercase}
.lb__x{color:var(--gold)}
.lb__nav{border-color:rgba(201,162,39,.5); color:var(--gold); background:rgba(201,162,39,.08)}
.lb__nav:hover{background:rgba(201,162,39,.22)}
.lb__cap{font-family:var(--serif)}
.lb__nav[hidden],.lb__count[hidden]{display:none}
@keyframes sc-lbin{from{opacity:0}}
@keyframes sc-lbimg{from{opacity:0; transform:scale(.98)}}
@media (prefers-reduced-motion:no-preference){
  .lb:not([hidden]){animation:sc-lbin .22s ease}
  .lb:not([hidden]) .lb__img{animation:sc-lbimg .3s ease}
}

/* ---- 6a. drop-cap on the first editorial paragraph (one per page) ---- */
.sc-dropcap::first-letter{font-family:var(--display); color:var(--gold-2); float:left; font-weight:400;
  font-size:3.6rem; line-height:.8; padding:.32rem .55rem 0 0}

/* ---- 6b. nav-hover underline draws left to right ---- */
.nav__links a::after{content:''; position:absolute; left:0; bottom:-3px; height:1.5px; width:0;
  background:var(--gold-2); transition:width .3s ease}
.nav__links a:hover::after{width:100%}
.nav__links a.nav__wa::after{display:none}

/* ---- 6c. buttons: gold lift, outline fill ---- */
.btn--ghost:hover{background:rgba(255,255,255,.14)}
@media (prefers-reduced-motion:no-preference){
  .btn--gold:hover{transform:translateY(-2px); box-shadow:0 8px 22px rgba(201,162,39,.32)}
  .btn--indigo:hover,.btn--wa:hover{transform:translateY(-2px); box-shadow:0 8px 22px rgba(12,39,64,.24)}
}

/* ---- 6d. consistent diamond-glyph divider under section heads ---- */
.sc-div{display:inline-flex; align-items:center; gap:.7rem; color:var(--gold-2)}
.sc-div i{display:block; width:46px; height:1px; background:currentColor; opacity:.55}
.sec__head:not([style])::after{content:''; display:block; height:12px; width:80px; margin-top:1.05rem;
  background:
    center/12px 12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='M6 0l6 6-6 6-6-6z' fill='%23A9861B'/%3E%3C/svg%3E"),
    linear-gradient(#A9861B,#A9861B) left center/28px 1.5px no-repeat,
    linear-gradient(#A9861B,#A9861B) right center/28px 1.5px no-repeat}
.sec--indigo .sec__head:not([style])::after{
  background:
    center/12px 12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='M6 0l6 6-6 6-6-6z' fill='%23C9A227'/%3E%3C/svg%3E"),
    linear-gradient(#C9A227,#C9A227) left center/28px 1.5px no-repeat,
    linear-gradient(#C9A227,#C9A227) right center/28px 1.5px no-repeat}

/* ---- 7a. car card: photographic/tinted plate (no floating white cutout) ---- */
.card__img{background:linear-gradient(135deg,var(--cream-3),var(--cream-2))}

/* ---- 7b. closing sign-off band (kills the dead whitespace before the footer) ---- */
.sc-signoff{position:relative; background:var(--cream-2); border-top:1px solid var(--line);
  padding:clamp(2.4rem,6vw,4rem) var(--pad); text-align:center; overflow:hidden}
.sc-signoff__mark{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(360px,64vw); color:rgba(201,162,39,.1); pointer-events:none}
.sc-signoff__in{position:relative; z-index:1}
.sc-signoff .sc-div{justify-content:center; margin-bottom:1rem}
.sc-signoff__q{font-family:var(--accent); font-style:italic; font-size:clamp(1.7rem,4vw,2.5rem);
  color:var(--indigo); margin:0}
.sc-signoff__sub{font-family:var(--display); letter-spacing:.15em; text-transform:uppercase;
  font-size:.74rem; color:var(--gold-2); margin:.5rem 0 0}
.footer{padding-top:2.2rem}

/* ---- island index: whole row is a link now ---- */
.islindex li a{display:flex; justify-content:space-between; gap:.5rem; width:100%; color:inherit}
.islindex li a span:last-child{color:var(--gold)}
.islindex li a:hover span:first-child{color:var(--gold)}

/* ---- reduced-motion: everything static, fully resolved ---- */
@media (prefers-reduced-motion:reduce){
  .gallery--edit .gal__cell:hover img{transform:none}
  .gallery--edit .gal__cell figcaption{transform:none}
  .card:hover .card__img{transform:none}
  .nav__links a::after{transition:none}
  .hero__bg{animation:none}
  .sc-compass[data-drift]{transform:none !important}
  .btn:hover{transform:none; box-shadow:none}
}
