/* ═══════════════════════════════════════════════
   DESIGN TOKENS  — refined editorial palette
═══════════════════════════════════════════════ */
:root {
  --bg:      #070509;
  --bg2:     #0e0b14;
  --bg3:     #151020;
  --bg4:     #1e1830;
  --line:    rgba(255,255,255,0.052);
  --line2:   rgba(255,255,255,0.12);
  --line3:   rgba(255,255,255,0.17);
  --text:    #f0ecf6;
  --text2:   rgba(240,236,248,0.82);
  --text3:   rgba(240,236,248,0.52);
  --rose:    #d4b4c4;   /* primary — dusty rose */
  --rose2:   #9a6878;   /* deeper rose */
  --rose3:   #6b3a50;
  --gold:    #c4ab72;   /* secondary — warm gold */
  --gold2:   #96803a;
  --nav-h:   70px;
  --ease:    cubic-bezier(.19,1,.22,1);
  --ease2:   cubic-bezier(.4,0,.2,1);
}
[data-theme="light"] {
  --bg:   #f8f4f0;   --bg2:  #ffffff;  --bg3:  #f0eae4;  --bg4:  #e4dcd4;
  --line: rgba(0,0,0,0.052); --line2: rgba(0,0,0,0.095); --line3: rgba(0,0,0,0.17);
  --text: #160e1e;  --text2: rgba(22,14,30,0.76);  --text3: rgba(22,14,30,0.52);
  --rose: #7a2a48;  --rose2: #5e1e36;  --rose3: #42121e;
  --gold: #6a4a18;  --gold2: #4e3008;
}

/* ═══════════ RESET & BASE ═══════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--text); font-family:'Jost',sans-serif; font-weight:500; line-height:1.72; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden; transition:background .5s,color .5s; cursor:none; }
a { text-decoration:none; color:inherit; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }

/* Grain texture */
body::after { content:''; position:fixed; inset:0; z-index:9900; pointer-events:none; opacity:.022; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E"); background-size:300px; mix-blend-mode:screen; }

/* ═══════════ GLOBAL READABILITY ═══════════ */
/* Ensure all paragraph/body copy is readable weight */
p, li, .h-desc, .fm-p, .gc-blurb, .lspl-p, .art-excerpt,
.pb-desc, .cs-desc, .nl-desc, .foot-bio, .mc-bio,
.mob-bio, .hi-title, .pq-q {
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Nav links, kickers, labels — keep slightly lighter but readable */
.nl, .s-kicker, .h-ey, .see-all, .art-cat, .gc-tag,
.hs-tag, .hsc-tag, .fh, .fsc-tag, .lspl-iss, .lspl-tag,
.fm-ey, .pb-k, .cs-k, .nl-pre, .tick-i, .art-byline,
.gc-meta, .hsc-meta, .fm-meta, .fsc-meta, .mc-loc,
.amc-tag, .amc-meta, .foot-pnote, .cs-pnote {
  font-weight: 400;
}
/* Cormorant display text — use 400 not 300 for clarity */
.fm-h, .fsc-title, .fh-title, .gc-title, .lspl-h,
.hsc-title, .art-h, .amc-title, .hi-title, .pq-q,
.pb-title, .cs-title, .nl-title em {
  font-weight: 400;
}
/* ═══════════ CURSOR ═══════════ */
#cd { position:fixed; top:0; left:0; width:6px; height:6px; background:var(--rose); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .18s,height .18s,background .3s; }
#cr { position:fixed; top:0; left:0; width:32px; height:32px; border:1px solid var(--rose); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); opacity:.35; transition:width .38s var(--ease),height .38s var(--ease),opacity .3s; }
body.ch #cd { width:10px; height:10px; }
body.ch #cr { width:50px; height:50px; opacity:.7; }
@media(hover:none){ #cd,#cr{display:none;} body{cursor:auto;} }

/* ═══════════════════════════════════════
   PREMIUM WORDMARK LOGO
═══════════════════════════════════════ */
.logo { display:inline-flex; flex-direction:column; align-items:center; gap:0; }
.logo-row { display:flex; align-items:baseline; line-height:1; }
.lo { font-family:'Italiana',serif; font-size:1.55rem; letter-spacing:.3em; text-transform:uppercase; color:var(--text); }
.la { font-family:'Cormorant',serif; font-style:italic; font-weight:400; font-size:.82rem; color:var(--rose); letter-spacing:0; margin:0 .18em; opacity:.9; }
.lv { font-family:'Italiana',serif; font-size:1.55rem; letter-spacing:.3em; text-transform:uppercase; color:var(--rose); }
.logo-line { width:100%; height:1px; background:linear-gradient(90deg,transparent,var(--rose) 35%,var(--gold) 65%,transparent); opacity:.45; margin-top:4px; }
.logo-tag { font-size:.37rem; font-weight:400; letter-spacing:.4em; text-transform:uppercase; color:var(--text3); margin-top:3px; }
/* Large footer variant */
.logo.lg .lo, .logo.lg .lv { font-size:2.2rem; }
.logo.lg .la { font-size:1.1rem; }

/* ═══════════ NAV ═══════════ */
.nav { position:fixed; top:0; left:0; right:0; z-index:800; height:var(--nav-h); display:flex; align-items:center; padding:0 2.8rem; border-bottom:1px solid var(--line); background:rgba(7,5,9,.78); backdrop-filter:blur(22px) saturate(160%); -webkit-backdrop-filter:blur(22px) saturate(160%); transition:background .5s; }
[data-theme="light"] .nav { background:rgba(248,244,240,.88); }
.nav-l, .nav-r { display:flex; align-items:center; gap:2.2rem; flex:1; }
.nav-r { justify-content:flex-end; gap:1.4rem; }
.nav-mid { position:absolute; left:50%; transform:translateX(-50%); z-index:2; }
.nl { font-size:.68rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--text); position:relative; padding-bottom:2px; transition:color .25s; white-space:nowrap; }
.nl::after { content:''; position:absolute; bottom:-1px; left:0; right:100%; height:1px; background:var(--rose); transition:right .45s var(--ease); }
.nl:hover { color:var(--rose); }
.nl-cta { color:var(--rose) !important; font-weight:700; }
.nl-cta:hover { opacity:.8; }
.nl:hover::after { right:0; }
.nc { display:flex; align-items:center; gap:.9rem; }
/* theme toggle */
.tb { position:relative; width:42px; height:22px; border:1px solid var(--line2); border-radius:11px; background:var(--bg3); transition:border-color .3s; padding:0; }
.tb:hover { border-color:var(--rose); }
.tt { position:absolute; top:3px; left:3px; width:14px; height:14px; border-radius:50%; background:var(--rose); box-shadow:0 0 8px rgba(200,168,184,.3); transition:transform .45s var(--ease); }
[data-theme="light"] .tt { transform:translateX(20px); }
.ti { position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 4px; pointer-events:none; }
.tico { font-size:8px; opacity:.38; }
/* hamburger */
.hb-btn { width:36px; height:36px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:1px solid var(--line2); border-radius:4px; transition:border-color .25s; }
.hb-btn:hover { border-color:var(--rose); }
.hb-line { display:block; width:15px; height:1px; background:var(--text2); transition:all .4s var(--ease); transform-origin:center; }
.hb-btn:hover .hb-line { background:var(--rose); }
.mo .hb-line:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.mo .hb-line:nth-child(2) { opacity:0; transform:scaleX(0); }
.mo .hb-line:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
@media(min-width:900px){ .hb-btn { display:none; } }
@media(max-width:899px){ .nav-l .nl, .nav-r .nl { display:none; } }

/* ═══════════ MOBILE MENU ═══════════ */
.mob { position:fixed; inset:0; z-index:700; background:var(--bg); display:flex; flex-direction:column; pointer-events:none; clip-path:circle(0% at calc(100% - 46px) 35px); transition:clip-path .8s var(--ease); }
.mob.on { clip-path:circle(170% at calc(100% - 46px) 35px); pointer-events:all; }
.mob-in { flex:1; display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch; padding:calc(var(--nav-h) + 3rem) 2.8rem 3rem; scrollbar-width:none; }
.mob-in::-webkit-scrollbar { display:none; }
.mob-list { list-style:none; border-top:1px solid var(--line); }
.mob-item { border-bottom:1px solid var(--line); overflow:hidden; }
.mob-item a { display:flex; align-items:center; justify-content:space-between; font-family:'Cormorant',serif; font-style:italic; font-weight:400; font-size:clamp(2.8rem,9vw,5rem); color:var(--text2); padding:.3rem 0; transform:translateY(110%); transition:transform .7s var(--ease),color .3s; }
.mob.on .mob-item a { transform:translateY(0); }
.mob-item:nth-child(1) a{transition-delay:.05s}.mob-item:nth-child(2) a{transition-delay:.10s}.mob-item:nth-child(3) a{transition-delay:.15s}.mob-item:nth-child(4) a{transition-delay:.20s}.mob-item:nth-child(5) a{transition-delay:.25s}.mob-item:nth-child(6) a{transition-delay:.30s}.mob-item:nth-child(7) a{transition-delay:.34s}.mob-item:nth-child(8) a{transition-delay:.38s}
.mob-item a:hover { color:var(--text); }
.mob-num { font-family:'Jost',sans-serif; font-size:.5rem; font-weight:400; letter-spacing:.22em; color:var(--text3); }
.mob-ft { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding-top:2.2rem; margin-top:2rem; border-top:1px solid var(--line); opacity:0; transform:translateY(10px); transition:opacity .5s .42s,transform .5s .42s var(--ease); flex-shrink:0; }
.mob.on .mob-ft { opacity:1; transform:translateY(0); }
.mob-socs { display:flex; gap:1.4rem; }
.mob-soc { font-size:.56rem; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--text3); transition:color .2s; }
.mob-soc:hover { color:var(--rose); }
.mob-domain { font-size:.56rem; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--text3); }

/* ═══════════════════════════════════════════
   HERO — editorial split
═══════════════════════════════════════════ */
.hero { min-height:100svh; padding-top:var(--nav-h); display:grid; grid-template-columns:1fr 1fr; position:relative; overflow:hidden; }
.hero-glow { position:absolute; inset:0; pointer-events:none; background: radial-gradient(ellipse 55% 65% at 15% 58%, rgba(160,90,120,.07) 0%, transparent 60%), radial-gradient(ellipse 45% 55% at 85% 25%, rgba(140,160,200,.05) 0%, transparent 60%); }
.hero-l { position:relative; z-index:1; padding:8vh 4.5rem 7vh 3.5rem; display:flex; flex-direction:column; justify-content:space-between; border-right:1px solid var(--line); }
.h-vol { font-size:.5rem; font-weight:400; letter-spacing:.34em; text-transform:uppercase; color:var(--text3); display:flex; align-items:center; gap:1rem; }
.h-vol::before { content:''; width:24px; height:1px; background:currentColor; display:block; }
.h-mid { flex:1; display:flex; flex-direction:column; justify-content:center; padding:3vh 0; }
.h-ey { font-size:.6rem; font-weight:400; letter-spacing:.32em; text-transform:uppercase; color:var(--rose); margin-bottom:2rem; display:flex; align-items:center; gap:.8rem; opacity:0; animation:fadeUp .85s .18s var(--ease) forwards; }
.h-ey::before { content:''; width:30px; height:1px; background:var(--rose); display:block; }
.h1 { font-family:'Italiana',serif; font-size:clamp(4.5rem,9vw,9.5rem); line-height:.88; letter-spacing:.01em; color:var(--text); opacity:0; animation:fadeUp .95s .3s var(--ease) forwards; }
.h1 .h1-it { font-family:'Cormorant',serif; font-style:italic; font-weight:400; color:var(--rose); display:block; font-size:.72em; margin-left:.1em; }
.h1 .h1-sm { font-size:.37em; display:block; font-family:'Jost',sans-serif; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--text3); margin-top:.8rem; margin-left:.06em; }
.h-desc { font-size:.92rem; font-weight:400; color:var(--text2); line-height:1.9; max-width:340px; margin-top:2.2rem; opacity:0; animation:fadeUp .95s .42s var(--ease) forwards; }
.h-bot { display:flex; align-items:flex-end; justify-content:space-between; }
.h-cta { display:inline-flex; align-items:center; gap:1.2rem; opacity:0; animation:fadeUp .95s .54s var(--ease) forwards; }
.h-cta-c { width:48px; height:48px; border-radius:50%; border:1px solid var(--line3); display:flex; align-items:center; justify-content:center; font-size:.88rem; color:var(--text2); transition:background .3s,border-color .3s,color .3s,transform .5s var(--ease); }
.h-cta:hover .h-cta-c { background:var(--rose2); border-color:var(--rose); color:var(--text); transform:rotate(-45deg); }
.h-cta-l { font-size:.52rem; font-weight:400; letter-spacing:.24em; text-transform:uppercase; color:var(--text2); }
.h-sc { font-size:.46rem; font-weight:400; letter-spacing:.24em; text-transform:uppercase; color:var(--text3); writing-mode:vertical-rl; display:flex; align-items:center; gap:.6rem; opacity:0; animation:fadeUp .95s .66s var(--ease) forwards; }
.h-sc::after { content:''; width:1px; height:34px; background:currentColor; display:block; }
/* Hero right */
.hero-r { position:relative; z-index:1; display:grid; grid-template-rows:1fr 134px; min-height:0; }
.hi-wrap { position:relative; overflow:hidden; height:100%; }
.hi-fill { width:100%; height:100%; display:flex; align-items:center; justify-content:center; transition:transform 1.1s var(--ease); }
.hi-wrap img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; position:absolute; inset:0; }
.hi-wrap:hover .hi-fill { transform:scale(1.04); }
.hi-badge { position:absolute; bottom:2.2rem; left:2.2rem; right:2.2rem; }
.hi-pill { display:inline-flex; align-items:center; gap:.4rem; font-size:.47rem; font-weight:400; letter-spacing:.19em; text-transform:uppercase; padding:5px 12px; border-radius:30px; margin-bottom:.65rem; backdrop-filter:blur(10px); background:rgba(200,168,184,.1); color:#ddbcc8; border:1px solid rgba(200,168,184,.18); }
.hi-title { font-family:'Cormorant',serif; font-size:1.25rem; font-weight:400; font-style:italic; color:#fff; line-height:1.35; text-shadow:0 2px 24px rgba(0,0,0,.55); }
.h-strip { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.hs { padding:1.6rem 1.8rem; border-right:1px solid var(--line); cursor:pointer; transition:background .3s; position:relative; overflow:hidden; }
.hs:last-child { border-right:none; }
.hs:hover { background:var(--bg2); }
.hs-tag { font-size:.46rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; margin-bottom:.4rem; }
.hs-title { font-family:'Cormorant',serif; font-size:1rem; font-weight:400; font-style:italic; line-height:1.4; }
.hs-min { font-size:.58rem; color:var(--text3); letter-spacing:.1em; text-transform:uppercase; margin-top:.4rem; }
.hs-go { position:absolute; bottom:1.4rem; right:1.4rem; font-size:.62rem; color:var(--rose); opacity:0; transition:opacity .25s,transform .3s var(--ease); }
.hs:hover .hs-go { opacity:1; transform:translateX(2px); }

/* ═══════════ TICKER ═══════════ */
.ticker { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:.68rem 0; background:var(--bg2); }
.ticker-t { display:flex; animation:tick 34s linear infinite; white-space:nowrap; }
.tick-i { flex-shrink:0; display:flex; align-items:center; font-size:.62rem; font-weight:400; letter-spacing:.21em; text-transform:uppercase; color:var(--text2); padding:0 2.4rem; border-right:1px solid var(--line); }
.tick-d { color:var(--rose); font-size:.3rem; margin-left:.8rem; }
@keyframes tick { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ═══════════ SECTION HEADER ═══════════ */
.sec { padding:7.5rem 3.5rem; }
.sec-hd { display:flex; align-items:flex-end; justify-content:space-between; padding-bottom:2.6rem; margin-bottom:4.5rem; border-bottom:1px solid var(--line); }
.s-kicker { font-size:.56rem; font-weight:500; letter-spacing:.28em; text-transform:uppercase; color:var(--text3); margin-bottom:.85rem; display:flex; align-items:center; gap:.6rem; }
.s-kicker::before { content:''; width:18px; height:1px; background:currentColor; display:block; }
.s-title { font-family:'Italiana',serif; font-size:clamp(2rem,3.2vw,3.1rem); letter-spacing:.02em; line-height:1.02; font-weight:500; }
.s-title em { font-family:'Cormorant',serif; font-style:italic; color:var(--rose); }
.s-title .g { color:var(--gold); }
.see-all { font-size:.5rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; color:var(--text3); display:flex; align-items:center; gap:.5rem; transition:color .25s; }
.see-all span { transition:transform .3s var(--ease); }
.see-all:hover { color:var(--rose); }
.see-all:hover span { transform:translateX(3px); }

/* ═══════════ FEATURE SPLIT ═══════════ */
.fsplit { display:grid; grid-template-columns:3fr 2fr; border:1px solid var(--line); }
.fm { border-right:1px solid var(--line); overflow:hidden; }
.fm-img { height:58vh; min-height:340px; overflow:hidden; position:relative; }
.fm-fill { width:100%; height:100%; display:flex; align-items:center; justify-content:center; transition:transform 1.1s var(--ease); }
.fm-img img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.fm:hover .fm-fill { transform:scale(1.04); }
.fm:hover .fm-img img { transform:scale(1.04); }
.fm-body { padding:2.8rem 3.2rem; }
.fm-ey { font-size:.48rem; font-weight:400; letter-spacing:.28em; text-transform:uppercase; color:var(--rose); margin-bottom:1rem; }
.fm-h { font-family:'Cormorant',serif; font-size:clamp(1.5rem,2.3vw,2.2rem); font-weight:400; font-style:italic; line-height:1.2; margin-bottom:1rem; }
.fm-p { font-size:.9rem; font-weight:400; color:var(--text2); line-height:1.9; max-width:480px; margin-bottom:1.4rem; }
.fm-meta { font-size:.6rem; color:var(--text3); letter-spacing:.12em; text-transform:uppercase; }
.fm-meta strong { color:var(--text); font-weight:500; }
.fsc { display:flex; flex-direction:column; height:100%; }
.fsc-i { padding:1.9rem 2.2rem; border-bottom:1px solid var(--line); position:relative; overflow:hidden; cursor:pointer; transition:background .3s; }
.fsc-i:last-child { border-bottom:none; }
.fsc-i:hover { background:var(--bg3); }
.fsc-img { height:140px; margin-bottom:1rem; overflow:hidden; position:relative; }
.fsc-img img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.fsc-fill { width:100%; height:100%; display:flex; align-items:center; justify-content:center; transition:transform .7s var(--ease); }
.fsc-img img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; transition:transform .7s var(--ease); }
.fsc-i:hover .fsc-img img { transform:scale(1.05); }
.fsc-i:hover .fsc-fill { transform:scale(1.06); }
.fsc-n { position:absolute; top:.5rem; right:.8rem; font-family:'Italiana',serif; font-size:3.2rem; opacity:.045; color:var(--rose); pointer-events:none; }
.fsc-tag { font-size:.46rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:.45rem; }
.fsc-title { font-family:'Cormorant',serif; font-size:.94rem; font-weight:400; font-style:italic; line-height:1.4; margin-bottom:.4rem; }
.fsc-meta { font-size:.46rem; color:var(--text3); letter-spacing:.1em; text-transform:uppercase; }

/* ═══════════ MARQUEE ═══════════ */
.mq { overflow:hidden; padding:2rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.mq-t { display:flex; animation:marq 26s linear infinite; }
.mq-w { flex-shrink:0; font-family:'Italiana',serif; font-size:clamp(2.8rem,5.5vw,5.5rem); letter-spacing:.05em; padding:0 2.4rem; white-space:nowrap; color:transparent; -webkit-text-stroke:1px var(--line2); transition:color .35s,-webkit-text-stroke .35s; cursor:pointer; }
.mq-w:hover { color:var(--rose); -webkit-text-stroke:1px transparent; }
.mq-x { flex-shrink:0; font-family:'Cormorant',serif; font-style:italic; font-size:clamp(1.5rem,2.8vw,2.8rem); color:var(--rose); opacity:.28; padding:0 .3rem; align-self:center; }
@keyframes marq { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ═══════════ 3-COL GRID ═══════════ */
.g3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.gc { border:1px solid var(--line); background:var(--bg2); overflow:hidden; cursor:pointer; transition:border-color .3s,transform .45s var(--ease); }
.gc:hover { border-color:var(--line2); transform:translateY(-4px); }
.gc-img { overflow:hidden; aspect-ratio:3/4; position:relative; }
.gc-img img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.gc-fill { width:100%; height:100%; display:flex; align-items:center; justify-content:center; transition:transform .9s var(--ease); }
.gc:hover .gc-fill { transform:scale(1.07); }
.gc-body { padding:1.5rem 1.6rem; }
.gc-tag { font-size:.46rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; margin-bottom:.45rem; }
.gc-title { font-family:'Cormorant',serif; font-size:1.02rem; font-weight:400; font-style:italic; line-height:1.38; margin-bottom:.4rem; }
.gc-blurb { font-size:.85rem; font-weight:400; color:var(--text2); line-height:1.75; margin-bottom:.95rem; }
.gc-foot { display:flex; align-items:center; justify-content:space-between; }
.gc-meta { font-size:.58rem; color:var(--text3); letter-spacing:.1em; text-transform:uppercase; }
.gc-arr { width:26px; height:26px; border-radius:50%; border:1px solid var(--line2); display:flex; align-items:center; justify-content:center; font-size:.62rem; color:var(--text3); transition:all .35s var(--ease); }
.gc:hover .gc-arr { background:var(--rose2); border-color:var(--rose); color:var(--text); transform:rotate(-45deg); }

/* ═══════════ LARGE SPLIT ═══════════ */
.lspl { display:grid; grid-template-columns:1fr 1fr; min-height:70vh; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.lspl-img { overflow:hidden; position:relative; }
.lspl-img img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.lspl-fill { width:100%; height:100%; min-height:100%; display:flex; align-items:center; justify-content:center; transition:transform 1.1s var(--ease); }
.lspl:hover .lspl-fill { transform:scale(1.04); }
.lspl-body { padding:7rem 5rem; display:flex; flex-direction:column; justify-content:center; border-left:1px solid var(--line); }
.lspl-iss { font-size:.46rem; font-weight:400; letter-spacing:.32em; text-transform:uppercase; color:var(--text3); margin-bottom:1.1rem; }
.lspl-n { font-family:'Italiana',serif; font-size:clamp(5rem,10vw,10rem); line-height:.82; color:transparent; -webkit-text-stroke:1px var(--line2); display:block; margin-bottom:.4rem; transition:color .55s,-webkit-text-stroke .55s; }
.lspl:hover .lspl-n { color:var(--rose); -webkit-text-stroke:1px transparent; }
.lspl-tag { font-size:.49rem; font-weight:400; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem; }
.lspl-h { font-family:'Cormorant',serif; font-size:clamp(1.8rem,2.8vw,2.8rem); font-weight:400; font-style:italic; line-height:1.2; margin-bottom:1.5rem; }
.lspl-p { font-size:.9rem; font-weight:400; color:var(--text2); line-height:1.9; max-width:360px; margin-bottom:2.4rem; }
.lspl-link { font-size:.5rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; color:var(--text2); border-bottom:1px solid var(--line2); padding-bottom:.38rem; width:fit-content; display:flex; align-items:center; gap:.45rem; transition:color .25s,border-color .25s; }
.lspl-link span { transition:transform .3s var(--ease); }
.lspl-link:hover { color:var(--rose); border-color:var(--rose); }
.lspl-link:hover span { transform:translateX(4px); }

/* ═══════════ H-SCROLL ═══════════ */
.hsr-wrap { padding:0 3.5rem 5rem; overflow:hidden; }
.hsr { display:flex; gap:1.2rem; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:.4rem; }
.hsr::-webkit-scrollbar { display:none; }
.hsc { flex:0 0 285px; scroll-snap-align:start; border:1px solid var(--line); background:var(--bg2); overflow:hidden; cursor:pointer; transition:border-color .3s,transform .4s var(--ease); }
.hsc:hover { border-color:var(--line2); transform:translateY(-3px); }
.hsc-img { height:190px; overflow:hidden; position:relative; }
.hsc-img img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.hsc-fill { width:100%; height:100%; display:flex; align-items:center; justify-content:center; transition:transform .8s var(--ease); }
.hsc:hover .hsc-fill { transform:scale(1.06); }
.hsc-body { padding:1.3rem 1.4rem; }
.hsc-tag { font-size:.45rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; margin-bottom:.42rem; }
.hsc-title { font-family:'Cormorant',serif; font-size:1rem; font-weight:400; font-style:italic; line-height:1.4; }
.hsc-meta { font-size:.58rem; color:var(--text3); letter-spacing:.1em; text-transform:uppercase; margin-top:.42rem; }

/* ═══════════════════════════════════════════════
   SEO ARTICLES — premier section
═══════════════════════════════════════════════ */
.articles-sec { padding:7.5rem 3.5rem; background:var(--bg2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

/* Long-form list */
.art-list { display:flex; flex-direction:column; }
.art-card { display:grid; grid-template-columns:72px 1fr 42px; gap:2.4rem; align-items:center; padding:2.2rem 0; border-bottom:1px solid var(--line); cursor:pointer; position:relative; transition:padding-left .45s var(--ease); }
.art-card:last-child { border-bottom:none; }
.art-card:hover { padding-left:.8rem; }
.art-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:1px; background:var(--rose); transform:scaleY(0); transform-origin:bottom; transition:transform .45s var(--ease); }
.art-card:hover::before { transform:scaleY(1); }
.art-num { font-family:'Italiana',serif; font-size:2.4rem; color:transparent; -webkit-text-stroke:1px var(--line2); text-align:right; flex-shrink:0; transition:color .4s,-webkit-text-stroke .4s; }
.art-card:hover .art-num { color:var(--rose); -webkit-text-stroke:1px transparent; }
.art-content { display:flex; flex-direction:column; gap:.45rem; }
.art-cat { font-size:.58rem; font-weight:400; letter-spacing:.24em; text-transform:uppercase; color:var(--rose); }
.art-h { font-family:'Cormorant',serif; font-size:1.28rem; font-weight:400; font-style:italic; line-height:1.32; color:var(--text); }
.art-excerpt { font-size:.88rem; font-weight:400; color:var(--text2); line-height:1.72; max-width:620px; }
.art-byline { font-size:.58rem; font-weight:400; color:var(--text3); letter-spacing:.1em; text-transform:uppercase; }
.art-arr { width:38px; height:38px; border-radius:50%; border:1px solid var(--line2); display:flex; align-items:center; justify-content:center; font-size:.72rem; color:var(--text3); flex-shrink:0; transition:all .35s var(--ease); }
.art-card:hover .art-arr { background:var(--rose2); border-color:var(--rose); color:var(--text); transform:rotate(-45deg); }

/* SEO mini grid */
.art-mini { display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; margin-top:3.5rem; padding-top:3.5rem; border-top:1px solid var(--line); }
.amc { border:1px solid var(--line); padding:1.6rem; cursor:pointer; transition:border-color .3s,background .3s,transform .4s var(--ease); }
.amc:hover { border-color:var(--line2); background:var(--bg3); transform:translateY(-2px); }
.amc-tag { font-size:.55rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; margin-bottom:.55rem; }
.amc-title { font-family:'Cormorant',serif; font-size:1rem; font-weight:400; font-style:italic; line-height:1.38; margin-bottom:.48rem; }
.amc-meta { font-size:.56rem; color:var(--text3); letter-spacing:.1em; text-transform:uppercase; }

/* ═══════════ PULL QUOTE ═══════════ */
.pullq { padding:10rem 3.5rem; text-align:center; position:relative; overflow:hidden; }
.pullq::before { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse 75% 65% at 50% 50%, rgba(150,100,120,.04) 0%, transparent 65%); }
.pq-m { font-family:'Italiana',serif; font-size:10rem; line-height:.3; color:var(--rose); opacity:.09; display:block; margin-bottom:1.8rem; }
.pq-q { font-family:'Cormorant',serif; font-size:clamp(1.8rem,3.4vw,3rem); font-weight:400; font-style:italic; line-height:1.52; max-width:820px; margin:0 auto 2.4rem; color:var(--text); position:relative; }
.pq-by { font-size:.52rem; font-weight:400; letter-spacing:.3em; text-transform:uppercase; color:var(--text3); position:relative; display:inline-flex; align-items:center; gap:1.8rem; }
.pq-by::before, .pq-by::after { content:''; display:block; width:44px; height:1px; background:var(--line2); }

/* ═══════════ MODELS ═══════════ */
.m3 { display:grid; grid-template-columns:1fr 1.35fr 1fr; gap:1.6rem; align-items:end; }
.mc { cursor:pointer; }
.mc-img { position:relative; overflow:hidden; margin-bottom:1.1rem; }
.mc:nth-child(1) .mc-img, .mc:nth-child(3) .mc-img { aspect-ratio:2/3; }
.mc:nth-child(2) .mc-img { aspect-ratio:3/4; }
.mc-fill { width:100%; height:100%; display:flex; align-items:center; justify-content:center; transition:transform .9s var(--ease); }
.mc-img img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.mc:hover .mc-fill { transform:scale(1.05); }
.mc-idx { position:absolute; top:-2rem; right:0; font-family:'Italiana',serif; font-size:4.5rem; opacity:.055; color:var(--gold); pointer-events:none; }
.mc-loc { font-size:.47rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; color:var(--rose); margin-bottom:.3rem; }
.mc-name { font-family:'Italiana',serif; font-size:1.4rem; letter-spacing:.06em; margin-bottom:.28rem; }
.mc-bio { font-size:.82rem; font-weight:400; color:var(--text2); line-height:1.65; }

/* ═══════════ PARTNER ═══════════ */
.pb { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line); background:var(--bg2); overflow:hidden; }
.pb-img { min-height:360px; background: radial-gradient(ellipse at 42% 62%, rgba(196,171,114,.14) 0%, transparent 55%), radial-gradient(ellipse at 80% 22%, rgba(200,168,184,.09) 0%, transparent 50%), linear-gradient(148deg,#1a1008,#0e1428 55%,#16080e); display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
.pb-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; transition:transform 1.1s var(--ease); }
.pb:hover .pb-img img { transform:scale(1.04); }
.pb-body { padding:4.5rem 5rem; display:flex; flex-direction:column; justify-content:center; border-left:1px solid var(--line); }
.pb-k { font-size:.48rem; font-weight:400; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; display:flex; align-items:center; gap:.55rem; }
.pb-k::before { content:''; width:16px; height:1px; background:currentColor; display:block; }
.pb-title { font-family:'Italiana',serif; font-size:clamp(1.9rem,3.2vw,2.9rem); letter-spacing:.02em; line-height:1.08; margin-bottom:1.1rem; }
.pb-desc { font-size:.9rem; font-weight:400; color:var(--text2); line-height:1.88; max-width:380px; margin-bottom:2.2rem; }
.pb-btn { display:inline-flex; align-items:center; gap:.75rem; padding:.85rem 1.5rem; border:1px solid var(--line2); font-size:.54rem; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--text2); transition:border-color .28s,color .28s; width:fit-content; margin-bottom:1.2rem; }
.pb-btn:hover { border-color:var(--gold); color:var(--gold); }
.pb-url { font-size:.55rem; font-weight:400; letter-spacing:.14em; color:var(--rose); border-bottom:1px solid rgba(200,168,184,.2); padding-bottom:1px; width:fit-content; transition:border-color .25s; }
.pb-url:hover { border-color:var(--rose); }

/* ═══════════ CONTACT ═══════════ */
.cs-wrap { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cs-col { padding:6.5rem 4rem; border-right:1px solid var(--line); position:relative; overflow:hidden; }
.cs-col:last-child { border-right:none; }
/* subtle number watermark */
.cs-col::before { content:attr(data-n); position:absolute; right:-1rem; top:50%; transform:translateY(-50%); font-family:'Italiana',serif; font-size:12rem; color:var(--rose); opacity:.025; pointer-events:none; line-height:1; }
.cs-k { font-size:.48rem; font-weight:400; letter-spacing:.3em; text-transform:uppercase; color:var(--rose); margin-bottom:1.1rem; display:flex; align-items:center; gap:.55rem; }
.cs-k::before { content:''; width:16px; height:1px; background:currentColor; display:block; }
.cs-title { font-family:'Italiana',serif; font-size:clamp(1.8rem,2.8vw,2.7rem); letter-spacing:.02em; line-height:1.08; margin-bottom:1.1rem; }
.cs-desc { font-size:.9rem; font-weight:400; color:var(--text2); line-height:1.88; max-width:360px; margin-bottom:2.2rem; }
.cs-btn { display:inline-flex; align-items:center; gap:.75rem; padding:.9rem 1.7rem; border:1px solid var(--line2); font-size:.54rem; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--text); transition:border-color .3s,background .3s,color .3s; width:fit-content; }
.cs-btn:hover { border-color:var(--rose); background:rgba(200,168,184,.07); color:var(--rose); }
.cs-phone { display:flex; align-items:center; gap:.8rem; font-family:'Cormorant',serif; font-size:1.6rem; font-weight:400; font-style:italic; margin-bottom:.5rem; }
.cs-phone svg { flex-shrink:0; }
.cs-pnote { font-size:.56rem; font-weight:400; color:var(--text3); letter-spacing:.1em; }

/* ═══════════ NEWSLETTER ═══════════ */
.nl-s { display:grid; grid-template-columns:1fr 1fr; gap:8rem; align-items:center; padding:8.5rem 3.5rem; border-top:1px solid var(--line); background:var(--bg2); }
.nl-pre { font-size:.48rem; font-weight:400; letter-spacing:.32em; text-transform:uppercase; color:var(--rose); margin-bottom:1.3rem; display:flex; align-items:center; gap:.55rem; }
.nl-pre::before { content:''; width:18px; height:1px; background:var(--rose); display:block; }
.nl-title { font-family:'Italiana',serif; font-size:clamp(2.2rem,3.8vw,3.7rem); letter-spacing:.02em; line-height:1.02; margin-bottom:1.1rem; }
.nl-title em { font-family:'Cormorant',serif; font-style:italic; color:var(--rose); }
.nl-desc { font-size:.9rem; font-weight:400; color:var(--text2); line-height:1.9; max-width:340px; }
.nl-form { display:flex; flex-direction:column; gap:1.3rem; }
.nl-row { display:flex; border:1px solid var(--line2); transition:border-color .3s; }
.nl-row:focus-within { border-color:var(--rose); }
.nl-inp { flex:1; padding:1.05rem 1.4rem; background:transparent; color:var(--text); font-family:'Jost',sans-serif; font-size:.9rem; font-weight:400; border:none; outline:none; }
.nl-inp::placeholder { color:var(--text3); }
.nl-btn { padding:1.05rem 1.7rem; background:transparent; border:none; border-left:1px solid var(--line2); color:var(--text2); font-family:'Jost',sans-serif; font-size:.52rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; white-space:nowrap; transition:background .3s,color .3s; }
.nl-btn:hover { background:var(--rose2); color:var(--text); }
.nl-perks { display:flex; flex-wrap:wrap; gap:.9rem 2rem; }
.nl-pk { font-size:.52rem; font-weight:400; color:var(--text3); display:flex; align-items:center; gap:.4rem; }
.nl-pk::before { content:'✦'; font-size:.3rem; color:var(--gold); }

/* ═══════════════════════════════════════════════
   FOOTER — editorial premium
═══════════════════════════════════════════════ */
footer { border-top:1px solid var(--line); }

/* Social strip */
.foot-soc { display:flex; border-bottom:1px solid var(--line); }
.foot-soc-a { flex:1; display:flex; align-items:center; justify-content:center; gap:.75rem; padding:1.5rem 1rem; border-right:1px solid var(--line); font-size:.52rem; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--text3); transition:background .3s,color .3s; }
.foot-soc-a:last-child { border-right:none; }
.foot-soc-a:hover { background:var(--bg2); color:var(--rose); }
.foot-soc-a svg { width:15px; height:15px; fill:currentColor; flex-shrink:0; transition:transform .35s var(--ease); }
.foot-soc-a:hover svg { transform:translateY(-2px); }

/* Footer grid */
.foot-grid { display:grid; grid-template-columns:2.4fr 1fr 1fr 1.3fr; border-bottom:1px solid var(--line); }
.foot-col { padding:3.8rem 3.2rem; border-right:1px solid var(--line); }
.foot-col:last-child { border-right:none; }
.foot-brand { }
.foot-logo-wrap { margin-bottom:1.5rem; }
.foot-bio { font-size:.82rem; font-weight:400; color:var(--text2); line-height:1.88; max-width:260px; margin-bottom:2rem; }
.foot-partner { display:inline-flex; align-items:center; gap:.6rem; padding:.58rem 1.1rem; border:1px solid var(--line); font-size:.5rem; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--text3); transition:border-color .28s,color .28s; white-space:nowrap; }
.foot-partner:hover { border-color:var(--gold); color:var(--gold); }
.foot-partner svg { width:11px; height:11px; fill:currentColor; opacity:.5; }
.fh { font-size:.46rem; font-weight:400; letter-spacing:.28em; text-transform:uppercase; color:var(--text3); margin-bottom:.9rem; }
.fh-rule { width:22px; height:1px; background:var(--rose); opacity:.38; margin-bottom:1.2rem; }
.ful { list-style:none; }
.ful li { margin-bottom:.62rem; }
.ful a { font-size:.8rem; font-weight:400; color:var(--text2); transition:color .2s,padding-left .25s; display:flex; align-items:center; gap:.45rem; }
.ful a:hover { color:var(--rose); padding-left:6px; }
.foot-phone { display:flex; align-items:center; gap:.65rem; font-family:'Cormorant',serif; font-size:1.12rem; font-weight:400; font-style:italic; color:var(--text); margin-bottom:.32rem; margin-top:1.2rem; }
.foot-phone svg { width:14px; height:14px; fill:var(--rose); flex-shrink:0; }
.foot-pnote { font-size:.48rem; font-weight:400; color:var(--text3); letter-spacing:.08em; }

/* Bottom bar */
.foot-bot { display:flex; align-items:center; justify-content:space-between; padding:1.4rem 3.2rem; flex-wrap:wrap; gap:.9rem; }
.foot-copy { font-size:.52rem; font-weight:400; color:var(--text3); }
.foot-legal { display:flex; gap:1.5rem; }
.foot-legal a { font-size:.5rem; font-weight:400; color:var(--text3); transition:color .2s; }
.foot-legal a:hover { color:var(--rose); }
.foot-domain { font-size:.52rem; font-weight:400; letter-spacing:.15em; text-transform:uppercase; color:var(--text3); }

/* ═══════════ SCROLL REVEAL ═══════════ */
.rv { opacity:0; transform:translateY(28px); transition:opacity .95s var(--ease),transform .95s var(--ease); }
.rv.in { opacity:1; transform:translateY(0); }
.d1{transition-delay:.12s} .d2{transition-delay:.24s} .d3{transition-delay:.36s}
@keyframes fadeUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }

/* ═══════════ ART BACKGROUNDS ═══════════ */
.a1{background:radial-gradient(ellipse at 35% 65%,rgba(160,90,120,.18) 0%,transparent 52%),radial-gradient(ellipse at 78% 20%,rgba(140,158,196,.1) 0%,transparent 50%),linear-gradient(152deg,#1c0a16,#0e142a 55%,#120a10);}
.a2{background:radial-gradient(ellipse at 65% 40%,rgba(140,158,196,.18) 0%,transparent 52%),linear-gradient(152deg,#08101e,#1c0a2c 55%,#0c1408);}
.a3{background:radial-gradient(ellipse at 50% 68%,rgba(196,171,114,.14) 0%,transparent 52%),linear-gradient(152deg,#1c120a,#1c0a16 55%,#0a1018);}
.a4{background:radial-gradient(ellipse at 28% 52%,rgba(160,90,120,.15) 0%,transparent 52%),linear-gradient(160deg,#180c18,#0a1630 60%,#080e08);}
.a5{background:radial-gradient(ellipse at 72% 48%,rgba(196,171,114,.12) 0%,transparent 52%),linear-gradient(160deg,#181208,#0c1c30 50%,#180c18);}
.a6{background:radial-gradient(ellipse at 50% 38%,rgba(140,158,196,.14) 0%,transparent 52%),linear-gradient(160deg,#080e1e,#1a0a18 60%,#0a1808);}
.gh{font-size:4.5rem;opacity:.07;pointer-events:none;user-select:none;}

/* ═══════════════════════════════════════════
   RESPONSIVE — full breakpoint ladder
   Galaxy Z Fold 6: 344px folded / 882px open
═══════════════════════════════════════════ */

/* ── Tablet & mid-fold (≤1100px) ── */
@media(max-width:1100px){
  .g3{grid-template-columns:repeat(2,1fr);}
  .m3{grid-template-columns:1fr 1fr;}.mc:nth-child(3){display:none;}
  .fsplit{grid-template-columns:1fr;}.fsc{flex-direction:row;flex-wrap:nowrap;height:auto;min-height:0;}
  .lspl{grid-template-columns:1fr;}.lspl-img{height:46vw;}.lspl-body{padding:4rem 3.5rem;}
  .nl-s{grid-template-columns:1fr;gap:3rem;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .pb{grid-template-columns:1fr;}
  .cs-wrap{grid-template-columns:1fr;}.cs-col{border-right:none;border-bottom:1px solid var(--line);}.cs-col:last-child{border-bottom:none;}
  .art-card{grid-template-columns:1fr 42px;}.art-num{display:none;}
  .art-mini{grid-template-columns:repeat(2,1fr);}
  .foot-soc{flex-wrap:wrap;}.foot-soc-a{flex:1 1 25%;}
}

/* ── Standard mobile (≤768px) ── */
@media(max-width:768px){
  :root{--nav-h:60px;}
  .nav{padding:0 1.4rem;}

  /* hero */
  .hero{grid-template-columns:1fr;min-height:0;height:auto;}
  .hero-l{padding:5vh 1.5rem 3.5vh;border-right:none;border-bottom:1px solid var(--line);}
  .hero-r{height:auto;grid-template-rows:58vw 108px;}
  .hi-wrap{height:58vw;min-height:220px;position:relative;}
  .hi-fill{height:100%;min-height:inherit;}
  .h1{font-size:clamp(3.8rem,14vw,6rem);}
  .h-desc{font-size:.78rem;max-width:100%;}

  /* sections */
  .sec{padding:4.5rem 1.5rem;}
  .articles-sec{padding:4.5rem 1.5rem;}
  .sec-hd{flex-direction:column;align-items:flex-start;gap:.9rem;}
  .s-title{font-size:clamp(1.8rem,7vw,2.5rem);}

  /* grids */
  .g3{grid-template-columns:1fr;}
  .m3{grid-template-columns:1fr 1fr;}
  .fsplit{grid-template-columns:1fr;}
  .fsc{flex-direction:column;height:auto;grid-template-columns:1fr;}

  /* large split */
  .lspl-img{height:55vw;}
  .lspl-body{padding:3rem 1.5rem;}
  .lspl-h{font-size:clamp(1.5rem,6vw,2.2rem);}
  .lspl-n{font-size:clamp(4rem,15vw,7rem);}

  /* h-scroll */
  .hsr-wrap{padding:0 1.5rem 4rem;}
  .hsc{flex:0 0 260px;}

  /* quote */
  .pullq{padding:6rem 1.5rem;}
  .pq-q{font-size:clamp(1.5rem,6vw,2.2rem);}

  /* newsletter */
  .nl-s{padding:4.5rem 1.5rem;gap:2.5rem;}
  .nl-title{font-size:clamp(2rem,8vw,3rem);}

  /* partner */
  .pb-img{min-height:200px;}
  .pb-body{padding:2.8rem 1.8rem;}
  .pb-title{font-size:clamp(1.6rem,7vw,2.2rem);}

  /* contact */
  .cs-col{padding:4rem 1.5rem;}
  .cs-col::before{font-size:8rem;right:-.5rem;}
  .cs-title{font-size:clamp(1.6rem,7vw,2.2rem);}

  /* articles */
  .art-h{font-size:1rem;}
  .art-excerpt{font-size:.7rem;}
  .art-mini{grid-template-columns:1fr 1fr;}
  .art-list{gap:0;}

  /* footer */
  .foot-grid{grid-template-columns:1fr;}
  .foot-col{padding:2.5rem 1.5rem;border-right:none;border-bottom:1px solid var(--line);}
  .foot-col:last-child{border-bottom:none;}
  .foot-bot{padding:1.2rem 1.5rem;flex-direction:column;align-items:flex-start;gap:.6rem;}
  .foot-soc-a{flex:1 1 50%;}
  .foot-soc-a:nth-child(2){border-right:none;}
  .foot-soc-a:nth-child(3){border-top:1px solid var(--line);}
  .foot-soc-a:nth-child(4){border-top:1px solid var(--line);border-right:none;}
}

/* ── Small mobile (≤480px) — covers mid-range phones ── */
@media(max-width:480px){
  :root{--nav-h:56px;}

  /* nav */
  .nav{padding:0 1.1rem;}
  .logo .lo,.logo .lv{font-size:1.2rem;letter-spacing:.22em;}
  .logo .la{font-size:.68rem;}
  .logo-tag{font-size:.3rem;letter-spacing:.28em;}
  .nc{gap:.65rem;}
  .tb{width:36px;height:19px;}
  .tt{width:11px;height:11px;}
  .hb-btn{width:30px;height:30px;}

  /* hero */
  .hero-l{padding:4vh 1.1rem 3vh;}
  .h1{font-size:clamp(3.2rem,16vw,4.8rem);}
  .h-ey{font-size:.48rem;}
  .h1 .h1-sm{font-size:.34em;letter-spacing:.14em;}
  .h-desc{font-size:.74rem;}
  .hero-r{grid-template-rows:55vw 100px;}
  .hi-wrap{height:55vw;min-height:200px;}
  .hs{padding:1.1rem;}
  .hs-title{font-size:.82rem;}
  .hi-title{font-size:1rem;}

  /* ticker */
  .tick-i{font-size:.48rem;padding:0 1.4rem;}

  /* sections */
  .sec{padding:3.5rem 1.1rem;}
  .articles-sec{padding:3.5rem 1.1rem;}
  .s-kicker{font-size:.44rem;}
  .s-title{font-size:clamp(1.6rem,9vw,2.2rem);}
  .see-all{font-size:.46rem;}

  /* feature split */
  .fsplit{grid-template-columns:1fr;}
  .fm-img{height:62vw;min-height:220px;}
  .fm-body{padding:1.8rem 1.4rem;}
  .fm-h{font-size:clamp(1.3rem,5.5vw,1.8rem);}
  .fm-p{font-size:.73rem;}
  .fsc{flex-direction:column;height:auto;}
  .fsc-i{padding:1.4rem 1.2rem;}
  .fsc-img{height:95px;}

  /* grids */
  .g3{gap:.9rem;}
  .gc-body{padding:1.1rem 1.2rem;}
  .gc-title{font-size:.93rem;}
  .gc-blurb{font-size:.68rem;}

  /* large split */
  .lspl-img{height:62vw;}
  .lspl-body{padding:2.4rem 1.1rem;}
  .lspl-h{font-size:clamp(1.3rem,6.5vw,1.9rem);}
  .lspl-p{font-size:.73rem;}

  /* h-scroll */
  .hsr-wrap{padding:0 1.1rem 3rem;}
  .hsc{flex:0 0 230px;}
  .hsc-img{height:155px;}

  /* articles */
  .art-card{gap:1.2rem;padding:1.6rem 0;}
  .art-h{font-size:.94rem;}
  .art-excerpt{display:none;}
  .art-mini{grid-template-columns:1fr;}
  .amc-title{font-size:.85rem;}

  /* quote */
  .pullq{padding:4.5rem 1.1rem;}
  .pq-m{font-size:7rem;}
  .pq-q{font-size:clamp(1.3rem,7vw,1.9rem);}
  .pq-by{gap:1rem;}
  .pq-by::before,.pq-by::after{width:24px;}

  /* models */
  .m3{grid-template-columns:1fr;gap:2rem;}
  .mc:nth-child(2) .mc-img{aspect-ratio:4/3;}
  .mc:nth-child(3){display:block;}

  /* newsletter */
  .nl-s{padding:3.5rem 1.1rem;}
  .nl-title{font-size:clamp(1.8rem,9vw,2.6rem);}
  .nl-inp{font-size:.72rem;padding:.9rem 1rem;}
  .nl-btn{padding:.9rem 1.2rem;font-size:.5rem;}

  /* partner */
  .pb-body{padding:2.2rem 1.2rem;}
  .pb-title{font-size:clamp(1.4rem,7.5vw,1.9rem);}
  .pb-desc{font-size:.73rem;}

  /* contact */
  .cs-col{padding:3rem 1.1rem;}
  .cs-title{font-size:clamp(1.4rem,7.5vw,1.9rem);}
  .cs-desc{font-size:.73rem;}
  .cs-btn{padding:.78rem 1.3rem;font-size:.52rem;}
  .cs-phone{font-size:1.3rem;}

  /* footer */
  .foot-col{padding:2rem 1.1rem;}
  .foot-bio{font-size:.66rem;max-width:100%;}
  .foot-soc-a{font-size:.5rem;padding:1.2rem .8rem;gap:.5rem;}
  .foot-soc-a svg{width:13px;height:13px;}
  .foot-bot{padding:1rem 1.1rem;}

  /* mobile menu */
  .mob-in{padding:calc(var(--nav-h) + 2.5rem) 1.5rem 2.5rem;}
  .mob-item a{font-size:clamp(2.2rem,12vw,3.8rem);}
}

/* ── Ultra-narrow / Z Fold folded (≤380px) ── */
@media(max-width:380px){
  :root{--nav-h:52px;}

  .nav{padding:0 .9rem;}
  .logo .lo,.logo .lv{font-size:1.05rem;letter-spacing:.18em;}
  .logo .la{font-size:.6rem;}
  .logo-tag{display:none;}
  .logo-line{margin-top:2px;}
  .nc{gap:.5rem;}
  .tb{width:32px;height:17px;}
  .tt{width:9px;height:9px;top:3px;left:3px;}
  [data-theme="light"] .tt{transform:translateX(15px);}
  .hb-btn{width:28px;height:28px;gap:4px;}
  .hb-line{width:13px;}

  /* hero tightened */
  .hero-l{padding:3.5vh .9rem 3vh;}
  .h1{font-size:clamp(2.8rem,17vw,4.2rem);}
  .h1 .h1-sm{font-size:.32em;letter-spacing:.1em;}
  .h-ey{font-size:.44rem;margin-bottom:1.4rem;}
  .hero-r{grid-template-rows:52vw 88px;}
  .hi-wrap{height:52vw;min-height:170px;}
  .hi-badge{bottom:1.2rem;left:1.2rem;right:1.2rem;}
  .hi-title{font-size:.88rem;}
  .hs{padding:.9rem;}
  .hs-tag{font-size:.42rem;}
  .hs-title{font-size:.76rem;}

  /* ticker */
  .tick-i{font-size:.42rem;padding:0 1rem;letter-spacing:.14em;}

  /* sections */
  .sec{padding:2.5rem .75rem;}
  .articles-sec{padding:2.5rem .75rem;}
  .sec-hd{margin-bottom:1.6rem;}
  .s-kicker{font-size:.42rem;}
  .s-title{font-size:clamp(1.4rem,10vw,1.9rem);}
  .see-all{font-size:.44rem;}

  /* feature */
  .fsplit{grid-template-columns:1fr;border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .fm-img{height:58vw;min-height:180px;}
  .fm-body{padding:1.5rem 1rem;}
  .fm-h{font-size:clamp(1.15rem,6vw,1.55rem);}
  .fm-p{font-size:.7rem;-webkit-line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}
  .fsc{flex-direction:column;height:auto;}
  .fsc-i{padding:1.2rem 1rem;}
  .fsc-img{height:80px;}
  .fsc-title{font-size:.84rem;}
  .fsc-n{display:none;}

  /* grids */
  .g3{grid-template-columns:1fr;gap:.7rem;}
  .gc-img{aspect-ratio:16/9;}
  .gc-body{padding:1rem;}
  .gc-title{font-size:.86rem;}
  .gc-blurb{font-size:.65rem;}
  .gc-blurb{font-size:.65rem;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}

  /* h-scroll */
  .hsr-wrap{padding:0 .9rem 2.5rem;}
  .hsc{flex:0 0 210px;}
  .hsc-img{height:140px;}
  .hsc-title{font-size:.82rem;}

  /* articles */
  .art-card{grid-template-columns:1fr 36px;gap:.9rem;padding:1.4rem 0;}
  .art-arr{width:32px;height:32px;font-size:.62rem;}
  .art-h{font-size:.88rem;}
  .art-cat{font-size:.42rem;}
  .art-byline{font-size:.4rem;}

  /* pull quote */
  .pullq{padding:3.5rem .9rem;}
  .pq-q{font-size:clamp(1.15rem,7.5vw,1.6rem);line-height:1.45;}

  /* newsletter */
  .nl-s{padding:3rem .9rem;gap:2rem;}
  .nl-title{font-size:clamp(1.6rem,10vw,2.2rem);}
  .nl-row{flex-direction:column;border:none;gap:.7rem;}
  .nl-inp{border:1px solid var(--line2);padding:.9rem 1rem;font-size:.72rem;}
  .nl-btn{border:1px solid var(--line2);border-left:1px solid var(--line2);padding:.9rem;font-size:.5rem;text-align:center;}
  .nl-perks{gap:.6rem 1.2rem;}

  /* partner */
  .pb-img{min-height:160px;}
  .pb-body{padding:2rem .9rem;}
  .pb-title{font-size:clamp(1.3rem,8vw,1.7rem);}
  .pb-btn{font-size:.5rem;padding:.7rem 1.1rem;}

  /* contact */
  .cs-col{padding:2.5rem .9rem;}
  .cs-col::before{display:none;}
  .cs-title{font-size:clamp(1.3rem,8vw,1.7rem);}
  .cs-phone{font-size:1.15rem;}

  /* models */
  .mc-name{font-size:1.15rem;}
  .mc-bio{font-size:.65rem;}

  /* footer */
  .foot-col{padding:1.8rem .9rem;}
  .foot-soc-a{padding:1rem .7rem;gap:.4rem;font-size:.46rem;}
  .foot-logo-wrap .logo.lg .lo,.foot-logo-wrap .logo.lg .lv{font-size:1.7rem;}
  .foot-logo-wrap .logo.lg .la{font-size:.85rem;}
  .foot-bot{flex-direction:column;gap:.45rem;padding:.9rem;}
  .foot-copy,.foot-domain{font-size:.48rem;}
  .foot-legal{gap:1rem;}
  .foot-legal a{font-size:.46rem;}

  /* mobile menu */
  .mob-in{padding:calc(var(--nav-h) + 2rem) 1.1rem 2rem;}
  .mob-item a{font-size:clamp(2rem,13vw,3.2rem);}
  .mob-socs{gap:1rem;}
  .mob-soc{font-size:.5rem;}
}

/* ── Z Fold 6 inner unfolded (600px–900px) — tablet-tall ── */
@media(min-width:600px) and (max-width:900px){
  .hero{grid-template-columns:1fr;}
  .hero-l{border-right:none;border-bottom:1px solid var(--line);padding:6vh 2rem 4vh;}
  .hero-r{grid-template-rows:45vw 120px;}
  .hi-wrap{height:45vw;min-height:280px;}
  .h1{font-size:clamp(4rem,11vw,6.5rem);}
  .g3{grid-template-columns:repeat(2,1fr);}
  .m3{grid-template-columns:repeat(3,1fr);}
  .mc:nth-child(3){display:block;}
  .fsplit{grid-template-columns:1fr;}
  .fsc{flex-direction:row;flex-wrap:nowrap;}
  .fsc-i{flex:1;}
  .lspl{grid-template-columns:1fr;}
  .lspl-img{height:40vw;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .foot-soc-a{flex:1 1 25%;}
}

/* ── Prevent horizontal overflow globally ── */
html, body { max-width:100%; overflow-x:hidden; }
img, svg, video, canvas { max-width:100%; }
.hsr { -webkit-overflow-scrolling:touch; }
/* Ensure all padding is safe on very narrow screens */
@media(max-width:380px){
  * { word-break:break-word; }
  .nl-perks .nl-pk{ min-width:0; }
}
/* ── Image display improvements v1.2 ── */
/* Ensure all WP thumbnail images fill their container correctly */
.fm-img img,
.fsc-img img,
.gc-img img,
.hsc-img img,
.hi-wrap img,
.lspl-img img,
.mc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 1.1s var(--ease);
}
/* Hover zoom on images */
.fm:hover .fm-img img,
.gc:hover .gc-img img,
.hsc:hover .hsc-img img,
.lspl:hover .lspl-img img,
.mc:hover .mc-img img { transform: scale(1.05); }
.hi-wrap:hover img { transform: scale(1.04); }

/* Single post featured image — generous height, shows full outfit */
.art-feat-img {
  width: 100%;
  max-height: 80vh;
  overflow: hidden;
  position: relative;
  background: var(--bg3);
  display: block;
}
.art-feat-img img {
  width: 100%;
  max-height: 80vh;
  object-fit: cover;
  object-position: top center;
  display: block;
}

/* Featured stories split — fix right side cards not appearing */
.fsplit { display:grid; grid-template-columns:3fr 2fr; border:1px solid var(--line); min-height:0; }
.fsc { display:flex; flex-direction:column; border-left:1px solid var(--line); }
.fsc-i { flex:1; padding:1.8rem 2rem; border-bottom:1px solid var(--line); position:relative; overflow:hidden; cursor:pointer; transition:background .3s; display:flex; flex-direction:column; }
.fsc-i:last-child { border-bottom:none; }
.fsc-i:hover { background:var(--bg3); }

/* Hero panel — image must fill the full right panel height */
/* hero-r rules are defined above in base styles */

/* Sidebar thumbnails in single post */
.sidebar-thumb img {
  width: 60px;
  height: 60px;
  object-fit: cover;
  object-position: top center;
  display: block;
}


/* ══════════════════════════════════════════════════════
   ABOUT & CONTACT PAGE STYLES
   Applied via page-fullwidth.php template
══════════════════════════════════════════════════════ */

.ov-about, .ov-contact {
  padding-top: var(--nav-h, 70px);
  width: 100%;
  display: block;
}

/* ── ABOUT HERO ── */
.ov-about-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
  width: 100%;
  border-bottom: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.ov-about-hero-glow {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 60% 70% at 10% 55%, rgba(122,42,72,.05) 0%, transparent 60%),
    radial-gradient(ellipse 50% 60% at 90% 28%, rgba(106,74,24,.04) 0%, transparent 60%);
}
.ov-about-hero-l {
  position: relative; z-index: 1;
  padding: 12vh 8rem;
  display: flex; flex-direction: column; justify-content: center; gap: 2.5rem;
  border-right: 1px solid var(--line);
  box-sizing: border-box;
}
.ov-about-hero-r {
  position: relative; z-index: 1;
  overflow: hidden; min-height: 100vh;
  background:
    radial-gradient(ellipse at 35% 65%, rgba(160,90,120,.22) 0%, transparent 52%),
    radial-gradient(ellipse at 78% 20%, rgba(140,158,196,.14) 0%, transparent 50%),
    linear-gradient(152deg, #1c0a16, #0e142a 55%, #120a10);
  display: flex; align-items: center; justify-content: center;
}
.ov-about-hero-r img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: top center; display: block;
}
.ov-about-vol {
  font-size: .56rem; font-weight: 400; letter-spacing: .28em;
  text-transform: uppercase; color: var(--text3);
  display: flex; align-items: center; gap: 1rem;
}
.ov-about-vol::before { content: ''; width: 28px; height: 1px; background: currentColor; display: block; flex-shrink: 0; }
.ov-about-ey {
  font-size: .6rem; font-weight: 400; letter-spacing: .28em;
  text-transform: uppercase; color: var(--rose);
  display: flex; align-items: center; gap: .8rem; margin-bottom: 1.8rem;
}
.ov-about-ey::before { content: ''; width: 28px; height: 1px; background: currentColor; display: block; flex-shrink: 0; }
.ov-about-h1 {
  font-family: 'Italiana', Georgia, serif !important;
  font-size: clamp(4rem, 5.5vw, 7.5rem) !important;
  line-height: .92 !important; color: var(--text) !important;
  margin: 0 !important; font-weight: 400 !important;
}
.ov-about-h1-it {
  font-family: 'Cormorant', Georgia, serif !important;
  font-style: italic !important; font-weight: 400 !important;
  color: var(--rose) !important; display: block; font-size: .72em; margin-left: .06em;
}
.ov-about-h1-sm {
  font-size: .26em !important; display: block !important;
  font-family: 'Jost', Arial, sans-serif !important; font-weight: 300 !important;
  letter-spacing: .3em !important; text-transform: uppercase !important;
  color: var(--text3) !important; margin-top: 1.6rem !important; line-height: 1.1 !important;
}
.ov-about-desc {
  font-size: .96rem; font-weight: 400; color: var(--text2); line-height: 1.95; max-width: 460px;
}
.ov-about-hero-stat-strip {
  position: absolute; bottom: 0; left: 0; right: 0;
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  border-top: 1px solid rgba(255,255,255,.08);
  background: rgba(7,5,9,.62);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.ov-about-stat { padding: 1.6rem 2rem; border-right: 1px solid rgba(255,255,255,.07); text-align: center; }
.ov-about-stat:last-child { border-right: none; }
.ov-about-stat-n { font-family: 'Italiana', Georgia, serif; font-size: 2.2rem; color: #d4b4c4; line-height: 1; display: block; margin-bottom: .3rem; }
.ov-about-stat-l { font-size: .44rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: rgba(240,236,246,.42); }

/* ── SHARED TWO-COL ── */
.ov-two-col { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); width: 100%; }
.ov-col-l { padding: 9rem 8rem; border-right: 1px solid var(--line); box-sizing: border-box; }
.ov-col-r { padding: 9rem 8rem; box-sizing: border-box; }
.ov-section-kicker {
  font-size: .54rem; font-weight: 400; letter-spacing: .28em; text-transform: uppercase;
  color: var(--text3); display: flex; align-items: center; gap: .65rem; margin-bottom: 1.8rem;
}
.ov-section-kicker::before { content: ''; width: 20px; height: 1px; background: currentColor; display: block; flex-shrink: 0; }
.ov-section-title {
  font-family: 'Italiana', Georgia, serif !important;
  font-size: clamp(2.4rem, 3.2vw, 3.6rem) !important;
  letter-spacing: .02em !important; line-height: 1.05 !important;
  color: var(--text) !important; margin: 0 0 2.5rem !important; font-weight: 400 !important;
}
.ov-section-title em { font-family: 'Cormorant', Georgia, serif !important; font-style: italic !important; color: var(--rose) !important; }
.ov-body-text { font-size: .96rem; font-weight: 400; color: var(--text2); line-height: 1.95; margin-bottom: 1.5rem; }
.ov-body-text:last-child { margin-bottom: 0; }
.ov-body-text a { color: var(--rose) !important; border-bottom: 1px solid rgba(122,42,72,.25); text-decoration: none !important; }
.ov-rule { width: 100%; height: 1px; background: linear-gradient(90deg, transparent, var(--rose) 35%, var(--gold) 65%, transparent); opacity: .25; border: none; margin: 2.8rem 0; }

/* Company info table */
.ov-info-table { display: flex; flex-direction: column; margin-bottom: 2.5rem; }
.ov-info-row { display: grid; grid-template-columns: 180px 1fr; gap: 1rem 2rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); align-items: start; }
.ov-info-row:last-child { border-bottom: none; }
.ov-info-label { font-size: .48rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--text3); padding-top: .18rem; }
.ov-info-value { font-size: .9rem; font-weight: 400; color: var(--text); line-height: 1.7; }
.ov-info-value a { color: var(--rose) !important; text-decoration: none !important; }

/* ── PILLARS ── */
.ov-pillars { display: grid; grid-template-columns: 1fr 1fr 1fr; border-bottom: 1px solid var(--line); background: var(--bg3); width: 100%; }
.ov-pillar { padding: 6rem 5rem; border-right: 1px solid var(--line); position: relative; overflow: hidden; box-sizing: border-box; }
.ov-pillar:last-child { border-right: none; }
.ov-pillar-n { font-family: 'Italiana', Georgia, serif; font-size: 7rem; color: var(--rose); opacity: .06; position: absolute; top: 1.5rem; right: 2rem; line-height: 1; pointer-events: none; }
.ov-pillar-icon { width: 52px; height: 52px; border: 1px solid var(--line2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: 2rem; }
.ov-pillar-title { font-family: 'Cormorant', Georgia, serif !important; font-size: 1.45rem !important; font-style: italic !important; font-weight: 400 !important; color: var(--text) !important; margin: 0 0 1.1rem !important; line-height: 1.3 !important; }
.ov-pillar-body { font-size: .88rem; font-weight: 400; color: var(--text2); line-height: 1.9; }

/* ── SERVICES ── */
.ov-services { display: flex; flex-direction: column; }
.ov-service { padding: 2.2rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 56px 1fr; gap: 1.6rem; align-items: start; transition: padding-left .35s var(--ease); }
.ov-service:last-child { border-bottom: none; }
.ov-service:hover { padding-left: .6rem; }
.ov-service-num { font-family: 'Italiana', Georgia, serif; font-size: 2.2rem; color: var(--rose); opacity: .2; line-height: 1; padding-top: .1rem; }
.ov-service-title { font-family: 'Cormorant', Georgia, serif !important; font-size: 1.12rem !important; font-style: italic !important; font-weight: 400 !important; color: var(--text) !important; margin: 0 0 .5rem !important; line-height: 1.3 !important; }
.ov-service-body { font-size: .84rem; font-weight: 400; color: var(--text2); line-height: 1.85; }

/* ── PULL QUOTE ── */
.ov-pullquote { padding: 10rem 8rem; text-align: center; position: relative; overflow: hidden; border-bottom: 1px solid var(--line); width: 100%; box-sizing: border-box; }
.ov-pullquote::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 65% 60% at 50% 50%, rgba(122,42,72,.04) 0%, transparent 65%); }
.ov-pq-mark { font-family: 'Italiana', Georgia, serif; font-size: 10rem; line-height: .3; color: var(--rose); opacity: .1; display: block; margin-bottom: 2rem; }
.ov-pq-text { font-family: 'Cormorant', Georgia, serif !important; font-size: clamp(2rem, 3.4vw, 3.2rem) !important; font-weight: 400 !important; font-style: italic !important; line-height: 1.52 !important; max-width: 860px !important; margin: 0 auto 2.5rem !important; color: var(--text) !important; }
.ov-pq-by { font-size: .54rem; font-weight: 400; letter-spacing: .3em; text-transform: uppercase; color: var(--text3); display: inline-flex; align-items: center; gap: 2rem; }
.ov-pq-by::before, .ov-pq-by::after { content: ''; display: block; width: 44px; height: 1px; background: var(--line2); }

/* ── PARTNER CARD ── */
.ov-partner-card { border: 1px solid var(--line2); background: var(--bg2); padding: 3.5rem; display: flex; flex-direction: column; gap: 1.6rem; }
.ov-partner-label { font-size: .52rem; font-weight: 400; letter-spacing: .28em; text-transform: uppercase; color: var(--gold); display: flex; align-items: center; gap: .55rem; }
.ov-partner-label::before { content: ''; width: 14px; height: 1px; background: currentColor; display: block; }
.ov-partner-name { font-family: 'Italiana', Georgia, serif !important; font-size: 2.8rem !important; letter-spacing: .02em !important; color: var(--text) !important; margin: 0 !important; font-weight: 400 !important; line-height: 1.05 !important; }
.ov-partner-desc { font-size: .9rem; font-weight: 400; color: var(--text2); line-height: 1.9; }
.ov-partner-link { display: inline-flex; align-items: center; gap: .6rem; font-size: .58rem; font-weight: 400; letter-spacing: .18em; text-transform: uppercase; color: var(--gold) !important; border: 1px solid rgba(106,74,24,.3); padding: .85rem 1.6rem; transition: border-color .25s, background .25s; width: fit-content; text-decoration: none !important; }
.ov-partner-link:hover { border-color: var(--gold); background: rgba(106,74,24,.05); }

/* ── CTA SECTION ── */
.ov-cta-wrap { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); width: 100%; }
.ov-cta-col { padding: 9rem 8rem; position: relative; overflow: hidden; box-sizing: border-box; }
.ov-cta-col:first-child { border-right: 1px solid var(--line); }
.ov-cta-col::before { content: attr(data-n); position: absolute; right: -1rem; top: 50%; transform: translateY(-50%); font-family: 'Italiana', Georgia, serif; font-size: 14rem; color: var(--rose); opacity: .025; pointer-events: none; line-height: 1; }
.ov-cta-k { font-size: .54rem; font-weight: 400; letter-spacing: .28em; text-transform: uppercase; color: var(--rose); display: flex; align-items: center; gap: .55rem; margin-bottom: 1.4rem; }
.ov-cta-k::before { content: ''; width: 16px; height: 1px; background: currentColor; display: block; }
.ov-cta-title { font-family: 'Italiana', Georgia, serif !important; font-size: clamp(2rem, 3vw, 2.9rem) !important; letter-spacing: .02em !important; line-height: 1.08 !important; color: var(--text) !important; margin: 0 0 1.4rem !important; font-weight: 400 !important; }
.ov-cta-desc { font-size: .92rem; font-weight: 400; color: var(--text2); line-height: 1.92; max-width: 420px; margin-bottom: 2.8rem; }
.ov-cta-btn { display: inline-flex; align-items: center; gap: .75rem; padding: 1rem 1.9rem; border: 1px solid var(--line3); font-size: .58rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--text) !important; transition: border-color .3s, background .3s, color .3s; width: fit-content; text-decoration: none !important; font-family: 'Jost', Arial, sans-serif; background: transparent; cursor: pointer; }
.ov-cta-btn:hover { border-color: var(--rose); background: rgba(122,42,72,.05); color: var(--rose) !important; }
.ov-cta-phone { display: flex; align-items: center; gap: .8rem; font-family: 'Cormorant', Georgia, serif; font-size: 1.7rem; font-weight: 400; font-style: italic; color: var(--text); margin-bottom: .5rem; }
.ov-cta-note { font-size: .58rem; font-weight: 400; letter-spacing: .1em; color: var(--text3); margin-bottom: 2.2rem; display: block; }

/* ══════════════════════════
   CONTACT PAGE
══════════════════════════ */
.ov-contact-hero { padding: 12rem 8rem 10rem; border-bottom: 1px solid var(--line); position: relative; overflow: hidden; width: 100%; box-sizing: border-box; }
.ov-contact-hero::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 55% 70% at 8% 50%, rgba(122,42,72,.05) 0%, transparent 60%), radial-gradient(ellipse 45% 60% at 92% 30%, rgba(106,74,24,.04) 0%, transparent 60%); }
.ov-contact-hero-inner { position: relative; z-index: 1; max-width: 780px; }
.ov-contact-h1 { font-family: 'Italiana', Georgia, serif !important; font-size: clamp(5rem, 10vw, 10rem) !important; line-height: .88 !important; color: var(--text) !important; margin: 1.5rem 0 2.5rem !important; font-weight: 400 !important; }
.ov-contact-h1 em { font-family: 'Cormorant', Georgia, serif !important; font-style: italic !important; color: var(--rose) !important; }
.ov-contact-intro { font-size: 1rem; font-weight: 400; color: var(--text2); line-height: 1.95; max-width: 600px; }
.ov-contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; border-bottom: 1px solid var(--line); width: 100%; }
.ov-contact-info { padding: 8rem; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 4.5rem; box-sizing: border-box; }
.ov-contact-form-wrap { padding: 8rem; background: var(--bg3); box-sizing: border-box; }
.ov-contact-block-label { font-size: .54rem; font-weight: 400; letter-spacing: .28em; text-transform: uppercase; color: var(--rose); display: flex; align-items: center; gap: .6rem; margin-bottom: 1.3rem; }
.ov-contact-block-label::before { content: ''; width: 18px; height: 1px; background: currentColor; display: block; flex-shrink: 0; }
.ov-contact-block-title { font-family: 'Cormorant', Georgia, serif !important; font-size: 1.4rem !important; font-style: italic !important; font-weight: 400 !important; color: var(--text) !important; margin: 0 0 1.4rem !important; line-height: 1.3 !important; }
.ov-contact-row { display: flex; align-items: flex-start; gap: 1.1rem; font-size: .9rem; font-weight: 400; color: var(--text2); line-height: 1.7; }
.ov-contact-row svg { flex-shrink: 0; margin-top: .2rem; opacity: .5; }
.ov-contact-row a { color: var(--rose) !important; text-decoration: none !important; }
.ov-address-card { background: var(--bg2); border: 1px solid var(--line2); padding: 2.2rem 2.5rem; display: flex; flex-direction: column; gap: 1.2rem; }
.ov-address-label { font-size: .46rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--text3); display: block; margin-bottom: .3rem; }
.ov-address-line { font-size: .9rem; font-weight: 400; color: var(--text2); line-height: 1.75; }
.ov-map-link { display: inline-flex; align-items: center; gap: .45rem; font-size: .54rem; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--rose) !important; text-decoration: none !important; margin-top: .4rem; }
.ov-contact-divider { width: 100%; height: 1px; background: var(--line); border: none; margin: 0; }
.ov-contact-socials { display: flex; flex-direction: column; }
.ov-social-row { display: flex; align-items: center; gap: 1.2rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); text-decoration: none !important; transition: padding-left .32s var(--ease); }
.ov-social-row:last-child { border-bottom: none; }
.ov-social-row:hover { padding-left: .6rem; }
.ov-social-icon { width: 40px; height: 40px; border: 1px solid var(--line2); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: border-color .25s, background .25s; }
.ov-social-row:hover .ov-social-icon { border-color: var(--rose); background: rgba(122,42,72,.05); }
.ov-social-icon svg { fill: var(--text2); width: 15px; height: 15px; }
.ov-social-name { font-size: .9rem; font-weight: 400; color: var(--text); flex: 1; }
.ov-social-handle { font-size: .56rem; font-weight: 400; letter-spacing: .14em; color: var(--text3); }
.ov-form-title { font-family: 'Italiana', Georgia, serif !important; font-size: clamp(2rem, 3vw, 2.9rem) !important; letter-spacing: .02em !important; line-height: 1.08 !important; color: var(--text) !important; margin: 0 0 .7rem !important; font-weight: 400 !important; }
.ov-form-title em { font-family: 'Cormorant', Georgia, serif !important; font-style: italic !important; color: var(--rose) !important; }
.ov-form-subtitle { font-size: .88rem; font-weight: 400; color: var(--text2); line-height: 1.88; margin-bottom: 3rem; }
.ov-enquiry-tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 2.8rem; }
.ov-tab { font-size: .52rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; padding: .6rem 1.2rem; border: 1px solid var(--line2); color: var(--text2); background: transparent; cursor: pointer; transition: all .25s; font-family: 'Jost', Arial, sans-serif; }
.ov-tab:hover, .ov-tab.active { border-color: var(--rose); color: var(--rose); background: rgba(122,42,72,.04); }
.ov-form { display: flex; flex-direction: column; gap: 1.5rem; }
.ov-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.ov-field { display: flex; flex-direction: column; gap: .55rem; }
.ov-field-label { font-size: .5rem; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--text3); }
.ov-field input, .ov-field select, .ov-field textarea { width: 100%; padding: 1rem 1.3rem; background: var(--bg2); border: 1px solid var(--line2); color: var(--text); font-family: 'Jost', Arial, sans-serif; font-size: .9rem; font-weight: 400; outline: none; transition: border-color .25s; -webkit-appearance: none; border-radius: 0; box-sizing: border-box; }
.ov-field input:focus, .ov-field select:focus, .ov-field textarea:focus { border-color: var(--rose); }
.ov-field input::placeholder, .ov-field textarea::placeholder { color: var(--text3); }
.ov-field textarea { resize: vertical; min-height: 140px; line-height: 1.7; }
.ov-field select { cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23160e1e' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1.2rem center; padding-right: 3rem; }
.ov-form-submit { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.2rem; padding-top: .5rem; }
.ov-submit-btn { display: inline-flex; align-items: center; gap: .85rem; padding: 1.05rem 2.4rem; background: var(--text); border: 1px solid var(--text); color: var(--bg) !important; font-family: 'Jost', Arial, sans-serif; font-size: .58rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; transition: background .3s, border-color .3s; }
.ov-submit-btn:hover { background: var(--rose); border-color: var(--rose); }
.ov-submit-note { font-size: .56rem; font-weight: 400; color: var(--text3); letter-spacing: .08em; }
.ov-contact-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); background: var(--bg3); width: 100%; }
.ov-strip-item { padding: 3.2rem 4rem; border-right: 1px solid var(--line); box-sizing: border-box; }
.ov-strip-item:last-child { border-right: none; }
.ov-strip-label { font-size: .48rem; font-weight: 400; letter-spacing: .24em; text-transform: uppercase; color: var(--text3); margin-bottom: .8rem; display: flex; align-items: center; gap: .5rem; }
.ov-strip-label::before { content: ''; width: 12px; height: 1px; background: var(--rose); display: block; }
.ov-strip-value { font-family: 'Cormorant', Georgia, serif; font-size: 1.12rem; font-style: italic; font-weight: 400; color: var(--text); line-height: 1.4; }
.ov-strip-sub { font-size: .72rem; font-weight: 400; color: var(--text2); margin-top: .35rem; line-height: 1.5; }

/* ── RESPONSIVE ── */
@media(max-width:1280px){
  .ov-about-hero-l,.ov-col-l,.ov-col-r,.ov-cta-col,.ov-contact-info,.ov-contact-form-wrap,.ov-contact-hero,.ov-pullquote{padding-left:5rem;padding-right:5rem;}
  .ov-strip-item{padding:3rem 2.8rem;}
  .ov-pillar{padding:5rem 4rem;}
}
@media(max-width:1024px){
  .ov-about-hero,.ov-two-col,.ov-contact-grid,.ov-cta-wrap{grid-template-columns:1fr;}
  .ov-about-hero-l{border-right:none;border-bottom:1px solid var(--line);}
  .ov-about-hero-r{min-height:55vw;}
  .ov-col-l{border-right:none;border-bottom:1px solid var(--line);}
  .ov-cta-col:first-child{border-right:none;border-bottom:1px solid var(--line);}
  .ov-contact-info{border-right:none;border-bottom:1px solid var(--line);}
  .ov-pillars{grid-template-columns:1fr 1fr;}
  .ov-contact-strip{grid-template-columns:1fr 1fr;}
  .ov-strip-item:nth-child(2){border-right:none;}
  .ov-strip-item:nth-child(3){border-top:1px solid var(--line);}
  .ov-strip-item:nth-child(4){border-top:1px solid var(--line);border-right:none;}
}
@media(max-width:768px){
  .ov-about-hero-l,.ov-col-l,.ov-col-r,.ov-cta-col,.ov-contact-info,.ov-contact-form-wrap,.ov-contact-hero,.ov-pullquote{padding:5.5rem 2.5rem;}
  .ov-pillars{grid-template-columns:1fr;}
  .ov-pillar{padding:4rem 2.5rem;border-right:none;border-bottom:1px solid var(--line);}
  .ov-pillar:last-child{border-bottom:none;}
  .ov-contact-strip{grid-template-columns:1fr;}
  .ov-strip-item{border-right:none;border-bottom:1px solid var(--line);padding:3rem 2.5rem;}
  .ov-strip-item:last-child{border-bottom:none;}
  .ov-form-row{grid-template-columns:1fr;}
  .ov-info-row{grid-template-columns:1fr;gap:.4rem;}
}
@media(max-width:480px){
  .ov-about-hero-l,.ov-col-l,.ov-col-r,.ov-cta-col,.ov-contact-info,.ov-contact-form-wrap,.ov-contact-hero,.ov-pullquote{padding:4rem 1.4rem;}
  .ov-pillar,.ov-strip-item{padding:3rem 1.4rem;}
  .ov-partner-card{padding:2.5rem 1.8rem;}
}

/* Featured split — full width when only one post exists */
.fsplit-solo { grid-template-columns: 1fr; }
.fsplit-solo .fm { border-right: none; }
.fsplit-solo .fm-img { height: 65vh; min-height: 380px; }
.fsplit-solo .fm-body { max-width: 760px; padding: 3.5rem 4rem; }
.fsplit-solo .fm-h { font-size: clamp(2rem, 3.5vw, 3rem); }
.fsplit-solo .fm-p { font-size: .96rem; max-width: 600px; }

/* ══════════════════════════════════════════
   DESKTOP NAV DROPDOWN — Wedding sub-cats
══════════════════════════════════════════ */
.nl-drop-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  /* Extend the hover zone downward so mouse travel to dropdown
     doesn't break the hover state */
  padding-bottom: 14px;
  margin-bottom: -14px;
}
.nl-has-drop {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  cursor: pointer;
}
.nl-arrow {
  font-size: .55rem;
  opacity: .6;
  transition: transform .25s;
}
.nl-drop-wrap:hover .nl-arrow {
  transform: rotate(180deg);
}
.nl-dropdown {
  position: absolute;
  /* Sit flush against the nav bar bottom — no gap.
     Use padding-top to create visual spacing instead. */
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-4px);
  min-width: 230px;
  background: var(--bg2);
  border: 1px solid var(--line2);
  border-top: 2px solid var(--rose);
  /* Top padding creates the visual gap without a
     mouse-escape zone — mouse stays inside the element */
  padding: 1rem 0 .6rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* Slightly longer close delay so cursor has time to travel */
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  z-index: 800;
  box-shadow: 0 12px 40px rgba(0,0,0,.14);
}
/* Invisible bridge — fills the space between nav link and dropdown
   so the mouse never leaves the hover zone while travelling down */
.nl-dropdown::after {
  content: '';
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
  background: transparent;
}
/* The visible top pointer arrow */
.nl-dropdown::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid var(--rose);
}
.nl-drop-wrap:hover .nl-dropdown,
.nl-drop-wrap:focus-within .nl-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  transform: translateX(-50%) translateY(0);
  /* Override visibility delay on open */
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear 0s;
}
.nl-drop-item {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .85rem 1.4rem;
  font-size: .6rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text2);
  transition: color .2s, background .2s, padding-left .25s;
  white-space: nowrap;
}
.nl-drop-item:hover {
  color: var(--rose);
  background: var(--bg3);
  padding-left: 1.8rem;
}
.nl-drop-arrow {
  font-size: .6rem;
  opacity: .4;
  transition: opacity .2s, transform .2s;
}
.nl-drop-item:hover .nl-drop-arrow {
  opacity: 1;
  transform: translateX(3px);
}

/* ══════════════════════════════════════════
   MOBILE CLOSE BUTTON
══════════════════════════════════════════ */
.mob-close {
  position: fixed;
  top: calc(var(--nav-h)/2);
  right: 1.8rem;
  transform: translateY(-50%);
  z-index: 900;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line2);
  background: transparent;
  color: var(--text);
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s, background .25s;
}
.mob.on .mob-close {
  opacity: 1;
  pointer-events: all;
}
.mob-close:hover { background: var(--bg3); }

/* ══════════════════════════════════════════
   MOBILE MENU — WEDDING SUB-CATEGORIES
══════════════════════════════════════════ */
.mob-item-has-sub {
  position: relative;
}
.mob-item-main {
  flex: 1;
}
/* No extra padding needed — toggle sits inline beside the number */
.mob-item-has-sub > a {
  padding-right: 0 !important;
}
/* Wrap the number + toggle together on the right */
.mob-num-wrap {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  flex-shrink: 0;
}
.mob-sub-toggle {
  /* Inline — not absolute */
  position: static;
  transform: none;
  width: 26px; height: 26px;
  border: 1px solid var(--line2);
  border-radius: 50%;
  background: transparent;
  color: var(--rose);
  font-size: .7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .3s, background .25s;
  flex-shrink: 0;
  line-height: 1;
}
.mob-item-has-sub.open .mob-sub-toggle {
  transform: rotate(180deg);
  background: var(--bg3);
}
.mob-sub {
  list-style: none;
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s cubic-bezier(.19,1,.22,1);
  padding-left: 0;
  margin: 0;
}
.mob-item-has-sub.open .mob-sub {
  max-height: 200px;
}
.mob-sub li {
  border-top: 1px solid var(--line);
}
.mob-sub li a {
  display: flex !important;
  align-items: center !important;
  font-size: clamp(1.1rem,5vw,1.6rem) !important;
  font-weight: 400 !important;
  padding: .6rem 1.2rem !important;
  color: var(--rose) !important;
  letter-spacing: .04em !important;
  transform: none !important;
  transition: color .2s !important;
  opacity: 1 !important;
}
.mob-sub li a::before {
  content: '→';
  margin-right: .6rem;
  font-size: .8em;
  opacity: .6;
  font-style: normal;
  font-family: 'Jost', sans-serif;
}
.mob-sub li a:hover { color: var(--text) !important; }

/* Tighten mob-item font size on small screens with many items */
@media(max-width:480px) {
  .mob-item a { font-size:clamp(1.9rem,10vw,3.2rem) !important; }
}
@media(max-width:380px) {
  .mob-item a { font-size:clamp(1.7rem,11vw,2.8rem) !important; }
  .mob-in { padding:calc(var(--nav-h) + 2rem) 1rem 2rem; }
}

/* ══════════════════════════════════════════
   WORDPRESS ADMIN BAR COMPATIBILITY
   When logged in, WP adds 32px bar at top.
   Push our fixed nav down so they don't overlap.
══════════════════════════════════════════ */
.admin-bar .nav {
  top: 32px;
}
.admin-bar .mob {
  top: calc(32px + var(--nav-h));
  height: calc(100vh - 32px - var(--nav-h));
}
/* WP shrinks admin bar to 46px on mobile */
@media screen and (max-width: 782px) {
  .admin-bar .nav {
    top: 46px;
  }
  .admin-bar .mob {
    top: calc(46px + var(--nav-h));
    height: calc(100vh - 46px - var(--nav-h));
  }
}
/* WP hides admin bar entirely below 600px */
@media screen and (max-width: 600px) {
  .admin-bar .nav {
    top: 0;
  }
  .admin-bar .mob {
    top: var(--nav-h);
    height: calc(100vh - var(--nav-h));
  }
}

/* ══════════════════════════════════════════
   VIDEO SECTION
══════════════════════════════════════════ */

/* Grid — 3 col desktop, 2 tablet, 1 mobile */
.vid-sec { padding-bottom: 0; }
.vid-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
}

/* Card */
.vid-card {
  position: relative;
  cursor: pointer;
  border: 1px solid var(--line);
  overflow: hidden;
  transition: border-color .3s;
}
.vid-card:hover { border-color: var(--rose); }

/* Thumbnail */
.vid-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--bg3);
}
.vid-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 1.1s var(--ease);
}
.vid-card:hover .vid-thumb img { transform: scale(1.05); }
.vid-thumb-fallback {
  width: 100%; height: 100%;
}

/* Play button */
.vid-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background .3s;
}
.vid-card:hover .vid-play { background: rgba(0,0,0,.15); }
.vid-play-icon {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 32px rgba(0,0,0,.22);
  transition: transform .3s var(--ease), background .3s;
}
.vid-card:hover .vid-play-icon {
  transform: scale(1.1);
  background: #fff;
}
.vid-play-icon svg {
  width: 26px; height: 26px;
  fill: var(--rose);
  margin-left: 3px; /* optical centre for play triangle */
}

/* Duration badge */
.vid-dur {
  position: absolute;
  bottom: .6rem;
  right: .7rem;
  background: rgba(0,0,0,.72);
  color: #fff;
  font-size: .5rem;
  font-weight: 500;
  font-family: 'Jost', sans-serif;
  letter-spacing: .1em;
  padding: .25rem .55rem;
  border-radius: 3px;
}

/* Card info */
.vid-info {
  padding: 1.1rem 1.3rem 1.4rem;
  background: var(--bg2);
}
.vid-label {
  font-size: .48rem;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: .45rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.vid-label::before {
  content: '';
  width: 12px; height: 1px;
  background: var(--rose);
  display: block;
}
.vid-title {
  font-family: 'Cormorant', Georgia, serif;
  font-size: 1.05rem;
  font-style: italic;
  font-weight: 400;
  color: var(--text);
  line-height: 1.35;
}

/* ── Lightbox overlay ── */
.vid-frame {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(0,0,0,.92);
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.vid-frame.on {
  display: flex;
  animation: vidFadeIn .25s ease;
}
@keyframes vidFadeIn {
  from { opacity:0; }
  to   { opacity:1; }
}
.vid-frame iframe,
.vid-frame video {
  width: min(900px, 90vw);
  height: min(506px, 50.6vw);
  max-height: 80vh;
  border: none;
  display: block;
  background: #000;
}
.vid-close {
  position: absolute;
  top: 1.2rem;
  right: 1.5rem;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.08);
  color: #fff;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .25s;
}
.vid-close:hover { background: rgba(255,255,255,.18); }

/* Admin bar offset for lightbox */
.admin-bar .vid-frame { padding-top: calc(2rem + 32px); }

/* ── Responsive ── */
@media(max-width:1024px) {
  .vid-grid { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width:600px) {
  .vid-grid { grid-template-columns: 1fr; gap:1rem; }
  .vid-frame { padding: 1rem; align-items: flex-end; }
  .vid-frame iframe,
  .vid-frame video {
    width: 100%;
    height: 56vw;
    max-height: none;
    border-radius: 8px 8px 0 0;
  }
}

/* ══════════════════════════════════════════
   CATEGORY SHOWCASE
══════════════════════════════════════════ */
.cat-showcase {
  padding: 5rem 3.5rem;
  border-bottom: 1px solid var(--line);
}
.cat-showcase-inner { max-width: 1400px; margin: 0 auto; }
.cat-showcase-label {
  font-size: .52rem;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 2.5rem;
  display: flex;
  align-items: center;
  gap: .8rem;
}
.cat-showcase-label::before {
  content: '';
  width: 24px; height: 1px;
  background: var(--rose);
  display: block;
}
.cat-showcase-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr 2fr;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.cat-tile {
  position: relative;
  overflow: hidden;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  background: var(--bg2);
  transition: background .35s;
}
.cat-tile:hover { background: var(--bg3); }
.cat-tile-bg {
  position: absolute;
  inset: 0;
  opacity: .04;
  transition: opacity .35s;
}
.cat-tile:hover .cat-tile-bg { opacity: .08; }
.cat-tile-body {
  position: relative;
  z-index: 1;
  padding: 2rem 2rem 1.8rem;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.cat-tile-num {
  font-family: 'Italiana', serif;
  font-size: 3.5rem;
  color: var(--rose);
  opacity: .15;
  line-height: 1;
  margin-bottom: auto;
  display: block;
}
.cat-tile-name {
  font-family: 'Italiana', serif;
  font-size: 1.35rem;
  letter-spacing: .02em;
  color: var(--text);
  display: block;
  margin-bottom: .45rem;
  margin-top: 1rem;
  transition: color .25s;
}
.cat-tile:hover .cat-tile-name { color: var(--rose); }
.cat-tile-desc {
  font-size: .58rem;
  font-weight: 400;
  color: var(--text3);
  letter-spacing: .1em;
  display: block;
  margin-bottom: 1.2rem;
  line-height: 1.5;
}
.cat-tile-arr {
  font-size: .9rem;
  color: var(--rose);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .25s, transform .25s;
  display: block;
  width: fit-content;
}
.cat-tile:hover .cat-tile-arr {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive cat grid */
@media(max-width:1100px) {
  .cat-showcase-grid { grid-template-columns: repeat(3, 1fr); }
}
@media(max-width:680px) {
  .cat-showcase { padding: 3.5rem 1.4rem; }
  .cat-showcase-grid { grid-template-columns: repeat(2, 1fr); }
  .cat-tile { min-height: 160px; }
  .cat-tile-body { padding: 1.5rem 1.3rem 1.4rem; }
  .cat-tile-num { font-size: 2.5rem; }
  .cat-tile-name { font-size: 1.1rem; }
}
@media(max-width:380px) {
  .cat-showcase-grid { grid-template-columns: 1fr 1fr; }
  .cat-tile { min-height: 130px; }
}

/* ══════════════════════════════════════════
   STATS BAR
══════════════════════════════════════════ */
.stats-bar {
  border-bottom: 1px solid var(--line);
  background: var(--bg2);
}
.stats-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
  max-width: 1400px;
  margin: 0 auto;
}
.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 3rem 4rem;
  text-align: center;
}
.stat-n {
  font-family: 'Italiana', serif;
  font-size: 2.8rem;
  color: var(--text);
  line-height: 1;
  display: block;
  margin-bottom: .4rem;
}
.stat-l {
  font-size: .48rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--text3);
}
.stat-div {
  width: 1px;
  height: 48px;
  background: var(--line);
  flex-shrink: 0;
}
@media(max-width:900px) {
  .stat-div { display: none; }
  .stat-item { padding: 2rem 2.5rem; }
  .stats-bar-inner { justify-content: space-around; }
}
@media(max-width:480px) {
  .stat-item { padding: 1.5rem 1.2rem; }
  .stat-n { font-size: 2.2rem; }
}
