:root{
    --white:#ffffff;
    --ink-100:#eaebe9;
    --ink-300:#c7c9c8;
    --ink-500:#8a8c8a;
    --ink-700:#54565a;
    --ink-900:#1c1c1e;
    --green-100:#e3edcd;
    --green-500:#87ac49;
    --green-700:#3d5a1a;
    --blue-100:#d7eefb;
    --blue-500:#2aa7de;
    --blue-700:#0f6a99;

    --bg:var(--white);
    --bg-alt:var(--ink-100);
    --surface:var(--white);
    --ink:var(--ink-900);
    --body:var(--ink-700);
    --muted:var(--ink-500);
    --line:var(--ink-100);
    --border:var(--ink-300);
    --accent:var(--green-700);
    --accent-mark:var(--green-500);
    --accent-tint:var(--green-100);
    --info:var(--blue-700);
    --info-tint:var(--blue-100);
    --shadow:rgba(28,28,30,.06);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  }
  body{
    margin:0;
    background:var(--bg);
    color:var(--body);
    font-family:"Inter","Segoe UI",system-ui,sans-serif;
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:"Jost","Segoe UI",system-ui,sans-serif;
    font-weight:600;
    line-height:1.15;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }
  p{margin:0;}
  a{color:inherit;}
  img{display:block; max-width:100%;}
  .num{font-variant-numeric:tabular-nums;}
  .wrap{
    max-width:1120px;
    margin:0 auto;
    padding-inline:24px;
  }
  section{padding-block:84px;}
  @media (max-width:640px){
    section{padding-block:52px;}
  }
  .eyebrow{
    font-family:"Inter";
    font-weight:600;
    font-size:12.5px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--muted);
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  .tri-icon{height:11px; width:auto; flex-shrink:0;}

  /* ---------- NAV ---------- */
  header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  @supports not (backdrop-filter: blur(1px)){
    header.site{background:var(--white);}
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding-block:16px;
  }
  .logo{display:flex; align-items:center; text-decoration:none;}
  .logo-img{height:26px; width:auto;}
  nav.links{
    display:flex; align-items:center; gap:28px;
  }
  nav.links a{
    text-decoration:none;
    font-size:14.5px;
    font-weight:500;
    color:var(--body);
    transition:color .15s ease;
  }
  nav.links a:hover{color:var(--accent);}
  nav.links a[aria-current="page"]{color:var(--accent);}
  nav.links a.btn-primary,
  nav.links a.btn-primary:hover{color:var(--white);}
  .btn{
    font-family:"Inter";
    font-weight:600;
    font-size:14.5px;
    border-radius:8px;
    padding:11px 22px;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:9px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, background .15s ease, border-color .15s ease;
  }
  .btn-primary{
    background:var(--green-500);
    color:var(--white);
  }
  .btn-primary:hover{filter:brightness(1.15); transform:translateY(-1px);}
  .btn-ghost{
    background:transparent;
    border-color:var(--border);
    color:var(--ink);
  }
  .btn-ghost:hover{border-color:var(--accent); color:var(--accent);}
  .menu-toggle{
    display:none;
    background:none; border:1px solid var(--border); border-radius:8px;
    width:38px; height:38px;
    align-items:center; justify-content:center;
    color:var(--ink);
  }
  @media (max-width:820px){
    nav.links{
      position:absolute; top:100%; left:0; right:0;
      background:var(--white); border-bottom:1px solid var(--line);
      flex-direction:column; align-items:stretch;
      padding:18px 24px 26px;
      gap:6px;
      display:none;
      max-height:calc(100vh - 60px);
      overflow-y:auto;
    }
    nav.links.open{display:flex;}
    nav.links a{padding-block:11px; font-size:16px;}
    nav.links a.btn{
      justify-content:center;
      margin-top:8px;
      padding-block:13px;
    }
    .menu-toggle{display:inline-flex;}
    .nav .desktop-cta{display:none;}
  }

  /* ---------- HERO ---------- */
  .img-frame{
    border-radius:16px;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--bg-alt);
  }
  .img-frame img{width:100%; height:100%; object-fit:cover;}
  .founder-media{aspect-ratio:7/8; margin-bottom:16px;}
  .banner-media{aspect-ratio:1400/480; margin-bottom:40px;}
  .about-banner-media{aspect-ratio:2/1; margin-bottom:40px;}
  .about-banner-media.banner-sm{max-width:560px; margin-inline:auto; aspect-ratio:4/3;}
  .contact-media{aspect-ratio:3/2;}
  .placeholder-badge{
    position:absolute; top:12px; left:12px;
    background:rgba(28,28,30,.78); color:#fff;
    font-family:"Inter"; font-size:11px; font-weight:600; letter-spacing:.05em;
    text-transform:uppercase;
    padding:6px 12px; border-radius:999px;
  }

  .hero.hero-full{
    position:relative;
    display:flex;
    align-items:center;
    min-height:calc(100vh - 60px);
    min-height:calc(100svh - 60px);
    padding-block:64px 56px;
    overflow:hidden;
    color:#fff;
  }
  .hero-bg{position:absolute; inset:0; z-index:0;}
  .hero-bg video{width:100%; height:100%; object-fit:cover; display:block;}
  .hero-scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(18,22,16,.7) 0%, rgba(18,22,16,.5) 45%, rgba(18,22,16,.82) 100%);
  }
  .hero-content{position:relative; z-index:1; width:100%;}
  .hero-text{max-width:640px;}
  .hero.hero-full .eyebrow{color:rgba(255,255,255,.85);}
  .hero.hero-full h1{
    font-size:clamp(2.3rem, 5vw, 3.8rem);
    margin-top:16px;
    letter-spacing:-.01em;
    color:#fff;
  }
  .hero.hero-full h1 .hl{color:var(--green-100);}
  .hero.hero-full .lede{
    margin-top:20px;
    max-width:52ch;
    font-size:18px;
    color:rgba(255,255,255,.86);
  }
  .hero.hero-full .cta-row{
    display:flex; gap:14px; flex-wrap:wrap;
    margin-top:32px;
  }
  .hero.hero-full .btn-ghost{
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.5);
    color:#fff;
  }
  .hero.hero-full .btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,.18); color:#fff;}
  .hero.hero-full .hero-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    margin-top:56px;
    max-width:720px;
    border-top:1px solid rgba(255,255,255,.28);
    border-bottom:1px solid rgba(255,255,255,.28);
  }
  .hero.hero-full .hero-stats .stat{
    display:flex; flex-direction:column; gap:4px;
    padding:20px 24px;
    border-left:1px solid rgba(255,255,255,.28);
  }
  .hero.hero-full .hero-stats .stat:first-child{border-left:none;}
  .hero.hero-full .hero-stats .stat .n{
    font-family:"Jost"; font-size:26px; font-weight:600; color:#fff;
  }
  .hero.hero-full .hero-stats .stat .label{
    font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.72);
  }
  @media (max-width:640px){
    .hero.hero-full{padding-block:96px 44px;}
    .hero.hero-full .hero-stats{grid-template-columns:1fr;}
    .hero.hero-full .hero-stats .stat{border-left:none; border-top:1px solid rgba(255,255,255,.28); padding:16px 4px;}
    .hero.hero-full .hero-stats .stat:first-child{border-top:none;}
  }

  /* ---------- NOTICE ---------- */
  .notice{
    display:flex; align-items:center; gap:16px;
    background:var(--bg-alt);
    border-radius:14px;
    padding:18px 22px;
    margin-top:56px;
  }
  .notice .avatar-img{width:42px; height:42px; flex-shrink:0;}
  .notice .txt strong{display:block; color:var(--ink); font-size:14.5px;}
  .notice .txt span{display:block; color:var(--body); font-size:14.5px; margin-top:2px;}

  /* ---------- PAGE HEADER (subpages) ---------- */
  .page-head{padding-block:56px 8px;}
  .page-head h1{font-size:clamp(2rem, 4vw, 2.9rem);}
  .page-head p{margin-top:16px; max-width:56ch; color:var(--body); font-size:17px;}
  .page-head-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center;}
  @media (max-width:900px){ .page-head-grid{grid-template-columns:1fr; gap:28px;} .page-head-media{order:-1;} }
  .page-head-media{aspect-ratio:4/3;}
  @media (max-width:480px){ .page-head-media{aspect-ratio:3/2;} }

  /* ---------- LINK CARDS (home teaser grid) ---------- */
  .link-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  @media (max-width:900px){ .link-cards{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .link-cards{grid-template-columns:1fr;} }
  .link-card{
    display:block;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:24px 22px;
    text-decoration:none;
    transition:border-color .15s ease, transform .15s ease;
  }
  .link-card:hover{border-color:var(--accent); transform:translateY(-2px);}
  .link-card .num{font-size:12px; font-weight:600; letter-spacing:.06em; color:var(--muted); text-transform:uppercase;}
  .link-card h3{margin-top:12px; font-size:19px; font-weight:600;}
  .link-card p{margin-top:8px; color:var(--body); font-size:14.5px;}
  .link-card .go{margin-top:14px; font-size:13.5px; font-weight:600; color:var(--accent);}

  /* ---------- SECTION HEADS ---------- */
  .section-head{max-width:60ch; margin-bottom:44px;}
  .section-head h2{font-size:clamp(1.6rem, 3vw, 2.3rem); margin-top:10px;}
  .section-head p{margin-top:14px; color:var(--body); font-size:16.5px;}
  .bg-alt{background:var(--bg-alt);}

  /* ---------- PHILOSOPHY ---------- */
  .pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:760px){ .pillars{grid-template-columns:1fr;} }
  .pillar{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:30px 28px;
  }
  .pillar .mark{
    display:flex; align-items:center; gap:9px;
    font-size:12.5px; font-weight:600; letter-spacing:.08em;
    text-transform:uppercase; color:var(--accent);
    margin-bottom:16px;
  }
  .pillar h3{font-size:21px; font-weight:600;}
  .pillar p{margin-top:12px; color:var(--body); font-size:15.5px;}
  .pillar .icon{
    width:38px; height:38px; border-radius:10px;
    background:var(--accent-tint);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:16px;
  }
  .pillar .icon svg{width:20px; height:20px; stroke:var(--accent); fill:none;}

  .pull{
    margin-top:48px;
    border-left:3px solid var(--accent-mark);
    padding-left:22px;
    max-width:52ch;
  }
  .pull p{font-family:"Jost"; font-style:italic; font-size:19px; color:var(--ink); font-weight:500;}
  .pull cite{display:block; margin-top:10px; font-style:normal; font-size:13px; color:var(--muted);}

  /* ---------- ABOUT ---------- */
  .about-grid{display:grid; grid-template-columns:1.3fr .7fr; gap:56px; align-items:start;}
  @media (max-width:860px){ .about-grid{grid-template-columns:1fr;} }
  .about-grid .copy p{margin-top:16px; color:var(--body); font-size:16.5px;}
  .about-grid .copy p:first-child{margin-top:0;}
  .stat-tiles{display:flex; flex-direction:row; flex-wrap:wrap; gap:12px;}
  .stat-tiles .stat-tile{flex:1 1 140px;}
  .stat-tile{background:var(--accent-tint); border:1px solid transparent; border-radius:14px; padding:22px 24px;}
  .stat-tile .n{font-family:"Jost"; font-size:28px; font-weight:600; color:var(--ink);}
  .stat-tile .label{font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:4px;}

  /* ---------- SERVICES ---------- */
  .ledger{border-top:1px solid var(--line);}
  .ledger-row{
    display:grid;
    grid-template-columns:120px 1fr 1.6fr;
    gap:24px;
    align-items:start;
    padding-block:26px;
    border-bottom:1px solid var(--line);
  }
  @media (max-width:700px){ .ledger-row{grid-template-columns:1fr; gap:8px;} }
  .ledger-row .code{font-size:13px; font-weight:600; letter-spacing:.03em; color:var(--muted); padding-top:3px;}
  .ledger-row h3{font-size:19px; font-weight:600;}
  .ledger-row .desc{color:var(--body); font-size:15.5px;}
  .services-note{margin-top:32px; color:var(--body); font-size:15.5px; max-width:56ch;}

  /* ---------- TESTIMONIALS ---------- */
  .quote-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:900px){ .quote-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:600px){ .quote-grid{grid-template-columns:1fr;} }
  blockquote.card{
    margin:0;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:24px 22px;
    box-shadow:0 1px 2px var(--shadow);
  }
  blockquote.card p{font-size:16px; color:var(--ink);}
  blockquote.card p::before{content:"\201D  ";}
  blockquote.card cite{display:block; margin-top:16px; font-style:normal; font-size:12.5px; color:var(--muted);}

  .clients{margin-top:52px; padding-top:36px; border-top:1px solid var(--line);}
  .clients .cap{font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);}
  .chip-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;}
  .chip{
    background:var(--bg-alt);
    border-radius:999px;
    padding:8px 16px;
    font-size:14px;
    color:var(--body);
  }

  /* ---------- CONTACT ---------- */
  .contact-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start;}
  @media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
  .contact-copy p{color:var(--body); font-size:16.5px; max-width:48ch;}
  .contact-links{margin-top:28px; display:flex; flex-direction:column; gap:16px;}
  .contact-links a{display:flex; align-items:baseline; gap:12px; text-decoration:none; font-size:17px;}
  .contact-links .k{
    font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
    width:64px; flex-shrink:0;
  }
  .contact-links .v{font-weight:600; color:var(--ink);}
  .contact-links a:hover .v{color:var(--accent);}

  .info-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:28px 26px;
  }
  .info-card .rt-title{
    font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
    border-bottom:1px solid var(--line);
    padding-bottom:14px;
    margin-bottom:14px;
  }
  .info-card dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:9px 16px; font-size:14.5px;}
  .info-card dt{color:var(--muted);}
  .info-card dd{margin:0; text-align:right; color:var(--ink); font-weight:500;}
  .info-card.compact{padding:22px 24px; margin-top:24px;}

  /* ---------- CONTACT FORM ---------- */
  .form-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:30px 28px;
  }
  .form-card h2{font-size:clamp(1.4rem, 2.4vw, 1.7rem);}
  .form-card > p{margin-top:8px; color:var(--body); font-size:14.5px;}
  .form-card form{margin-top:22px; display:flex; flex-direction:column; gap:18px;}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media (max-width:520px){ .form-row{grid-template-columns:1fr;} }
  .field{display:flex; flex-direction:column; gap:6px;}
  .field label{
    font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--muted);
  }
  .field input, .field textarea{
    font-family:"Inter", sans-serif;
    font-size:15px;
    padding:11px 14px;
    border:1px solid var(--border);
    border-radius:8px;
    background:var(--white);
    color:var(--ink);
  }
  .field input:focus, .field textarea:focus{
    outline:none; border-color:var(--accent);
  }
  .field textarea{resize:vertical; min-height:120px; font-family:inherit;}
  .form-note{font-size:12.5px; color:var(--muted); margin-top:2px;}
  .calc-card{width:100%;}
  .calc-result{display:flex; gap:32px; margin-top:8px; flex-wrap:wrap;}
  .calc-figure{display:flex; flex-direction:column; gap:4px;}
  .calc-figure .n{font-family:"Jost"; font-size:32px; font-weight:600; color:var(--ink);}
  .calc-figure .label{font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}

  /* ---------- HOME EXTRAS ---------- */
  .feature-row{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:8px;}
  @media (max-width:760px){ .feature-row{grid-template-columns:1fr; gap:24px;} }
  .feature .mark{font-family:"Jost"; font-size:14px; font-weight:600; color:var(--accent); letter-spacing:.04em;}
  .feature h3{margin-top:10px; font-size:19px; font-weight:600;}
  .feature p{margin-top:8px; color:var(--body); font-size:15px;}
  .link-more{
    display:inline-block; margin-top:32px;
    font-size:14.5px; font-weight:600; color:var(--accent); text-decoration:none;
  }
  .link-more:hover{text-decoration:underline;}
  .pull-lg{border-left:3px solid var(--accent-mark); padding-left:26px; max-width:64ch;}
  .pull-lg p{font-family:"Jost"; font-style:italic; font-size:24px; color:var(--ink); font-weight:500; line-height:1.35;}
  .pull-lg cite{display:block; margin-top:14px; font-style:normal; font-size:13.5px; color:var(--muted);}
  .cta-banda{background:var(--accent); color:#fff;}
  .cta-banda-inner{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;}
  .cta-banda h2{color:#fff; font-size:clamp(1.6rem, 3vw, 2.2rem);}
  .cta-banda p{margin-top:10px; color:rgba(255,255,255,.85); max-width:48ch;}
  .cta-banda .btn-primary{background:#fff; color:var(--accent);}
  .cta-banda .btn-primary:hover{filter:none; background:var(--green-100);}
  @media (max-width:600px){
    .cta-banda-inner{flex-direction:column; align-items:stretch; text-align:center;}
    .cta-banda .btn-primary{justify-content:center;}
  }

  /* ---------- FOOTER ---------- */
  footer{border-top:1px solid var(--line); padding-block:32px;}
  footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
  footer p{font-size:13px; color:var(--muted);}
