  @font-face{
    font-family:'Sriracha';
    src: url('../fonts/Sriracha-Regular.ttf') format('truetype');
    font-weight:400;
    font-style:normal;
    font-display:swap;
  }

  /* THEME TOKENS
     Dark is the default (bare :root, no attribute needed). Light is opted
     into via [data-theme="light"] on <html>, set by public/assets/theme.js.

     --yellow/--blue/--purple/--pink etc. are brand accents and stay the same
     hex in both themes — they're used for backgrounds/chips/icons, and for
     text inside sections that are intentionally always-dark regardless of
     site theme (the CTA bar, offer/services band, floating hero mockups).
     --yellow-ink/--blue-ink are deliberately darker readable variants, used
     only where yellow/blue sit as small text or thin UI elements directly on
     the reactive page background (they fail contrast against white at full
     brightness) — see .ai/rules for the reasoning if this needs revisiting. */
  :root{
    --bg: #0a0d1c;
    --bg-2: #0d1126;
    --bg-3: #06070f;
    --bg-rgb: 10,13,28;
    --fg: #ffffff;
    --fg-rgb: 255,255,255;
    --yellow: #f8c637;
    --yellow-ink: var(--yellow);
    --pink: #ee1c66;
    --blue: #2bb1e8;
    --blue-ink: var(--blue);
    --purple: #7c3ff2;
    --purple-deep: #3a1a7a;
    --orange: #ff8c1a;
    --white: #ffffff;
    --muted: rgba(255,255,255,.68);
    --faint: rgba(255,255,255,.14);
    --card-radius: 16px;
  }

  :root[data-theme="light"]{
    --bg: #ffffff;
    --bg-2: #f2f3f8;
    --bg-3: #e7e9f0;
    --bg-rgb: 255,255,255;
    --fg: #14151f;
    --fg-rgb: 20,21,31;
    --yellow-ink: #8a5c00;
    --blue-ink: #0f6fa0;
    --muted: rgba(20,21,31,.62);
    --faint: rgba(20,21,31,.12);
  }

  *{ box-sizing:border-box; }
  html{ -webkit-text-size-adjust:100%; }
  body{
    margin:0;
    background: var(--bg);
    color:var(--fg);
    font-family:'Mukta', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    overflow-x:hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }

  .brush{ font-family:'Sriracha', cursive; font-weight:400; line-height:.95; }
  .heavy{ font-family:'Mukta', sans-serif; font-weight:800; }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    background:
      radial-gradient(1200px 700px at 78% -10%, rgba(124,63,242,.22), transparent 60%),
      radial-gradient(900px 600px at 100% 30%, rgba(43,177,232,.12), transparent 60%),
      var(--bg);
    overflow:hidden;
    padding: clamp(18px, 2.4vw, 32px) 0 0;
  }

  .hero-grid{
    display:grid;
    grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr);
    align-items:center;
    gap: clamp(24px, 4vw, 48px);
    max-width:1680px;
    margin:0 auto;
    padding-left: clamp(20px, 4vw, 64px);
  }

  /* ----- left column ----- */
  .logo-lockup{
    width: clamp(220px, 24vw, 340px);
    height:auto;
    margin:0;
  }

  .rule{
    width:100px; height:4px; background:var(--yellow-ink);
    margin: 26px 0 30px; border-radius:2px;
  }

  .headline{
    font-size: clamp(2.6rem, 6vw, 4.4rem);
    text-transform:uppercase;
    line-height:.92;
    margin:0;
  }
  .headline .line{ display:block; }
  .headline .script{ font-size:1.35em; margin: -0.1em 0; }
  .headline .white{ color:var(--fg); }
  .headline .pink{ color:var(--pink); }
  .headline .yellow{ color:var(--yellow-ink); }

  .lede{
    margin: 12px 0 0;
    max-width:560px;
    font-size: clamp(.95rem, 1.15vw, 1.1rem);
    line-height:1.55;
    color:var(--fg);
    font-weight:500;
  }
  .lede b{ font-weight:800; }
  .lede .pink{ color:var(--pink); font-weight:800; }
  .lede .blue{ color:var(--blue-ink); font-weight:800; }

  .services{
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(10px, 1.4vw, 18px);
    width: min(912px, 78vw);
    position:relative;
    z-index:5;
    margin: clamp(18px, 2.4vw, 28px) 0 clamp(18px, 2.6vw, 30px);
  }
  .service{ position:relative; padding-right: clamp(8px,1vw,14px); }
  .service + .service{ border-left:2px solid rgba(var(--fg-rgb),.24); padding-left: clamp(8px,1vw,14px); }
  .service .icon-box{
    width: clamp(46px, 4.6vw, 58px); height: clamp(46px, 4.6vw, 58px);
    display:flex; align-items:flex-end;
    margin-bottom:16px;
  }
  .service .icon-box img{ width:100%; height:100%; object-fit:contain; object-position:left bottom; }
  .service h3{
    font-family:'Mukta', sans-serif;
    font-size: clamp(.95rem, 1.3vw, 1.15rem);
    letter-spacing:.04em;
    margin:0 0 10px;
    text-transform:uppercase;
  }
  .service p{
    margin:0; color:var(--muted);
    font-size: clamp(.75rem, 1vw, .88rem);
    line-height:1.65;
    letter-spacing:.01em;
  }
  .service.marketing h3{ color:var(--pink); }
  .service.branding h3{ color:var(--yellow-ink); }
  .service.digital h3{ color:var(--blue-ink); }
  .service.content h3{ color:var(--purple); }

  /* ----- right column / visual ----- */
  .hero-visual{
    position:relative;
    display:flex;
    align-items:flex-start;
    justify-content:flex-end;
  }

  .ribbon{
    position:absolute;
    right:-10%; top:4%;
    width:42%; aspect-ratio: 42 / 78;
    background:linear-gradient(155deg, var(--purple) 10%, var(--blue) 80%);
    transform:rotate(15deg);
    -webkit-mask-image: radial-gradient(ellipse 65% 60% at 50% 50%, #000 55%, transparent 100%);
            mask-image: radial-gradient(ellipse 65% 60% at 50% 50%, #000 55%, transparent 100%);
    opacity:.85;
    z-index:0;
  }

  /* .dot-grid / .diag-line sit over the hero photo itself, not the page
     canvas, so they stay a fixed white regardless of site theme. */
  .dot-grid{
    position:absolute;
    left:1%; top:15%;
    width:13%; height:13%;
    background-image: radial-gradient(rgba(255,255,255,.55) 1.6px, transparent 1.6px);
    background-size: 16px 16px;
    opacity:.5;
    z-index:1;
  }

  .diag-line{
    position:absolute;
    left:2%; top:63%;
    width:40%; height:2px;
    background:rgba(255,255,255,.45);
    transform:rotate(-18deg);
    z-index:1;
  }

  .photo-wrap{
    position:relative;
    width: min(90%, 720px);
    margin-left:auto;
    margin-top: clamp(-10px, -2vw, 0px);
    z-index:2;
  }
  .photo-wrap img{ width:100%; height:auto; position:relative; z-index:2; }

  .float-card{
    position:absolute;
    z-index:3;
    filter: drop-shadow(0 10px 24px rgba(0,0,0,.35));
  }

  .badge{
    display:flex; align-items:center; gap:8px;
    background:var(--pink);
    color:var(--white);
    font-family:'Mukta',sans-serif; font-weight:800;
    padding:10px 16px 12px;
    border-radius:22px 22px 22px 4px;
    font-size:clamp(.85rem,1.3vw,1.15rem);
  }
  .badge svg{ width:1.1em; height:1.1em; flex:none; }
  .badge-10k{ left:6%; top:5%; }

  .circle-icon{
    width: clamp(42px, 4.6vw, 60px); height: clamp(42px, 4.6vw, 60px);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 18px rgba(0,0,0,.35);
  }
  .circle-icon svg{ width:56%; height:56%; }
  .thumb{ right:8%; top:1%; background:#1b8bd6; }
  .square-icon{
    width: clamp(46px, 5vw, 66px); height: clamp(46px, 5vw, 66px);
    border-radius:16px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 18px rgba(0,0,0,.35);
  }
  .square-icon svg{ width:58%; height:58%; }
  .ig{ right:-1%; top:19%; background:radial-gradient(circle at 30% 110%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
  .linkedin{ right:1%; top:56%; background:#0a66c2; }
  .tiktok{ right:20%; top:64%; background:#101010; }
  .youtube{ right:11%; top:70%; background:#ff0000; }

  /* .info-card and its children are a fixed light "screenshot mockup" —
     always white, regardless of site theme (it's not the page canvas). */
  .info-card{
    background:var(--white);
    color:#1a1a1a;
    border-radius:var(--card-radius);
    padding:10px 12px;
    box-shadow:0 18px 34px rgba(0,0,0,.4);
  }
  .card-strategy{
    left:-6%; top:44%;
    width: clamp(150px, 15vw, 185px);
    display:flex; gap:9px; align-items:flex-start;
  }
  .card-strategy .icon{
    width:34px; height:34px; border-radius:8px; flex:none;
    background:var(--yellow);
    display:flex; align-items:center; justify-content:center;
  }
  .card-strategy .icon svg{ width:18px; height:18px; }
  .card-strategy strong{
    display:block; font-family:'Mukta',sans-serif; font-weight:800;
    font-size:.68rem; text-transform:uppercase; letter-spacing:.02em;
    margin-bottom:7px;
  }
  .skel{ height:5px; border-radius:3px; background:#e4e4e8; margin-top:5px; }
  .skel.short{ width:60%; }

  .card-engage{
    right:5%; top:36%;
    width: clamp(105px, 11vw, 135px);
    padding-right:0;
  }
  .card-engage .label{
    font-family:'Mukta',sans-serif; font-weight:700; font-size:.58rem;
    letter-spacing:.08em; color:#8a8a92; text-transform:uppercase;
  }
  .card-engage .stat{
    display:flex; align-items:center; gap:5px;
    font-family:'Mukta',sans-serif; font-weight:800; font-size:1.15rem;
    color:var(--purple); margin:3px 0 2px;
  }
  .card-engage .stat svg{ width:14px; height:14px; }
  .card-engage .sub{ font-size:.58rem; color:#9a9aa2; }

  /* ---------- CTA BAR ---------- */
  .cta-bar{
    display:flex;
    align-items:flex-end;
    width:100%;
    max-width:1680px;
    margin: clamp(14px, 1.6vw, 22px) auto 0;
    /* Fixed-dark backing so the slivers between the clip-path segments read
       as dark seams instead of the (reactive, light-in-light-mode) page
       background showing through. */
    background:#0b0b0d;
  }
  .cta-seg{
    position:relative;
    display:flex; align-items:center; gap:14px;
    padding: clamp(12px, 1.4vw, 18px) clamp(24px, 4vw, 56px);
  }
  .cta-yellow{
    background:var(--yellow); color:#111;
    flex: 1 1 0;
    clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%);
    margin-right:-3.5%;
    z-index:3;
    min-height: clamp(110px, 12vw, 150px);
  }
  /* .cta-black / .cta-purple are a deliberately always-dark brand moment —
     their own fixed background, not the page canvas — so text inside them
     stays fixed white/bright-accent regardless of site theme. */
  .cta-black{
    background:#0b0b0d; color:var(--white);
    flex: 1 1 0;
    clip-path: polygon(9% 0, 100% 0, 88% 100%, 0 100%);
    margin-right:-3.5%;
    z-index:2;
    justify-content:center;
    padding-left: max(24px, 4vw);
    padding-right: max(24px, 5vw);
    min-height: clamp(110px, 12vw, 150px);
  }
  .cta-purple{
    background:linear-gradient(120deg, #4a1f96, #2a1a63 70%);
    color:var(--white);
    flex: 1 1 0;
    clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
    z-index:30;
    justify-content:flex-start;
    padding-left: max(24px, 4vw);
    min-height: clamp(110px, 12vw, 150px);
    box-shadow:0 -18px 36px rgba(0,0,0,.4);
  }

  .cta-arrow{
    width: clamp(36px, 3.2vw, 46px); height: clamp(36px, 3.2vw, 46px);
    border-radius:50%;
    flex:none;
    display:flex; align-items:center; justify-content:center;
  }
  .cta-yellow .cta-arrow{ background:#111; }
  .cta-yellow .cta-arrow svg{ stroke:var(--yellow); }
  .cta-black .cta-arrow{ border:2px solid var(--white); }
  .cta-black .cta-arrow svg{ stroke:var(--white); }
  .cta-arrow svg{ width:46%; height:46%; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }

  .cta-yellow h4, .cta-black h4{
    margin:0 0 6px; font-family:'Mukta',sans-serif; font-weight:800;
    font-size:clamp(1.1rem, 1.7vw, 1.35rem); text-transform:uppercase;
  }
  .cta-black h4{ color:var(--yellow); }
  .cta-yellow p, .cta-black p{ margin:0; font-size:clamp(.9rem, 1.2vw, 1rem); opacity:.85; }
  .cta-black .contact a{ display:block; font-size:clamp(1rem, 1.4vw, 1.15rem); font-weight:600; }
  .cta-black .contact a.mail{ color:var(--white); }
  .cta-black .contact a.web{ color:var(--blue); }

  .cta-purple .msg h4{
    margin:0; font-family:'Mukta',sans-serif; font-weight:800;
    font-size:clamp(1.15rem, 2vw, 1.6rem); text-transform:uppercase; line-height:1.25;
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 980px){
    .hero-grid{ grid-template-columns:1fr; padding-right: clamp(20px,4vw,64px); }
    .hero-visual{ min-height:480px; margin-top:20px; }
    .photo-wrap{ width:100%; margin:0 auto; }
    .services{ width:100%; }
    .cta-bar{ flex-direction:column; align-items:stretch; }
    .cta-seg{ clip-path:none !important; margin:0 !important; padding:22px clamp(20px,5vw,40px); }
    .cta-black{ justify-content:flex-start; padding-left:clamp(20px,5vw,40px); }
    .cta-purple{ justify-content:flex-start; }
  }

  @media (max-width: 560px){
    .services{ grid-template-columns:repeat(2,1fr); row-gap:22px; }
    .service:nth-child(3){ border-left:none; padding-left:0; }
    .badge-10k{ left:0; top:0; }
    .thumb{ right:0; top:-4%; }
    .ig{ right:0; top:10%; }
    .card-strategy{ left:0; top:30%; width:150px; }
    .card-engage{ right:0; top:14%; width:150px; }
    .linkedin{ display:none; }
    .tiktok{ display:none; }
    .youtube{ display:none; }
  }

  /* ---------- SITE NAV ---------- */
  .site-nav{
    position:sticky; top:0; z-index:100;
    background:rgba(var(--bg-rgb),.85);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(var(--fg-rgb),.08);
  }
  .site-nav-inner{
    max-width:1680px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    gap:24px;
    padding:14px clamp(20px,4vw,64px);
  }
  .site-nav-logo{ height:34px; width:auto; }
  .site-nav-links{ display:flex; gap:clamp(16px,2.4vw,32px); }
  .site-nav-links a{ font-size:.92rem; font-weight:600; color:var(--muted); transition:color .2s; }
  .site-nav-links a:hover{ color:var(--fg); }
  .nav-cta{
    background:var(--yellow); color:#111; font-weight:800; font-size:.82rem;
    padding:10px 22px; border-radius:999px; white-space:nowrap;
    text-transform:uppercase; letter-spacing:.03em; flex:none;
  }
  /* The logo artwork itself is baked with white ink ("Bowyer"), which
     disappears on a light background — swap in the pre-made reverse
     (dark-on-light) logo files instead. */
  .theme-logo-light{ display:none; }
  [data-theme="light"] .theme-logo-dark{ display:none; }
  [data-theme="light"] .theme-logo-light{ display:block; }
  @media (max-width:780px){
    .site-nav-links{ display:none; }
  }

  /* ---------- SHARED SECTION LAYOUT ---------- */
  .section{
    padding: clamp(56px, 8vw, 110px) clamp(20px,4vw,64px);
    max-width:1680px;
    margin:0 auto;
  }
  .section-head{ max-width:720px; margin:0 0 clamp(36px,5vw,56px); }
  .section-eyebrow{
    display:inline-block; font-family:'Mukta',sans-serif; font-weight:800;
    font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
    color:var(--yellow-ink); margin-bottom:12px;
  }
  .section-title{
    font-family:'Mukta',sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.8rem, 3.4vw, 2.8rem); line-height:1.08; margin:0 0 14px;
    color:var(--fg);
  }
  .section-title .brush{ color:var(--pink); text-transform:uppercase; font-size:1.15em; }
  .section-sub{ color:var(--muted); font-size:clamp(1rem,1.2vw,1.15rem); line-height:1.6; margin:0; }

  /* ---------- OFFER / SERVICES DETAIL ----------
     Always a dark band over a photo, regardless of site theme (the photo
     and its dark overlay gradient don't have a light-mode equivalent), so
     nothing in here uses the reactive --fg/--muted/--bg tokens. */
  .offer-section{
    background:
      linear-gradient(180deg, rgba(9,11,24,.58), rgba(9,11,24,.68)),
      url('../images/bg-what-we-do.jpg') center/cover no-repeat;
  }
  .offer-section .section-head{ text-shadow:0 2px 14px rgba(0,0,0,.6); }
  .offer-section .section-eyebrow{ color:var(--yellow); }
  .offer-section .section-title{ color:var(--white); }
  .offer-section .section-sub{ color:rgba(255,255,255,.68); }
  .offer-grid{
    display:grid; grid-template-columns:repeat(3, 1fr);
    gap:22px;
  }
  @media (max-width:900px){
    .offer-grid{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:560px){
    .offer-grid{ grid-template-columns:1fr; }
  }
  .offer-card{
    background:rgba(10,12,26,.72);
    -webkit-backdrop-filter:blur(6px);
    backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.1);
    border-top:3px solid var(--c, var(--pink));
    border-radius:16px;
    padding:28px 24px;
  }
  .offer-card .icon{
    width:48px; height:48px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.08);
    color:var(--c, var(--pink));
    margin-bottom:18px;
  }
  .offer-card .icon svg{ width:26px; height:26px; }
  .offer-card h3{
    font-family:'Mukta',sans-serif; font-weight:800; font-size:1.05rem;
    text-transform:uppercase; letter-spacing:.02em; margin:0 0 10px; color:var(--white);
  }
  .offer-card p{ margin:0; color:rgba(255,255,255,.68); font-size:.92rem; line-height:1.6; }
  .offer-card.c1{ --c:var(--pink); }
  .offer-card.c2{ --c:var(--yellow); }
  .offer-card.c3{ --c:var(--blue); }
  .offer-card.c4{ --c:var(--purple); }
  .offer-card.c5{ --c:var(--orange); }
  .offer-card.c6{ --c:var(--pink); }
  .offer-card.linked{ display:block; cursor:pointer; transition:transform .2s ease, border-color .2s ease; }
  .offer-card.linked:hover{ transform:translateY(-4px); border-color:var(--c, var(--pink)); }

  /* ---------- PROCESS ---------- */
  .process-grid{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:28px;
  }
  .process-step .num{
    font-family:'Mukta',sans-serif; font-weight:800; font-size:2.8rem;
    color:transparent; -webkit-text-stroke:1.5px rgba(var(--fg-rgb),.4);
    line-height:1; margin-bottom:14px;
  }
  .process-step h3{
    font-family:'Mukta',sans-serif; font-weight:800; text-transform:uppercase;
    font-size:1.05rem; margin:0 0 10px; color:var(--yellow-ink);
  }
  .process-step p{ margin:0; color:var(--muted); font-size:.92rem; line-height:1.6; }

  /* ---------- PORTFOLIO ---------- */
  .portfolio-section{ background:var(--bg-2); }
  .portfolio-grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
    gap:24px;
  }
  .portfolio-card{
    display:block;
    border-radius:16px;
    overflow:hidden;
    background:rgba(var(--fg-rgb),.03);
    border:1px solid rgba(var(--fg-rgb),.08);
    transition:transform .2s ease, border-color .2s ease;
  }
  .portfolio-card:not(.placeholder){ cursor:pointer; }
  .portfolio-card:not(.placeholder):hover{ transform:translateY(-4px); border-color:var(--blue-ink); }
  .portfolio-snap{
    position:relative;
    aspect-ratio:4/3.4;
    background:linear-gradient(135deg, var(--purple) 0%, var(--blue) 100%);
    display:flex; flex-direction:column;
  }
  /* .browser-chrome mimics an OS/browser title bar, which conventionally
     stays a fixed neutral regardless of the page it's framing. */
  .browser-chrome{
    display:flex; gap:6px; align-items:center;
    padding:10px 14px; background:#20222c;
  }
  .browser-chrome span{
    width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.5);
  }
  .browser-body{
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:6px; text-align:center; padding:20px;
  }
  .browser-body strong{
    font-family:'Mukta',sans-serif; font-weight:800; font-size:clamp(1.4rem,3vw,1.9rem);
    color:var(--fg); text-transform:uppercase; letter-spacing:.02em;
  }
  .browser-body span{
    font-size:.8rem; color:rgba(var(--fg-rgb),.75); font-weight:600;
  }
  .portfolio-snap.empty{
    background:transparent; align-items:center; justify-content:center;
  }
  .portfolio-snap.empty span{
    font-size:2.4rem; color:rgba(var(--fg-rgb),.2); font-weight:300; line-height:1;
  }
  .portfolio-snap.live{ background:#fff; }
  .snap-scroll{
    flex:1;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .snap-scroll::-webkit-scrollbar{ display:none; }
  .snap-scroll img{ width:100%; height:auto; display:block; }
  .portfolio-card.placeholder{ border-style:dashed; border-color:rgba(var(--fg-rgb),.18); }
  .portfolio-info{ padding:18px 20px; }
  .portfolio-info h3{
    font-family:'Mukta',sans-serif; font-weight:800; font-size:1.05rem;
    text-transform:uppercase; letter-spacing:.02em; margin:0 0 6px; color:var(--fg);
  }
  .portfolio-card.placeholder .portfolio-info h3{ color:var(--muted); }
  .portfolio-info .tag{ font-size:.82rem; color:var(--muted); }

  /* ---------- TESTIMONIAL ---------- */
  .testimonial-section{ background:var(--bg-2); }
  .testimonial-card{
    max-width:820px; margin:0 auto;
    background:rgba(var(--fg-rgb),.03); border:1px solid rgba(var(--fg-rgb),.08);
    border-radius:20px; padding:clamp(28px,4vw,48px);
  }
  .testimonial-card .quote-mark{
    font-family:'Sriracha',cursive; font-size:3.4rem; color:var(--pink);
    line-height:1; display:block; margin-bottom:4px;
  }
  .testimonial-card p.quote{
    font-size:clamp(1.02rem,1.3vw,1.2rem); line-height:1.65; color:var(--fg); margin:0 0 26px;
  }
  .testimonial-card .who{ display:flex; align-items:center; gap:14px; }
  .testimonial-card .who .avatar{
    width:48px; height:48px; border-radius:50%; flex:none;
    background:linear-gradient(135deg,var(--pink),var(--purple));
    display:flex; align-items:center; justify-content:center;
    font-family:'Mukta',sans-serif; font-weight:800; color:#fff; font-size:1rem;
  }
  .testimonial-card .who strong{ display:block; font-family:'Mukta',sans-serif; font-weight:800; font-size:.95rem; }
  .testimonial-card .who span{ display:block; color:var(--muted); font-size:.82rem; }
  .testimonial-card .who a{ color:var(--blue-ink); font-weight:600; }

  /* ---------- FAQ ---------- */
  .faq-list{ max-width:820px; }
  .faq-item{ border-bottom:1px solid rgba(var(--fg-rgb),.12); padding:20px 0; }
  .faq-item summary{
    list-style:none; cursor:pointer;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    font-family:'Mukta',sans-serif; font-weight:700; font-size:1.02rem; color:var(--fg);
  }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::after{
    content:'+'; font-size:1.6rem; color:var(--yellow-ink); flex:none; font-weight:400;
  }
  .faq-item[open] summary::after{ content:'\2013'; }
  .faq-item p{ margin:14px 0 0; color:var(--muted); font-size:.95rem; line-height:1.6; max-width:640px; }

  /* ---------- CONTACT + FAQ ---------- */
  .contact-section{ background:var(--bg-2); }
  .contact-faq-grid{
    display:grid; grid-template-columns: minmax(320px,1fr) minmax(320px,1fr);
    gap:clamp(32px,5vw,64px);
    align-items:start;
  }
  .contact-col, .faq-col{ min-width:0; }
  .contact-offer{ margin-bottom:28px; }
  .contact-offer .pill{
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(43,177,232,.14); color:var(--blue-ink);
    padding:8px 16px; border-radius:999px; font-weight:700; font-size:.82rem;
    margin-bottom:18px;
  }
  .contact-offer h3{ font-family:'Mukta',sans-serif; font-weight:800; font-size:1.4rem; color:var(--fg); margin:0 0 12px; }
  .contact-offer p{ color:var(--muted); line-height:1.6; margin:0 0 20px; }
  .contact-offer .mail-link{ display:inline-block; color:var(--yellow-ink); font-weight:700; }

  .form-status{
    border-radius:10px; padding:12px 16px; margin:0 0 16px;
    font-size:.9rem; font-weight:600;
  }
  .form-status.success{ background:rgba(43,177,232,.14); border:1px solid rgba(43,177,232,.4); color:var(--blue-ink); }
  .form-status.error{ background:rgba(238,28,102,.14); border:1px solid rgba(238,28,102,.4); color:var(--pink); }
  .hp-field{
    position:absolute; width:1px; height:1px; overflow:hidden;
    clip:rect(0 0 0 0); white-space:nowrap;
  }
  .field-error{ display:block; color:var(--pink); font-size:.78rem; font-weight:600; margin-top:5px; }
  .contact-form{
    display:grid; grid-template-columns:repeat(2,1fr); gap:16px;
    background:rgba(var(--fg-rgb),.03); border:1px solid rgba(var(--fg-rgb),.08);
    border-radius:20px; padding:clamp(20px,3vw,32px);
    position:relative;
  }
  .contact-form .full{ grid-column:1 / -1; }
  .contact-form label{
    display:block; font-size:.75rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.05em; color:var(--muted); margin-bottom:6px;
  }
  .contact-form input, .contact-form select, .contact-form textarea{
    width:100%; background:rgba(var(--fg-rgb),.06); border:1px solid rgba(var(--fg-rgb),.16);
    border-radius:10px; padding:11px 14px; color:var(--fg);
    font-family:'Mukta',sans-serif; font-size:.92rem;
  }
  .contact-form select option{ background:var(--bg-2); color:var(--fg); }
  .contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
    outline:none; border-color:var(--yellow-ink);
  }
  .contact-form textarea{ resize:vertical; min-height:100px; }
  .contact-form button{
    grid-column:1/-1; justify-self:start;
    background:var(--yellow); color:#111; border:none; cursor:pointer;
    font-family:'Mukta',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:.03em;
    padding:15px 28px; border-radius:999px; font-size:.92rem; margin-top:6px;
  }
  @media (max-width:900px){
    .contact-faq-grid{ grid-template-columns:1fr; }
  }
  @media (max-width:640px){
    .contact-form{ grid-template-columns:1fr; }
  }

  /* ---------- SITE FOOTER ---------- */
  .site-footer{
    background:var(--bg-3); border-top:1px solid rgba(var(--fg-rgb),.08);
    padding: clamp(32px,5vw,48px) clamp(20px,4vw,64px) 0;
  }
  .site-footer-inner{
    max-width:1680px; margin:0 auto;
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
    padding-bottom:clamp(24px,3vw,32px);
  }
  .site-footer-logo{ width:170px; height:auto; }
  .site-footer-links{ display:flex; gap:24px; flex-wrap:wrap; }
  .site-footer-links a{ color:var(--muted); font-size:.88rem; font-weight:600; }
  .site-footer-links a:hover{ color:var(--fg); }
  .site-footer-social{ display:flex; gap:12px; }
  .site-footer-social a{
    width:36px; height:36px; border-radius:50%;
    background:rgba(var(--fg-rgb),.06);
    display:flex; align-items:center; justify-content:center;
    color:var(--fg);
  }
  .site-footer-social svg{ width:16px; height:16px; }
  .theme-toggle{
    display:flex; align-items:center; justify-content:center;
    width:36px; height:36px; border-radius:50%;
    border:1px solid var(--faint);
    background:transparent; color:var(--fg);
    cursor:pointer; flex:none; padding:0;
    transition:border-color .2s, color .2s;
  }
  .theme-toggle:hover{ border-color:var(--muted); }
  .theme-toggle svg{ width:16px; height:16px; }
  .theme-toggle .icon-moon{ display:none; }
  [data-theme="light"] .theme-toggle .icon-sun{ display:none; }
  [data-theme="light"] .theme-toggle .icon-moon{ display:block; }
  .site-footer-bottom{
    max-width:1680px; margin:0 auto; padding:20px 0;
    border-top:1px solid rgba(var(--fg-rgb),.06);
    color:var(--muted); font-size:.8rem; text-align:center;
  }

  /* ---------- SUBPAGE HERO (used by non-index pages) ---------- */
  .page-hero{
    background:
      radial-gradient(1000px 600px at 85% -10%, rgba(238,28,102,.18), transparent 60%),
      radial-gradient(900px 600px at 0% 100%, rgba(43,177,232,.12), transparent 60%),
      var(--bg);
    padding: clamp(32px, 4vw, 56px) clamp(20px,4vw,64px) clamp(40px, 5vw, 64px);
  }
  .page-hero-inner{ max-width:1680px; margin:0 auto; }
  .page-hero .section-eyebrow{ margin-bottom:16px; }
  .page-hero h1.section-title{ font-size:clamp(2.2rem, 5vw, 3.6rem); }
  .page-hero .section-sub{ max-width:640px; margin-top:14px; }
  .breadcrumb{
    display:flex; align-items:center; gap:8px;
    font-size:.85rem; font-weight:600; color:var(--muted);
    margin-bottom:20px;
  }
  .breadcrumb a{ color:var(--muted); }
  .breadcrumb a:hover{ color:var(--fg); }

  /* ---------- PROSE CONTENT BLOCKS ---------- */
  .prose-section{ position:relative; }
  .prose-section .section-bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center; background-repeat:no-repeat;
    pointer-events:none;
  }
  .prose-section-inner{ position:relative; }
  .prose-layout{ display:flex; flex-direction:column; }
  .prose{
    max-width:760px;
    display:flex; flex-direction:column; gap:16px;
  }
  .prose p{
    margin:0; color:rgba(var(--fg-rgb),.85);
    font-size:clamp(1rem, 1.15vw, 1.1rem);
    line-height:1.75;
  }
  .prose p:first-of-type{
    font-size:clamp(1.05rem, 1.25vw, 1.2rem);
    color:var(--fg);
    font-weight:500;
  }
  .prose-section.has-image .prose-layout{
    display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:center;
  }
  .prose-section.has-image .prose{ max-width:none; }
  .prose-image img{ width:100%; border-radius:16px; display:block; }
  @media (max-width:900px){
    .prose-section.has-image .prose-layout{ grid-template-columns:1fr; }
    .prose-image{ order:-1; }
  }

  /* ---------- SIMPLE CTA STRIP ----------
     Reuses the .cta-purple gradient look, so it stays fixed-dark too. */
  .cta-strip{
    background:linear-gradient(120deg, #4a1f96, #2a1a63 70%);
    border-radius:20px;
    padding:clamp(28px,4vw,44px);
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
  }
  .cta-strip h3{
    font-family:'Mukta',sans-serif; font-weight:800; text-transform:uppercase;
    font-size:clamp(1.2rem,2vw,1.6rem); margin:0; color:var(--white); max-width:520px;
  }
  .cta-strip .btn{
    background:var(--yellow); color:#111; font-weight:800; text-transform:uppercase;
    letter-spacing:.03em; padding:14px 28px; border-radius:999px; font-size:.92rem;
    white-space:nowrap; flex:none;
  }
