:root{
    --navy:#1F3157; --navy-2:#16233F;
    --blue:#0A6FA8; --blue-br:#0088CC; --blue-soft:#E8F4FB;
    --ink:#16202E; --ink-2:#4C5867; --ink-3:#77828F;
    --page:#FFFFFF; --tint:#F4F7FA; --rule:#DFE5EB;
    --ok:#2E7D4F;
  }

  *{box-sizing:border-box}
  [hidden]{display:none !important;}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }
  body{
    margin:0; background:var(--page); color:var(--ink);
    color-scheme:light;
    font-family:"Figtree","Segoe UI",system-ui,sans-serif; line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  a{text-decoration:none;}
  img{max-width:100%;}

  /* skip link for keyboard/AT users */
  .skip{position:absolute; left:-9999px; top:0; background:var(--navy); color:#fff; padding:10px 16px; z-index:100; border-radius:0 0 6px 0;}
  .skip:focus{left:0;}

  a:focus-visible, .btn:focus-visible{ outline:3px solid var(--blue-br); outline-offset:2px; }

  .container{max-width:1080px; margin:0 auto; padding:0 32px;}
  @media(max-width:700px){ .container{padding:0 20px;} }

  /* top bar */
  .topbar{background:var(--navy); color:#fff; font-size:13px;}
  .topbar .container{display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:8px; padding-bottom:8px; flex-wrap:wrap;}
  .topbar span{color:#C9D6E8;}
  .topbar b{color:#fff; font-weight:600;}
  .topbar a{color:#fff;}

  /* nav */
  .nav{background:var(--page); border-bottom:1px solid var(--rule); position:sticky; top:0; z-index:50;}
  .nav .container{display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:14px; padding-bottom:14px; flex-wrap:wrap;}
  .brand{display:flex; align-items:center; gap:11px;}
  .brand img{width:44px; height:44px; border-radius:8px; display:block;}
  .brand .wm{font-family:"Archivo",sans-serif; font-weight:800; font-size:19px; color:var(--navy); letter-spacing:-.01em;}
  .navlinks{display:flex; gap:24px; align-items:center; flex-wrap:wrap;}
  .navlinks a:not(.btn){color:var(--ink-2); font-weight:500; font-size:14.5px;}
  .navlinks a.on{color:var(--navy); font-weight:700;}
  .navlinks a:not(.btn):hover{color:var(--navy);}
  .btn{
    display:inline-block; background:var(--blue); color:#fff; font-weight:700; font-size:14.5px;
    padding:11px 20px; border-radius:6px; border:1px solid var(--blue); cursor:pointer;
  }
  .btn:hover{background:#095e8f; border-color:#095e8f;}
  .btn-lg{font-size:16px; padding:14px 26px;}
  .btn-ghost{background:transparent; color:var(--blue); border:1px solid #B9D6E8;}
  .btn-ghost:hover{background:var(--blue-soft); border-color:#B9D6E8; color:var(--blue);}
  .btn-white{background:#fff; color:var(--navy); border-color:#fff;}
  .btn-white:hover{background:#EAF3F9; border-color:#EAF3F9;}

  /* hero */
  .hero{
    background:
      radial-gradient(900px 380px at 88% -10%, #E6F2FA 0%, rgba(230,242,250,0) 62%),
      linear-gradient(180deg,#FBFDFE 0%, #FFFFFF 100%);
    border-bottom:1px solid var(--rule);
  }
  .hero .container{padding-top:72px; padding-bottom:72px;}
  .hero-grid{display:grid; grid-template-columns:1fr; gap:40px; align-items:center;}
  @media(min-width:900px){ .hero-grid{grid-template-columns:1.15fr .85fr; gap:56px;} }
  .eyebrow{
    display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.12em;
    text-transform:uppercase; color:var(--blue); background:var(--blue-soft);
    padding:5px 11px; border-radius:4px; margin-bottom:20px;
  }
  h1{
    font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(34px,4.6vw,55px);
    line-height:1.04; letter-spacing:-.025em; margin:0 0 18px; color:var(--navy);
    text-wrap:balance;
  }
  .lede{font-size:18.5px; color:var(--ink-2); margin:0 0 28px; max-width:44ch;}
  .cta-row{display:flex; gap:12px; flex-wrap:wrap; align-items:center;}
  .trust{
    margin-top:26px; padding-top:18px; border-top:1px solid var(--rule);
    font-size:13.5px; color:var(--ink-3); display:flex; gap:10px 20px; flex-wrap:wrap;
  }
  .trust b{color:var(--ink-2); font-weight:600;}

  /* hero card */
  .card-call{
    background:var(--page); border:1px solid var(--rule); border-radius:12px; padding:26px;
    box-shadow:0 1px 2px #16202e0a, 0 18px 40px #16202e0f;
  }
  .card-call h2{
    font-family:"Archivo",sans-serif; font-size:17px; font-weight:700; margin:0 0 4px; color:var(--navy);
  }
  .card-call .sub{font-size:13.5px; color:var(--ink-3); margin:0 0 18px;}
  .line{display:flex; gap:12px; align-items:flex-start; padding:11px 0; border-top:1px solid var(--rule); font-size:14.5px;}
  .line:first-of-type{border-top:0;}
  .tick{color:var(--ok); flex:none; margin-top:2px;}
  .line b{display:block; color:var(--ink); font-weight:600;}
  .line span{color:var(--ink-2);}

  /* windows 10 band */
  .band{background:var(--navy); color:#fff;}
  .band .container{padding-top:60px; padding-bottom:60px;}
  .band h2{
    font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(26px,3.2vw,34px);
    margin:0 0 14px; letter-spacing:-.015em; color:#fff;
  }
  .band .intro{color:#C6D4E6; font-size:17px; max-width:62ch; margin:0 0 30px;}
  .paths{display:grid; gap:18px; grid-template-columns:1fr; margin-bottom:30px;}
  @media(min-width:760px){ .paths{grid-template-columns:1fr 1fr;} }
  .path{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:9px; padding:22px;}
  .path h3{font-family:"Archivo",sans-serif; font-size:17px; font-weight:700; margin:0 0 8px; color:#fff;}
  .path p{margin:0; color:#C6D4E6; font-size:14.5px;}
  .band .close{color:#DCE6F2; font-size:16px; max-width:62ch; margin:0 0 24px;}

  /* services */
  .sec{padding:72px 0;}
  .sec-tint{background:var(--tint); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);}
  h2.sec-h{
    font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(25px,3vw,33px);
    letter-spacing:-.015em; margin:0 0 10px; color:var(--navy); text-wrap:balance;
  }
  .sec-lede{color:var(--ink-2); font-size:16.5px; margin:0 0 38px; max-width:60ch;}
  .svc{display:grid; gap:20px; grid-template-columns:1fr;}
  @media(min-width:620px){ .svc{grid-template-columns:1fr 1fr;} }
  @media(min-width:960px){ .svc{grid-template-columns:repeat(3,1fr);} }
  .scard{background:var(--page); border:1px solid var(--rule); border-radius:10px; padding:24px;}
  .scard svg{color:var(--blue); margin-bottom:14px; display:block;}
  .scard h3{font-family:"Archivo",sans-serif; font-size:17px; font-weight:700; margin:0 0 8px; color:var(--navy);}
  .scard p{margin:0; font-size:14.5px; color:var(--ink-2);}

  /* why list */
  .why{display:grid; gap:26px 40px; grid-template-columns:1fr;}
  @media(min-width:700px){ .why{grid-template-columns:1fr 1fr;} }
  .wrow{display:flex; gap:14px; align-items:flex-start;}
  .wnum{
    flex:none; width:30px; height:30px; border-radius:7px; background:var(--blue-soft);
    color:var(--blue); display:flex; align-items:center; justify-content:center;
  }
  .wrow h3{font-family:"Archivo",sans-serif; font-size:16px; font-weight:700; margin:0 0 4px; color:var(--navy);}
  .wrow p{margin:0; font-size:14.5px; color:var(--ink-2);}

  /* testimonial placeholder */
  .placeholder{
    border:2px dashed #C3D2DE; border-radius:10px; padding:40px 28px; text-align:center;
    background:#FBFDFE;
  }
  .placeholder .p-lab{
    font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
    color:var(--blue); margin:0 0 10px;
  }
  .placeholder h2{font-family:"Archivo",sans-serif; font-size:19px; margin:0 0 8px; color:var(--navy); font-weight:700;}
  .placeholder p{margin:0 auto; max-width:56ch; color:var(--ink-2); font-size:14.5px;}

  /* testimonials */
  .tgrid{display:grid; gap:20px; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));}
  /* while only one testimonial is approved — centred single column, not a half-empty row */
  .tgrid--single{max-width:70ch;}
  @media(min-width:760px){ .tgrid--single{grid-template-columns:1fr;} }
  .tcard{
    background:var(--page); border:1px solid var(--rule); border-radius:10px;
    padding:28px 26px 24px; margin:0; display:flex; flex-direction:column;
  }
  .tcard blockquote{margin:0 0 18px; flex:1;}
  .tcard blockquote::before{
    content:"\201C"; display:block; font-family:"Archivo",sans-serif; font-weight:800;
    font-size:44px; line-height:.7; color:var(--blue); margin-bottom:10px;
  }
  .tcard blockquote p{margin:0; font-size:15.5px; line-height:1.62; color:var(--ink);}
  .tcard figcaption{border-top:1px solid var(--rule); padding-top:14px;}
  .t-name{
    display:block; font-family:"Archivo",sans-serif; font-weight:700; font-size:15px;
    color:var(--navy);
  }
  .t-org{
    display:block; font-size:12px; font-weight:600; letter-spacing:.08em;
    text-transform:uppercase; color:var(--blue); margin-top:3px;
  }

  /* closing cta */
  .close-cta{background:linear-gradient(180deg,#F4F9FC 0%,#EAF3F9 100%); border-top:1px solid var(--rule);}
  .close-cta .container{padding-top:64px; padding-bottom:64px; text-align:center;}
  .close-cta h2{font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(25px,3vw,33px); margin:0 0 12px; color:var(--navy); letter-spacing:-.015em;}
  .close-cta p{margin:0 auto 26px; max-width:52ch; color:var(--ink-2); font-size:17px;}

  /* footer */
  .foot{background:var(--navy-2); color:#AFC0D6; font-size:14px;}
  .foot .container{padding-top:44px; padding-bottom:32px;}
  .fgrid{display:grid; gap:28px; grid-template-columns:1fr;}
  @media(min-width:700px){ .fgrid{grid-template-columns:1.4fr 1fr 1fr;} }
  .foot h2{font-family:"Archivo",sans-serif; color:#fff; font-size:14px; font-weight:700; margin:0 0 12px; letter-spacing:.02em;}
  .foot a{color:#AFC0D6; display:block; margin-bottom:7px;}
  .foot a:hover{color:#fff;}
  .foot .legal{border-top:1px solid rgba(255,255,255,.12); margin-top:30px; padding-top:18px; font-size:12.5px; color:#8B9CB3;}

/* ============================================================
   Interior pages (services / about / contact)
   ============================================================ */

.page-head{background:radial-gradient(900px 360px at 85% -20%, #E6F2FA 0%, rgba(230,242,250,0) 60%), linear-gradient(180deg,#FBFDFE 0%,#FFFFFF 100%); border-bottom:1px solid var(--rule);}
.page-head .container{padding-top:56px; padding-bottom:46px;}
.page-head h1{font-size:clamp(30px,4vw,46px); margin:0;}
.page-head .lede{margin-top:16px;}

/* service detail rows */
.svc-list{display:grid; gap:20px; grid-template-columns:1fr; margin-top:6px;}
.srow{display:grid; grid-template-columns:1fr; gap:16px; background:var(--page); border:1px solid var(--rule); border-radius:12px; padding:26px;}
@media(min-width:760px){ .srow{grid-template-columns:56px 1fr; gap:22px;} }
.srow .ic{width:52px; height:52px; border-radius:12px; background:var(--blue-soft); color:var(--blue); display:flex; align-items:center; justify-content:center; flex:none;}
.srow h2{font-family:"Archivo",sans-serif; font-size:20px; color:var(--navy); margin:0 0 6px; font-weight:700;}
.srow > div > p{margin:0 0 12px; color:var(--ink-2); font-size:15px; max-width:60ch;}
.srow ul{margin:0; padding-left:18px; color:var(--ink-2); font-size:14.5px;}
.srow li{margin-bottom:5px;}

/* about story + references */
.prose{max-width:68ch;}
.prose p{font-size:16.5px; color:var(--ink-2); margin:0 0 18px;}
.prose p:first-of-type{font-size:18.5px; color:var(--ink);}
.prose h2{font-family:"Archivo",sans-serif; font-size:20px; font-weight:700; color:var(--navy); margin:34px 0 10px; letter-spacing:-.01em;}
.prose h2:first-child{margin-top:0;}
.prose ul{margin:0 0 18px; padding-left:20px;}
.prose li{font-size:16.5px; color:var(--ink-2); margin-bottom:8px;}
.prose a{color:var(--blue); text-decoration:underline; text-underline-offset:2px;}
.prose .updated{font-size:13.5px; color:var(--ink-3); margin:0 0 28px;}
.prose .callout{
  background:var(--blue-soft); border-left:4px solid var(--blue); border-radius:0 8px 8px 0;
  padding:18px 22px; margin:0 0 28px;
}
.prose .callout p{margin:0; font-size:16px; color:var(--ink);}
.prose .callout p + p{margin-top:10px;}
.refs{display:grid; gap:20px; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); margin-top:6px;}
.ref{background:var(--page); border:1px solid var(--rule); border-radius:12px; padding:24px; display:flex; flex-direction:column;}
.ref blockquote{margin:0 0 16px; font-size:16px; color:var(--ink); line-height:1.55;}
.ref .who{font-size:13.5px; color:var(--ink-3); border-top:1px solid var(--rule); padding-top:14px;}
.ref .who b{color:var(--navy); font-weight:700; display:block; font-family:"Archivo",sans-serif; font-size:15px;}
.note-line{font-size:13.5px; color:var(--ink-3); margin:24px 0 0; max-width:66ch;}

/* ---- booking page ---- */
.book-frame{
  background:var(--page); border:1px solid var(--rule); border-radius:12px;
  overflow:hidden; box-shadow:0 1px 3px rgba(22,32,46,.05);
}
.book-frame iframe{display:block; width:100%; height:1180px; border:0;}
@media(min-width:760px){ .book-frame iframe{height:880px;} }
.book-pending{
  background:var(--page); border:1px solid var(--rule); border-radius:12px;
  padding:40px 28px; text-align:center;
}
.book-pending .bp-lab{
  font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue); margin:0 0 10px;
}
.book-pending h3{
  font-family:"Archivo",sans-serif; font-size:21px; font-weight:700;
  margin:0 0 10px; color:var(--navy);
}
.book-pending p{margin:0 auto 22px; max-width:56ch; color:var(--ink-2); font-size:15.5px;}
.book-pending .btn{margin:0;}

/* contact */
.contact-grid{display:grid; gap:20px; grid-template-columns:1fr; margin-top:6px;}
@media(min-width:760px){ .contact-grid{grid-template-columns:1fr 1fr;} }
.ccard{background:var(--page); border:1px solid var(--rule); border-radius:12px; padding:28px;}
.ccard h2{font-family:"Archivo",sans-serif; font-size:19px; color:var(--navy); margin:0 0 8px; font-weight:700;}
.ccard p{margin:0 0 6px; color:var(--ink-2); font-size:15px;}
.big-num{font-family:"Archivo",sans-serif; font-weight:800; font-size:26px; color:var(--blue); letter-spacing:-.01em; display:inline-block; margin:4px 0 2px;}
.big-num:hover{color:#095e8f;}

/* --- mobile hamburger nav --- */
.nav-toggle{display:none; background:none; border:0; color:var(--navy); cursor:pointer; padding:6px; margin:-6px 0; border-radius:6px; line-height:0;}
.nav-toggle:focus-visible{outline:3px solid var(--blue-br); outline-offset:2px;}
.nav-toggle .ico-close{display:none;}
.nav-toggle[aria-expanded="true"] .ico-open{display:none;}
.nav-toggle[aria-expanded="true"] .ico-close{display:inline;}
@media(max-width:760px){
  .nav-toggle{display:inline-flex; align-items:center; justify-content:center;}
  .navlinks{display:none; width:100%; flex-direction:column; align-items:stretch; gap:0; padding-top:6px;}
  .navlinks.open{display:flex;}
  .navlinks a{padding:12px 4px; width:100%; font-size:16px; border-top:1px solid var(--rule);}
  .navlinks a.btn{margin-top:10px; width:auto; align-self:flex-start; border-top:0; text-align:center;}
}
/* --- phone number as plain text (click-to-call removed) --- */
.callnum{display:inline-block; font-family:var(--f-display); font-weight:700; font-size:20px; color:var(--navy); letter-spacing:-.01em;}
.band .callnum{color:#fff;}