:root{
  --accent: oklch(0.36 0.095 258);
  --accent-strong: oklch(0.24 0.085 258);
  --bg: oklch(0.98 0.006 250);
  --bg-alt: oklch(0.962 0.007 250);
  --surface: oklch(0.99 0.004 250);
  --border: oklch(0.9 0.008 250);
  --ink: oklch(0.17 0.014 250);
  --ink-2: oklch(0.32 0.012 250);
  --ink-3: oklch(0.45 0.012 250);
  --ink-4: oklch(0.55 0.012 250);
  --dark: oklch(0.16 0.014 250);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:'Public Sans',system-ui,-apple-system,sans-serif;background:var(--bg);color:oklch(0.19 0.012 250);}
h1,h2,h3{font-family:'Bricolage Grotesque',system-ui,sans-serif;margin:0;}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-strong);}
img,svg{max-width:100%;}
.wrap{max-width:1216px;margin:0 auto;padding-left:24px;padding-right:24px;}
.btn{display:inline-flex;align-items:center;justify-content:center;font-size:15.5px;font-weight:700;padding:14px 26px;border-radius:10px;transition:transform .15s ease, box-shadow .15s ease;gap:9px;}
.btn-primary{background:var(--accent);color:oklch(0.99 0.005 250);}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px oklch(0.36 0.095 258/30%);color:oklch(0.99 0.005 250);}
.btn-ghost{border:1px solid oklch(0.85 0.008 250);color:var(--ink);}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:oklch(0.36 0.095 258/10%);padding:7px 14px;border-radius:999px;}
.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}

.topbar{background:var(--dark);color:oklch(0.85 0.01 250);font-size:13.5px;}
.topbar .wrap{max-width:1440px;display:flex;justify-content:space-between;align-items:center;padding-top:9px;padding-bottom:9px;flex-wrap:wrap;gap:8px;}
.topbar span{display:inline-flex;align-items:center;gap:7px;margin-right:22px;}
.topbar a{color:oklch(0.85 0.01 250);}
.topbar a:hover{color:#fff;}

nav.mainnav{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20;max-width:1440px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:10px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:21px;letter-spacing:-.01em;color:var(--ink);}
.brand small{display:block;font-family:'Public Sans',sans-serif;font-weight:600;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);}
.nav-links{display:flex;gap:30px;font-size:14.5px;font-weight:500;color:var(--ink-2);}
.nav-links a{position:relative;transition:color .15s ease;}
.nav-links a.active{color:var(--accent);font-weight:700;}
.nav-actions{display:flex;align-items:center;gap:20px;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--ink);}
.nav-toggle svg{display:block;}
nav.mainnav{transition:box-shadow .2s ease, padding .2s ease;}
nav.mainnav.scrolled{box-shadow:0 4px 20px oklch(0.2 0.02 250/9%);padding-top:12px;padding-bottom:12px;}

section{padding:84px 0;}
.page-hero{padding:56px 0 8px;}
.page-hero .section-head{margin-bottom:0;}
.hero{padding:76px 0 68px;background:linear-gradient(180deg, oklch(0.96 0.01 250) 0%, var(--bg) 65%);}
.hero-grid{display:flex;align-items:center;gap:52px;}
.hero-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:26px;margin-bottom:16px;}
.fine{font-size:13.5px;color:var(--ink-4);}

.hero-slides{transition:opacity .25s ease;}
.hero-slides.fading{opacity:0;}
.hero-slide{display:none;}
.hero-slide.active{display:block;}
.hero-slide h1{font-size:clamp(30px,4vw,50px);line-height:1.1;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin-bottom:20px;}
.hero-slide p{font-size:17px;line-height:1.65;color:var(--ink-3);max-width:480px;margin-bottom:0;}
.hero-dots{display:flex;gap:8px;margin-top:24px;}
.hero-dot{width:8px;height:8px;border-radius:50%;border:none;background:oklch(0.85 0.008 250);cursor:pointer;padding:0;transition:background .2s ease, width .2s ease;}
.hero-dot.active{background:var(--accent);width:22px;border-radius:4px;}
@media (prefers-reduced-motion: reduce){ .hero-slides{transition:none;} }

.blueprint{border-radius:16px;background:var(--dark);border:1px solid oklch(0.28 0.02 250);overflow:hidden;flex:1;min-width:280px;position:relative;padding:34px;
  background-image:
    linear-gradient(oklch(1 0 0/6%) 1px, transparent 1px),
    linear-gradient(90deg, oklch(1 0 0/6%) 1px, transparent 1px);
  background-size: 28px 28px;
}
.blueprint::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 15%, oklch(0.36 0.095 258/35%), transparent 55%);}
.bp-inner{position:relative;display:flex;flex-direction:column;gap:18px;}
.bp-tag{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:oklch(0.75 0.13 250);}
.bp-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:20px;color:#fff;}
.bp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.bp-card{border:1px solid oklch(1 0 0/14%);border-radius:10px;padding:14px;background:oklch(1 0 0/4%);}
.bp-card .n{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;color:#fff;}
.bp-card .l{font-size:11.5px;color:oklch(0.7 0.01 250);margin-top:4px;}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in-view{opacity:1;transform:translateY(0);}
.grid3 .card:nth-child(1),.bp-grid .bp-card:nth-child(1){transition-delay:0ms;}
.grid3 .card:nth-child(2),.bp-grid .bp-card:nth-child(2){transition-delay:80ms;}
.grid3 .card:nth-child(3),.bp-grid .bp-card:nth-child(3){transition-delay:160ms;}
.svc-grid .svc-card:nth-child(1){transition-delay:0ms;} .svc-grid .svc-card:nth-child(2){transition-delay:40ms;}
.svc-grid .svc-card:nth-child(3){transition-delay:80ms;} .svc-grid .svc-card:nth-child(4){transition-delay:120ms;}
.svc-grid .svc-card:nth-child(5){transition-delay:160ms;} .svc-grid .svc-card:nth-child(6){transition-delay:200ms;}
.svc-grid .svc-card:nth-child(n+7){transition-delay:200ms;}
.team-grid .team-card:nth-child(1){transition-delay:0ms;} .team-grid .team-card:nth-child(2){transition-delay:60ms;}
.team-grid .team-card:nth-child(3){transition-delay:120ms;} .team-grid .team-card:nth-child(4){transition-delay:180ms;}
.testimonial-grid .t-card:nth-child(1){transition-delay:0ms;} .testimonial-grid .t-card:nth-child(2){transition-delay:80ms;}
.testimonial-grid .t-card:nth-child(3){transition-delay:160ms;} .testimonial-grid .t-card:nth-child(4){transition-delay:240ms;}
.client-grid .client-card:nth-child(1){transition-delay:0ms;} .client-grid .client-card:nth-child(2){transition-delay:60ms;}
.client-grid .client-card:nth-child(3){transition-delay:120ms;} .client-grid .client-card:nth-child(4){transition-delay:180ms;}
.client-grid .client-card:nth-child(5){transition-delay:240ms;}
.stat-row .stat:nth-child(1){transition-delay:0ms;} .stat-row .stat:nth-child(2){transition-delay:80ms;} .stat-row .stat:nth-child(3){transition-delay:160ms;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}

.card,.svc-card,.team-card,.t-card,.stat,.bp-card{transition:transform .2s ease, box-shadow .2s ease;}
.card:hover,.svc-card:hover,.team-card:hover,.stat:hover{transform:translateY(-3px);box-shadow:0 14px 28px oklch(0.2 0.02 250/8%);}

.to-top{position:fixed;right:20px;bottom:20px;width:44px;height:44px;border-radius:50%;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;box-shadow:0 8px 20px oklch(0.2 0.02 250/25%);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .25s ease, transform .25s ease, background .15s ease;z-index:30;}
.to-top.show{opacity:1;pointer-events:auto;transform:translateY(0);}
.to-top:hover{background:var(--accent);}

.form-success{display:none;text-align:center;padding:52px 20px;border-radius:16px;background:var(--surface);border:1px solid var(--border);}
.form-success.show{display:block;}
.form-success .check{width:52px;height:52px;border-radius:50%;background:oklch(0.6 0.15 145/15%);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.form-success h3{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.form-success p{font-size:14.5px;color:var(--ink-3);margin:0;}
.quote-form.sending{opacity:.6;pointer-events:none;}

.section-head{text-align:center;max-width:680px;margin:0 auto 52px;}
.section-head .eyebrow{margin-bottom:16px;}
.section-head h2{font-size:clamp(25px,3vw,34px);font-weight:700;letter-spacing:-.015em;color:var(--ink);margin-bottom:14px;}
.section-head p{font-size:16px;line-height:1.65;color:var(--ink-3);}

.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
.card{border-radius:16px;background:var(--surface);border:1px solid var(--border);padding:28px;}
.icon-box{width:42px;height:42px;border-radius:11px;background:oklch(0.36 0.095 258/12%);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.card h3{font-size:17.5px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.card p{font-size:14.5px;line-height:1.6;color:var(--ink-3);margin:0;}
.card .learn-more{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;margin-top:14px;}

.svc-group{margin-bottom:36px;}
.svc-group:last-child{margin-bottom:0;}
.svc-group-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.svc-card{display:flex;gap:14px;align-items:flex-start;border-radius:14px;background:var(--surface);border:1px solid var(--border);padding:22px;}
.svc-icon{width:38px;height:38px;flex-shrink:0;border-radius:10px;background:oklch(0.36 0.095 258/12%);display:flex;align-items:center;justify-content:center;}
.svc-card h4{font-size:14.5px;font-weight:700;color:var(--ink);margin:0 0 4px;line-height:1.35;}
.svc-card p{font-size:13px;color:var(--ink-4);margin:0;line-height:1.5;}

.about{background:var(--bg-alt);}
.about-grid{display:flex;gap:48px;align-items:flex-start;}
.about p{font-size:15.5px;line-height:1.75;color:var(--ink-3);margin:0 0 16px;}
.stat-row{display:flex;flex-direction:column;gap:22px;flex:0 0 260px;}
.stat{border-radius:14px;background:var(--surface);border:1px solid var(--border);padding:20px 22px;}
.stat .n{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:30px;color:var(--ink);}
.stat .l{font-size:13px;color:var(--ink-4);margin-top:2px;}

.team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.team-card{border-radius:14px;overflow:hidden;background:var(--surface);border:1px solid var(--border);text-align:center;}
.team-photo{height:150px;background:linear-gradient(135deg, oklch(0.9 0.02 250), oklch(0.96 0.01 250));display:flex;align-items:center;justify-content:center;}
.team-photo svg{width:52px;height:52px;color:oklch(0.6 0.03 250);}
.team-card .info{padding:16px;}
.team-card h5{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 3px;}
.team-card .role{font-size:12.5px;color:var(--ink-4);border:1px dashed oklch(0.6 0.13 40/45%);display:inline-block;padding:2px 8px;border-radius:999px;}

.client-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;}
.client-card{border-radius:16px;background:var(--surface);border:1px solid var(--border);padding:26px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;}
.client-mark{width:56px;height:56px;border-radius:14px;background:oklch(0.36 0.095 258/10%);color:var(--accent-strong);display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:15px;letter-spacing:.01em;}
.client-logo{height:56px;width:auto;max-width:100%;object-fit:contain;display:block;}
.client-name{font-size:13.5px;font-weight:600;color:var(--ink-2);line-height:1.35;}

.testimonial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.t-card{border-radius:16px;background:var(--surface);border:1px solid var(--border);padding:26px;}
.t-quote{font-size:15px;line-height:1.65;color:var(--ink-2);margin:0 0 16px;}
.t-name{font-size:14.5px;font-weight:700;color:var(--ink);}
.t-role{font-size:13px;color:var(--ink-4);}
.t-card.placeholder{border-style:dashed;}
.t-tag{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:oklch(0.6 0.13 40);margin-bottom:10px;display:inline-block;}

.cta-banner{margin:0 24px;border-radius:24px;background:var(--dark);padding:56px 44px;display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;overflow:hidden;flex-wrap:wrap;}
.cta-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,oklch(0.36 0.095 258/35%),transparent 55%);}
.cta-banner h2{position:relative;font-size:clamp(22px,3vw,30px);font-weight:700;letter-spacing:-.015em;color:oklch(0.98 0.006 250);margin-bottom:10px;max-width:520px;}
.cta-banner p{position:relative;font-size:15px;line-height:1.6;color:oklch(0.75 0.012 250);margin:0;}
.cta-actions{position:relative;display:flex;gap:12px;flex-wrap:wrap;}

footer{padding:52px 0 36px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;padding-bottom:40px;border-bottom:1px solid var(--border);}
.foot-col h5{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin:0 0 6px;}
.foot-col a,.foot-col div{display:block;font-size:14px;color:var(--ink-4);margin-bottom:10px;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:22px;font-size:13px;color:var(--ink-4);flex-wrap:wrap;gap:10px;}

.quote-form-section{padding:88px 0 96px;}
.quote-form{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:18px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-field{display:flex;flex-direction:column;gap:6px;}
.form-field label{font-size:13.5px;font-weight:600;color:var(--ink-2);}
.form-field input,.form-field select,.form-field textarea{font-family:inherit;font-size:15px;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--ink);outline:none;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);}
.form-field textarea{resize:vertical;min-height:110px;font-family:inherit;}
.form-hidden{position:absolute;left:-9999px;top:-9999px;}
.form-note{font-size:13px;color:var(--ink-4);}

@media (max-width:560px){
  .brand small{display:none;}
  .topbar .wrap{flex-direction:column;align-items:flex-start;gap:2px;}
  .client-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:900px){
  .hero-grid{flex-direction:column;}
  nav.mainnav{position:relative;flex-wrap:wrap;}
  .nav-toggle{display:inline-flex;}
  .nav-links{display:none;width:100%;order:3;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);padding:6px 24px 12px;box-shadow:0 14px 26px oklch(0.2 0.02 250/10%);}
  .nav-links.open{display:flex;}
  .nav-links a{padding:13px 0;border-bottom:1px solid var(--border);}
  .nav-links a:last-child{border-bottom:none;}
  .grid3,.svc-grid,.testimonial-grid{grid-template-columns:1fr;}
  .client-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .form-row{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:1fr 1fr;}
  .about-grid{flex-direction:column;}
  .stat-row{flex-direction:row;flex-wrap:wrap;flex:auto;width:100%;}
  .stat{flex:1;min-width:140px;}
  .foot-grid{grid-template-columns:1fr;}
  section{padding:56px 0;}
  .cta-banner{flex-direction:column;align-items:flex-start;padding:36px 26px;}
  .bp-grid{grid-template-columns:1fr 1fr;}
}
