/* sitekit base: the pieces every design uses unchanged. Designs set the tokens and may override any rule.
   --kit-accent: call bar / announcement background   --kit-accent-fg: text on it   --kit-font: inherit */
:root { --kit-accent: #111; --kit-accent-fg: #fff; --kit-font: inherit; --wrap: 1120px; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
img, svg, video { max-width: 100%; height: auto; }
.wrap { width: min(var(--wrap), 100% - 32px); margin-inline: auto; }
.skip { position: absolute; left: -999px; top: 8px; z-index: 200; padding: 8px 12px; background: #000; color: #fff; }
.skip:focus { left: 8px; }
.announce { background: var(--kit-accent); color: var(--kit-accent-fg); font: 600 15px/1.4 var(--kit-font); text-align: center; }
.announce p { margin: 0; padding: 10px 0; }
/* The call bar: phone widths only, pinned to the bottom, one tap to call and one to Facebook. Pages get bottom
   padding so nothing hides behind it. */
.callbar { display: none; }
@media (max-width: 759px) {
  body:has(> .callbar) { padding-bottom: 68px; }  /* only when a design renders the call bar */
  .callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9; display: flex; align-items: stretch; background: var(--kit-accent); color: var(--kit-accent-fg); font: 14px/1.2 var(--kit-font); }
  .callbar a { color: inherit; text-decoration: none; display: flex; align-items: center; }
  .callbar-call { flex: 1; justify-content: space-between; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .callbar-call b { font-size: 19px; letter-spacing: .04em; }
  .callbar-fb { width: 60px; justify-content: center; border-left: 1px solid rgba(255,255,255,.2); padding-bottom: env(safe-area-inset-bottom); }
  .callbar-fb svg { width: 24px; height: 24px; }
}
[data-open][data-state="open"] { color: #3ad17a; }
[data-open][data-state="closed"] { color: #ff8a80; }
.form { display: grid; gap: 14px; }
.form label { display: grid; gap: 6px; font-weight: 600; }
.form input, .form textarea, .form select { font: inherit; padding: 10px 12px; border: 1px solid rgba(0,0,0,.25); border-radius: 4px; width: 100%; }
.form-row { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
@media (max-width: 559px) { .form-row { grid-template-columns: 1fr; } }
.form .hp { position: absolute; left: -9999px; }
.form-note { font-size: 14px; opacity: .8; }
.form-captcha { min-height: 78px; }
.form-captcha > div { max-width: 100%; }
@media print { .callbar, .announce, .skip { display: none; } }
/* Netlify's free-tier badge is an iframe it injects at runtime; it is not part of the site. */
#nl-hud-frame, #nl-badge-frame { display: none !important; }
/* theme switch: the button shows the icon of the scheme you would switch TO */
.theme-toggle { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1.5px solid currentColor; border-radius: 999px; background: transparent; color: inherit; cursor: pointer; }
.theme-toggle svg { width: 20px; height: 20px; }
.theme-toggle .theme-sun { display: none; }
:root[data-theme="dark"] .theme-toggle .theme-sun { display: block; }
:root[data-theme="dark"] .theme-toggle .theme-moon { display: none; }
