/* ============================================================================
   Fulber ADV — base theme stylesheet
   Shared design system: tokens, nav, footer, hero, buttons, mobile drawer,
   reveal animations, BigCTA, Voices, Stripe marquee, etc.
   Page-specific CSS lives inline at the top of each template.
   ============================================================================ */

  :root{
    --orange:#FF4C00;
    --orange-soft:#FF6A2A;
    --ink:#101010;
    --ink-2:#181818;
    --cream:#E8E8DE;
    --grey:#CECECE;
    --white:#FFFFFF;
    --mute:#6E6E68;
    --mute-on-ink: rgba(232,232,222,0.62);
    --line: rgba(16,16,16,0.12);
    --line-ink: rgba(232,232,222,0.14);
    --line-strong: rgba(16,16,16,0.32);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html,body{background:var(--cream); color:var(--ink); font-family:'Host Grotesk', system-ui, sans-serif; -webkit-font-smoothing:antialiased;}
  body{font-size:16px; line-height:1.5; overflow-x:hidden;}
  a{color:inherit; text-decoration:none;}
  img,svg{display:block; max-width:100%;}

  .serif{font-family:'Playfair Display', serif; font-style:italic; font-weight:400;}
  .mono{font-family:'Host Grotesk', monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; font-weight:600;}
  .eyebrow.mono{color:var(--ink); opacity:0.85;}
  .stats-head .eyebrow.mono, .process-head .eyebrow.mono, .sectors-left .eyebrow.mono{color:var(--ink); opacity:1;}

  .container{max-width:1360px; margin:0 auto; padding:0 48px;}

  /* ═════════ NAV ═════════ */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:60;
    padding:18px 48px; display:flex; align-items:center; justify-content:space-between;
    backdrop-filter:blur(14px);
    background:color-mix(in oklab, var(--ink) 72%, transparent);
    border-bottom:1px solid transparent;
    transition:border-color .3s, background .3s;
  }
  .nav.scrolled{border-bottom-color:var(--line-ink); background:color-mix(in oklab, var(--ink) 92%, transparent);}
  .nav-logo{height:34px; color:var(--cream); display:flex; align-items:center;}
  .nav-logo svg{height:30px; width:auto;}
  .nav-links{display:flex; gap:36px; align-items:center;}
  .nav-links a{font-size:14px; color:var(--cream); position:relative; padding:6px 0; font-weight:500; opacity:.85;}
  .nav-links a::after{content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--orange); transition:width .35s ease;}
  .nav-links a:hover::after{width:100%;}
  .nav-links a:hover{color:var(--orange); opacity:1;}
  .nav-cta{
    display:inline-flex; align-items:center; gap:10px;
    padding:11px 20px; border-radius:999px;
    font-size:13px; font-weight:600;
    background:var(--orange); color:var(--white);
    transition:background .25s, transform .25s, box-shadow .25s;
    box-shadow:0 0 0 rgba(255,76,0,0);
  }
  .nav-cta:hover{background:var(--white); color:var(--ink); transform:translateY(-1px); box-shadow:0 8px 40px rgba(255,76,0,.35);}
  .nav-cta .dot{width:6px; height:6px; border-radius:999px; background:var(--white); box-shadow:0 0 0 3px rgba(255,255,255,.3);}
  .nav-cta:hover .dot{background:var(--orange); box-shadow:0 0 0 3px rgba(255,76,0,.25);}

  /* Mobile menu button */
  .nav-burger{
    display:none; width:44px; height:44px; border-radius:999px;
    border:1.5px solid rgba(232,232,222,0.35); background:transparent;
    cursor:pointer; align-items:center; justify-content:center;
    padding:0; color:var(--cream);
    transition:background .25s, border-color .25s;
  }
  .nav-burger:hover{background:rgba(232,232,222,0.08); border-color:var(--cream);}
  .nav-burger .bars{position:relative; width:18px; height:12px;}
  .nav-burger .bars span{position:absolute; left:0; right:0; height:1.6px; background:var(--cream); border-radius:2px; transition:transform .3s ease, top .3s ease, opacity .2s ease;}
  .nav-burger .bars span:nth-child(1){top:0;}
  .nav-burger .bars span:nth-child(2){top:5px;}
  .nav-burger .bars span:nth-child(3){top:10px;}
  .nav-burger.open .bars span:nth-child(1){top:5px; transform:rotate(45deg); background:var(--orange);}
  .nav-burger.open .bars span:nth-child(2){opacity:0;}
  .nav-burger.open .bars span:nth-child(3){top:5px; transform:rotate(-45deg); background:var(--orange);}

  /* Mobile drawer */
  .mobile-drawer{
    position:fixed; inset:0; z-index:55;
    background:var(--ink); color:var(--cream);
    padding:90px 28px 40px;
    display:flex; flex-direction:column; gap:0;
    transform:translateY(-100%);
    transition:transform .5s cubic-bezier(.7,.05,.2,1);
    overflow:hidden;
  }
  .mobile-drawer.open{transform:translateY(0);}
  .mobile-drawer::before{
    content:""; position:absolute; right:-160px; bottom:-200px; width:560px; height:560px;
    background:radial-gradient(circle at center, rgba(255,76,0,0.40) 0%, rgba(255,76,0,0.12) 30%, transparent 60%);
    filter:blur(50px); pointer-events:none;
  }
  .mobile-drawer-inner{position:relative; z-index:2; display:flex; flex-direction:column; height:100%;}
  .mobile-drawer .mdr-links{display:flex; flex-direction:column; border-top:1px solid var(--line-ink); margin-bottom:auto;}
  .mobile-drawer .mdr-links a{
    display:flex; justify-content:space-between; align-items:center;
    padding:22px 0; border-bottom:1px solid var(--line-ink);
    font-size:28px; font-weight:500; letter-spacing:-0.015em;
    color:var(--cream);
    transition:color .25s, padding-left .3s;
  }
  .mobile-drawer .mdr-links a:hover{color:var(--orange); padding-left:8px;}
  .mobile-drawer .mdr-links a .idx{font-family:monospace; font-size:11px; letter-spacing:0.15em; color:rgba(232,232,222,0.4); font-weight:600;}
  .mobile-drawer .mdr-foot{
    display:flex; flex-direction:column; gap:20px; margin-top:40px;
  }
  .mobile-drawer .mdr-foot .btn{justify-content:center;}
  .mobile-drawer .mdr-contact{display:flex; flex-direction:column; gap:6px; color:rgba(232,232,222,0.6); font-size:13px; padding-top:24px; border-top:1px solid var(--line-ink);}
  .mobile-drawer .mdr-contact a{color:var(--cream);}
  body.nav-open{overflow:hidden;}

  /* ═════════ HERO — DARK ═════════ */
  .hero{
    position:relative; padding:170px 0 110px;
    overflow:hidden;
    background:var(--ink);
    color:var(--cream);
  }
  /* ORANGE LIGHT glows (inspired by reference art) */
  .hero-glow-1{
    position:absolute; right:-180px; bottom:-220px; width:780px; height:780px;
    background:radial-gradient(circle at center, rgba(255,76,0,0.65) 0%, rgba(255,76,0,0.25) 25%, transparent 60%);
    filter:blur(40px);
    pointer-events:none;
  }
  .hero-glow-2{
    position:absolute; left:-200px; top:-220px; width:620px; height:620px;
    background:radial-gradient(circle at center, rgba(255,76,0,0.18) 0%, transparent 60%);
    filter:blur(50px);
    pointer-events:none;
  }
  /* subtle vertical stripes inspired by reference photo */
  .hero::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:repeating-linear-gradient(90deg, transparent 0 60px, rgba(232,232,222,0.02) 60px 61px);
  }

  .hero-grid{position:relative; display:grid; grid-template-columns: 1.15fr 0.85fr; gap:72px; align-items:end; z-index:2;}

  .eyebrow{display:inline-flex; align-items:center; gap:12px; color:rgba(232,232,222,0.62);}
  .eyebrow .tick{width:28px; height:1.5px; background:var(--orange);}

  /* CLEANER H1 */
  .hero h1{
    font-family:'Host Grotesk', sans-serif;
    font-size:clamp(56px, 7vw, 104px);
    line-height:1.0; letter-spacing:-0.035em; font-weight:500;
    margin-top:28px; color:var(--cream);
    text-wrap:balance;
  }
  .hero h1 .serif{
    font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
    color:var(--orange); letter-spacing:-0.015em;
  }

  .hero-right{position:relative;}
  .hero-right p{max-width:420px; font-size:17px; color:rgba(232,232,222,0.82); margin-bottom:32px; line-height:1.55;}
  .hero-right p strong{color:var(--cream); font-weight:600;}
  .btn-row{display:flex; gap:12px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:12px;
    padding:16px 26px; border-radius:999px;
    font-size:14px; font-weight:600;
    transition:all .3s ease;
    cursor:pointer; border:1.5px solid transparent; white-space:nowrap;
  }
  .btn.primary{background:var(--orange); color:var(--white);}
  .btn.primary:hover{background:var(--white); color:var(--ink);}
  .btn.ghost{background:transparent; color:var(--cream); border-color:rgba(232,232,222,0.35);}
  .btn.ghost:hover{background:var(--cream); color:var(--ink); border-color:var(--cream);}
  .btn .arrow{transition:transform .3s ease;}
  .btn:hover .arrow{transform:translateX(4px);}

  .hero-meta{
    position:relative; z-index:2;
    margin-top:96px; padding-top:28px; border-top:1px solid var(--line-ink);
    display:grid; grid-template-columns: repeat(4, 1fr); gap:32px;
  }
  .hero-meta .cell .label{color:rgba(232,232,222,0.5); margin-bottom:10px;}
  .hero-meta .cell .val{font-size:17px; letter-spacing:-0.01em; font-weight:500; color:var(--cream);}
  .hero-meta .cell .val .serif{color:var(--orange);}

  /* ═════════ STRIPE ═════════ */
  .stripe{
    position:relative;
    background:var(--orange); color:var(--white);
    padding:22px 0;
    overflow:hidden;
  }
  .stripe-track{display:flex; gap:56px; white-space:nowrap; animation:scroll 48s linear infinite; align-items:center;}
  .stripe-item{display:inline-flex; align-items:center; gap:14px; font-size:15px; font-weight:500;}
  .stripe-item .serif{font-size:17px; color:var(--white);}
  .stripe-item .dot{width:5px; height:5px; border-radius:50%; background:var(--white); opacity:.7;}
  @keyframes scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}

  /* ═════════ STATS ═════════ */
  .stats{padding:140px 0 120px; background:var(--cream);}
  .stats-head{max-width:760px; margin-bottom:80px;}
  .stats-head h2{
    font-size:clamp(40px, 4.6vw, 64px);
    line-height:1.02; letter-spacing:-0.03em; font-weight:500;
    margin-top:20px;
  }
  .stats-head h2 .serif{color:var(--orange);}
  .stats-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:0; border-top:1.5px solid var(--ink); border-bottom:1.5px solid var(--ink);}
  .stat{padding:44px 32px 40px 0; border-right:1px solid var(--line); position:relative;}
  .stat:last-child{border-right:none;}
  .stat:nth-child(2){padding-left:36px;}
  .stat:nth-child(3){padding-left:36px;}
  .stat .num{
    font-weight:500;
    font-size:clamp(72px, 8vw, 128px); line-height:0.95; letter-spacing:-0.05em;
    display:flex; align-items:baseline; color:var(--ink);
  }
  .stat .unit{font-size:0.38em; color:var(--orange); margin-left:6px; font-weight:500;}
  .stat .caption{margin-top:18px; color:#2a2a2a; max-width:300px; font-size:15px;}
  .stat .tag{position:absolute; top:20px; right:0; color:var(--mute);}

  /* ═════════ MANIFESTO — DARK with ORANGE LIGHT ═════════ */
  .manifesto{
    padding:150px 0 140px;
    background:var(--ink); color:var(--cream);
    position:relative; overflow:hidden;
  }
  .manifesto-glow{
    position:absolute; right:-220px; top:-180px; width:720px; height:720px;
    background:radial-gradient(circle at center, rgba(255,76,0,0.42) 0%, rgba(255,76,0,0.14) 30%, transparent 60%);
    filter:blur(50px);
    pointer-events:none;
  }
  .manifesto-glow-2{
    position:absolute; left:-120px; bottom:-200px; width:560px; height:560px;
    background:radial-gradient(circle at center, rgba(255,76,0,0.22) 0%, transparent 60%);
    filter:blur(50px);
    pointer-events:none;
  }
  .manifesto-grid{display:grid; grid-template-columns: 360px 1fr; gap:96px; position:relative; z-index:2;}
  .manifesto-left .eyebrow.mono{color:var(--cream); opacity:1;}
  .manifesto-left h3{
    font-size:30px; line-height:1.12; letter-spacing:-0.015em;
    margin-top:20px; font-weight:500;
  }
  .manifesto-left h3 .serif{color:var(--orange);}
  .manifesto-right p{
    font-size:clamp(24px, 2.4vw, 34px); line-height:1.28; letter-spacing:-0.015em;
    color:var(--cream);
  }
  .manifesto-right p + p{margin-top:28px; color:rgba(232,232,222,0.72); font-size:clamp(19px, 1.7vw, 22px); line-height:1.5;}
  .manifesto-right .accent{color:var(--orange);}
  .manifesto-sig{
    margin-top:56px; padding-top:24px; border-top:1px solid var(--line-ink);
    display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap;
  }
  .manifesto-sig .who .name{font-size:20px; font-weight:500;}
  .manifesto-sig .who .name .serif{color:var(--orange);}
  .manifesto-sig .who .role{color:rgba(232,232,222,0.6); font-size:13px; margin-top:4px;}
  .sig-links{display:flex; gap:18px;}
  .sig-links a{font-size:13px; color:rgba(232,232,222,0.75); border-bottom:1px solid rgba(232,232,222,0.2); padding-bottom:2px; transition:color .25s, border-color .25s;}
  .sig-links a:hover{color:var(--orange); border-color:var(--orange);}

  /* ═════════ PROCESS ═════════ */
  .process{padding:140px 0 120px; background:var(--cream);}
  .process-head{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:64px;}
  .process-head h2{
    font-size:clamp(44px, 4.8vw, 72px); line-height:1.0;
    letter-spacing:-0.03em; font-weight:500; margin-top:22px; text-wrap:balance;
  }
  .process-head h2 .serif{color:var(--orange);}
  .process-head .lede{font-size:16px; color:#2a2a2a; max-width:440px; justify-self:end;}
  .process-head .lede a{border-bottom:1.5px solid var(--ink); padding-bottom:2px; margin-top:20px; display:inline-block; font-size:13px; font-weight:600; letter-spacing:0.02em; transition:color .25s, border-color .25s;}
  .process-head .lede a:hover{color:var(--orange); border-color:var(--orange);}

  .steps{border-top:1.5px solid var(--ink);}
  .step{
    display:grid; grid-template-columns: 110px 1.1fr 1.6fr 180px; gap:48px;
    padding:38px 0; border-bottom:1px solid var(--line);
    align-items:start; cursor:pointer;
    transition:background .3s, padding .3s;
    position:relative;
  }
  .step:hover{background:rgba(255,255,255,0.5);}
  .step:hover .step-num{color:var(--orange);}
  .step:hover .step-arrow{background:var(--orange); color:var(--white); border-color:var(--orange); transform:rotate(-45deg);}
  .step-num{font-size:48px; font-weight:400; line-height:1; color:var(--ink); letter-spacing:-0.03em; transition:color .3s;}
  .step-title{font-size:26px; letter-spacing:-0.015em; line-height:1.12; padding-top:8px; font-weight:500;}
  .step-body{color:#2a2a2a; font-size:15px; padding-top:10px; max-width:520px; line-height:1.55;}
  .step-meta{display:flex; flex-direction:column; align-items:flex-end; gap:16px; padding-top:10px;}
  .step-meta .mono{color:var(--mute);}
  .step-arrow{
    width:42px; height:42px; border-radius:999px; border:1.5px solid var(--line-strong);
    display:grid; place-items:center; color:var(--ink);
    transition:all .35s ease;
  }

  /* ═════════ SECTORS ═════════ */
  .sectors{padding:140px 0 130px; background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .sectors-grid{display:grid; grid-template-columns:1fr 1fr; gap:100px;}
  .sectors h2{
    font-size:clamp(40px, 4.4vw, 60px); line-height:1.03; letter-spacing:-0.03em;
    font-weight:500; margin-top:22px;
  }
  .sectors h2 .serif{color:var(--orange);}
  .sectors p.lede{margin-top:24px; color:#2a2a2a; max-width:400px; font-size:16px; line-height:1.55;}
  .sectors-right ul{list-style:none; border-top:1.5px solid var(--ink);}
  .sectors-right li{border-bottom:1px solid var(--line);}
  .sector-head{
    display:grid; grid-template-columns: 48px 1fr auto; gap:24px; align-items:center;
    padding:22px 0;
    font-size:22px; letter-spacing:-0.01em; font-weight:500;
    transition:padding-left .3s, color .3s;
    cursor:pointer;
  }
  .sector-head:hover{padding-left:12px; color:var(--orange);}
  .sectors-right li.open .sector-head{color:var(--orange);}
  .sectors-right li .idx{font-family:'Host Grotesk', monospace; font-size:11px; color:var(--mute); letter-spacing:0.15em; font-weight:600;}
  .sectors-right li .plus{color:var(--mute); font-size:24px; transition:transform .35s, color .3s; line-height:1;}
  .sector-head:hover .plus{color:var(--orange);}
  .sectors-right li.open .plus{transform:rotate(45deg); color:var(--orange);}
  .sector-body{
    max-height:0; overflow:hidden; transition:max-height .45s ease, padding .4s ease, opacity .4s ease;
    opacity:0; padding:0 0 0 72px;
  }
  .sectors-right li.open .sector-body{max-height:260px; padding:4px 0 26px 72px; opacity:1;}
  .sector-body p{font-size:15px; line-height:1.6; color:#2a2a2a; font-weight:400; letter-spacing:0; max-width:520px;}

  /* ═════════ VOICES — DARK with glow ═════════ */
  .voices{padding:140px 0 130px; background:var(--ink); color:var(--cream); position:relative; overflow:hidden;}
  .voices-glow{
    position:absolute; left:50%; top:-240px; width:720px; height:720px; transform:translateX(-50%);
    background:radial-gradient(circle at center, rgba(255,76,0,0.22) 0%, transparent 60%);
    filter:blur(50px); pointer-events:none;
  }
  .voices-head{margin-bottom:60px; max-width:760px; position:relative; z-index:2;}
  .voices-head h2{
    font-size:clamp(44px, 4.6vw, 64px);
    line-height:1.02; letter-spacing:-0.03em; font-weight:500; margin-top:22px; color:var(--cream);
  }
  .voices-head h2 .serif{color:var(--orange);}
  .voices-head .eyebrow{color:rgba(232,232,222,0.6);}
  .voice-stage{
    position:relative; z-index:2;
    border-top:1.5px solid rgba(232,232,222,0.25); border-bottom:1.5px solid rgba(232,232,222,0.25);
    padding:64px 0;
    display:grid; grid-template-columns: 1fr 340px; gap:80px; align-items:center;
    min-height:340px;
  }
  .voice-quote{
    font-size:clamp(22px, 2.2vw, 30px); line-height:1.38; letter-spacing:-0.01em;
    color:var(--cream); font-weight:400;
  }
  .voice-quote::before{content:"“"; font-family:'Playfair Display', serif; font-size:1.8em; line-height:0; vertical-align:-0.35em; color:var(--orange); margin-right:8px;}
  .voice-side{display:flex; flex-direction:column; gap:28px;}
  .voice-who{display:flex; align-items:center; gap:16px;}
  .voice-avatar{
    width:60px; height:60px; border-radius:999px;
    background:var(--orange); color:var(--white);
    display:grid; place-items:center;
    font-size:22px; font-weight:600;
  }
  .voice-name{font-size:19px; font-weight:500; letter-spacing:-0.01em;}
  .voice-role{color:rgba(232,232,222,0.55); font-size:13px; margin-top:2px;}
  .voice-nav{display:flex; gap:10px; align-items:center;}
  .voice-nav button{
    width:46px; height:46px; border-radius:999px; border:1.5px solid rgba(232,232,222,0.35);
    background:transparent; color:var(--cream); cursor:pointer;
    display:grid; place-items:center;
    transition:background .25s, color .25s, border-color .25s;
  }
  .voice-nav button:hover{background:var(--orange); color:var(--white); border-color:var(--orange);}
  .voice-counter{font-family:monospace; font-size:12px; letter-spacing:0.15em; color:rgba(232,232,222,0.6); margin-left:8px; font-weight:500;}

  /* ═════════ BIG CTA ═════════ */
  .bigcta{
    padding:150px 0 160px;
    background:var(--orange); color:var(--white);
    position:relative; overflow:hidden;
  }
  .bigcta::before{
    content:""; position:absolute; inset:0;
    background:repeating-linear-gradient(120deg, transparent 0 140px, rgba(255,255,255,0.06) 140px 141px, transparent 141px 280px);
    pointer-events:none;
  }
  .bigcta-inner{position:relative; max-width:1100px;}
  .bigcta .eyebrow{color:rgba(255,255,255,0.85);}
  .bigcta .eyebrow .tick{background:var(--white);}
  .bigcta h2{
    font-weight:500;
    font-size:clamp(52px, 6.4vw, 96px); line-height:0.96; letter-spacing:-0.035em;
    text-wrap:balance; margin-top:24px;
  }
  .bigcta h2 .serif{font-style:italic; font-weight:400; color:var(--ink);}
  .bigcta p{
    margin-top:32px; max-width:620px; font-size:18px; color:rgba(255,255,255,0.92); line-height:1.5;
  }
  .bigcta .btn-row{margin-top:44px;}
  .bigcta .btn.primary{background:var(--ink); color:var(--white); border-color:var(--ink);}
  .bigcta .btn.primary:hover{background:var(--white); color:var(--ink); border-color:var(--white);}
  .bigcta .btn.ghost{color:var(--white); border-color:rgba(255,255,255,0.6);}
  .bigcta .btn.ghost:hover{background:var(--white); color:var(--orange); border-color:var(--white);}

  /* ═════════ FOOTER ═════════ */
  .footer{background:var(--ink); color:var(--cream); padding:80px 0 36px; position:relative; overflow:hidden;}
  .footer-glow{
    position:absolute; right:-280px; top:-200px; width:600px; height:600px;
    background:radial-gradient(circle at center, rgba(255,76,0,0.16) 0%, transparent 60%);
    filter:blur(50px); pointer-events:none;
  }
  .footer-grid{position:relative; display:grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap:60px; margin-bottom:72px; align-items:start;}
  .footer-logo{height:36px; color:var(--cream); margin-bottom:26px;}
  .footer p{color:rgba(232,232,222,0.62); font-size:14px; max-width:340px; line-height:1.55;}
  .footer h3{font-family:'Host Grotesk', monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--orange); margin-bottom:22px; font-weight:600;}
  .footer ul{list-style:none; display:flex; flex-direction:column; gap:12px;}
  .footer ul a{color:rgba(232,232,222,0.82); font-size:14.5px; transition:color .25s;}
  .footer ul a:hover{color:var(--orange);}
  .footer-addr{color:rgba(232,232,222,0.6); font-size:14px; line-height:1.55;}
  .footer-bottom{
    position:relative;
    padding-top:32px; border-top:1px solid rgba(232,232,222,0.1);
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;
    color:rgba(232,232,222,0.5); font-size:12.5px;
  }
  .footer-bottom .legal{display:flex; gap:24px; align-items:center;}
  .footer-bottom .legal a:hover{color:var(--orange);}
  .footer-credit{display:inline-flex; align-items:center; opacity:0.7; transition:opacity .25s;}
  .footer-credit:hover{opacity:1;}
  .footer-credit svg{height:12px; width:auto; display:block;}

  /* reveal on scroll */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s ease;}
  .reveal.in{opacity:1; transform:none;}

  @media (max-width: 980px){
    .container{padding:0 22px;}
    .nav{padding:14px 22px;}
    .nav-links{display:none;}
    .nav-burger{display:inline-flex;}
    .nav-cta{display:none;}
    .hero{padding:130px 0 70px;}
    .hero-grid{grid-template-columns:1fr; gap:44px;}
    .hero-meta{grid-template-columns:repeat(2, 1fr); gap:28px;}
    .stats-grid{grid-template-columns:1fr;}
    .stat{padding:32px 0 28px !important; border-right:none; border-bottom:1px solid var(--line);}
    .stat:last-child{border-bottom:none;}
    .manifesto-grid{grid-template-columns:1fr; gap:40px;}
    .process-head{grid-template-columns:1fr; gap:28px;}
    .process-head .lede{justify-self:start;}
    .step{grid-template-columns: 70px 1fr; gap:20px;}
    .step-body, .step-meta{grid-column: 1 / -1; padding:0;}
    .step-meta{flex-direction:row; justify-content:space-between; align-items:center;}
    .sectors-grid{grid-template-columns:1fr; gap:48px;}
    .voice-stage{grid-template-columns:1fr; gap:40px; padding:44px 0;}
    .footer-grid{grid-template-columns:1fr 1fr; gap:40px;}
  }

  /* ============================================================================
     sobre-specific
     Trajectory, pillars, clients, portrait, breadcrumb, hero-inner, ghost-dark.
     ============================================================================ */

  /* Variant button used on dark backgrounds in sobre/contato/big CTA */
  .btn.ghost-dark{background:transparent; color:var(--cream); border-color:rgba(232,232,222,0.35);}
  .btn.ghost-dark:hover{background:var(--cream); color:var(--ink); border-color:var(--cream);}

  /* ==========================================================================
     Per-page hero overrides — each non-home page has slightly different
     glow positions, padding and h1 sizes in the original static site. We
     scope by body class (set in partials/header.php as `page-{key}`) so
     the home defaults stay untouched.
     ========================================================================== */

  /* Sobre — glows mirrored from home (top-right + bottom-left) */
  body.page-sobre .hero{padding:190px 0 120px;}
  body.page-sobre .hero-glow-1{right:-200px; top:-180px; bottom:auto; left:auto; width:780px; height:780px; background:radial-gradient(circle at center, rgba(255,76,0,0.55) 0%, rgba(255,76,0,0.20) 25%, transparent 60%);}
  body.page-sobre .hero-glow-2{left:-240px; bottom:-260px; top:auto; right:auto; width:680px; height:680px; background:radial-gradient(circle at center, rgba(255,76,0,0.22) 0%, transparent 60%);}
  body.page-sobre .hero h1{font-size:clamp(52px, 6.4vw, 96px); margin-top:12px;}
  body.page-sobre .hero-right p{font-size:18px; max-width:460px; margin-bottom:28px;}

  /* Servicos — bigger top-right glow + slightly smaller h1 cap */
  body.page-servicos .hero{padding:190px 0 110px;}
  body.page-servicos .hero-glow-1{right:-220px; top:-200px; bottom:auto; left:auto; width:820px; height:820px; background:radial-gradient(circle at center, rgba(255,76,0,0.55) 0%, rgba(255,76,0,0.18) 25%, transparent 60%);}
  body.page-servicos .hero-glow-2{left:-240px; bottom:-260px; top:auto; right:auto; width:680px; height:680px; background:radial-gradient(circle at center, rgba(255,76,0,0.22) 0%, transparent 60%);}
  body.page-servicos .hero h1{font-size:clamp(52px, 6.4vw, 92px); margin-top:12px;}
  body.page-servicos .hero-right p{font-size:18px; max-width:460px; margin-bottom:28px;}

  /* Blog — same glow positions as servicos, slightly less bottom padding */
  body.page-blog .hero{padding:180px 0 90px;}
  body.page-blog .hero-glow-1{right:-220px; top:-200px; bottom:auto; left:auto; width:820px; height:820px; background:radial-gradient(circle at center, rgba(255,76,0,0.55) 0%, rgba(255,76,0,0.18) 25%, transparent 60%);}
  body.page-blog .hero-glow-2{left:-240px; bottom:-260px; top:auto; right:auto; width:680px; height:680px; background:radial-gradient(circle at center, rgba(255,76,0,0.22) 0%, transparent 60%);}
  body.page-blog .hero h1{font-size:clamp(52px, 6.4vw, 92px); margin-top:12px;}
  body.page-blog .hero-right p{font-size:18px; max-width:460px; margin-bottom:0;}

  /* Hero variant for sobre — uses .hero-inner instead of .hero-grid */
  .hero-inner{position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end;}
  .breadcrumb{display:flex; gap:10px; align-items:center; color:rgba(232,232,222,0.55); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; font-weight:500; margin-bottom:24px;}
  .breadcrumb .sep{opacity:0.5;}
  .breadcrumb a:hover{color:var(--orange);}
  .breadcrumb .curr{color:var(--orange);}

  /* ═════════ TRAJETÓRIA ═════════ */
  .traject{padding:150px 0 130px; background:var(--cream);}
  .traject-grid{display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start;}
  .traject-left{position:sticky; top:120px;}
  .traject-left h2{
    font-size:clamp(42px, 4.6vw, 62px); line-height:1.02; letter-spacing:-0.03em;
    font-weight:500; margin-top:22px; text-wrap:balance;
  }
  .traject-left h2 .serif{color:var(--orange);}

  .portrait{
    position:relative;
    aspect-ratio:3 / 2; overflow:hidden;
    background:var(--ink);
    border-radius:4px;
  }
  .portrait img{width:100%; height:100%; object-fit:cover; display:block;}
  .portrait-frame{
    position:absolute; inset:0;
    box-shadow:inset 0 0 0 1px rgba(232,232,222,0.08);
    pointer-events:none;
  }
  .portrait-caption{
    position:absolute; left:0; right:0; bottom:0;
    padding:26px 28px 24px;
    background:linear-gradient(to top, rgba(16,16,16,0.85) 0%, rgba(16,16,16,0) 100%);
    color:var(--cream);
    display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  }
  .portrait-caption .name{font-size:22px; font-weight:500; letter-spacing:-0.01em;}
  .portrait-caption .name .serif{color:var(--orange);}
  .portrait-caption .role{font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:rgba(232,232,222,0.6); margin-top:6px; font-weight:500;}
  .portrait-caption .badge{font-family:monospace; font-size:11px; letter-spacing:0.18em; color:var(--orange); border:1px solid rgba(255,76,0,0.5); padding:6px 10px; border-radius:999px; white-space:nowrap;}

  .traject-copy p{font-size:19px; line-height:1.58; color:#1d1d1d; max-width:560px;}
  .traject-copy p + p{margin-top:24px;}
  .traject-copy strong{font-weight:600; color:var(--ink);}
  .traject-copy .accent{color:var(--orange); font-weight:500;}
  .traject-copy .lead{font-size:22px; line-height:1.48; color:var(--ink); font-weight:500; letter-spacing:-0.01em;}
  .traject-copy .lead .serif{color:var(--orange);}

  /* ═════════ PILLARS ═════════ */
  .pillars{padding:120px 0; background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .pillars-head{max-width:780px; margin-bottom:72px;}
  .pillars-head h2{
    font-size:clamp(40px, 4.4vw, 58px); line-height:1.02; letter-spacing:-0.03em;
    font-weight:500; margin-top:22px; text-wrap:balance;
  }
  .pillars-head h2 .serif{color:var(--orange);}
  .pillars-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:0; border-top:1.5px solid var(--ink);}
  .pillar{padding:44px 36px 40px 0; border-right:1px solid var(--line); position:relative;}
  .pillar:last-child{border-right:none;}
  .pillar:nth-child(2){padding-left:36px;}
  .pillar:nth-child(3){padding-left:36px;}
  .pillar .num{font-size:13px; letter-spacing:0.18em; text-transform:uppercase; font-weight:600; color:var(--orange); margin-bottom:28px;}
  .pillar h3{font-size:26px; line-height:1.15; letter-spacing:-0.015em; font-weight:500; margin-bottom:18px;}
  .pillar h3 .serif{color:var(--orange);}
  .pillar p{font-size:15.5px; line-height:1.6; color:#2a2a2a;}

  /* sobre manifesto — .pull pull-quote variant */
  .manifesto-right .pull{font-size:clamp(26px, 2.6vw, 36px); line-height:1.26; letter-spacing:-0.015em; color:var(--cream);}
  .manifesto-right .pull .accent{color:var(--orange);}

  /* ═════════ CLIENTS ═════════ */
  .clients{padding:140px 0 130px; background:var(--cream);}
  .clients-head{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:64px;}
  .clients-head h2{font-size:clamp(42px, 4.8vw, 64px); line-height:1.0; letter-spacing:-0.03em; font-weight:500; margin-top:22px; text-wrap:balance;}
  .clients-head h2 .serif{color:var(--orange);}
  .clients-head .lede{font-size:16px; color:#2a2a2a; max-width:440px; justify-self:end; line-height:1.55;}

  .client-cards{display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1.5px solid var(--ink); border-bottom:1.5px solid var(--ink);}
  .client-card{padding:48px 36px 48px 0; border-right:1px solid var(--line); position:relative;}
  .client-card:last-child{border-right:none; padding-left:36px;}
  .client-card .tag{position:absolute; top:24px; right:0; color:var(--mute);}
  .client-card .cat{font-size:12px; letter-spacing:0.15em; text-transform:uppercase; font-weight:600; color:var(--orange); margin-bottom:20px;}
  .client-card h3{font-size:clamp(26px, 2.4vw, 34px); line-height:1.12; letter-spacing:-0.015em; font-weight:500; margin-bottom:22px;}
  .client-card h3 .serif{color:var(--orange);}
  .client-card p{font-size:16px; line-height:1.6; color:#2a2a2a; max-width:500px;}
  .client-card .meta{margin-top:28px; display:flex; gap:32px; flex-wrap:wrap;}
  .client-card .meta .item{display:flex; flex-direction:column; gap:6px;}
  .client-card .meta .item .k{font-family:monospace; font-size:10.5px; letter-spacing:0.18em; text-transform:uppercase; color:var(--mute); font-weight:600;}
  .client-card .meta .item .v{font-size:15px; font-weight:500; letter-spacing:-0.01em;}
  .client-card .meta .item .v .serif{color:var(--orange);}

  @media (max-width: 980px){
    .hero-inner{grid-template-columns:1fr; gap:40px; align-items:start;}
    .traject-grid{grid-template-columns:1fr; gap:44px;}
    .traject-left{position:static;}
    .pillars-grid{grid-template-columns:1fr;}
    .pillar{padding:36px 0 !important; border-right:none; border-bottom:1px solid var(--line);}
    .pillar:last-child{border-bottom:none;}
    .clients-head{grid-template-columns:1fr; gap:28px;}
    .clients-head .lede{justify-self:start;}
    .client-cards{grid-template-columns:1fr;}
    .client-card{padding:40px 0 !important; border-right:none; border-bottom:1px solid var(--line);}
    .client-card:last-child{border-bottom:none;}
  }

  /* ============================================================================
     servicos-specific
     Services list with sticky sidebar index, FAQ accordion grid.
     ============================================================================ */

  /* HERO right intro paragraph (shared with sobre-style hero-inner) */
  .hero-right p{font-size:18px; color:rgba(232,232,222,0.82); max-width:460px; margin-bottom:28px; line-height:1.55;}

  /* SVCS grid: sticky index + scroll-synced services body */
  .svcs{padding:140px 0 120px; background:var(--cream);}
  .svcs-head{max-width:820px; margin-bottom:72px;}
  .svcs-head h2{font-size:clamp(42px, 4.6vw, 62px); line-height:1.02; letter-spacing:-0.03em; font-weight:500; margin-top:22px; text-wrap:balance;}
  .svcs-head h2 .serif{color:var(--orange);}
  .svcs-head p{font-size:17px; color:#2a2a2a; margin-top:20px; max-width:640px; line-height:1.55;}

  .svcs-grid{display:grid; grid-template-columns: 300px 1fr; gap:100px; align-items:start;}
  .svcs-index{position:sticky; top:120px;}
  .svcs-index .idx-head{font-family:'Host Grotesk', monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; font-weight:600; color:var(--orange); margin-bottom:24px; display:flex; align-items:center; gap:12px;}
  .svcs-index .idx-head::before{content:""; width:24px; height:1.5px; background:var(--orange);}
  .svcs-index ul{list-style:none; border-top:1.5px solid var(--ink);}
  .svcs-index li{border-bottom:1px solid var(--line);}
  .svcs-index li a{display:flex; align-items:flex-start; gap:14px; padding:16px 0; font-size:15px; line-height:1.35; font-weight:500; letter-spacing:-0.005em; color:#1d1d1d; transition:color .25s, padding-left .3s;}
  .svcs-index li a:hover{color:var(--orange); padding-left:6px;}
  .svcs-index li a.active{color:var(--orange);}
  .svcs-index li a .num{font-family:monospace; font-size:11px; letter-spacing:0.12em; color:var(--mute); font-weight:600; min-width:22px; padding-top:3px;}
  .svcs-index li a:hover .num, .svcs-index li a.active .num{color:var(--orange);}

  .svcs-body{min-width:0;}
  .svc{padding-top:10px; padding-bottom:80px; border-bottom:1px solid var(--line);}
  .svc:last-child{border-bottom:none;}
  .svc .svc-num{font-family:monospace; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--orange); font-weight:600; margin-bottom:16px;}
  .svc h3{font-size:clamp(32px, 3.4vw, 44px); line-height:1.05; letter-spacing:-0.02em; font-weight:500; margin-bottom:22px; text-wrap:balance;}
  .svc h3 .serif{color:var(--orange);}
  .svc p{font-size:17px; line-height:1.6; color:#2a2a2a; max-width:640px;}
  .svc p + p{margin-top:16px;}
  .svc .svc-meta{margin-top:28px; display:flex; gap:32px; flex-wrap:wrap; padding-top:22px; border-top:1px solid var(--line);}
  .svc .svc-meta .item{display:flex; flex-direction:column; gap:6px;}
  .svc .svc-meta .item .k{font-family:monospace; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute); font-weight:600;}
  .svc .svc-meta .item .v{font-size:15px; font-weight:500; letter-spacing:-0.005em;}
  .svc .svc-meta .item .v .serif{color:var(--orange);}
  .svc .svc-cta{margin-top:32px; display:inline-flex; align-items:center; gap:12px; font-size:14.5px; font-weight:600; color:var(--ink); border-bottom:1.5px solid var(--ink); padding-bottom:4px; transition:color .25s, border-color .25s, gap .3s;}
  .svc .svc-cta:hover{color:var(--orange); border-color:var(--orange); gap:16px;}
  .svc .svc-cta svg{transition:transform .3s;}
  .svc .svc-cta:hover svg{transform:translateX(4px);}

  /* FAQ */
  .faq{padding:140px 0 130px; background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .faq-grid{display:grid; grid-template-columns: 1fr 1.4fr; gap:96px; align-items:start;}
  .faq-left{position:sticky; top:120px;}
  .faq-left h2{font-size:clamp(40px, 4.4vw, 58px); line-height:1.02; letter-spacing:-0.03em; font-weight:500; margin-top:22px; text-wrap:balance;}
  .faq-left h2 .serif{color:var(--orange);}
  .faq-left p{font-size:16px; color:#2a2a2a; margin-top:22px; max-width:380px; line-height:1.55;}
  .faq-left .btn{margin-top:28px;}
  .faq-left .btn.primary{background:var(--ink); color:var(--cream); border-color:var(--ink);}
  .faq-left .btn.primary:hover{background:var(--orange); color:var(--white); border-color:var(--orange);}

  .faq-list{border-top:1.5px solid var(--ink);}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{display:grid; grid-template-columns: 1fr 28px; gap:24px; align-items:center; padding:26px 0; font-size:19px; font-weight:500; letter-spacing:-0.01em; cursor:pointer; transition:color .25s, padding-left .3s;}
  .faq-q:hover{color:var(--orange); padding-left:10px;}
  .faq-item.open .faq-q{color:var(--orange);}
  .faq-q .ic{width:28px; height:28px; border-radius:999px; border:1.5px solid var(--line-strong); display:grid; place-items:center; color:var(--ink); transition:all .3s ease; flex-shrink:0;}
  .faq-q:hover .ic{border-color:var(--orange); color:var(--orange);}
  .faq-item.open .faq-q .ic{background:var(--orange); color:var(--white); border-color:var(--orange); transform:rotate(180deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .45s ease, padding .4s ease, opacity .4s ease; opacity:0;}
  .faq-item.open .faq-a{max-height:600px; padding:0 0 28px; opacity:1;}
  .faq-a p{font-size:16px; line-height:1.6; color:#2a2a2a; max-width:560px;}

  @media (max-width: 980px){
    .svcs-grid{grid-template-columns:1fr; gap:48px;}
    .svcs-index{position:static; display:none;}
    .svc{padding-bottom:60px;}
    .faq-grid{grid-template-columns:1fr; gap:44px;}
    .faq-left{position:static;}
  }

  /* ============================================================================
     contato-specific
     Hero+form combo, channels, hours card, form card, location/map.
     ============================================================================ */

  /* PAGE: dark hero containing form */
  .page{position:relative; background:var(--ink); color:var(--cream); padding:170px 0 100px; overflow:hidden; min-height:100vh;}
  .page .g1{position:absolute; right:-260px; top:-220px; width:820px; height:820px; background:radial-gradient(circle at center, rgba(255,76,0,0.50) 0%, rgba(255,76,0,0.16) 28%, transparent 62%); filter:blur(50px); pointer-events:none;}
  .page .g2{position:absolute; left:-240px; bottom:-280px; width:720px; height:720px; background:radial-gradient(circle at center, rgba(255,76,0,0.26) 0%, transparent 60%); filter:blur(50px); pointer-events:none;}
  .page::after{content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(90deg, transparent 0 60px, rgba(232,232,222,0.02) 60px 61px);}
  .page-inner{position:relative; z-index:2;}
  .page .grid{display:grid; grid-template-columns: 1fr 1.1fr; gap:96px; align-items:start;}

  /* LEFT: copy + channels */
  .page .left h1{font-size:clamp(52px, 6vw, 88px); line-height:1.0; letter-spacing:-0.03em; font-weight:500; color:var(--cream); text-wrap:balance; margin-top:18px;}
  .page .left h1 .serif{color:var(--orange);}
  .page .left .lede{margin-top:26px; font-size:18px; color:rgba(232,232,222,0.8); max-width:500px; line-height:1.55;}
  .page .left p{font-size:18px; color:rgba(232,232,222,0.8); max-width:500px; line-height:1.55;}
  .page .left p + p{margin-top:16px;}

  .channels{margin-top:56px; display:flex; flex-direction:column; gap:2px; border-top:1px solid var(--line-ink);}
  .channel{display:grid; grid-template-columns: 110px 1fr auto; gap:24px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line-ink); transition:padding-left .3s;}
  .channel:hover{padding-left:10px;}
  .channel .k{font-family:monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--orange); font-weight:600;}
  .channel .v{display:flex; flex-direction:column; gap:4px;}
  .channel .v .main{font-size:19px; font-weight:500; letter-spacing:-0.01em; color:var(--cream);}
  .channel .v .sub{font-size:13px; color:rgba(232,232,222,0.5);}
  .channel .go{width:42px; height:42px; border-radius:999px; border:1.5px solid rgba(232,232,222,0.2); display:grid; place-items:center; color:var(--cream); transition:all .3s ease; flex-shrink:0;}
  .channel:hover .go{background:var(--orange); border-color:var(--orange); color:var(--white); transform:rotate(-12deg);}

  .hours{margin-top:44px; display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:26px 30px; border:1px solid var(--line-ink); border-radius:6px; background:rgba(232,232,222,0.03); backdrop-filter:blur(6px);}
  .hours h3{font-family:monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--orange); margin-bottom:10px; font-weight:600;}
  .hours .line{display:flex; justify-content:space-between; font-size:14px; color:rgba(232,232,222,0.78); padding:5px 0;}
  .hours .line .d{color:var(--cream);}

  /* RIGHT: form card */
  .form-card{background:rgba(232,232,222,0.04); border:1px solid var(--line-ink); border-radius:8px; padding:44px 44px 40px; backdrop-filter:blur(10px); position:relative; overflow:hidden;}
  .form-card::before{content:""; position:absolute; top:0; left:0; height:3px; width:42%; background:linear-gradient(90deg, var(--orange), transparent);}
  .form-card .top{display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:28px;}
  .form-card h2{font-size:28px; line-height:1.1; letter-spacing:-0.015em; font-weight:500;}
  .form-card h2 .serif{color:var(--orange);}
  .form-card .top-sub{font-size:13.5px; color:rgba(232,232,222,0.62); margin-top:8px; max-width:360px; line-height:1.5;}
  .form-error-summary{margin-bottom:20px; padding:12px 16px; border-radius:6px; background:rgba(255,76,0,0.12); border:1px solid rgba(255,76,0,0.4); color:var(--cream); font-size:13.5px; line-height:1.5;}
  .form-card small.error{display:block; margin-top:6px; color:var(--orange); font-size:12px; font-weight:500; letter-spacing:0.01em;}
  .form-success p{margin-top:12px; line-height:1.55;}

  /* Steps indicator */
  .form-card .steps{display:flex; gap:8px; margin-bottom:34px; padding-bottom:22px; border-bottom:1px solid var(--line-ink); border-top:none;}
  .form-card .step{display:flex; align-items:center; gap:10px; padding:7px 14px; border-radius:999px; font-family:monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; font-weight:600; border:1px solid var(--line-ink); color:rgba(232,232,222,0.5); grid-template-columns:none; cursor:default;}
  .form-card .step:hover{background:transparent; padding-left:14px;}
  .form-card .step.active{background:var(--orange); color:var(--white); border-color:var(--orange);}
  .form-card .step .n{opacity:0.7;}

  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
  .field{display:flex; flex-direction:column; gap:6px;}
  .field.full{grid-column:1/-1;}
  .field label{font-family:monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:rgba(232,232,222,0.88); font-weight:600;}
  .field label .req{color:var(--orange);}
  .field input, .field select, .field textarea{width:100%; padding:15px 17px; background:rgba(16,16,16,0.75); border:1.5px solid rgba(232,232,222,0.3); border-radius:6px; color:var(--cream); font-family:inherit; font-size:15px; font-weight:500; outline:none; transition:border-color .25s, background .25s, box-shadow .25s;}
  .field input:hover, .field select:hover, .field textarea:hover{border-color:rgba(232,232,222,0.5);}
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--orange); background:rgba(16,16,16,0.9); box-shadow:0 0 0 3px rgba(255,76,0,0.18);}
  .field input::placeholder, .field textarea::placeholder{color:rgba(232,232,222,0.48);}
  .field textarea{min-height:110px; resize:vertical; line-height:1.5;}
  .field select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5l3 3 3-3' stroke='%23E8E8DE' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px;}

  /* Consent */
  .consent{display:flex; gap:12px; align-items:flex-start; padding:14px 0 18px; border-top:1px solid var(--line-ink); margin-top:24px;}
  .consent input{flex-shrink:0; margin-top:3px; width:16px; height:16px; accent-color:var(--orange);}
  .consent label{font-size:12.5px; color:rgba(232,232,222,0.6); line-height:1.5;}
  .consent label a{color:var(--orange); border-bottom:1px solid var(--orange);}

  .form-foot{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; margin-top:22px;}
  .form-foot .sla{font-size:12.5px; color:rgba(232,232,222,0.58); display:flex; gap:8px; align-items:center;}
  .form-foot .sla .pulse{width:8px; height:8px; border-radius:999px; background:var(--orange); position:relative; flex-shrink:0;}
  .form-foot .sla .pulse::after{content:""; position:absolute; inset:-4px; border-radius:999px; border:1.5px solid var(--orange); opacity:0.5; animation:pulse 2s ease-out infinite;}
  @keyframes pulse{0%{transform:scale(0.8); opacity:0.7;} 100%{transform:scale(2); opacity:0;}}

  /* MAP / LOCATION */
  .location{padding:140px 0 130px; background:var(--cream); position:relative;}
  .loc-head{margin-bottom:50px; display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap;}
  .loc-head h2{font-size:clamp(40px, 4.4vw, 60px); line-height:1.02; letter-spacing:-0.03em; font-weight:500; margin-top:22px; text-wrap:balance;}
  .loc-head h2 .serif{color:var(--orange);}
  .loc-head .addr-preview{text-align:right; font-size:14px; color:#2a2a2a; line-height:1.5; max-width:280px;}
  .loc-head .addr-preview strong{color:var(--ink); letter-spacing:-0.005em;}

  .loc-grid{display:grid; grid-template-columns:1.35fr 1fr; gap:0; border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--white);}
  .loc-map{position:relative; min-height:460px; background:#e3e3d9;}
  .loc-map iframe{width:100%; height:100%; border:0; display:block; filter:grayscale(0.8) contrast(1.05);}
  .loc-info{padding:52px 48px; display:flex; flex-direction:column; gap:28px; border-left:1px solid var(--line);}
  .loc-info .row{display:flex; flex-direction:column; gap:6px;}
  .loc-info .row .k{font-family:monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--orange); font-weight:600;}
  .loc-info .row .v{font-size:17px; font-weight:500; letter-spacing:-0.005em; color:var(--ink); line-height:1.4;}
  .loc-info .row .v a{border-bottom:1.5px solid transparent; transition:border-color .25s;}
  .loc-info .row .v a:hover{color:var(--orange); border-color:var(--orange);}
  .loc-info .row .sub{font-size:13.5px; color:var(--mute);}
  .loc-actions{margin-top:auto; display:flex; flex-direction:column; gap:10px; padding-top:28px; border-top:1px solid var(--line);}
  .loc-actions .btn.primary{background:var(--ink); color:var(--cream); border-color:var(--ink);}
  .loc-actions .btn.primary:hover{background:var(--orange); color:var(--white); border-color:var(--orange);}
  .loc-actions .btn.secondary{background:transparent; color:var(--ink); border-color:var(--line-strong);}
  .loc-actions .btn.secondary:hover{background:var(--ink); color:var(--cream); border-color:var(--ink);}

  @media (max-width: 980px){
    .page{padding:120px 0 70px;}
    .page .grid{grid-template-columns:1fr; gap:52px;}
    .form-card{padding:32px 26px;}
    .field-row{grid-template-columns:1fr;}
    .channel{grid-template-columns: 80px 1fr auto; gap:14px;}
    .loc-grid{grid-template-columns:1fr;}
    .loc-map{min-height:320px;}
    .loc-info{padding:34px 28px; border-left:none; border-top:1px solid var(--line);}
    .loc-head{align-items:flex-start;}
    .loc-head .addr-preview{text-align:left;}
  }

  /* ============================================================================
     BLOG INDEX — page-blog.php / archive-post.php
     Hero variant (.hero-inner), filters chips, featured card, posts grid, newsletter
     ============================================================================ */

  /* Blog hero uses .hero-inner instead of .hero-grid */
  .blog-hero .hero-inner{position:relative; display:grid; grid-template-columns:1.15fr 0.85fr; gap:80px; align-items:end; z-index:2;}
  .blog-hero h1{font-size:clamp(52px, 6.4vw, 92px); margin-top:12px;}
  .blog-hero .hero-right p{font-size:18px; max-width:460px;}

  /* FILTERS */
  .filters{padding:36px 0; background:var(--cream); border-bottom:1px solid var(--line);}
  .filters-inner{display:flex; gap:28px; align-items:center; flex-wrap:wrap; justify-content:space-between;}
  .chip-row{display:flex; gap:10px; flex-wrap:wrap;}
  .chip{padding:9px 16px; border-radius:999px; border:1.2px solid var(--line-strong); font-size:13px; font-weight:500; cursor:pointer; background:transparent; color:var(--ink); transition:all .25s; letter-spacing:-0.005em; display:inline-block; text-decoration:none;}
  .chip:hover{border-color:var(--orange); color:var(--orange);}
  .chip.active{background:var(--ink); color:var(--cream); border-color:var(--ink);}
  .search{display:flex; align-items:center; gap:10px; padding:10px 16px; border:1.2px solid var(--line-strong); border-radius:999px; background:transparent; min-width:260px;}
  .search input{border:none; background:transparent; outline:none; font-family:inherit; font-size:14px; color:var(--ink); width:100%;}
  .search svg{color:var(--mute); flex-shrink:0;}

  /* FEATURED */
  .feat{padding:90px 0 30px; background:var(--cream);}
  .feat-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:36px; gap:20px; flex-wrap:wrap;}
  .feat-head h2{font-size:clamp(32px, 3.6vw, 46px); line-height:1.02; letter-spacing:-0.03em; font-weight:500; margin-top:18px;}
  .feat-head h2 .serif{color:var(--orange);}
  .posts-count{font-family:monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--mute); font-weight:600;}
  .feat-card{display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:stretch; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--white); transition:transform .4s ease, box-shadow .4s ease;}
  .feat-card:hover{transform:translateY(-4px); box-shadow:0 20px 60px rgba(16,16,16,0.08);}
  .feat-visual{position:relative; background:var(--ink); min-height:440px; overflow:hidden;}
  .feat-visual img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05) brightness(0.65);}
  .feat-visual .tint{position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,76,0,0.38) 0%, rgba(16,16,16,0.6) 60%, rgba(16,16,16,0.8) 100%); mix-blend-mode:multiply;}
  .feat-visual .vignette{position:absolute; inset:0; background:linear-gradient(to top, rgba(16,16,16,0.85) 0%, rgba(16,16,16,0.2) 45%, transparent 70%);}
  .feat-visual .stripes{position:absolute; inset:0; background:repeating-linear-gradient(120deg, transparent 0 120px, rgba(232,232,222,0.05) 120px 121px, transparent 121px 240px);}
  .feat-visual .mark-label{position:absolute; left:40px; bottom:40px; font-family:monospace; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:rgba(232,232,222,0.85); font-weight:600; display:flex; gap:14px; align-items:center; z-index:2;}
  .feat-visual .mark-label::before{content:""; width:28px; height:1.5px; background:var(--orange);}
  .tag-top-right{position:absolute; right:28px; top:28px; padding:8px 14px; border-radius:999px; background:rgba(16,16,16,0.55); backdrop-filter:blur(8px); color:var(--cream); font-family:monospace; font-size:10.5px; letter-spacing:0.15em; text-transform:uppercase; font-weight:600; border:1px solid rgba(232,232,222,0.18); z-index:2;}
  .feat-body{padding:48px 52px 44px; display:flex; flex-direction:column; gap:22px; justify-content:space-between;}
  .feat-meta{display:flex; gap:14px; align-items:center; font-family:monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--mute); font-weight:600;}
  .feat-meta .pill{padding:5px 11px; background:var(--orange); color:var(--white); border-radius:999px;}
  .feat-meta .dot{width:3px; height:3px; border-radius:999px; background:var(--mute);}
  .feat-body h3{font-size:clamp(30px, 3.2vw, 42px); line-height:1.04; letter-spacing:-0.022em; font-weight:500; text-wrap:balance;}
  .feat-body h3 .serif{color:var(--orange);}
  .feat-body .excerpt{font-size:17px; line-height:1.55; color:#2a2a2a;}
  .feat-author{display:flex; gap:14px; align-items:center; padding-top:22px; border-top:1px solid var(--line);}
  .feat-author .avatar{width:44px; height:44px; border-radius:999px; background:var(--orange); color:var(--white); display:grid; place-items:center; font-weight:600; font-size:14px; letter-spacing:0.02em;}
  .feat-author .meta{display:flex; flex-direction:column; gap:2px;}
  .feat-author .name{font-size:14px; font-weight:600; letter-spacing:-0.005em;}
  .feat-author .role{font-size:12.5px; color:var(--mute);}
  .feat-cta{display:inline-flex; align-items:center; gap:12px; font-size:14.5px; font-weight:600; color:var(--ink); border-bottom:1.5px solid var(--ink); padding-bottom:4px; align-self:flex-start; transition:color .25s, border-color .25s, gap .3s;}
  .feat-cta:hover{color:var(--orange); border-color:var(--orange); gap:16px;}

  /* POSTS GRID */
  .posts{padding:70px 0 120px; background:var(--cream);}
  .posts-head{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:42px; gap:20px; flex-wrap:wrap;}
  .posts-head h2{font-size:clamp(32px, 3.4vw, 44px); line-height:1.02; letter-spacing:-0.03em; font-weight:500; margin-top:18px;}
  .posts-head h2 .serif{color:var(--orange);}
  .post-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:36px;}
  .post{background:var(--white); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex !important; flex-direction:column; transition:transform .35s ease, box-shadow .35s ease; cursor:pointer;}
  .post:hover{transform:translateY(-4px); box-shadow:0 16px 40px rgba(16,16,16,0.08); border-color:rgba(16,16,16,0.2);}
  .post-visual{position:relative; background:var(--ink); aspect-ratio: 4 / 3; overflow:hidden;}
  .post-visual img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05) brightness(0.7); transition:transform .6s ease;}
  .post:hover .post-visual img{transform:scale(1.04);}
  .post-visual .tint{position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,76,0,0.35) 0%, rgba(16,16,16,0.55) 60%, rgba(16,16,16,0.75) 100%); mix-blend-mode:multiply;}
  .post-visual .vignette{position:absolute; inset:0; background:linear-gradient(to top, rgba(16,16,16,0.85) 0%, rgba(16,16,16,0.15) 50%, transparent 75%);}
  .post-visual .stripes{position:absolute; inset:0; background:repeating-linear-gradient(120deg, transparent 0 80px, rgba(232,232,222,0.06) 80px 81px, transparent 81px 160px);}
  .post-visual .tag{position:absolute; right:18px; top:18px; padding:6px 11px; border-radius:999px; background:rgba(16,16,16,0.55); backdrop-filter:blur(8px); color:var(--cream); font-family:monospace; font-size:10px; letter-spacing:0.16em; text-transform:uppercase; font-weight:600; border:1px solid rgba(232,232,222,0.2); z-index:2;}
  .post-visual .swatch{position:absolute; left:24px; bottom:22px; right:24px; display:flex; gap:10px; align-items:center; font-family:monospace; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:rgba(232,232,222,0.9); font-weight:600; z-index:2;}
  .post-visual .swatch::before{content:""; width:20px; height:1.5px; background:var(--orange);}
  .post.v-orange .post-visual .tint{background:linear-gradient(135deg, rgba(255,76,0,0.75) 0%, rgba(255,76,0,0.55) 60%, rgba(255,76,0,0.7) 100%);}
  .post.v-orange .post-visual .vignette{background:linear-gradient(to top, rgba(255,76,0,0.6) 0%, transparent 65%);}
  .post.v-orange .post-visual img{filter:grayscale(1) contrast(1.1) brightness(0.85);}
  .post.v-cream .post-visual{background:var(--cream);}
  .post.v-cream .post-visual img{filter:grayscale(1) contrast(1) brightness(1.05);}
  .post.v-cream .post-visual .tint{background:linear-gradient(135deg, rgba(232,232,222,0.4) 0%, rgba(232,232,222,0.2) 50%, rgba(255,76,0,0.18) 100%);}
  .post.v-cream .post-visual .vignette{background:linear-gradient(to top, rgba(232,232,222,0.75) 0%, transparent 60%);}
  .post.v-cream .post-visual .tag{background:rgba(255,255,255,0.8); color:var(--ink); border-color:var(--line);}
  .post.v-cream .post-visual .swatch{color:var(--ink);}
  .post-body{padding:28px 28px 30px; display:flex; flex-direction:column; gap:16px; flex:1;}
  .post-meta{display:flex; gap:12px; align-items:center; font-family:monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--mute); font-weight:600;}
  .post-meta .cat{color:var(--orange);}
  .post-meta .dot{width:3px; height:3px; border-radius:999px; background:var(--mute);}
  .post h3{font-size:21px; line-height:1.2; letter-spacing:-0.015em; font-weight:500; text-wrap:balance;}
  .post h3 .serif{color:var(--orange);}
  .post .excerpt{font-size:14.5px; color:#3a3a3a; line-height:1.55;}
  .post-foot{display:flex; justify-content:space-between; align-items:center; padding-top:18px; border-top:1px solid var(--line); margin-top:auto;}
  .post-foot .author{display:flex; align-items:center; gap:10px; font-size:13px;}
  .post-foot .avatar{width:30px; height:30px; border-radius:999px; background:var(--orange); color:var(--white); display:grid; place-items:center; font-size:11px; font-weight:600;}
  .post-foot .read{display:inline-flex; align-items:center; gap:6px; font-family:monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink); font-weight:600; transition:color .25s, gap .3s;}
  .post:hover .post-foot .read{color:var(--orange); gap:10px;}

  /* NEWSLETTER */
  .news{padding:150px 0 160px; background:var(--ink); color:var(--cream); position:relative; overflow:hidden;}
  .news::before{content:""; position:absolute; right:-200px; top:-180px; width:720px; height:720px; background:radial-gradient(circle at center, rgba(255,76,0,0.35) 0%, rgba(255,76,0,0.10) 30%, transparent 60%); filter:blur(50px); pointer-events:none;}
  .news::after{content:""; position:absolute; left:-200px; bottom:-180px; width:560px; height:560px; background:radial-gradient(circle at center, rgba(255,76,0,0.22) 0%, transparent 60%); filter:blur(50px); pointer-events:none;}
  .news-inner{position:relative; display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center;}
  .news h2{font-size:clamp(44px, 5.2vw, 72px); line-height:1.0; letter-spacing:-0.03em; font-weight:500; margin-top:24px; text-wrap:balance;}
  .news h2 .serif{color:var(--orange);}
  .news p{font-size:17px; color:rgba(232,232,222,0.8); margin-top:24px; max-width:460px; line-height:1.55;}
  .news-form{background:rgba(232,232,222,0.04); backdrop-filter:blur(10px); border:1px solid var(--line-ink); border-radius:6px; padding:40px 38px;}
  .news-form label{display:block; font-family:monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--orange); font-weight:600; margin-bottom:12px;}
  .news-form .field{display:flex; gap:10px; padding:10px 10px 10px 20px; border:1px solid rgba(232,232,222,0.2); border-radius:999px; background:rgba(16,16,16,0.4); align-items:center; transition:border-color .25s;}
  .news-form .field:focus-within{border-color:var(--orange);}
  .news-form input{flex:1; background:transparent; border:none; outline:none; color:var(--cream); font-family:inherit; font-size:15px;}
  .news-form input::placeholder{color:rgba(232,232,222,0.4);}
  .news-form button{border:none; padding:12px 22px; border-radius:999px; background:var(--orange); color:var(--white); font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; transition:background .25s, color .25s;}
  .news-form button:hover{background:var(--cream); color:var(--ink);}
  .news-form .fine{margin-top:16px; font-size:12px; color:rgba(232,232,222,0.5); line-height:1.5;}
  .news-form .news-success{padding:12px 16px; border-radius:8px; background:rgba(255,76,0,0.12); color:var(--cream); font-size:14px;}
  .news-form .news-error{margin-top:10px; font-size:13px; color:#ff8c66;}

  @media (max-width: 980px){
    .blog-hero .hero-inner{grid-template-columns:1fr; gap:32px;}
    .filters-inner{flex-direction:column; align-items:stretch;}
    .search{min-width:unset;}
    .feat-card{grid-template-columns:1fr;}
    .feat-visual{min-height:280px;}
    .feat-body{padding:32px 28px 28px;}
    .post-grid{grid-template-columns:1fr; gap:24px;}
    .news-inner{grid-template-columns:1fr; gap:36px;}
  }

  /* ============================================================================
     SINGLE POST — single-post.php
     Article head, lead image, body typography, callouts, blockquote, related
     ============================================================================ */

  .progress{position:fixed; top:0; left:0; height:3px; background:var(--orange); z-index:70; width:0; transition:width .1s linear;}

  /* HEAD (post header) */
  .head{position:relative; background:var(--ink); color:var(--cream); padding:170px 0 80px; overflow:hidden;}
  .head .g1{position:absolute; right:-260px; top:-220px; width:820px; height:820px; background:radial-gradient(circle at center, rgba(255,76,0,0.50) 0%, rgba(255,76,0,0.16) 28%, transparent 62%); filter:blur(50px); pointer-events:none;}
  .head .g2{position:absolute; left:-240px; bottom:-280px; width:620px; height:620px; background:radial-gradient(circle at center, rgba(255,76,0,0.22) 0%, transparent 60%); filter:blur(50px); pointer-events:none;}
  .head::after{content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(90deg, transparent 0 60px, rgba(232,232,222,0.02) 60px 61px);}
  .head-inner{position:relative; z-index:2; max-width:900px;}
  .head .tags{display:flex; gap:8px; margin-bottom:28px; flex-wrap:wrap;}
  .head .tags .pill{padding:6px 14px; border-radius:999px; background:var(--orange); color:var(--white); font-family:monospace; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; font-weight:600;}
  .head .tags .tag{padding:6px 14px; border-radius:999px; background:rgba(232,232,222,0.08); border:1px solid rgba(232,232,222,0.18); color:var(--cream); font-family:monospace; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; font-weight:600;}
  h1.title{font-size:clamp(48px, 5.6vw, 82px); line-height:1.0; letter-spacing:-0.03em; font-weight:500; text-wrap:balance; color:var(--cream);}
  h1.title .serif{color:var(--orange);}
  .head .dek{margin-top:28px; font-size:19px; color:rgba(232,232,222,0.85); max-width:700px; line-height:1.5;}
  .byline{margin-top:48px; padding-top:28px; border-top:1px solid var(--line-ink); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
  .byline .author{display:flex; gap:14px; align-items:center;}
  .byline .avatar{width:46px; height:46px; border-radius:999px; background:var(--orange); color:var(--white); display:grid; place-items:center; font-weight:600; font-size:15px;}
  .byline .author .name{font-size:15px; font-weight:600; letter-spacing:-0.005em; color:var(--cream);}
  .byline .author .role{font-size:12.5px; color:rgba(232,232,222,0.58); margin-top:2px;}
  .byline .metas{display:flex; gap:28px; font-family:monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; font-weight:600; color:rgba(232,232,222,0.6); flex-wrap:wrap;}
  .byline .metas .k{display:block; color:var(--orange); margin-bottom:4px; font-size:10.5px;}
  .byline .metas .v{color:var(--cream); font-size:13.5px; font-family:'Host Grotesk',sans-serif; font-weight:500; letter-spacing:-0.005em; text-transform:none;}

  /* LEAD IMAGE */
  .lead-img{position:relative; height:460px; overflow:hidden; background:var(--ink); margin-top:-40px;}
  .lead-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05) brightness(0.75);}
  .lead-img .tint{position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,76,0,0.3) 0%, rgba(16,16,16,0.45) 60%, rgba(16,16,16,0.75) 100%); mix-blend-mode:multiply;}
  .lead-img .stripes{position:absolute; inset:0; background:repeating-linear-gradient(120deg, transparent 0 140px, rgba(232,232,222,0.05) 140px 141px, transparent 141px 280px);}
  .lead-img .caption{position:absolute; bottom:28px; left:48px; right:48px; display:flex; justify-content:space-between; align-items:end; z-index:2; gap:20px; flex-wrap:wrap;}
  .lead-img .caption .cap-text{font-family:monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:rgba(232,232,222,0.85); font-weight:600; display:flex; gap:14px; align-items:center;}
  .lead-img .caption .cap-text::before{content:""; width:28px; height:1.5px; background:var(--orange);}

  /* ARTICLE BODY */
  .article{padding:110px 0 140px; background:var(--cream);}
  .article-grid{display:grid; grid-template-columns: 220px 1fr 260px; gap:72px; align-items:start;}
  .art-body{min-width:0; max-width:720px;}
  .toc{position:sticky; top:110px;}
  .toc .label{font-family:monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--orange); font-weight:600; margin-bottom:18px; display:flex; align-items:center; gap:12px;}
  .toc .label::before{content:""; width:24px; height:1.5px; background:var(--orange);}
  .toc ol{list-style:none; border-top:1.5px solid var(--ink);}
  .toc li{border-bottom:1px solid var(--line);}
  .toc li a{display:flex; gap:12px; padding:13px 0; font-size:13.5px; line-height:1.35; font-weight:500; color:#1d1d1d; transition:color .25s, padding-left .3s;}
  .toc li a:hover{color:var(--orange); padding-left:6px;}
  .toc li a.active{color:var(--orange);}
  .toc li a .n{font-family:monospace; font-size:10.5px; color:var(--mute); font-weight:600; min-width:20px; padding-top:2px;}
  .toc li a:hover .n, .toc li a.active .n{color:var(--orange);}

  .art-body h2{font-size:clamp(30px, 3vw, 40px); line-height:1.05; letter-spacing:-0.022em; font-weight:500; margin-top:56px; margin-bottom:22px; text-wrap:balance; scroll-margin-top:100px;}
  .art-body h2 .serif{color:var(--orange);}
  .art-body h2 .n{display:block; font-family:monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--orange); font-weight:600; margin-bottom:14px;}
  .art-body h3{font-size:22px; line-height:1.25; letter-spacing:-0.015em; font-weight:600; margin-top:36px; margin-bottom:14px; color:var(--ink);}
  .art-body p{font-size:17.5px; line-height:1.75; color:#262626; margin-bottom:20px; text-wrap:pretty;}
  .art-body .lede{font-size:22px; line-height:1.5; color:var(--ink); font-weight:400; margin-bottom:36px;}
  .art-body .lede .serif{color:var(--orange);}
  .art-body strong{color:var(--ink); font-weight:600;}
  .art-body a{color:var(--orange); border-bottom:1.5px solid var(--orange);}
  .art-body a.inline{color:var(--orange); border-bottom:1.5px solid var(--orange);}
  .art-body ul{list-style:none; margin:24px 0 28px; padding-left:0;}
  .art-body ul li{position:relative; padding-left:28px; margin-bottom:14px; font-size:17px; line-height:1.65; color:#262626;}
  .art-body ul li::before{content:""; position:absolute; left:0; top:11px; width:12px; height:1.5px; background:var(--orange);}
  .art-body ol{margin:24px 0 28px; padding-left:24px;}
  .art-body ol li{margin-bottom:14px; font-size:17px; line-height:1.65; color:#262626;}
  .art-body blockquote{margin:44px 0; padding:34px 38px 34px 44px; background:var(--white); border-left:3px solid var(--orange); border-radius:4px;}
  .art-body blockquote p{font-family:'Playfair Display', serif; font-style:italic; font-size:24px; line-height:1.4; color:var(--ink); margin:0 0 14px;}
  .art-body blockquote cite{font-style:normal; font-family:monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute); font-weight:600;}
  .art-body img{margin:28px 0; border-radius:4px;}
  .art-body figure{margin:28px 0;}
  .art-body figure img{margin:0;}
  .art-body figure figcaption{margin-top:10px; font-family:monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute); font-weight:600;}

  /* Highlight callout */
  .callout{margin:40px 0; padding:32px 34px; background:var(--ink); color:var(--cream); border-radius:4px; position:relative; overflow:hidden;}
  .callout .glow{position:absolute; right:-120px; bottom:-120px; width:360px; height:360px; background:radial-gradient(circle at center, rgba(255,76,0,0.35) 0%, transparent 60%); filter:blur(40px);}
  .callout > *{position:relative; z-index:1;}
  .callout .cal-label{font-family:monospace; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--orange); font-weight:600; margin-bottom:14px;}
  .callout h4{font-size:22px; line-height:1.25; font-weight:500; letter-spacing:-0.015em; margin-bottom:12px;}
  .callout h4 .serif{color:var(--orange);}
  .callout p{font-size:15.5px; line-height:1.6; color:rgba(232,232,222,0.85); margin:0;}

  /* Inline highlight */
  .highlight{background:rgba(255,76,0,0.18); padding:1px 6px; border-radius:3px;}

  /* Right rail */
  .rail{position:sticky; top:110px; display:flex; flex-direction:column; gap:30px;}
  .rail-card{background:var(--white); border:1px solid var(--line); border-radius:6px; padding:26px 26px 24px;}
  .rail-card .rl{font-family:monospace; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--orange); font-weight:600; margin-bottom:12px;}
  .rail-card h5{font-size:17px; line-height:1.3; letter-spacing:-0.01em; font-weight:500; margin-bottom:12px;}
  .rail-card p{font-size:13.5px; line-height:1.55; color:#3a3a3a; margin-bottom:16px;}
  .rail-card .btn{padding:11px 18px; font-size:13px;}
  .share{display:flex; flex-direction:column; gap:10px;}
  .share .sh-label{font-family:monospace; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute); font-weight:600; margin-bottom:4px;}
  .share a{display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border:1px solid var(--line); border-radius:4px; font-size:13.5px; font-weight:500; color:var(--ink); transition:all .25s;}
  .share a:hover{border-color:var(--orange); color:var(--orange); background:var(--white);}
  .share a svg{transition:transform .3s;}
  .share a:hover svg{transform:translate(2px,-2px);}

  /* End-of-article CTA */
  .end-cta{margin-top:70px; padding:48px 44px; background:var(--orange); color:var(--white); border-radius:6px; position:relative; overflow:hidden;}
  .end-cta::before{content:""; position:absolute; inset:0; background:repeating-linear-gradient(120deg, transparent 0 120px, rgba(255,255,255,0.06) 120px 121px, transparent 121px 240px);}
  .end-cta > *{position:relative;}
  .end-cta h3{font-size:30px; line-height:1.1; letter-spacing:-0.02em; font-weight:500; margin-bottom:12px; max-width:520px;}
  .end-cta h3 .serif{font-style:italic; color:var(--ink); font-weight:400;}
  .end-cta p{font-size:15px; color:rgba(255,255,255,0.92); max-width:540px; margin-bottom:22px; line-height:1.55;}
  .end-cta .btn.primary{background:var(--ink); color:var(--white); border-color:var(--ink);}
  .end-cta .btn.primary:hover{background:var(--white); color:var(--ink); border-color:var(--white);}

  /* Related */
  .related{padding:110px 0 130px; background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .rel-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:44px; flex-wrap:wrap; gap:20px;}
  .rel-head h2{font-size:clamp(32px, 3.4vw, 44px); line-height:1.02; letter-spacing:-0.03em; font-weight:500; margin-top:18px;}
  .rel-head h2 .serif{color:var(--orange);}
  .rel-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
  .rel-card{display:flex; flex-direction:column; gap:14px; padding:26px; border:1px solid var(--line); border-radius:4px; transition:all .3s ease; cursor:pointer; text-decoration:none; color:inherit;}
  .rel-card:hover{border-color:var(--orange); transform:translateY(-3px);}
  .rel-card .cat{font-family:monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--orange); font-weight:600;}
  .rel-card h3{font-size:18px; line-height:1.25; letter-spacing:-0.01em; font-weight:500; text-wrap:balance;}
  .rel-card .meta{display:flex; gap:12px; font-family:monospace; font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--mute); font-weight:600; padding-top:12px; border-top:1px solid var(--line);}

  @media (max-width: 1100px){
    .article-grid{grid-template-columns:1fr; gap:48px;}
    .toc, .rail{position:static;}
    .rail{flex-direction:row; flex-wrap:wrap;}
    .rail-card{flex:1; min-width:220px;}
  }
  @media (max-width: 780px){
    .head{padding:120px 0 60px;}
    .lead-img{height:280px; margin-top:0;}
    .lead-img .caption{left:22px; right:22px; bottom:20px;}
    .article{padding:60px 0 80px;}
    .art-body blockquote{padding:22px 24px;}
    .art-body blockquote p{font-size:19px;}
    .rel-grid{grid-template-columns:1fr;}
    .byline .metas{gap:18px;}
  }
