:root{
    color-scheme: light;
    --ink:#06403C;
    --ink-2:#0E6B63;
    --accent:#D96A14;
    --accent-dk:#A14C09;
    --page:#FBFAF7;
    --card:#FFFFFF;
    --soft:#F1F6F4;
    --text:#243029;
    --muted:#54625B;
    --line:#DCE5E1;
    --maxw:64rem;
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  *,*::before,*::after{box-sizing:inherit}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{
    margin:0;background:var(--page);color:var(--text);
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    font-size:1.0625rem;line-height:1.6;
  }
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
  a{color:var(--accent-dk)}
  a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
  h2{font-size:clamp(1.375rem,3.4vw,1.75rem);line-height:1.25;letter-spacing:-0.015em;margin:0 0 .5rem;color:var(--ink)}
  h3{font-size:1.0625rem;margin:0 0 .375rem;color:var(--ink-2)}
  section{padding:3rem 0}
  section + section{border-top:1px solid var(--line)}
  .lead{color:var(--muted);margin:0 0 1.75rem;max-width:46rem}

  /* Nav */
  .bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--ink);color:#fff}
  .bar .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding-top:.75rem;padding-bottom:.75rem}
  .brand{font-weight:650;letter-spacing:-0.01em;margin-right:auto;font-size:1.0625rem}
  .bar nav{display:flex;flex-wrap:wrap;gap:.25rem 1.125rem;font-size:.9375rem}
  .bar nav a{color:#C8E2DD;text-decoration:none;padding:.125rem 0}
  .bar nav a:hover{color:#fff;text-decoration:underline}
  .bar .ring{color:#fff;font-weight:600;text-decoration:none;white-space:nowrap}
  body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--ink);z-index:11}

  /* Hero */
  .hero{background:var(--ink);color:#fff;padding:3rem 0 3.5rem;border-top:0}
  .hero h1{font-size:clamp(2rem,6vw,3rem);line-height:1.1;letter-spacing:-0.025em;margin:0 0 .875rem;font-weight:650}
  .hero p{color:#C8E2DD;max-width:40rem;margin:0 0 1.75rem}
  .btns{display:flex;flex-wrap:wrap;gap:.75rem}
  .btn{
    display:inline-block;padding:.75rem 1.25rem;border-radius:4px;
    text-decoration:none;font-weight:600;font-size:1rem;
  }
  .btn-main{background:var(--accent);color:#fff}
  .btn-main:hover{background:var(--accent-dk)}
  .btn-ghost{border:1px solid rgba(255,255,255,.5);color:#fff}
  .btn-ghost:hover{background:rgba(255,255,255,.1)}
  .meta{margin:1.75rem 0 0;font-size:.9375rem;color:#A9CEC8}

  /* Service cards */
  .cards{display:grid;gap:1rem}
  @media (min-width:40rem){.cards{grid-template-columns:1fr 1fr}}
  @media (min-width:60rem){.cards{grid-template-columns:repeat(3,1fr)}}
  .card{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ink-2);border-radius:5px;padding:1.125rem 1.25rem}
  .card.priv{border-left-color:var(--accent)}
  .card p{margin:0;color:var(--muted);font-size:.9688rem}
  .tag{display:inline-block;font-size:.8125rem;color:var(--muted);margin-bottom:.375rem}

  /* Table */
  table{width:100%;border-collapse:collapse;margin-top:.5rem}
  caption{text-align:left;color:var(--muted);font-size:.9375rem;padding-bottom:.75rem}
  th,td{text-align:left;padding:.625rem .5rem .625rem 0;border-bottom:1px solid var(--line);font-weight:400;vertical-align:top}
  thead th{font-weight:600;color:var(--ink)}
  td:last-child{color:var(--muted);text-align:right;white-space:nowrap}

  /* Visit */
  .two{display:grid;gap:2rem}
  @media (min-width:44rem){.two{grid-template-columns:1fr 1fr;gap:3rem}}
  address{font-style:normal}
  .hrs{margin-top:0}
  .hrs td{text-align:right;font-variant-numeric:tabular-nums}

  .panel{background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:1.25rem 1.375rem;margin-top:1.5rem}
  .panel p{margin:0;color:var(--muted);font-size:.9688rem}
  .panel strong{color:var(--text)}

  footer{background:var(--ink);color:#BBD8D3;padding:2.5rem 0 3rem;font-size:.875rem;line-height:1.7}
  footer a{color:#fff}
  footer p{margin:0 0 .5rem}
  .reg{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.18)}
  .todo{background:#8a4a00;color:#fff;padding:0 .25rem;border-radius:2px}

/* Contact page */
.form-wrap{max-width:38rem}
.field{margin-bottom:1.125rem}
.field label{display:block;font-weight:600;margin-bottom:.3125rem;color:var(--ink)}
.field .hint{display:block;font-weight:400;color:var(--muted);font-size:.9062rem;margin-top:-.125rem;margin-bottom:.375rem}
input[type=text],input[type=tel],input[type=email],select,textarea{
  width:100%;padding:.625rem .75rem;font:inherit;color:var(--text);
  background:var(--card);border:1px solid #BCCCC6;border-radius:4px;
}
textarea{min-height:6rem;resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--ink-2)}
.req{color:var(--accent-dk)}
.consent{display:flex;gap:.625rem;align-items:flex-start;margin:1.25rem 0}
.consent input{margin-top:.3125rem;width:1.125rem;height:1.125rem;flex:0 0 auto}
.consent label{font-weight:400;color:var(--muted);font-size:.9375rem}
.warn{
  background:#FDF3E8;border:1px solid #E9C9A3;border-left:4px solid var(--accent);
  border-radius:5px;padding:1.125rem 1.25rem;margin:0 0 1.75rem;
}
.warn p{margin:0;font-size:.9688rem}
.warn p + p{margin-top:.5rem}
button.btn-main{border:0;cursor:pointer;font-family:inherit}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Service lists */
.svc{columns:2;column-gap:2rem;margin:.5rem 0 0;padding-left:1.1rem}
@media (max-width:40rem){.svc{columns:1}}
.svc li{margin-bottom:.3125rem;break-inside:avoid}
.paid{background:#FDF3E8;border:1px solid #E9C9A3;border-left:4px solid var(--accent);border-radius:5px;padding:1.125rem 1.25rem;margin:0 0 1.75rem}
.paid p{margin:0;font-size:.9688rem}
.tests{width:100%;border-collapse:collapse;margin-top:.75rem}
.tests th,.tests td{text-align:left;padding:.625rem .5rem .625rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.tests th{font-weight:600;color:var(--ink);white-space:nowrap;padding-right:1.25rem}
.tests td{color:var(--muted);font-size:.9688rem;text-align:left}
