/* ===================================================================
   WEDDING VALLARTA — editorial, image-first
   Palette: warm ivory paper · near-black ink · restrained blush ·
            single warm-gold hairline as the signature detail
=================================================================== */
:root{
  --paper:#FBF8F3;
  --paper-2:#F4EFE7;
  --ink:#22201D;
  --soft:#8C8780;
  --blush:#C9A9A0;
  --gold:#B79A6A;
  --line:rgba(34,32,29,.12);
  --display:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',system-ui,sans-serif;
  --gut:clamp(.5rem,1.1vw,1rem);     /* gallery gutter */
  --pad:clamp(1.5rem,5vw,4.5rem);    /* page side padding */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%}
a{color:inherit;text-decoration:none}
::selection{background:var(--blush);color:var(--paper)}

h1,h2,h3{font-family:var(--display);font-weight:300;line-height:1.08;letter-spacing:.005em}
em{font-style:italic}
.serif{font-family:var(--display)}

.eyebrow{font-family:var(--sans);font-size:.66rem;font-weight:400;letter-spacing:.42em;text-transform:uppercase;color:var(--soft)}

/* ===== GALLERY (per-couple) ===== */
.gal-masonry{columns:3;column-gap:var(--gut);padding:0 var(--pad) var(--pad)}
@media(max-width:900px){.gal-masonry{columns:2}}
@media(max-width:560px){.gal-masonry{columns:1}}
.gal-masonry figure{break-inside:avoid;margin:0 0 var(--gut);overflow:hidden;background:var(--paper-2)}
.gal-masonry img{height:auto;transition:transform 1.2s cubic-bezier(.2,.8,.2,1);cursor:zoom-in}
.gal-masonry figure:hover img{transform:scale(1.04)}
.gal-intro{padding:clamp(7rem,12vw,10rem) var(--pad) clamp(2rem,4vw,3.5rem);text-align:center}
.gal-intro .type{font-family:var(--sans);font-size:.66rem;font-weight:400;letter-spacing:.42em;text-transform:uppercase;color:var(--gold)}
.gal-intro h1{font-size:clamp(2.8rem,7vw,5.5rem);margin:.4rem 0 .3rem}
.gal-intro .loc{font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}
.gal-nextprev{display:flex;justify-content:space-between;gap:1rem;padding:0 var(--pad) clamp(3rem,6vw,5rem);font-family:var(--sans);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;pointer-events:none}
.gal-nextprev a{color:var(--soft);transition:color .3s;pointer-events:auto}
.gal-nextprev a:hover{color:var(--ink)}
.gal-nextprev a span{color:var(--gold)}
/* lightbox */
.lb{position:fixed;inset:0;background:rgba(20,18,16,.96);z-index:9999;display:none;align-items:center;justify-content:center;cursor:zoom-out}
.lb.on{display:flex}
.lb img{max-width:92vw;max-height:90vh;width:auto;height:auto;object-fit:contain}
.lb .x{position:absolute;top:1.4rem;right:1.8rem;color:#fff;font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;cursor:pointer;background:none;border:0}
.lb .arr{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:2rem;background:none;border:0;cursor:pointer;padding:1rem;opacity:.7;transition:opacity .3s}
.lb .arr:hover{opacity:1}
.lb .prev{left:.5rem}.lb .next{right:.5rem}
/* gallery cards link hover on portfolio */
.w-card figure{overflow:hidden}

/* ===== ARTICLE (blog post) ===== */
.art-hero{position:relative;height:clamp(46vh,60vw,72vh);overflow:hidden;display:flex;align-items:flex-end}
.art-hero img{position:absolute;inset:0;object-fit:cover}
.art-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,16,.15),transparent 40%,rgba(20,18,16,.7))}
.art-hero .wrap{position:relative;z-index:2;color:var(--paper);padding:var(--pad);max-width:1000px;margin:0 auto;width:100%}
.art-hero .cat{font-family:var(--sans);font-size:.66rem;font-weight:400;letter-spacing:.4em;text-transform:uppercase;color:#fff;opacity:.85}
.art-hero h1{font-size:clamp(2.2rem,5.5vw,4.4rem);margin:.5rem 0 .4rem;max-width:18ch}
.art-hero .meta{font-family:var(--sans);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.article{max-width:720px;margin:0 auto;padding:clamp(3rem,7vw,5.5rem) var(--pad)}
.article p,.article li{font-size:1.06rem;line-height:1.95;color:#2c2a26;margin-bottom:1.5rem}
.article h2{font-family:var(--display);font-size:clamp(1.7rem,3.4vw,2.4rem);font-style:italic;margin:2.6rem 0 1.1rem;line-height:1.2}
.article h3{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.6rem);margin:2rem 0 .8rem}
.article strong{font-weight:500;color:var(--ink)}
.article ul,.article ol{padding-left:1.3rem;margin-bottom:1.5rem}
.article li{margin-bottom:.7rem}
.article a.ilink{color:var(--ink);border-bottom:1px solid var(--gold)}
.article figure.inline{margin:2.4rem 0;aspect-ratio:3/2;overflow:hidden}
.article .lede{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2.6vw,1.7rem);line-height:1.5;color:var(--ink);margin-bottom:2rem}
.article .pull{font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,3vw,2rem);line-height:1.35;color:var(--gold);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.6rem 0;margin:2.4rem 0}
.article .keyfacts{background:var(--paper-2);padding:clamp(1.5rem,3vw,2.2rem);margin:2.4rem 0}
.article .keyfacts h3{margin-top:0}
.art-author{max-width:720px;margin:0 auto;padding:0 var(--pad) clamp(4rem,8vw,6rem);display:flex;gap:1.2rem;align-items:center;border-top:1px solid var(--line)}
.art-author{padding-top:2.5rem}
.art-author img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.art-author .n{font-family:var(--display);font-style:italic;font-size:1.2rem}
.art-author .r{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}
.eyebrow.gold{color:var(--gold)}

/* ---------- PRELOADER ---------- */
.loader{position:fixed;inset:0;z-index:9999;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.3rem;transition:opacity .9s ease,visibility .9s}
.loader.gone{opacity:0;visibility:hidden}
.loader img{width:64px;height:auto;opacity:0;animation:lFade 1s ease .15s forwards}
.loader .mono{font-family:var(--display);font-style:italic;font-size:1.5rem;letter-spacing:.04em;overflow:hidden}
.loader .mono span{display:inline-block;transform:translateY(115%);animation:lUp 1s cubic-bezier(.16,1,.3,1) .25s forwards}
.loader .bar{width:80px;height:1px;background:var(--line);overflow:hidden}
.loader .bar::after{content:'';display:block;height:100%;background:var(--gold);transform:translateX(-100%);animation:lBar 1.5s ease forwards}
@keyframes lFade{to{opacity:1}}
@keyframes lUp{to{transform:translateY(0)}}
@keyframes lBar{to{transform:translateX(0)}}

/* ---------- NAV ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:1.4rem var(--pad);color:#fff;transition:padding .5s,background .5s,color .5s}
nav.solid{color:var(--ink);background:rgba(251,248,243,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:.7rem var(--pad)}
.brand{display:flex;align-items:center;gap:.7rem}
.brand img{height:120px;width:auto;object-fit:contain;transition:filter .5s,height .5s;filter:brightness(0) invert(1)}
nav.solid .brand img{filter:none;height:68px}
.brand.lockup img{height:104px}
nav.solid .brand.lockup img{height:104px}
.brand.stacked img{height:96px;filter:none}nav:not(.solid) .brand.stacked img{filter:brightness(0) invert(1)!important}
nav.solid .brand.stacked img{height:96px;filter:none}
@media(max-width:540px){.brand.lockup img,nav.solid .brand.lockup img{height:66px}.brand.stacked img,nav.solid .brand.stacked img{height:64px}}
.nav-links{display:flex;gap:2.3rem;align-items:center}
.nav-links a{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;position:relative;padding-bottom:3px}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .4s ease}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-links .inquire{border:1px solid currentColor;padding:.55rem 1.3rem;border-radius:0}
.nav-links .inquire::after{display:none}
.nav-links .inquire:hover{background:var(--gold);border-color:var(--gold);color:var(--paper)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:0}
.burger span{width:26px;height:1.5px;background:currentColor;transition:.3s}

/* ---------- FULL-BLEED PAIRED GALLERY (the signature) ---------- */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);padding:0 var(--gut)}
.pair.tall figure{aspect-ratio:4/5}
.pair.wide figure{aspect-ratio:3/4}
.pair figure{overflow:hidden;position:relative}
.solo{padding:var(--gut);padding-top:0}
.solo figure{aspect-ratio:16/9;overflow:hidden;position:relative}
.pair figure img,.solo figure img{transition:transform 1.8s cubic-bezier(.2,.8,.2,1)}
.pair figure:hover img,.solo figure:hover img{transform:scale(1.045)}

/* image reveal on scroll */
.rv{position:relative}
.rv::before{content:'';position:absolute;inset:0;z-index:3;background:var(--paper);transition:transform 1.15s cubic-bezier(.76,0,.24,1)}
.rv img{transform:scale(1.14);transition:transform 1.8s cubic-bezier(.16,1,.3,1)}
.rv.in::before{transform:translateY(-101%)}
.rv.in img{transform:scale(1)}

/* fade-up text reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1.1s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- HERO ---------- */
.hero{height:100vh;min-height:640px;position:relative;overflow:hidden}
.hero figure{position:absolute;inset:0;clip-path:inset(0 0 100% 0);animation:hWipe 1.7s 1.3s cubic-bezier(.76,0,.24,1) forwards}
@keyframes hWipe{to{clip-path:inset(0 0 0 0)}}
.hero img{transform:scale(1.2);animation:hZoom 11s 1.3s ease-out forwards}
@keyframes hZoom{to{transform:scale(1.03)}}
.hero::after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(20,18,16,.22),transparent 38%,rgba(20,18,16,.4))}
/* multi-photo hero slideshow */
.hero-slides{position:absolute;inset:0;z-index:1}
.hero .hslide{position:absolute;inset:0;clip-path:none;animation:none;opacity:0;transition:opacity 1.5s ease}
.hero .hslide.on{opacity:1}
.hero .hslide img{transform:scale(1.05);animation:none;transition:transform 7s ease}
.hero .hslide.on img{transform:scale(1.14)}
.hero-dots{position:absolute;left:0;right:0;bottom:1.4rem;z-index:5;display:flex;gap:9px;justify-content:center}
.hero-dots button{width:28px;height:2px;background:rgba(251,248,243,.45);border:0;padding:0;cursor:pointer;transition:background .35s}
.hero-dots button.on{background:var(--gold)}
.hero-cap{position:absolute;left:0;right:0;bottom:clamp(2rem,6vw,4rem);z-index:4;text-align:center;color:var(--paper);padding:0 1.5rem}
.hero-cap .eyebrow{color:rgba(251,248,243,.85);opacity:0;animation:fUp 1.1s 2.4s ease forwards}
.hero-cap h1{font-size:clamp(2.6rem,6.4vw,5.4rem);margin:.7rem 0 0;font-style:italic;letter-spacing:.01em;overflow:hidden}
.hero-cap h1 span{display:inline-block;transform:translateY(115%);animation:lUp2 1.2s 2.45s cubic-bezier(.16,1,.3,1) forwards}
@keyframes lUp2{to{transform:translateY(0)}}
@keyframes fUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

/* ---------- TEXT BLOCKS ---------- */
.statement{text-align:center;max-width:760px;margin:0 auto;padding:clamp(5rem,11vw,8.5rem) var(--pad)}
.statement h2{font-size:clamp(1.7rem,3.4vw,2.9rem);line-height:1.3;margin:1.3rem 0}
.statement p{color:var(--soft);max-width:560px;margin:1.4rem auto 0;font-size:1rem}
.hr-gold{width:46px;height:1px;background:var(--gold);margin:0 auto}

.intro-band{padding:clamp(3rem,7vw,5rem) var(--pad);text-align:center}
.intro-band .eyebrow{margin-bottom:1rem}
.intro-band h2{font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.35;max-width:820px;margin:0 auto}

/* ---------- PRESS ---------- */
.press{padding:clamp(3rem,6vw,4.5rem) var(--pad);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}
.press .eyebrow{margin-bottom:1.8rem}
.press-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(2rem,6vw,4.5rem)}
.press-row span{font-family:var(--display);font-style:italic;font-size:clamp(1.1rem,2vw,1.5rem);color:var(--soft);letter-spacing:.04em}

/* ---------- NAMED PORTFOLIO INDEX ---------- */
.weddings{padding:clamp(4rem,9vw,7rem) var(--pad)}
.weddings-head{text-align:center;margin-bottom:clamp(3rem,6vw,4.5rem)}
.weddings-head h2{font-size:clamp(2rem,4.4vw,3.4rem);font-style:italic;margin-top:1rem}
.w-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.6rem);max-width:1320px;margin:0 auto}
.w-card figure{aspect-ratio:4/5;overflow:hidden;margin-bottom:1.1rem;position:relative}
.w-card img{transition:transform 1.8s cubic-bezier(.2,.8,.2,1)}
.w-card:hover img{transform:scale(1.05)}
.w-card .names{font-family:var(--display);font-size:1.5rem;font-style:italic;line-height:1.2}
.w-card .loc{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--soft);margin-top:.5rem}

/* ---------- TESTIMONIAL ---------- */
.testi{padding:clamp(5rem,11vw,8rem) var(--pad);text-align:center;max-width:900px;margin:0 auto}
.testi blockquote{font-family:var(--display);font-size:clamp(1.6rem,3.4vw,2.6rem);font-style:italic;line-height:1.4;font-weight:300}
.testi .stars{color:var(--gold);letter-spacing:.3em;font-size:.8rem;margin-bottom:1.6rem}
.testi cite{display:block;font-style:normal;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:1.8rem}

/* ---------- REVIEWS (Google) ---------- */
.reviews{padding:clamp(5rem,11vw,8rem) var(--pad);background:var(--paper-2)}
.reviews-head{text-align:center;margin-bottom:clamp(3rem,6vw,4.5rem)}
.reviews-head h2{font-size:clamp(2rem,4.4vw,3.2rem);font-style:italic;margin-top:1rem}
.reviews-head .stars{color:var(--gold);letter-spacing:.32em;font-size:1rem;margin-top:1.1rem}
.reviews-head .meta{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--soft);margin-top:.9rem}
.r-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.3rem,2.6vw,2rem);max-width:1280px;margin:0 auto}
.r-card{background:var(--paper);padding:2.3rem 2rem;border:1px solid var(--line);display:flex;flex-direction:column;gap:1.1rem}
.r-card .stars{color:var(--gold);letter-spacing:.22em;font-size:.72rem}
.r-card blockquote{font-family:var(--display);font-style:italic;font-size:1.18rem;line-height:1.5;font-weight:300}
.r-card cite{font-style:normal;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--soft);margin-top:auto}
.reviews .more-link{text-align:center;margin-top:clamp(2.5rem,5vw,3.5rem)}

/* ---------- INVESTMENT ---------- */
.invest{padding:clamp(5rem,11vw,8rem) var(--pad);text-align:center}
.invest .eyebrow{margin-bottom:1rem}
.invest h2{font-size:clamp(2rem,4.4vw,3.2rem);font-style:italic;margin-bottom:1.6rem}
.invest p{color:var(--soft);max-width:660px;margin:0 auto 1rem;font-size:1.02rem}
.invest .range{font-family:var(--display);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--ink);margin:2.2rem 0}
.collections{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.4vw,1.8rem);max-width:1280px;margin:3rem auto 0;text-align:left}
.col{position:relative;padding:2rem 1.7rem;border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column}
.col.feature{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.col .badge{position:absolute;top:1.3rem;right:1.4rem;font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.col h3{font-family:var(--display);font-size:1.7rem;font-style:italic;margin-bottom:.3rem}
.col .sub{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem}
.col .price{font-family:var(--display);font-size:2.4rem;line-height:1;margin-bottom:.3rem}
.col .price s{font-size:1.1rem;color:var(--soft);margin-left:.4rem}
.col .unit{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-bottom:1.3rem}
.col.feature .unit,.col.feature .price s{color:rgba(251,248,243,.6)}
.col ul{list-style:none;flex:1}
.col li{font-size:.9rem;padding:.55rem 0;border-bottom:1px solid var(--line);line-height:1.5}
.col.feature li{border-color:rgba(251,248,243,.16);color:rgba(251,248,243,.92)}
.col li:last-child{border-bottom:0}
.col .hold{font-size:.66rem;letter-spacing:.04em;color:var(--gold);margin-top:1.1rem;text-transform:none}

/* ---------- FAQ ---------- */
.faq{padding:clamp(5rem,11vw,8rem) var(--pad);max-width:880px;margin:0 auto}
.faq-head{text-align:center;margin-bottom:clamp(2.5rem,5vw,3.5rem)}
.faq-head h2{font-size:clamp(2rem,4.4vw,3rem);font-style:italic;margin-top:1rem}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.5rem 2.5rem 1.5rem 0;position:relative;font-family:var(--display);font-style:italic;font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:0;top:1.4rem;font-family:var(--sans);font-weight:300;font-size:1.5rem;color:var(--gold);transition:transform .35s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{color:var(--soft);font-size:1rem;line-height:1.8;padding:0 2.5rem 1.7rem 0;max-width:62ch}
.faq .ans a{color:var(--gold);border-bottom:1px solid var(--gold)}

/* ---------- "DEAR CLIENTS" notes ---------- */
.notes{padding:clamp(4rem,9vw,7rem) var(--pad);max-width:760px;margin:0 auto}
.notes .eyebrow{text-align:center;display:block;margin-bottom:.8rem}
.notes h2{text-align:center;font-size:clamp(2rem,4vw,3rem);font-style:italic;margin-bottom:3rem}
.note{padding:1.8rem 0;border-top:1px solid var(--line)}
.note:last-child{border-bottom:1px solid var(--line)}
.note h3{font-family:var(--display);font-size:1.45rem;font-style:italic;margin-bottom:.6rem}
.note p{color:var(--soft);font-size:.96rem}

/* ---------- CTA ---------- */
.cta{position:relative;text-align:center;padding:clamp(6rem,15vw,12rem) 1.5rem;overflow:hidden}
.cta .bg{position:absolute;inset:0;z-index:0}
.cta .bg img{filter:brightness(.6)}
.cta .inner{position:relative;z-index:2;color:var(--paper);max-width:640px;margin:0 auto}
.cta h2{font-size:clamp(2.2rem,5.4vw,4.2rem);font-style:italic;margin:1.1rem 0}
.cta p{color:rgba(251,248,243,.9);margin-bottom:2.4rem;max-width:440px;margin-inline:auto}
.btn{display:inline-block;padding:1rem 2.7rem;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;border:1px solid var(--paper);background:var(--paper);color:var(--ink);transition:background .45s,color .45s}
.btn:hover{background:transparent;color:var(--paper)}
.btn-line{display:inline-block;font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:5px;transition:letter-spacing .35s}
.btn-line.light{color:var(--paper)}

/* ---------- WEDDING FILMS BAND ---------- */
.filmband{background:var(--ink);color:var(--paper);padding:clamp(4rem,9vw,7rem) 0}
.filmband-head{text-align:center;padding:0 var(--pad);margin-bottom:clamp(2rem,4.5vw,3.4rem)}
.filmband-head h2{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(2rem,4.6vw,3.2rem);margin-top:.5rem;color:var(--paper)}
.filmband-sub{max-width:56ch;margin:1.1rem auto 0;color:rgba(251,248,243,.78);font-size:1rem;line-height:1.85}
.filmwrap{position:relative;width:100%;aspect-ratio:16/9;max-height:82vh;background:#000}
.filmwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.filmhero{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#000;cursor:pointer;display:block}
.filmhero img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.filmhero:hover img{transform:scale(1.04)}
.filmhero .play{position:absolute;inset:0;margin:auto;width:78px;height:78px;border-radius:50%;background:rgba(20,18,16,.5);transition:background .35s}
.filmhero .play::after{content:'';position:absolute;top:50%;left:53%;transform:translate(-50%,-50%);border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent var(--paper)}
.filmhero:hover .play{background:var(--gold)}
.filmhero:hover .play::after{border-left-color:var(--ink)}
@media(max-width:600px){
  .filmhero .play{width:58px;height:58px}
  .filmhero .play::after{border-width:10px 0 10px 16px}
}
.filmband-cta{text-align:center;margin-top:clamp(2rem,4.5vw,3.2rem)}

/* ---------- FILMS PAGE ---------- */
.films-intro{text-align:center;max-width:760px;margin:0 auto;padding:clamp(7rem,13vw,10rem) var(--pad) clamp(2.5rem,5vw,4rem)}
.films-intro h1{font-family:var(--display);font-weight:300;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.02;margin:.4rem 0 0}
.films-lead{margin:1.4rem auto 0;max-width:60ch;color:var(--soft);font-size:1.05rem;line-height:1.9}
.films-incl{max-width:1100px;margin:0 auto;padding:clamp(4rem,8vw,6.5rem) var(--pad)}
.films-incl-head{text-align:center;margin-bottom:clamp(2.5rem,5vw,3.6rem)}
.films-incl-head h2{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(2rem,4.4vw,3rem);margin-top:.4rem}
.incl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,2.6rem)}
.incl{border-top:1px solid var(--line);padding-top:1.2rem}
.incl h3{font-family:var(--display);font-weight:400;font-size:1.4rem;margin-bottom:.5rem}
.incl p{font-size:.95rem;line-height:1.75;color:var(--soft)}
@media(max-width:780px){.incl-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.incl-grid{grid-template-columns:1fr}}

/* ---------- FILM COLLECTION GRID ---------- */
.filmgrid-wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad) clamp(4rem,8vw,6.5rem)}
.filmgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,3vw,2.4rem)}
.filmcard{display:block;width:100%;text-align:left;background:none;border:0;padding:0;cursor:pointer;font-family:inherit;color:inherit}
.filmcard .thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#000}
.filmcard .thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.filmcard:hover .thumb img{transform:scale(1.05)}
.filmcard .play{position:absolute;inset:0;margin:auto;width:66px;height:66px;border-radius:50%;background:rgba(20,18,16,.55);transition:background .35s}
.filmcard .play::after{content:'';position:absolute;top:50%;left:53%;transform:translate(-50%,-50%);border-style:solid;border-width:11px 0 11px 19px;border-color:transparent transparent transparent var(--paper)}
.filmcard:hover .play{background:var(--gold)}
.filmcard:hover .play::after{border-left-color:var(--ink)}
.filmcard .dur{position:absolute;bottom:10px;right:10px;background:rgba(20,18,16,.82);color:var(--paper);font-family:var(--sans);font-size:11px;letter-spacing:.04em;padding:3px 7px;border-radius:2px}
.filmcard .ftitle{display:block;font-family:var(--display);font-weight:400;font-size:1.3rem;line-height:1.25;margin-top:.9rem;color:var(--ink)}
@media(max-width:620px){.filmgrid{grid-template-columns:1fr}}
/* video lightbox */
.vlb{position:fixed;inset:0;z-index:1000;background:rgba(15,13,12,.94);display:none;align-items:center;justify-content:center;padding:clamp(1rem,5vw,4rem)}
.vlb.on{display:flex}
.vlb-inner{position:relative;width:100%;max-width:1100px;aspect-ratio:16/9}
.vlb-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vlb-close{position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(1.2rem,3.5vw,2.6rem);background:none;border:0;color:var(--paper);font-size:2.4rem;line-height:1;cursor:pointer;font-family:var(--sans);font-weight:300}

/* ---------- WHATSAPP FLOATING BUTTON ---------- */
.wa{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:300;display:flex;align-items:center;gap:0;background:var(--ink);color:var(--paper);border-radius:999px;padding:0;height:60px;width:60px;overflow:hidden;box-shadow:0 8px 30px rgba(34,32,29,.28);transition:width .45s cubic-bezier(.16,1,.3,1),background .35s;text-decoration:none}
.wa svg{flex:none;width:60px;height:60px;padding:17px;box-sizing:border-box}
.wa svg path{fill:var(--gold);transition:fill .35s}
.wa .wa-label{white-space:nowrap;font-family:var(--sans);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;opacity:0;transition:opacity .3s;padding-right:1.4rem}
.wa:hover{width:248px;background:var(--gold)}
.wa:hover svg path{fill:var(--ink)}
.wa:hover .wa-label{opacity:1;color:var(--ink)}
.wa::after{content:'';position:absolute;inset:0;border-radius:999px;border:1px solid var(--gold);opacity:.5;animation:waPulse 2.6s ease-out infinite;pointer-events:none}
.wa:hover::after{display:none}
@keyframes waPulse{0%{transform:scale(1);opacity:.5}70%{transform:scale(1.35);opacity:0}100%{opacity:0}}
@media(max-width:540px){.wa:hover{width:60px}.wa:hover .wa-label{opacity:0}}
.btn-line:hover{letter-spacing:.34em}

/* ---------- FOOTER ---------- */
footer{padding:clamp(4rem,8vw,6rem) var(--pad) 2.4rem;border-top:1px solid var(--line);text-align:center}
footer .brand{justify-content:center;margin-bottom:1.2rem}
footer .brand img{height:64px;width:auto;filter:none}
footer .tag{color:var(--soft);max-width:440px;margin:0 auto 2rem;font-size:.94rem}
.foot-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:2rem;margin-bottom:2.4rem}
.foot-nav a{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--soft);transition:color .3s}
.foot-nav a:hover{color:var(--ink)}
.foot-bottom{padding-top:2rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.64rem;letter-spacing:.14em;color:var(--soft);max-width:1320px;margin:0 auto}

/* ---------- PAGE HEADER (interior pages) ---------- */
.page-head{padding:clamp(8rem,16vw,11rem) var(--pad) clamp(3rem,6vw,4.5rem);text-align:center}
.page-head h1{font-size:clamp(2.6rem,6vw,4.6rem);font-style:italic;margin:1rem 0 .6rem}
.page-head p{color:var(--soft);font-size:.92rem;letter-spacing:.04em;max-width:560px;margin:0 auto}

/* ---------- RESPONSIVE ---------- */
@media(max-width:980px){
  .collections{grid-template-columns:1fr 1fr;max-width:680px}
  .r-grid{grid-template-columns:1fr 1fr;max-width:760px}
}
@media(max-width:820px){
  .nav-links{position:fixed;inset:0;background:var(--paper);color:var(--ink);flex-direction:column;justify-content:center;gap:2.4rem;transform:translateX(100%);transition:transform .5s ease}
  .nav-links.open{transform:none}
  .nav-links a{font-size:1rem}
  .nav-links .inquire{border-color:var(--ink)}
  .burger{display:flex;z-index:201}
  .burger.x span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .burger.x span:nth-child(2){opacity:0}
  .burger.x span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .w-grid{grid-template-columns:1fr 1fr;gap:1.2rem}
}
@media(max-width:540px){
  .brand img{height:60px}
  nav.solid .brand img{height:48px}
  .pair{grid-template-columns:1fr}
  .pair.tall figure,.pair.wide figure{aspect-ratio:4/5}
  .w-grid{grid-template-columns:1fr;max-width:380px}
  .collections{grid-template-columns:1fr;max-width:420px}
  .r-grid{grid-template-columns:1fr;max-width:420px}
  .foot-bottom{justify-content:center;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}
  .rv::before{display:none}.rv img{transform:none}
  .reveal{opacity:1;transform:none}.hero figure{clip-path:none}
}

/* ===================================================================
   SEO / GUIDE CONTENT COMPONENTS (pillar, location & guide pages)
=================================================================== */
.breadcrumb{max-width:880px;margin:0 auto;padding:7.5rem var(--pad) 0;font-family:var(--sans);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}
.breadcrumb a{color:var(--soft);border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.breadcrumb a:hover{color:var(--gold);border-color:var(--gold)}
.breadcrumb span{color:var(--gold);margin:0 .5rem}

.prose{max-width:720px;margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--pad)}
.prose>p{font-size:1.02rem;line-height:1.9;color:#3c3a35;margin-bottom:1.25rem}
.prose>p.lead{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.6rem);line-height:1.5;color:var(--ink);margin-bottom:1.8rem}
.prose h2{font-family:var(--display);font-style:italic;font-size:clamp(1.7rem,3.4vw,2.4rem);line-height:1.2;margin:2.6rem 0 1rem}
.prose h3{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.55rem);margin:2rem 0 .7rem}
.prose ul,.prose ol{margin:0 0 1.4rem 0;padding-left:1.3rem}
.prose li{font-size:1rem;line-height:1.8;color:#3c3a35;margin-bottom:.5rem}
.prose strong{color:var(--ink);font-weight:500}
.prose a.ilink{color:var(--ink);border-bottom:1px solid var(--gold);transition:color .3s}
.prose a.ilink:hover{color:var(--gold)}
.prose figure.inline{margin:2.4rem 0}
.prose figure.inline img{aspect-ratio:3/2;width:100%}
.prose figure.inline figcaption{font-family:var(--sans);font-size:.72rem;letter-spacing:.06em;color:var(--soft);margin-top:.6rem;text-align:center}

/* key takeaways / answer box */
.kbox{background:var(--paper-2);border-left:2px solid var(--gold);padding:1.6rem 1.8rem;margin:2.2rem 0}
.kbox .lbl{font-family:var(--sans);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
.kbox p{font-size:1rem;line-height:1.8;color:#34322e;margin:0}
.kbox ul{margin:.4rem 0 0;padding-left:1.2rem}
.kbox li{font-size:.96rem;line-height:1.7;color:#34322e;margin-bottom:.4rem}

/* fact strip */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);max-width:880px;margin:1.5rem auto 0}
.facts div{background:var(--paper);padding:1.4rem 1rem;text-align:center}
.facts .n{font-family:var(--display);font-size:clamp(1.8rem,4vw,2.6rem);color:var(--gold);line-height:1}
.facts .l{font-family:var(--sans);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--soft);margin-top:.5rem}

/* comparison / data table */
.tbl{max-width:720px;margin:2rem auto;overflow-x:auto}
.tbl table{width:100%;border-collapse:collapse;font-size:.92rem}
.tbl th,.tbl td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--line);line-height:1.5}
.tbl th{font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);font-weight:500}
.tbl td{color:#3c3a35}
.tbl td:first-child{font-weight:500;color:var(--ink)}
.tbl tr:last-child td{border-bottom:none}

/* pros / cons */
.pc{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;max-width:720px;margin:2rem auto}
.pc .col{border:1px solid var(--line);padding:1.4rem 1.5rem}
.pc h4{font-family:var(--sans);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.9rem}
.pc .pros h4{color:var(--gold)}
.pc .cons h4{color:var(--soft)}
.pc ul{list-style:none;padding:0;margin:0}
.pc li{font-size:.92rem;line-height:1.5;color:#3c3a35;padding:.45rem 0 .45rem 1.1rem;position:relative}
.pc li::before{position:absolute;left:0;top:.45rem}
.pc .pros li::before{content:'+';color:var(--gold)}
.pc .cons li::before{content:'–';color:var(--soft)}

/* related links cluster */
.related{max-width:880px;margin:0 auto;padding:clamp(3rem,6vw,4.5rem) var(--pad)}
.related .lbl{font-family:var(--sans);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:1.6rem}
.related .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.related a{background:var(--paper);padding:1.5rem 1.4rem;transition:background .35s}
.related a:hover{background:var(--paper-2)}
.related a .t{font-family:var(--display);font-style:italic;font-size:1.15rem;color:var(--ink);margin-bottom:.3rem}
.related a .d{font-family:var(--sans);font-size:.76rem;line-height:1.5;color:var(--soft)}

/* hub / index grid for guides + locations */
.hub{max-width:1100px;margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--pad) clamp(4rem,8vw,6rem)}
.hub h2.group{font-family:var(--display);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.2rem);margin:2.6rem 0 1.4rem;text-align:center}
.hub .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.hub .card{display:block;border:1px solid var(--line);padding:1.6rem 1.6rem 1.7rem;transition:border-color .35s,transform .35s}
.hub .card:hover{border-color:var(--gold);transform:translateY(-3px)}
.hub .card .k{font-family:var(--sans);font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:.7rem}
.hub .card h3{font-family:var(--display);font-style:italic;font-size:1.4rem;margin-bottom:.5rem}
.hub .card p{font-size:.88rem;line-height:1.6;color:var(--soft)}
.toc{max-width:720px;margin:1.5rem auto 0;padding:1.4rem 1.8rem;border:1px solid var(--line)}
.toc .lbl{font-family:var(--sans);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
.toc ul{list-style:none;padding:0;margin:0;columns:2;column-gap:2rem}
.toc li{font-size:.9rem;line-height:1.7;break-inside:avoid}
.toc a{color:#3c3a35;border-bottom:1px solid transparent}
.toc a:hover{color:var(--gold);border-color:var(--gold)}
@media(max-width:820px){
  .facts{grid-template-columns:1fr 1fr}
  .related .grid,.hub .cards{grid-template-columns:1fr 1fr}
  .pc{grid-template-columns:1fr}
  .toc ul{columns:1}
}
@media(max-width:540px){
  .facts{grid-template-columns:1fr 1fr}
  .related .grid,.hub .cards{grid-template-columns:1fr}
}

/* ---------- REVIEWS PAGE ---------- */
.revwrap{max-width:1100px;margin:0 auto;padding:clamp(1rem,4vw,2.5rem) var(--pad) clamp(3rem,6vw,5rem)}
.revgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.rev{margin:0;border:1px solid var(--line);padding:1.8rem 1.7rem;display:flex;flex-direction:column}
.rev .stars{color:var(--gold);letter-spacing:.2em;font-size:.85rem;margin-bottom:1rem}
.rev blockquote{font-family:var(--display);font-style:italic;font-size:1.2rem;line-height:1.5;color:var(--ink);margin:0 0 1.3rem;flex:1}
.rev figcaption{display:flex;flex-direction:column;gap:.2rem;border-top:1px solid var(--line);padding-top:1rem}
.rev .who{font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.rev .loc{font-family:var(--sans);font-size:.66rem;letter-spacing:.1em;color:var(--soft)}
.revcta{text-align:center;margin-top:clamp(3rem,6vw,4.5rem);padding:clamp(2.5rem,5vw,3.5rem) var(--pad);background:var(--paper-2)}
.revcta h2{font-family:var(--display);font-style:italic;font-size:clamp(2rem,4vw,3rem);margin:.6rem 0 .8rem}
.revcta-p{color:var(--soft);max-width:440px;margin:0 auto 2rem;line-height:1.7}
@media(max-width:820px){.revgrid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.revgrid{grid-template-columns:1fr}.revcta .btn-line{display:block;margin:1.2rem auto 0!important}}