/*
Theme Name: StartHub Digital
Theme URI: https://starthubdigital.com
Author: StartHub Digital
Description: Premium digital agency theme for StartHub Digital. E-commerce, digital marketing, China product sourcing, web development and training. Brand colours, sections and content are editable from Appearance > Customize.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: starthub-digital
Tags: business, portfolio, one-column, custom-logo, custom-menu, responsive-layout
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --brand:#34A855;
  --brand-deep:#168A45;
  --brand-soft:#F2FBF5;
  --ink:#111111;
  --ink-2:#55605A;
  --ink-3:#7C8781;
  --bg:#FFFFFF;
  --surface:#F7F8FA;
  --surface-2:#FFFFFF;
  --line:#E7EAE8;
  --line-2:#EFF1F0;
  --dark:#071A12;
  --dark-2:#0B2618;
  --logo-ink:#111111;

  --shadow-sm:0 1px 2px rgba(7,26,18,.05), 0 4px 14px rgba(7,26,18,.05);
  --shadow-md:0 2px 6px rgba(7,26,18,.06), 0 18px 40px rgba(7,26,18,.08);
  --shadow-lg:0 8px 24px rgba(7,26,18,.08), 0 32px 70px rgba(7,26,18,.12);
  --shadow-brand:0 14px 34px rgba(52,168,85,.28);

  --r-xs:10px; --r-sm:14px; --r-md:20px; --r-lg:28px; --r-xl:36px; --r-pill:999px;

  --pad:clamp(20px,5vw,40px);
  --maxw:1240px;
  --sec-y:clamp(72px,9vw,128px);

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --brand:#3FBC65;
    --brand-deep:#7FD99A;
    --brand-soft:#0E2A1D;
    --ink:#F2F7F4;
    --ink-2:#A7BAB0;
    --ink-3:#8298;
    --ink-3:#87998F;
    --bg:#061510;
    --surface:#0B2117;
    --surface-2:#0D271B;
    --line:#1B3A2A;
    --line-2:#16301F;
    --logo-ink:#FFFFFF;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);
    --shadow-md:0 2px 6px rgba(0,0,0,.4), 0 18px 40px rgba(0,0,0,.34);
    --shadow-lg:0 8px 24px rgba(0,0,0,.45), 0 32px 70px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --brand:#3FBC65;
  --brand-deep:#7FD99A;
  --brand-soft:#0E2A1D;
  --ink:#F2F7F4;
  --ink-2:#A7BAB0;
  --ink-3:#87998F;
  --bg:#061510;
  --surface:#0B2117;
  --surface-2:#0D271B;
  --line:#1B3A2A;
  --line-2:#16301F;
  --logo-ink:#FFFFFF;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 2px 6px rgba(0,0,0,.4), 0 18px 40px rgba(0,0,0,.34);
  --shadow-lg:0 8px 24px rgba(0,0,0,.45), 0 32px 70px rgba(0,0,0,.4);
}

*,*::before,*::after{box-sizing:inherit;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(96px + env(safe-area-inset-top,0px));}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Inter Tight","Segoe UI",system-ui,-apple-system,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%;}
a{color:inherit; text-decoration:none;}
button,input,select,textarea{font:inherit; color:inherit;}
h1,h2,h3,h4{
  font-family:"Bricolage Grotesque","Bricolage Grotesque Fallback",Georgia,sans-serif;
  font-weight:700; color:var(--ink);
  letter-spacing:-.025em; line-height:1.06; margin:0;
  font-variation-settings:"opsz" 48;
}
p{margin:0;}
:focus-visible{outline:3px solid var(--brand); outline-offset:3px; border-radius:6px;}
::selection{background:var(--brand); color:#fff;}

/* ============================================================
   LAYOUT PRIMITIVES
   ============================================================ */
.wrap{width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad);}
.section{padding-block:var(--sec-y); position:relative;}
.section--tint{background:var(--surface);}
.section--mint{background:var(--brand-soft);}
.sec-head{max-width:720px; margin-bottom:clamp(40px,5vw,64px);}
.sec-head--center{margin-inline:auto; text-align:center;}
.kicker{
  display:inline-flex; align-items:center; gap:9px;
  font-size:.82rem; font-weight:600; color:var(--brand-deep);
  background:var(--brand-soft); border:1px solid color-mix(in srgb,var(--brand) 22%,transparent);
  padding:6px 14px 6px 10px; border-radius:var(--r-pill); margin-bottom:22px;
}
.kicker svg{width:15px; height:15px; flex:none;}
h1{font-size:clamp(2.6rem,6.4vw,4.55rem); font-variation-settings:"opsz" 96; letter-spacing:-.035em;}
h2{font-size:clamp(2rem,4.1vw,3.05rem); font-variation-settings:"opsz" 72; letter-spacing:-.03em;}
h3{font-size:clamp(1.2rem,1.9vw,1.42rem);}
.lede{color:var(--ink-2); font-size:1.075rem; margin-top:20px; max-width:62ch;}
.muted{color:var(--ink-2);}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  --bh:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 28px; border-radius:var(--r-pill); border:1px solid transparent;
  font-weight:600; font-size:.98rem; letter-spacing:-.01em; cursor:pointer;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease), border-color .22s var(--ease), color .22s var(--ease);
  position:relative; overflow:hidden; text-align:center;
}
.btn svg{width:17px; height:17px; flex:none;}
.btn-primary{background:var(--brand); color:#fff; box-shadow:var(--shadow-brand);}
.btn-primary:hover{background:var(--brand-deep); transform:translateY(-2px); box-shadow:0 18px 40px rgba(52,168,85,.36);}
:root[data-theme="dark"] .btn-primary, :root:not([data-theme="light"]) .btn-primary{color:#04140C;}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .btn-primary{color:#fff;}}
.btn-ink{background:var(--ink); color:var(--bg); }
.btn-ink:hover{background:var(--brand); color:#fff; transform:translateY(-2px);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--brand); color:var(--brand-deep); background:var(--brand-soft); transform:translateY(-2px);}
.btn-light{background:#fff; color:#0B2618;}
.btn-light:hover{transform:translateY(-2px); box-shadow:0 18px 40px rgba(0,0,0,.25);}
.btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.34);}
.btn-outline-light:hover{background:rgba(255,255,255,.1); border-color:#fff; transform:translateY(-2px);}
.btn-sm{padding:11px 20px; font-size:.9rem;}
.btn-block{width:100%;}
.textlink{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--brand-deep);
  font-size:.95rem; transition:gap .22s var(--ease), color .22s var(--ease);
}
.textlink svg{width:16px; height:16px; transition:transform .22s var(--ease);}
.textlink:hover{gap:12px;}
.textlink:hover svg{transform:translateX(3px);}

/* ============================================================
   LOGO
   ============================================================ */
.logo{display:inline-flex; align-items:center; gap:11px;}
.logo svg.mark{width:34px; height:34px; flex:none;}
.logo .word{
  font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:800;
  font-size:1.34rem; letter-spacing:-.035em; line-height:1; white-space:nowrap;
  font-variation-settings:"opsz" 24;
}
.logo .word .g{color:var(--brand);}
.logo .word .d{color:var(--logo-ink);}
.logo--light .word .d{color:#fff;}
.logo--light .word .g{color:#5CD47C;}
.logo--lg svg.mark{width:44px; height:44px;}
.logo--lg .word{font-size:1.72rem;}

/* ============================================================
   PRELOADER
   ============================================================ */
#preloader{
  position:fixed; inset:0; z-index:200; background:var(--bg);
  display:grid; place-items:center; transition:opacity .5s var(--ease), visibility .5s;
}
#preloader.done{opacity:0; visibility:hidden;}
#preloader .logo{animation:logoIn .7s var(--ease-out) both;}
.pl-bar{width:132px; height:3px; border-radius:2px; background:var(--line); margin-top:22px; overflow:hidden;}
.pl-bar i{display:block; height:100%; width:40%; border-radius:2px; background:var(--brand); animation:plRun 1s var(--ease) infinite;}
@keyframes plRun{0%{transform:translateX(-110%)}100%{transform:translateX(330%)}}
@keyframes logoIn{from{opacity:0; transform:translateY(10px) scale(.96)}to{opacity:1; transform:none}}

/* ============================================================
   HEADER
   ============================================================ */
.header{
  position:fixed; top:env(safe-area-inset-top,0px); left:0; right:0; z-index:100;
  padding:14px var(--pad);
  transition:padding .3s var(--ease);
}
.header .bar{
  max-width:var(--maxw); margin-inline:auto;
  display:flex; align-items:center; gap:18px;
  padding:11px 12px 11px 20px; border-radius:var(--r-pill);
  border:1px solid transparent; background:transparent;
  transition:background .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease), padding .3s var(--ease);
}
.header.stuck{padding-top:10px;}
.header.stuck .bar{
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  border-color:var(--line); box-shadow:var(--shadow-md);
}
.nav{display:flex; align-items:center; gap:4px; margin-left:auto;}
.nav a{
  padding:9px 14px; border-radius:var(--r-pill); font-size:.94rem; font-weight:500; color:var(--ink-2);
  transition:color .2s var(--ease), background .2s var(--ease); white-space:nowrap;
}
.nav a:hover{color:var(--ink); background:var(--surface);}
.nav a.active{color:var(--brand-deep); background:var(--brand-soft);}
.header-cta{margin-left:6px;}
.burger{
  display:none; margin-left:auto; width:46px; height:46px; border-radius:50%;
  border:1px solid var(--line); background:var(--bg); cursor:pointer; position:relative;
}
.burger span{
  position:absolute; left:14px; width:18px; height:2px; border-radius:2px; background:var(--ink);
  transition:transform .3s var(--ease), opacity .2s var(--ease), width .3s var(--ease);
}
.burger span:nth-child(1){top:18px;}
.burger span:nth-child(2){top:23px; width:13px;}
.burger span:nth-child(3){top:28px;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5px) rotate(-45deg); width:18px;}
.mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--bg);
  padding:calc(96px + env(safe-area-inset-top,0px)) var(--pad) calc(32px + env(safe-area-inset-bottom,0px));
  display:flex; flex-direction:column; gap:4px;
  transform:translateY(-12px); opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .3s var(--ease), transform .35s var(--ease-out), visibility .3s;
  overflow-y:auto;
}
.mobile-menu.open{opacity:1; transform:none; visibility:visible; pointer-events:auto;}
.mobile-menu a.mlink{
  font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:600; font-size:1.55rem;
  letter-spacing:-.03em; padding:13px 0; border-bottom:1px solid var(--line-2);
  display:flex; align-items:center; justify-content:space-between;
  opacity:0; transform:translateY(8px);
}
.mobile-menu.open a.mlink{animation:mIn .4s var(--ease-out) forwards;}
.mobile-menu a.mlink span{font-family:"Inter Tight",sans-serif; font-size:.78rem; color:var(--brand); font-weight:600;}
@keyframes mIn{to{opacity:1; transform:none}}
.mobile-menu .btn{margin-top:26px;}
.m-contact{margin-top:auto; padding-top:28px; color:var(--ink-2); font-size:.92rem; display:grid; gap:6px;}

@media (max-width:1080px){
  .nav,.header-cta{display:none;}
  .burger{display:block;}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; overflow:hidden;
  padding-top:clamp(132px,16vw,184px); padding-bottom:clamp(56px,7vw,92px);
}
.hero-bg{position:absolute; inset:0; pointer-events:none; overflow:hidden;}
.hero-bg .glow{
  position:absolute; border-radius:50%; filter:blur(70px); opacity:.5;
}
.hero-bg .g1{width:min(620px,80vw); height:min(620px,80vw); right:-8%; top:-16%; background:radial-gradient(circle,rgba(52,168,85,.32),transparent 66%);}
.hero-bg .g2{width:min(420px,70vw); height:min(420px,70vw); left:-12%; bottom:-24%; background:radial-gradient(circle,rgba(22,138,69,.18),transparent 68%);}
.hero-bg .arc{
  position:absolute; right:-6%; top:4%; width:min(780px,92vw); height:min(780px,92vw);
  border:1px solid color-mix(in srgb,var(--brand) 20%,transparent); border-radius:50%;
}
.hero-bg .arc.a2{width:min(560px,70vw); height:min(560px,70vw); right:2%; top:14%; border-style:dashed; opacity:.65;}
.hero-grid{
  display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);
  gap:clamp(36px,5vw,64px); align-items:center; position:relative;
}
.hero h1{margin-bottom:6px;}
.hero h1 .line{display:block; overflow:hidden;}
.hero h1 .line i{display:block; font-style:normal; transform:translateY(105%); animation:riseIn .85s var(--ease-out) forwards;}
.hero h1 .line:nth-child(1) i{animation-delay:.42s;}
.hero h1 .line:nth-child(2) i{animation-delay:.52s;}
@keyframes riseIn{to{transform:none}}
.hero-sub{
  font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:600;
  font-size:clamp(1.08rem,1.9vw,1.36rem); color:var(--brand-deep);
  letter-spacing:-.02em; line-height:1.3; margin-top:20px; max-width:22ch;
}
.hero-desc{color:var(--ink-2); margin-top:20px; max-width:53ch; font-size:1.06rem;}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:34px;}
.hero-meta{display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:34px; padding-top:28px; border-top:1px solid var(--line-2);}
.hero-meta .item{display:flex; align-items:center; gap:9px; font-size:.92rem; color:var(--ink-2); font-weight:500;}
.hero-meta svg{width:18px; height:18px; color:var(--brand); flex:none;}
.fade-seq{opacity:0; animation:fadeUp .7s var(--ease-out) forwards;}
.d1{animation-delay:.62s}.d2{animation-delay:.72s}.d3{animation-delay:.82s}.d4{animation-delay:.92s}
@keyframes fadeUp{from{opacity:0; transform:translateY(14px)}to{opacity:1; transform:none}}

/* ---- hero console ---- */
.console{position:relative; min-height:clamp(380px,46vw,520px);}
.card-float{
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-md);
  box-shadow:var(--shadow-lg); padding:18px;
}
.console .main{
  position:relative; z-index:2; padding:22px;
  animation:bobA 7s ease-in-out infinite;
}
.console-top{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px;}
.console-top .t{font-size:.82rem; color:var(--ink-3); font-weight:500;}
.console-top .v{font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700; font-size:1.85rem; letter-spacing:-.03em; line-height:1.1;}
.chip{
  display:inline-flex; align-items:center; gap:6px; font-size:.78rem; font-weight:600;
  color:var(--brand-deep); background:var(--brand-soft); padding:5px 11px; border-radius:var(--r-pill);
  border:1px solid color-mix(in srgb,var(--brand) 20%,transparent);
}
.chip svg{width:12px; height:12px;}
.spark{width:100%; height:112px; display:block;}
.spark path.area{opacity:0;animation:fadeIn .8s ease 1.15s forwards;}
.spark path.line{stroke-dasharray:1000; stroke-dashoffset:1000; animation:draw 1.6s var(--ease-out) .85s forwards;}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadeIn{to{opacity:1}}
.console-legend{display:flex; gap:18px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line-2);}
.console-legend div{font-size:.78rem; color:var(--ink-3);}
.console-legend b{display:block; font-family:"Bricolage Grotesque",Georgia,sans-serif; font-size:1.02rem; color:var(--ink); letter-spacing:-.02em;}
.console .pill-float{
  position:absolute; z-index:3; right:-6px; top:-22px; display:flex; align-items:center; gap:10px;
  padding:11px 16px 11px 12px; border-radius:var(--r-pill); background:var(--brand); color:#fff;
  box-shadow:var(--shadow-brand); font-size:.86rem; font-weight:600;
  animation:bobB 5.5s ease-in-out infinite;
}
.console .pill-float svg{width:16px; height:16px;}
.console .mini{
  position:absolute; z-index:3; width:min(218px,62%); padding:14px 16px;
  left:-26px; bottom:-30px; animation:bobC 8s ease-in-out infinite;
}
.mini .row{display:flex; align-items:center; gap:11px;}
.mini .thumb{width:40px; height:40px; border-radius:var(--r-xs); background:linear-gradient(140deg,var(--brand),var(--brand-deep)); flex:none; display:grid; place-items:center;}
.mini .thumb svg{width:20px; height:20px; color:#fff;}
.mini .nm{font-weight:600; font-size:.88rem; letter-spacing:-.01em;}
.mini .sub{font-size:.76rem; color:var(--ink-3);}
.mini .bars{display:flex; gap:4px; margin-top:12px; align-items:flex-end; height:30px;}
.mini .bars i{flex:1; background:var(--brand-soft); border-radius:3px 3px 0 0; border-bottom:2px solid var(--brand);}
.console .mini2{
  position:absolute; z-index:1; right:-24px; bottom:8%; width:min(190px,54%); padding:14px 16px;
  animation:bobB 6.6s ease-in-out infinite .4s;
}
.mini2 .lbl{font-size:.75rem; color:var(--ink-3);}
.mini2 .big{font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700; font-size:1.3rem; letter-spacing:-.03em;}
.meter{height:6px; border-radius:3px; background:var(--line-2); margin-top:10px; overflow:hidden;}
.meter i{display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,var(--brand),var(--brand-deep)); width:0; transition:width 1.4s var(--ease-out);}
.is-in .meter i{width:var(--w,72%);}
@keyframes bobA{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}
@keyframes bobB{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
@keyframes bobC{0%,100%{transform:translateY(0)}50%{transform:translateY(13px)}}

/* particles */
.dot{position:absolute; width:7px; height:7px; border-radius:50%; background:var(--brand); opacity:.3;}
.dot.d-a{left:6%; top:26%; animation:bobB 6s ease-in-out infinite;}
.dot.d-b{right:12%; bottom:14%; width:11px; height:11px; opacity:.2; animation:bobC 9s ease-in-out infinite;}
.dot.d-c{left:44%; top:8%; width:5px; height:5px; animation:bobA 7.5s ease-in-out infinite;}

@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;}
  .console{margin-top:26px; min-height:auto; padding-bottom:40px;}
  .console .mini{left:0; bottom:-18px;}
  .console .mini2{display:none;}
}

/* ============================================================
   STATS
   ============================================================ */
.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
}
.stat{background:var(--bg); padding:clamp(24px,3.2vw,36px);}
.stat .n{
  font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700;
  font-size:clamp(2.1rem,3.8vw,2.9rem); letter-spacing:-.035em; line-height:1; color:var(--ink);
}
.stat .n .suf{color:var(--brand);}
.stat .l{margin-top:10px; color:var(--ink-2); font-size:.94rem;}
@media (max-width:820px){.stats{grid-template-columns:repeat(2,1fr);}}

/* ============================================================
   SERVICE CARDS (main 4)
   ============================================================ */
.svc-list{display:grid; gap:clamp(20px,2.6vw,28px);}
.svc{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr); gap:clamp(28px,4vw,56px);
  align-items:center; background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--r-xl); padding:clamp(26px,3.4vw,44px);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.svc:hover{border-color:color-mix(in srgb,var(--brand) 40%,transparent); box-shadow:var(--shadow-lg); transform:translateY(-3px);}
.svc:nth-child(even){direction:rtl;}
.svc:nth-child(even) > *{direction:ltr;}
.svc-ico{
  width:56px; height:56px; border-radius:var(--r-sm); display:grid; place-items:center;
  background:linear-gradient(145deg,var(--brand),var(--brand-deep)); color:#fff; margin-bottom:20px;
  box-shadow:var(--shadow-brand);
}
.svc-ico svg{width:27px; height:27px;}
.svc h3{font-size:clamp(1.42rem,2.5vw,1.85rem); letter-spacing:-.03em;}
.svc p.d{color:var(--ink-2); margin-top:12px; max-width:48ch;}
.tags{display:flex; flex-wrap:wrap; gap:7px; margin:22px 0 26px;}
.tags span{
  font-size:.82rem; color:var(--ink-2); background:var(--surface); border:1px solid var(--line);
  padding:5px 12px; border-radius:var(--r-pill); transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.svc:hover .tags span{border-color:color-mix(in srgb,var(--brand) 24%,transparent);}
.tags span:hover{background:var(--brand-soft); color:var(--brand-deep); border-color:var(--brand);}
.svc-visual{
  border-radius:var(--r-lg); padding:clamp(18px,2.4vw,26px); position:relative; overflow:hidden;
  background:linear-gradient(160deg,var(--brand-soft),var(--surface)); border:1px solid var(--line-2);
  min-height:250px; display:flex; flex-direction:column; justify-content:center; gap:12px;
}
@media (max-width:900px){
  .svc,.svc:nth-child(even){grid-template-columns:1fr; direction:ltr;}
  .svc-visual{order:-1; min-height:200px;}
}

/* mini UI bits used inside visuals */
.ui-card{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-sm); padding:13px 15px; box-shadow:var(--shadow-sm);}
.ui-row{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.ui-lbl{font-size:.78rem; color:var(--ink-3);}
.ui-val{font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700; letter-spacing:-.02em; font-size:1.08rem;}
.ui-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);}
.skel{height:8px; border-radius:4px; background:var(--line);}
.bars-tall{display:flex; align-items:flex-end; gap:7px; height:74px;}
.bars-tall i{flex:1; border-radius:4px 4px 0 0; background:color-mix(in srgb,var(--brand) 22%,transparent);}
.bars-tall i.hi{background:linear-gradient(180deg,var(--brand),var(--brand-deep));}

/* ============================================================
   GRID CARDS (additional services, why, training, platforms)
   ============================================================ */
.grid{display:grid; gap:clamp(14px,1.8vw,20px);}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.g-6{grid-template-columns:repeat(6,minmax(0,1fr));}
@media (max-width:1000px){.g-4,.g-6{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:760px){.g-3,.g-4,.g-6{grid-template-columns:repeat(2,minmax(0,1fr));} .g-2{grid-template-columns:1fr;}}
@media (max-width:460px){.g-4,.g-6{grid-template-columns:repeat(2,minmax(0,1fr));}}

.tile{
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-md);
  padding:22px; transition:transform .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease);
  position:relative; overflow:hidden;
}
.tile::after{
  content:""; position:absolute; left:0; right:0; top:0; height:2px;
  background:linear-gradient(90deg,var(--brand),var(--brand-deep));
  transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease);
}
.tile:hover{transform:translateY(-5px); border-color:color-mix(in srgb,var(--brand) 34%,transparent); box-shadow:var(--shadow-md);}
.tile:hover::after{transform:scaleX(1);}
.tile-ico{
  width:42px; height:42px; border-radius:var(--r-xs); display:grid; place-items:center;
  background:var(--brand-soft); color:var(--brand-deep); margin-bottom:16px;
  transition:background .28s var(--ease), color .28s var(--ease), transform .35s var(--ease);
}
.tile-ico svg{width:21px; height:21px;}
.tile:hover .tile-ico{background:var(--brand); color:#fff; transform:rotate(-6deg) scale(1.06);}
.tile h3{font-size:1.02rem; letter-spacing:-.02em;}
.tile p{font-size:.9rem; color:var(--ink-2); margin-top:7px;}

/* ============================================================
   E-COMMERCE LAUNCH TIMELINE
   ============================================================ */
.track{position:relative;}
.track-line{
  position:absolute; left:0; right:0; top:26px; height:2px; background:var(--line);
  overflow:hidden; border-radius:2px;
}
.track-line i{
  display:block; height:100%; width:0; border-radius:2px;
  background:linear-gradient(90deg,var(--brand),var(--brand-deep));
  transition:width 2.2s var(--ease-out);
}
.track.is-in .track-line i{width:100%;}
.steps{display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:14px; position:relative;}
.step{padding-top:0;}
.step .no{
  width:54px; height:54px; border-radius:50%; display:grid; place-items:center;
  background:var(--bg); border:2px solid var(--line); color:var(--ink-3);
  font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700; font-size:1rem;
  letter-spacing:-.02em; transition:all .4s var(--ease); position:relative; z-index:2;
}
.track.is-in .step .no{border-color:var(--brand); color:var(--brand-deep); background:var(--brand-soft);}
.step:hover .no{background:var(--brand); border-color:var(--brand); color:#fff; transform:scale(1.08);}
.step h3{font-size:.98rem; margin-top:16px; letter-spacing:-.02em;}
.step p{font-size:.84rem; color:var(--ink-2); margin-top:5px;}
@media (max-width:1000px){
  .track-line{display:none;}
  .steps{grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px;}
}
@media (max-width:640px){
  .steps{
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:16px;
    padding-bottom:16px; margin-inline:calc(var(--pad) * -1); padding-inline:var(--pad);
    scrollbar-width:thin;
  }
  .step{flex:0 0 200px; scroll-snap-align:start;}
}

/* ============================================================
   PLATFORM CARDS
   ============================================================ */
.plat{
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-md); padding:22px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  position:relative; overflow:hidden;
}
.plat::before{
  content:""; position:absolute; right:-40px; top:-40px; width:120px; height:120px; border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--brand) 20%,transparent),transparent 70%);
  opacity:0; transition:opacity .35s var(--ease);
}
.plat:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:color-mix(in srgb,var(--brand) 38%,transparent);}
.plat:hover::before{opacity:1;}
.plat .pi{
  width:46px; height:46px; border-radius:13px; display:grid; place-items:center;
  background:var(--ink); color:var(--bg); transition:background .3s var(--ease), color .3s var(--ease);
}
.plat:hover .pi{background:var(--brand); color:#fff;}
.plat .pi svg{width:23px; height:23px;}
.plat h3{font-size:1.02rem; margin-top:16px;}
.plat .role{font-size:.8rem; color:var(--brand-deep); font-weight:600; margin-top:4px;}
.plat p{font-size:.88rem; color:var(--ink-2); margin-top:9px;}

/* ============================================================
   WEB DEV / DEVICES
   ============================================================ */
.devices{position:relative; display:flex; align-items:flex-end; justify-content:center; gap:16px; padding:10px 0;}
.screen{background:var(--surface-2); border:1px solid var(--line); box-shadow:var(--shadow-lg); overflow:hidden;}
.dev-desk{flex:1 1 auto; max-width:440px; border-radius:var(--r-sm);}
.dev-tab{width:140px; border-radius:var(--r-sm); display:none;}
.dev-mob{width:104px; border-radius:18px; flex:none;}
@media (min-width:700px){.dev-tab{display:block;}}
.topbar{display:flex; align-items:center; gap:5px; padding:9px 11px; border-bottom:1px solid var(--line-2); background:var(--surface);}
.topbar i{width:7px; height:7px; border-radius:50%; background:var(--line); display:block;}
.topbar i:first-child{background:color-mix(in srgb,var(--brand) 60%,transparent);}
.topbar .url{margin-left:6px; height:12px; flex:1; border-radius:6px; background:var(--line-2);}
.scr-body{padding:13px;}
.scr-hero{height:58px; border-radius:8px; background:linear-gradient(130deg,var(--brand),var(--brand-deep)); margin-bottom:11px;}
.scr-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:7px;}
.scr-grid i{height:34px; border-radius:6px; background:var(--surface); border:1px solid var(--line-2); display:block;}
.scr-lines{margin-top:11px; display:grid; gap:6px;}
.dev-mob .scr-hero{height:40px;}
.dev-mob .scr-grid{grid-template-columns:1fr 1fr;}
.feat{display:grid; gap:10px; margin-top:30px;}
.feat div{
  display:flex; align-items:center; gap:11px; padding:13px 16px; border-radius:var(--r-sm);
  background:var(--surface-2); border:1px solid var(--line); font-weight:500; font-size:.94rem;
  transition:transform .25s var(--ease), border-color .25s var(--ease);
}
.feat div:hover{transform:translateX(5px); border-color:var(--brand);}
.feat svg{width:18px; height:18px; color:var(--brand); flex:none;}
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.06fr); gap:clamp(32px,5vw,68px); align-items:center;}
@media (max-width:900px){.split{grid-template-columns:1fr;}}

/* ============================================================
   SOURCING FLOW
   ============================================================ */
.flow{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; align-items:stretch;}
.fnode{
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-md);
  padding:20px 16px; text-align:center; position:relative;
  opacity:0; transform:translateY(16px);
  transition:opacity .55s var(--ease-out), transform .55s var(--ease-out), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.is-in .fnode{opacity:1; transform:none;}
.fnode:hover{border-color:var(--brand); box-shadow:var(--shadow-md);}
.fnode .fi{width:44px; height:44px; margin:0 auto 13px; border-radius:50%; display:grid; place-items:center; background:var(--brand-soft); color:var(--brand-deep);}
.fnode .fi svg{width:21px; height:21px;}
.fnode b{font-size:.94rem; font-weight:600; letter-spacing:-.01em; display:block;}
.fnode span{font-size:.8rem; color:var(--ink-3); display:block; margin-top:4px;}
.fnode::after{
  content:""; position:absolute; right:-10px; top:50%; width:10px; height:1px;
  background:color-mix(in srgb,var(--brand) 50%,transparent);
}
.fnode:last-child::after{display:none;}
@media (max-width:1000px){.flow{grid-template-columns:repeat(3,minmax(0,1fr));} .fnode::after{display:none;}}
@media (max-width:520px){.flow{grid-template-columns:repeat(2,minmax(0,1fr));}}

.globe-wrap{position:relative; display:grid; place-items:center; min-height:300px;}
.globe{width:min(330px,80%); aspect-ratio:1; border-radius:50%; border:1px solid var(--line);
  background:radial-gradient(circle at 34% 30%,var(--brand-soft),transparent 62%); position:relative;}
.globe .ring{position:absolute; inset:14%; border-radius:50%; border:1px dashed color-mix(in srgb,var(--brand) 34%,transparent); animation:spin 26s linear infinite;}
.globe .ring2{inset:30%; animation-duration:18s; animation-direction:reverse;}
@keyframes spin{to{transform:rotate(360deg)}}
.globe .node{position:absolute; width:12px; height:12px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 6px color-mix(in srgb,var(--brand) 18%,transparent);}
.globe .n1{left:22%; top:34%;} .globe .n2{right:20%; top:52%;} .globe .n3{left:48%; bottom:16%;}
.globe .lbl{position:absolute; font-size:.76rem; font-weight:600; background:var(--surface-2); border:1px solid var(--line);
  padding:5px 11px; border-radius:var(--r-pill); box-shadow:var(--shadow-sm); white-space:nowrap;}
.globe .l1{left:-6%; top:26%;} .globe .l2{right:-8%; top:58%;}

/* ============================================================
   WHY / PROCESS
   ============================================================ */
.why{
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-md); padding:26px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.why:hover{transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:color-mix(in srgb,var(--brand) 34%,transparent);}
.why .hd{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px;}
.why .ix{font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700; font-size:.88rem; color:color-mix(in srgb,var(--brand) 70%,var(--ink-3)); letter-spacing:.02em;}
.why .wi{width:44px; height:44px; border-radius:var(--r-xs); display:grid; place-items:center; background:var(--brand-soft); color:var(--brand-deep); transition:transform .4s var(--ease), background .3s var(--ease), color .3s var(--ease);}
.why:hover .wi{background:var(--brand); color:#fff; transform:translateY(-3px) rotate(-8deg);}
.why .wi svg{width:22px; height:22px;}
.why h3{font-size:1.06rem;}
.why p{font-size:.92rem; color:var(--ink-2); margin-top:9px;}

.proc{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; position:relative;}
.proc-line{position:absolute; left:6%; right:6%; top:30px; height:2px; background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 16px);}
.pstep{position:relative; text-align:center; padding:0 6px;}
.pstep .ring{
  width:62px; height:62px; margin:0 auto; border-radius:50%; display:grid; place-items:center;
  background:var(--bg); border:2px solid var(--line); position:relative; z-index:2;
  transition:all .35s var(--ease);
}
.pstep .ring svg{width:25px; height:25px; color:var(--ink-3); transition:color .35s var(--ease);}
#procBlock.is-in .pstep .ring{border-color:var(--brand);}
#procBlock.is-in .pstep .ring svg{color:var(--brand-deep);}
.pstep:hover .ring{background:var(--brand); border-color:var(--brand); transform:translateY(-4px);}
.pstep:hover .ring svg{color:#fff;}
.pstep .nm{font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700; font-size:1.02rem; margin-top:14px; letter-spacing:-.02em;}
.pstep .tx{font-size:.85rem; color:var(--ink-2); margin-top:5px;}
@media (max-width:860px){.proc{grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px;} .proc-line{display:none;}}
@media (max-width:420px){.proc{grid-template-columns:1fr;}}

/* ============================================================
   PORTFOLIO
   ============================================================ */
.work{
  border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--surface-2);
  display:flex; flex-direction:column;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .3s var(--ease);
}
.work:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:color-mix(in srgb,var(--brand) 34%,transparent);}
.work .shot{aspect-ratio:16/10; overflow:hidden; position:relative; background:var(--brand-soft); border-bottom:1px solid var(--line-2);}
.work .shot svg{width:100%; height:100%; display:block; transition:transform .6s var(--ease-out);}
.work:hover .shot svg{transform:scale(1.07);}
.work .cat{
  position:absolute; left:14px; top:14px; font-size:.75rem; font-weight:600; color:var(--brand-deep);
  background:color-mix(in srgb,var(--bg) 88%,transparent); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  padding:5px 12px; border-radius:var(--r-pill); border:1px solid var(--line);
}
.work .body{padding:22px; display:flex; flex-direction:column; gap:9px; flex:1;}
.work h3{font-size:1.1rem;}
.work p{font-size:.9rem; color:var(--ink-2);}
.work .textlink{margin-top:auto; padding-top:8px;}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.quote{
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-md); padding:26px;
  display:flex; flex-direction:column; gap:16px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.quote:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
.stars{display:flex; gap:3px; color:var(--brand);}
.stars svg{width:16px; height:16px;}
.quote p{font-size:.97rem; color:var(--ink-2); line-height:1.66;}
.who{display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:16px; border-top:1px solid var(--line-2);}
.av{
  width:44px; height:44px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:linear-gradient(145deg,var(--brand),var(--brand-deep)); color:#fff;
  font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:700; font-size:.98rem; letter-spacing:-.02em;
}
.who b{display:block; font-size:.95rem; font-weight:600; letter-spacing:-.01em;}
.who span{display:block; font-size:.83rem; color:var(--ink-3);}

/* ============================================================
   FAQ
   ============================================================ */
.faq{max-width:840px; margin-inline:auto;}
.qa{border-bottom:1px solid var(--line); }
.qa button{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:none; border:0; padding:22px 4px; cursor:pointer; text-align:left;
  font-family:"Bricolage Grotesque",Georgia,sans-serif; font-weight:600; font-size:clamp(1rem,1.5vw,1.12rem);
  letter-spacing:-.02em; color:var(--ink); transition:color .2s var(--ease);
}
.qa button:hover{color:var(--brand-deep);}
.qa .ind{
  width:32px; height:32px; border-radius:50%; border:1px solid var(--line); flex:none;
  display:grid; place-items:center; transition:all .3s var(--ease); position:relative;
}
.qa .ind::before,.qa .ind::after{content:""; position:absolute; background:var(--ink); border-radius:2px; transition:transform .3s var(--ease), background .3s var(--ease);}
.qa .ind::before{width:12px; height:2px;}
.qa .ind::after{width:2px; height:12px;}
.qa[data-open="true"] .ind{background:var(--brand); border-color:var(--brand);}
.qa[data-open="true"] .ind::before,.qa[data-open="true"] .ind::after{background:#fff;}
.qa[data-open="true"] .ind::after{transform:rotate(90deg);}
.qa .ans{display:grid; grid-template-rows:0fr; transition:grid-template-rows .38s var(--ease-out);}
.qa[data-open="true"] .ans{grid-template-rows:1fr;}
.qa .ans > div{overflow:hidden;}
.qa .ans p{color:var(--ink-2); font-size:.97rem; padding:0 60px 24px 4px; max-width:70ch;}

/* ============================================================
   DARK CTA + FOOTER
   ============================================================ */
.dark-band{background:var(--dark); color:#fff; position:relative; overflow:hidden;}
.dark-band h2,.dark-band h3{color:#fff;}
.dark-band .glow-a{position:absolute; width:min(640px,90vw); height:min(640px,90vw); border-radius:50%; filter:blur(80px);
  background:radial-gradient(circle,rgba(52,168,85,.34),transparent 65%); left:-10%; top:-40%;}
.dark-band .glow-b{position:absolute; width:min(520px,80vw); height:min(520px,80vw); border-radius:50%; filter:blur(80px);
  background:radial-gradient(circle,rgba(22,138,69,.3),transparent 65%); right:-8%; bottom:-46%;}
.dark-band .ring-dec{position:absolute; inset:auto; width:520px; height:520px; border-radius:50%;
  border:1px solid rgba(255,255,255,.07); right:6%; top:-30%;}
.cta-inner{position:relative; text-align:center; max-width:760px; margin-inline:auto;}
.cta-inner p{color:rgba(255,255,255,.72); margin-top:18px; font-size:1.08rem;}
.cta-btns{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:34px;}
.cta-note{margin-top:26px; font-size:.88rem; color:rgba(255,255,255,.5);}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-grid{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(26px,3.4vw,44px); align-items:start;}
@media (max-width:920px){.contact-grid{grid-template-columns:1fr;}}
.form-card{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-xl); padding:clamp(24px,3.2vw,40px); box-shadow:var(--shadow-md);}
.fields{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:620px){.fields{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:7px;}
.field.full{grid-column:1/-1;}
.field label{font-size:.86rem; font-weight:600; color:var(--ink-2);}
.field input,.field select,.field textarea{
  width:100%; padding:13px 15px; border-radius:var(--r-sm); border:1px solid var(--line);
  background:var(--bg); font-size:.96rem; transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field select{appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 20px) 21px, calc(100% - 15px) 21px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:42px;}
.field textarea{resize:vertical; min-height:124px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent);}
.form-foot{display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:24px;}
.form-foot small{color:var(--ink-3); font-size:.84rem;}
.form-ok{
  display:none; align-items:flex-start; gap:12px; margin-top:20px; padding:16px 18px; border-radius:var(--r-sm);
  background:var(--brand-soft); border:1px solid color-mix(in srgb,var(--brand) 34%,transparent); color:var(--brand-deep); font-size:.93rem;
}
.form-ok.show{display:flex; animation:fadeUp .4s var(--ease-out);}
.form-ok svg{width:19px; height:19px; flex:none; margin-top:2px;}

.info-list{display:grid; gap:12px;}
.info{
  display:flex; gap:14px; align-items:flex-start; padding:18px 20px; border-radius:var(--r-md);
  border:1px solid var(--line); background:var(--surface-2);
  transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.info:hover{transform:translateX(4px); border-color:var(--brand); box-shadow:var(--shadow-sm);}
.info .ii{width:42px; height:42px; border-radius:var(--r-xs); flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--brand-deep);}
.info .ii svg{width:20px; height:20px;}
.info b{display:block; font-size:.82rem; color:var(--ink-3); font-weight:500;}
.info span{display:block; font-weight:600; letter-spacing:-.01em; margin-top:2px; font-size:.98rem;}
.wa-card{
  margin-top:12px; display:flex; align-items:center; gap:14px; padding:20px;
  border-radius:var(--r-md); background:linear-gradient(140deg,var(--brand),var(--brand-deep)); color:#fff;
  box-shadow:var(--shadow-brand); transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.wa-card:hover{transform:translateY(-3px); box-shadow:0 20px 44px rgba(52,168,85,.4);}
.wa-card svg{width:26px; height:26px; flex:none;}
.wa-card b{display:block; font-size:1rem;}
.wa-card span{display:block; font-size:.85rem; opacity:.85;}

/* floating whatsapp */
.wa-float{
  position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom,0px)); z-index:90;
  width:56px; height:56px; border-radius:50%; display:grid; place-items:center;
  background:var(--brand); color:#fff; box-shadow:var(--shadow-brand);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.wa-float:hover{transform:scale(1.08) translateY(-2px);}
.wa-float svg{width:27px; height:27px;}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--dark-2); color:rgba(255,255,255,.66); padding-top:clamp(56px,7vw,84px);}
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1.2fr; gap:clamp(22px,3vw,40px);}
@media (max-width:1000px){.foot-grid{grid-template-columns:1fr 1fr 1fr;}}
@media (max-width:620px){.foot-grid{grid-template-columns:1fr 1fr;}}
.footer h4{color:#fff; font-size:.95rem; font-family:"Bricolage Grotesque",Georgia,sans-serif; letter-spacing:-.01em; margin-bottom:16px;}
.footer ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.footer a{font-size:.92rem; transition:color .2s var(--ease), padding-left .2s var(--ease);}
.footer a:hover{color:#fff;}
.footer ul a:hover{padding-left:4px; color:var(--brand);}
.foot-about p{font-size:.93rem; margin-top:18px; max-width:34ch; line-height:1.66;}
.socials{display:flex; gap:9px; margin-top:22px;}
.socials a{
  width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.72);
  transition:all .25s var(--ease);
}
.socials a:hover{background:var(--brand); border-color:var(--brand); color:#fff; transform:translateY(-3px);}
.socials svg{width:17px; height:17px;}
.foot-bot{
  margin-top:clamp(40px,5vw,60px); border-top:1px solid rgba(255,255,255,.1);
  padding:24px 0 calc(28px + env(safe-area-inset-bottom,0px));
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; font-size:.87rem;
}
.foot-bot nav{display:flex; gap:20px; flex-wrap:wrap;}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.rv{opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);}
.rv.is-in{opacity:1; transform:none;}
.rv-s > *{opacity:0; transform:translateY(20px); transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);}
.rv-s.is-in > *{opacity:1; transform:none;}
.rv-s.is-in > *:nth-child(1){transition-delay:.02s}
.rv-s.is-in > *:nth-child(2){transition-delay:.07s}
.rv-s.is-in > *:nth-child(3){transition-delay:.12s}
.rv-s.is-in > *:nth-child(4){transition-delay:.17s}
.rv-s.is-in > *:nth-child(5){transition-delay:.22s}
.rv-s.is-in > *:nth-child(6){transition-delay:.27s}
.rv-s.is-in > *:nth-child(7){transition-delay:.32s}
.rv-s.is-in > *:nth-child(8){transition-delay:.37s}
.rv-s.is-in > *:nth-child(9){transition-delay:.42s}
.rv-s.is-in > *:nth-child(10){transition-delay:.47s}
.rv-s.is-in > *:nth-child(11){transition-delay:.52s}
.rv-s.is-in > *:nth-child(12){transition-delay:.57s}
@media (prefers-reduced-motion: reduce){
  .rv,.rv-s > *,.fnode{opacity:1 !important; transform:none !important;}
  .hero h1 .line i{transform:none !important;}
  .fade-seq{opacity:1 !important;}
  .spark path.line{stroke-dashoffset:0 !important;}
  .spark path.area{opacity:1 !important;}
}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}

/* --- WordPress core classes --- */
.alignwide{width:100%}.alignfull{width:100%}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:fixed;top:14px;left:14px;z-index:300;width:auto;height:auto;clip:auto;padding:12px 20px;background:var(--brand);color:#fff;border-radius:var(--r-pill);font-weight:600}
.wp-caption,.wp-caption-text,.gallery-caption,.bypostauthor,.sticky{}
.page-shell{padding-top:clamp(140px,16vw,190px);padding-bottom:var(--sec-y)}
.entry-content{max-width:72ch}
.entry-content > * + *{margin-top:1.1em}
.entry-content h2,.entry-content h3{margin-top:1.8em}
.entry-content a{color:var(--brand-deep);text-decoration:underline;text-underline-offset:3px}
.entry-content img{border-radius:var(--r-md)}
.entry-content blockquote{border-left:3px solid var(--brand);padding-left:20px;color:var(--ink-2)}
.post-list{display:grid;gap:18px}
