/* Design D: botanical cream. Matches the printed menus (cream paper, deep brown serif,
   script "Nina's Nails", thin gold lines, rose-beige price pills, sage leaves). */
:root {
  --cream: #f6eee5;
  --cream-2: #efe2d4;
  --paper: #fcf8f3;
  --ink: #3b2215;
  --brown: #5c3721;
  --gold: #b08656;
  --gold-soft: #d8bf9f;
  --rose: #ead3c3;
  --sage: #6c765a;
  --muted: #7b6253;
  --line: rgba(176, 134, 86, .38);
  --shadow: 0 14px 40px -22px rgba(92, 55, 33, .45);
  --r: 22px;
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --script: "Great Vibes", "Snell Roundhand", cursive;
  --sans: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;
  --leaf: url("../img/sprig.svg");
  --blush: #f1d9cf;
  --blush-2: #e6bfb0;
  --sage-bg: #e4e8d9;
  --sage-dk: #56644a;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--cream); color: var(--ink);
  font: 400 17px/1.7 var(--sans); padding-bottom: 76px;
}
img, svg, iframe { display: block; max-width: 100%; }
a { color: var(--brown); text-decoration-color: var(--gold-soft); text-underline-offset: 3px; }
a:hover { color: var(--gold); }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; color: var(--ink); line-height: 1.15; margin: 0 0 .5em; letter-spacing: .005em; }
h1 { font-size: clamp(2.1rem, 6.4vw, 3.6rem); }
h2 { font-size: clamp(1.65rem, 4.6vw, 2.35rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; }
.wrap { width: min(1160px, 100% - 32px); margin-inline: auto; }
.muted { color: var(--muted); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: var(--paper); padding: 8px 14px; border-radius: 8px; z-index: 99; }
.skip:focus { left: 12px; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* header */
.site-header { position: sticky; top: 0; z-index: 30; background: rgba(246, 238, 229, .9); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.hdr { display: flex; align-items: center; gap: 16px; min-height: 72px; }
.brand { text-decoration: none; color: var(--ink); margin-right: auto; }
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-name { font-family: var(--script); font-size: 2.15rem; color: var(--brown); line-height: 1.05; }
.heart { font-family: var(--sans); font-size: .9rem; margin-left: 4px; color: #c98b7c; vertical-align: super; }
.brand-sub { font-size: .66rem; letter-spacing: .32em; text-transform: uppercase; color: var(--muted); margin-top: 2px; }
.nav-desk { display: none; }
.site-header .hdr-call { display: none; }
.nav-mob { position: relative; }
.nav-mob summary { list-style: none; cursor: pointer; width: 44px; height: 44px; display: grid; place-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 50%; }
.nav-mob summary::-webkit-details-marker { display: none; }
.nav-mob summary span { width: 18px; height: 1.5px; background: var(--brown); display: block; }
.nav-mob nav { position: absolute; right: 0; top: 54px; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 10px; min-width: 220px; box-shadow: var(--shadow); display: grid; }
.nav-mob nav a { padding: 10px 14px; border-radius: 12px; text-decoration: none; color: var(--ink); }
.nav-mob nav a:hover, .nav-mob nav a[aria-current] { background: var(--cream-2); }

/* buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px;
  padding: 12px 24px; border-radius: 999px; border: 1px solid var(--brown);
  background: var(--brown); color: var(--paper); font: 500 .95rem/1.2 var(--sans); letter-spacing: .04em;
  text-decoration: none; transition: background .2s, color .2s, transform .2s;
}
.btn:hover { background: var(--ink); color: var(--paper); transform: translateY(-1px); }
.btn-ghost { background: rgba(241,217,207,.55); color: var(--brown); border-color: var(--blush-2); }
.btn-ghost:hover { background: var(--blush-2); color: var(--ink); }
.btn-sm { min-height: 40px; padding: 8px 18px; font-size: .88rem; }
.btn-off { background: var(--cream-2); color: var(--muted); border-color: var(--line); cursor: default; }
.btn-off:hover { background: var(--cream-2); color: var(--muted); transform: none; }
.cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0; }
.cta-row.center { justify-content: center; }

/* hero */
.hero { position: relative; overflow: hidden; padding: 34px 0 44px; border-bottom: 1px solid var(--line);
  background: radial-gradient(90% 70% at 80% 20%, #f7e3da 0%, transparent 65%), radial-gradient(70% 60% at 0% 100%, var(--sage-bg) 0%, transparent 70%), linear-gradient(180deg, var(--cream) 0%, var(--blush) 100%); }
.hero::before { content: ""; position: absolute; width: 170px; height: 255px; left: -60px; top: -30px; background: var(--leaf) no-repeat center / contain; transform: rotate(160deg) scaleX(-1); pointer-events: none; opacity: .95; }
.hero::after { content: ""; position: absolute; width: 170px; height: 255px; right: -40px; bottom: -40px; background: var(--leaf) no-repeat center / contain; transform: rotate(-12deg); pointer-events: none; opacity: .95; }
.hero-grid { position: relative; display: grid; gap: 28px; align-items: center; }
.hero h1 { font-weight: 600; }
.lede p { font-size: 1.08rem; color: var(--brown); }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; padding: 0; margin: 0 0 14px; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.crumbs li + li::before { content: "·"; margin-right: 6px; color: var(--gold); }
.crumbs a { color: var(--muted); text-decoration: none; }
.trust { list-style: none; padding: 18px 0 0; margin: 8px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px 18px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--muted); }
.trust strong { display: block; font-family: var(--serif); font-size: 1.6rem; color: var(--sage-dk); line-height: 1.1; }

/* photos */
.photo { margin: 0; }
.hero-duo { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: end; max-width: 460px; width: 100%; justify-self: center; }
.hero-duo .photo.arch { max-width: none; }
.hero-duo .photo.arch:last-child { margin-bottom: 40px; }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.photo.arch { border-radius: 999px 999px var(--r) var(--r); overflow: hidden; border: 1px solid var(--gold-soft); box-shadow: var(--shadow); aspect-ratio: 3 / 4; max-width: 380px; justify-self: center; outline: 1px solid var(--gold-soft); outline-offset: 8px; }
.photo.arch.wide { aspect-ratio: 16 / 9; max-width: none; border-radius: var(--r); outline: none; }
.photo-slot { aspect-ratio: 3 / 4; max-width: 380px; width: 100%; justify-self: center; border-radius: 999px 999px var(--r) var(--r); background: linear-gradient(160deg, var(--paper), var(--rose)); border: 1px solid var(--gold-soft); display: grid; place-items: center; outline: 1px solid var(--gold-soft); outline-offset: 8px; }
.photo-slot svg { width: 34%; opacity: .35; color: var(--brown); }
.photo-slot.wide { aspect-ratio: 16 / 7; max-width: none; border-radius: var(--r); outline: none; }
.photo-slot.wide svg { width: 90px; }

/* content */
.content { padding: 40px 0 16px; }
.qa, .faq, .related, .nap { margin: 0 0 56px; }
.qa > h2::after, .faq > h2::after, .related > h2::after { content: ""; display: block; width: 64px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--sage), var(--blush-2)); margin-top: 14px; }
.answer-capsule { font-size: 1.1rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-left: 5px solid var(--blush-2); border-radius: var(--r); padding: 22px 24px; box-shadow: var(--shadow); }
.qa > p:not(.answer-capsule) { color: var(--brown); }

.loc-grid { display: grid; gap: 18px; margin: 22px 0; }
.loc-card { position: relative; background: var(--paper); border: 1px solid var(--line); border-top: 6px solid var(--sage); border-radius: var(--r); padding: 26px 24px 20px; box-shadow: var(--shadow); }
.loc-grid .loc-card:nth-child(2) { border-top-color: var(--blush-2); background: linear-gradient(180deg, #fbefe9, var(--paper) 40%); }
.loc-card h3 { font-size: 1.6rem; margin-top: 8px; }
.loc-card h3 a { text-decoration: none; color: var(--ink); }
.loc-card h3 a:hover { color: var(--gold); }
.loc-card p { margin-bottom: .6em; }
.loc-card .areas { font-size: .88rem; color: var(--sage); border-top: 1px solid var(--line); padding-top: 10px; }
.badge { display: inline-block; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; background: var(--rose); color: var(--brown); margin: 0; }
.badge-ok { background: var(--sage); color: #fff; }

.svc-grid { display: grid; gap: 14px; margin-top: 22px; }
.svc-card { display: flex; flex-direction: column; gap: 4px; padding: 20px 22px; border-radius: var(--r); background: var(--paper); border-left: 5px solid var(--sage) !important; border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: transform .2s, box-shadow .2s, border-color .2s; }
.svc-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); border-color: var(--gold); color: var(--ink); }
.svc-name { font-family: var(--serif); font-size: 1.35rem; font-weight: 600; }
.svc-desc { font-size: .92rem; color: var(--muted); }
.svc-card:nth-child(even) { background: #fbefe9; border-left-color: var(--blush-2) !important; }
.svc-card:nth-child(3n) { background: #f1f3ea; }
.svc-all, .svc-all:nth-child(n) { background: var(--sage-dk); border-color: var(--sage-dk); }
.svc-all .svc-name, .svc-all .svc-desc { color: var(--paper); }
.svc-all:hover { border-color: var(--ink); }

.stats { list-style: none; padding: 0; margin: 24px 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.stats li { background: var(--sage-bg); border: 1px solid rgba(108,118,90,.25); border-radius: var(--r); padding: 18px; text-align: center; }
.stats li:nth-child(even) { background: var(--blush); border-color: rgba(230,191,176,.6); }
.stats b { display: block; font-family: var(--serif); font-size: 2.2rem; color: var(--sage-dk); line-height: 1.1; }
.stats span { font-size: .85rem; color: var(--muted); }

/* price list, styled like the printed menus */
.prices { margin: 26px 0; background: var(--paper); border: 1px solid var(--gold-soft); border-radius: 26px; padding: 26px 20px 14px; box-shadow: var(--shadow); position: relative; overflow: hidden; }
.prices::after { content: ""; position: absolute; right: -30px; top: -26px; width: 110px; height: 165px; background: var(--leaf) no-repeat center / contain; transform: rotate(200deg); pointer-events: none; opacity: .9; }
.prices h3 { text-align: center; font-size: .82rem; font-family: var(--sans); font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--brown); margin-bottom: 14px; }
.prices table, .hours { width: 100%; border-collapse: collapse; }
.prices th, .prices td, .hours th, .hours td { text-align: left; padding: 12px 4px; border-bottom: 1px solid var(--line); vertical-align: top; font-weight: 400; }
.prices th { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; }
.prices td, .hours td { text-align: right; white-space: nowrap; }
.prices tr:last-child > *, .hours tr:last-child > * { border-bottom: 0; }
.p-note { display: block; font-family: var(--sans); font-size: .86rem; font-weight: 400; color: var(--muted); margin-top: 2px; line-height: 1.5; }
.pill { display: inline-block; background: var(--blush-2); color: var(--ink); font-family: var(--serif); font-weight: 700; font-size: 1.15rem; padding: 3px 14px; border-radius: 12px; }

.menu-fig { margin: 22px auto; max-width: 440px; }
.menu-fig img { width: 100%; height: auto; border-radius: 18px; box-shadow: var(--shadow); border: 1px solid var(--gold-soft); }
.menu-fig figcaption { text-align: center; font-size: .85rem; color: var(--muted); margin-top: 10px; }
.menu-grid { display: grid; gap: 8px; }

/* reviews carousel */
.reviews { padding: 56px 0 44px; background: linear-gradient(180deg, var(--blush), #f6e6dd); border-block: 1px solid var(--blush-2); position: relative; overflow: hidden; }
.reviews::before { content: ""; position: absolute; left: -50px; bottom: -40px; width: 180px; height: 270px; background: var(--leaf) no-repeat center / contain; transform: rotate(20deg); pointer-events: none; }
.reviews::after { content: ""; position: absolute; right: -50px; top: -40px; width: 160px; height: 240px; background: var(--leaf) no-repeat center / contain; transform: rotate(200deg); pointer-events: none; }
.reviews .wrap { position: relative; z-index: 1; }
.reviews h2 { text-align: center; }
.eyebrow { text-align: center; font-size: .78rem; letter-spacing: .3em; text-transform: uppercase; color: var(--sage-dk); margin-bottom: 8px; }
.rev-car { position: relative; margin-top: 26px; }
.rev-track { display: grid; grid-auto-flow: column; grid-auto-columns: 86%; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 2px 18px; scrollbar-width: none; overscroll-behavior-x: contain; }
.rev-track::-webkit-scrollbar { display: none; }
.rev { scroll-snap-align: start; margin: 0; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 26px 24px 22px; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.stars { color: #c9973f; letter-spacing: .2em; font-size: 1rem; }
.rev blockquote { margin: 12px 0 18px; font-family: var(--serif); font-size: 1.22rem; line-height: 1.45; color: var(--ink); flex: 1; }
.rev figcaption { border-top: 1px solid var(--line); padding-top: 12px; display: flex; flex-direction: column; font-size: .9rem; }
.rev figcaption span { color: var(--muted); font-size: .8rem; letter-spacing: .06em; }
.rev-btn { display: none; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--gold); background: var(--paper); color: var(--brown); font-size: 1.6rem; line-height: 1; cursor: pointer; box-shadow: var(--shadow); }
.rev-btn:hover { background: var(--rose); }
.rev-btn.prev { left: -10px; }
.rev-btn.next { right: -10px; }

/* faq */
.faq-item { border-bottom: 1px solid var(--line); padding: 18px 0; }
.faq-item h3 { font-size: 1.3rem; margin-bottom: 6px; }
.faq-item p { margin: 0; color: var(--brown); }
.more-faq { text-align: center; }

.related ul, .link-cols, .menu-list { list-style: none; padding: 0; margin: 18px 0; display: grid; gap: 8px; }
.related li a, .link-cols li a { display: block; padding: 12px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); text-decoration: none; color: var(--ink); }
.related li a:hover, .link-cols li a:hover { border-color: var(--gold); color: var(--brown); }
.menu-list li { padding: 8px 0; border-bottom: 1px dashed var(--line); }
.menu-list li a { color: var(--brown); }

/* location NAP + map */
.nap { display: grid; gap: 18px; }
.nap-card { background: var(--paper); border: 1px solid var(--gold-soft); border-radius: var(--r); padding: 26px 24px; box-shadow: var(--shadow); }
.nap-card h2 { font-size: 1.6rem; }
.hours { margin: 12px 0 16px; }
.hours th { font-weight: 500; }
.map { border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); min-height: 320px; background: var(--cream-2); }
.map iframe { width: 100%; height: 100%; min-height: 320px; border: 0; }

/* call-to-action band */
.band { background: linear-gradient(135deg, var(--sage-dk), #6f7d5e); color: var(--paper); padding: 54px 0; position: relative; overflow: hidden; }
.band::before { content: ""; position: absolute; right: -30px; top: -30px; width: 150px; height: 225px; background: var(--leaf) no-repeat center / contain; opacity: .55; transform: rotate(200deg); }
.band-in { text-align: center; max-width: 720px; position: relative; }
.band h2 { color: var(--paper); }
.band p { color: #f1e4d6; }
.band .muted { color: #dcc6b1; font-size: .92rem; }
.band a:not(.btn) { color: #fff; }
.band .btn { background: var(--paper); color: var(--sage-dk); border-color: var(--paper); }
.band .btn-ghost { background: transparent; color: var(--paper); border-color: var(--gold-soft); }
.band .btn-ghost:hover { background: rgba(255, 255, 255, .1); }

/* footer */
.site-footer { background: var(--ink); color: #e9dccd; padding: 48px 0 24px; font-size: .92rem; }
.site-footer a { color: #f4e9dc; text-decoration-color: rgba(216, 191, 159, .5); }
.site-footer a:hover { color: var(--gold-soft); }
.site-footer .muted { color: #bfa892; }
.f-grid { display: grid; gap: 28px; }
.f-h { font-family: var(--serif); font-size: 1.3rem; color: #fff; margin-bottom: .4em; }
.site-footer p { margin-bottom: .7em; }
.f-list { list-style: none; padding: 0; margin: 0; }
.f-list li { margin-bottom: 6px; }
.copy { border-top: 1px solid rgba(216, 191, 159, .25); margin-top: 30px; padding-top: 18px; font-size: .82rem; color: #bfa892; }

.sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(252, 248, 243, .95); backdrop-filter: blur(10px); border-top: 1px solid var(--line); }
.sticky-cta .btn { flex: 1; }

@media (min-width: 640px) {
  .loc-grid { grid-template-columns: 1fr 1fr; }
  .loc-grid.one { grid-template-columns: 1fr; max-width: 560px; }
  .svc-grid { grid-template-columns: 1fr 1fr; }
  .stats { grid-template-columns: repeat(4, 1fr); }
  .trust { grid-template-columns: repeat(5, auto); justify-content: start; }
  .related ul, .link-cols { grid-template-columns: 1fr 1fr; }
  .menu-list { grid-template-columns: 1fr 1fr; column-gap: 28px; }
  .f-grid { grid-template-columns: 1fr 1fr; }
  .rev-track { grid-auto-columns: calc(50% - 8px); }
  .menu-grid { grid-template-columns: repeat(3, 1fr); gap: 18px; }
}
@media (min-width: 960px) {
  body { padding-bottom: 0; font-size: 18px; }
  .sticky-cta { display: none; }
  .nav-mob { display: none; }
  .nav-desk { display: flex; gap: 26px; font-size: .9rem; letter-spacing: .08em; text-transform: uppercase; }
  .nav-desk a { text-decoration: none; color: var(--brown); padding: 6px 0; border-bottom: 1px solid transparent; }
  .nav-desk a:hover, .nav-desk a[aria-current] { border-bottom-color: var(--gold); color: var(--ink); }
  .site-header .hdr-call { display: inline-flex; }
  .hdr { min-height: 86px; }
  .brand-name { font-size: 2.6rem; }
  .hero { padding: 64px 0 72px; }
  .hero::before { width: 300px; height: 450px; left: -110px; top: -60px; }
  .hero::after { width: 280px; height: 420px; right: -70px; bottom: -90px; }
  .reviews::before { width: 260px; height: 390px; left: -90px; }
  .reviews::after { width: 240px; height: 360px; right: -80px; }
  .hero-grid { grid-template-columns: 1.15fr .85fr; gap: 56px; }
  .content { padding-top: 64px; max-width: 900px; }
  .qa, .faq { margin-bottom: 72px; }
  .qa > .answer-capsule { padding: 26px 30px; }
  .svc-grid { grid-template-columns: repeat(3, 1fr); }
  .nap { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .f-grid { grid-template-columns: 1.1fr 1.1fr 1.2fr 1fr; }
  .band-in { padding: 10px 0; }
  .rev-track { grid-auto-columns: calc((100% - 32px) / 3); }
  .rev-btn { display: block; }
  .rev-btn.prev { left: -22px; }
  .rev-btn.next { right: -22px; }
  .content .menu-grid { margin-inline: -120px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .svc-card { transition: none; }
}

/* full-width color bands behind alternating sections */
.content > .qa:nth-of-type(3n+2), .content > .faq { background: var(--sage-bg); box-shadow: 0 0 0 100vmax var(--sage-bg); clip-path: inset(-36px -100vmax); padding-block: 4px; }
.content > .qa:nth-of-type(3n) { background: #f8e7df; box-shadow: 0 0 0 100vmax #f8e7df; clip-path: inset(-36px -100vmax); padding-block: 4px; }
.content > .qa:nth-of-type(3n+2) + *, .content > .qa:nth-of-type(3n) + *, .content > .faq + * { margin-top: 72px; }

.plain { margin: 0 0 40px; }
.plain h2 { font-size: 1.6rem; }

/* home: grouped service cards */
.svc-group { padding: 22px 22px 16px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line); border-top: 6px solid var(--sage); box-shadow: var(--shadow); }
.svc-group:nth-child(even) { border-top-color: var(--blush-2); background: linear-gradient(180deg, #fbefe9, var(--paper) 45%); }
.svc-group h3 { font-size: 1.55rem; margin-bottom: 4px; }
.svc-group ul { list-style: none; padding: 0; margin: 12px 0 0; border-top: 1px solid var(--line); }
.svc-group li { padding: 7px 0; border-bottom: 1px dashed var(--line); font-size: .95rem; color: var(--muted); }
.svc-group li:last-child { border-bottom: 0; }
.svc-group li a { color: var(--brown); font-weight: 500; }

/* Readability pass (Race 2026-10-26): bigger text everywhere, darker grey text */
:root { --muted: #634a3c; }
body { font-size: 19px; line-height: 1.65; }
h1 { font-size: clamp(2.4rem, 7.5vw, 4rem); }
h2 { font-size: clamp(1.95rem, 5.4vw, 2.75rem); }
h3 { font-size: 1.6rem; }
.lede p { font-size: 1.2rem; }
.answer-capsule { font-size: 1.2rem; line-height: 1.6; }
.btn { font-size: 1.05rem; min-height: 52px; }
.btn-sm { font-size: .98rem; }
.trust { font-size: 1rem; }
.trust strong { font-size: 1.9rem; }
.svc-group h3 { font-size: 1.9rem; }
.svc-group .svc-desc, .svc-desc { font-size: 1.08rem; color: var(--muted); }
.svc-group li { font-size: 1.1rem; padding: 10px 0; }
.svc-name { font-size: 1.6rem; }
.loc-card h3 { font-size: 1.9rem; }
.loc-card .areas { font-size: 1rem; }
.badge { font-size: .82rem; }
.stats b { font-size: 2.6rem; }
.stats span { font-size: 1rem; }
.prices th { font-size: 1.4rem; }
.p-note { font-size: 1rem; }
.pill { font-size: 1.3rem; }
.prices h3 { font-size: .95rem; }
.rev blockquote { font-size: 1.38rem; }
.rev figcaption { font-size: 1.02rem; }
.rev figcaption span { font-size: .92rem; }
.eyebrow { font-size: .9rem; }
.faq-item h3 { font-size: 1.5rem; }
.crumbs ol { font-size: .9rem; }
.brand-sub { font-size: .74rem; }
.nav-mob nav a { font-size: 1.1rem; padding: 12px 14px; }
.related li a, .link-cols li a { font-size: 1.08rem; }
.menu-fig figcaption { font-size: .98rem; }
.site-footer { font-size: 1.02rem; }
.copy { font-size: .92rem; }
@media (min-width: 960px) {
  body { font-size: 20px; }
  .nav-desk { font-size: 1rem; gap: 30px; }
  .content { max-width: 960px; }
  .svc-grid { gap: 20px; }
}
.svc-group li { color: var(--brown); font-weight: 500; }

/* Services dropdown in the main menu */
.dd { position: relative; }
.nav-desk .dd > a::after { content: " ▾"; font-size: .8em; color: var(--gold); }
.nav-desk .dd-menu { position: absolute; left: -18px; top: 100%; min-width: 230px; margin: 0; padding: 10px; list-style: none;
  background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--sage); border-radius: 0 0 18px 18px; box-shadow: var(--shadow);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; z-index: 50;
  text-transform: none; letter-spacing: 0; }
.nav-desk .dd:hover .dd-menu, .nav-desk .dd:focus-within .dd-menu { opacity: 1; visibility: visible; transform: none; }
.nav-desk .dd-menu a { display: block; padding: 10px 14px; border-radius: 12px; border: 0; font-size: 1.05rem; color: var(--ink); }
.nav-desk .dd-menu a:hover { background: #fbefe9; color: var(--ink); }
.nav-desk { align-items: center; }
.nav-desk .dd > a { display: block; }
.nav-desk .dd-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 10px; } /* hover bridge to the menu */
.nav-mob .dd-menu { list-style: none; margin: 0 0 6px 14px; padding: 0 0 0 10px; border-left: 2px solid var(--blush-2); }
.nav-mob .dd-menu a { display: block; padding: 8px 12px; font-size: 1.02rem; color: var(--brown); }
.nav-mob nav { max-height: calc(100vh - 100px); overflow-y: auto; }
.qa[id] { scroll-margin-top: 150px; }

/* No lone words on a line (Race 2026-10-26); build.py also ties the last two words */
h1, h2, h3, h4, .eyebrow, .badge { text-wrap: balance; }
p, li, figcaption, blockquote { text-wrap: pretty; }
.nw { white-space: nowrap; }
