/* GENERATED by design/build_css.py — do not edit directly.
   Shared rules come from design/home.src.html; Django-only rules from
   design/extra.css. Edit those, then re-run the script. */

/* Self-hosted latin subsets — no third-party font CDN, so no external
   request and nothing to break under a strict CSP. */

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/Barlow-700.15481e4eab6d.woff2") format('woff2');
}

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/Barlow-600.a1e2a2d7d4c0.woff2") format('woff2');
}

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/Barlow-500.8e986e86d57e.woff2") format('woff2');
}

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/Barlow-400.81419bf5abb5.woff2") format('woff2');
}

@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/SourceSerif4-200_900.e9192c2fe0a3.woff2") format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/IBMPlexMono-400.79936b18df9f.woff2") format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/IBMPlexMono-500.b1c8a895f5fd.woff2") format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/IBMPlexMono-600.5a2ce7798732.woff2") format('woff2');
}

:root{
  --deepneedle:#22332E;
  --needle-2:#2C4038;
  --brandgreen:#298A43;      /* sampled from the logo cross */
  --glaucous:#5B7C71;
  --caliche:#E5E0D3;
  --paper:#F7F5EF;
  --chlorotic:#D9CE5A;
  --canker:#A6522F;
  --ink:#22332E;
  --muted:#5F6E67;
  --rule:rgba(34,51,46,.18);
  --display:"Barlow",system-ui,sans-serif;
  --body:"Source Serif 4",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--caliche);color:var(--ink);font-family:var(--body);
  font-size:17px;line-height:1.62;font-variation-settings:"opsz" 14;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
.wrap{width:min(1180px,92vw);margin-inline:auto}
.mono{font-family:var(--mono);font-size:.685rem;letter-spacing:.13em;text-transform:uppercase;font-weight:500}

/* header */
.site-head{background:var(--deepneedle);border-bottom:1px solid rgba(247,245,239,.14)}
.head-in{display:flex;align-items:center;gap:2rem;padding:.9rem 0}
.head-in .logo{height:46px;width:auto;margin-right:auto}
.site-nav{display:flex;gap:1.6rem}
.site-nav a{text-decoration:none;font-family:var(--display);font-weight:500;font-size:.94rem;
  color:rgba(247,245,239,.82);padding:.3rem 0;border-bottom:1.5px solid transparent}
.site-nav a:hover,.site-nav a:focus-visible{color:var(--chlorotic);border-bottom-color:var(--chlorotic)}
.call-btn{font-family:var(--mono);font-size:.76rem;font-weight:600;letter-spacing:.06em;
  background:var(--chlorotic);color:var(--deepneedle);padding:.62rem .95rem;border-radius:2px;
  text-decoration:none;white-space:nowrap}
.call-btn:hover,.call-btn:focus-visible{background:var(--paper)}

/* hero — the field bulletin */
.hero{background:var(--deepneedle);color:var(--paper);padding:3.4rem 0 4rem}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.bulletin-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1.4rem}
.bulletin-meta .mono{color:var(--glaucous)}
.chip{font-family:var(--mono);font-size:.63rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;padding:.3rem .55rem;border-radius:2px;background:var(--chlorotic);color:var(--deepneedle)}
.chip.watch{background:transparent;color:var(--glaucous);box-shadow:inset 0 0 0 1px var(--glaucous)}
.chip.closed{background:transparent;color:rgba(247,245,239,.42);box-shadow:inset 0 0 0 1px rgba(247,245,239,.25)}
.chip.canker{background:var(--canker);color:var(--paper)}
h1{font-family:var(--display);font-weight:600;font-size:clamp(2.7rem,6.2vw,4.5rem);line-height:.96;
  letter-spacing:-.035em;margin:0 0 1.1rem}
h1 em{font-style:normal;color:var(--chlorotic)}
.deck{font-size:1.13rem;line-height:1.58;color:rgba(247,245,239,.86);max-width:34em;margin:0 0 1.9rem;
  font-variation-settings:"opsz" 20}
.record{border-top:1px solid rgba(247,245,239,.2);margin:0 0 1.9rem}
.record div{display:grid;grid-template-columns:7.4rem 1fr;gap:1.1rem;padding:.7rem 0;
  border-bottom:1px solid rgba(247,245,239,.12);align-items:baseline}
.record dt{color:var(--glaucous)}
.record dd{margin:0;font-size:.96rem;line-height:1.45;color:rgba(247,245,239,.94)}
.record dd b{color:var(--chlorotic);font-weight:400}
.cta-row{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.cta{font-family:var(--display);font-weight:600;font-size:1.02rem;letter-spacing:-.01em;
  background:var(--chlorotic);color:var(--deepneedle);text-decoration:none;padding:.85rem 1.4rem;border-radius:2px}
.cta:hover,.cta:focus-visible{background:var(--paper)}
.cta-alt{font-family:var(--display);font-weight:500;font-size:1.02rem;color:var(--paper);
  text-decoration:none;border-bottom:1.5px solid var(--glaucous);padding-bottom:2px}
.cta-alt:hover,.cta-alt:focus-visible{border-bottom-color:var(--chlorotic);color:var(--chlorotic)}
.specimen{margin:0}
.specimen img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;object-position:center 45%;
  border-radius:2px;border:1px solid rgba(247,245,239,.16)}
.specimen figcaption{margin-top:.75rem;color:var(--glaucous);line-height:1.5}

/* archive */
.archive{background:var(--needle-2);color:var(--paper);padding:1.6rem 0}
.archive-in{display:grid;grid-template-columns:auto 1fr auto;gap:2.2rem;align-items:center}
.archive h2{font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--glaucous);margin:0;font-weight:600;max-width:5.5rem;line-height:1.5}
.archive ul{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin:0;padding:0}
.archive li{display:flex;flex-direction:column;gap:.3rem;font-size:.93rem;line-height:1.3}
.archive li .row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.archive li .mono{color:var(--glaucous);font-size:.6rem}
.archive a.more{font-family:var(--display);font-weight:500;font-size:.9rem;color:var(--chlorotic);
  text-decoration:none;white-space:nowrap}
.archive a.more:hover,.archive a.more:focus-visible{text-decoration:underline}

section{padding:5rem 0}
.eyebrow{color:var(--glaucous);display:block;margin-bottom:1rem}
h2.big{font-family:var(--display);font-weight:600;font-size:clamp(2rem,4.2vw,3.05rem);line-height:1.02;
  letter-spacing:-.03em;margin:0 0 1.2rem}

/* stance */
.stance{background:var(--paper)}
.stance-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:3.4rem;align-items:start}
.stance figure{margin:0}
.stance img{width:100%;aspect-ratio:3/4;height:auto;object-fit:cover;border-radius:2px}
.stance figcaption{margin-top:.7rem;color:var(--muted)}
.stance p{font-size:1.09rem;margin:0 0 1.05rem;color:#38443F}
.stance p.last{font-family:var(--display);font-weight:500;font-size:1.26rem;line-height:1.34;
  letter-spacing:-.018em;color:var(--deepneedle);margin-top:1.7rem}

/* services: his own card, treatments facing conditions */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.4rem;margin-top:2.6rem}
.svc-grid h3{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--glaucous);margin:0 0 .2rem;font-weight:600}
.svc-grid p.lede{margin:0 0 1.4rem;color:var(--muted);font-size:.98rem}
.svc-grid ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.svc-grid li{padding:.78rem 0;border-bottom:1px solid var(--rule);font-size:1.04rem;
  display:flex;align-items:baseline;gap:.8rem}
.svc-grid li::before{content:"";width:7px;height:7px;flex:none;background:var(--brandgreen);
  border-radius:50%;transform:translateY(-2px)}
.svc-grid li.now{font-weight:600}
.svc-grid li.now::before{background:var(--chlorotic)}
.svc-grid li .flag{font-family:var(--mono);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--canker);margin-left:auto;white-space:nowrap;align-self:center}
.svc-photo{margin:3.4rem auto 0;max-width:620px}
.svc-photo img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;object-position:center 45%;border-radius:2px}
.svc-photo figcaption{margin-top:.7rem;color:var(--muted)}

/* proof */
.proof{background:var(--deepneedle);color:var(--paper);padding:2.6rem 0}
.proof-in{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.proof-in>div{display:flex;flex-direction:column;gap:.35rem}
.proof b{font-family:var(--display);font-weight:600;font-size:1.85rem;letter-spacing:-.03em;
  line-height:1;font-size:.6rem}
.stars{color:var(--chlorotic)}

/* quotes */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.8rem}
.quote{background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brandgreen);
  padding:1.7rem;display:flex;flex-direction:column;gap:1rem}
.quote p{margin:0;font-size:1.01rem;line-height:1.55;flex:1}
.quote footer{display:flex;flex-direction:column;gap:.25rem;border-top:1px solid var(--rule);padding-top:.85rem}
.quote cite{font-style:normal;font-family:var(--display);font-weight:600;font-size:.95rem}
.quote .mono{color:var(--muted);font-size:.6rem}

/* contact */
.contact{background:var(--deepneedle);color:var(--paper);padding-bottom:0}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:start}
.contact h2.big{color:var(--paper)}
.big-phone{font-family:var(--display);font-weight:600;font-size:clamp(2rem,4.4vw,2.9rem);
  letter-spacing:-.035em;color:var(--chlorotic);text-decoration:none;display:inline-block;line-height:1}
.big-phone:hover,.big-phone:focus-visible{color:var(--paper)}
.info{border-top:1px solid rgba(247,245,239,.2);margin:0}
.info div{display:grid;grid-template-columns:6.6rem 1fr;gap:1.1rem;padding:.7rem 0;
  border-bottom:1px solid rgba(247,245,239,.12);align-items:baseline}
.info dt{color:var(--glaucous)}
.info dd{margin:0;font-size:.96rem;color:rgba(247,245,239,.92);line-height:1.45}
.rig{margin:3.6rem 0 0}
.rig img{width:100%;aspect-ratio:32/9;height:auto;object-fit:cover;object-position:center 60%}

.site-foot{background:var(--needle-2);color:rgba(247,245,239,.55);padding:1.5rem 0}
.foot-in{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center}
.foot-in .mono{font-size:.6rem}
:focus-visible{outline:2px solid var(--chlorotic);outline-offset:3px}

@media (max-width:940px){
  .hero-grid,.stance-grid,.contact-grid,.svc-grid{grid-template-columns:1fr;gap:2.6rem}
  .leaf-stage{order:-1}
  .quotes,.archive ul{grid-template-columns:1fr}
  .archive-in{grid-template-columns:1fr}
  section{padding:3.6rem 0}
  .site-nav{display:none}
}
@media (prefers-reduced-motion:reduce){
  #blade-sick{animation:none;opacity:1}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* Rules that exist only in the Django site, not in the standalone mockup.
   design/build_css.py appends this after the shared block extracted from
   design/home.src.html, so regenerating the stylesheet never drops them. */

/* ---- contact form (Wagtail form page) ---- */
.ttc-form{margin-top:2.2rem;max-width:34rem}
.ttc-form p{margin:0 0 1.1rem;display:flex;flex-direction:column;gap:.4rem}
.ttc-form label{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--glaucous)}
.ttc-form input,.ttc-form textarea,.ttc-form select{
  font-family:var(--body);font-size:1rem;color:var(--paper);
  background:rgba(247,245,239,.06);border:1px solid rgba(247,245,239,.25);
  border-radius:2px;padding:.7rem .8rem;width:100%}
.ttc-form textarea{min-height:8rem;resize:vertical}
.ttc-form input:focus,.ttc-form textarea:focus,.ttc-form select:focus{
  outline:2px solid var(--chlorotic);outline-offset:1px;border-color:transparent}
.ttc-form .helptext{font-size:.85rem;color:rgba(247,245,239,.6)}
.ttc-form button{border:0;cursor:pointer;margin-top:.4rem}
.ttc-form ul.errorlist{margin:0;padding:0;list-style:none;color:var(--chlorotic);font-size:.9rem}
/* the flag is a link on the services page */
.svc-grid li .flag{text-decoration:none}
.svc-grid li .flag:hover{text-decoration:underline}
.bulletin-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent}
.bulletin-link:hover,.bulletin-link:focus-visible{border-bottom-color:var(--chlorotic);color:var(--chlorotic)}
