/* =========================================================
   HIVEKART — Design tokens (v5)
   Palette: warm butter (#FFEFB3) + deep forest green (#013E37).
   Distinctive, premium, high-contrast. Helvetica throughout.
   Animations are intentionally VISIBLE (not just decorative
   whispers) but GPU-cheap: transform/opacity only.
   ========================================================= */
:root{
  --bg:            #FFFFFF;
  --bg-alt:        #FBF6E4;
  --surface:       #FFFFFF;
  --ink:           #013E37;
  --ink-soft:      #4C6B65;
  --line:          #E3E9E1;

  --butter:        #FFEFB3;
  --butter-deep:   #F7DD86;
  --butter-ink:    #4A3B00;

  --primary:       #013E37;
  --primary-2:     #0E6B5B;
  --primary-deep:  #012622;
  --primary-soft:  #4FA593;

  --navy:          #013E37;
  --navy-surface:  #0A2B26;

  --mint:          #0E6B5B;

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 26px;

  --shadow-sm: 0 2px 12px rgba(1,20,17,.08);
  --shadow-md: 0 16px 40px rgba(1,20,17,.12);
  --shadow-lg: 0 28px 70px rgba(1,20,17,.18);
  --shadow-accent: 0 16px 38px rgba(1,62,55,.30);

  --grad-primary: linear-gradient(135deg, var(--primary), var(--primary-2));
  --grad-butter: linear-gradient(135deg, var(--butter), var(--butter-deep));
  --grad-text: linear-gradient(100deg, var(--primary) 0%, var(--primary-2) 100%);

  --ease: cubic-bezier(.22,1,.36,1);
  --dur-fast: .22s;
  --dur-mid: .5s;

  --font: "Helvetica Neue", Helvetica, Arial, sans-serif;

  color-scheme: light;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; background: var(--bg); }
body{
  margin:0; background: var(--bg); color: var(--ink);
  font-family: var(--font); font-size:17.5px; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
/* ---------- Page loading: full-page skeleton (shown while navigating, hides when page is ready) ---------- */
@keyframes hkShimmer{ from{ background-position:-200% 0; } to{ background-position:200% 0; } }
@keyframes hkSkelSafety{ to{ opacity:0; visibility:hidden; } }
.sk, .skel{
  background: linear-gradient(100deg, transparent 25%, color-mix(in srgb, var(--primary-2) 13%, transparent) 50%, transparent 75%), var(--bg-alt);
  background-size:200% 100%;
  animation: hkShimmer 1.4s linear infinite;
}
img.skel{ min-height:60px; border-radius:inherit; }

#hkSkeleton{
  position:fixed; inset:0; z-index:99998; background: var(--bg); overflow:hidden;
  opacity:1; visibility:visible; transition: opacity .28s ease, visibility 0s linear 0s;
}
#hkSkeleton:not(.js-ctl){ animation: hkSkelSafety .01s linear 8s forwards; } /* safety: never get stuck if JS fails */
#hkSkeleton.hide{ opacity:0; visibility:hidden; pointer-events:none; transition: opacity .28s ease, visibility 0s linear .28s; }
#hkSkeleton.show{ transition: opacity .12s ease; }
.sk-wrap{ max-width:1300px; margin:0 auto; padding:1rem clamp(1.2rem,4vw,2.6rem) 0; }
.sk-head{ display:flex; align-items:center; gap:1.2rem; padding:.85rem 1.2rem; border:1px solid var(--line); border-radius:18px; background: var(--surface); }
.sk-logo{ width:150px; height:30px; border-radius:9px; }
.sk-nav{ display:flex; gap:.7rem; margin:0 auto; }
.sk-nav i{ display:block; width:70px; height:14px; border-radius:8px; }
.sk-btn{ width:170px; height:42px; border-radius:12px; }
.sk-hero{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(1.5rem,5vw,3.5rem); align-items:center; padding:clamp(2.5rem,7vw,5rem) 0 2.5rem; }
.sk-line{ height:16px; border-radius:8px; margin-bottom:.8rem; }
.sk-pill{ width:180px; height:30px; border-radius:999px; margin-bottom:1.4rem; }
.sk-title{ height:46px; border-radius:12px; margin-bottom:.9rem; }
.sk-cta{ display:flex; gap:.8rem; margin-top:1.6rem; }
.sk-cta i{ display:block; width:170px; height:48px; border-radius:13px; }
.sk-media{ width:100%; aspect-ratio:16/12; border-radius:var(--radius-lg); }
.sk-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.sk-card{ height:190px; border-radius:var(--radius-md); }
@media (max-width:900px){
  .sk-nav{ display:none; } .sk-btn{ width:44px; margin-left:auto; }
  .sk-hero{ grid-template-columns:1fr; } .sk-media{ order:-1; max-width:380px; margin:0 auto; }
  .sk-cards{ grid-template-columns:1fr; } .sk-card{ height:120px; } .sk-logo{ width:120px; }
}
@media (prefers-reduced-motion: reduce){ .sk, .skel{ animation:none; } }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
input,textarea,select{ font-family:inherit; }
ul{ margin:0; padding:0; list-style:none; }
::selection{ background: var(--butter); color: var(--primary); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

.wrap{ max-width:1300px; margin:0 auto; padding-left:clamp(1.2rem,4vw,2.6rem); padding-right:clamp(1.2rem,4vw,2.6rem); }
.eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.82rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color: var(--primary-2); margin:0 0 1rem;
}
.eyebrow::before{ content:""; width:18px; height:2.5px; background: var(--butter-deep); border-radius:2px; }

h1,h2,h3{ font-family: var(--font); font-weight:700; letter-spacing:-.015em; margin:0; }
em{
  font-style:normal;
  background: var(--grad-text);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding: 1.05rem 2rem; border-radius:12px; font-size:.98rem; font-weight:700;
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  white-space:nowrap; position:relative; overflow:hidden;
}
.btn-primary{ background: var(--grad-primary); color: var(--butter); box-shadow: var(--shadow-accent); }
.btn-primary:hover{ transform: translateY(-2px) scale(1.015); box-shadow: 0 20px 48px rgba(1,62,55,.4); }
.btn-primary::after{
  content:""; position:absolute; top:0; left:-60%; width:45%; height:100%;
  background: linear-gradient(115deg, transparent, rgba(255,239,179,.55), transparent);
  transform: skewX(-18deg); transition: left .65s ease; pointer-events:none;
}
.btn-primary:hover::after{ left:130%; }
.btn-ghost{ color: var(--ink); border:1.5px solid var(--line); background: var(--surface); }
.btn-ghost:hover{ border-color: var(--primary-2); color: var(--primary-2); transform: translateY(-2px); }
.btn-sm{ padding:.78rem 1.4rem; font-size:.88rem; }
.btn-whatsapp{ background:#25D366; color:#fff; box-shadow: 0 12px 28px rgba(37,211,102,.32); }
.btn-whatsapp:hover{ transform: translateY(-2px); }
.btn-block{ width:100%; }

/* Header CTA — a more distinctive "VIP" pill with a breathing glow ring */
@keyframes ctaGlow{
  0%,100%{ box-shadow: 0 8px 20px rgba(1,62,55,.35), 0 0 0 0 rgba(255,239,179,.45); }
  50%{ box-shadow: 0 10px 26px rgba(1,62,55,.45), 0 0 0 7px rgba(255,239,179,0); }
}
.btn-header-cta{
  display:inline-flex; align-items:center; gap:.55rem;
  background: var(--grad-primary); color: var(--butter);
  padding: .78rem 1.5rem; border-radius:999px; font-size:.9rem; font-weight:700;
  position:relative; overflow:hidden;
  animation: ctaGlow 2.6s ease-in-out infinite;
  transition: transform var(--dur-fast) var(--ease);
}
.btn-header-cta svg{ width:17px; height:17px; flex-shrink:0; }
.btn-header-cta::after{
  content:""; position:absolute; top:0; left:-60%; width:45%; height:100%;
  background: linear-gradient(115deg, transparent, rgba(255,239,179,.55), transparent);
  transform: skewX(-18deg); transition: left .65s ease; pointer-events:none;
}
.btn-header-cta:hover{ transform: translateY(-2px) scale(1.03); animation-play-state: paused; }
.btn-header-cta:hover::after{ left:130%; }
@media (max-width: 400px){ .btn-header-cta span, .btn-header-cta{ font-size:.82rem; padding:.7rem 1.1rem; } }

.reveal{ opacity:0; transform: translateY(24px); transition: opacity .75s var(--ease), transform .75s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* =========================================================
   Backdrop textures
   ========================================================= */
.dot-grid-bg{
  position:absolute; inset:0; pointer-events:none;
  background-image:
    radial-gradient(color-mix(in srgb, var(--primary) 20%, transparent) 1.5px, transparent 1.5px),
    radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--primary-2) 14%, transparent), transparent 42%),
    radial-gradient(circle at 85% 10%, color-mix(in srgb, var(--butter-deep) 40%, transparent), transparent 42%);
  background-size: 28px 28px, auto, auto;
  -webkit-mask-image: linear-gradient(to bottom, black, transparent 88%);
  mask-image: linear-gradient(to bottom, black, transparent 88%);
  opacity:.7;
}

.hex-icon{
  width:56px; height:56px; display:flex; align-items:center; justify-content:center;
  background: var(--grad-primary);
  color: var(--butter); flex-shrink:0; border-radius: var(--radius-sm);
  box-shadow: 0 10px 24px rgba(1,62,55,.3);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}
.hex-icon svg{ width:24px; height:24px; }

/* =========================================================
   Top utility bar
   ========================================================= */
.topbar{
  background: var(--navy); color: var(--butter);
  font-size:.86rem; font-weight:500; letter-spacing:.01em;
  padding:.65rem 0; text-align:center;
}
.topbar strong{ color:#fff; font-weight:700; }
.topbar a{ color: var(--butter-deep); font-weight:700; margin-left:6px; text-decoration:underline; }

/* =========================================================
   Header — modern floating capsule nav
   ========================================================= */
.site-header{ position:sticky; top:0; z-index:130; padding-top:1rem; }
.header-capsule{ max-width:1300px; margin:0 auto; padding: 0 clamp(1.2rem,4vw,2.6rem); }
.header-inner{
  display:flex; align-items:center; gap:1.4rem; padding:.85rem 1.2rem;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  backdrop-filter: blur(20px) saturate(1.5);
  border:1px solid var(--line); border-radius:18px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--dur-fast) var(--ease);
}
.site-header.scrolled .header-inner{ box-shadow: var(--shadow-md); border-color: color-mix(in srgb, var(--primary) 18%, var(--line)); }

.logo{ display:flex; align-items:center; gap:.55rem; margin-right:.5rem; font-size:1.32rem; font-weight:800; letter-spacing:-.01em; }
.logo-mark{
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  background: var(--grad-primary); color: var(--butter); font-size:.98rem; font-weight:800; border-radius:9px;
  box-shadow: 0 8px 18px rgba(1,62,55,.35);
  transition: transform .4s var(--ease);
}
.logo:hover .logo-mark{ transform: rotate(-6deg) scale(1.06); }
.logo-word em{ background:none; -webkit-text-fill-color:initial; color: var(--primary); }

.main-nav{ display:flex; align-items:center; gap:.25rem; margin:0 auto; }
.main-nav a{
  font-size:.95rem; font-weight:600; color: var(--ink-soft); padding:.6rem 1rem; border-radius:9px;
  transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.main-nav a:hover{ color: var(--ink); background: var(--bg-alt); }
.main-nav a.active{ color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, transparent); }

.header-actions{ display:flex; align-items:center; gap:.7rem; }

.hamburger{ display:none; width:42px; height:42px; border-radius:11px; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.hamburger span{ width:20px; height:1.8px; background: var(--ink); transition: all .3s var(--ease); }
.hamburger.open span:nth-child(1){ transform: translateY(6.8px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform: translateY(-6.8px) rotate(-45deg); }

.mobile-nav{
  position:fixed; inset:0 0 0 auto; width:min(320px,84vw); height:100dvh; background: var(--surface); z-index:120;
  display:flex; flex-direction:column; gap:1.4rem; padding:6.5rem 2.2rem 2rem;
  transform: translateX(100%); transition: transform var(--dur-mid) var(--ease); box-shadow: var(--shadow-lg);
}
.mobile-nav.open{ transform: translateX(0); }
.mobile-nav a{ font-size:1.4rem; font-weight:700; }
.mobile-nav .btn{ margin-top:1rem; }

.mobile-nav-backdrop{
  position:fixed; inset:0; z-index:115; background: rgba(1,20,17,.5);
  backdrop-filter: blur(2px);
  opacity:0; visibility:hidden; transition: opacity var(--dur-mid) var(--ease), visibility var(--dur-mid) var(--ease);
}
.mobile-nav-backdrop.show{ opacity:1; visibility:visible; }

/* =========================================================
   Page header banner
   ========================================================= */
.page-hero{ position:relative; padding: clamp(3.2rem,6vw,4.8rem) 0 clamp(2.6rem,5vw,3.6rem); overflow:hidden; }
.page-hero-inner{ position:relative; z-index:1; max-width:740px; }
.page-hero h1{ font-size: clamp(2.4rem,4.6vw,3.4rem); line-height:1.08; }
.page-hero p{ color: var(--ink-soft); font-size:1.14rem; margin-top:1.2rem; max-width:580px; }
.breadcrumb{ font-size:.86rem; font-weight:600; color: var(--ink-soft); margin-bottom:1.2rem; }

/* two-column hero banner layout, used on services/team/careers/contact */
.page-hero-inner.page-hero-split{
  max-width:none; display:grid; grid-template-columns: 1.1fr .9fr;
  gap: clamp(2rem,5vw,3.5rem); align-items:center;
}
.page-hero-text{ min-width:0; }
.page-hero-lottie{
  position:relative; width:100%; aspect-ratio:16/11; max-width:460px; margin:0 auto;
  border-radius: var(--radius-lg); background: var(--bg-alt); border:1px solid var(--line);
  box-shadow: var(--shadow-md); overflow:hidden;
  display:flex; align-items:center; justify-content:center; padding:.8rem;
  animation: floatY 7s ease-in-out infinite;
}
.page-hero-lottie::before{
  content:""; position:absolute; inset:0; z-index:0;
  background: radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--primary-2) 16%, transparent), transparent 60%);
  pointer-events:none;
}
.page-hero-lottie lottie-player,
.page-hero-lottie > div{ position:relative; z-index:1; width:100%; height:100%; }

/* about page reuses the existing photo frame for its animation */
.about-media .page-hero-lottie{
  position:absolute; inset:0; max-width:none; margin:0; border-radius:inherit;
  border:none; box-shadow:none; animation:none;
}
.breadcrumb span{ color: var(--primary-2); }

/* =========================================================
   Visible floating blobs — used across hero & page-hero
   ========================================================= */
@keyframes blobFloat{
  0%{ transform: translate(0,0) scale(1); }
  33%{ transform: translate(34px,-30px) scale(1.12); }
  66%{ transform: translate(-24px,22px) scale(.92); }
  100%{ transform: translate(0,0) scale(1); }
}
@keyframes blobFloatSlow{
  0%,100%{ transform: translate(0,0) scale(1); }
  50%{ transform: translate(-30px,-26px) scale(1.14); }
}
@keyframes floatSmall{
  0%,100%{ transform: translateY(0) rotate(0deg); }
  50%{ transform: translateY(-14px) rotate(6deg); }
}
@keyframes ringPulse{
  0%{ transform: scale(.9); opacity:.55; }
  70%{ transform: scale(1.45); opacity:0; }
  100%{ transform: scale(1.45); opacity:0; }
}
@keyframes spinSlow{ to{ transform: rotate(360deg); } }

.hero{ position:relative; padding: clamp(2.2rem,5vw,3.8rem) 0 clamp(3.8rem,7vw,5.4rem); overflow:hidden; --mx:0; --my:0; }
.hero::before,
.hero::after{
  content:""; position:absolute; border-radius:50%; pointer-events:none; z-index:0;
  filter: blur(30px); opacity:.55;
  animation: blobFloat 10s ease-in-out infinite;
  transition: transform .35s ease-out;
}
.hero::before{
  width:380px; height:380px; top:-100px; right:6%;
  background: radial-gradient(circle, var(--primary-2), transparent 70%);
  transform: translate(calc(var(--mx,0) * 1px), calc(var(--my,0) * 1px));
}
.hero::after{
  width:300px; height:300px; bottom:-70px; left:2%;
  background: radial-gradient(circle, var(--butter-deep), transparent 70%);
  animation-duration: 8s; animation-direction: reverse;
  transform: translate(calc(var(--mx,0) * -1px), calc(var(--my,0) * -1px));
}
.hero-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.hero-title{ font-size: clamp(2.6rem,5.2vw,4.3rem); line-height:1.04; }
.hero-sub{ max-width:500px; color: var(--ink-soft); font-size:1.16rem; margin:1.5rem 0 2rem; }
.hero-cta{ display:flex; gap:1.1rem; flex-wrap:wrap; margin-bottom:2.5rem; }
.hero-badges{ display:flex; gap:1.7rem; flex-wrap:wrap; }
.hero-badges div{ display:flex; align-items:center; gap:.6rem; font-size:.92rem; color: var(--ink-soft); font-weight:600; }
.hero-badges svg{ width:18px; height:18px; color: var(--primary-2); flex-shrink:0; }

.hero-visual{ position:relative; height: clamp(370px,42vw,490px); }
.hero-visual::before,
.hero-visual::after{
  content:""; position:absolute; border-radius:50%; pointer-events:none; z-index:2;
  border:2px solid var(--primary-2);
}
.hero-visual::before{ width:72px; height:72px; top:6%; right:-6%; animation: floatSmall 6s ease-in-out infinite; }
.hero-visual::after{ width:40px; height:40px; bottom:12%; left:-4%; border-color: var(--butter-deep); animation: floatSmall 5s ease-in-out infinite 1s; }

.dash-card{
  position:absolute; background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg); padding:1.5rem;
}
.dash-main{ inset:6% 8% 10% 0; width:78%; height:88%; animation: floatY 6.5s ease-in-out infinite; }
.dash-chip{ width:58%; aspect-ratio:5/4; right:0; top:0; animation: floatY 6.5s ease-in-out infinite 1.1s; z-index:2; }
.dash-chip2{ width:52%; aspect-ratio:2/1; right:6%; bottom:2%; animation: floatY 6.5s ease-in-out infinite 2.2s; z-index:2; }
@keyframes floatY{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-18px);} }

.dash-header{ display:flex; align-items:center; gap:.5rem; margin-bottom:1.1rem; }
.dash-dot{ width:9px; height:9px; border-radius:50%; background: var(--line); }
.dash-stat-label{ font-size:.74rem; color: var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.dash-stat-value{ font-size:1.85rem; font-weight:800; background: var(--grad-text); -webkit-background-clip:text; background-clip:text; color:transparent; margin:.28rem 0 .85rem; }
.sparkline{ width:100%; height:54px; }
.sparkline path.line{ fill:none; stroke: var(--primary-2); stroke-width:2.6; stroke-linecap:round; }
.sparkline path.fill{ fill: url(#sparkFill); opacity:.4; }
.dash-chip .dash-stat-value{ font-size:1.4rem; }
.dash-chip2{ display:flex; align-items:center; gap:1rem; }
.dash-chip2 .hex-icon{ width:46px; height:46px; }
.dash-chip2 .hex-icon svg{ width:21px; height:21px; }
.floating-hex{
  position:absolute; display:flex; align-items:center; justify-content:center;
  background: var(--surface); border:1px solid var(--line); box-shadow: var(--shadow-md); border-radius: var(--radius-sm);
  animation: floatSmall 5.5s ease-in-out infinite;
}
.floating-hex svg{ width:23px; height:23px; color: var(--primary-2); }

/* =========================================================
   Impact strip — icon-badge stat cards (replaces plain number grid)
   ========================================================= */
.impact-strip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding: clamp(2.6rem,4.5vw,3.6rem) 0; }
.impact-grid{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:1.4rem; position:relative;
}
.impact-card{
  position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; text-align:left;
  background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-md);
  padding: 1.5rem 1.3rem 1.4rem; gap:.35rem;
  transition: opacity .6s var(--ease), transform .6s var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  transition-delay: calc(var(--i, 0) * 90ms);
}
.impact-card:hover{ transition-delay:0s; transform: translateY(-5px); box-shadow: var(--shadow-md); border-color: var(--primary-2); }
.impact-card .hex-icon{ margin-bottom:.2rem; }
.impact-top{ display:flex; align-items:center; justify-content:space-between; width:100%; margin-bottom:.6rem; }
.impact-top .hex-icon{ margin-bottom:0; flex-shrink:0; }
.impact-spark{ width:64px; height:24px; overflow:visible; flex-shrink:0; }
.impact-spark path{ fill:none; stroke: var(--primary-2); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:160; stroke-dashoffset:160; transition: stroke-dashoffset 1.1s var(--ease); }
.impact-card.is-visible .impact-spark path{ stroke-dashoffset:0; }
.impact-bars{ width:56px; height:24px; overflow:visible; flex-shrink:0; }
.impact-bars rect{ fill: var(--primary-2); opacity:.85; rx:2; transform-origin: bottom; transform: scaleY(0); transition: transform .6s var(--ease); }
.impact-bars rect:nth-child(1){ transition-delay:.05s; } .impact-bars rect:nth-child(2){ transition-delay:.15s; }
.impact-bars rect:nth-child(3){ transition-delay:.25s; } .impact-bars rect:nth-child(4){ transition-delay:.35s; }
.impact-bars rect:nth-child(5){ transition-delay:.45s; }
.impact-card.is-visible .impact-bars rect{ transform: scaleY(1); }
.impact-ring{ width:34px; height:34px; flex-shrink:0; transform:rotate(-90deg); }
.impact-ring .ring-bg{ fill:none; stroke: var(--line); stroke-width:3.5; }
.impact-ring .ring-fg{ fill:none; stroke: var(--primary-2); stroke-width:3.5; stroke-linecap:round; stroke-dasharray:97.4; stroke-dashoffset:97.4; transition: stroke-dashoffset 1.1s var(--ease); }
.impact-card.is-visible .impact-ring .ring-fg{ stroke-dashoffset: calc(97.4 - (97.4 * var(--pct) / 100)); }
.impact-card strong{ display:block; font-size: clamp(1.7rem,2.8vw,2.3rem); font-weight:800; background: var(--grad-text); -webkit-background-clip:text; background-clip:text; color:transparent; align-self:flex-start; }
.impact-label{ font-size:.86rem; color: var(--ink-soft); font-weight:600; align-self:flex-start; }
.impact-caption{ text-align:center; font-size:.85rem; color: var(--ink-soft); margin-top:1.4rem; }

/* =========================================================
   Platforms section — eBay / Amazon / Etsy / TikTok Shop
   VIP-style staggered reveal + idle float + hover tilt/glow
   + a continuously "streaming" rotating gradient ring
   ========================================================= */
@keyframes platformFloat{
  0%,100%{ transform: translateY(0) rotate(0deg); }
  50%{ transform: translateY(-9px) rotate(-3deg); }
}
@keyframes ringSpin{ to{ transform: rotate(360deg); } }
.platforms-section{ padding: clamp(2.8rem,5vw,4rem) 0 clamp(3.6rem,6vw,5rem); position:relative; overflow:hidden; }
.platform-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:1.4rem; perspective: 1000px; }
.platform-card{
  background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 2.4rem 1.6rem 2rem; text-align:center; position:relative; overflow:hidden;
  transition: opacity .6s var(--ease), transform .6s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
  transition-delay: calc(var(--i, 0) * 90ms);
  transform-style: preserve-3d;
}
.platform-card.is-visible{ transition-delay: calc(var(--i, 0) * 110ms); }
.platform-card:hover{
  transition-delay: 0s;
  transform: translateY(-8px) rotateX(4deg) rotateY(-4deg) scale(1.02);
  box-shadow: 0 26px 54px rgba(1,62,55,.2);
  border-color: transparent;
}
/* streaming conic-gradient ring behind each icon — always animating, not just on hover */
.platform-ring{
  position:absolute; top:1.5rem; left:50%; width:104px; height:104px; margin-left:-52px;
  border-radius:50%; z-index:0; opacity:.5;
  background: conic-gradient(from 0deg, transparent 0deg, var(--pf-color1, var(--primary-2)) 90deg, transparent 180deg, var(--pf-color2, var(--butter-deep)) 270deg, transparent 360deg);
  filter: blur(2px);
  animation: ringSpin 6s linear infinite;
}
.platform-card:nth-child(1) .platform-ring{ --pf-color1:#E53238; --pf-color2:#0064D2; }
.platform-card:nth-child(2) .platform-ring{ --pf-color1:#FF9900; --pf-color2:#232F3E; }
.platform-card:nth-child(3) .platform-ring{ --pf-color1:#F1641E; --pf-color2:#D14D0C; }
.platform-card:nth-child(4) .platform-ring{ --pf-color1:#25F4EE; --pf-color2:#FE2C55; }
.platform-card:hover .platform-ring{ opacity:.9; animation-duration: 2.2s; }

.platform-icon{
  width:72px; height:72px; margin:0 auto 1.2rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  animation: platformFloat 5.5s ease-in-out infinite;
  box-shadow: 0 10px 26px rgba(0,0,0,.18);
  position:relative; z-index:1;
  background: var(--surface);
  padding:14px;
}
.platform-icon img{ width:100%; height:100%; object-fit:contain; border-radius:50%; }
.platform-card:nth-child(2) .platform-icon{ animation-delay: .4s; }
.platform-card:nth-child(3) .platform-icon{ animation-delay: .8s; }
.platform-card:nth-child(4) .platform-icon{ animation-delay: 1.2s; }
.platform-card h3{ font-size:1.15rem; margin-bottom:.4rem; position:relative; z-index:1; }
.platform-tag{ font-size:.82rem; font-weight:700; color: var(--primary-2); margin-bottom:.7rem; position:relative; z-index:1; }
.platform-desc{ font-size:.87rem; color: var(--ink-soft); line-height:1.55; position:relative; z-index:1; }

/* =========================================================
   Section head
   ========================================================= */
.section-head{ padding: clamp(3.4rem,6vw,4.8rem) 0 2.2rem; max-width:660px; }
.section-head h2{ font-size: clamp(2rem,3.6vw,2.7rem); }
.section-sub{ color: var(--ink-soft); margin-top:.8rem; max-width:540px; font-size:1.05rem; }
.section-head.center{ margin:0 auto; text-align:center; }

/* =========================================================
   Service cards
   ========================================================= */
#services{ position:relative; overflow:hidden; }
#services::before{
  content:""; position:absolute; top:8%; left:-8%; width:400px; height:400px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--primary-2) 22%, transparent), transparent 70%);
  filter: blur(40px); pointer-events:none; z-index:0; animation: blobFloatSlow 12s ease-in-out infinite; opacity:.8;
}
#services > *{ position:relative; z-index:1; }

.service-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:1.4rem; padding-bottom: clamp(3.8rem,6vw,5.4rem); }
.service-card{
  background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 2rem 1.8rem; display:flex; flex-direction:column; gap:1rem; position:relative;
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.service-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1.5px;
  background: var(--grad-primary);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity:0; transition: opacity .35s ease; pointer-events:none; z-index:0;
}
.service-card:hover{ transform: translateY(-6px); box-shadow: 0 22px 48px rgba(1,62,55,.18); border-color: transparent; }
.service-card:hover::before{ opacity:1; }
.service-card > *{ position:relative; z-index:1; }
.service-card h3{ font-size:1.28rem; }
.service-card p{ color: var(--ink-soft); font-size:1rem; flex:1; }
.service-card .card-link{ font-size:.92rem; font-weight:700; color: var(--primary-2); display:inline-flex; align-items:center; gap:.4rem; }
.service-card .card-link svg{ width:16px; height:16px; transition: transform var(--dur-fast) var(--ease); }
.service-card:hover .card-link svg{ transform: translateX(4px); }
.service-card:hover .hex-icon{ transform: rotate(-8deg) scale(1.1); box-shadow: 0 14px 30px rgba(1,62,55,.4); }
.service-card .price-pill{ align-self:flex-start; font-size:.78rem; font-weight:700; background: var(--bg-alt); color: var(--primary); padding:.35rem .8rem; border-radius:999px; }

/* the commission-based card gets special featured treatment in the grid */
.service-card-featured{
  background: var(--grad-primary); border-color: transparent; color: var(--butter);
}
.service-card-featured h3, .service-card-featured .card-link{ color: var(--butter); }
.service-card-featured p{ color: rgba(255,239,179,.82); }
.service-card-featured .hex-icon{ background: rgba(255,239,179,.16); color: var(--butter); box-shadow:none; }
.service-card-featured::before{ background: rgba(255,239,179,.5); }
.service-card-featured .commission-badge{ position:absolute; top:-12px; left:1.6rem; animation: badgeBob 3s ease-in-out infinite; }

/* =========================================================
   Process steps
   ========================================================= */
.process{ background: var(--bg-alt); position:relative; overflow:hidden; }
.process::before{
  content:""; position:absolute; bottom:-15%; right:-6%; width:360px; height:360px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--butter-deep) 55%, transparent), transparent 70%);
  filter: blur(40px); pointer-events:none; z-index:0; animation: blobFloatSlow 11s ease-in-out infinite; opacity:.85;
}
.process > *{ position:relative; z-index:1; }
.process-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:1.5rem; padding-bottom: clamp(3.8rem,6vw,5.4rem); }
.process-step{ padding: 1.7rem 1.5rem; }
.process-num{ font-size:2.6rem; font-weight:800; color: transparent; -webkit-text-stroke: 1.6px var(--primary-soft); opacity:.65; line-height:1; margin-bottom:.75rem; }
.process-step h3{ font-size:1.1rem; margin-bottom:.5rem; }
.process-step p{ color: var(--ink-soft); font-size:.95rem; }

/* =========================================================
   Values grid
   ========================================================= */
section:has(> .wrap > .values-grid){ position:relative; overflow:hidden; }
section:has(> .wrap > .values-grid)::before{
  content:""; position:absolute; top:0; right:10%; width:320px; height:320px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--primary-2) 20%, transparent), transparent 70%);
  filter: blur(40px); pointer-events:none; z-index:0; animation: blobFloat 13s ease-in-out infinite; opacity:.8;
}
.values-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:1.3rem; padding-bottom: clamp(3.8rem,6vw,5.4rem); position:relative; z-index:1; }
.value-card{ display:flex; gap:1.1rem; padding:1.6rem; border-radius: var(--radius-md); background: var(--surface); border:1px solid var(--line); transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.value-card:hover{ transform: translateY(-5px); box-shadow: 0 20px 42px rgba(1,62,55,.14); }
.value-card h3{ font-size:1.08rem; margin-bottom:.35rem; }
.value-card p{ font-size:.92rem; color: var(--ink-soft); }

/* =========================================================
   Service detail sections
   ========================================================= */
.service-detail{ padding: clamp(3.2rem,6vw,4.8rem) 0; border-top:1px solid var(--line); scroll-margin-top:120px; }
.service-detail:nth-child(even){ background: var(--bg-alt); }
.service-detail-inner{ display:grid; grid-template-columns: .55fr .45fr; gap: clamp(2rem,5vw,4rem); align-items:start; }
.service-detail .hex-icon{ width:64px; height:64px; margin-bottom:1.3rem; }
.service-detail .hex-icon:hover{ transform: rotate(-8deg) scale(1.1); box-shadow: 0 14px 30px rgba(1,62,55,.4); }
.service-detail .hex-icon svg{ width:28px; height:28px; }
.service-detail h2{ font-size: clamp(1.75rem,3vw,2.3rem); margin-bottom:1.1rem; }
.service-detail > .service-detail-inner > div:first-child > p{ color: var(--ink-soft); max-width:500px; margin-bottom:1.5rem; font-size:1.03rem; }
.check-list{ display:flex; flex-direction:column; gap:.8rem; margin-bottom:1.6rem; }
.check-list li{ display:flex; gap:.75rem; align-items:flex-start; font-size:.98rem; }
.check-list svg{ width:19px; height:19px; color: var(--primary-2); flex-shrink:0; margin-top:.15rem; }
.service-side{ background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-lg); padding:1.8rem; box-shadow: var(--shadow-sm); }
.service-side .price-tag{ font-size:.78rem; font-weight:600; color: var(--ink-soft); margin-bottom:.35rem; }
.service-side .price-value{ font-size:2rem; font-weight:800; color: var(--primary); margin-bottom:1.2rem; }
.mini-steps{ display:flex; flex-direction:column; gap:.9rem; margin-bottom:1.4rem; }
.mini-step{ display:flex; gap:.75rem; align-items:flex-start; font-size:.9rem; color: var(--ink-soft); }
.mini-step-num{ width:24px; height:24px; border-radius:50%; background: var(--bg-alt); color: var(--primary); display:flex; align-items:center; justify-content:center; font-size:.74rem; font-weight:700; flex-shrink:0; }

/* =========================================================
   Pricing packages
   ========================================================= */
section:has(> .wrap > .pricing-grid){ position:relative; overflow:hidden; }
section:has(> .wrap > .pricing-grid)::before{
  content:""; position:absolute; bottom:-10%; left:8%; width:340px; height:340px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--butter-deep) 55%, transparent), transparent 70%);
  filter: blur(42px); pointer-events:none; z-index:0; animation: blobFloatSlow 12s ease-in-out infinite; opacity:.85;
}
.pricing-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:1.4rem; padding-bottom: clamp(3.8rem,6vw,5.4rem); align-items:stretch; position:relative; z-index:1; }
.price-card{ background: var(--surface); border:1.5px solid var(--line); border-radius: var(--radius-lg); padding: 2rem 1.8rem; display:flex; flex-direction:column; position:relative; transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.price-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.price-card.featured{ border-color: var(--primary); position:relative; box-shadow: var(--shadow-accent); }
.price-card.featured::after{ content:"MOST POPULAR"; position:absolute; top:-14px; left:50%; transform:translateX(-50%); background: var(--grad-primary); color: var(--butter); font-size:.68rem; font-weight:800; letter-spacing:.06em; padding:.4rem 1rem; border-radius:999px; }
.price-card h3{ font-size:1.2rem; margin-bottom:.45rem; }
.price-card .price-sub{ font-size:.9rem; color: var(--ink-soft); margin-bottom:1.2rem; }
.price-card .price-amount{ font-size:2.15rem; font-weight:800; margin-bottom:1.4rem; }
.price-card .price-amount span{ font-size:.92rem; font-weight:500; color: var(--ink-soft); }
.price-card ul{ display:flex; flex-direction:column; gap:.7rem; margin-bottom:1.6rem; flex:1; }
.price-card ul li{ display:flex; gap:.65rem; align-items:flex-start; font-size:.92rem; }
.price-card ul li svg{ width:17px; height:17px; color: var(--primary-2); flex-shrink:0; margin-top:.2rem; }

.commission-callout{
  display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap;
  background: var(--bg-alt); border:1.5px dashed var(--primary-soft); border-radius: var(--radius-lg);
  padding: 1.8rem 2rem; margin-top:.4rem; margin-bottom: clamp(3.8rem,6vw,5.4rem);
}
.commission-callout > div{ flex:1; min-width:240px; }
.commission-callout h3{ font-size:1.05rem; margin-bottom:.4rem; }
.commission-callout p{ font-size:.9rem; color: var(--ink-soft); }

/* prominent top-of-page commission banner — the main highlight */
.commission-banner{
  position:relative; display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap;
  background: var(--grad-primary); color: var(--butter);
  border-radius: var(--radius-lg); padding: 2.2rem 2.4rem; margin: 0 0 clamp(2.6rem,5vw,3.6rem);
  box-shadow: var(--shadow-accent); scroll-margin-top:120px;
}
.commission-banner::before{
  content:""; position:absolute; inset:0; border-radius:inherit; overflow:hidden;
  background: radial-gradient(circle at 85% 20%, rgba(255,239,179,.22), transparent 45%);
  pointer-events:none;
}
.commission-banner > *{ position:relative; z-index:1; }
.commission-banner .hex-icon{ background: rgba(255,239,179,.16); color: var(--butter); box-shadow:none; flex-shrink:0; }
.commission-banner > div{ flex:1; min-width:260px; }
.commission-banner h2{ font-size: clamp(1.3rem,2.4vw,1.6rem); color: var(--butter); margin-bottom:.5rem; }
.commission-banner p{ font-size:.94rem; color: rgba(255,239,179,.85); max-width:560px; }
.commission-banner .btn-primary{ background: var(--butter); color: var(--primary-deep); box-shadow:none; flex-shrink:0; }
.commission-banner .btn-primary:hover{ background:#fff; }
.commission-banner .btn-primary::after{ background: linear-gradient(115deg, transparent, rgba(1,62,55,.25), transparent); }
.commission-badge{
  position:absolute; top:-12px; left:2.2rem; background: var(--butter); color: var(--primary-deep);
  font-size:.68rem; font-weight:800; letter-spacing:.08em; padding:.4rem 1rem; border-radius:999px;
  box-shadow: var(--shadow-sm); z-index:2;
  animation: badgeBob 3s ease-in-out infinite;
}
@keyframes badgeBob{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-4px); } }

/* =========================================================
   Testimonials — auto-scrolling marquee stream
   ========================================================= */
.testimonials{ background: var(--navy); color: var(--butter); padding-bottom: clamp(3.8rem,6vw,5.4rem); overflow:hidden; position:relative; }
.testimonials::before{
  content:""; position:absolute; inset:0; z-index:0;
  background: radial-gradient(circle at 15% 10%, rgba(255,239,179,.16), transparent 42%), radial-gradient(circle at 85% 90%, rgba(79,165,147,.3), transparent 42%);
  pointer-events:none; animation: blobFloat 16s ease-in-out infinite;
}
.testimonials .wrap{ position:relative; z-index:1; }
.testimonials .eyebrow{ color: var(--butter-deep); }
.testimonials .eyebrow::before{ background: var(--butter-deep); }
.testimonials h2{ color: var(--butter); }
.marquee-wrap{ position:relative; z-index:1; -webkit-mask-image: linear-gradient(to right, transparent, black 6%, black 94%, transparent); mask-image: linear-gradient(to right, transparent, black 6%, black 94%, transparent); }
.testimonial-track{ display:flex; gap:1.3rem; width:max-content; animation: marqueeScroll 40s linear infinite; }
.marquee-wrap:hover .testimonial-track{ animation-play-state: paused; }
@keyframes marqueeScroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }
.t-card{ flex:0 0 350px; background: rgba(255,239,179,.08); border:1px solid rgba(255,239,179,.18); border-radius: var(--radius-lg); padding:1.8rem; }
.t-stars{ color: var(--butter-deep); letter-spacing:.1em; margin-bottom:1rem; font-size:.95rem; }
.t-quote{ font-size:1.03rem; line-height:1.58; margin-bottom:1.4rem; color:#F3EFE0; }
.t-person{ display:flex; align-items:center; gap:.75rem; }
.t-person img{ width:42px; height:42px; border-radius:50%; object-fit:cover; }
.t-person strong{ display:block; font-size:.94rem; color: var(--butter); }
.t-person span{ display:block; font-size:.8rem; opacity:.68; }

/* =========================================================
   FAQ accordion
   ========================================================= */
.faq-list{ max-width:780px; padding-bottom: clamp(3.8rem,6vw,5.4rem); display:flex; flex-direction:column; gap:.9rem; }
.faq-item{ border:1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); overflow:hidden; }
.faq-q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.25rem 1.45rem; font-weight:700; font-size:1.03rem; text-align:left; }
.faq-q svg{ width:19px; height:19px; flex-shrink:0; transition: transform var(--dur-fast) var(--ease); color: var(--primary-2); }
.faq-item.open .faq-q svg{ transform: rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition: max-height var(--dur-mid) var(--ease); }
.faq-a p{ padding: 0 1.45rem 1.3rem; color: var(--ink-soft); font-size:.97rem; }

/* =========================================================
   CTA banner
   ========================================================= */
.cta-banner{ margin: 0 auto clamp(3.8rem,6vw,5.4rem); max-width:1300px; background: var(--navy); border-radius: var(--radius-lg); padding: clamp(2.6rem,5vw,3.8rem); text-align:center; position:relative; overflow:hidden; color: var(--butter); }
.cta-banner::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 20% 20%, rgba(255,239,179,.2), transparent 45%), radial-gradient(circle at 80% 85%, rgba(79,165,147,.32), transparent 40%);
  animation: blobFloatSlow 12s ease-in-out infinite;
}
.cta-banner > *{ position:relative; z-index:1; }
.cta-banner h2{ color: var(--butter); font-size: clamp(1.85rem,3.2vw,2.4rem); margin-bottom:.8rem; }
.cta-banner p{ opacity:.85; max-width:500px; margin:0 auto 1.8rem; font-size:1.05rem; color:#F3EFE0; }
.cta-banner .btn-ghost{ background: rgba(255,239,179,.12); color: var(--butter); border-color: rgba(255,239,179,.32); }
.cta-banner .btn-ghost:hover{ background: rgba(255,239,179,.2); border-color: var(--butter); color: var(--butter); }

/* =========================================================
   About page
   ========================================================= */
.about-hero-inner{ display:grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2rem,5vw,4rem); align-items:center; padding-bottom: clamp(2.6rem,5vw,4rem); }
.about-media{ position:relative; width:100%; border-radius: var(--radius-lg); overflow:hidden; aspect-ratio:4/3; max-height:460px; box-shadow: var(--shadow-lg); }
.about-media img{ width:100%; height:100%; object-fit:cover; }
.about-badge{ position:absolute; bottom:1.2rem; left:1.2rem; background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(8px); border-radius: var(--radius-md); padding:1rem 1.2rem; box-shadow: var(--shadow-md); display:flex; gap:.75rem; align-items:center; }
.about-badge strong{ display:block; font-size:1.2rem; color: var(--primary); }
.about-badge span{ font-size:.78rem; color: var(--ink-soft); }

/* =========================================================
   Team page
   ========================================================= */
section:has(> .wrap > .team-grid){ position:relative; overflow:hidden; }
section:has(> .wrap > .team-grid)::before{
  content:""; position:absolute; top:-10%; left:6%; width:340px; height:340px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--primary-2) 20%, transparent), transparent 70%);
  filter: blur(42px); pointer-events:none; z-index:0; animation: blobFloatSlow 14s ease-in-out infinite; opacity:.8;
}
.team-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:1.4rem; padding-bottom: clamp(3.8rem,6vw,5.4rem); position:relative; z-index:1; }
.team-card{ background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-lg); overflow:hidden; transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.team-card:hover{ transform: translateY(-6px); box-shadow: 0 22px 48px rgba(1,62,55,.18); }
.team-photo{ aspect-ratio:5/6; overflow:hidden; position:relative; }
.team-photo img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.team-card:hover .team-photo img{ transform: scale(1.05); }
.team-photo::after{ content:""; position:absolute; inset:0; box-shadow: inset 0 0 0 0 var(--primary-2); transition: box-shadow .4s ease; }
.team-card:hover .team-photo::after{ box-shadow: inset 0 0 0 3px var(--primary-2); }
.team-body{ padding:1.3rem 1.4rem 1.5rem; }
.team-body h3{ font-size:1.1rem; margin-bottom:.25rem; }
.team-role{ font-size:.86rem; font-weight:700; color: var(--primary-2); margin-bottom:.65rem; }
.team-bio{ font-size:.92rem; color: var(--ink-soft); margin-bottom:1rem; }
.team-socials{ display:flex; gap:.55rem; }
.team-socials a{ width:32px; height:32px; border-radius:9px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition: all var(--dur-fast) var(--ease); }
.team-socials a:hover{ background: var(--primary); border-color: var(--primary); color: var(--butter); }
.team-socials svg{ width:15px; height:15px; }

/* =========================================================
   Careers page
   ========================================================= */
section:has(> .wrap > .benefits-grid){ position:relative; overflow:hidden; }
section:has(> .wrap > .benefits-grid)::before{
  content:""; position:absolute; top:0; right:6%; width:320px; height:320px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--butter-deep) 55%, transparent), transparent 70%);
  filter: blur(42px); pointer-events:none; z-index:0; animation: blobFloat 12s ease-in-out infinite; opacity:.85;
}
.benefits-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:1.3rem; padding-bottom: clamp(3.8rem,6vw,5.4rem); position:relative; z-index:1; }
.benefit-card{ padding:1.6rem; border-radius: var(--radius-md); background: var(--surface); border:1px solid var(--line); text-align:center; transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.benefit-card:hover{ transform: translateY(-5px); box-shadow: 0 20px 42px rgba(1,62,55,.14); }
.benefit-card .hex-icon{ margin: 0 auto 1.1rem; }
.benefit-card:hover .hex-icon{ transform: rotate(-8deg) scale(1.1); }
.benefit-card h3{ font-size:1.06rem; margin-bottom:.45rem; }
.benefit-card p{ font-size:.9rem; color: var(--ink-soft); }

.jobs-list{ display:flex; flex-direction:column; gap:1.1rem; padding-bottom: clamp(3.8rem,6vw,5.4rem); }
.job-card{ display:flex; justify-content:space-between; align-items:center; gap:1.3rem; flex-wrap:wrap; background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-md); padding:1.6rem 1.8rem; transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.job-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: var(--primary-soft); }
.job-card h3{ font-size:1.14rem; margin-bottom:.45rem; }
.job-meta{ display:flex; gap:1rem; flex-wrap:wrap; font-size:.87rem; color: var(--ink-soft); font-weight:600; }
.job-meta span{ display:inline-flex; align-items:center; gap:.35rem; }
.job-meta svg{ width:15px; height:15px; }

/* =========================================================
   Contact page
   ========================================================= */
.contact-grid{ display:grid; grid-template-columns: .55fr .45fr; gap: clamp(2rem,5vw,3.6rem); padding-bottom: clamp(3.8rem,6vw,5.4rem); align-items:start; }
.contact-form{ background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(1.8rem,3vw,2.5rem); box-shadow: var(--shadow-sm); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.form-group{ margin-bottom:1.25rem; }
.form-group label{ display:block; font-size:.9rem; font-weight:700; margin-bottom:.55rem; }
.form-group input, .form-group select, .form-group textarea{ width:100%; padding:.95rem 1.1rem; border-radius:11px; border:1.5px solid var(--line); background: var(--bg); color: var(--ink); outline:none; font-size:1rem; transition: border-color var(--dur-fast) var(--ease); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{ border-color: var(--primary-2); }
.form-group textarea{ resize:vertical; min-height:120px; }
.form-group select{
  accent-color: var(--primary-2);
  color-scheme: light;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234C6B65' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.1rem center;
  background-size: 18px;
  padding-right: 2.8rem;
}
.form-group select option{ background: var(--surface); color: var(--ink); padding:.6rem; }
.form-group select option:checked,
.form-group select option:hover{ background: var(--primary-2); color:#fff; }
.form-group select option[value="Other"]{ font-weight:700; }
.form-note{ margin-top:1.1rem; font-size:.92rem; color: var(--primary-2); min-height:1.2em; font-weight:600; }

/* "Other" service field — slides open smoothly */
.form-group-other{
  max-height:110px; opacity:1; overflow:hidden;
  transition: max-height .4s var(--ease), opacity .3s ease, margin .4s var(--ease);
}
.form-group-other[hidden]{ display:block; max-height:0; opacity:0; margin-bottom:0; pointer-events:none; }

/* Submit button icon */
.contact-form .btn-primary svg{ width:17px; height:17px; }

/* ---------- Success scene ---------- */
.contact-form{ position:relative; }
.form-content{ transition: opacity .35s ease, transform .35s ease; }
.form-success{
  display:none; flex-direction:column; align-items:center; text-align:center;
  padding: 2.4rem 1rem 1.4rem; position:relative; overflow:hidden;
}
.contact-form.submitted .form-content{ display:none; }
.contact-form.submitted .form-success{ display:flex; animation: successIn .55s var(--ease); }
@keyframes successIn{ from{ opacity:0; transform: translateY(14px);} to{ opacity:1; transform:translateY(0);} }

.success-lottie{ width:180px; height:180px; margin-bottom:.6rem; }

.form-success h3{ font-size:1.3rem; margin-bottom:.6rem; }
.form-success p{ font-size:.94rem; color: var(--ink-soft); max-width:380px; margin-bottom:1.6rem; }

.success-confetti{ position:absolute; inset:0; pointer-events:none; }
.success-confetti span{
  position:absolute; top:44%; left:50%; width:9px; height:9px; border-radius:2px;
  background: var(--primary-2); opacity:0;
  animation: confettiBurst 1s var(--ease) forwards;
}
.success-confetti span:nth-child(1){ background: var(--butter-deep); --tx:-120px; --ty:-90px; animation-delay:.15s; }
.success-confetti span:nth-child(2){ background: var(--primary-2); --tx:120px; --ty:-90px; animation-delay:.2s; }
.success-confetti span:nth-child(3){ background: var(--primary-soft); --tx:-160px; --ty:10px; animation-delay:.1s; }
.success-confetti span:nth-child(4){ background: var(--butter-deep); --tx:160px; --ty:10px; animation-delay:.25s; }
.success-confetti span:nth-child(5){ background: var(--primary-2); --tx:-70px; --ty:-140px; animation-delay:.3s; }
.success-confetti span:nth-child(6){ background: var(--butter-deep); --tx:70px; --ty:-140px; animation-delay:.18s; }
.success-confetti span:nth-child(7){ background: var(--primary-soft); --tx:-40px; --ty:100px; animation-delay:.35s; }
.success-confetti span:nth-child(8){ background: var(--primary-2); --tx:40px; --ty:100px; animation-delay:.22s; }
@keyframes confettiBurst{
  0%{ opacity:1; transform: translate(-50%,-50%) translate(0,0) rotate(0deg) scale(1); }
  100%{ opacity:0; transform: translate(-50%,-50%) translate(var(--tx),var(--ty)) rotate(220deg) scale(.4); }
}
.contact-cards{ display:flex; flex-direction:column; gap:1.1rem; }
.contact-card{ display:flex; gap:1.1rem; align-items:flex-start; background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-md); padding:1.4rem; transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.contact-card:hover{ transform: translateY(-3px); box-shadow: 0 18px 40px rgba(1,62,55,.14); }
.contact-card h4{ font-size:1.02rem; margin-bottom:.3rem; }
.contact-card p, .contact-card a{ font-size:.92rem; color: var(--ink-soft); }
.contact-card .hex-icon{ width:48px; height:48px; }
.contact-card .hex-icon svg{ width:21px; height:21px; }
.contact-socials{ display:flex; gap:.65rem; margin-top:.35rem; }
.contact-socials a{ width:36px; height:36px; border-radius:10px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition: all var(--dur-fast) var(--ease); }
.contact-socials a:hover{ background: var(--primary); color: var(--butter); border-color: var(--primary); }
.contact-socials svg{ width:16px; height:16px; }

/* =========================================================
   Footer — modern layout with gradient accent line
   ========================================================= */
.site-footer{ background: var(--primary-deep); color: var(--butter); position:relative; }
.site-footer::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background: linear-gradient(90deg, transparent, var(--butter-deep), var(--primary-2), transparent); }
.footer-top{ padding: clamp(3.4rem,5vw,4.6rem) 0 2.8rem; display:grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap:2.2rem; }
.footer-brand p{ color: color-mix(in srgb, var(--butter) 55%, transparent); font-size:.94rem; max-width:280px; margin:1.1rem 0 1.4rem; line-height:1.6; }
.footer-logo{ color: var(--butter); }
.footer-logo .logo-mark{ background: var(--grad-butter); color: var(--primary); }
.footer-socials{ display:flex; gap:.65rem; }
.footer-socials a{ width:36px; height:36px; border-radius:10px; border:1px solid color-mix(in srgb, var(--butter) 20%, transparent); display:flex; align-items:center; justify-content:center; transition: all var(--dur-fast) var(--ease); color: var(--butter); }
.footer-socials a:hover{ background: var(--grad-butter); border-color: transparent; color: var(--primary); }
.footer-socials svg{ width:16px; height:16px; }
.footer-col h4{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color: color-mix(in srgb, var(--butter) 55%, transparent); margin-bottom:1.1rem; font-weight:700; }
.footer-col a, .footer-col p{ display:block; font-size:.93rem; color: color-mix(in srgb, var(--butter) 82%, transparent); margin-bottom:.68rem; opacity:.92; transition: opacity var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
.footer-col a:hover{ opacity:1; color: var(--butter-deep); }
.footer-bottom{ border-top:1px solid color-mix(in srgb, var(--butter) 14%, transparent); padding:1.4rem 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-size:.85rem; color: color-mix(in srgb, var(--butter) 55%, transparent); }

/* =========================================================
   Floating actions
   ========================================================= */
.float-actions{ position:fixed; right:1.5rem; bottom:1.5rem; z-index:80; display:flex; flex-direction:column; gap:.85rem; align-items:flex-end; }
.fab{ width:56px; height:56px; border-radius:17px; display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-md); transition: all var(--dur-fast) var(--ease); }
.fab-whatsapp{ background:#25D366; color:#fff; position:relative; }
.fab-whatsapp::before{ content:""; position:absolute; inset:0; border-radius:17px; background:#25D366; opacity:.5; animation: pulseRing 2.4s ease-out infinite; }
.fab-whatsapp::after{ content:""; position:absolute; inset:0; border-radius:17px; border:2px solid #25D366; animation: ringPulse 2.2s ease-out infinite .5s; pointer-events:none; }
@keyframes pulseRing{ 0%{ transform: scale(1); opacity:.5; } 100%{ transform: scale(1.5); opacity:0; } }
.fab-whatsapp svg{ width:26px; height:26px; position:relative; z-index:1; }
.fab-top{ width:44px; height:44px; background: var(--surface); border:1px solid var(--line); color: var(--ink); opacity:0; visibility:hidden; transform: translateY(10px); border-radius:13px; }
.fab-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.fab-top svg{ width:17px; height:17px; }
.fab:hover{ transform: translateY(-3px) scale(1.05); }

/* =========================================================
   Reduced motion / small screens
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  .hero::before, .hero::after, .page-hero::before, .page-hero::after,
  #services::before, .process::before, .floating-hex, .fab-whatsapp::after,
  section:has(> .wrap > .values-grid)::before, section:has(> .wrap > .team-grid)::before,
  section:has(> .wrap > .benefits-grid)::before, section:has(> .wrap > .pricing-grid)::before,
  .testimonials::before, .cta-banner::before, .testimonial-track, .platform-ring, .platform-icon{ animation: none !important; }
}
@media (max-width: 720px){
  .hero::before, .hero::after{ display:none; }
  .hero-visual::before, .hero-visual::after{ display:none; }
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1080px){
  .main-nav{ display:none; }
  .hamburger{ display:flex; }
  .hero-inner{ grid-template-columns:1fr; }
  .hero-visual{ height:390px; order:-1; }
  .page-hero-inner.page-hero-split{ grid-template-columns:1fr; }
  .page-hero-lottie{ order:-1; max-width:280px; }
  .service-grid, .values-grid, .team-grid, .benefits-grid, .platform-grid{ grid-template-columns: repeat(2, 1fr); }
  .process-grid{ grid-template-columns: repeat(2, 1fr); }
  .impact-grid{ grid-template-columns: repeat(2, 1fr); gap:1.2rem; }
  .service-detail-inner{ grid-template-columns:1fr; }
  .pricing-grid{ grid-template-columns:1fr; max-width:440px; margin:0 auto; padding-bottom: clamp(3.8rem,6vw,5.4rem); }
  .about-hero-inner{ grid-template-columns:1fr; }
  .about-media{ max-width:440px; margin:0 auto; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns: repeat(3, 1fr); }
  .footer-brand{ grid-column: span 3; }
}
@media (max-width: 720px){
  .service-grid, .values-grid, .process-grid, .team-grid, .benefits-grid, .platform-grid{ grid-template-columns:1fr; }
  .page-hero-lottie{ max-width:220px; }
  .form-row{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns: repeat(2, 1fr); }
  .footer-brand{ grid-column: span 2; }
  .dash-chip, .dash-chip2{ display:none; }
  .job-card{ flex-direction:column; align-items:flex-start; }
  .job-card .btn{ width:100%; }
  body{ font-size:16.5px; }
  .commission-callout{ flex-direction:column; text-align:center; padding:1.6rem 1.4rem; }
  .commission-callout .hex-icon{ margin:0 auto; }
  .commission-callout .btn{ width:100%; }
  .commission-banner{ flex-direction:column; text-align:center; padding:1.8rem 1.5rem; }
  .commission-banner .hex-icon{ margin:0 auto; }
  .commission-banner .btn{ width:100%; }
}
@media (max-width: 560px){
  .btn-header-cta{ display:none; }
  .header-inner{ gap:.9rem; }
}
@media (max-width: 340px){
  .logo-word{ display:none; }
}
@media (max-width: 480px){
  .impact-grid{ grid-template-columns: 1fr 1fr; gap:.9rem; }
  .impact-card{ padding: 1.2rem .8rem 1.1rem; }
  .footer-top{ grid-template-columns: 1fr 1fr; }
  .footer-brand{ grid-column: span 2; }
  .cta-banner{ padding: 2.2rem 1.4rem; }
  .hero-visual{ height:280px; }
  .page-hero-lottie{ max-width:170px; padding:.6rem; }
  .price-card{ padding: 1.6rem 1.3rem; }
  .service-detail{ padding: clamp(2.4rem,7vw,3.6rem) 0; }
  .commission-banner, .commission-callout{ padding: 1.5rem 1.1rem; }
  .team-body{ padding: 1.1rem 1rem 1.3rem; }
  .contact-card{ padding: 1.1rem; }
  .job-card{ padding: 1.2rem 1.1rem; }
  .value-card{ padding: 1.4rem 1.1rem; }
  .benefit-card{ padding: 1.8rem 1.1rem 1.5rem; }
}

/* =========================================================
   Global 3D tilt interaction — applied to cards site-wide
   (JS drives --rx/--ry based on cursor position; falls back
   to flat/no-tilt gracefully if JS never runs)
   ========================================================= */
.tilt-3d{
  transform-style: preserve-3d;
  transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease;
  will-change: transform;
}
@media (hover:none){ .tilt-3d{ transform:none !important; } }
@media (prefers-reduced-motion: reduce){ .tilt-3d{ transform:none !important; transition:none; } }

/* =========================================================
   Open Application card (careers page)
   ========================================================= */
.open-app-card{
  position:relative; overflow:hidden;
  background: var(--grad-primary); color: var(--butter);
  border-radius: var(--radius-lg); padding: clamp(2rem,4vw,2.8rem);
  display:flex; align-items:center; gap:2rem; flex-wrap:wrap;
  box-shadow: var(--shadow-accent);
}
.open-app-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; overflow:hidden;
  background: radial-gradient(circle at 88% 15%, rgba(255,239,179,.22), transparent 45%);
  pointer-events:none;
}
.open-app-icon{
  flex-shrink:0; width:64px; height:64px; background: rgba(255,239,179,.16); color: var(--butter);
  position:relative; z-index:1;
}
.open-app-body{ flex:1 1 320px; position:relative; z-index:1; }
.open-app-body h3{ font-size:1.5rem; margin-bottom:.6rem; color:#fff; }
.open-app-body p{ color: rgba(255,255,255,.86); font-size:.98rem; max-width:560px; margin-bottom:1.1rem; }
.open-app-tags{ display:flex; flex-wrap:wrap; gap:.55rem; }
.open-app-tags span{
  font-size:.8rem; font-weight:600; padding:.4rem .85rem; border-radius:999px;
  background: rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); color: var(--butter);
}
.open-app-cta{
  position:relative; z-index:1; flex-shrink:0; width:auto;
  display:inline-flex; align-items:center; gap:.5rem;
  background: var(--butter); color: var(--butter-ink); box-shadow: 0 14px 32px rgba(1,20,17,.28);
}
.open-app-cta svg{ width:19px; height:19px; }
@media (max-width:720px){
  .open-app-card{ flex-direction:column; align-items:flex-start; text-align:left; }
  .open-app-cta{ width:100%; justify-content:center; }
}

/* =========================================================
   Decorative 3D shape (Three.js) — desktop-only ambient accent
   ========================================================= */
.hero-3d-mount{
  position:absolute; top:-70px; right:-70px; width:440px; height:440px;
  z-index:0; pointer-events:none; opacity:.9;
}
.hero-3d-mount canvas{ display:block; width:100% !important; height:100% !important; }
@media (max-width:900px){ .hero-3d-mount{ display:none; } }

/* =========================================================
   Brand-colored scrollbar
   ========================================================= */
html{
  scrollbar-width: thin;
  scrollbar-color: var(--primary-2) transparent;
}
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background: transparent; }
::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, var(--primary-2), var(--butter-deep));
  border-radius:999px; border:2px solid var(--bg);
}
::-webkit-scrollbar-thumb:hover{ background: linear-gradient(180deg, var(--primary), var(--butter)); }

/* =========================================================
   Ambient background — subtle, slow-drifting, e-commerce
   line-art texture behind every page (very low opacity)
   ========================================================= */
.ambient-bg{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:url("assets/ambient-pattern.svg");
  background-repeat:repeat;
  background-size:520px 290px;
  opacity:.045;
  animation: ambientDrift 130s linear infinite;
}
@keyframes ambientDrift{
  from{ background-position: 0 0; }
  to{ background-position: -520px -290px; }
}
@media (prefers-reduced-motion: reduce){ .ambient-bg{ animation:none; } }
main{ position:relative; z-index:1; }
.site-footer{ z-index:1; }

/* =========================================================
   Founder profile card (about page)
   ========================================================= */
.founder-section{ padding: clamp(1rem,3vw,2rem) 0 0; }
.founder-card{
  display:grid; grid-template-columns: 280px 1fr; gap:2.2rem; align-items:stretch;
  background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 1.6rem; box-shadow: var(--shadow-md);
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.founder-photo{ border-radius: var(--radius-md); overflow:hidden; background: var(--bg-alt); }
.founder-photo img{ width:100%; height:100%; object-fit:cover; min-height:320px; }
.founder-body{ display:flex; flex-direction:column; justify-content:center; padding: .5rem .5rem .5rem 0; }
.founder-body h3{ font-size:1.5rem; margin-bottom:.15rem; }
.founder-role{ color: var(--primary-2); font-weight:700; font-size:.92rem; margin-bottom:1rem; }
.founder-body p{ color: var(--ink-soft); font-size:.97rem; margin-bottom:.9rem; max-width:640px; }
.founder-body .btn{ align-self:flex-start; margin-top:.4rem; }
@media (max-width:820px){
  .founder-card{ grid-template-columns:1fr; }
  .founder-photo img{ min-height:240px; }
}

/* =========================================================
   Developer's card (team page) — visually distinct
   ========================================================= */
.team-card-dev{
  position:relative; border:1.5px solid var(--primary-2);
  background: linear-gradient(165deg, var(--surface), color-mix(in srgb, var(--primary-2) 7%, var(--surface)));
  box-shadow: 0 18px 40px color-mix(in srgb, var(--primary-2) 18%, transparent);
}
.team-dev-badge{
  display:inline-flex; align-items:center; gap:.3rem; margin-bottom:.6rem;
  background: var(--grad-primary); color: var(--butter);
  font-size:.72rem; font-weight:700; padding:.35rem .7rem; border-radius:999px;
  box-shadow: 0 6px 16px rgba(1,20,17,.2);
}
.team-card-dev .team-role{ color: var(--primary-2); }

/* =========================================================
   Results & sales graphs
   ========================================================= */
.results{ padding: clamp(3.4rem,7vw,5.6rem) 0; position:relative; }
.results-tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:1.4rem; }
.result-tile{ background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-lg); padding:1.2rem 1.3rem; min-width:0; }
.rt-label{ font-size:.8rem; font-weight:600; color:var(--ink-soft); margin:0 0 .3rem; }
.rt-value{ font-size:clamp(1.6rem,3.4vw,2.1rem); font-weight:800; color:var(--primary); line-height:1.15; margin:0; }
.rt-delta{ font-size:.8rem; font-weight:700; margin:.35rem 0 0; color:var(--ink-soft); }
.rt-delta.up{ color:#15803d; }
.results-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.chart-card{ background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-lg); padding:1.4rem 1.5rem 1.2rem; min-width:0; box-shadow:var(--shadow-sm, none); }
.chart-wide{ grid-column:1 / -1; }
.chart-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; flex-wrap:wrap; margin-bottom:.6rem; }
.chart-head h3{ font-size:1.15rem; margin:0 0 .15rem; }
.chart-head p{ font-size:.85rem; color:var(--ink-soft); margin:0; }
.chart-figures{ text-align:right; }
.chart-figures strong{ display:block; font-size:1.5rem; font-weight:800; color:var(--primary); line-height:1.15; }
.chart-figures span{ font-size:.8rem; color:var(--ink-soft); }
.chart-readout{ min-height:1.5rem; font-size:.88rem; color:var(--ink-soft); margin:.2rem 0 .7rem; }
.chart-readout b{ color:var(--ink); }
.bars{ display:flex; align-items:flex-end; gap:3px; height:190px; border-bottom:1.5px solid var(--line); background:
  linear-gradient(var(--line),var(--line)) 0 0/100% 1px no-repeat,
  linear-gradient(var(--line),var(--line)) 0 33.3%/100% 1px no-repeat,
  linear-gradient(var(--line),var(--line)) 0 66.6%/100% 1px no-repeat; }
.bars-tall{ height:240px; }
.bars-chunky{ gap:clamp(10px,3vw,22px); padding:0 .4rem; }
.bar{ flex:1 1 0; min-width:0; height:var(--h); padding:0; border:0; background:transparent; display:flex; flex-direction:column-reverse; cursor:pointer;
  transform-origin:bottom; transform:scaleY(0); transition:transform .8s cubic-bezier(.2,.8,.2,1) var(--d,0ms), filter .2s; border-radius:4px 4px 0 0; overflow:hidden; -webkit-tap-highlight-color:transparent; }
.bars.in .bar{ transform:scaleY(1); }
.bar:hover, .bar:focus-visible{ filter:brightness(1.18); outline:none; }
.bar i{ display:block; width:100%; }
.bar .s1, .chart-legend .s1{ background:var(--primary-2); }
.bar .s2, .chart-legend .s2{ background:var(--primary); }
.bar-axis{ display:flex; justify-content:space-between; font-size:.74rem; color:var(--ink-soft); padding-top:.4rem; }
.bar-axis-4{ padding:.4rem .4rem 0; }
.chart-legend{ display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; list-style:none; padding:0; margin:.8rem 0 0; font-size:.8rem; color:var(--ink-soft); }
.chart-legend li{ display:flex; align-items:center; gap:.45rem; }
.chart-legend i{ width:11px; height:11px; border-radius:3px; display:inline-block; }
@media (prefers-reduced-motion: reduce){ .bar{ transform:none; transition:none; } }
@media (max-width:1080px){ .results-tiles{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:820px){ .results-grid{ grid-template-columns:minmax(0,1fr); } }
@media (max-width:480px){
  .results-tiles{ gap:.7rem; }
  .result-tile{ padding:1rem .9rem; }
  .chart-card{ padding:1.1rem 1rem 1rem; }
  .chart-figures{ text-align:left; }
  .bars{ gap:2px; height:170px; }
  .bars-tall{ height:200px; }
}

/* Pricing replaced by quote prompts */
.service-side .price-value-quote{ font-size:1.55rem; margin-bottom:.4rem; }
.service-side .price-note{ font-size:.86rem; color:var(--ink-soft); margin:0 0 1.2rem; }
.price-card .price-amount-quote{ font-size:1.6rem; }

/* Mobile menu: not rendered at all while closed, so it can never widen the page on phones */
html{ max-width:100%; }
.mobile-nav, .mobile-nav.open{ transform:none; transition:none; visibility:visible; pointer-events:auto; }
.mobile-nav{ display:none; }
.mobile-nav.open{ display:flex; animation: mobileNavIn .38s var(--ease) both; }
@keyframes mobileNavIn{ from{ transform:translateX(100%); } to{ transform:none; } }
@media (min-width:1181px){ .mobile-nav, .mobile-nav.open{ display:none; } }

/* =========================================================
   Responsive hardening — every screen, no sideways scroll
   ========================================================= */
img, video, canvas{ max-width:100%; }
.footer-top > *, .contact-grid > *, .form-row > *, .impact-grid > *, .team-grid > *, .service-grid > *,
.pricing-grid > *, .values-grid > *, .process-grid > *, .platform-grid > *, .benefits-grid > *,
.service-detail-inner > *, .hero-inner > *, .page-hero-inner > *, .about-hero-inner > *{ min-width:0; }
.footer-col p, .footer-col a, .footer-brand p, .contact-card, .contact-card *{ overflow-wrap:anywhere; }
input, select, textarea{ max-width:100%; min-width:0; }
.contact-form, .form-content, .form-group{ min-width:0; max-width:100%; }
h1, h2, h3{ overflow-wrap:break-word; }
h1{ font-size:clamp(1.9rem, 7.2vw, 3.4rem); }
.btn{ max-width:100%; }

@media (max-width:1080px){
  .wrap{ padding-left:clamp(1rem,4vw,2rem); padding-right:clamp(1rem,4vw,2rem); }
  .hero-cta{ flex-wrap:wrap; }
}
@media (max-width:720px){
  .hero-cta{ flex-direction:column; align-items:stretch; }
  .hero-cta .btn{ width:100%; justify-content:center; text-align:center; }
  .cta-banner .hero-cta{ align-items:stretch; }
  .section-head h2, .cta-banner h2{ font-size:clamp(1.55rem,6.4vw,2.2rem); }
  .team-photo img{ width:100%; }
  .float-actions{ right:.9rem; bottom:.9rem; }
}
@media (max-width:480px){
  .footer-top{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:1.6rem 1rem; }
  .footer-col{ min-width:0; }
  .impact-grid{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .impact-card strong{ font-size:clamp(1.5rem,8vw,2rem); }
  .impact-card p, .impact-card span{ font-size:.8rem; }
}
@media (max-width:380px){
  .footer-top{ grid-template-columns: minmax(0,1fr); }
  .footer-brand{ grid-column:auto; }
  .impact-card{ padding:1rem .6rem; }
  .header-inner{ gap:.5rem; }
  .logo-word{ font-size:1rem; }
}

.bar .s3, .chart-legend .s3{ background: var(--butter-deep); }
.logo, .logo-word{ white-space:nowrap; }
@media (max-width:480px){ .logo-word{ font-size:1.02rem; } .header-inner{ gap:.6rem; } }
@media (max-width:340px){ .logo-word{ display:none; } }

.team-photo img{ height:100%; object-position:center top; }
@media (max-width:720px){ .team-photo{ aspect-ratio:4/4.3; } }

.footer-logo .logo-word em, .site-footer .logo-word em{ color: var(--butter); font-style:normal; }
@media (max-width:480px){ .footer-col p{ font-size:.84rem; } }

/* Footer email: keep on one line, never split mid-word */
.footer-col a.footer-email{ overflow-wrap:normal; word-break:normal; white-space:nowrap; }
@media (max-width:480px){
  .footer-col a.footer-email{ font-size:.82rem; }
  .footer-top .footer-col:has(.footer-email){ grid-column:1 / -1; }
}
@media (max-width:340px){ .footer-col a.footer-email{ font-size:.74rem; } }
.dash-chip2 .dash-stat-value{ white-space:nowrap; }

/* =========================================================
   Blog, articles & UK landing pages (SEO)
   ========================================================= */
.lead-p{ font-size:clamp(1.02rem,2vw,1.2rem); color:var(--ink-soft); max-width:720px; margin:.8rem 0 1.4rem; line-height:1.65; }
.article-hero h1{ font-size:clamp(1.8rem,4.6vw,3rem); line-height:1.12; max-width:900px; }
.post-meta{ font-size:.88rem; color:var(--ink-soft); margin:.8rem 0 0; }
.article-layout{ display:block; }
.prose{ max-width:760px; margin:0 auto; padding-bottom:1rem; font-size:1.06rem; line-height:1.78; }
.prose h2{ font-size:clamp(1.4rem,3.2vw,1.8rem); line-height:1.25; margin:2.6rem 0 .8rem; scroll-margin-top:110px; }
.prose p{ margin:0 0 1.1rem; }
.prose ul, .prose ol{ margin:0 0 1.3rem 1.3rem; padding:0; }
.prose li{ margin:.45rem 0; padding-left:.2rem; }
.prose a{ color:var(--primary-2); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.prose a:hover{ color:var(--primary); }
.prose .faq-list{ margin-top:1rem; display:grid; gap:.8rem; }
.prose .faq-a p{ font-size:1rem; margin:0; }
.callout{ background:color-mix(in srgb, var(--primary-2) 9%, var(--surface)); border:1.5px solid color-mix(in srgb, var(--primary-2) 35%, var(--line)); border-radius:var(--radius-md); padding:1.1rem 1.3rem; margin:1.4rem 0; font-size:1rem; line-height:1.65; }
.toc{ background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-md); padding:1.1rem 1.4rem; margin:0 0 2rem; }
.toc-title{ font-weight:800; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 .5rem !important; }
.toc ol{ margin:0 0 0 1.2rem; font-size:.97rem; line-height:1.6; }
.toc a{ text-decoration:none; font-weight:600; }
.related{ max-width:1300px; margin:0 auto clamp(3rem,6vw,4.5rem); }
.related h2{ font-size:1.5rem; margin:0 0 1.2rem; }
.blog-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.blog-grid-index{ grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:clamp(3rem,6vw,4.5rem); }
.post-card{ display:flex; flex-direction:column; gap:.6rem; background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-lg); padding:1.5rem; text-decoration:none; color:inherit; transition:transform var(--dur-fast) var(--ease), border-color var(--dur-fast), box-shadow var(--dur-fast); min-width:0; }
.post-card:hover{ transform:translateY(-4px); border-color:var(--primary-2); box-shadow:0 14px 34px -18px rgba(1,62,55,.45); }
.post-cat{ align-self:flex-start; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--primary); background:color-mix(in srgb, var(--primary-2) 16%, transparent); padding:.3rem .65rem; border-radius:99px; }
.post-card h3{ font-size:1.18rem; line-height:1.3; margin:.2rem 0 0; overflow-wrap:break-word; }
.post-card p{ font-size:.94rem; color:var(--ink-soft); line-height:1.6; margin:0; }
.post-more{ margin-top:auto; padding-top:.5rem; font-weight:700; font-size:.9rem; color:var(--primary-2); }
.lp-wrap{ max-width:1000px; }
.lp-sec{ padding:clamp(1.6rem,4vw,2.4rem) 0 0; }
.lp-sec h2{ font-size:clamp(1.5rem,3.4vw,2rem); margin:0 0 1.1rem; }
.lp-sec p{ font-size:1.03rem; line-height:1.7; }
.lp-sec a{ color:var(--primary-2); font-weight:600; }
.lp-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }
.lp-card{ background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-lg); padding:1.4rem; min-width:0; }
.lp-card h3{ margin:0 0 .5rem; font-size:1.12rem; }
.lp-card p{ margin:0; font-size:.96rem; color:var(--ink-soft); }
.lp-list{ list-style:none; padding:0; margin:0 0 1rem; display:grid; gap:.8rem; }
.lp-list li{ background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-md); padding:1rem 1.2rem; line-height:1.6; font-size:1.02rem; }
.lp-steps{ counter-reset:lp; list-style:none; padding:0; margin:0; display:grid; gap:.8rem; }
.lp-steps li{ counter-increment:lp; position:relative; background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-md); padding:1rem 1.2rem 1rem 3.6rem; line-height:1.6; font-size:1.02rem; }
.lp-steps li::before{ content:counter(lp); position:absolute; left:1rem; top:1rem; width:2rem; height:2rem; border-radius:50%; background:var(--primary); color:var(--butter); display:grid; place-items:center; font-weight:800; font-size:.9rem; }
.lp-links{ display:flex; flex-wrap:wrap; gap:.7rem; }
.lp-links a{ padding:.7rem 1.1rem; border:1.5px solid var(--line); border-radius:99px; background:var(--surface); text-decoration:none; font-weight:600; font-size:.95rem; }
.lp-sec .faq-list{ display:grid; gap:.8rem; }
.lp-wrap .cta-banner{ margin-top:clamp(2.6rem,5vw,3.6rem); }
@media (max-width:980px){ .blog-grid, .lp-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){
  .blog-grid, .blog-grid-index, .lp-grid{ grid-template-columns:minmax(0,1fr); }
  .prose{ font-size:1.02rem; line-height:1.72; }
  .post-card{ padding:1.2rem; }
  .lp-steps li{ padding-left:3.3rem; }
}

/* 7 nav items: switch to the menu button a little earlier so the header never overflows */
@media (max-width:1180px){
  .main-nav{ display:none; }
  .hamburger{ display:flex; }
}
@media (min-width:1181px) and (max-width:1320px){
  .main-nav a{ padding-left:.65rem; padding-right:.65rem; font-size:.93rem; }
}
.prose{ margin-left:0; margin-right:auto; }
.prose ul{ list-style:disc; }
.prose ol{ list-style:decimal; }
.prose li::marker{ color:var(--primary-2); font-weight:700; }
.toc ol{ list-style:decimal; }
.lp-wrap{ max-width:none; }
.lp-sec{ max-width:980px; }

/* ---------- Blog imagery & infographics ---------- */
.article-hero .wrap{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); column-gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.article-hero .wrap > *{ grid-column:1; min-width:0; }
.article-hero .hero-art{ grid-column:2; grid-row:1 / span 6; width:100%; height:auto; border-radius:var(--radius-lg); box-shadow:0 30px 60px -28px rgba(1,40,36,.6); border:1.5px solid color-mix(in srgb, var(--primary-2) 30%, transparent); }
.post-thumb{ width:100%; height:auto; aspect-ratio:40/21; object-fit:cover; border-radius:calc(var(--radius-lg) - 6px); margin-bottom:.4rem; display:block; }
.post-card{ padding:.9rem .9rem 1.4rem; }
.post-card > :not(.post-thumb){ margin-left:.6rem; margin-right:.6rem; }
.post-card .post-cat{ margin-top:.5rem; }
.fig{ margin:1.8rem 0; padding:1.3rem 1.4rem; background:var(--surface); border:1.5px solid var(--line); border-radius:var(--radius-lg); }
.fig-title{ font-weight:800; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:1rem; }
.fig-steps{ list-style:none; margin:0 !important; padding:0; display:grid; gap:.7rem; }
.fig-steps li{ display:flex; gap:.9rem; align-items:flex-start; margin:0; padding:0; }
.fig-num{ flex:0 0 auto; width:2.1rem; height:2.1rem; border-radius:50%; background:var(--primary); color:var(--butter); display:grid; place-items:center; font-weight:800; font-size:.92rem; }
.fig-steps strong{ display:block; font-size:1rem; line-height:1.3; }
.fig-steps span:not(.fig-num){ display:block; font-size:.9rem; color:var(--ink-soft); line-height:1.45; }
.fig-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.8rem; }
.fig-stat{ background:color-mix(in srgb, var(--primary-2) 9%, var(--surface)); border:1.5px solid color-mix(in srgb, var(--primary-2) 28%, var(--line)); border-radius:var(--radius-md); padding:1rem; }
.fig-stat b{ display:block; font-size:1.55rem; line-height:1.15; color:var(--primary); font-weight:800; }
.fig-stat span{ display:block; font-size:.86rem; color:var(--ink-soft); line-height:1.4; margin-top:.3rem; }
.fig-two{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; }
.fig-col{ border-radius:var(--radius-md); padding:1rem 1.1rem; border:1.5px solid var(--line); }
.fig-col h4{ margin:0 0 .5rem; font-size:1rem; }
.fig-col ul{ margin:0 !important; padding:0; list-style:none; display:grid; gap:.45rem; }
.fig-col li{ position:relative; margin:0; padding:0 0 0 1.5rem; font-size:.95rem; line-height:1.45; }
.fig-col li::before{ position:absolute; left:0; top:0; font-weight:800; }
.fig-col.do{ background:color-mix(in srgb, #22a06b 10%, var(--surface)); border-color:color-mix(in srgb, #22a06b 40%, var(--line)); }
.fig-col.do li::before{ content:"✓"; color:#1a8a5b; }
.fig-col.dont{ background:color-mix(in srgb, #d9534f 9%, var(--surface)); border-color:color-mix(in srgb, #d9534f 38%, var(--line)); }
.fig-col.dont li::before{ content:"✕"; color:#c2413d; }
.fig-bar{ display:flex; height:46px; border-radius:12px; overflow:hidden; border:1.5px solid var(--line); }
.seg.c1{ background:#8A6A44; } .seg.c2{ background:#C9915A; } .seg.c3{ background:#E6B988; } .seg.c4{ background:#F5B83D; } .seg.c5{ background:#1a9a7c; }
.fig-legend{ list-style:none; padding:0; margin:1rem 0 0 !important; display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.5rem .9rem; }
.fig-legend li{ display:flex; align-items:center; gap:.55rem; margin:0; padding:0; font-size:.93rem; }
.fig-legend i{ width:13px; height:13px; border-radius:4px; flex:0 0 auto; display:inline-block; }
.fig-legend b{ margin-left:auto; }
.fig-note{ font-size:.82rem !important; color:var(--ink-soft); margin:.9rem 0 0 !important; }
.fig-meter{ position:relative; height:22px; border-radius:99px; background:color-mix(in srgb, var(--ink) 10%, var(--surface)); border:1.5px solid var(--line); margin:1.6rem .3rem 2.4rem; }
.fig-meter .fill{ position:absolute; left:0; top:0; bottom:0; border-radius:99px; background:linear-gradient(90deg,#1a9a7c,#F5B83D); }
.fig-meter .mark{ position:absolute; top:-6px; bottom:-6px; width:3px; background:var(--ink); border-radius:2px; }
.fig-meter .mark em{ position:absolute; top:-1.7rem; left:50%; transform:translateX(-50%); font-style:normal; font-weight:800; font-size:.82rem; white-space:nowrap; }
.fig-meter .mark.end em{ left:auto; right:-.2rem; transform:none; }
.fig-meter-labels{ display:flex; justify-content:space-between; gap:.6rem; font-size:.82rem; color:var(--ink-soft); }
.fig-meter-labels .mid{ text-align:center; flex:1; font-weight:600; color:var(--ink); }
@media (max-width:900px){
  .article-hero .wrap{ grid-template-columns:minmax(0,1fr); }
  .article-hero .hero-art{ grid-column:1; grid-row:auto; margin-top:1.4rem; }
}
@media (max-width:560px){
  .fig{ padding:1.1rem 1rem; }
  .fig-two{ grid-template-columns:minmax(0,1fr); }
  .fig-meter-labels{ flex-wrap:wrap; }
  .fig-meter-labels .mid{ order:3; flex-basis:100%; }
}

/* ---------- Blog dropdown ---------- */
.nav-dropdown{ position:relative; display:flex; align-items:center; }
.nav-dropdown > a{ padding-right:.35rem !important; }
.dd-btn{ display:grid; place-items:center; width:26px; height:30px; margin-left:-.1rem; padding:0; border:0; background:transparent; color:var(--ink-soft); cursor:pointer; border-radius:8px; }
.dd-btn svg{ width:15px; height:15px; transition:transform var(--dur-fast) var(--ease); }
.dd-btn:hover{ color:var(--ink); }
.nav-dropdown.open .dd-btn svg, .nav-dropdown:hover .dd-btn svg{ transform:rotate(180deg); }
.nav-dd-menu{ position:absolute; top:100%; left:50%; transform:translate(-50%,6px); min-width:290px; padding:.55rem; margin-top:.55rem; background:var(--surface); border:1.5px solid var(--line); border-radius:16px; box-shadow:var(--shadow-lg, 0 24px 50px -20px rgba(0,0,0,.45)); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s var(--ease), transform .18s var(--ease), visibility 0s linear .18s; z-index:130; }
.nav-dd-menu::before{ content:""; position:absolute; left:0; right:0; top:-.7rem; height:.7rem; }
.nav-dropdown:hover .nav-dd-menu, .nav-dropdown:focus-within .nav-dd-menu, .nav-dropdown.open .nav-dd-menu{ opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); transition-delay:0s; }
.main-nav .nav-dd-menu a{ display:block; padding:.65rem .85rem; border-radius:10px; font-size:.93rem; font-weight:600; color:var(--ink); line-height:1.3; background:transparent; }
.main-nav .nav-dd-menu a small{ display:block; font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--primary-2); margin-bottom:.15rem; }
.main-nav .nav-dd-menu a:hover, .main-nav .nav-dd-menu a:focus-visible{ background:color-mix(in srgb, var(--primary-2) 12%, transparent); color:var(--ink); outline:none; }
.main-nav .nav-dd-menu a[aria-current="page"]{ background:color-mix(in srgb, var(--primary) 10%, transparent); }
.main-nav .nav-dd-menu a.dd-all{ color:var(--primary); font-weight:800; border-bottom:1px solid var(--line); border-radius:10px 10px 4px 4px; margin-bottom:.3rem; }

/* mobile accordion */
.m-dd-toggle{ display:flex; align-items:center; gap:.5rem; width:100%; padding:0; background:none; border:0; font:inherit; font-size:1.4rem; font-weight:700; color:inherit; cursor:pointer; text-align:left; }
.m-dd-toggle svg{ width:20px; height:20px; transition:transform var(--dur-fast) var(--ease); }
.m-dd.open .m-dd-toggle svg{ transform:rotate(180deg); }
.m-dd-list{ display:none; flex-direction:column; gap:.2rem; margin:.7rem 0 .2rem .2rem; padding-left:1rem; border-left:2px solid var(--line); }
.m-dd.open .m-dd-list{ display:flex; }
.mobile-nav .m-dd-list a{ font-size:1rem; font-weight:600; padding:.45rem 0; line-height:1.3; }
.mobile-nav .m-dd-list a small{ display:block; font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--primary-2); }
.mobile-nav{ overflow-y:auto; }
@media (max-height:640px){ .mobile-nav{ gap:1rem; padding-top:5.5rem; } }

/* =========================================================
   Mobile menu — centered floating panel + blurred backdrop
   (applies only below the desktop breakpoint; desktop untouched)
   ========================================================= */
@media (max-width:1180px){
  .mobile-nav-backdrop{
    background: rgba(1,14,12,.45);
    -webkit-backdrop-filter: blur(14px) saturate(1.1);
    backdrop-filter: blur(14px) saturate(1.1);
  }
  .mobile-nav{
    inset:auto; top:calc(50% + 2.6rem); left:50%;
    width:min(360px, calc(100vw - 2.4rem)); height:auto;
    max-height:calc(100dvh - 8.5rem);
    transform:translate(-50%,-50%);
    gap:.25rem; padding:.9rem 1.1rem 1.2rem;
    border:1px solid var(--line); border-radius:22px;
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    box-shadow: 0 30px 80px rgba(0,0,0,.45);
    overflow-y:auto; text-align:center; align-items:stretch;
  }
  .mobile-nav.open{ display:flex; animation: mobileNavPop .32s var(--ease) both; }
  @keyframes mobileNavPop{
    from{ opacity:0; transform:translate(-50%,-46%) scale(.94); }
    to{ opacity:1; transform:translate(-50%,-50%) scale(1); }
  }
  .mobile-nav > a:not(.btn),
  .mobile-nav .m-dd-toggle{
    display:flex; align-items:center; justify-content:center; gap:.45rem;
    font-size:1.08rem; font-weight:700; padding:.85rem .5rem; border-radius:12px;
    text-align:center; line-height:1.2;
  }
  .mobile-nav > a:not(.btn):hover,
  .mobile-nav .m-dd-toggle:hover{ background: var(--bg-alt); }
  .mobile-nav .m-dd-toggle svg{ width:16px; height:16px; }
  .mobile-nav .m-dd-list{
    margin:.2rem 0 .4rem; padding:.3rem .4rem; border-left:0; border-radius:12px;
    background: var(--bg-alt); text-align:center;
  }
  .mobile-nav .m-dd-list a{ font-size:.92rem; padding:.55rem .4rem; }
  .mobile-nav .btn{
    margin-top:.7rem; width:100%; justify-content:center; text-align:center;
    font-size:.95rem; padding:.9rem 1rem; white-space:normal;
  }
}
@media (max-height:560px){
  .mobile-nav{ top:calc(50% + 2.2rem); max-height:calc(100dvh - 7rem); }
}
