/* =========================
   TOKENS
   ========================= */
:root{
  --white:#FFFFFF;--black:#000000;
  --navy:#1a2332;--teal:#0f766e;--gold:#F2C14E;
  --mist:#E7FBF6;--sand:#FFF8ED;--cloud:#EAF2FF;--linen:#F3E6D2;--slate:#556071;
  --night:#0F172A;--sea:#064E52;

  --wrap:1280px;--text:68ch;--inset-x:clamp(16px,3vw,32px);
  --section-y-sm:clamp(16px,3vw,32px);--section-y:clamp(28px,4vw,52px);--section-y-lg:clamp(40px,6vw,78px);
  --rail:max(var(--inset-x), calc((100vw - var(--wrap)) / 2));
  --header-offset:clamp(88px,8vw,118px);

  --focus:3px solid var(--gold);--focus-offset:3px;

  --t-fast:160ms;--ease-out:ease-out;--t:160ms ease-out;

  --b1:1px;--b2:2px;--stroke-1:var(--b1);--stroke-2:var(--b2);
  --hit:48px;

  --edge-h:3px;
  --accent-bar:linear-gradient(to right,var(--teal) 0%,var(--teal) 88%,var(--gold) 88%,var(--gold) 100%);

  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;
  --stack:var(--s4);--stack-tight:var(--s3);--grid-gap:var(--s4);--grid-gap-lg:var(--s5);

  --pad-card:clamp(20px,3vw,52px);--pad-panel:var(--s5);

  --nav-y:var(--s4);--nav-gap:var(--s5);--nav-inset:var(--s4);

  --ff-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";

  --fs-small:clamp(.9rem,.2vw + .85rem,1rem);
  --fs-body:clamp(1.125rem,.7vw + 1.05rem,1.1875rem);
  --fs-h1:clamp(1.95rem,2.4vw + 1.1rem,3.25rem);
  --fs-h2:clamp(1.9rem,1.8vw + 1.05rem,2.5rem);
  --fs-h3:clamp(1.5rem,1vw + 1rem,2rem);
  --fs-sub:clamp(1.5rem,.85vw + .98rem,1.9rem);
  --fs-h4:var(--fs-sub);

  --lh-body:1.65;--lh-ui:1.2;

  --fw-ui:500;--fw-emphasis:700;--fw-strong:800;

  --r-sm:12px;--r-md:14px;--r-lg:28px;--r-pill:999px;

  --elev-1:0 10px 20px rgba(15,23,42,.08);
  --elev-2:0 16px 32px rgba(15,23,42,.12);

  --stone:var(--navy);
  --panel-bg:transparent;
}

/* =========================
   A11Y
   ========================= */
:focus-visible{outline:var(--focus);outline-offset:var(--focus-offset)}
:target{scroll-margin-top:var(--header-offset)}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{left:var(--inset-x);top:var(--inset-x);width:auto;height:auto;padding:var(--s3) var(--s4);background:var(--white);border:var(--b1) solid var(--stone);z-index:1000;outline:var(--focus);outline-offset:var(--focus-offset)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.link::after{transition:none}.card,.card img{transition:none}*{animation:none !important;transition:none !important;scroll-behavior:auto !important}}

/* =========================
   BASE
   ========================= */
*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:100%}
body{margin:0;background:var(--white);color:var(--night);font-family:var(--ff-sans);font-size:var(--fs-body);line-height:var(--lh-body);text-rendering:optimizeLegibility}
::selection{background:color-mix(in srgb,var(--gold) 25%,transparent)}
a{color:inherit;text-decoration:none}
h1{font-size:var(--fs-h1);line-height:1.15;font-weight:var(--fw-emphasis);margin-bottom:var(--stack);text-transform:uppercase}
h2{font-size:var(--fs-h2);line-height:1.15;font-weight:var(--fw-emphasis);margin:0 0 var(--stack) 0}
h3{font-size:var(--fs-h3);line-height:1.15;font-weight:var(--fw-emphasis);margin:0 0 var(--stack) 0}
h4{font-size:var(--fs-h4);line-height:1.15;font-weight:var(--fw-emphasis);margin:0 0 var(--stack-tight) 0}
h5{font-size:var(--fs-h4);line-height:1.15;font-weight:var(--fw-emphasis);margin:0 0 var(--stack-tight) 0}
h6{font-size:var(--fs-small);line-height:1.3;font-weight:var(--fw-emphasis);margin:0 0 var(--stack-tight) 0}
p{margin:0 0 var(--stack) 0}
main :where(ul,ol){margin:0 0 var(--stack) 0}
main :where(li){margin:0 0 var(--stack-tight) 0}
main :where(p,ul,ol,figure):last-child{margin-bottom:0}
main{width:100%;max-width:none;margin:0}
main > :where(section,article,footer){width:100%;margin:0}
main :where(section,article,footer) :where(p,ul,ol){max-width:var(--text)}
main ul li::marker{color:var(--gold);font-size:.9em}

/* core roles */
.rail,.container{width:min(var(--wrap),calc(100% - 2*var(--inset-x)));margin-inline:auto}
.measure{max-width:var(--text)}
.bold{font-weight:var(--fw-emphasis);font-variant:all-small-caps}

/* =========================
   UI PRIMITIVES
   ========================= */
.dot{color:var(--gold);font-size:1em;line-height:1;font-weight:var(--fw-strong)}
.btn{margin-top:var(--stack);display:inline-flex;align-items:center;justify-content:center;min-height:var(--hit);padding:0 var(--s4);border:2px solid;font-size:1.05rem;font-weight:600;font-variant:all-small-caps;letter-spacing:.015em;line-height:1.1;text-decoration:none;transition:background-color var(--t),border-color var(--t),color var(--t),box-shadow var(--t),transform var(--t)}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(0,0,0,.18)}
.link{display:inline-flex;align-items:baseline;gap:var(--s2);font-weight:600;font-variant:all-small-caps;letter-spacing:.0125em;text-decoration:none}
.link::after{content:"›";font-size:2em;font-weight:900;line-height:1;transform:translateY(.05em) translateX(0);transition:transform var(--t)}
.link:hover::after{transform:translateY(.05em) translateX(4px)}

/* =========================
   THEMES
   ========================= */
.white{background:var(--white);color:var(--night)}
.mist{background:var(--mist);color:var(--night)}
.sand{background:var(--sand);color:var(--night)}
.cloud{background:var(--cloud);color:var(--night)}
.teal{background:var(--teal);color:var(--white)}
.gold{background:var(--gold);color:var(--black)}
.navy{background:var(--navy);color:var(--white)}
.sea{background:var(--sea);color:var(--white)}
.night{background:var(--night);color:var(--white)}
.linen{background:var(--linen);color:var(--night)}
.slate{background:var(--slate);color:var(--cloud)}

/* theme typography */
.white h1,.white h2,.white h3,.white h5,.mist h1,.mist h2,.mist h3,.mist h5,.sand h1,.sand h2,.sand h3,.sand h5,.cloud h1,.cloud h2,.cloud h3,.cloud h5{color:var(--teal)}
.teal h1,.teal h2,.teal h3,.teal h5{color:var(--white)}
.gold h1,.gold h2,.gold h3,.gold h5{color:var(--black)}
.navy h1,.navy h2,.navy h3,.navy h5,.sea h1,.sea h2,.sea h3,.sea h5,.night h1,.night h2,.night h3,.night h5{color:var(--gold)}
.linen h1,.linen h2,.linen h3,.linen h5{color:var(--navy)}
.slate h1,.slate h2,.slate h3,.slate h5{color:var(--white)}
.white h4,.white h6,.mist h4,.mist h6,.sand h4,.sand h6,.cloud h4,.cloud h6,.teal h4,.teal h6,.gold h4,.gold h6,.navy h4,.navy h6,.sea h4,.sea h6,.night h4,.night h6,.linen h4,.linen h6,.slate h4,.slate h6{color:inherit;font-weight:var(--fw-emphasis)}

/* theme buttons + links */
.white .btn.p{background:var(--navy);color:var(--white);border-color:var(--navy)}
.white .btn.p:hover{background:var(--white);color:var(--night);border-color:var(--navy)}
.white .btn.s{background:var(--teal);color:var(--white);border-color:var(--teal)}
.white .btn.s:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.white .btn.r{background:transparent;color:var(--navy);border-color:var(--navy)}
.white .btn.r:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.white .link{color:var(--teal)}
.white .link::after{color:var(--navy)}

.mist .btn.p{background:var(--navy);color:var(--mist);border-color:var(--navy)}
.mist .btn.p:hover{background:var(--mist);color:var(--navy);border-color:var(--navy)}
.mist .btn.s{background:var(--teal);color:var(--mist);border-color:var(--teal)}
.mist .btn.s:hover{background:var(--navy);border-color:var(--navy)}
.mist .btn.r{background:transparent;color:var(--navy);border-color:var(--navy)}
.mist .btn.r:hover{background:var(--navy);color:var(--mist);border-color:var(--navy)}
.mist .link{color:var(--teal)}
.mist .link::after{color:var(--navy)}

.sand .btn.p{background:var(--navy);color:var(--sand);border-color:var(--navy)}
.sand .btn.p:hover{background:var(--sand);color:var(--night);border-color:var(--navy)}
.sand .btn.s{background:var(--teal);color:var(--sand);border-color:var(--teal)}
.sand .btn.s:hover{background:var(--navy);border-color:var(--navy)}
.sand .btn.r{background:transparent;color:var(--navy);border-color:var(--navy)}
.sand .btn.r:hover{background:var(--navy);color:var(--sand);border-color:var(--navy)}
.sand .link{color:var(--teal)}
.sand .link::after{color:var(--navy)}

.cloud .btn.p{background:var(--navy);color:var(--cloud);border-color:var(--navy)}
.cloud .btn.p:hover{background:var(--cloud);color:var(--night);border-color:var(--night)}
.cloud .btn.s{background:var(--teal);color:var(--cloud);border-color:var(--teal)}
.cloud .btn.s:hover{background:var(--navy);border-color:var(--navy)}
.cloud .btn.r{background:transparent;color:var(--navy);border-color:var(--navy)}
.cloud .btn.r:hover{background:var(--navy);color:var(--cloud);border-color:var(--navy)}
.cloud .link{color:var(--teal)}
.cloud .link::after{color:var(--navy)}

.teal .btn.p{background:var(--white);color:var(--teal);border-color:var(--white)}
.teal .btn.p:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.teal .btn.s{background:var(--gold);color:var(--night);border-color:var(--gold)}
.teal .btn.s:hover{background:var(--white);color:var(--teal);border-color:var(--white)}
.teal .btn.r{background:transparent;color:var(--white);border-color:var(--white)}
.teal .btn.r:hover{background:var(--white);color:var(--teal);border-color:var(--white)}
.teal .link{color:var(--white)}
.teal .link::after{color:var(--black)}

.gold .btn.p{background:var(--navy);color:var(--gold);border-color:var(--navy)}
.gold .btn.p:hover{background:var(--white);color:var(--navy);border-color:var(--white)}
.gold .btn.s{background:var(--white);color:var(--navy);border-color:var(--white)}
.gold .btn.s:hover{background:var(--navy);color:var(--gold);border-color:var(--navy)}
.gold .btn.r{background:transparent;color:var(--navy);border-color:var(--navy)}
.gold .btn.r:hover{background:var(--night);color:var(--gold);border-color:var(--night)}
.gold .link{color:var(--black)}
.gold .link::after{color:var(--white)}

.navy .btn.p{background:var(--gold);color:var(--night);border-color:var(--gold)}
.navy .btn.p:hover{background:var(--white);color:var(--navy);border-color:var(--white)}
.navy .btn.s{background:var(--white);color:var(--navy);border-color:var(--white)}
.navy .btn.s:hover{background:var(--gold);color:var(--night);border-color:var(--gold)}
.navy .btn.r{background:transparent;color:var(--white);border-color:var(--white)}
.navy .btn.r:hover{background:var(--white);color:var(--navy);border-color:var(--white)}
.navy .link{color:var(--gold)}
.navy .link::after{color:var(--white)}

.sea .btn.p{background:var(--gold);color:var(--sea);border-color:var(--gold)}
.sea .btn.p:hover{background:var(--white);color:var(--sea);border-color:var(--white)}
.sea .btn.s{background:var(--white);color:var(--sea);border-color:var(--white)}
.sea .btn.s:hover{background:var(--gold);color:var(--sea);border-color:var(--gold)}
.sea .btn.r{background:transparent;color:var(--white);border-color:var(--white)}
.sea .btn.r:hover{background:var(--white);color:var(--sea);border-color:var(--white)}
.sea .link{color:var(--gold)}
.sea .link::after{color:var(--white)}

.night .btn.p{background:var(--gold);color:var(--night);border-color:var(--gold)}
.night .btn.p:hover{background:var(--white);color:var(--night);border-color:var(--white)}
.night .btn.s{background:var(--white);color:var(--night);border-color:var(--white)}
.night .btn.s:hover{background:var(--gold);color:var(--night);border-color:var(--gold)}
.night .btn.r{background:transparent;color:var(--white);border-color:var(--white)}
.night .btn.r:hover{background:var(--white);color:var(--night);border-color:var(--white)}
.night .link{color:var(--gold)}
.night .link::after{color:var(--white)}

.linen .btn.p{background:var(--navy);color:var(--linen);border-color:var(--navy)}
.linen .btn.p:hover{background:var(--teal);color:var(--white);border-color:var(--teal)}
.linen .btn.s{background:var(--teal);color:var(--white);border-color:var(--teal)}
.linen .btn.s:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.linen .btn.r{background:transparent;color:var(--navy);border-color:var(--navy)}
.linen .btn.r:hover{background:var(--navy);color:var(--linen);border-color:var(--navy)}
.linen .link{color:var(--teal)}
.linen .link::after{color:var(--navy)}

.slate .btn.p{background:var(--navy);color:var(--cloud);border-color:var(--navy)}
.slate .btn.p:hover{background:var(--gold);color:var(--night);border-color:var(--gold)}
.slate .btn.s{background:var(--teal);color:var(--white);border-color:var(--teal)}
.slate .btn.s:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.slate .btn.r{background:transparent;color:var(--cloud);border-color:var(--cloud)}
.slate .btn.r:hover{background:var(--cloud);color:var(--night);border-color:var(--cloud)}
.slate .link{color:var(--gold)}
.slate .link::after{color:var(--white)}

/* =========================
   NAVBAR (includes drawer)
   ========================= */
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.87);backdrop-filter:saturate(150%) blur(5px)}
.header-edge{height:var(--edge-h);background:var(--accent-bar)}
header .nav{display:flex;align-items:center;justify-content:space-between;gap:var(--grid-gap);padding-block:var(--nav-y)}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s1);font-weight:var(--fw-emphasis);letter-spacing:.2px;white-space:nowrap;line-height:1em}
.brand a:hover{color:var(--teal)}
.brand small{font-variant:all-small-caps;font-size:.94em;color:var(--teal);line-height:.3em;width:100%;margin-bottom:5px}
header nav{display:none}
header nav ul{list-style:none;display:flex;gap:var(--nav-gap);padding:0;margin:0;flex-wrap:wrap;justify-content:center}
header nav a{display:inline-flex;align-items:center;min-height:var(--hit);padding:0 var(--nav-inset);position:relative;font-weight:var(--fw-ui);font-variant:all-small-caps;line-height:var(--lh-ui)}
header nav a::after{content:"";position:absolute;left:var(--nav-inset);right:var(--nav-inset);bottom:7px;height:2px;background:var(--accent-bar);opacity:0;transition:opacity var(--t-fast) var(--ease-out)}
header nav a:hover::after,header nav a:focus-visible::after{opacity:1}
.actions{display:flex;gap:var(--stack-tight);align-items:center;white-space:nowrap}
header .btn{border-radius:0;margin:0;min-height:var(--hit)}
header .btn.p{background:var(--navy);color:var(--white);border-color:var(--navy)}
header .btn.p:hover{background:var(--white);color:var(--night);border-color:var(--navy)}
header .btn.s{background:var(--teal);color:var(--white);border-color:var(--teal)}
header .btn.s:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
header .btn.r{background:transparent;color:var(--navy);border-color:var(--navy)}
header .btn.r:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.menu-btn{display:inline-flex;width:var(--hit);height:var(--hit);padding:0;border:var(--b2) solid var(--navy);background:transparent;color:var(--navy);align-items:center;justify-content:center;border-radius:0;transition:background-color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}
.menu-btn:hover{background:var(--navy);color:var(--white);border-color:var(--navy);transform:translateY(-1px);box-shadow:0 10px 18px rgba(0,0,0,.18)}
.burger{width:18px;height:12px;position:relative}
.burger span{position:absolute;left:0;right:0;height:2px;background:currentColor}
.burger span:nth-child(1){top:0}
.burger span:nth-child(2){top:5px}
.burger span:nth-child(3){top:10px}
@media (min-width:1024px){header nav{display:block}.menu-btn{display:none}}

.drawer{position:fixed;inset:0;z-index:80;opacity:0;pointer-events:none;transition:opacity var(--t-fast) var(--ease-out)}
.drawer[aria-hidden="false"]{opacity:1;pointer-events:auto}
.drawer-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45)}
.drawer-panel{position:absolute;top:0;right:0;height:100%;width:min(360px,92vw);background:var(--teal);border-left:var(--b1) solid color-mix(in srgb,#000 10%,transparent);padding:var(--pad-panel);display:flex;flex-direction:column;gap:var(--grid-gap);color:var(--white)}
.drawer-top{display:flex;align-items:center;justify-content:space-between;gap:var(--grid-gap);padding-bottom:var(--nav-y);border-bottom:var(--b1) solid rgba(255,255,255,.22)}
.drawer-top .brand a{color:var(--white)}
.drawer-top .brand a:hover{color:var(--white)}
.drawer-top .brand small{color:var(--white)}
.drawer-panel .icon-btn{width:var(--hit);height:var(--hit);border:var(--b2) solid var(--white);background:transparent;display:inline-flex;align-items:center;justify-content:center;border-radius:0;color:var(--white);transition:background-color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}
.drawer-panel .icon-btn:hover{background:var(--white);color:var(--teal);border-color:var(--white);transform:translateY(-1px);box-shadow:0 10px 18px rgba(0,0,0,.18)}
.x{width:16px;height:16px;position:relative}
.x::before,.x::after{content:"";position:absolute;inset:0;height:2px;top:7px;transform-origin:center;background:currentColor}
.x::before{transform:rotate(45deg)}
.x::after{transform:rotate(-45deg)}
.drawer-links{display:flex;flex-direction:column;gap:var(--grid-gap)}
.drawer-links .btn{border-radius:0;min-height:var(--hit)}
.drawer-panel .btn.p{background:var(--white);color:var(--teal);border-color:var(--white)}
.drawer-panel .btn.p:hover{background:var(--gold);color:var(--night);border-color:var(--gold)}
.drawer-panel .btn.s{background:var(--gold);color:var(--night);border-color:var(--gold)}
.drawer-panel .btn.s:hover{background:var(--white);color:var(--teal);border-color:var(--white)}
.drawer-panel .btn.r{background:transparent;color:var(--white);border-color:var(--white)}
.drawer-panel .btn.r:hover{background:var(--white);color:var(--teal);border-color:var(--white)}
@media (min-width:1536px){.drawer[aria-hidden="false"]{opacity:0;pointer-events:none}}

/* =========================
   FOOTER
   ========================= */
footer{position:relative}
.copyright{padding-top:var(--section-y);padding-bottom:var(--section-y)}
.copyright p{font-variant:all-small-caps;text-align:right;font-size:var(--fs-small);font-weight:var(--fw-ui);margin:0}
.crsm{font-size:var(--fs-small);font-weight:var(--fw-emphasis)}

/* =========================
   LAYOUTS
   ========================= */
.herosplit{padding-block:0}
.feature{padding-block:var(--section-y-lg)}
.statement{padding-block:var(--section-y);text-align:center}
.logosband{padding-block:var(--section-y-sm)}
.cardspan{padding-block:var(--section-y-lg)}
.portfolio{padding-block:var(--section-y-lg)}
.featuresplit{padding-block:0}
.splitpanels{padding-block:0}
.duocard{padding-block:var(--section-y-lg)}
.cta{padding-block:var(--section-y-lg)}

/* FEATURE */
.feature .grid{display:grid;grid-template-columns:1fr;gap:var(--grid-gap-lg);align-items:center}
.feature .copy{padding:0}
.feature .fill{width:100%;overflow:hidden;background:color-mix(in srgb,currentColor 10%,transparent);aspect-ratio:2/1}
.feature .fill img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
@media (min-width:1024px){.feature .grid{grid-template-columns:1fr 2fr;gap:clamp(var(--s5),3vw,56px)}.feature.rev .grid{grid-template-columns:2fr 1fr}.feature.rev .media{order:2}.feature.rev .copy{order:1}.feature .copy{padding:var(--pad-card)}.feature .fill{aspect-ratio:1/1}}

/* HEROSPLIT */
.herosplit .grid{width:min(var(--wrap),calc(100% - 2*var(--inset-x)));margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;column-gap:var(--grid-gap-lg);min-height:clamp(260px,34vw,420px);align-items:stretch;gap:clamp(var(--s5),4vw,var(--s8))}
.herosplit .copy{display:flex;align-items:flex-end;padding:var(--section-y) 0;padding-inline-end:clamp(var(--s4),3vw,var(--s7));min-width:0}
.herosplit .media{position:relative;overflow:hidden;min-width:0}
.herosplit .media img{width:100%;height:100%;object-fit:cover;display:block}
.herosplit .media::after{content:"";position:absolute;inset:0;display:none}
@media (max-width:1023px){.herosplit{padding-block:var(--section-y-lg)}.herosplit .grid{grid-template-columns:1fr;gap:var(--grid-gap-lg)}.herosplit .media{order:-1;overflow:hidden;background:color-mix(in srgb,currentColor 10%,transparent);aspect-ratio:2/1}.herosplit .media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.herosplit .copy{padding:0}}

/* STATEMENT */
.statement .inner{max-width:1024px;margin:auto}
.statement .stars{margin:var(--stack) 0;font-size:1.1em;letter-spacing:.25em}

/* LOGOSBAND */
.logosband .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap);width:100%}
.logosband .grid img{width:100%;height:100%;aspect-ratio:2/1;object-fit:contain;display:block}
.logosband .grid img:nth-child(n+7){display:none}

@media (min-width:600px){
.logosband .grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.logosband .grid img:nth-child(n+7){display:none}
}

@media (min-width:1024px){
.logosband .grid{grid-template-columns:repeat(12,minmax(0,1fr))}
.logosband .grid img:nth-child(n+7){display:block}
}

/* CARDSPAN */
.cardspan .cards{display:grid;grid-template-columns:1fr;gap:var(--grid-gap);margin-top:var(--section-y-sm)}
.cardspan .card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:var(--s6);min-height:160px;text-align:left}
@media (min-width:768px){.cardspan .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.cardspan .cards{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* PORTFOLIO */
.portfolio .cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);margin-top:var(--section-y)}
.portfolio .card{margin:0;padding:var(--s3) var(--s3) var(--s4);background:var(--white);border:var(--stroke-1) solid color-mix(in srgb,currentColor 14%,transparent);box-shadow:var(--elev-1);transform:rotate(-1.5deg);transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out);cursor:pointer}
.portfolio .card:nth-child(2n){transform:rotate(1.25deg)}
.portfolio .card:nth-child(3n){transform:rotate(-0.75deg)}
.portfolio .card a{display:block;color:inherit}
.portfolio .card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border:var(--stroke-1) solid color-mix(in srgb,currentColor 14%,transparent);transition:transform var(--t-fast) var(--ease-out)}
.portfolio .card figcaption{height:3.5em;overflow:hidden;margin-top:var(--s2)}
.portfolio .card figcaption h3{color:var(--teal);line-height:1.1;margin:0;font-weight:var(--fw-emphasis);text-transform:uppercase;font-size:var(--fs-body)}
.portfolio .card figcaption p{color:var(--navy);font-weight:var(--fw-ui);margin:var(--s1) 0 0 0;line-height:1.1;text-transform:capitalize;font-size:var(--fs-small)}
.portfolio .card:hover,.portfolio .card:focus-within{transform:rotate(0deg) translateY(-2px);box-shadow:var(--elev-2)}
.portfolio .card:hover img,.portfolio .card:focus-within img{transform:scale(1.02)}
@media (min-width:1024px){.portfolio .cards{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* FEATURESPLIT */
.featuresplit .grid{display:grid;grid-template-columns:1fr;gap:clamp(var(--s5),4vw,var(--s8))}
.featuresplit .panel{position:relative;padding-block:var(--section-y-lg);z-index:0}
.featuresplit .panel::before{content:"";position:absolute;top:0;bottom:0;background:inherit;z-index:-1}
.featuresplit .panel-inner{height:100%;display:flex;align-items:center}
.featuresplit .media .panel-inner{padding:0}
.featuresplit .fill img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.featuresplit h1{margin-bottom:var(--s6)}
.featuresplit .copy{padding-inline-start:clamp(var(--s4),3vw,var(--s7))}
@media (min-width:1024px){.featuresplit .grid{grid-template-columns:1fr 1fr}.featuresplit .panel.left::before{left:-100vw;right:0}.featuresplit .panel.right::before{left:0;right:-100vw}.featuresplit .panel.left{padding-left:var(--rail);padding-right:0}.featuresplit .panel.right{padding-left:0;padding-right:var(--rail)}.featuresplit .panel.left .panel-inner{padding-right:var(--inset-x)}.featuresplit .panel.right .panel-inner{padding-left:var(--inset-x)}}
@media (max-width:1023px){.featuresplit{padding-block:var(--section-y-lg)}.featuresplit .grid{gap:var(--grid-gap-lg)}.featuresplit .panel{padding-block:0;padding-inline:var(--inset-x)}.featuresplit .panel::before{display:none;left:-100vw;right:-100vw}.featuresplit .fill img{object-fit:contain;height:auto}.featuresplit .fill{aspect-ratio:auto}.featuresplit .copy{padding-inline:0}}
@media (min-width:1280px){.featuresplit .copy{padding-inline:var(--s6)}}

/* SPLITPANELS */
.splitpanels .grid{display:grid;grid-template-columns:1fr;gap:0}
.splitpanels .panel{position:relative;padding-block:var(--section-y);display:flex;align-items:flex-start;z-index:0}
.splitpanels .panel::before{content:"";position:absolute;top:0;bottom:0;background:var(--panel-bg);z-index:-1}
.splitpanels .panel.sand{--panel-bg:var(--sand)}
.splitpanels .panel.cloud{--panel-bg:var(--cloud)}
.splitpanels .profilePhoto{width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0}
@media (min-width:768px){
  .splitpanels .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .splitpanels .panel::before{display:block}
  .splitpanels .panel .rail{width:auto;margin:0}
  .splitpanels .panel.left::before{left:-100vw;right:0}
  .splitpanels .panel.right::before{left:0;right:-100vw}
  .splitpanels .panel.left{padding-left:var(--rail);padding-right:var(--inset-x)}
  .splitpanels .panel.right{padding-left:var(--inset-x);padding-right:var(--rail)}
}
@media (max-width:767px){
  .splitpanels .panel::before{left:-100vw;right:-100vw}
}

/* DUOCARD */
.duocard .grid{display:grid;grid-template-columns:1fr;gap:var(--grid-gap)}
.duocard .card{display:flex;align-items:center;padding:var(--pad-card)}
.duocard .row{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--stack-tight)}
.duocard .row img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0}
.duocard .meta h4{margin:0}
.duocard .meta p{margin:0}
@media (min-width:768px){.duocard .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* CTA */
.cta .rail{padding-block:var(--section-y);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--stack);text-align:center}

/* =========================
   COMPONENTS
   ========================= */
/* GOOGLE REVIEWS */
#google-reviews .gr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--grid-gap)}
#google-reviews .gr-rating{display:flex;flex-direction:column;gap:var(--s1)}
#google-reviews .gr-rating-top{display:flex;align-items:baseline;gap:var(--s2)}
#google-reviews .gr-google{font-weight:700;letter-spacing:-0.02em;font-size:1.2rem;line-height:1.1}
#google-reviews .gr-label{font-weight:500;font-size:.95rem;line-height:1;color:#5f6368}
#google-reviews .gr-rating-bottom{display:flex;align-items:center;gap:var(--s3);line-height:1.1}
#google-reviews .gr-score{font-weight:500;font-size:.95rem;line-height:1;color:#5f6368}
#google-reviews .gr-stars{color:#fbbc04;letter-spacing:.10em;font-size:1.05rem;transform:translateY(-1px)}
#google-reviews .g1{color:#4285F4}
#google-reviews .g2{color:#EA4335}
#google-reviews .g3{color:#FBBC05}
#google-reviews .g4{color:#4285F4}
#google-reviews .g5{color:#34A853}
#google-reviews .g6{color:#EA4335}
#google-reviews .gr-row{display:grid;grid-template-columns:var(--hit) 1fr var(--hit);gap:var(--grid-gap);align-items:center;margin-top:var(--section-y)}
#google-reviews .gr-arrow{width:var(--hit);height:var(--hit);border:0;background:transparent;border-radius:999px;color:color-mix(in srgb,var(--night) 55%,transparent);font-size:2rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
#google-reviews .gr-arrow:hover{background:color-mix(in srgb,var(--night) 6%,transparent);color:color-mix(in srgb,var(--night) 78%,transparent)}
#google-reviews .gr-arrow[disabled]{opacity:.35;cursor:not-allowed;background:transparent}
#google-reviews .gr-viewport{overflow:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:var(--r-sm);outline:none;scroll-behavior:smooth}
#google-reviews .gr-viewport::-webkit-scrollbar{display:none}
#google-reviews .cards{display:flex;flex-wrap:nowrap;gap:var(--grid-gap);padding:var(--s2);margin-top:0;width:100%}
#google-reviews .card{flex:0 0 100%;scroll-snap-align:start;min-width:0;transform:none !important;cursor:default;box-shadow:none;border-radius:var(--r-sm);background:#f6f7f8;border:1px solid #e0e0e0;padding:var(--s5);margin:0;display:flex;flex-direction:column;min-height:220px}
#google-reviews .gr-top{display:flex;gap:var(--s3);align-items:center;margin-bottom:var(--s3);min-width:0}
#google-reviews .gr-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e8f0fe;color:#174ea6;font-weight:700;flex:0 0 auto;user-select:none;border:1px solid #e0e0e0}
#google-reviews .gr-name{margin:0;font-weight:700;color:#202124;line-height:1.2;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#google-reviews .gr-mini{margin:2px 0 0 0;color:#5f6368;font-size:.92rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#google-reviews .gr-cardstars{margin:0 0 var(--s3) 0;letter-spacing:.10em;color:#fbbc04;font-size:1.05rem;line-height:1}
#google-reviews .gr-body{margin:0;color:#202124;line-height:1.55}
#google-reviews .card[data-expanded="false"] .gr-body{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
#google-reviews .gr-more{margin-top:var(--s2);padding:0;border:0;background:transparent;color:#5f6368;font:inherit;font-size:.92rem;line-height:1.2;cursor:pointer;text-align:left;display:none}
#google-reviews .gr-more:hover{color:#1a73e8;text-decoration:underline}
#google-reviews .gr-spacer{flex:1 1 auto}
@media (max-width:720px){#google-reviews .gr-row{grid-template-columns:1fr}#google-reviews .gr-arrow{display:none}}
@media (min-width:600px){#google-reviews .card{flex-basis:calc((100% - 1*var(--grid-gap)) / 2)}}
@media (min-width:860px){#google-reviews .card{flex-basis:calc((100% - 2*var(--grid-gap)) / 3)}}
@media (min-width:1180px){#google-reviews .card{flex-basis:calc((100% - 3*var(--grid-gap)) / 4)}}

/* =========================
   UTILITIES
   ========================= */
.clean{margin:0;padding-left:1.1em}
.clean li{break-inside:avoid}
.two-col{columns:2;column-gap:var(--grid-gap)}

@media (max-width:599px){
h1{font-size:clamp(1.95rem,1.7vw + 1.7rem,2.25rem)}
h2{font-size:clamp(1.85rem,1.4vw + 1.65rem,2.15rem)}
h3,h4,h5{font-size:clamp(1.5rem,.8vw + 1.35rem,1.65rem)}
.feature .grid,.cardspan .cards,.portfolio .cards,.featuresplit .grid,.duocard .grid{grid-template-columns:1fr}
.logosband .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.two-col{columns:1}
}