:root{
    --navy:#0E3A52;
    --navy-deep:#0A2C40;
    --coral:#F0604D;
    --yellow:#F6BA3E;
    --teal:#16988C;
    --maroon:#A31F2C;
    --cream:#FFFCF6;
    --ink:#234156;
    --ink-soft:#4E6577;
    --line:#E7E1D6;
    --radius-lg:28px;
    --radius-md:18px;
    --shadow:0 18px 40px -20px rgba(14,58,82,0.35);
    --maxw:1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Nunito', sans-serif;
    color:var(--ink);
    background:var(--cream);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,.font-display{
    font-family:'Fredoka', 'Nunito', sans-serif;
    color:var(--navy);
    margin:0;
    line-height:1.12;
    font-weight:600;
  }
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
  section{position:relative;}
  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-family:'Nunito',sans-serif;font-weight:800;
    font-size:0.78rem;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--coral);
    margin-bottom:14px;
  }
  .eyebrow::before{
    content:"";width:8px;height:8px;border-radius:50%;background:var(--coral);flex:none;
  }
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;
    padding:15px 30px;border-radius:999px;
    border:2px solid transparent;
    cursor:pointer;transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
    white-space:nowrap;
  }
  .btn-primary{background:var(--navy);color:#fff;box-shadow:0 14px 28px -12px rgba(14,58,82,0.55);}
  .btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 34px -12px rgba(14,58,82,0.6);}
  .btn-ghost{background:transparent;color:var(--navy);border-color:var(--navy);}
  .btn-ghost:hover{background:var(--navy);color:#fff;transform:translateY(-3px);}
  .btn-light{background:#fff;color:var(--navy);}
  .btn-light:hover{transform:translateY(-3px);box-shadow:0 18px 30px -14px rgba(0,0,0,0.35);}
  .btn svg{width:19px;height:19px;flex:none;}

  /* ---------- shapes ---------- */
  .shape{position:absolute;pointer-events:none;z-index:0;}
  .shape-circle{border-radius:50%;}
  .shape-dome{border-radius:50% 50% 0 0;}
  .shape-dome-r{border-radius:0 50% 0 0;}
  .shape-dome-l{border-radius:50% 0 0 0;}
  .shape-pill{border-radius:999px;}
  @keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
  .float{animation:floaty 7s ease-in-out infinite;}

  .motif{width:120px;height:20px;opacity:.9;display:inline-block;flex:none;}

  /* ---------- reveal ---------- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}
  .reveal-stagger > *{transition-delay:calc(var(--i,0) * 90ms);}

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;}
    .reveal{opacity:1;transform:none;}
  }

  /* ---------- nav ---------- */
  header.nav{
    position:sticky;top:0;z-index:50;
    background:rgba(255,252,246,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid transparent;
    transition:border-color .3s ease, box-shadow .3s ease;
  }
  header.nav.scrolled{border-color:var(--line);box-shadow:0 6px 24px -18px rgba(14,58,82,0.4);}
  .nav-inner{
    max-width:var(--maxw);margin:0 auto;padding:14px 24px;
    display:flex;align-items:center;justify-content:space-between;gap:18px;
  }
  .nav-logo img{height:44px;width:auto;}
  .nav-links{display:flex;align-items:center;gap:30px;}
  .nav-links a{font-weight:700;font-size:0.95rem;color:var(--ink);transition:color .2s ease;}
  .nav-links a:hover{color:var(--coral);}
  .nav-cta{display:flex;}
  .nav-cta .btn{padding:11px 22px;font-size:0.9rem;}
  @media (max-width:820px){
    .nav-links{display:none;}
  }

  /* ---------- hero ---------- */
  .hero{padding:76px 0 0;overflow:hidden;}
  .hero .wrap{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;position:relative;z-index:1;}
  .hero h1{font-size:clamp(2.3rem,4.1vw,3.5rem);margin-bottom:22px;}
  .hero h1 em{font-style:normal;color:var(--coral);}
  .hero p.lead{font-size:1.15rem;color:var(--ink-soft);max-width:520px;margin-bottom:34px;line-height:1.65;}
  .hero-ctas{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:30px;}
  .hero-trust{display:flex;align-items:center;gap:14px;font-size:0.92rem;color:var(--ink-soft);font-weight:700;margin-bottom:60px;}
  .hero-trust .motif{width:96px;height:16px;}

  .hero-photo-wrap{position:relative;display:flex;justify-content:center;align-items:flex-end;align-self:end;}
  .hero-photo-backdrop{
    position:absolute;z-index:0;
    width:360px;height:360px;border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #EEF6F4 0%, #F7F0E3 70%);
    bottom:26px;
  }
  .hero-photo-cutout{
    position:relative;z-index:2;
    width:min(100%,430px);height:auto;display:block;
    filter:drop-shadow(0 20px 26px rgba(14,58,82,0.14));
  }
  .photo-stage{position:relative;display:inline-block;line-height:0;z-index:2;}

  /* ---------- manifesto ---------- */
  .manifesto{background:var(--navy);color:#fff;padding:86px 0;text-align:center;overflow:hidden;}
  .manifesto h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.6rem);max-width:780px;margin:0 auto 22px;}
  .manifesto p{color:#CBE0E8;font-size:1.15rem;max-width:560px;margin:0 auto;line-height:1.6;}
  .manifesto p strong{color:#fff;}
  .manifesto .motif{margin:30px auto 0;display:block;}

  /* ---------- services ---------- */
  .services{padding:100px 0;}
  .section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
  .section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);}
  .cards{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
  .card{
    background:#fff;border-radius:var(--radius-lg);
    padding:38px 34px;border:1px solid var(--line);
    position:relative;overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
  .card-icon{
    width:58px;height:58px;border-radius:16px;
    display:flex;align-items:center;justify-content:center;margin-bottom:22px;
  }
  .card-icon svg{width:28px;height:28px;}
  .card h3{font-size:1.35rem;margin-bottom:12px;}
  .card p.desc{color:var(--ink-soft);line-height:1.6;margin-bottom:20px;}
  .card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
  .card li{display:flex;gap:10px;align-items:flex-start;font-weight:700;font-size:0.95rem;color:var(--navy);}
  .card li svg{width:16px;height:16px;flex:none;margin-top:4px;}

  /* ---------- checklist ---------- */
  .checklist{padding:100px 0;background:#F0F8F6;overflow:hidden;}
  .checklist-inner{display:grid;grid-template-columns:0.95fr 1.05fr;gap:56px;align-items:start;position:relative;z-index:1;}
  .checklist h2{font-size:clamp(1.9rem,3.2vw,2.5rem);margin-bottom:18px;}
  .checklist > .wrap > p.lead{color:var(--ink-soft);font-size:1.05rem;max-width:460px;margin-bottom:0;line-height:1.6;}
  .check-items{display:flex;flex-direction:column;gap:4px;}
  .check-item{
    display:flex;align-items:center;gap:18px;
    padding:18px 6px;border-bottom:1px solid #DCEAE7;
  }
  .check-item:last-child{border-bottom:none;}
  .dot{width:20px;height:20px;border-radius:50%;flex:none;}
  .check-item p{font-weight:700;color:var(--navy);font-size:1.05rem;}
  .checklist-cta{margin-top:30px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
  .checklist-cta p{font-weight:800;color:var(--navy);}

  /* ---------- quote band ---------- */
  .quote-band{padding:90px 0;background:#FDEDE9;text-align:center;overflow:hidden;}
  .quote-mark{font-family:'Fredoka',sans-serif;font-size:5.5rem;color:var(--coral);line-height:1;opacity:.55;margin-bottom:-10px;}
  .quote-band h2{font-size:clamp(1.7rem,3.4vw,2.5rem);max-width:980px;margin:0 auto 14px;}
  .quote-band p{font-size:1.15rem;color:var(--ink-soft);font-weight:700;}

  /* ---------- about ---------- */
  .about{padding:100px 0 0;overflow:hidden;}
  .about-inner{display:grid;grid-template-columns:0.8fr 1.2fr;gap:64px;align-items:center;position:relative;z-index:1;}
  .about-photo{position:relative;display:flex;justify-content:center;align-self:end;}
  .about-photo-backdrop{
    position:absolute;z-index:0;
    width:300px;height:300px;border-radius:50%;
    background:#F0F8F6;
    bottom:22px;
  }
  .about-photo-cutout{
    position:relative;z-index:2;
    width:min(100%,360px);height:auto;display:block;
    filter:drop-shadow(0 16px 20px rgba(14,58,82,0.11));
  }
  .about h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:4px;}
  .about .role{color:var(--coral);font-weight:800;font-size:1.05rem;margin-bottom:22px;display:block;}
  .about p.bio{color:var(--ink-soft);font-size:1.08rem;line-height:1.7;margin-bottom:26px;max-width:560px;}
  .chips{display:grid;grid-template-columns:1fr 1fr;justify-items:center;align-items:center;gap:14px 16px;max-width:440px;margin:28px auto 0;}
  .chip{
    padding:9px 18px;border-radius:999px;background:#F0F0EA;
    font-weight:800;font-size:0.86rem;color:var(--navy);
    border:1px solid var(--line);white-space:nowrap;
  }

  /* ---------- final cta ---------- */
  .final-cta{background:var(--navy);color:#fff;padding:100px 0;text-align:center;overflow:hidden;}
  .final-cta h2{color:#fff;font-size:clamp(2rem,3.8vw,2.9rem);max-width:700px;margin:0 auto 16px;}
  .final-cta p.lead{color:#CBE0E8;font-size:1.15rem;max-width:520px;margin:0 auto 38px;line-height:1.6;}
  .final-ctas{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}

  /* ---------- footer ---------- */
  .stripe{height:6px;display:flex;}
  .stripe span{flex:1;}
  footer{padding:52px 0 34px;background:var(--cream);}
  .footer-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
  .footer-inner img{height:36px;width:auto;}
  .footer-social{display:flex;gap:14px;}
  .footer-social a{
    width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;transition:all .2s ease;
  }
  .footer-social a:hover{background:var(--navy);border-color:var(--navy);}
  .footer-social a:hover svg{stroke:#fff;fill:#fff;}
  .footer-social svg{width:18px;height:18px;}
  .footer-bottom{
    margin-top:30px;padding-top:24px;border-top:1px solid var(--line);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
    font-size:0.85rem;color:var(--ink-soft);
  }

  /* ---------- responsive ---------- */
  @media (max-width:960px){
    .hero .wrap{grid-template-columns:1fr;gap:44px;text-align:center;}
    .hero p.lead{margin-left:auto;margin-right:auto;}
    .hero-ctas{justify-content:center;}
    .hero-trust{justify-content:center;}
    .cards{grid-template-columns:1fr;}
    .checklist-inner{grid-template-columns:1fr;gap:40px;}
    .checklist > .wrap > p.lead{margin-left:auto;margin-right:auto;text-align:center;}
    .checklist h2{text-align:center;}
    .about-inner{grid-template-columns:1fr;gap:40px;text-align:center;}
    .about-copy{order:-1;}
    .about p.bio{margin-left:auto;margin-right:auto;}
    .about-photo-cutout{max-width:300px;}
  }
  @media (max-width:600px){
    .wrap{padding:0 20px;}
    .hero{padding:52px 0 0;}
    .services,.checklist{padding:70px 0;}
    .about{padding:70px 0 0;}
    .manifesto,.final-cta{padding:64px 0;}
    .quote-band{padding:64px 0;}
    .footer-inner{justify-content:center;text-align:center;}
    .footer-bottom{justify-content:center;text-align:center;}
  }
