:root{
    --ink:#20302c;
    --ink-soft:#4c5c56;
    --paper:#f2efe6;
    --paper-raised:#fbfaf5;
    --forest:#1f3b38;
    --forest-deep:#152826;
    --gold:#b0803a;
    --gold-deep:#8a6329;
    --sage:#8fa898;
    --line:#d9d4c5;
    --radius:14px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Public Sans', sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Newsreader', serif;
    font-weight:500;
    color:var(--forest-deep);
    letter-spacing:-0.01em;
  }
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--gold-deep);
    font-weight:500;
  }

  header{padding:26px 0; border-bottom:1px solid var(--line);}
  header .wrap{display:flex; align-items:center; justify-content:space-between; position:relative;}
  .logo{font-family:'Newsreader', serif; font-size:21px; font-weight:600; color:var(--forest-deep);}
  .logo span{color:var(--gold-deep);}
  nav ul{list-style:none; display:flex; gap:36px; font-size:14.5px; font-weight:500;}

  .nav-toggle{
    display:none; width:38px; height:38px; border:1px solid var(--line); border-radius:8px;
    background:var(--paper-raised); align-items:center; justify-content:center; cursor:pointer;
  }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:""; display:block; width:18px; height:2px; background:var(--forest-deep);
    position:relative; transition:transform .15s ease, opacity .15s ease;
  }
  .nav-toggle span::before{position:absolute; top:-6px;}
  .nav-toggle span::after{position:absolute; top:6px;}
  header.nav-open .nav-toggle span{background:transparent;}
  header.nav-open .nav-toggle span::before{transform:translateY(6px) rotate(45deg);}
  header.nav-open .nav-toggle span::after{transform:translateY(-6px) rotate(-45deg);}
  .btn{
    display:inline-block; padding:11px 22px; border-radius:8px;
    font-size:14.5px; font-weight:600; white-space:nowrap;
  }
  .btn-primary{background:var(--forest); color:#f4f1e7;}
  .btn-primary:hover{background:var(--forest-deep);}
  .btn-ghost{border:1px solid var(--ink); color:var(--ink);}

  .hero{padding:88px 0 64px;}
  .hero .wrap{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
  .hero h1{font-size:44px; line-height:1.12; margin:18px 0 22px;}
  .hero p.lede{font-size:18px; color:var(--ink-soft); max-width:46ch; margin-bottom:32px;}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px;}
  .hero-note{font-size:13.5px; color:var(--ink-soft); display:flex; flex-wrap:wrap; gap:10px 22px;}

  .path-card{
    background:var(--paper-raised); border:1px solid var(--line);
    border-radius:var(--radius); padding:30px 28px;
  }
  .path-card .eyebrow{margin-bottom:6px;}
  .path-card h3{font-size:19px; margin-bottom:18px;}

  .trustbar{background:var(--forest-deep); padding:22px 0;}
  .trustbar .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px;}
  .trustbar .stat{color:#e9e4d3; text-align:left;}
  .trustbar .stat b{font-family:'Newsreader', serif; font-size:24px; font-weight:500; display:block; color:#f4f1e7;}
  .trustbar .stat span{font-size:12.5px; color:#b7c2be;}

  section{padding:78px 0;}
  .section-head{max-width:640px; margin-bottom:44px;}
  .section-head h2{font-size:32px; margin-top:10px;}
  .section-head p{color:var(--ink-soft); font-size:16px; margin-top:12px;}

  .path-row{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; position:relative; margin-top:36px;}
  .path-row::before{
    content:""; position:absolute; top:19px; left:8%; right:8%; height:1px;
    background:repeating-linear-gradient(90deg, var(--gold) 0 8px, transparent 8px 15px);
  }
  .path-step{flex:1; text-align:center; position:relative;}
  .path-dot{
    width:38px; height:38px; border-radius:50%; background:var(--forest); color:#f4f1e7;
    display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
    font-family:'Newsreader', serif; font-size:16px; position:relative; z-index:1;
  }
  .path-step h3{font-size:18px; margin-bottom:8px;}
  .path-step p{font-size:14.5px; color:var(--ink-soft); max-width:26ch; margin:0 auto;}

  .services-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
  .service-card{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius);
    padding:28px; transition:border-color .15s ease;
  }
  .service-card:hover{border-color:var(--gold);}
  .service-icon{
    width:40px; height:40px; border-radius:9px; background:#e7e0cc;
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  }
  .service-card h3{font-size:18.5px; margin-bottom:8px;}
  .service-card p{font-size:14.5px; color:var(--ink-soft);}

  .proof{background:var(--forest); color:#f4f1e7;}
  .proof .section-head h2, .proof .section-head p{color:#f4f1e7;}
  .proof .section-head p{color:#c6cfc9;}
  .testimonials{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
  .quote{
    background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.14);
    border-radius:var(--radius); padding:26px;
  }
  .quote p.text{font-family:'Newsreader', serif; font-style:italic; font-size:17px; line-height:1.55; color:#f4f1e7; margin-bottom:16px;}
  .quote .who{font-size:13.5px; color:#b7c2be;}
  .quote .who b{color:#e9e4d3; font-weight:600;}
  .sample-tag{font-size:11px; color:#96a49e; margin-top:14px; font-family:'IBM Plex Mono', monospace;}

  .about .wrap{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;}
  .avatar{
    aspect-ratio:4/5; background:var(--sage); border-radius:var(--radius);
    display:flex; align-items:center; justify-content:center;
    font-family:'Newsreader', serif; color:#213028; font-size:15px; text-align:center; padding:20px;
  }
  .aboutbox1{
    width:100%; height:auto; max-width:100%; object-fit:contain;
    display:block;
  }
  .about h2{font-size:28px; margin-bottom:16px;}
  .about p{color:var(--ink-soft); margin-bottom:14px; font-size:15.5px;}

  .cta-band{background:var(--gold); text-align:center;}
  .cta-band h2{font-size:30px; color:var(--forest-deep); margin-bottom:14px;}
  .cta-band p{color:#5a4321; margin-bottom:28px; font-size:16px;}
  .cta-band .btn-primary{background:var(--forest-deep);}

  footer{padding:52px 0 36px; border-top:1px solid var(--line);}
  .footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.3fr; gap:32px; margin-bottom:40px;}
  footer h4{font-size:13px; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); margin-bottom:14px; font-family:'IBM Plex Mono', monospace; font-weight:500;}
  footer ul{list-style:none; font-size:14.5px;}
  footer li{margin-bottom:9px;}
  .lead-magnet{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); padding:22px;}
  .lead-magnet p{font-size:14px; color:var(--ink-soft); margin-bottom:14px;}
  .lead-magnet form{display:flex; gap:8px;}
  .lead-magnet input{flex:1; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font-family:inherit; font-size:14px;}
  .copyright{font-size:13px; color:var(--ink-soft); border-top:1px solid var(--line); padding-top:24px;}

  /* --- About page: team cards --- */
  .page-head{max-width:640px; margin-bottom:44px;}
  .page-head h1{font-size:32px; margin-top:10px;}
  .page-head p{color:var(--ink-soft); font-size:16px; margin-top:12px;}

  .team-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; align-items:start;}
  .aboutbox{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius);
    padding:28px; transition:border-color .15s ease;
  }
  .aboutbox:hover{border-color:var(--gold);}
  .aboutBox1 img{
    width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:10px;
    margin-bottom:20px; display:block;
  }
  .aboutBox1 h1{font-size:22px; margin-bottom:4px;}
  .aboutBox1 h3{
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:0.04em;
    text-transform:uppercase; color:var(--gold-deep); font-weight:500; margin-bottom:16px;
  }
  .aboutBox1 p{color:var(--ink-soft); font-size:14.5px; margin-bottom:14px;}
  .aboutBox1 ul{list-style:none; margin-top:8px;}
  .aboutBox1 li{
    font-size:14px; color:var(--ink-soft); padding-left:18px; position:relative; margin-bottom:10px;
  }
  .aboutBox1 li::before{
    content:""; position:absolute; left:0; top:8px; width:6px; height:6px;
    border-radius:50%; background:var(--gold);
  }

  .footer-grid-3{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:32px; margin-bottom:40px;}

  /* --- Book a call / Contact pages --- */
  .split{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}

  .steps-list{display:flex; flex-direction:column; gap:22px; margin-top:28px;}
  .steps-list .step{display:flex; gap:16px;}
  .steps-list .step h3{font-size:16.5px; margin-bottom:4px;}
  .steps-list .step p{font-size:14.5px; color:var(--ink-soft);}

  .panel{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius);
    padding:32px;
  }
  .panel h3{font-size:18px; margin-bottom:14px;}
  .embed-placeholder{
    border:1px dashed var(--line); border-radius:10px; padding:48px 20px;
    text-align:center; color:var(--ink-soft); font-size:14px; background:var(--paper);
  }
  .embed-placeholder b{display:block; color:var(--forest-deep); font-family:'Newsreader', serif; font-size:16px; margin-bottom:6px;}

  .bullet-list{list-style:none;}
  .bullet-list li{font-size:14.5px; color:var(--ink-soft); padding-left:18px; position:relative; margin-bottom:12px;}
  .bullet-list li::before{
    content:""; position:absolute; left:0; top:8px; width:6px; height:6px;
    border-radius:50%; background:var(--gold);
  }

  .field{margin-bottom:18px;}
  .field label{
    display:block; font-size:13px; font-weight:600; color:var(--forest-deep); margin-bottom:6px;
  }
  .field input, .field textarea, .field select{
    width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:8px;
    font-family:inherit; font-size:14.5px; background:var(--paper-raised); color:var(--ink);
  }
  .field textarea{resize:vertical; min-height:110px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .btn-block{width:100%; text-align:center; border:none; cursor:pointer;}

  .contact-info{display:flex; flex-direction:column; gap:20px;}
  .contact-info .item span{
    font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.06em;
    text-transform:uppercase; color:var(--gold-deep); display:block; margin-bottom:4px;
  }
  .contact-info .item b{font-size:16px; color:var(--forest-deep); font-weight:600;}

  .form-status{
    margin-top:16px; padding:12px 14px; border-radius:8px; font-size:14px; display:none;
  }
  .form-status.is-visible{display:block;}
  .form-status.is-success{background:#e7f0e5; color:#2d4a29; border:1px solid #bdd6b8;}
  .form-status.is-error{background:#f7e7e3; color:#7a2f1a; border:1px solid #e6b8a8;}
  .btn[disabled]{opacity:0.6; cursor:not-allowed;}

  /* --- Services page --- */
  .service-detail{
    display:grid; grid-template-columns:auto 1fr; gap:24px;
    padding:40px 0; border-bottom:1px solid var(--line);
  }
  .service-detail:first-of-type{padding-top:0;}
  .service-detail:last-of-type{border-bottom:none;}
  .service-detail .service-icon{width:52px; height:52px; border-radius:12px;}
  .service-detail h2{font-size:24px; margin-bottom:10px;}
  .service-detail p.desc{color:var(--ink-soft); font-size:15.5px; margin-bottom:18px; max-width:64ch;}
  .service-detail .bullet-list{columns:2; column-gap:28px;}
  .service-detail .bullet-list li{break-inside:avoid;}

  .cta-mobile-only{display:none;}

  /* --- Calendar widget --- */
  .cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;}
  .cal-head .cal-month{font-family:'Newsreader', serif; font-size:17px; color:var(--forest-deep);}
  .cal-nav{display:flex; gap:8px;}
  .cal-nav button{
    width:30px; height:30px; border:1px solid var(--line); background:var(--paper-raised);
    border-radius:7px; cursor:pointer; font-size:14px; color:var(--forest-deep); line-height:1;
  }
  .cal-nav button:hover{border-color:var(--gold);}
  .cal-nav button:disabled{opacity:0.35; cursor:not-allowed;}

  .cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center;}
  .cal-dow{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); padding-bottom:6px;}
  .cal-day{
    aspect-ratio:1; display:flex; align-items:center; justify-content:center;
    border-radius:8px; font-size:13.5px; cursor:pointer; border:1px solid transparent;
    background:var(--paper);
  }
  .cal-day.is-empty{background:transparent; cursor:default;}
  .cal-day.is-disabled{color:var(--line); cursor:not-allowed; background:transparent;}
  .cal-day.is-open:hover{border-color:var(--gold);}
  .cal-day.is-today{border-color:var(--sage);}
  .cal-day.is-selected{background:var(--forest); color:#f4f1e7; font-weight:600;}

  .slot-panel{margin-top:22px; padding-top:20px; border-top:1px solid var(--line);}
  .slot-panel h4{
    font-size:13px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.04em;
    font-family:'IBM Plex Mono', monospace; font-weight:500; margin-bottom:12px;
  }
  .slot-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
  .slot{
    padding:9px 6px; border:1px solid var(--line); border-radius:7px; background:var(--paper-raised);
    font-size:13px; cursor:pointer; text-align:center; color:var(--ink);
  }
  .slot:hover{border-color:var(--gold);}
  .slot.is-selected{background:var(--forest); border-color:var(--forest); color:#f4f1e7; font-weight:600;}

  .book-confirm{margin-top:18px; display:none;}
  .book-confirm.is-visible{display:block;}

  .book-success{display:none; text-align:center; padding:20px 0;}
  .book-success.is-visible{display:block;}
  .book-success .check{
    width:44px; height:44px; border-radius:50%; background:var(--forest); color:#f4f1e7;
    display:flex; align-items:center; justify-content:center; margin:0 auto 16px; font-size:20px;
  }
  .book-success h4{font-family:'Newsreader', serif; font-size:19px; color:var(--forest-deep); margin-bottom:6px;}
  .book-success p{font-size:14px; color:var(--ink-soft);}

  @media (max-width:820px){
    .team-grid{grid-template-columns:1fr;}
    .footer-grid-3{grid-template-columns:1fr;}
    .hero .wrap, .about .wrap{grid-template-columns:1fr;}
    .services-grid, .testimonials{grid-template-columns:1fr;}
    .split{grid-template-columns:1fr;}
    .field-row{grid-template-columns:1fr;}
    .service-detail{grid-template-columns:1fr;}
    .service-detail .bullet-list{columns:1;}
    .footer-grid{grid-template-columns:1fr 1fr;}

    .nav-toggle{display:flex;}
    header .wrap > .btn-primary{display:none;}
    header nav{
      display:none; position:absolute; top:100%; left:0; right:0;
      background:var(--paper-raised); border:1px solid var(--line); border-top:none;
      border-radius:0 0 var(--radius) var(--radius); z-index:20;
    }
    header.nav-open nav{display:block;}
    header nav ul{
      flex-direction:column; gap:0; padding:8px 0;
    }
    header nav ul li{width:100%;}
    header nav ul li a{display:block; padding:14px 24px; border-top:1px solid var(--line);}
    header nav ul li:first-child a{border-top:none;}
    .cta-mobile-only{display:block;}
    .cta-mobile-only a{color:var(--gold-deep); font-weight:700;}

    .path-row{flex-direction:column; align-items:center; gap:28px;}
    .path-row::before{display:none;}
    .trustbar .wrap{justify-content:flex-start; gap:24px 32px;}
    .section-head{margin-left:auto; margin-right:auto; text-align:center;}
  }

  @media (max-width:420px){
    .wrap{padding:0 20px;}
    .hero{padding:56px 0 44px;}
    .hero h1{font-size:32px;}
    .hero p.lede{font-size:16px;}
    section{padding:52px 0;}
    .section-head h2, .page-head h1{font-size:26px;}
    .panel{padding:22px;}
    .cal-grid{gap:3px;}
    .cal-day{font-size:12px;}
    .slot-grid{grid-template-columns:repeat(2,1fr);}
    .cta-band h2{font-size:24px;}
  }