/* Starworld Productions — site stylesheet */
:root{
  --black:#000;
  --ink:#161616;
  --text:#2a2a2a;
  --grey:#6a6a6a;
  --line:#deded9;
  --stone:#f2f2ee;
  --white:#fff;
  --gold:#c3963a;
  --gold-dk:#a67c27;
  --pad:clamp(16px,4vw,56px);
  --sec:clamp(72px,9vw,124px);
  --head-h:88px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Archivo',system-ui,sans-serif;font-variation-settings:'wdth' 100;color:var(--text);background:var(--white);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:#000;color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px}
.x{width:100%;max-width:1440px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}

/* ---------- Type ---------- */
.d1,.d2,.d3{color:var(--black);font-weight:800;letter-spacing:-.035em;font-variation-settings:'wdth' 112}
.d1{font-size:clamp(2.8rem,8.6vw,8.2rem);line-height:.94}
.d2{font-size:clamp(2.1rem,4.8vw,4.4rem);line-height:1;font-weight:750;font-variation-settings:'wdth' 108;letter-spacing:-.03em}
.d3{font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.15;font-weight:700;font-variation-settings:'wdth' 104;letter-spacing:-.02em}
.lead{font-size:clamp(1.05rem,1.3vw,1.2rem);color:var(--grey);max-width:34em}
.label{display:inline-block;font-size:.95rem;font-weight:500;color:var(--gold-dk);margin-bottom:18px}
.prose p+p{margin-top:1em}
.prose p{max-width:36em}
.dark .lead{color:#a9a9a9}
.dark .label{color:var(--gold)}
.dark .d1,.dark .d2,.dark .d3{color:#fff}

/* ---------- Buttons & links ---------- */
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-weight:600;font-size:1rem;border:1.5px solid var(--black);transition:background-color .2s,color .2s,border-color .2s;white-space:nowrap}
.btn i{font-size:1.1rem;transition:transform .25s}
.btn:hover i{transform:translateX(3px)}
.btn-solid{background:var(--black);color:#fff}
.btn-solid:hover{background:var(--gold);border-color:var(--gold)}
.btn-ghost:hover{background:var(--black);color:#fff}
.dark .btn{border-color:#fff}
.dark .btn-solid{background:#fff;color:#000}
.dark .btn-solid:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.dark .btn-ghost{color:#fff}
.dark .btn-ghost:hover{background:#fff;color:#000}
.u{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--black);border-bottom:1.5px solid var(--gold);padding-bottom:2px;transition:color .2s}
.u:hover{color:var(--gold-dk)}
.dark .u{color:#fff}

/* ---------- Header ---------- */
.top{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
.top.scrolled{border-color:var(--line)}
.top .x{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--head-h)}
.logo{flex:none;display:block}
.logo img{height:68px;width:auto}
.nav{display:flex;align-items:center;gap:30px}
.nav a.l{font-weight:500;font-size:.98rem;position:relative;padding:6px 0}
.nav a.l::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--black);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav a.l:hover::after,.nav a.l.on::after{transform:scaleX(1)}
.menu-btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;padding:8px 0}
.menu-btn .bars{display:grid;gap:5px}
.menu-btn .bars i{display:block;width:22px;height:2px;background:var(--black)}

/* full-screen menu */
.overlay{position:fixed;inset:0;z-index:60;background:#000;color:#fff;display:flex;flex-direction:column;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .55s cubic-bezier(.7,0,.2,1),visibility 0s .55s;overflow-y:auto}
.overlay.open{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .55s cubic-bezier(.7,0,.2,1)}
.overlay .bar{display:flex;justify-content:space-between;align-items:center;min-height:var(--head-h)}
.overlay .bar b{font-weight:800;font-variation-settings:'wdth' 115;letter-spacing:-.02em;font-size:1.2rem}
.overlay .close{color:#fff;font-size:1.9rem;width:48px;height:48px;display:grid;place-items:center;margin-right:-10px}
.overlay .cols{flex:1;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding-top:32px;padding-bottom:40px}
.overlay .main a{display:block;font-weight:750;font-variation-settings:'wdth' 110;font-size:clamp(2rem,4.4vw,3.8rem);line-height:1.12;letter-spacing:-.03em;color:#7d7d7d;transition:color .2s}
.overlay .main a:hover,.overlay .main a.on{color:#fff}
.overlay h6{font-size:.92rem;font-weight:500;color:var(--gold);margin-bottom:14px}
.overlay .sub a{display:block;padding:5px 0;font-size:1.08rem;color:#d4d4d4}
.overlay .sub a:hover,.overlay .sub a.on{color:#fff}
.overlay .foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 32px;border-top:1px solid #2a2a2a;padding-top:22px;padding-bottom:28px;color:#a9a9a9}
.overlay .foot a:hover{color:#fff}

/* ---------- Sections ---------- */
.sec{padding-top:var(--sec);padding-bottom:var(--sec)}
.sec.stone{background:var(--stone)}
.sec.dark{background:#000;color:#cfcfcf}
.sec+.sec:not(.stone):not(.dark){border-top:1px solid var(--line)}
.stone+.sec,.dark+.sec{border-top:0!important}
.head{display:grid;grid-template-columns:7fr 5fr;gap:32px 64px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.head .lead{justify-self:end}
.head.solo{grid-template-columns:1fr}
.head.solo .lead{justify-self:start;margin-top:4px}

/* ---------- Home hero ---------- */
.hero{padding-top:clamp(32px,5vw,64px);padding-bottom:var(--sec)}
.hero h1 .ln{display:block}
.hero-grid{display:grid;grid-template-columns:4fr 4fr 4fr;gap:24px;margin-top:clamp(36px,5vw,64px);align-items:start}
.hero-copy{display:flex;flex-direction:column;gap:28px;padding-right:12px}
.hero-copy p{font-size:clamp(1.05rem,1.3vw,1.2rem);max-width:24em}
.hero-a{aspect-ratio:4/5;overflow:hidden}
.hero-b{aspect-ratio:4/5;overflow:hidden;margin-top:clamp(40px,8vw,120px);position:relative}
.hero-a img,.hero-b img{width:100%;height:100%;object-fit:cover}
.tagpill{position:absolute;left:14px;bottom:14px;background:#fff;padding:7px 14px;border-radius:999px;font-size:.88rem;font-weight:500;color:var(--black)}

/* ---------- Page hero ---------- */
.phero{padding-top:clamp(32px,5vw,64px);padding-bottom:var(--sec)}
.phero .d1{max-width:13em}
.phero-row{display:grid;grid-template-columns:5fr 7fr;gap:24px 64px;margin-top:clamp(32px,4vw,56px);align-items:start}
.phero-row .copy{display:flex;flex-direction:column;gap:28px}
.phero-row .copy p{font-size:clamp(1.05rem,1.3vw,1.18rem);max-width:28em}
.phero-row .img{aspect-ratio:16/10;overflow:hidden;background:var(--stone)}
.phero-row .img img{width:100%;height:100%;object-fit:cover}
.phero.noimg .phero-row{grid-template-columns:7fr 5fr}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.9rem;color:var(--grey);margin-bottom:22px}
.crumbs a:hover{color:var(--black)}
.crumbs span{color:#b4b4b0}

/* ---------- Cover strip ---------- */
.covers{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,36px);align-items:start}
.covers figure:nth-child(2){margin-top:clamp(0px,5vw,72px)}
.covers img{width:100%;aspect-ratio:797/1024;object-fit:cover;background:var(--stone)}
.covers figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-weight:600;color:var(--black)}
.covers figcaption span{font-weight:400;color:var(--grey)}
.dark .covers figcaption{border-color:#333;color:#fff}

/* ---------- Pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--black)}
.pillar{padding:28px 28px 4px 0}
.pillar+.pillar{padding-left:28px;border-left:1px solid var(--line)}
.pillar i{font-size:1.7rem;color:var(--gold)}
.pillar h3{margin:16px 0 10px}
.pillar p{color:var(--grey);font-size:.98rem}

/* ---------- Statement ---------- */
.statement{font-weight:500;font-size:clamp(1.55rem,3.1vw,2.8rem);line-height:1.2;letter-spacing:-.02em;color:var(--black);max-width:21em;margin-bottom:clamp(48px,6vw,88px)}
.statement span{color:var(--grey)}

/* ---------- Accordion ---------- */
.acc{border-top:1px solid var(--black)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:clamp(20px,2.4vw,30px) 0;text-align:left}
.acc-btn .t{font-weight:700;font-variation-settings:'wdth' 108;font-size:clamp(1.45rem,3vw,2.6rem);letter-spacing:-.03em;line-height:1.1;color:var(--black);transition:transform .35s}
.acc-btn:hover .t{transform:translateX(10px)}
.ico{flex:none;width:50px;height:50px;border-radius:50%;border:1.5px solid var(--black);display:grid;place-items:center;font-size:1.25rem;transition:background-color .25s,color .25s,transform .35s}
.acc-item.open .ico{background:var(--black);color:#fff;transform:rotate(45deg)}
.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease}
.acc-item.open .acc-panel{grid-template-rows:1fr}
.acc-panel>div{overflow:hidden;min-height:0}
.acc-inner{display:grid;grid-template-columns:5fr 7fr;gap:24px 64px;padding-bottom:36px;align-items:start}
.acc-inner p{font-size:1.12rem;max-width:26em;margin-bottom:22px}
.acc-inner img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--stone)}

/* ---------- Cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 32px}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.cards.c4{grid-template-columns:repeat(4,1fr);gap:48px 28px}
.card .img{display:block;aspect-ratio:4/3;overflow:hidden;margin-bottom:22px;background:var(--stone)}
.card .img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.card:hover .img img{transform:scale(1.04)}
.card .meta{font-size:.9rem;color:var(--gold-dk);margin-bottom:6px;font-weight:500}
.card h3{margin-bottom:10px}
.card h3 a:hover{color:var(--gold-dk)}
.card p{color:var(--grey);margin-bottom:16px;max-width:30em}
.dark .card p{color:#a9a9a9}
.cards.tall .card .img{aspect-ratio:4/5}

/* ---------- Rows (text list) ---------- */
.rows{border-top:1px solid var(--black)}
.row{display:grid;grid-template-columns:5fr 6fr 1fr;gap:16px 48px;align-items:baseline;padding:28px 0;border-bottom:1px solid var(--line)}
.row h3 a:hover{color:var(--gold-dk)}
.row p{color:var(--grey);max-width:34em}
.row .go{justify-self:end;font-size:1.4rem;color:var(--black);transition:transform .25s,color .2s}
.row:hover .go{transform:translateX(4px);color:var(--gold-dk)}
.dark .rows{border-color:#fff}
.dark .row{border-color:#333}
.dark .row p{color:#a9a9a9}
.dark .row .go{color:#fff}

/* ---------- Split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:40px clamp(40px,6vw,96px);align-items:center}
.split .img{aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.split .img.wide{aspect-ratio:4/3}
.split .img img{width:100%;height:100%;object-fit:cover}
.split.rev .img{order:2}
.split .copy .d2{margin-bottom:24px}
.split .copy .prose{margin-bottom:28px}
.split .copy .btns{margin-top:32px}
.ticks{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.ticks li{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;font-size:.93rem;font-weight:500;color:var(--black);background:#fff}
.ticks li i{color:var(--gold)}
.stone .ticks li{border-color:#d4d4cf}
.sub-block+.sub-block{margin-top:36px;padding-top:32px;border-top:1px solid var(--line)}
.sub-block h3{margin-bottom:10px}
.sub-block p{color:var(--grey);max-width:34em}

/* ---------- Gallery ---------- */
.gallery{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(180px,22vw,320px)}
.gallery figure{overflow:hidden;background:var(--stone)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.gallery figure:hover img{transform:scale(1.04)}
.gallery.g4 figure:nth-child(1){grid-column:span 2}
.gallery.g4 figure:nth-child(4){grid-column:span 2}
.gallery.g6{grid-template-columns:repeat(4,1fr)}
.gallery.g6 figure:nth-child(1),.gallery.g6 figure:nth-child(6){grid-column:span 2}
.dark .gallery figure{background:#111}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0 28px;counter-reset:s}
.step{border-top:1px solid var(--black);padding-top:24px}
.step .n{display:block;font-weight:800;font-variation-settings:'wdth' 112;font-size:2.6rem;line-height:1;color:var(--gold);margin-bottom:20px;letter-spacing:-.03em}
.step h3{margin-bottom:10px}
.step p{color:var(--grey)}
.pull{margin-top:clamp(48px,6vw,80px);font-weight:600;font-size:clamp(1.3rem,2.4vw,2rem);letter-spacing:-.02em;line-height:1.2;color:var(--black);max-width:24em;padding-left:24px;border-left:3px solid var(--gold)}

/* ---------- Quote ---------- */
.quote{display:grid;grid-template-columns:7fr 5fr;gap:40px 72px;align-items:center}
.quote .stars{color:var(--gold);font-size:1.2rem;display:flex;gap:4px;margin-bottom:24px}
.quote blockquote{font-weight:750;font-variation-settings:'wdth' 108;font-size:clamp(1.9rem,4.4vw,4rem);line-height:1.04;letter-spacing:-.03em;color:#fff}
.quote .sig{margin-top:30px;color:#a9a9a9}
.quote .sig b{display:block;color:#fff;font-weight:600}
.quote .img{aspect-ratio:4/5;overflow:hidden}
.quote .img img{width:100%;height:100%;object-fit:cover}

/* ---------- Testimonials ---------- */
.testis{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.testi{background:#fff;padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:22px}
.stone .testi{background:#fff}
.testi .stars{color:var(--gold);display:flex;gap:3px}
.testi p{font-size:1.1rem;color:var(--black);line-height:1.5;flex:1}
.testi .who{display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px solid var(--line)}
.testi .who img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.testi .who b{display:block;color:var(--black);font-weight:600;line-height:1.3}
.testi .who span{font-size:.92rem;color:var(--grey)}

/* ---------- Divisions list (dark) ---------- */
.dlist{border-top:1px solid #333}
.dlist li{border-bottom:1px solid #333}
.dlist a{display:grid;grid-template-columns:6fr 5fr auto;gap:12px 48px;align-items:center;padding:clamp(22px,2.6vw,32px) 0}
.dlist strong{font-weight:750;font-variation-settings:'wdth' 112;font-size:clamp(1.8rem,4.6vw,4.2rem);letter-spacing:-.035em;line-height:1;color:#666;transition:color .25s}
.dlist p{color:#9a9a9a;max-width:28em;transition:color .25s}
.dlist i{font-size:1.5rem;color:#666;transition:color .25s,transform .25s}
.dlist a:hover strong,.dlist a:hover p,.dlist a:hover i{color:#fff}
.dlist a:hover i{transform:translateX(4px)}
.peek{position:fixed;left:0;top:0;width:280px;aspect-ratio:4/5;pointer-events:none;z-index:20;opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .25s,transform .25s;overflow:hidden}
.peek.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.peek img{width:100%;height:100%;object-fit:cover}

/* ---------- Category tiles ---------- */
.cats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--black);border-left:1px solid var(--line)}
.cat{display:flex;flex-direction:column;gap:10px;padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background-color .25s}
.cat:hover{background:var(--stone)}
.cat h3{display:flex;justify-content:space-between;align-items:center;gap:12px}
.cat h3 i{font-size:1.2rem;color:var(--gold);transition:transform .25s}
.cat:hover h3 i{transform:translateX(4px)}
.cat p{color:var(--grey);font-size:.98rem}
.stone .cats{border-left-color:#d4d4cf}
.stone .cat{border-color:#d4d4cf}
.stone .cat:hover{background:#fff}

/* ---------- Issue feature ---------- */
.issue{display:grid;grid-template-columns:5fr 7fr;gap:40px clamp(40px,6vw,96px);align-items:center}
.issue .img{max-width:460px;width:100%;box-shadow:0 40px 80px -40px rgba(0,0,0,.45)}
.issue .img img{width:100%}

/* ---------- CTA ---------- */
.cta .d2{max-width:16em;margin-bottom:24px}
.cta .lead{margin-bottom:36px}
.cta-contact{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(56px,7vw,96px);border-top:1px solid #333}
.cta-contact a,.cta-contact p{display:flex;align-items:center;gap:14px;padding:22px 24px 0 0;color:#fff;font-weight:500;font-size:1.02rem;word-break:break-word}
.cta-contact a:hover{color:var(--gold)}
.cta-contact i{font-size:1.35rem;color:var(--gold);flex:none}

.prow{display:grid;grid-template-columns:1fr auto;gap:28px 48px;align-items:end;border-top:1px solid var(--black);padding-top:30px}
@media (max-width:1024px){.prow{grid-template-columns:1fr}}

/* ---------- Contact / forms ---------- */
.contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:48px clamp(40px,6vw,96px);align-items:start}
.cinfo{border-top:1px solid var(--black);margin-top:36px}
.cinfo li{display:grid;grid-template-columns:28px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}
.cinfo i{font-size:1.35rem;color:var(--gold);margin-top:2px}
.cinfo small{display:block;font-size:.88rem;color:var(--grey)}
.cinfo a,.cinfo span{color:var(--black);font-weight:500;font-size:1.05rem;word-break:break-word}
.cinfo a:hover{color:var(--gold-dk)}
.socials{display:flex;gap:10px;margin-top:28px}
.socials a{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:1.2rem;color:var(--black);transition:background-color .2s,color .2s,border-color .2s}
.socials a:hover{background:var(--black);color:#fff;border-color:var(--black)}
.form{background:#fff;padding:clamp(24px,4vw,48px)}
.sec:not(.stone) .form{background:var(--stone)}
.form h3{margin-bottom:28px}
.fld{margin-bottom:24px;min-width:0}
.fld label,.fld legend{display:block;font-size:.93rem;color:var(--grey);margin-bottom:6px}
.fld input,.fld textarea{width:100%;border:0;border-bottom:1.5px solid #cfcfca;border-radius:0;padding:10px 0 12px;font:inherit;font-size:1.1rem;color:var(--black);background:transparent;transition:border-color .2s;-webkit-appearance:none;appearance:none}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--black)}
.fld textarea{resize:vertical;min-height:110px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
fieldset{border:0;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips label{margin:0;padding:10px 18px;border:1.5px solid #cfcfca;border-radius:999px;font-size:.95rem;color:var(--text);cursor:pointer;transition:all .2s;background:#fff}
.chips input:checked+label{background:var(--black);border-color:var(--black);color:#fff}
.chips input:focus-visible+label{outline:2px solid var(--gold);outline-offset:2px}
.ok{display:none;margin-top:18px;font-weight:500;color:#1e6b3b;align-items:center;gap:8px}
.ok.show{display:flex}
.map{margin-top:28px;aspect-ratio:16/10;border:1px solid var(--line);overflow:hidden;background:var(--stone)}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}

/* ---------- Blog ---------- */
.posts{display:grid;grid-template-columns:repeat(2,1fr);gap:40px}
.post{border-top:1px solid var(--black);padding-top:24px}
.post .meta{font-size:.92rem;color:var(--grey);margin-bottom:12px}
.post h2{margin-bottom:14px}
.post h2 a:hover{color:var(--gold-dk)}
.post p{color:var(--grey);margin-bottom:18px}
.article{max-width:760px}
.article .meta{color:var(--grey);margin-top:20px}
.article h2{font-weight:700;font-variation-settings:'wdth' 106;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.02em;line-height:1.15;color:var(--black);margin:48px 0 16px}
.article p{margin-bottom:1.1em;font-size:1.1rem}
.article ul{margin:0 0 1.2em;display:grid;gap:10px}
.article li{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:1.08rem}
.article li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);margin-top:.65em}
.article blockquote{margin:36px 0;padding-left:24px;border-left:3px solid var(--gold);font-weight:600;font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.25;color:var(--black);letter-spacing:-.02em}

/* ---------- Footer ---------- */
footer{background:#000;color:#b8b8b8;padding-top:clamp(64px,8vw,96px);overflow:hidden}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:56px}
.fgrid .flogo img{height:96px;width:auto;margin-bottom:20px}
.fgrid p{max-width:22em;font-size:.97rem}
.fgrid h6{font-size:.92rem;font-weight:500;color:var(--gold);margin-bottom:16px}
.fgrid ul{display:grid;gap:9px;font-size:.97rem}
.fgrid ul a:hover{color:#fff}
.fgrid .socials a{border-color:#3a3a3a;color:#fff}
.fgrid .socials a:hover{background:#fff;color:#000;border-color:#fff}
.fgrid address{font-style:normal;display:grid;gap:9px;font-size:.97rem}
.fgrid address a:hover{color:#fff}
.legal{border-top:1px solid #2a2a2a;padding-top:22px;padding-bottom:26px;font-size:.88rem}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .fgrid{grid-template-columns:repeat(3,1fr)}
  .fgrid>div:first-child{grid-column:1/-1}
  .cards.c4{grid-template-columns:repeat(2,1fr)}
  .cats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1024px){
  :root{--head-h:80px}
  .nav a.l{display:none}
  .logo img{height:60px}
  .head{grid-template-columns:1fr;gap:20px}
  .head .lead{justify-self:start}
  .hero-grid{grid-template-columns:1fr 1fr}
  .hero-copy{grid-column:1/-1;padding-right:0}
  .hero-b{margin-top:56px}
  .phero-row,.phero.noimg .phero-row{grid-template-columns:1fr}
  .pillars{grid-template-columns:1fr 1fr}
  .pillar:nth-child(3){padding-left:0;border-left:0}
  .pillar:nth-child(n+3){border-top:1px solid var(--line);margin-top:4px}
  .acc-inner{grid-template-columns:1fr}
  .cards{grid-template-columns:repeat(2,1fr)}
  .split,.quote,.issue,.contact-grid{grid-template-columns:1fr}
  .split.rev .img{order:0}
  .split .img{aspect-ratio:16/10}
  .quote .img{aspect-ratio:16/10}
  .steps{grid-template-columns:1fr 1fr;gap:40px 28px}
  .testis{grid-template-columns:1fr 1fr}
  .testis .testi:last-child{grid-column:1/-1}
  .row{grid-template-columns:1fr 1.3fr auto}
  .dlist a{grid-template-columns:1fr auto}
  .dlist p{grid-column:1;grid-row:2}
  .dlist i{grid-row:1/3;grid-column:2}
  .overlay .cols{grid-template-columns:1fr 1fr}
  .overlay .main{grid-column:1/-1}
  .issue .img{max-width:380px}
  .peek{display:none}
}
@media (max-width:760px){
  body{font-size:16px}
  :root{--head-h:72px}
  .logo img{height:54px}
  .menu-btn .txt{display:none}
  .hero-grid{gap:16px}
  .hero-b{margin-top:40px}
  .btns{flex-direction:column;align-items:stretch}
  .btns .btn{width:100%}
  .pillars{grid-template-columns:1fr}
  .pillar,.pillar+.pillar{padding:24px 0;border-left:0}
  .pillar+.pillar{border-top:1px solid var(--line);margin-top:0}
  .ico{width:42px;height:42px;font-size:1.1rem}
  .covers{grid-template-columns:1fr 1fr;gap:16px}
  .covers figure:nth-child(2){margin-top:0}
  .covers figure:nth-child(3){grid-column:1/-1;max-width:calc(50% - 8px);justify-self:center}
  .cards,.cards.c2,.cards.c4{grid-template-columns:1fr;gap:44px}
  .row{grid-template-columns:1fr auto;gap:8px 16px;padding:22px 0}
  .row p{grid-column:1;grid-row:2}
  .row .go{grid-row:1/3;grid-column:2;align-self:center}
  .gallery,.gallery.g6{grid-template-columns:1fr 1fr;grid-auto-rows:44vw;gap:10px}
  .gallery figure{grid-column:auto!important}
  .gallery figure:nth-child(1){grid-column:1/-1!important}
  .gallery.g4 figure:nth-child(4){grid-column:1/-1!important}
  .steps{grid-template-columns:1fr;gap:32px}
  .testis{grid-template-columns:1fr}
  .testis .testi:last-child{grid-column:auto}
  .cats{grid-template-columns:1fr}
  .cat{padding:22px 20px}
  .cta-contact{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  .posts{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr;gap:36px 24px}
  .fgrid>div:last-child{grid-column:1/-1}
  .overlay .cols{grid-template-columns:1fr;gap:32px}
  .overlay .foot{flex-direction:column}
}
@media (max-width:400px){
  .fgrid{grid-template-columns:1fr}
}


/* =================================================================
   Motion & homepage dynamics
   ================================================================= */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;pointer-events:none}
.progress span{display:block;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(0)}
.top{transition:transform .4s cubic-bezier(.2,.7,.2,1),border-color .2s}
.top.hide{transform:translateY(-100%)}

/* hero intro */
.line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.line>span{display:block}
.js .line>span{transform:translateY(108%);animation:lineUp 1.05s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:calc(var(--i) * 130ms + 120ms)}
@keyframes lineUp{to{transform:none}}
.js .fade-in{opacity:0;transform:translateY(18px);animation:fadeUp .85s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:var(--d,0ms)}
@keyframes fadeUp{to{opacity:1;transform:none}}
.js .unveil{clip-path:inset(100% 0 0 0);animation:unveil 1.25s cubic-bezier(.7,0,.2,1) forwards;animation-delay:var(--d,0ms)}
@keyframes unveil{to{clip-path:inset(0 0 0 0)}}

.hero-a{position:relative}
.slides{position:relative;width:100%;height:100%}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.1);transition:opacity 1.3s ease,transform 6.5s ease-out}
.slides img.on{opacity:1;transform:scale(1)}
.slide-dots{position:absolute;left:12px;bottom:10px;display:flex;gap:4px;z-index:2}
.slide-dots button{width:34px;height:22px;position:relative}
.slide-dots button::before,.slide-dots button::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:3px;margin-top:-1.5px;border-radius:2px;background:rgba(255,255,255,.45)}
.slide-dots button::after{background:#fff;transform:scaleX(0);transform-origin:left}
.slide-dots button.on::after{animation:dotfill 5s linear forwards}
@keyframes dotfill{to{transform:scaleX(1)}}
.hero-b img{will-change:transform;transform:scale(1.14)}
.scroll-cue{display:inline-flex;align-items:center;gap:12px;font-size:.92rem;color:var(--grey);margin-top:8px;width:max-content}
.scroll-cue span{width:1.5px;height:46px;background:var(--line);position:relative;overflow:hidden}
.scroll-cue span::after{content:"";position:absolute;left:0;right:0;top:0;height:40%;background:var(--black);animation:cue 1.9s ease-in-out infinite}
@keyframes cue{from{transform:translateY(-100%)}to{transform:translateY(260%)}}

/* ticker */
.ticker{background:#000;color:#fff;overflow:hidden;padding:clamp(16px,2vw,24px) 0}
.ticker-track{display:flex;align-items:center;gap:clamp(20px,2.6vw,36px);width:max-content;will-change:transform}
.ticker span{font-weight:750;font-variation-settings:'wdth' 112;font-size:clamp(1.5rem,3.2vw,2.8rem);letter-spacing:-.03em;line-height:1.1;white-space:nowrap}
.ticker svg{width:clamp(16px,1.6vw,22px);height:auto;aspect-ratio:1;color:var(--gold);flex:none}

/* numbers */
.numbers{padding-top:clamp(56px,7vw,100px);padding-bottom:clamp(56px,7vw,100px)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--black)}
.stat{padding:28px 24px 0 0}
.stat+.stat{padding-left:24px;border-left:1px solid var(--line)}
.stat b{display:block;font-weight:800;font-variation-settings:'wdth' 115;font-size:clamp(3.2rem,7vw,6.4rem);line-height:.9;letter-spacing:-.04em;color:var(--black);font-variant-numeric:tabular-nums}
.stat b::after{content:"";display:inline-block;width:.15em;height:.15em;border-radius:50%;background:var(--gold);margin-left:.06em}
.stat h3{font-weight:600;font-size:1.05rem;color:var(--black);margin:18px 0 4px}
.stat p{font-size:.95rem;color:var(--grey)}

/* scroll reveal */
.js [data-rv]{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.js [data-rv].in{opacity:1;transform:none}

/* word-by-word fill */
.js .scrub .w{color:#cdcdc8;transition:color .35s ease}
.js .dark .scrub .w{color:#3a3a3a}
.js .scrub .w.lit{color:var(--black)}
.statement.scrub{max-width:19em}
.big-scrub{font-size:clamp(2.4rem,6.4vw,6rem);max-width:14em;margin-bottom:clamp(36px,4vw,56px)}

/* pillar icons */
.pico{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background-color .35s,border-color .35s,transform .6s cubic-bezier(.2,.7,.2,1)}
.pico i{font-size:1.5rem;color:var(--gold);transition:color .35s}
.pillar:hover .pico{background:var(--black);border-color:var(--black);transform:rotate(-14deg) scale(1.06)}
.pillar:hover .pico i{color:#fff}

/* magazine tilt */
.covers figure{perspective:1000px}
.tilt{display:block;position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s;will-change:transform}
.tilt:hover{box-shadow:0 40px 70px -30px rgba(0,0,0,.45)}
.shine{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.38),transparent 55%);opacity:0;transition:opacity .4s}
.tilt:hover .shine{opacity:1}

/* accordion extras */
.acc-btn .num{flex:none;width:52px;font-size:.95rem;font-weight:600;color:var(--gold-dk)}
.acc-btn .t{flex:1}
.acc-img{overflow:hidden;background:var(--stone)}
.acc-img img{display:block;transform:scale(1.14);transition:transform 1.3s cubic-bezier(.2,.7,.2,1)}
.acc-item.open .acc-img img{transform:scale(1)}

/* horizontal moments */
.hscroll{position:relative;border-top:1px solid var(--line)}
.hs-sticky{position:sticky;top:0;min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:clamp(28px,4vh,48px);padding:calc(var(--head-h) + 8px) 0 40px;overflow:hidden}
.hs-head{display:grid;grid-template-columns:7fr 5fr;gap:20px 64px;align-items:end}
.hs-head .label{margin-bottom:20px}
.hs-head .lead{justify-self:end}
.hs-track{display:flex;gap:20px;width:max-content;padding-left:max(var(--pad),calc((100vw - 1440px) / 2 + var(--pad)));padding-right:var(--pad);will-change:transform}
.mcard{flex:none;width:min(30vw,44vh);aspect-ratio:4/5;position:relative;overflow:hidden;background:var(--stone)}
.mcard img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.mcard:hover img{transform:scale(1.06)}
.mcard figcaption{position:absolute;left:14px;bottom:14px;background:#fff;color:var(--black);padding:7px 14px;border-radius:999px;font-size:.88rem;font-weight:500}
.hs-bar{height:2px;background:var(--line);position:relative;overflow:hidden}
.hs-bar span{position:absolute;inset:0;background:var(--black);transform-origin:left;transform:scaleX(0)}

@media (max-width:1024px){
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){padding-left:0;border-left:0}
  .stat:nth-child(n+3){margin-top:28px;border-top:1px solid var(--line)}
  .hs-sticky{position:static;min-height:0;padding:var(--sec) 0}
  .hs-head{grid-template-columns:1fr}
  .hs-head .lead{justify-self:start}
  .hs-track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-left:var(--pad);scroll-padding-left:var(--pad)}
  .hs-track::-webkit-scrollbar{display:none}
  .mcard{width:min(68vw,360px);scroll-snap-align:start}
}
@media (max-width:760px){
  .acc-btn .num{width:34px;font-size:.85rem}
  .stat,.stat+.stat{padding-right:12px}
  .stat+.stat{padding-left:16px}
  .stat:nth-child(3){padding-left:0}
}
@media (max-width:360px){.stat b{font-size:2.8rem}}

/* reduced motion: show everything, no movement */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0ms!important;scroll-behavior:auto!important}
  .js .line>span,.js .fade-in,.js [data-rv]{transform:none!important;opacity:1!important}
  .js .unveil{clip-path:none!important}
  .js .scrub .w{color:inherit!important}
  .hero-b img{transform:none!important}
}

/* ---------- Footer contact band ---------- */
.fcontact{display:grid;grid-template-columns:1.15fr .85fr 1.1fr 1fr;gap:16px;padding-bottom:clamp(40px,5vw,64px);margin-bottom:clamp(40px,5vw,64px);border-bottom:1px solid #262626}
.fc{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid #262626;border-radius:16px;transition:border-color .3s,background-color .3s;min-width:0}
a.fc:hover{border-color:var(--gold);background:#0d0d0d}
.fi{flex:none;width:50px;height:50px;border-radius:50%;background:#161616;display:grid;place-items:center;transition:background-color .3s,transform .4s}
.fi i{font-size:1.35rem;color:var(--gold);transition:color .3s}
a.fc:hover .fi{background:var(--gold);transform:rotate(-10deg)}
a.fc:hover .fi i{color:#000}
.ft{min-width:0}
.ft small{display:block;font-size:.85rem;color:#8d8d8d;margin-bottom:2px}
.ft b{display:block;font-weight:500;color:#fff;font-size:.98rem;line-height:1.35;overflow-wrap:anywhere}
.legal-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
@media (max-width:1180px){.fcontact{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.fcontact{grid-template-columns:1fr}.fc{padding:16px}}

/* ---------- Homepage contact ---------- */
.home-contact{position:relative;overflow:hidden}
.home-contact::before{content:"";position:absolute;width:60vw;height:60vw;max-width:820px;max-height:820px;left:-18vw;bottom:-30vw;border-radius:50%;background:radial-gradient(circle,rgba(195,150,58,.22),transparent 65%);pointer-events:none}
.hc-grid{position:relative;display:grid;grid-template-columns:5fr 7fr;gap:48px clamp(40px,6vw,96px);align-items:start}
.hc-copy .d2{margin-bottom:22px}
.hc-copy .lead{margin-bottom:clamp(32px,4vw,48px)}
.hc-img{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:18px;background:#111}
.hc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hc-img:hover img{transform:scale(1.05)}
.hc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.75))}
.hc-img figcaption{position:absolute;left:20px;right:20px;bottom:18px;z-index:1;color:#fff;font-weight:600;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.3;max-width:22em}

.eform{background:#fff;color:var(--text);border-radius:22px;padding:clamp(24px,3.6vw,48px)}
.eform-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:6px 20px;margin-bottom:28px}
.eform-head p{font-size:.93rem;color:var(--grey);display:inline-flex;align-items:center;gap:8px}
.eform-head p::before{content:"";width:8px;height:8px;border-radius:50%;background:#2fa760;box-shadow:0 0 0 4px rgba(47,167,96,.18)}
.efs{border:0;margin-bottom:22px;min-width:0}
.efs legend{font-size:.93rem;color:var(--grey);margin-bottom:12px}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opts input{position:absolute;opacity:0;width:1px;height:1px}
.opt{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;padding:16px;border:1.5px solid #e2e2dd;border-radius:14px;cursor:pointer;transition:border-color .25s,background-color .25s,transform .25s}
.opt:hover{border-color:#bdbdb6;transform:translateY(-2px)}
.opt i{grid-row:1/3;width:42px;height:42px;border-radius:12px;background:var(--stone);display:grid;place-items:center;font-size:1.3rem;color:var(--black);transition:background-color .25s,color .25s}
.opt b{font-weight:600;font-size:.98rem;color:var(--black);line-height:1.25}
.opt span{font-size:.85rem;color:var(--grey);line-height:1.35}
.opt::after{content:"";position:absolute;top:12px;right:12px;width:16px;height:16px;border-radius:50%;border:1.5px solid #cfcfc9;transition:all .25s}
.opts input:checked+.opt{border-color:var(--black);background:#fafaf7}
.opts input:checked+.opt i{background:var(--black);color:var(--gold)}
.opts input:checked+.opt::after{border-color:var(--black);background:var(--black);box-shadow:inset 0 0 0 3px #fff}
.opts input:focus-visible+.opt{outline:2px solid var(--gold);outline-offset:2px}
.eform .two{gap:0 14px}
.box{position:relative;margin-bottom:14px;min-width:0}
.box input,.box textarea{width:100%;background:var(--stone);border:1.5px solid transparent;border-radius:12px;padding:26px 16px 10px;font:inherit;font-size:1.02rem;color:var(--black);transition:border-color .2s,background-color .2s;-webkit-appearance:none;appearance:none}
.box textarea{resize:vertical;min-height:110px}
.box label{position:absolute;left:17px;top:18px;font-size:1rem;color:#7d7d77;pointer-events:none;transition:transform .2s,font-size .2s,color .2s,top .2s;transform-origin:left}
.box input:focus,.box textarea:focus{outline:none;border-color:var(--black);background:#fff}
.box input:focus+label,.box input:not(:placeholder-shown)+label,.box textarea:focus+label,.box textarea:not(:placeholder-shown)+label{top:8px;font-size:.78rem;color:var(--gold-dk)}
.ebtn{width:100%;min-height:58px;margin-top:8px;font-size:1.02rem}
.ebtn:hover i{transform:translate(3px,-3px)}
@media (max-width:1024px){.hc-grid{grid-template-columns:1fr}.hc-img{aspect-ratio:16/9}}
@media (max-width:560px){.opts{grid-template-columns:1fr}.eform .two{grid-template-columns:1fr}.eform{border-radius:18px}}
/* form inside dark section keeps its own light palette */
.dark .eform .d3{color:var(--black)}
.dark .eform .btn-solid{background:var(--black);color:#fff;border-color:var(--black)}
.dark .eform .btn-solid:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.opt{padding-right:36px}
.fcontact{grid-template-columns:1.35fr .8fr 1.05fr 1fr}
@media (max-width:1180px){.fcontact{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.fcontact{grid-template-columns:1fr}}
