@charset "UTF-8";
/* ==========================================================================
   ALL CAPS — inner pages
   Loaded after style.css. Covers the page hero, long-form legal prose and the
   contact page. The home page never needs this file.
   ========================================================================== */

.page-hero{
  position:relative;overflow:hidden;
  margin-top:calc(-1 * var(--navh));
  padding-top:calc(var(--navh) + clamp(3rem,7vw,6rem));
  padding-bottom:clamp(2.6rem,6vw,5rem);
}
.page-hero::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(90% 70% at 70% 0%,rgba(214,167,86,.16),transparent 62%);
}
.page-hero .wrap{position:relative;z-index:1;display:grid;gap:.85rem;justify-items:start}
.crumb{display:flex;align-items:center;gap:.5rem;font-size:var(--step--1);color:var(--ink-3)}
.crumb a{transition:color .3s var(--ease)}
.crumb a:hover{color:var(--crema-lite)}
.page-hero__title{font-size:var(--step-3);font-weight:200;line-height:1.05;letter-spacing:-.02em;text-wrap:balance}
.page-hero__title em{font-style:normal;font-weight:700}
.page-hero__sub{color:var(--ink-2);max-width:56ch;text-wrap:pretty}

.sect--page{padding-block:clamp(2.6rem,6vw,5rem) clamp(4rem,8vw,7rem)}
.page-grid{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:clamp(1.6rem,4vw,4rem);align-items:start}
@media (max-width:900px){.page-grid{grid-template-columns:1fr}}

/* ---------- table of contents ---------- */
.toc{position:sticky;top:calc(var(--navh) + 1.2rem);display:grid;gap:.7rem}
@media (max-width:900px){
  .toc{position:static;background:var(--white);border:1px solid var(--line-2);
    border-radius:var(--r-l);padding:1.1rem 1.2rem}
}
.toc__label{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--crema);font-weight:600}
.toc ol{counter-reset:toc;display:grid;gap:.1rem;list-style:none;margin:0;padding:0}
.toc li{counter-increment:toc}
.toc a{
  display:block;border-inline-start:2px solid var(--line-2);
  padding:.4rem 0 .4rem .8rem;padding-inline-start:.8rem;
  font-size:var(--step--1);color:var(--ink-3);
  transition:color .25s var(--ease),border-color .25s var(--ease);
}
.toc a::before{content:counter(toc) ". ";opacity:.5}
.toc a:hover{color:var(--ink);border-inline-start-color:var(--crema)}

/* ---------- long-form prose ---------- */
.prose{max-width:74ch}
.prose__sec+.prose__sec{margin-top:clamp(1.8rem,3.5vw,2.8rem)}
.prose h2{
  display:flex;align-items:baseline;gap:.6rem;
  font-size:var(--step-1);font-weight:600;line-height:1.25;margin-bottom:.7rem;
  scroll-margin-top:calc(var(--navh) + 1rem);
}
.prose__num{
  font-size:.72rem;font-weight:700;color:var(--crema);flex:none;
  border:1px solid var(--line);border-radius:var(--r-pill);padding:.15em .6em;
}
.prose p{color:var(--ink-2);line-height:1.85;text-wrap:pretty}
.prose p+p{margin-top:.7rem}
.prose__updated{
  margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--line-2);
  font-size:var(--step--1);color:var(--ink-3);
}
.callout{
  margin:1.4rem 0;padding:1.1rem 1.3rem;border-radius:var(--r-m);
  background:var(--espresso);color:var(--cream);display:grid;gap:.35rem;
}
.callout strong{font-size:var(--step-0);color:var(--crema-lite)}
.callout p{color:var(--oat);line-height:1.7;margin:0}
.callout a{color:var(--crema-lite);text-decoration:underline;text-underline-offset:3px}
.callout--soft{background:var(--white);border:1px solid var(--line);color:var(--ink)}
.callout--soft strong{color:var(--crema)}
.callout--soft p{color:var(--ink-2)}
.callout--soft a{color:var(--crema)}

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
.contact__aside{display:grid;gap:.6rem}
.ccard{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;
  padding:1rem 1.1rem;border-radius:var(--r-l);
  background:var(--white);border:1px solid var(--line-2);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.ccard:not(.ccard--static):hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line)}
.ccard__ico{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--espresso);color:var(--cream);
}
.ccard__ico svg{width:21px;height:21px}
.ccard__ico--wa{background:#25D366;color:#fff}
.ccard__txt{display:grid;gap:.1rem;min-width:0}
.ccard__txt strong{font-size:var(--step-0);font-weight:600}
.ccard__txt span{font-size:var(--step--1);color:var(--ink-3);line-height:1.45}
.ccard__go{color:var(--ink-3);flex:none;transition:transform .35s var(--ease)}
.ccard:hover .ccard__go{transform:translateX(-4px)}

.hours{
  margin-top:.4rem;padding:1.1rem 1.2rem;border-radius:var(--r-l);
  background:var(--cream);display:grid;gap:.7rem;
}
.hours__label{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);font-weight:600}
.hours dl{display:grid;gap:.4rem}
.hours dl>div{display:flex;justify-content:space-between;gap:1rem;font-size:var(--step--1)}
.hours dt{color:var(--ink-2)}
.hours dd{margin:0;font-weight:600}

/* ---------- form ---------- */
.contact__form-wrap{
  padding:clamp(1.3rem,3vw,2.2rem);border-radius:var(--r-xl);
  background:var(--white);border:1px solid var(--line-2);display:grid;gap:.5rem;
}
.contact__form-wrap .h-sect{font-size:var(--step-2)}
.cform{display:grid;gap:1rem;margin-top:1rem}
.cform__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.cform__row{grid-template-columns:1fr}}
.field{display:grid;gap:.35rem}
.field__label{font-size:var(--step--1);color:var(--ink-2);font-weight:500}
.field__label em{color:#B3261E;font-style:normal}
.field__opt{color:var(--ink-3);font-weight:400}
.field input,.field textarea,.field select{
  width:100%;padding:.85em 1.05em;border-radius:var(--r-m);
  border:1px solid var(--line);background:var(--paper);
  font:inherit;font-size:var(--step-0);color:var(--ink);
  transition:border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease);
}
.field textarea{resize:vertical;min-height:120px;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--crema);background:var(--white);
  box-shadow:0 0 0 3px rgba(176,122,46,.14);
}
.field__select{position:relative;display:block}
.field__select select{appearance:none;padding-inline-end:2.4em;cursor:pointer}
.field__select svg{
  position:absolute;inset-inline-start:1rem;top:50%;translate:0 -50%;
  width:16px;height:16px;color:var(--ink-3);pointer-events:none;
}
.field.is-bad input,.field.is-bad textarea{border-color:#B3261E;background:#FDF3F2}
.field__err{font-size:.75rem;color:#B3261E}
.field.is-bad .field__err{min-height:1.2em}

.check{display:flex;align-items:flex-start;gap:.6rem;font-size:var(--step--1);color:var(--ink-2);cursor:pointer}
.check input{
  appearance:none;width:19px;height:19px;flex:none;margin-top:.1em;
  border:1px solid var(--line);border-radius:5px;background:var(--paper);
  display:grid;place-items:center;
  transition:background .2s var(--ease),border-color .2s var(--ease);
}
.check input:checked{background:var(--espresso);border-color:var(--espresso)}
.check input:checked::after{
  content:"";width:5px;height:9px;border:solid var(--cream);
  border-width:0 2px 2px 0;rotate:45deg;translate:0 -1px;
}
.check.is-bad input{border-color:#B3261E}
.check a{color:var(--crema);text-decoration:underline;text-underline-offset:2px}
.check span em{color:#B3261E;font-style:normal}

.cform__foot{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.3rem}
.cform__note{font-size:var(--step--1);color:var(--ink-3)}
.cform__note em{color:#B3261E;font-style:normal}
.cform__ok{
  padding:.9rem 1.1rem;border-radius:var(--r-m);
  background:#EAF6EC;border:1px solid #BFE0C6;color:#1E5B2A;font-size:var(--step--1);
}

/* honeypot — off-screen rather than display:none, which some bots skip */
.cform__hp{
  /* The honeypot used to be parked at left:-9999px. In an RTL document that is
     not off-screen, it is 9999px of scrollable page: the contact page came out
     11,383px wide and slid sideways under the finger. Clipped in place instead
     — invisible to a person, still filled in by a bot, no geometry at all. */
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

/* the same slot reports a failure, so the visitor is never left guessing */
.cform__ok.is-bad{background:#FDF3F2;border-color:#F0C4C0;color:#8E2018}

/* ==========================================================================
   Search results page
   ========================================================================== */
.searchpage__form{
  display:flex;gap:.5rem;margin-top:1.1rem;width:min(100%,520px);
}
.searchpage__form input[type=search]{
  flex:1;min-width:0;padding:.85em 1.15em;border-radius:var(--r-pill);
  border:1px solid var(--line);background:var(--surface);
  font:inherit;font-size:var(--step-0);color:var(--ink);
}
.searchpage__form input[type=search]::placeholder{color:var(--ink-3)}
.searchpage__form input[type=search]:focus{
  outline:none;border-color:var(--crema-lite);background:rgba(225,212,194,.12)}
.searchpage__form button{
  display:inline-flex;align-items:center;gap:.45rem;flex:none;cursor:pointer;
  padding:.85em 1.4em;border-radius:var(--r-pill);border:0;
  background:var(--accent);color:var(--on-accent);font:inherit;font-weight:600;
}
.searchpage__form button svg{width:16px;height:16px}
@media (max-width:520px){
  .searchpage__form button span{display:none}
  .searchpage__form button{padding:.85em 1.1em}
}

.search-none{
  display:grid;gap:1rem;justify-items:center;text-align:center;
  padding:clamp(2rem,5vw,3.5rem) 0;
}
.search-none h2{font-size:var(--step-1);font-weight:600;margin:0}
.search-none p{color:var(--ink-3);margin:0}
.search-none__chips{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center}
