/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;tab-size:4;scroll-behavior:smooth}
body{min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
input,button,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}

/* ===== TOKENS ===== */
:root{
  /* Color */
  --bg-primary:#000000;--bg-secondary:#0A0A0A;--bg-tertiary:#111111;--bg-card:#141414;--bg-card-hover:#1A1A1A;--bg-elevated:#1C1C1C;--bg-input:#0E0E0E;
  --accent-primary:#C6F84A;--accent-hover:#D4FB6B;--accent-pressed:#B0E236;--accent-muted:#8FB535;--accent-glow:rgba(198,248,74,0.35);--accent-glow-soft:rgba(198,248,74,0.12);
  --text-primary:#FFFFFF;--text-secondary:#E5E5E5;--text-body:#C7C7C7;--text-muted:#8A8A8A;--text-disabled:#555555;--text-on-accent:#0A0A0A;--text-link:#C6F84A;
  --border-subtle:rgba(255,255,255,0.06);--border-default:rgba(255,255,255,0.10);--border-strong:rgba(255,255,255,0.18);--border-accent:#C6F84A;--border-focus:#C6F84A;
  --success:#4ADE80;--danger:#F87171;--warning:#FBBF24;

  /* Spacing scale (4–128) */
  --s-0:0;--s-1:0.25rem;--s-2:0.5rem;--s-3:0.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:8rem;

  /* Radius */
  --radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-pill:999px;

  /* Border + bar */
  --bw-1:1px;--bw-2:2px;--bar-accent:3px;

  /* Shadows */
  --sh-xs:0 1px 2px rgba(0,0,0,0.4);
  --sh-sm:0 2px 6px rgba(0,0,0,0.4);
  --sh-md:0 8px 24px rgba(0,0,0,0.45);
  --sh-lg:0 20px 50px rgba(0,0,0,0.55);
  --sh-card:0 4px 18px rgba(0,0,0,0.55),inset 0 0 0 1px var(--border-subtle);
  --sh-glow-sm:0 0 0 1px var(--accent-primary),0 0 12px var(--accent-glow-soft);
  --sh-glow-md:0 8px 30px var(--accent-glow-soft),0 0 0 1px rgba(198,248,74,0.4);
  --sh-glow-lg:0 12px 50px var(--accent-glow),0 0 0 1px var(--accent-primary);
  --sh-focus:0 0 0 3px rgba(198,248,74,0.45);

  /* Z-index */
  --z-base:1;--z-dropdown:50;--z-sticky:100;--z-drawer:200;--z-modal:300;--z-toast:400;--z-skip:500;

  /* Motion */
  --ease-out:cubic-bezier(0.22,1,0.36,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --dur-fast:160ms;--dur-base:260ms;--dur-slow:420ms;

  /* Layout */
  --container-max:1280px;--container-narrow:880px;--header-h:96px;--gutter:clamp(1rem,2.4vw,1.75rem);
  --section-y:clamp(2rem,4vw,3.75rem);

  /* Type */
  --ff-display:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ff-body:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ff-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  --fs-display:clamp(1.875rem,3.4vw,2.875rem);
  --fs-h1:clamp(1.625rem,2.6vw,2.125rem);
  --fs-h2:clamp(1.25rem,1.9vw,1.625rem);
  --fs-h3:clamp(1.0625rem,1.4vw,1.25rem);
  --fs-h4:0.9375rem;
  --fs-h5:0.9375rem;
  --fs-h6:0.6875rem;
  --fs-body-lg:1rem;
  --fs-body:0.9375rem;
  --fs-small:0.8125rem;
  --fs-caption:0.6875rem;
}

/* ===== BASE / TYPOGRAPHY ===== */
html,body{background:var(--bg-primary);color:var(--text-body)}
body{font-family:var(--ff-body);font-size:var(--fs-body);font-weight:400}
h1,h2,h3,h4,h5,h6{font-family:var(--ff-display);color:var(--text-primary);font-weight:600;line-height:1.2;letter-spacing:-0.015em}
h1{font-size:var(--fs-h1);font-weight:700;letter-spacing:-0.02em;line-height:1.15}
h2{font-size:var(--fs-h2);font-weight:700;letter-spacing:-0.018em;line-height:1.2}
h3{font-size:var(--fs-h3);font-weight:600;letter-spacing:-0.015em;line-height:1.3}
h4{font-size:var(--fs-h4);font-weight:600;line-height:1.3}
h5{font-size:var(--fs-h5);line-height:1.4}
h6{font-size:var(--fs-h6);text-transform:uppercase;letter-spacing:0.18em;line-height:1.4}
p{color:var(--text-body)}
a{color:var(--text-link);transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--accent-hover)}
strong,b{color:var(--text-primary);font-weight:600}
small{font-size:var(--fs-small);color:var(--text-muted)}
hr{border:0;border-top:1px solid var(--border-subtle);margin:var(--s-6) 0}
::selection{background:var(--accent-primary);color:var(--text-on-accent)}

:focus{outline:none}
:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px;border-radius:var(--radius-sm)}

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

/* ===== LAYOUT ===== */
.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter)}
.container-narrow{width:100%;max-width:var(--container-narrow);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.section--tight{padding-block:clamp(1.75rem,3.5vw,3rem)}
.section--loose{padding-block:clamp(3.5rem,7vw,6rem)}
.section-alt{background:var(--bg-secondary)}
.section-tertiary{background:var(--bg-tertiary)}

.grid{display:grid;gap:var(--s-5)}
.flex{display:flex;gap:var(--s-4)}
.flex--center{align-items:center;justify-content:center}
.flex--between{align-items:center;justify-content:space-between}
.flex--wrap{flex-wrap:wrap}
.stack > * + *{margin-top:var(--s-5)}
.stack-sm > * + *{margin-top:var(--s-3)}
.stack-lg > * + *{margin-top:var(--s-7)}

.grid-2{display:grid;gap:var(--s-5);grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{display:grid;gap:var(--s-5);grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{display:grid;gap:var(--s-5);grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-auto{display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

@media (max-width: 1023px){
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 767px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
}

.text-center{text-align:center}
.text-muted{color:var(--text-muted)}
.text-body{color:var(--text-body)}
.text-primary{color:var(--text-primary)}
.text-accent{color:var(--accent-primary)}
.eyebrow{display:inline-block;font-family:var(--ff-display);font-size:var(--fs-caption);font-weight:600;color:var(--text-muted);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:var(--s-3)}
.lead{font-size:var(--fs-body-lg);color:var(--text-secondary);max-width:60ch;line-height:1.5}
.text-sm{font-size:var(--fs-small)}
.text-xs{font-size:var(--fs-caption)}
.mt-0{margin-top:0}
.mt-2{margin-top:var(--s-2)}
.mt-3{margin-top:var(--s-3)}
.mt-4{margin-top:var(--s-4)}
.mt-5{margin-top:var(--s-5)}
.mt-6{margin-top:var(--s-6)}
.mt-7{margin-top:var(--s-7)}
.mt-8{margin-top:var(--s-8)}

/* ===== UTILITIES ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;top:-100px;left:var(--s-4);z-index:var(--z-skip);background:var(--accent-primary);color:var(--text-on-accent);padding:var(--s-3) var(--s-4);border-radius:var(--radius-md);font-weight:600;text-decoration:none;transition:top var(--dur-fast) var(--ease-out)}
.skip-link:focus{top:var(--s-4);color:var(--text-on-accent)}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:44px;padding:0.75rem 1.25rem;font-family:var(--ff-display);font-size:0.9375rem;font-weight:600;line-height:1;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-fast) var(--ease-out);white-space:nowrap;letter-spacing:-0.005em}
.btn:focus-visible{box-shadow:var(--sh-focus);outline:none}
.btn:disabled,.btn[aria-disabled="true"]{opacity:0.5;pointer-events:none;cursor:not-allowed}

.btn--primary{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}
.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-on-accent);transform:translateY(-1px);box-shadow:0 10px 30px var(--accent-glow-soft)}
.btn--primary:active{background:var(--accent-pressed);transform:translateY(0)}

.btn--secondary{background:transparent;color:var(--accent-primary);border-color:var(--accent-primary)}
.btn--secondary:hover{background:var(--accent-glow-soft);color:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px)}

.btn--ghost{background:transparent;color:var(--text-primary);border-color:var(--border-default)}
.btn--ghost:hover{background:rgba(255,255,255,0.04);border-color:var(--border-strong);color:var(--text-primary)}

.btn--lg{min-height:48px;padding:0.75rem 1.5rem;font-size:0.9375rem}
.btn--sm{min-height:36px;padding:0.5rem 1rem;font-size:var(--fs-small)}
.btn--block{display:flex;width:100%}

/* ===== HEADER ===== */
.header{position:sticky;top:0;z-index:var(--z-sticky);height:var(--header-h);background:transparent;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),backdrop-filter var(--dur-base) var(--ease-out);border-bottom:1px solid transparent}
.header.is-scrolled{background:rgba(10,10,10,0.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--border-subtle)}
.header__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s-5)}
.header__logo{display:inline-flex;align-items:center;flex-shrink:0}
.header__logo svg,.header__logo img{display:block;height:88px;width:auto;max-width:320px}
.drawer__head .header__logo img{height:52px;max-width:200px}
@media (max-width: 768px){
  :root{--header-h:72px}
  .header__logo img{height:56px;max-width:220px}
}
.header__nav{display:flex;align-items:center;gap:var(--s-5)}
.header__nav-list{display:flex;align-items:center;gap:var(--s-5);list-style:none}
.header__nav-link{position:relative;color:var(--text-secondary);font-size:0.875rem;font-weight:500;padding:var(--s-2) 0;letter-spacing:0.005em;transition:color var(--dur-fast) var(--ease-out)}
.header__nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--accent-primary);transform:scaleX(0);transform-origin:left center;transition:transform var(--dur-base) var(--ease-out)}
.header__nav-link:hover,.header__nav-link.is-active{color:var(--text-primary)}
.header__nav-link:hover::after,.header__nav-link.is-active::after{transform:scaleX(1)}
.header__cta{display:inline-flex;flex-shrink:0}
.header__menu-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary)}
.header__menu-toggle:hover{border-color:var(--border-strong)}
.header__menu-toggle svg{width:22px;height:22px}

/* Dropdown — services */
.header__nav-item--has-sub{position:relative}
.header__submenu{position:absolute;top:100%;left:0;margin-top:8px;min-width:280px;max-width:360px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--s-2);box-shadow:var(--sh-lg);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),visibility var(--dur-fast);z-index:110}
.header__submenu::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}
.header__nav-item--has-sub:hover .header__submenu,.header__nav-item--has-sub:focus-within .header__submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.header__submenu-link{display:block;padding:0.6rem 0.9rem;color:var(--text-secondary);font-size:0.875rem;border-radius:var(--radius-md);white-space:nowrap;text-decoration:none;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.header__submenu-link:hover{background:rgba(255,255,255,0.05);color:var(--accent-primary)}

@media (max-width: 1023px){
  .header__nav,.header__cta{display:none}
  .header__menu-toggle{display:inline-flex}
}

/* ===== DRAWER ===== */
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out),visibility var(--dur-base);z-index:calc(var(--z-drawer) - 1)}
.drawer-backdrop.is-open{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;height:100dvh;width:min(86vw,360px);background:var(--bg-secondary);border-left:1px solid var(--border-subtle);box-shadow:var(--sh-lg);z-index:var(--z-drawer);transform:translateX(100%);transition:transform var(--dur-base) var(--ease-out);display:flex;flex-direction:column;overflow-y:auto}
.drawer.is-open{transform:translateX(0)}
.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border-subtle);min-height:var(--header-h)}
.drawer__close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md)}
.drawer__nav{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2);flex:1}
.drawer__link{display:block;padding:var(--s-3) var(--s-3);font-family:var(--ff-display);font-size:1.0625rem;font-weight:500;color:var(--text-primary);border-radius:var(--radius-md)}
.drawer__link:hover{background:rgba(198,248,74,0.06);color:var(--accent-primary)}
.drawer__sub{display:flex;flex-direction:column;gap:var(--s-1);padding-left:var(--s-3);margin-block:var(--s-2)}
.drawer__sub-link{padding:var(--s-2) var(--s-3);font-size:var(--fs-small);color:var(--text-secondary);border-radius:var(--radius-sm)}
.drawer__sub-link:hover{color:var(--accent-primary)}
.drawer__cta{padding:var(--s-5);border-top:1px solid var(--border-subtle)}

/* ============================================================
   BRAND LOCKUP — mark image + CSS-rendered wordmark
   Used in header, footer, drawer, 404 mini-header.
   The MARK keeps its original brand colors (teal/navy).
   The WORDMARK + TAGLINE render in the site's lime+white
   palette so they always read clean on the dark canvas.
   ============================================================ */
.brand-lockup{display:inline-flex;align-items:center;gap:clamp(0.625rem,1.2vw,0.9rem);text-decoration:none;color:var(--text-primary);line-height:1}
.brand-lockup__mark{display:block;height:clamp(56px,7vw,72px);width:auto;flex-shrink:0}
.brand-lockup__text{display:flex;flex-direction:column;gap:0.2rem;min-width:0}
.brand-lockup__name{font-family:var(--ff-display);font-weight:700;font-size:clamp(1rem,1.5vw,1.25rem);letter-spacing:-0.01em;line-height:1;white-space:nowrap}
.brand-lockup__name-strong{color:var(--text-primary)}
.brand-lockup__name-light{color:var(--accent-primary)}
.brand-lockup__tagline{font-family:var(--ff-body);font-weight:400;font-size:clamp(0.625rem,0.85vw,0.75rem);letter-spacing:0.01em;color:var(--text-muted);line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:320px}
.brand-lockup__suffix{font-family:var(--ff-body);font-weight:500;font-size:0.6875rem;letter-spacing:0.06em;color:var(--text-muted);text-transform:uppercase;line-height:1.2}
.brand-lockup--sm .brand-lockup__mark{height:48px}
.brand-lockup--sm .brand-lockup__name{font-size:0.9375rem}
.brand-lockup--lg .brand-lockup__mark{height:clamp(80px,9vw,96px)}
.brand-lockup--lg .brand-lockup__name{font-size:clamp(1.125rem,1.7vw,1.375rem)}
.brand-lockup:hover .brand-lockup__mark{filter:drop-shadow(0 0 12px var(--accent-glow))}
.header__inner .brand-lockup{margin-right:auto}
@media (max-width: 768px){
  .brand-lockup__mark{height:52px}
  .brand-lockup__name{font-size:1rem}
}
@media (max-width: 480px){
  .brand-lockup__tagline{display:none}
  .brand-lockup__mark{height:48px}
  .brand-lockup__name{font-size:0.9375rem}
}
@media (max-width: 360px){
  .brand-lockup__name-light{display:none}
}

/* ===== HERO ===== */
.hero{position:relative;padding-block:clamp(2.5rem,5vw,4.5rem);overflow:hidden;background:var(--bg-primary);background-image:radial-gradient(circle at 80% 10%,var(--accent-glow-soft),transparent 50%),radial-gradient(circle at 10% 90%,rgba(198,248,74,0.06),transparent 45%)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,var(--bg-primary) 100%);pointer-events:none}
.hero__inner{position:relative;z-index:1;max-width:820px}
.hero__eyebrow{display:inline-block;font-family:var(--ff-display);font-size:0.6875rem;color:var(--text-muted);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:var(--s-3);padding:0.375rem var(--s-3);border:1px solid var(--border-default);border-radius:var(--radius-pill)}
.hero__title{font-family:var(--ff-display);font-size:var(--fs-display);font-weight:700;line-height:1.1;letter-spacing:-0.025em;color:var(--text-primary);margin-bottom:var(--s-4)}
.hero__title-accent{color:var(--accent-primary)}
.hero__subtitle{font-size:var(--fs-body-lg);color:var(--text-body);max-width:580px;margin-bottom:var(--s-5);line-height:1.55}
.hero__cta-row{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}

/* Wordmark variant used in hero */
.wordmark{font-family:var(--ff-display);font-weight:700;letter-spacing:-0.02em;line-height:1}
.wordmark__arconex{color:var(--text-primary)}
.wordmark__suffix{color:var(--accent-primary)}

/* ===== SECTION TITLE ===== */
.section-title{font-family:var(--ff-display);color:var(--accent-primary);font-size:var(--fs-h2);font-weight:700;line-height:1.2;letter-spacing:-0.018em;display:flex;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-4)}
.section-title::before{content:"";display:inline-block;flex-shrink:0;width:3px;height:0.78em;background:var(--accent-primary);border-radius:2px;margin-top:0.22em}
.section-eyebrow{display:block;font-family:var(--ff-display);font-size:0.6875rem;font-weight:600;color:var(--text-muted);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:var(--s-2)}
.section-lead{font-size:var(--fs-body-lg);color:var(--text-body);max-width:62ch;margin-bottom:var(--s-5);line-height:1.55}
.section-header{margin-bottom:var(--s-6)}

/* ===== CARDS ===== */
.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:clamp(1rem,1.6vw,1.375rem);transition:transform var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.card--hover:hover,a.card:hover{background:var(--bg-card-hover);border-color:rgba(198,248,74,0.4);transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,0.5),0 0 0 1px rgba(198,248,74,0.18)}
.card__title{font-size:var(--fs-h4);color:var(--text-primary);margin-bottom:var(--s-2);font-weight:600;line-height:1.3}
.card__body{color:var(--text-body);font-size:var(--fs-body);line-height:1.6}

/* Service card */
.service-card{display:flex;flex-direction:column;gap:var(--s-3);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:clamp(1rem,1.6vw,1.375rem);transition:transform var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);height:100%}
.service-card:hover{background:var(--bg-card-hover);border-color:rgba(198,248,74,0.4);transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,0.5),0 0 0 1px rgba(198,248,74,0.2)}
.service-card__icon{width:32px;height:32px;color:var(--accent-primary);display:inline-flex;align-items:center;justify-content:center}
.service-card__icon svg{width:100%;height:100%}
.service-card__title{font-family:var(--ff-display);font-size:var(--fs-h4);font-weight:600;color:var(--text-primary);line-height:1.3}
.service-card__desc{color:var(--text-body);flex:1;line-height:1.6;font-size:var(--fs-body)}
.service-card__link{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--accent-primary);font-weight:600;font-size:var(--fs-small);margin-top:auto;text-decoration:none}
.service-card__link::after{content:"›";font-size:1.25em;line-height:1;transition:transform var(--dur-fast) var(--ease-out)}
.service-card__link:hover{color:var(--accent-hover)}
.service-card__link:hover::after{transform:translateX(3px)}
.service-card--ai{background:linear-gradient(180deg,rgba(198,248,74,0.04),var(--bg-card) 60%);border-color:rgba(198,248,74,0.22);position:relative}
.service-card--ai::before{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);padding:1px;background:linear-gradient(135deg,rgba(198,248,74,0.4),rgba(120,180,255,0.18) 60%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}

.feature-card{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-5);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);height:100%;transition:border-color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out)}
.feature-card:hover{border-color:var(--border-default);background:var(--bg-card-hover)}
.feature-card__icon{width:32px;height:32px;color:var(--accent-primary);margin-bottom:var(--s-2)}
.feature-card__title{font-family:var(--ff-display);font-size:var(--fs-h5);font-weight:600;color:var(--text-primary)}
.feature-card__body{color:var(--text-body);font-size:var(--fs-body);line-height:1.6}

/* Industry card */
.industry-card{padding:clamp(1rem,1.6vw,1.375rem);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:border-color var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out);height:100%;display:flex;flex-direction:column;gap:var(--s-3)}
.industry-card:hover{transform:translateY(-3px);border-color:rgba(198,248,74,0.4);background:var(--bg-card-hover)}
.industry-card__icon{width:32px;height:32px;color:var(--accent-primary)}
.industry-card__title{font-family:var(--ff-display);font-size:var(--fs-h4);font-weight:600;color:var(--text-primary);line-height:1.3}
.industry-card__body{color:var(--text-body);line-height:1.6;flex:1}
.industry-card__meta{font-size:var(--fs-small);color:var(--text-muted);padding-top:var(--s-3);border-top:1px solid var(--border-subtle)}

/* ===== BULLET LIST ===== */
.bullet-list{list-style:none;padding-left:0;display:flex;flex-direction:column;gap:var(--s-2)}
.bullet-list li{position:relative;padding-left:1.5rem;color:var(--text-body);line-height:1.55}
.bullet-list li::before{content:"›";position:absolute;left:0;top:0;color:var(--accent-primary);font-weight:700;font-size:1.15em;line-height:1.4}
.bullet-list--lg li{font-size:var(--fs-body-lg);padding-left:1.75rem}
.bullet-list--lg li::before{font-size:1.25em}

/* ===== TWO-COL CARDS (Services Include / Deliverables) ===== */
.two-col-cards{display:grid;gap:var(--s-5);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width: 767px){.two-col-cards{grid-template-columns:1fr}}
.two-col-cards__title{font-family:var(--ff-display);font-size:var(--fs-h6);font-weight:600;text-transform:uppercase;letter-spacing:0.18em;color:var(--text-primary);margin-bottom:var(--s-3);padding-bottom:var(--s-2);border-bottom:1px solid var(--border-subtle)}

/* ===== STAT ===== */
.stat{display:flex;flex-direction:column;gap:var(--s-2)}
.stat__num{font-family:var(--ff-display);font-size:clamp(1.875rem,3.6vw,2.75rem);font-weight:700;color:var(--accent-primary);line-height:1;letter-spacing:-0.03em}
.stat__label{font-family:var(--ff-display);font-size:var(--fs-caption);font-weight:600;color:var(--text-muted);letter-spacing:0.18em;text-transform:uppercase}

/* ===== PROCESS STEP ===== */
.process-step{position:relative;padding:var(--s-4) 0;display:flex;flex-direction:column;gap:var(--s-2)}
.process-step__num{font-family:var(--ff-display);font-size:clamp(2rem,4vw,3.25rem);font-weight:700;line-height:1;letter-spacing:-0.04em;color:transparent;-webkit-text-stroke:1.5px var(--accent-primary)}
.process-step__title{font-family:var(--ff-display);font-size:var(--fs-h3);font-weight:600;color:var(--text-primary);line-height:1.25}
.process-step__body{color:var(--text-body);line-height:1.6;max-width:60ch;font-size:var(--fs-body)}

/* ===== CTA BANNER ===== */
.cta-banner{position:relative;padding:clamp(2rem,4vw,3rem);background:var(--bg-card);border:1px solid rgba(198,248,74,0.4);border-radius:var(--radius-xl);overflow:hidden;text-align:center}
.cta-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,var(--accent-glow-soft),transparent 65%);pointer-events:none}
.cta-banner__inner{position:relative;z-index:1;max-width:620px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--s-3);align-items:center}
.cta-banner__title{font-family:var(--ff-display);font-size:var(--fs-h2);font-weight:700;color:var(--text-primary);line-height:1.15;letter-spacing:-0.018em}
.cta-banner__body{color:var(--text-body);font-size:var(--fs-body-lg);line-height:1.55;max-width:54ch}
.cta-banner__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-3);margin-top:var(--s-2)}

/* ===== FOOTER ===== */
.footer{background:var(--bg-secondary);border-top:1px solid var(--border-subtle);padding-block:clamp(2.25rem,4vw,3.5rem) var(--s-5)}
.footer__grid{display:grid;gap:var(--s-6);grid-template-columns:1.4fr 1fr 1fr 1.2fr}
@media (max-width: 1023px){.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 600px){.footer__grid{grid-template-columns:1fr}}
.footer__col{display:flex;flex-direction:column;gap:var(--s-3)}
.footer__brand{display:flex;flex-direction:column;gap:var(--s-3)}
.footer__brand-logo svg,.footer__brand-logo img{display:block;height:96px;width:auto;max-width:320px}
.footer__tagline{color:var(--text-muted);font-size:var(--fs-small);max-width:32ch;line-height:1.5}
.footer__title{font-family:var(--ff-display);font-size:var(--fs-h6);font-weight:600;color:var(--text-muted);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:var(--s-2)}
.footer__list{display:flex;flex-direction:column;gap:var(--s-2);list-style:none}
.footer__list a{color:var(--text-body);font-size:var(--fs-small);transition:color var(--dur-fast) var(--ease-out)}
.footer__list a:hover{color:var(--accent-primary)}
.footer__nap-line{color:var(--text-body);font-size:var(--fs-small);line-height:1.45}
.footer__nap-line a{color:var(--text-body)}
.footer__nap-line a:hover{color:var(--accent-primary)}
.footer__nap-line strong{color:var(--text-primary);font-weight:600}
.footer__bottom{margin-top:clamp(2rem,4vw,3rem);padding-top:var(--s-5);border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3)}
.footer__copy{font-size:var(--fs-caption);color:var(--text-muted)}
.footer__backtotop{font-size:var(--fs-caption);color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--s-1)}
.footer__backtotop:hover{color:var(--accent-primary)}

/* ===== BREADCRUMB ===== */
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);list-style:none;font-size:var(--fs-caption);color:var(--text-muted);padding-block:var(--s-3);letter-spacing:0.05em}
.breadcrumb li{display:inline-flex;align-items:center;gap:var(--s-2)}
.breadcrumb li + li::before{content:"›";color:var(--accent-primary);margin-right:var(--s-1)}
.breadcrumb a{color:var(--text-muted);transition:color var(--dur-fast) var(--ease-out)}
.breadcrumb a:hover{color:var(--accent-primary)}
.breadcrumb [aria-current="page"]{color:var(--text-primary)}

/* ===== FORMS ===== */
.form{display:flex;flex-direction:column;gap:var(--s-5)}
.form__row{display:grid;gap:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width: 600px){.form__row{grid-template-columns:1fr}}
.form__group{display:flex;flex-direction:column;gap:var(--s-2)}
.form__label{font-family:var(--ff-display);font-size:var(--fs-small);font-weight:500;color:var(--text-secondary);letter-spacing:0.005em}
.form__label .req{color:var(--accent-primary);margin-left:2px}
.form__field{width:100%;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:0.875rem 1rem;font-size:var(--fs-body);font-family:var(--ff-body);line-height:1.5;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.form__field::placeholder{color:var(--text-disabled)}
.form__field:hover{border-color:var(--border-strong)}
.form__field:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--sh-focus)}
.form__field[aria-invalid="true"],.form__field.is-error{border-color:var(--danger);background:rgba(248,113,113,0.05)}
textarea.form__field{resize:vertical;min-height:150px}
select.form__field{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C6F84A' stroke-width='2'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.form__hint{font-size:var(--fs-caption);color:var(--text-muted)}
.form__error{font-size:var(--fs-caption);color:var(--danger);display:none}
.form__group.is-error .form__error{display:block}
.form__check{display:flex;align-items:flex-start;gap:var(--s-3);font-size:var(--fs-small);color:var(--text-body);line-height:1.5}
.form__check input[type="checkbox"]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:20px;height:20px;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;position:relative;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);margin-top:2px}
.form__check input[type="checkbox"]:checked{background:var(--accent-primary);border-color:var(--accent-primary)}
.form__check input[type="checkbox"]:checked::after{content:"";position:absolute;top:3px;left:6px;width:5px;height:9px;border:solid var(--text-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}
.form__check input[type="checkbox"]:focus-visible{box-shadow:var(--sh-focus)}
.form__check a{color:var(--accent-primary)}
.form__hp{position:absolute !important;left:-9999px !important;top:-9999px !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important}
.form__success{padding:var(--s-5);background:rgba(74,222,128,0.06);border:1px solid rgba(74,222,128,0.3);border-radius:var(--radius-lg);color:var(--text-secondary);display:flex;gap:var(--s-3);align-items:flex-start}
.form__success-icon{width:24px;height:24px;color:var(--success);flex-shrink:0}
.form__success h3{color:var(--success);margin-bottom:var(--s-2);font-size:var(--fs-h5)}
.form__alert{padding:var(--s-4);background:rgba(248,113,113,0.08);border:1px solid rgba(248,113,113,0.35);border-radius:var(--radius-md);color:var(--danger);font-size:var(--fs-small)}

/* ===== MAP ===== */
.map-embed{position:relative;aspect-ratio:16/9;width:100%;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-card)}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-placeholder{position:relative;aspect-ratio:16/9;width:100%;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-card) linear-gradient(135deg,rgba(198,248,74,0.04),transparent 60%);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--s-4);padding:var(--s-5);text-align:center;cursor:pointer}
.map-placeholder__title{font-family:var(--ff-display);color:var(--text-primary);font-size:var(--fs-h5)}
.map-placeholder__body{color:var(--text-muted);font-size:var(--fs-small);max-width:36ch}

/* ===== FAQ ACCORDION ===== */
.faq{display:flex;flex-direction:column;gap:var(--s-3)}
.faq__item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--dur-fast) var(--ease-out)}
.faq__item.is-open{border-color:rgba(198,248,74,0.3)}
.faq__question{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-5);text-align:left;font-family:var(--ff-display);font-size:1rem;font-weight:600;color:var(--text-primary);background:transparent;cursor:pointer;line-height:1.4}
.faq__question:hover{color:var(--accent-primary)}
.faq__icon{position:relative;width:24px;height:24px;flex-shrink:0;margin-top:4px}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;top:50%;left:50%;background:var(--accent-primary);transition:transform var(--dur-base) var(--ease-out)}
.faq__icon::before{width:14px;height:2px;transform:translate(-50%,-50%)}
.faq__icon::after{width:2px;height:14px;transform:translate(-50%,-50%)}
.faq__item.is-open .faq__icon::after{transform:translate(-50%,-50%) scaleY(0)}
.faq__answer{max-height:0;overflow:hidden;transition:max-height var(--dur-slow) var(--ease-out)}
.faq__item.is-open .faq__answer{max-height:1000px}
.faq__answer-inner{padding:0 var(--s-5) var(--s-4);color:var(--text-body);line-height:1.6;font-size:var(--fs-body)}

/* ===== 404 ===== */
.not-found{padding-block:clamp(4rem,10vw,9rem);text-align:center;display:flex;flex-direction:column;gap:var(--s-5);align-items:center}
.not-found__code{font-family:var(--ff-display);font-size:clamp(7rem,18vw,14rem);font-weight:700;line-height:0.9;letter-spacing:-0.05em;color:transparent;-webkit-text-stroke:2px var(--accent-primary)}
.not-found__title{font-family:var(--ff-display);font-size:var(--fs-h2);font-weight:700;color:var(--text-primary)}
.not-found__body{color:var(--text-body);max-width:48ch;font-size:var(--fs-body-lg);line-height:1.55}
.not-found__actions{display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:center;margin-top:var(--s-3)}

/* ===== CHIP / TAG ===== */
.chip{display:inline-flex;align-items:center;gap:var(--s-1);padding:0.25rem 0.625rem;font-size:var(--fs-caption);font-family:var(--ff-display);font-weight:600;color:var(--accent-primary);border:1px solid rgba(198,248,74,0.4);border-radius:var(--radius-pill);letter-spacing:0.06em;text-transform:uppercase;background:rgba(198,248,74,0.04)}
.tag{display:inline-flex;align-items:center;padding:0.25rem 0.625rem;font-size:var(--fs-caption);font-family:var(--ff-display);font-weight:600;color:var(--text-muted);border:1px solid var(--border-default);border-radius:var(--radius-pill);letter-spacing:0.06em;text-transform:uppercase;background:transparent}
.chip-row{display:flex;flex-wrap:wrap;gap:var(--s-2)}

/* Client types / partner strip */
.client-types{display:grid;gap:var(--s-4);grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width: 1023px){.client-types{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 540px){.client-types{grid-template-columns:1fr}}
.client-types__item{padding:var(--s-5);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;font-family:var(--ff-display);font-size:var(--fs-body);color:var(--text-primary);font-weight:500;transition:border-color var(--dur-fast) var(--ease-out)}
.client-types__item:hover{border-color:rgba(198,248,74,0.4)}

/* Cookie banner */
.cookie-banner{position:fixed;left:var(--s-4);right:var(--s-4);bottom:var(--s-4);z-index:var(--z-toast);max-width:560px;margin-inline:auto;padding:var(--s-4) var(--s-5);background:var(--bg-elevated);border:1px solid rgba(198,248,74,0.3);border-radius:var(--radius-lg);box-shadow:var(--sh-lg);display:none;gap:var(--s-4);align-items:center;flex-wrap:wrap;justify-content:space-between}
.cookie-banner.is-visible{display:flex}
.cookie-banner__body{flex:1;min-width:240px;font-size:var(--fs-small);color:var(--text-body);line-height:1.5}
.cookie-banner__body a{color:var(--accent-primary)}
.cookie-banner__actions{display:flex;gap:var(--s-2);flex-shrink:0}

/* ===== ANIMATION UTIL ===== */
.fade-up{opacity:0;transform:translateY(16px);transition:opacity 420ms var(--ease-out),transform 420ms var(--ease-out)}
.fade-up.is-visible{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion: reduce){.fade-up{opacity:1;transform:none}}

/* Related services (3-card linked block) */
.related-services{display:grid;gap:var(--s-5);grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width: 1023px){.related-services{grid-template-columns:1fr}}

/* Legal / long-form reading */
.legal-doc{max-width:72ch}
.legal-doc p{font-size:var(--fs-body);line-height:1.7;color:var(--text-body);margin-bottom:var(--s-4)}
.legal-doc h2{margin-top:var(--s-6);margin-bottom:var(--s-3)}
.legal-doc h3{margin-top:var(--s-5);margin-bottom:var(--s-2)}
.legal-doc ul{margin:var(--s-3) 0 var(--s-4) var(--s-5);list-style:disc;color:var(--text-body)}
.legal-doc ul li{margin-bottom:var(--s-2);line-height:1.7}

/* Footer body class hint for mobile */
@media (max-width: 767px){
  .hide-mobile{display:none !important}
}

/* Mobile readability safeguards — never shrink below comfortable size */
@media (max-width: 640px){
  body{font-size:0.9375rem}
  .hero__title{font-size:clamp(1.625rem,6.5vw,2rem)}
  .hero__subtitle{font-size:0.9375rem;line-height:1.55}
  .section-title{font-size:1.25rem}
  .btn{min-height:44px;padding:0.75rem 1.25rem}
  .btn--sm{min-height:40px}
  .header__menu-toggle{min-width:44px;min-height:44px}
}

/* ===== PRINT ===== */
@media print{
  body{background:#fff;color:#000}
  .header,.footer,.drawer,.drawer-backdrop,.cookie-banner,.header__menu-toggle,.cta-banner{display:none !important}
  a{color:#000;text-decoration:underline}
  *{box-shadow:none !important}
}
