:root{
    --teal-900:#10203D;
    --teal-800:#1B2A4A;
    --teal-700:#24345C;
    --sage-100:#F1EAD4;
    --paper:#FAF7EF;
    --amber-500:#C9A227;
    --amber-600:#A9861C;
    --ink-900:#1B2A4A;
    --ink-700:#4A5578;
    --cream-100:#F3EEDF;
    --line-dark:rgba(243,238,223,0.18);
    --line-light:rgba(27,42,74,0.12);
    --max:1120px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--paper);
    color:var(--ink-900);
    font-family:'Source Sans 3', -apple-system, BlinkMacSystemFont, sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:'Playfair Display', Georgia, serif;
    font-weight:700;
    line-height:1.15;
    margin:0 0 0.5em;
    color:var(--ink-900);
  }
  h1{font-size:clamp(2.1rem, 5vw, 3.4rem);}
  h2{font-size:clamp(1.6rem, 3.2vw, 2.3rem);}
  h3{font-size:1.2rem; font-weight:600;}
  p{margin:0 0 1em; max-width:62ch;}
  a{color:inherit;}

  .skip-link{
    position:absolute; left:-999px; top:auto;
    background:var(--amber-500); color:var(--teal-900); padding:0.75em 1.2em;
    z-index:1000; font-weight:600; text-decoration:none;
  }
  .skip-link:focus{left:1rem; top:1rem;}

  a:focus-visible, button:focus-visible, summary:focus-visible{
    outline:3px solid var(--amber-500); outline-offset:2px;
  }

  .wrap{max-width:var(--max); margin:0 auto; padding:0 1.5rem;}

  /* Header */
  header.site{
    background:var(--teal-900);
    color:var(--cream-100);
    position:sticky; top:0; z-index:50;
    border-bottom:1px solid var(--line-dark);
  }
  .site-bar{
    display:flex; align-items:center; justify-content:space-between;
    padding:0.9rem 1.5rem; max-width:var(--max); margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:0.6rem; text-decoration:none; color:var(--cream-100);}
  .brand-mark{width:30px; height:30px; flex:none;}
  .brand-name{font-family:'Playfair Display', serif; font-size:1.15rem; font-weight:700; letter-spacing:0.01em;}

  nav.primary{display:flex; align-items:center; gap:1.6rem;}
  nav.primary a{color:var(--cream-100); text-decoration:none; font-size:0.96rem; font-weight:500;}
  nav.primary a:hover{color:var(--amber-500);}

  .header-actions{display:flex; align-items:center; gap:0.8rem;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center;
    padding:0.65em 1.3em; border-radius:3px; font-weight:600; font-size:0.95rem;
    text-decoration:none; border:1px solid transparent; cursor:pointer;
    font-family:'Source Sans 3', sans-serif;
  }
  .btn-amber{background:var(--amber-500); color:var(--teal-900);}
  .btn-amber:hover{background:var(--amber-600);}
  .btn-outline-dark{border-color:var(--line-dark); color:var(--cream-100);}
  .btn-outline-dark:hover{border-color:var(--amber-500); color:var(--amber-500);}
  .btn-outline-light{border-color:var(--line-light); color:var(--ink-900);}
  .btn-outline-light:hover{border-color:var(--amber-600); color:var(--amber-600);}

  .nav-toggle{
    display:none; background:none; border:1px solid var(--line-dark); color:var(--cream-100);
    padding:0.5em 0.7em; border-radius:3px;
  }

  @media (max-width: 880px){
    nav.primary{
      position:absolute; top:100%; left:0; right:0; background:var(--teal-900);
      flex-direction:column; align-items:flex-start; gap:0; padding:0.5rem 1.5rem 1rem;
      border-bottom:1px solid var(--line-dark);
      display:none;
    }
    nav.primary.open{display:flex;}
    nav.primary a{padding:0.6rem 0; width:100%; border-top:1px solid var(--line-dark);}
    .header-actions .btn-outline-dark{display:none;}
    .nav-toggle{display:inline-flex;}
  }

  /* Hero */
  .hero{
    background-color:var(--teal-800);
    background-image:
      repeating-linear-gradient(45deg, rgba(255,255,255,0.055) 0px, rgba(255,255,255,0.055) 1px, transparent 1px, transparent 12px),
      repeating-linear-gradient(-45deg, rgba(255,255,255,0.055) 0px, rgba(255,255,255,0.055) 1px, transparent 1px, transparent 12px);
    color:var(--cream-100);
    padding:4.5rem 0 4rem;
    border-bottom:1px solid var(--line-dark);
  }
  .hero .wrap{display:grid; grid-template-columns:1.15fr 0.85fr; gap:3rem; align-items:center;}
  .hero h1{color:#fff;}
  .hero p.lede{color:var(--cream-100); font-size:1.1rem; max-width:46ch;}
  .hero-ctas{display:flex; gap:0.9rem; flex-wrap:wrap; margin:1.6rem 0 1.4rem;}
  .hero-meta{font-size:0.92rem; color:var(--cream-100); opacity:0.85; display:flex; gap:1.5rem; flex-wrap:wrap;}
  .hero-art{display:flex; justify-content:center;}
  .hero-art svg{width:100%; max-width:320px; height:auto;}

  @media (max-width: 880px){
    .hero .wrap{grid-template-columns:1fr; gap:2rem;}
    .hero-art{order:-1; max-width:220px; margin:0 auto;}
  }

  /* Trust strip */
  .trust{background:var(--teal-900); color:var(--cream-100); padding:1.1rem 0;}
  .trust .wrap{display:flex; flex-wrap:wrap; gap:0 0; justify-content:center;}
  .trust span{
    padding:0.4rem 1.6rem; font-size:0.92rem; border-left:1px solid var(--line-dark);
  }
  .trust span:first-child{border-left:none;}
  @media (max-width:700px){
    .trust span{border-left:none; width:100%; text-align:center; padding:0.3rem 0;}
  }

  /* Generic section spacing */
  section{padding:4.5rem 0;}
  .section-head{max-width:60ch; margin-bottom:2.6rem;}
  .section-head p{color:var(--ink-700);}

  /* Services rows */
  .service-row{
    display:grid; grid-template-columns:220px 1fr; gap:2.5rem; align-items:center;
    padding:2.2rem 0; border-top:1px solid var(--line-light);
  }
  .service-row:last-child{border-bottom:1px solid var(--line-light);}
  .service-row .icon{
    width:32px; height:32px;
  }
  .icon-badge{
    width:80px; height:80px; display:flex; align-items:center; justify-content:center;
    background:var(--amber-500);
    clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  }
  .service-row.reverse{grid-template-columns:1fr 220px;}
  .service-row.reverse .icon-col{order:2;}
  .service-copy h3{margin-bottom:0.35rem;}
  .service-copy p{margin-bottom:0.6rem; color:var(--ink-700);}
  .date-chip{
    display:inline-flex; align-items:center; gap:0.5em;
    background:var(--amber-500); color:var(--teal-900); font-weight:600;
    padding:0.3em 0.8em; border-radius:3px; font-size:0.85rem; margin-top:0.3rem;
  }
  @media (max-width:700px){
    .service-row, .service-row.reverse{grid-template-columns:1fr;}
    .service-row.reverse .icon-col{order:0;}
  }

  /* Community band */
  .community{background:var(--sage-100);}
  .community .grid{display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start;}
  .facility-list{list-style:none; padding:0; margin:1.2rem 0 1.6rem; display:grid; gap:0.6rem;}
  .facility-list li{display:flex; align-items:baseline; gap:0.6rem; font-weight:500;}
  .facility-list li::before{content:"—"; color:var(--amber-600); flex:none;}
  @media (max-width:820px){ .community .grid{grid-template-columns:1fr;} }

  .facility-dl{margin:1rem 0 0;}
  .facility-item{padding:0.9rem 0; border-top:1px solid var(--line-light);}
  .facility-item:last-child{border-bottom:1px solid var(--line-light);}
  .facility-item dt{font-weight:700; font-family:'Playfair Display', serif; margin-bottom:0.2rem;}
  .facility-item dd{margin:0; color:var(--ink-700); font-size:0.95rem;}

  /* Contact form */
  .contact-form{margin-top:3rem; padding-top:2.5rem; border-top:1px solid var(--line-light);}
  .contact-form h3{margin-bottom:0.3rem;}
  .contact-form > p{color:var(--ink-700);}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:0 1.2rem;}
  .contact-form label{display:block; font-size:0.9rem; font-weight:600; margin-bottom:1.1rem;}
  .contact-form input, .contact-form select, .contact-form textarea{
    display:block; width:100%; margin-top:0.4rem; padding:0.6em 0.7em;
    border:1px solid var(--line-light); border-radius:3px; font-family:inherit; font-size:0.95rem;
    background:#fff; color:var(--ink-900); font-weight:400;
  }
  .contact-form textarea{resize:vertical;}
  .form-note{font-size:0.85rem; color:var(--ink-700); margin:-0.3rem 0 1.2rem; max-width:none;}
  .form-status{font-size:0.9rem; font-weight:600; color:var(--teal-800); min-height:1.2em; margin:0.8rem 0 0;}
  .hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
  @media (max-width:700px){ .form-row{grid-template-columns:1fr;} }

  /* Flu callout */
  .callout{
    background:var(--amber-500); color:var(--teal-900);
    border-radius:4px; padding:2.4rem 2.6rem;
    display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:center;
  }
  .callout h3{color:var(--teal-900); margin-bottom:0.3rem; font-size:1.5rem;}
  .callout p{color:var(--teal-900); margin-bottom:0;}
  @media (max-width:700px){ .callout{grid-template-columns:1fr;} }

  /* About */
  .about .grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:3rem; align-items:center;}
  .monogram{
    width:100%; aspect-ratio:1/1; max-width:260px; border-radius:6px;
    background:var(--teal-800); display:flex; align-items:center; justify-content:center;
  }
  .monogram span{font-family:'Playfair Display', serif; color:var(--amber-500); font-size:4rem;}
  @media (max-width:820px){ .about .grid{grid-template-columns:1fr;} .monogram{margin:0 auto;} }

  /* FAQ */
  .faq-item{border-top:1px solid var(--line-light); padding:1.1rem 0;}
  .faq-item:last-child{border-bottom:1px solid var(--line-light);}
  .faq-item summary{
    cursor:pointer; font-weight:700; font-family:'Playfair Display', serif; font-size:1.05rem;
    list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{content:"+"; font-size:1.4rem; color:var(--amber-600); flex:none;}
  .faq-item[open] summary::after{content:"–";}
  .faq-item p{margin-top:0.7rem; color:var(--ink-700);}

  /* Review CTA */
  .review-cta{
    background:var(--teal-800); color:var(--cream-100); text-align:left;
    border-radius:4px; padding:2.4rem 2.6rem;
    display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap;
  }
  .review-cta h3{color:#fff; margin-bottom:0.2rem;}
  .review-cta p{color:var(--cream-100); margin-bottom:0; opacity:0.9;}

  /* Contact */
  .contact .grid{display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start;}
  address{font-style:normal;}
  .hours-table{width:100%; border-collapse:collapse; margin:1rem 0 1.4rem;}
  .hours-table td{padding:0.35rem 0; border-top:1px solid var(--line-light); font-size:0.95rem;}
  .hours-table td:last-child{text-align:right; color:var(--ink-700);}
  .map-frame{width:100%; aspect-ratio:4/3; border:1px solid var(--line-light); border-radius:4px; overflow:hidden;}
  .map-frame iframe{width:100%; height:100%; border:0;}
  @media (max-width:820px){ .contact .grid{grid-template-columns:1fr;} }

  /* Footer */
  footer.site{background:var(--teal-900); color:var(--cream-100); padding:3rem 0 2rem;}
  .footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.5rem;}
  footer.site h4{font-family:'Playfair Display', serif; font-weight:700; color:#fff; margin:0 0 0.7rem; font-size:1rem;}
  footer.site a{color:var(--cream-100); text-decoration:none; opacity:0.85;}
  footer.site a:hover{opacity:1; color:var(--amber-500);}
  footer.site ul{list-style:none; padding:0; margin:0; display:grid; gap:0.5rem;}
  .footer-bottom{
    max-width:var(--max); margin:2rem auto 0; padding:1.2rem 1.5rem 0; border-top:1px solid var(--line-dark);
    font-size:0.85rem; opacity:0.75; display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.6rem;
  }
  @media (max-width:700px){ .footer-grid{grid-template-columns:1fr;} }

  .icon path, .icon circle, .icon rect, .icon line{fill:none; stroke:var(--teal-900); stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round;}
  .icon.filled path, .icon.filled circle{fill:var(--teal-900); stroke:none;}

/* Secondary page hero (no illustration) */
.page-hero{
  background-color:var(--teal-800);
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,0.055) 0px, rgba(255,255,255,0.055) 1px, transparent 1px, transparent 12px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,0.055) 0px, rgba(255,255,255,0.055) 1px, transparent 1px, transparent 12px);
  color:var(--cream-100); padding:3.5rem 0 3rem; border-bottom:1px solid var(--line-dark);
}
.page-hero h1{color:#fff; max-width:24ch;}
.page-hero p.lede{color:var(--cream-100); font-size:1.08rem; max-width:56ch;}
.breadcrumb{font-size:0.85rem; opacity:0.75; margin-bottom:1rem;}
.breadcrumb a{color:var(--cream-100); text-decoration:underline;}

/* Numbered steps (genuine sequence) */
.steps{display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; margin:1rem 0 0;}
.step{border-top:1px solid var(--line-light); padding-top:1rem;}
.step .step-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%; background:var(--amber-500); color:var(--teal-900);
  font-family:'Playfair Display', serif; font-weight:700; margin-bottom:0.8rem;
}
.step h3{margin-bottom:0.3rem;}
.step p{color:var(--ink-700); font-size:0.95rem;}
@media (max-width:820px){ .steps{grid-template-columns:1fr;} }

/* Reassurance strip */
.reassure{display:flex; flex-wrap:wrap; gap:0 0; justify-content:center; background:var(--sage-100); padding:1rem 0; margin-top:0;}
.reassure span{padding:0.4rem 1.6rem; font-size:0.9rem; border-left:1px solid var(--line-light); color:var(--ink-700);}
.reassure span:first-child{border-left:none;}
@media (max-width:700px){ .reassure span{border-left:none; width:100%; text-align:center; padding:0.25rem 0;} }
