/* ==========================================================================
   A Quality Pawn & Jewelry — shared stylesheet (round 2: heritage direction)
   Design tokens first. Every page links this one file.
   ========================================================================== */

:root {
  /* Color */
  --cream: #F4EFE4;          /* paper */
  --mat: #FBF8F1;            /* print mat + light text on dark */
  --green: #123A28;          /* bottle green: hero + footer */
  --forest: #1D5238;         /* links on cream */
  --gold: #BF9F62;           /* old gold: button fill, frames, rules */
  --gold-hover: #AD8E52;     /* ~6% darker */
  --gold-pale: #CBB07A;      /* small gold text on green */
  --gold-ink: #7E6230;       /* gold text on cream */
  --ink: #1C1B17;
  --walnut: #57524A;
  --rule: #D6CDB9;
  --rule-dark: rgba(203, 176, 122, 0.30);
  --on-green: rgba(244, 239, 228, 0.86);
  --on-green-soft: rgba(244, 239, 228, 0.76);
  --taupe-top: #8E8273;      /* reviews band: warm taupe (round 4) */
  --taupe-bottom: #62574B;
  --linen: #EBE4D4;          /* process band */
  --card: #F3F3F3;
  --star: #D9A441;

  /* Type */
  --font-head: "Josefin Sans", "Century Gothic", "Futura", system-ui, sans-serif;
  --font-text: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-script: "Great Vibes", "Snell Roundhand", cursive;
  --font-serif: "Cormorant Garamond", Georgia, serif;     /* coin numerals only */
  --fs-h1: clamp(2.125rem, 1.2rem + 3.2vw, 4rem);         /* 34 → 64 */
  --fs-h2: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);        /* 28 → 40 */
  --fs-h3: 1.25rem;                                       /* 20 */
  --fs-body: clamp(1.0625rem, 0.95rem + 0.3vw, 1.125rem); /* 17 → 18 */
  --fs-ui: 0.9375rem;                                     /* 15 */
  --fs-label: 0.8125rem;                                  /* 13 */
  --h1-measure: 12.2;        /* widest H1 line ("repair in Des Moines", 12.15em measured) in ems of --fs-h1 */
  --measure: 60ch;

  /* Layout */
  --container: 1180px;
  --gutter: clamp(20px, 12px + 2.2vw, 32px);
  --split-gap: clamp(48px, 7vw, 96px);
  --space-feature: clamp(72px, 9vw, 120px);
  --space-utility: clamp(56px, 6vw, 88px);
  --header-h: 72px;
  --tap: 44px;

  /* Motion */
  --ease: cubic-bezier(0.2, 0.6, 0.2, 1);
  --dur: 180ms;
}
@media (min-width: 860px) { :root { --header-h: 88px; } }

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: var(--fs-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
html.menu-open { overflow: hidden; }
h1, h2, h3, p, ul, dl, dd, figure, blockquote { margin: 0; }
ul { padding: 0; list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
main:focus { outline: none; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

:focus-visible { outline: 2px solid var(--forest); outline-offset: 3px; }
.hero :focus-visible,
.reviews :focus-visible,
.site-footer :focus-visible { outline-color: var(--mat); }

.skip-link {
  position: absolute;
  left: 16px;
  top: -120px;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  padding: 0 20px;
  background: var(--green);
  color: var(--mat);
  font: 500 var(--fs-ui)/1 var(--font-text);
  text-decoration: none;
}
.skip-link:focus { top: 12px; }

.container {
  width: 100%;
  max-width: calc(var(--container) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---------- Type roles: uppercase geometric headings ---------- */
.h2 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.12;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--ink);
}
.h2 span { display: block; }
.h3 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: var(--fs-h3);
  line-height: 1.2;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--gold-ink);
}
.eyebrow,
.footer-heading {
  font-family: var(--font-text);
  font-weight: 500;
  font-size: var(--fs-label);
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
p { text-wrap: pretty; }

/* ---------- Buttons + links: one square gold button ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 52px;
  padding: 0 32px;
  border: 1.5px solid var(--gold);
  border-radius: 0;
  background: var(--gold);
  color: var(--ink);
  font: 700 0.8125rem/1.2 var(--font-text);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.btn:hover { background: var(--gold-hover); border-color: var(--gold-hover); }
.btn-outline-light {
  background: transparent;
  border-color: var(--mat);
  color: var(--mat);
}
.btn-outline-light:hover { background: var(--mat); border-color: var(--mat); color: var(--green); }
.btn-outline-dark {
  background: transparent;
  border-color: var(--gold-ink);
  color: var(--ink);
}
.btn-outline-dark:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.btn-sm { min-height: var(--tap); padding: 0 22px; }
.nowrap { white-space: nowrap; }

.arrow { width: 16px; height: 16px; flex: none; transition: transform var(--dur) var(--ease); }
.btn:hover .arrow, .text-link:hover .arrow { transform: translateX(3px); }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: var(--tap);
  color: var(--forest);
  font: 700 0.8125rem/1.4 var(--font-text);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  text-decoration-color: var(--gold);
  transition: text-underline-offset var(--dur) var(--ease);
}
.text-link:hover { text-underline-offset: 8px; }

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--cream);
  border-bottom: 1px solid var(--rule);
}
.header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: var(--header-h);
}
.wordmark {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: var(--tap);
  text-decoration: none;
  color: var(--green);
}
.wordmark-name {
  font-family: var(--font-script);
  font-weight: 400;
  font-size: 2.5rem;
  line-height: 0.85;
  padding: 0 4px;
}
.wordmark-sub {
  align-self: stretch;
  margin-top: 4px;
  padding-top: 5px;
  border-top: 1px solid var(--gold);
  font: 700 0.75rem/1 var(--font-head);   /* 12px */
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  color: var(--gold-ink);
  white-space: nowrap;
}
@media (max-width: 859px) {
  .wordmark-name { font-size: 2.125rem; }
  .wordmark-sub { font-size: 0.6875rem; letter-spacing: 0.1em; }
}

.menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--tap);
  height: var(--tap);
  margin-right: -10px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--green);
  cursor: pointer;
}
.menu-toggle svg { width: 24px; height: 24px; }
.menu-toggle .icon-close, .is-open .menu-toggle .icon-menu { display: none; }
.is-open .menu-toggle .icon-close { display: block; }

.site-nav { display: none; }
.nav-list a { text-decoration: none; color: var(--ink); }

.is-open .site-nav {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: var(--header-h);
  left: 0;
  right: 0;
  bottom: 0;
  padding: 8px var(--gutter) 40px;
  background: var(--cream);
  overflow-y: auto;
}
.is-open .nav-list li { border-bottom: 1px solid var(--rule); }
.is-open .nav-list a {
  display: block;
  padding: 20px 0 16px;
  font: 700 1.5rem/1.2 var(--font-head);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
}
.is-open .nav-list a[aria-current="page"] { color: var(--gold-ink); }
.is-open .nav-cta { margin-top: 32px; width: 100%; min-height: 52px; }

/* Services dropdown. Mobile: an expandable group inside the menu panel. */
.sub-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: var(--tap);
  padding: 20px 0 16px;
  border: 0;
  background: none;
  color: var(--ink);
  font: 700 1.5rem/1.2 var(--font-head);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
}
.chev { width: 22px; height: 22px; flex: none; color: var(--gold-ink); transition: transform var(--dur) var(--ease); }
.sub-open .chev { transform: rotate(180deg); }
.sub-menu { display: none; }
.sub-open .sub-menu { display: block; }
.is-open .sub-menu { padding: 0 0 14px 2px; }
.is-open .nav-list .sub-menu li { border: 0; }
.is-open .nav-list .sub-menu a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0 0 0 16px;
  border-left: 1px solid var(--gold);
  font: 500 1.0625rem/1.2 var(--font-text);
  letter-spacing: 0.02em;
  text-transform: none;
}

@media (min-width: 860px) {
  .menu-toggle { display: none; }
  .site-nav, .is-open .site-nav {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px;
    position: static;
    padding: 0;
    background: none;
    overflow: visible;
  }
  .nav-list { display: flex; gap: 34px; }
  .nav-list li { border: 0; }
  .nav-list a {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap);
    font: 500 0.8125rem/1 var(--font-text);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 7px;
    transition: text-decoration-color var(--dur) var(--ease), color var(--dur) var(--ease);
  }
  .nav-list a:hover { color: var(--gold-ink); text-decoration-color: var(--rule); }
  .nav-list a[aria-current="page"] { color: var(--gold-ink); text-decoration-color: var(--gold); }

  .has-sub { position: relative; display: flex; }
  .sub-toggle {
    width: auto;
    gap: 6px;
    padding: 0;
    font: 500 0.8125rem/1 var(--font-text);
    letter-spacing: 0.12em;
    transition: color var(--dur) var(--ease);
  }
  .sub-toggle:hover, .sub-open .sub-toggle { color: var(--gold-ink); }
  .chev { width: 14px; height: 14px; }
  .sub-menu {
    position: absolute;
    top: calc(100% + (var(--header-h) - var(--tap)) / 2);   /* = header bottom edge */
    left: 0;
    z-index: 60;
    min-width: 236px;
    padding: 8px 0;
    background: var(--mat);
    border: 1px solid var(--rule);
    border-top: 2px solid var(--gold);
    border-radius: 0;
    box-shadow: 0 10px 24px rgba(28, 27, 23, 0.10);
  }
  /* invisible bridge so the pointer can travel from the button to the panel */
  .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -24px; height: 24px; }
  .nav-list .sub-menu a {
    display: flex;
    min-height: var(--tap);
    padding: 0 22px;
    font: 500 0.8125rem/1 var(--font-text);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-underline-offset: 5px;
  }
  .nav-list .sub-menu li + li a { border-top: 1px solid var(--rule); }
  .nav-list .sub-menu a:hover { background: var(--cream); text-decoration-color: transparent; }
}

/* Header phone + outline CTA (round 4): one gold-filled "Get an Offer" per screen */
.nav-phone {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  margin-top: 20px;
  color: var(--ink);
  font: 500 1.0625rem/1 var(--font-text);
  text-decoration: none;
}
.nav-phone .icon { width: 18px; height: 18px; color: var(--gold-ink); }
.site-header .nav-cta { background: transparent; color: var(--ink); border-color: var(--gold-ink); }
.site-header .nav-cta:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.is-open .nav-phone + .nav-cta { margin-top: 12px; }
@media (min-width: 860px) {
  .nav-phone { display: none; }
  .site-nav, .is-open .site-nav { gap: 32px; }
}
@media (min-width: 1080px) {
  .nav-phone {
    display: inline-flex;
    gap: 8px;
    min-height: var(--tap);
    margin: 0 -8px 0 0;
    font: 500 0.875rem/1 var(--font-text);
    letter-spacing: 0.01em;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 6px;
  }
  .nav-phone:hover { text-decoration-color: var(--gold); }
  .nav-phone .icon { width: 16px; height: 16px; }
  .site-nav, .is-open .site-nav { gap: 36px; }
}

/* ---------- Hero: one full-bleed band, text on the photo (600px+) ----------
   bench-wide-2050 = native bench photo; its left 642px is flat bottle green with a
   160px feather into the photo (no image content under the copy). The green fade
   ends just past the H1 so the photo's right side (face, hands, ring) is untinted.
   Under 600px the photo sits above the text, cropped short (16:10). */
.hero {
  position: relative;
  background: var(--green);
  color: var(--mat);
  overflow: hidden;
  /* right edge of the widest H1 line, used to keep the copy on the dense green */
  --copy-right: calc(max(var(--gutter), (100% - var(--container)) / 2) + var(--h1-measure) * var(--fs-h1));
}
.hero-media { position: relative; background: var(--green); }
.hero-media picture { display: block; }
.hero-media picture, .hero-img { width: 100%; height: 100%; }
.hero-img { object-fit: cover; object-position: 50% 100%; }
.hero-media::after {
  content: "";
  position: absolute;
  inset: -1px;
  pointer-events: none;
}
.eyebrow { color: var(--gold-pale); }
.hero-title {
  margin-top: 16px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.06;
  letter-spacing: 0.005em;
  text-transform: uppercase;
  color: var(--mat);
}
.hero-sub {
  margin-top: 20px;
  max-width: 62ch;
  color: var(--on-green);
  line-height: 1.6;
}
.actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 16px;
  margin-top: 30px;
}

@media (max-width: 599px) {
  :root { --fs-h1: clamp(1.875rem, 1.1rem + 3.2vw, 2.25rem); }   /* 30 -> 36 */
  .hero-media { aspect-ratio: 16 / 10; }
  .hero-media::after {
    background: linear-gradient(180deg, rgba(18, 58, 40, 0) 45%, rgba(18, 58, 40, 0.6) 78%, var(--green) 98%);
  }
  .hero-inner { padding-top: 4px; padding-bottom: 44px; }
  .hero-sub { margin-top: 16px; }
  .actions { margin-top: 26px; gap: 10px; }
  .actions .btn { padding: 0 15px; gap: 8px; letter-spacing: 0.08em; }
}

@media (min-width: 600px) {
  :root { --fs-h1: clamp(2.5rem, 1.2rem + 2.4vw, 3.5rem); }   /* 40 -> 56; 44 at 1024 */
  .hero-title span { display: block; }
  .hero-copy { max-width: max(30rem, var(--h1-measure) * var(--fs-h1)); }
  .hero {
    display: flex;
    align-items: center;
    /* header + hero + trust strip fit one screen (1366x768 shows the strip) */
    min-height: clamp(520px, min(52vw, 100svh - var(--header-h) - var(--facts-h) - 4px), 720px);
  }
  .hero-media { position: absolute; inset: 0; }
  .hero-img { object-position: 30% 50%; }
  .hero-media::after {
    --fade-a: max(36%, var(--copy-right) + 16px);
    background:
      linear-gradient(0deg, rgba(8, 24, 16, 0.38) 0, rgba(8, 24, 16, 0) 30%),
      linear-gradient(90deg,
        rgba(18, 58, 40, 0.96) 0,
        rgba(18, 58, 40, 0.88) var(--fade-a),
        rgba(18, 58, 40, 0) calc(var(--fade-a) + min(8%, 120px)));   /* ends before the face at every width */
  }
  .hero-inner { position: relative; z-index: 1; width: 100%; padding-block: 40px; }
}
@media (min-width: 900px) { .hero-img { object-position: 45% 50%; } }

/* ---------- Trust facts strip: 2 facts, one row at every width ---------- */
:root { --facts-h: 72px; }
.facts { border-bottom: 1px solid var(--rule); background: var(--cream); }
.facts-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.facts-list li {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  padding: 12px 10px;
  font: 700 0.8125rem/1.25 var(--font-head);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-align: center;
  color: var(--green);
}
.facts-list li + li { border-left: 1px solid var(--rule); }
@media (min-width: 1024px) {
  .facts-list li { min-height: var(--facts-h); padding: 0 8px; font-size: clamp(0.8125rem, 0.25rem + 0.85vw, 0.9375rem); white-space: nowrap; }
}

/* ---------- We Buy: "legacy" block, script watermark, seal (text only, no photo) ---------- */
.buy {
  position: relative;
  padding-block: calc(var(--space-feature) * 0.7) calc(var(--space-feature) + 24px);   /* round 4: pulled up toward the trust strip */
}
.legacy { display: grid; gap: 56px; isolation: isolate; }
.legacy-text { position: relative; }
.legacy-text::before {
  content: "Pawn";
  position: absolute;
  z-index: -1;
  left: -0.12em;
  top: -0.28em;
  font-family: var(--font-script);
  font-size: clamp(150px, 24vw, 330px);
  line-height: 1;
  color: var(--gold-ink);
  opacity: 0.07;
  pointer-events: none;
  white-space: nowrap;
}
.lede { margin-top: 26px; max-width: var(--measure); }
.lede-2 { margin-top: 16px; }
.link-row { display: flex; flex-wrap: wrap; gap: 4px 32px; }
.offerings { margin-top: 40px; margin-bottom: 24px; }
.offerings li { padding: 20px 0; border-top: 1px solid var(--rule); }
.offerings li:last-child { border-bottom: 1px solid var(--rule); }
.offerings p { margin-top: 6px; color: var(--walnut); }

/* Framed print: thin gold border, cream mat, soft shadow */
.print {
  padding: clamp(12px, 1.6vw, 20px);
  background: var(--mat);
  border: 2px solid var(--gold);
  box-shadow: 0 7px 14px rgba(28, 27, 23, 0.16);
}
.print img { width: 100%; object-fit: cover; }
.cta-media img { aspect-ratio: 1; }

/* No photo: the two offerings sit side by side once each column keeps ~400px */
@media (min-width: 1000px) {
  .offerings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(40px, 5vw, 72px); max-width: 960px; }
  .offerings li:last-child { border-bottom: 0; }
  .offerings { border-bottom: 1px solid var(--rule); }
}

.seal {
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 3;
  width: clamp(124px, 11vw, 164px);
  height: auto;
  transform: translate(-50%, 50%);
  filter: drop-shadow(0 6px 10px rgba(28, 27, 23, 0.25));
}
.seal-arc { font: 700 15px var(--font-head); letter-spacing: 3.2px; fill: var(--cream); }
.seal-arc-sm { font-size: 11.5px; letter-spacing: 2.6px; }
.seal-mid { font: 700 14.5px var(--font-head); letter-spacing: 2px; fill: var(--gold-pale); }

/* ---------- How a jewelry repair works: flat linen + contour, left-aligned ruled row ---------- */
.process {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: calc(var(--space-feature) + 40px) var(--space-feature);
  background: var(--linen);
  border-top: 1px solid var(--rule);
}
.process { text-align: center; }
.process .h2 { margin-inline: auto; text-align: center; }
.steps {
  display: grid;
  margin-top: 40px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--rule);
}
.step { display: grid; grid-template-columns: 1fr; justify-items: center; text-align: center; align-content: start; padding: 28px 0; }
.step + .step { border-top: 1px solid var(--rule); }
.step .coin { grid-row: auto; margin-inline: auto; }
.step p { text-align: center; }
.step-title {
  padding-top: 4px;
  text-wrap: balance;
  font: 700 1.0625rem/1.3 var(--font-head);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
}
.step p { margin-top: 8px; color: var(--walnut); font-size: 1rem; line-height: 1.6; text-wrap: pretty; }
.coin {
  position: relative;
  display: grid;
  place-items: center;
  width: 64px;
  aspect-ratio: 1;
  filter: drop-shadow(0 2px 2px rgba(70, 50, 18, 0.25));
}
.coin svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.coin-num {
  position: relative;
  font: 600 1.75rem/1 var(--font-serif);
  color: #5A4119;
  text-shadow: 0 1px 0 rgba(255, 244, 214, 0.6), 0 -1px 0 rgba(70, 50, 18, 0.3);
}
@media (min-width: 860px) {
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .step { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 32px 24px 8px 24px; }
  .step + .step { border-top: 0; border-left: 1px solid var(--rule); padding-left: 24px; }
  .step .coin { grid-row: auto; width: 72px; }
  .coin-num { font-size: 2rem; }
  .step-title { padding-top: 22px; }
}

/* ---------- Our services: intro + three round-photo columns (cream, own surface) ---------- */
.services {
  padding-block: var(--space-feature);
  background: var(--cream);
  border-top: 1px solid var(--rule);
}
.services-head { text-align: center; }
.services-head .h2 { margin-inline: auto; }
.services-intro { margin: 20px auto 0; max-width: 60ch; color: var(--walnut); text-wrap: pretty; }
.svc-grid {
  display: grid;
  gap: 56px;
  margin-top: 56px;
  padding: 0;
  list-style: none;
}
.svc { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 36ch; margin-inline: auto; }
.svc-photo {
  width: clamp(200px, 60vw, 240px);
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid var(--gold);
  outline: 1px solid var(--gold);       /* thin old-gold ring with a mat-coloured gap */
  outline-offset: 5px;
  background: var(--mat);
}
.svc-kicker {
  margin-top: 30px;
  font: 700 0.75rem/1 var(--font-text);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-ink);
}
.svc-title { margin-top: 10px; color: var(--ink); text-wrap: balance; }
.svc-text { flex-grow: 1; margin-top: 12px; color: var(--walnut); line-height: 1.6; text-wrap: pretty; }   /* pushes every card's link to the same baseline */
.svc .text-link { margin-top: 14px; }
.services-note { margin: 56px 0 0; max-width: none; text-align: left; color: var(--ink); line-height: 1.6; text-wrap: pretty; }
.services-visit { margin: 24px 0 0; font-family: var(--font-head); font-weight: 700; font-size: clamp(1.375rem, 1rem + 1.2vw, 1.875rem); line-height: 1.2; letter-spacing: 0.01em; text-transform: uppercase; text-align: left; color: var(--ink); }
@media (min-width: 860px) {
  .svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
  .svc-photo { width: clamp(220px, 19vw, 248px); }
}

/* ---------- FAQ: grouped accordion, native details, no JS needed ---------- */
.faq { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--space-feature); background: var(--linen); border-top: 1px solid var(--rule); }
.faq-head { max-width: none; }
.faq-intro { margin-top: 20px; color: var(--ink); line-height: 1.6; text-wrap: pretty; }
.faq-list { margin-top: 48px; border: none; }
.faq-item { border-bottom: none; }
.faq-q { display: flex; justify-content: flex-start; align-items: center; gap: 16px; padding: 24px 0; font-family: var(--font-head); font-weight: 700; font-size: 1.125rem; line-height: 1.3; text-transform: uppercase; letter-spacing: 0.01em; color: var(--ink); cursor: pointer; list-style: none; }
.faq-q::-webkit-details-marker { display: none; }
.faq-q::before { content: "+"; flex-shrink: 0; font-family: var(--font-text); font-weight: 700; font-size: 1.75rem; line-height: 1; color: var(--ink); }
.faq-item[open] .faq-q { color: var(--gold); }
.faq-item[open] .faq-q::before { content: "–"; color: var(--gold); }
.faq-a { padding: 0 0 24px; color: var(--ink); line-height: 1.6; text-wrap: pretty; }
.faq-close { margin-top: 48px; color: var(--ink); line-height: 1.6; text-wrap: pretty; }
.faq-close a { color: var(--forest); font-weight: 700; }
.faq-visit { margin-top: 24px; font-family: var(--font-head); font-weight: 700; font-size: clamp(1.375rem, 1rem + 1.2vw, 1.875rem); line-height: 1.2; text-transform: uppercase; color: var(--ink); }

/* ---------- Reviews: Google-style cards in a carousel ---------- */
.reviews {
  background: linear-gradient(180deg, var(--taupe-top) 0%, var(--taupe-bottom) 100%);
  color: var(--mat);
  padding-block: calc(var(--space-feature) + 24px) var(--space-feature);
}
.reviews-head { text-align: center; }
.reviews .h2 { color: #FFFFFF; }
.rating {
  margin-top: 12px;
  font: 700 1.1875rem/1.3 var(--font-text);   /* 19px bold = large text */
  color: #FFFFFF;
}
.carousel {
  position: relative;
  margin-top: 44px;
}
.review-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  padding: 4px 2px 14px;
  scroll-padding-inline: 2px;
}
.review-track::-webkit-scrollbar { display: none; }
.review-track:focus-visible { outline-offset: 2px; }
.review-card {
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  padding: 24px 28px 22px;
  background: var(--mat);
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(28, 27, 23, 0.18), 0 8px 24px rgba(28, 27, 23, 0.12);
  color: var(--ink);
}
.card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.card-name { font: 700 1rem/1.3 var(--font-text); }
.card-g { width: 22px; height: 22px; flex: none; }
.card-stars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 14px;
}
.stars { width: 104px; height: 20px; color: var(--star); }
.verified { width: 16px; height: 16px; }
.card-text {
  margin-top: 14px;
  font-size: 1rem;
  line-height: 1.6;
  text-align: center;
  color: var(--ink);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  overflow: hidden;
}
.card-text.is-expanded { display: block; -webkit-line-clamp: unset; line-clamp: none; overflow: visible; }
.read-more {
  align-self: center;
  min-height: var(--tap);
  margin-top: 2px;
  padding: 0 12px;
  border: 0;
  background: none;
  color: var(--forest);
  font: 500 0.875rem/1 var(--font-text);
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.read-more[hidden] { display: none; }

.car-btn {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #FFFFFF;
  color: var(--ink);
  box-shadow: 0 2px 8px rgba(28, 27, 23, 0.28);
  transform: translateY(-50%);
  cursor: pointer;
  transition: opacity var(--dur) var(--ease);
}
.car-btn svg { width: 22px; height: 22px; }
.car-btn:disabled { opacity: 0; pointer-events: none; }
/* below the cards, centered pair, until there is room outside the container */
.carousel { padding-bottom: 72px; }
.car-btn { top: auto; bottom: 0; transform: none; }
.car-prev { left: calc(50% - 58px); }
.car-next { right: calc(50% - 58px); }
@media (max-width: 759px) { .review-track { align-items: start; } }
@media (min-width: 1360px) {
  .carousel { padding-bottom: 0; }
  .car-btn { top: 50%; bottom: auto; transform: translateY(-50%); }
  .car-prev { left: -72px; }
  .car-next { right: -72px; }
}
.reviews .car-btn:focus-visible { outline-color: var(--ink); }


@media (min-width: 760px) {
  .review-track { grid-auto-columns: calc((100% - 24px) / 2); }
  .review-card { padding: 28px 36px 24px; }
}

/* ---------- Closing CTA (the contour texture rule below now dresses .process) ---------- */
.cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: var(--space-utility);
}
.process::before, .faq::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.07;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800'%3E%3Cg fill='none' stroke='%237E6230' stroke-width='1.2'%3E%3Cpath d='M657.2 400.0 L658.2 403.6 L657.5 407.2 L655.5 410.7 L652.5 413.9 L649.0 416.8 L645.2 419.5 L641.3 422.0 L637.2 424.5 L632.7 426.7 L627.8 428.5 L622.4 429.8 L616.7 430.5 L610.9 430.4 L605.3 429.8 L600.0 428.8 L595.1 427.8 L590.3 427.1 L585.3 426.8 L579.9 426.8 L573.8 426.9 L567.3 426.7 L560.7 425.9 L554.5 424.3 L549.5 421.7 L546.1 418.4 L544.5 414.6 L544.5 410.7 L545.7 406.8 L547.4 403.3 L549.2 400.0 L550.7 396.9 L551.9 393.9 L552.8 390.9 L553.9 387.8 L555.5 384.8 L557.8 381.9 L561.0 379.2 L564.9 376.9 L569.2 374.9 L573.8 373.1 L578.5 371.4 L583.3 369.6 L588.4 367.8 L594.0 366.1 L600.0 364.8 L606.4 364.2 L612.7 364.5 L618.7 366.0 L623.8 368.3 L627.8 371.5 L630.8 374.9 L632.9 378.3 L634.8 381.4 L636.9 384.1 L639.7 386.4 L643.2 388.6 L647.2 390.9 L651.3 393.5 L654.8 396.6 L657.2 400.0Z'/%3E%3Cpath d='M709.2 400.0 L711.1 406.9 L709.7 413.8 L705.3 420.3 L698.6 426.0 L690.8 431.0 L682.4 435.5 L674.2 439.6 L666.0 443.5 L657.8 447.2 L649.2 450.5 L640.0 453.2 L630.1 454.9 L620.0 455.6 L609.8 455.3 L600.0 454.3 L590.6 453.1 L581.3 452.1 L571.8 451.4 L561.5 451.2 L550.3 451.0 L538.4 450.3 L526.3 448.5 L515.3 445.2 L506.3 440.3 L500.4 434.1 L497.9 426.9 L498.6 419.5 L501.5 412.4 L505.5 405.9 L509.4 400.0 L512.4 394.5 L514.3 389.2 L515.3 383.7 L516.1 377.9 L517.7 371.8 L520.8 365.9 L525.7 360.3 L532.3 355.5 L540.4 351.4 L549.3 348.0 L558.7 345.0 L568.4 342.3 L578.4 339.8 L588.9 337.6 L600.0 335.9 L611.5 335.4 L622.9 336.3 L633.5 338.8 L642.8 343.0 L650.2 348.5 L655.8 354.5 L660.0 360.5 L663.8 366.0 L668.0 370.7 L673.5 374.9 L680.5 378.8 L688.6 382.9 L696.9 387.8 L704.2 393.5 L709.2 400.0Z'/%3E%3Cpath d='M763.3 400.0 L765.9 410.3 L763.3 420.6 L755.7 430.0 L744.5 438.1 L731.4 444.9 L717.7 450.7 L704.5 455.8 L692.2 460.7 L680.5 465.6 L668.7 470.6 L656.4 475.1 L643.2 478.7 L629.1 481.1 L614.6 482.1 L600.0 481.8 L585.7 480.8 L571.5 479.4 L557.1 478.2 L542.0 477.2 L525.9 476.1 L509.0 474.2 L492.2 470.9 L476.9 465.7 L464.6 458.3 L456.6 449.1 L453.4 438.7 L454.8 428.0 L459.5 417.7 L465.7 408.4 L471.7 400.0 L475.9 392.3 L478.1 384.6 L478.4 376.6 L478.2 367.9 L478.8 358.5 L481.8 349.1 L487.8 340.1 L497.1 332.3 L509.1 325.8 L522.9 320.9 L537.8 317.2 L553.1 314.4 L568.5 312.1 L584.1 310.2 L600.0 309.0 L616.2 308.9 L632.1 310.4 L647.2 313.9 L660.6 319.3 L671.7 326.4 L680.4 334.4 L687.4 342.5 L693.6 350.0 L700.5 356.7 L709.1 362.7 L719.8 368.4 L732.1 374.6 L744.7 381.8 L755.7 390.3 L763.3 400.0Z'/%3E%3Cpath d='M817.8 400.0 L820.7 413.7 L816.3 427.2 L805.1 439.5 L788.9 449.8 L770.0 458.2 L750.6 464.8 L732.4 470.7 L716.1 476.4 L701.3 482.6 L687.1 489.4 L672.4 496.3 L656.3 502.6 L638.6 507.6 L619.6 510.7 L600.0 511.8 L580.3 511.2 L560.7 509.4 L541.3 507.1 L521.5 504.5 L501.0 501.6 L480.1 497.8 L459.6 492.4 L440.8 484.9 L425.7 475.0 L415.8 463.0 L411.8 449.7 L413.5 435.9 L419.3 422.8 L427.1 410.8 L434.4 400.0 L439.4 390.0 L441.3 380.0 L440.5 369.3 L438.7 357.4 L437.9 344.6 L440.4 331.3 L447.5 318.6 L459.5 307.6 L475.9 298.8 L495.4 292.6 L516.4 288.8 L537.8 286.6 L558.9 285.4 L579.6 284.8 L600.0 284.6 L620.4 285.2 L640.5 287.2 L659.7 291.0 L677.4 297.0 L692.7 304.8 L705.5 314.0 L716.1 323.6 L725.8 332.9 L735.9 341.5 L747.8 349.4 L762.1 357.2 L778.1 365.7 L794.3 375.5 L808.4 387.0 L817.8 400.0Z'/%3E%3Cpath d='M870.9 400.0 L873.3 417.0 L866.8 433.6 L851.9 448.5 L830.7 460.9 L806.2 470.6 L781.4 478.1 L758.6 484.6 L738.6 491.3 L721.3 498.9 L705.1 507.9 L688.5 517.8 L669.9 527.5 L648.7 535.8 L625.1 541.6 L600.0 544.5 L574.4 544.3 L549.1 541.8 L524.5 537.6 L500.4 532.6 L476.4 526.9 L452.5 520.3 L429.4 512.3 L408.2 502.3 L390.8 490.1 L378.9 475.7 L373.4 459.8 L374.3 443.5 L380.0 427.7 L388.1 413.2 L395.7 400.0 L400.7 387.6 L402.0 375.1 L400.0 361.5 L396.6 346.3 L394.7 329.8 L397.0 312.6 L405.4 296.2 L420.7 282.0 L442.0 271.1 L467.5 264.1 L495.2 260.5 L523.1 259.7 L549.9 260.4 L575.5 261.6 L600.0 262.9 L624.1 264.3 L647.9 266.3 L671.4 269.8 L693.7 275.3 L714.0 283.0 L731.8 292.5 L747.3 303.0 L761.3 313.9 L775.2 324.6 L790.4 334.9 L807.5 345.2 L826.2 356.4 L844.8 369.2 L860.7 383.8 L870.9 400.0Z'/%3E%3Cpath d='M920.6 400.0 L921.8 420.0 L913.1 439.4 L894.9 456.8 L869.6 471.1 L840.4 482.3 L811.1 490.9 L784.2 498.3 L761.2 506.1 L741.7 515.6 L723.9 527.2 L705.5 540.4 L684.4 553.9 L659.5 566.0 L631.0 574.8 L600.0 579.5 L568.1 579.6 L537.0 575.7 L507.3 569.0 L479.4 560.5 L452.8 551.1 L427.1 541.0 L402.4 530.0 L379.6 517.6 L360.1 503.3 L345.8 487.0 L337.8 469.2 L336.2 450.8 L340.0 432.7 L346.8 415.8 L353.6 400.0 L357.9 384.9 L358.5 369.6 L355.7 353.0 L351.6 334.5 L349.4 314.3 L352.3 293.4 L362.9 273.5 L381.8 256.4 L408.4 243.8 L440.4 236.2 L474.9 233.4 L509.2 234.4 L541.6 237.3 L571.7 240.7 L600.0 243.5 L627.4 245.4 L654.9 247.1 L682.6 249.4 L710.0 253.5 L736.3 260.1 L760.4 269.2 L781.8 280.3 L800.9 292.8 L818.8 305.8 L836.8 319.0 L855.7 332.5 L875.5 347.0 L894.7 362.9 L910.7 380.6 L920.6 400.0Z'/%3E%3Cpath d='M965.0 400.0 L964.7 422.7 L954.2 444.6 L933.9 464.3 L905.8 480.7 L873.5 493.6 L840.8 503.7 L810.9 512.5 L785.4 522.0 L763.9 533.7 L744.3 548.1 L723.8 564.8 L699.9 582.2 L671.0 598.0 L637.2 609.8 L600.0 616.0 L561.7 615.9 L524.6 610.2 L490.3 600.1 L459.2 587.4 L430.8 573.6 L404.3 559.6 L379.0 545.4 L355.0 530.7 L333.4 514.8 L315.8 497.2 L303.7 478.2 L297.9 458.2 L297.8 438.1 L301.4 418.6 L306.2 400.0 L309.5 381.9 L309.8 363.5 L307.3 343.7 L304.0 321.9 L302.9 298.4 L307.8 274.2 L321.3 251.3 L344.6 231.9 L376.6 217.8 L414.9 210.0 L455.9 208.2 L496.3 210.9 L534.0 216.1 L568.3 221.5 L600.0 225.6 L630.6 227.7 L661.6 228.3 L693.9 228.8 L727.2 230.8 L760.2 235.5 L791.6 243.7 L819.8 255.3 L844.6 269.5 L866.4 285.3 L886.3 302.0 L905.6 319.4 L924.4 337.5 L942.2 356.9 L956.6 377.8 L965.0 400.0Z'/%3E%3Cpath d='M1003.1 400.0 L1001.3 425.0 L990.1 449.1 L969.2 471.1 L940.3 489.8 L906.7 504.9 L872.3 517.2 L840.4 528.2 L812.7 540.0 L788.9 554.1 L767.0 571.4 L743.9 591.5 L716.4 612.3 L683.0 631.3 L643.5 645.5 L600.0 652.7 L555.3 651.9 L512.6 643.8 L474.0 629.8 L440.3 612.5 L410.9 594.0 L384.3 575.9 L358.9 558.7 L333.8 542.0 L309.5 525.1 L287.5 506.9 L269.7 487.1 L257.6 465.9 L251.5 443.9 L250.5 421.8 L252.5 400.0 L254.8 378.5 L255.9 356.7 L255.3 333.6 L254.6 308.9 L256.7 282.5 L265.1 255.8 L282.6 230.6 L310.4 209.4 L347.7 194.2 L391.7 186.2 L438.6 185.1 L484.5 189.3 L526.9 196.2 L565.1 203.1 L600.0 207.9 L633.8 209.6 L668.6 208.7 L705.9 206.8 L745.6 206.2 L786.2 208.8 L825.5 216.1 L861.1 228.1 L891.6 244.4 L916.8 263.6 L937.6 284.5 L955.4 306.2 L971.4 328.5 L985.7 351.4 L997.0 375.3 L1003.1 400.0Z'/%3E%3Cpath d='M1034.6 400.0 L1032.0 426.9 L1021.4 453.1 L1002.0 477.4 L974.6 498.8 L941.9 517.0 L907.3 532.3 L874.1 546.2 L844.2 560.7 L817.6 577.5 L792.4 597.5 L765.5 620.2 L733.6 643.7 L695.0 664.9 L649.8 680.6 L600.0 688.1 L549.2 686.2 L501.3 675.3 L458.9 657.4 L423.1 635.4 L393.1 612.4 L366.6 590.4 L341.0 570.4 L314.5 552.3 L286.8 534.8 L259.2 516.6 L234.0 496.6 L213.8 474.4 L200.2 450.4 L193.5 425.3 L192.2 400.0 L194.2 374.7 L197.4 349.3 L200.8 323.1 L205.0 295.8 L212.4 267.4 L225.8 238.9 L248.1 212.2 L280.5 189.7 L322.5 173.6 L371.2 165.2 L422.8 164.2 L473.3 168.9 L519.9 176.6 L561.7 184.1 L600.0 188.9 L637.3 189.7 L676.4 187.0 L719.2 182.6 L765.7 179.4 L814.3 180.0 L861.7 186.5 L904.7 199.5 L940.6 218.3 L968.4 241.4 L988.8 267.0 L1003.6 293.5 L1015.0 320.1 L1024.2 346.6 L1031.2 373.1 L1034.6 400.0Z'/%3E%3Cpath d='M1060.3 400.0 L1057.9 428.5 L1049.7 456.6 L1034.0 483.6 L1010.5 508.3 L980.7 530.2 L947.2 549.5 L913.2 567.1 L880.7 584.7 L850.2 604.1 L820.3 626.2 L788.2 650.5 L751.0 675.3 L706.7 697.5 L655.6 713.6 L600.0 720.7 L543.7 717.2 L491.1 703.6 L445.3 682.1 L407.6 656.1 L376.9 629.0 L350.2 603.8 L324.0 581.7 L295.4 562.5 L263.3 545.0 L228.9 527.0 L195.1 506.8 L165.5 483.7 L143.4 457.5 L130.4 429.2 L126.1 400.0 L128.8 370.7 L135.9 341.5 L145.6 312.5 L157.1 283.1 L171.6 253.4 L191.4 224.1 L218.9 196.7 L255.6 173.3 L301.1 156.2 L353.2 146.7 L408.2 144.8 L462.3 148.8 L512.5 156.0 L558.0 163.0 L600.0 167.1 L641.4 166.6 L685.3 162.1 L734.0 155.6 L787.6 150.3 L844.0 149.6 L899.3 155.9 L949.1 170.3 L989.6 192.1 L1019.1 219.6 L1037.9 250.2 L1048.5 281.7 L1054.0 312.6 L1057.2 342.4 L1059.5 371.4 L1060.3 400.0Z'/%3E%3Cpath d='M1082.2 400.0 L1081.3 430.0 L1077.4 460.1 L1067.5 490.0 L1049.8 518.7 L1024.4 545.2 L992.9 569.2 L958.1 591.0 L922.2 612.0 L886.4 633.6 L850.2 656.8 L811.5 681.4 L767.8 706.0 L717.5 727.7 L660.8 743.0 L600.0 749.1 L539.0 744.0 L482.2 728.3 L433.3 704.0 L393.4 674.9 L361.4 644.9 L333.7 617.2 L305.9 593.6 L274.2 573.9 L236.8 556.4 L194.8 538.6 L151.7 518.3 L112.4 493.9 L81.6 465.3 L62.6 433.5 L56.2 400.0 L60.9 366.4 L73.8 333.7 L91.7 302.1 L112.5 271.4 L135.9 241.2 L162.9 211.8 L195.6 184.2 L235.6 160.2 L283.3 141.7 L337.2 130.2 L394.1 126.0 L450.7 127.8 L504.2 133.0 L553.6 138.4 L600.0 141.1 L646.2 139.4 L695.6 133.6 L750.3 125.8 L810.8 119.5 L874.4 118.3 L936.8 125.3 L992.4 141.7 L1036.6 167.0 L1066.9 199.0 L1083.4 234.6 L1089.0 271.0 L1088.2 306.0 L1085.2 338.9 L1083.0 369.9 L1082.2 400.0Z'/%3E%3Cpath d='M1102.8 400.0 L1104.9 431.4 L1106.8 463.8 L1104.3 497.1 L1093.9 530.3 L1073.8 562.1 L1044.6 591.4 L1008.3 617.9 L967.9 642.1 L925.2 665.2 L881.0 688.4 L834.3 711.8 L783.4 734.5 L727.0 754.2 L665.2 767.8 L600.0 772.4 L535.0 766.2 L474.7 749.2 L422.6 723.6 L380.0 692.9 L345.5 661.2 L315.5 632.1 L284.7 607.5 L248.8 587.4 L205.6 569.8 L155.8 552.0 L103.6 531.0 L55.0 504.9 L16.3 473.5 L-7.7 437.8 L-15.0 400.0 L-6.8 362.2 L13.5 326.1 L41.3 292.4 L72.7 260.9 L105.8 230.9 L140.2 202.1 L177.6 174.6 L219.9 149.8 L268.2 129.3 L322.1 114.7 L379.6 106.7 L438.0 104.5 L494.6 106.3 L548.4 109.0 L600.0 110.0 L651.9 107.4 L707.1 101.3 L768.0 93.6 L834.6 87.7 L904.4 87.5 L972.5 96.2 L1032.7 115.2 L1079.5 144.1 L1109.9 180.5 L1123.8 220.8 L1124.8 261.5 L1118.1 300.2 L1109.7 335.8 L1104.0 368.6 L1102.8 400.0Z'/%3E%3Cpath d='M1125.3 400.0 L1131.7 433.1 L1140.5 468.1 L1146.2 505.2 L1143.5 543.4 L1128.8 580.9 L1101.3 615.8 L1062.8 646.9 L1016.3 674.0 L965.2 697.8 L911.5 719.7 L855.7 740.3 L797.2 759.6 L734.9 776.1 L668.7 787.3 L600.0 790.5 L531.9 783.9 L468.3 767.0 L412.6 741.7 L366.2 711.1 L327.9 679.3 L293.8 649.8 L258.7 624.6 L217.7 604.0 L168.3 585.8 L111.4 567.2 L51.2 544.8 L-5.2 516.5 L-50.1 481.9 L-77.5 442.2 L-84.3 400.0 L-71.3 358.2 L-42.7 319.0 L-4.2 283.7 L38.5 251.8 L81.2 222.5 L122.7 194.5 L163.9 167.3 L206.9 141.3 L254.2 117.9 L306.7 98.9 L363.7 85.5 L423.4 77.9 L483.4 75.0 L542.3 74.4 L600.0 73.7 L658.4 71.0 L719.8 65.9 L786.4 60.0 L858.2 56.3 L932.7 58.5 L1004.8 69.9 L1068.0 92.0 L1116.6 124.3 L1146.9 164.5 L1158.9 208.8 L1156.2 253.2 L1145.2 295.0 L1133.1 332.9 L1125.5 367.3 L1125.3 400.0Z'/%3E%3Cpath d='M1153.0 400.0 L1164.4 435.2 L1180.3 473.1 L1194.0 514.4 L1198.4 557.9 L1188.2 601.2 L1161.5 641.7 L1119.3 677.1 L1065.6 706.4 L1004.6 730.0 L940.4 749.4 L874.9 766.0 L808.7 780.6 L741.0 793.0 L671.2 801.5 L600.0 803.8 L529.4 797.8 L462.7 782.9 L402.7 759.8 L351.2 731.2 L307.1 700.6 L267.2 671.5 L226.4 645.9 L179.8 624.2 L124.8 604.6 L62.0 584.1 L-4.1 559.4 L-65.8 528.2 L-114.7 490.0 L-143.5 446.3 L-148.4 400.0 L-129.9 354.5 L-92.7 312.8 L-43.7 276.1 L9.5 244.2 L61.2 215.6 L108.6 188.4 L152.2 161.1 L194.8 133.3 L239.7 106.1 L289.7 81.5 L345.6 61.4 L406.5 47.2 L470.4 38.7 L535.2 34.5 L600.0 32.6 L665.5 30.8 L733.3 28.5 L804.9 26.3 L880.5 26.7 L957.8 32.7 L1032.1 47.6 L1097.2 72.8 L1146.9 108.2 L1177.6 151.3 L1189.0 198.5 L1184.8 245.7 L1171.9 289.9 L1158.3 329.7 L1150.8 365.7 L1153.0 400.0Z'/%3E%3Cpath d='M1188.8 400.0 L1205.1 437.7 L1227.3 479.0 L1247.6 524.7 L1257.4 573.5 L1250.1 622.4 L1222.5 668.0 L1175.5 707.1 L1113.3 737.8 L1041.8 760.4 L966.6 776.3 L891.5 787.9 L817.8 797.3 L745.4 805.3 L672.9 811.3 L600.0 813.4 L527.4 809.5 L457.2 798.2 L392.0 779.3 L333.7 754.4 L282.1 726.3 L234.7 698.0 L187.1 671.7 L135.0 648.1 L75.4 625.9 L8.9 602.2 L-60.1 574.2 L-124.1 539.4 L-174.1 497.5 L-202.4 450.0 L-204.4 400.0 L-180.5 351.4 L-135.5 307.4 L-77.5 269.6 L-15.3 237.6 L43.6 209.6 L95.4 182.7 L140.2 154.6 L181.1 124.3 L222.9 92.5 L270.0 61.3 L324.8 33.7 L387.3 12.1 L455.7 -2.3 L527.3 -9.8 L600.0 -12.2 L673.0 -11.5 L746.8 -9.4 L822.6 -5.9 L900.4 0.2 L978.7 11.3 L1053.6 30.0 L1119.3 58.2 L1170.3 95.7 L1202.5 140.6 L1215.5 189.4 L1212.7 238.4 L1200.9 284.3 L1188.6 325.9 L1183.2 363.7 L1188.8 400.0Z'/%3E%3Cpath d='M1234.6 400.0 L1254.9 440.8 L1281.4 485.8 L1305.7 535.9 L1318.5 589.6 L1311.8 643.5 L1281.6 693.4 L1228.6 735.4 L1157.4 766.9 L1075.3 787.7 L989.4 799.7 L905.1 806.1 L824.9 810.1 L748.5 814.0 L674.2 818.1 L600.0 821.2 L525.4 820.9 L451.2 814.8 L379.8 801.6 L313.2 781.7 L252.3 756.8 L196.0 729.5 L141.1 702.0 L83.9 675.4 L21.7 649.0 L-45.6 620.9 L-114.2 588.4 L-177.0 549.6 L-225.5 504.0 L-251.6 453.0 L-250.4 400.0 L-221.9 348.8 L-171.1 302.9 L-106.6 264.0 L-38.2 231.6 L25.7 203.5 L80.2 176.2 L125.0 146.5 L163.8 112.9 L202.4 75.7 L246.9 37.6 L301.1 2.1 L366.0 -26.8 L439.7 -46.8 L518.9 -57.1 L600.0 -58.8 L680.6 -54.3 L760.0 -46.0 L838.7 -35.3 L917.2 -22.2 L994.8 -5.3 L1068.9 17.6 L1134.8 48.0 L1187.5 86.5 L1223.1 131.7 L1240.5 180.9 L1242.4 230.5 L1235.3 277.7 L1227.0 321.0 L1225.3 361.1 L1234.6 400.0Z'/%3E%3C/g%3E%3C/svg%3E") no-repeat 70% 50% / max(1200px, 110%) auto;
}
.cta-grid { display: grid; gap: 40px; }
.cta-text .h2 { max-width: 22ch; }
.cta-line { margin-top: 20px; max-width: 46ch; color: var(--walnut); }
.actions-cta { margin-top: 32px; }
.cta-media { width: 100%; max-width: none; }
@media (max-width: 599px) {
  .actions-cta .btn { flex: 1 1 100%; }
}
@media (min-width: 600px) and (max-width: 899px) { .cta-media { max-width: 420px; } }
@media (min-width: 900px) {
  .cta-grid {
    grid-template-columns: minmax(0, 6fr) minmax(0, 4fr);
    gap: var(--split-gap);
    align-items: center;
  }
  .cta-media { max-width: 400px; justify-self: end; }
}

/* ---------- Footer ----------
   Agency-style: on the 1180 container, four content-hugging columns spread with
   space-between (first column flush left, hours table flush right), every column
   starting on the same top line. Mid-size wordmark. Hours as a ruled table.
   Tap targets stay 44px; negative block margins keep the visual rhythm tight. */
.site-footer {
  background: var(--green);
  color: var(--on-green-soft);
  font-size: 0.9375rem;
  line-height: 1.6;
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 20px;
  align-items: start;
  padding: 40px 0 28px;
}
.footer-brand, .footer-col:last-child { grid-column: 1 / -1; }
.footer-heading {
  margin-bottom: 16px;
  font-family: var(--font-text);
  font-weight: 700;
  font-size: 0.8125rem;
  line-height: 1;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.footer-brand .wordmark { align-items: flex-start; min-height: 0; }
.wordmark-light { color: var(--mat); }
.wordmark-light .wordmark-sub { color: var(--gold-pale); border-top-color: var(--rule-dark); text-align: left; }
.footer-brand .wordmark-name { font-size: 2.5rem; line-height: 0.8; padding: 0 2px 0 0; }
.footer-brand .wordmark-sub { margin-top: 7px; padding-top: 6px; font-size: 0.75rem; letter-spacing: 0.14em; }
.footer-blurb { margin-top: 18px; max-width: 44ch; color: var(--on-green); }
.footer-social {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: var(--tap);
  margin: 4px 0 -12px;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--mat);
  text-decoration: none;
}
.footer-social .icon { width: 15px; height: 15px; }
.footer-social span {
  text-decoration: underline;
  text-decoration-color: var(--rule-dark);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.footer-social:hover span { text-decoration-color: var(--gold-pale); }
.icon { width: 15px; height: 15px; flex: none; color: var(--gold-pale); }

.footer-links a, .footer-contact a, .footer-base a {
  display: inline-flex;
  min-width: var(--tap);
  align-items: center;
  min-height: var(--tap);
  margin-block: -11px;
  color: var(--mat);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: text-decoration-color var(--dur) var(--ease);
}
.footer-links li + li { margin-top: 9px; }
.footer-links a:hover, .footer-contact a:hover, .footer-base a:hover { text-decoration-color: var(--gold-pale); }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; }
.footer-contact li + li { margin-top: 14px; align-items: center; }
.footer-contact li:first-child .icon { margin-top: 3px; }
.footer-contact span { color: var(--mat); }

/* Hours: a ruled two-column table, day left, time right */
.hours { width: 100%; max-width: none; border-bottom: 1px solid rgba(203, 176, 122, 0.18); }
.hours div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 4px 0;
  border-top: 1px solid rgba(203, 176, 122, 0.18);
}
.hours dd { color: var(--mat); font-variant-numeric: tabular-nums; text-align: right; }

.footer-base {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 32px;
  min-height: 56px;
  padding-block: 14px;
  border-top: 1px solid var(--rule-dark);
  font-size: 0.8125rem;
}
.footer-base a { margin-block: -12px; }
@media (max-width: 599px) {
  .footer-base { flex-direction: column; align-items: flex-start; padding-block: 14px 18px; gap: 4px; }
}
@media (min-width: 1000px) {
  .footer-grid {
    grid-template-columns: minmax(0, 340px) auto auto minmax(260px, 290px);
    justify-content: space-between;
    column-gap: 48px;
    padding: 88px 0 72px;
  }
  .footer-brand, .footer-col:last-child { grid-column: auto; }
  .footer-blurb { max-width: 34ch; }
  .footer-heading { margin-bottom: 20px; }
  .footer-col:not(.footer-brand) { padding-top: var(--footer-col-nudge, 6px); }
  .hours div { padding: 5px 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- Repair page visit block: address, hours, call and text ---------- */
.visit { padding-block: var(--space-feature); background: var(--cream); border-top: 1px solid var(--rule); }
.visit-grid { display: grid; gap: 40px; }
.visit-line { margin-top: 20px; max-width: 46ch; color: var(--walnut); line-height: 1.6; }
.visit-hours { padding-top: 6px; }
.visit-hours-list { margin-top: 16px; width: 100%; max-width: 360px; border-bottom: 1px solid var(--rule); }
.visit-hours-list div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-top: 1px solid var(--rule); }
.visit-hours-list dd { font-variant-numeric: tabular-nums; text-align: right; }
.visit-address { margin-top: 20px; line-height: 1.6; }
@media (min-width: 900px) {
  .visit-grid { grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); gap: var(--split-gap); align-items: start; }
}
