:root {
  --teal:#0F6E56; --teal-mid:#1D9E75; --teal-pale:#E1F5EE; --teal-line:#9FE1CB;
  --ink:#04342C; --ink-soft:#085041;
  --green:#3B6D11; --green-pale:#EAF3DE;
  --gold:#EF9F27; --gold-ink:#412402;
  --bg:#ffffff;
}
* { box-sizing:border-box; }
body { margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif; color:var(--ink); background:#fff; line-height:1.55; }
.skip-link { position:absolute; left:-999px; top:0; z-index:100; background:var(--teal); color:#fff; padding:.75rem 1.1rem; border-radius:0 0 8px 0; font-weight:500; text-decoration:none; }
.skip-link:focus { left:0; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding:.5rem 1.5rem; background:var(--ink); color:var(--teal-pale); font-size:.78rem; }
.topbar-trust { list-style:none; display:flex; gap:1.25rem; margin:0; padding:0; flex-wrap:wrap; }
.topbar-trust li { display:flex; align-items:center; gap:.35rem; }
.topbar-trust li::before { content:"\2713"; color:var(--gold); font-weight:700; }
.topbar-links { display:flex; gap:1rem; }
.topbar-links a { color:var(--teal-pale); text-decoration:none; opacity:.9; }
.topbar-links a:hover { opacity:1; text-decoration:underline; }

header { background:#fff; border-bottom:1px solid var(--teal-line); position:sticky; top:0; z-index:10; }
.header-mid { display:flex; align-items:center; gap:1.25rem; padding:.85rem 1.5rem; }
header .brand { font-weight:600; color:var(--ink); text-decoration:none; font-size:1.05rem; white-space:nowrap; }
.header-search { position:relative; flex:1 1 auto; max-width:420px; }
.header-search input { width:100%; padding:.55rem .9rem; border:1px solid var(--teal-line); border-radius:20px; font-size:.9rem; background:var(--teal-pale); color:var(--ink); font-family:inherit; }
.header-search input:focus { outline:2px solid var(--teal-mid); background:#fff; }
.search-results { display:none; position:absolute; top:calc(100% + .4rem); left:0; right:0; background:#fff; border:1px solid var(--teal-line); border-radius:10px; box-shadow:0 8px 24px rgba(4,52,44,.14); max-height:60vh; overflow-y:auto; z-index:20; }
.search-results.open { display:block; }
.search-result { display:flex; flex-direction:column; gap:.15rem; padding:.65rem .9rem; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--teal-pale); }
.search-result:last-child { border-bottom:none; }
.search-result:hover { background:var(--teal-pale); }
.search-result-type { font-size:.68rem; text-transform:uppercase; letter-spacing:.03em; color:var(--teal); font-weight:600; }
.search-result strong { font-size:.9rem; }
.search-result-excerpt { font-size:.78rem; color:var(--ink-soft); }
.search-empty { padding:.75rem .9rem; font-size:.85rem; color:var(--ink-soft); }
.header-actions { display:flex; align-items:center; gap:1rem; white-space:nowrap; margin-left:auto; }

.header-bottom { border-top:1px solid var(--teal-pale); padding:.5rem 1.5rem; display:flex; align-items:center; }
nav a { margin-right:1.1rem; color:var(--ink-soft); text-decoration:none; font-size:.92rem; }
nav a:hover { color:var(--teal); }
.nav-mobile-only { display:none; }
.nav-toggle { display:none; flex-direction:column; justify-content:center; gap:4px; padding:.4rem; cursor:pointer; margin-left:auto; border:none; background:none; }
.nav-toggle span { display:block; width:22px; height:2px; background:var(--ink); border-radius:1px; }
.nav-toggle:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
.cta { background:var(--teal); color:#fff; padding:.5rem .9rem; border-radius:8px; text-decoration:none; font-weight:500; }
button.cta { border:none; cursor:pointer; font-family:inherit; font-size:1rem; }
.cta-offer { background:var(--gold); color:var(--gold-ink); }
main { max-width:1040px; margin:0 auto; padding:1.5rem; }
h1,h2 { color:var(--ink); }
table { border-collapse:collapse; width:100%; }
th,td { border:1px solid var(--teal-line); padding:.5rem; text-align:left; }

footer { background:var(--ink); color:var(--teal-pale); margin-top:2rem; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1fr; gap:1.75rem; padding:2.5rem 1.5rem 2rem; max-width:1280px; margin:0 auto; }
.footer-col { display:flex; flex-direction:column; gap:.55rem; font-size:.85rem; }
.footer-col a { color:var(--teal-pale); text-decoration:none; opacity:.85; }
.footer-col a:hover { opacity:1; text-decoration:underline; }
.footer-col-title { font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; color:var(--gold); font-weight:600; margin:0 0 .3rem; }
.footer-brand-name { font-size:1.1rem; font-weight:600; color:#fff; margin:0; }
.footer-brand p { margin:0; opacity:.85; }
.footer-brand .cta { align-self:flex-start; margin-top:.4rem; }
.footer-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; max-width:1280px; margin:0 auto; padding:1.5rem; border-top:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); }
.footer-stat { display:flex; flex-direction:column; align-items:center; gap:.2rem; text-align:center; color:#fff; text-decoration:none; }
.footer-stat strong { font-size:1.4rem; color:var(--gold); }
.footer-stat span { font-size:.75rem; opacity:.8; }
.footer-guarantee { max-width:1280px; margin:0 auto; padding:1.5rem; text-align:center; }
.footer-guarantee-title { font-weight:600; color:#fff; margin:0 0 .3rem; }
.footer-guarantee p:last-child { margin:0 auto; font-size:.88rem; opacity:.85; max-width:640px; }
.footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem; max-width:1280px; margin:0 auto; padding:1rem 1.5rem; font-size:.78rem; opacity:.75; }
.footer-bottom a { color:var(--teal-pale); }

.breadcrumbs { font-size:.8rem; color:var(--ink-soft); margin:0 0 1rem; }
.breadcrumbs a { color:var(--teal); text-decoration:none; }
.breadcrumbs a:hover { text-decoration:underline; }
.hero { display:grid; grid-template-columns:1.05fr .95fr; gap:1.5rem; background:var(--teal-pale); padding:1.5rem; border-radius:12px; }
.hero h1 { font-size:1.7rem; margin:.2rem 0 .6rem; }
.hero-photo { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:10px; margin-bottom:1rem; }
.hub-photo { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:10px; margin:.75rem 0 1.25rem; }
.serving-label { font-size:.8rem; color:var(--teal); margin:.6rem 0 .4rem; }
.serving { display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:1rem; }
.city-chip { font-size:.8rem; color:var(--ink); background:var(--teal-line); padding:.15rem .6rem; border-radius:6px; text-decoration:none; }
.city-chip.more { background:transparent; border:1px solid var(--teal-mid); color:var(--ink-soft); }
.trust { list-style:none; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.35rem; }
.trust li { font-size:.85rem; color:var(--ink-soft); }
.city-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:.5rem; }
.city-grid a { font-size:.9rem; color:var(--ink-soft); text-decoration:none; padding:.4rem .6rem; border:1px solid var(--teal-line); border-radius:6px; }
.service-cards, .city-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.75rem; }
.service-card { display:flex; flex-direction:column; gap:.3rem; padding:1rem; border:1px solid var(--teal-line); border-radius:10px; text-decoration:none; color:var(--ink); overflow:hidden; }
.service-card-photo { width:calc(100% + 2rem); aspect-ratio:16/9; object-fit:cover; margin:-1rem -1rem .5rem; border-radius:10px 10px 0 0; }
.service-card span { font-size:.85rem; color:var(--ink-soft); }
.quote { background:#fff; border:1px solid var(--teal-line); border-radius:12px; padding:1.25rem; }
.quote-title { font-size:1.15rem; font-weight:600; color:var(--ink); margin:0 0 .3rem; }
.quote-promo { display:inline-block; background:var(--gold); color:var(--gold-ink); font-size:.75rem; font-weight:500; padding:.25rem .6rem; border-radius:6px; margin:.2rem 0 .6rem; }
.q-label { font-size:.8rem; color:var(--ink-soft); margin:0 0 .5rem; text-transform:uppercase; letter-spacing:.03em; font-weight:600; }
.q-svc, .q-freq, .q-add { display:flex; flex-wrap:wrap; gap:.4rem; }
.q-svc button, .q-freq button, .q-add button, .u-leather { font-size:.82rem; padding:.6rem .65rem; border:1px solid var(--teal-line); background:#fff; color:var(--ink-soft); border-radius:8px; cursor:pointer; text-align:center; }
.q-svc button.on, .q-freq button.on { background:var(--teal); color:#fff; border-color:var(--teal); }
.q-add button.on, .u-leather.on { background:var(--teal-line); color:var(--ink); border-color:var(--teal-mid); }
.u-card .q-off-calc { margin-bottom:0; margin-top:.75rem; }
.u-leather { display:block; width:100%; text-align:left; margin:.75rem 0 0; }
.u-card { border:1px solid var(--teal-line); border-radius:10px; padding:1rem; margin:.75rem 0; }
.u-item-grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem 1.5rem; }
.u-item-grid-1 { grid-template-columns:1fr; max-width:16rem; }
.u-item { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.u-item-label { font-size:.88rem; color:var(--ink); }
.u-stepper { display:flex; align-items:center; gap:.6rem; }
.u-step-btn { width:1.9rem; height:1.9rem; border-radius:50%; border:1px solid var(--teal-line); background:#fff; color:var(--teal); font-size:1.05rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.u-step-btn:hover { background:var(--teal-pale); }
.u-step-btn:active { background:var(--teal-line); }
.u-step-val { min-width:1.3rem; text-align:center; font-weight:500; font-variant-numeric:tabular-nums; }
.u-mattress-size { display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.85rem; }
.u-msize { font-size:.75rem; padding:.4rem .7rem; border:1px solid var(--teal-line); background:#fff; color:var(--ink-soft); border-radius:6px; cursor:pointer; }
.u-msize.on { background:var(--teal); color:#fff; border-color:var(--teal); }
.q-off-calc { font-size:.78rem; color:var(--ink-soft); margin:-.2rem 0 .6rem; }
.q-off-calc a { color:var(--teal); }
.q-result { background:var(--teal-pale); border-radius:9px; padding:.75rem; margin-top:.5rem; }
.q-price-label { font-size:.8rem; color:var(--ink-soft); margin-bottom:.3rem; }
.q-lines { list-style:none; padding:0; margin:0 0 .5rem; border-bottom:1px solid var(--teal-line); padding-bottom:.5rem; }
.q-line { display:flex; justify-content:space-between; font-size:.78rem; color:var(--ink-soft); padding:.12rem 0; }
.q-line-neg span:last-child { color:var(--green); }
.q-price { font-size:1.5rem; font-weight:500; color:var(--teal); }
.q-save { font-size:.75rem; color:var(--green); min-height:1rem; margin:0 0 .6rem; }
.q-book { display:inline-block; }
.q-fine { font-size:.72rem; color:var(--ink-soft); border-top:1px solid var(--teal-line); padding-top:.4rem; margin:.5rem 0 0; }

main > section { margin:2.75rem 0; }
.sec-alt { background:var(--teal-pale); border-radius:12px; padding:1.75rem; margin-left:-1.5rem; margin-right:-1.5rem; padding-left:1.5rem; padding-right:1.5rem; }
.step-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1rem; }
.step { background:#fff; border:1px solid var(--teal-line); border-radius:10px; padding:1rem; }
.step-num { display:inline-flex; align-items:center; justify-content:center; width:1.6rem; height:1.6rem; border-radius:50%; background:var(--teal); color:#fff; font-size:.8rem; font-weight:500; margin-bottom:.5rem; }
.step h3 { font-size:.95rem; margin:.3rem 0 .3rem; }
.step p { font-size:.82rem; color:var(--ink-soft); margin:0; }
.price-formula { padding-left:1.1rem; }
.price-formula li { margin:.3rem 0; font-size:.92rem; }
details { border:1px solid var(--teal-line); border-radius:8px; padding:.6rem .9rem; margin-bottom:.5rem; }
details summary { cursor:pointer; font-weight:500; }
details p { margin:.5rem 0 0; color:var(--ink-soft); font-size:.92rem; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 1rem; align-content:start; }
.faq-grid details { align-self:start; }
.faq-eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--teal); margin:0 0 .4rem; }
.faq-subtitle { color:var(--ink-soft); font-size:.92rem; margin:0 0 1.1rem; max-width:38rem; }
.faq-mini-cta { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; background:var(--teal-pale); border-radius:10px; padding:.9rem 1.1rem; margin-top:1rem; }
.faq-mini-cta p { margin:0; font-size:.9rem; color:var(--ink); }

.city-service-split { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:start; }
.city-service-split .faq-grid { grid-template-columns:1fr; }
.local-market-card { border:1px solid var(--teal-line); border-radius:12px; padding:1.1rem; display:flex; flex-direction:column; gap:.9rem; }
.local-market-visual { width:100%; height:auto; border-radius:10px; }
.city-map { border-radius:10px; overflow:hidden; border:1px solid var(--teal-line); }
.city-map iframe { width:100%; height:220px; border:0; display:block; }
.city-map-caption { font-size:.78rem; color:var(--ink-soft); text-align:center; margin:.4rem 0 0; }
.local-market-text p { font-size:.9rem; line-height:1.55; margin:0 0 .75rem; }
.local-market-clip { max-height:3.7em; overflow:hidden; position:relative; transition:max-height .35s ease; }
.local-market-clip::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2.6em; background:linear-gradient(to bottom, rgba(255,255,255,0), #fff); pointer-events:none; transition:opacity .2s ease; }
.local-market-clip.expanded { max-height:80rem; }
.local-market-clip.expanded::after { opacity:0; }
.local-market-chevron { display:flex; align-items:center; justify-content:center; width:2.2rem; height:2.2rem; border-radius:50%; border:1px solid var(--teal-line); background:#fff; color:var(--teal); cursor:pointer; margin:.6rem auto 0; padding:0; transition:transform .25s ease, background .15s ease; }
.local-market-chevron:hover { background:var(--teal-pale); }
.local-market-chevron svg { width:1.1rem; height:1.1rem; }
.local-market-chevron[aria-expanded="true"] { transform:rotate(180deg); }

.final-cta { background:var(--teal); color:#fff; text-align:center; }
.final-cta h2 { color:#fff; }
.final-cta .cta { background:#fff; color:var(--teal); }
.final-cta a:not(.cta) { color:var(--teal-pale); }

.cat-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.6rem; margin:1.25rem 0 2.25rem; list-style:none; padding:0; }
.cat-strip li, .blog-cards li { display:contents; }
.cat-card { display:flex; flex-direction:column; align-items:flex-start; gap:.45rem; padding:1rem; border:1px solid var(--teal-line); border-radius:10px; text-decoration:none; color:var(--ink); background:#fff; }
.cat-card:hover { border-color:var(--teal-mid); }
.cat-card.on { background:var(--teal-pale); border-color:var(--teal); }
.cat-icon { display:flex; align-items:center; justify-content:center; width:2.1rem; height:2.1rem; border-radius:50%; background:var(--teal-pale); color:var(--teal); flex-shrink:0; }
.cat-card.on .cat-icon { background:#fff; }
.cat-icon svg { width:1.15rem; height:1.15rem; }
.cat-card strong { font-size:.88rem; line-height:1.25; }
.cat-card span:last-child { font-size:.75rem; color:var(--ink-soft); }

.blog-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; list-style:none; padding:0; margin:0; }
.blog-card { display:flex; flex-direction:column; gap:.45rem; padding:1.15rem; border:1px solid var(--teal-line); border-radius:10px; text-decoration:none; color:var(--ink); background:#fff; overflow:hidden; }
.blog-card:hover { border-color:var(--teal-mid); }
.blog-card-photo { width:calc(100% + 2.3rem); aspect-ratio:16/9; object-fit:cover; margin:-1.15rem -1.15rem .2rem; border-radius:10px 10px 0 0; }
.blog-card-cat { display:flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:500; color:var(--teal); text-transform:uppercase; letter-spacing:.02em; }
.blog-card-cat-icon { display:flex; flex-shrink:0; }
.blog-card-cat-icon svg { width:.85rem; height:.85rem; }
.blog-card strong { font-size:1rem; line-height:1.32; }
.blog-card-excerpt { font-size:.85rem; color:var(--ink-soft); line-height:1.45; }
.blog-card-meta { font-size:.72rem; color:var(--ink-soft); margin-top:auto; padding-top:.35rem; border-top:1px solid var(--teal-line); }

@media (max-width:720px){
  .hero{ grid-template-columns:1fr; }
  .hero-quote{ order:-1; }
  .step-grid{ grid-template-columns:1fr 1fr; }
  .topbar{ display:none; }
  .header-mid{ flex-wrap:wrap; padding:.65rem .85rem; gap:.5rem .75rem; }
  .header-mid .brand{ font-size:.95rem; }
  .header-search{ order:3; flex-basis:100%; max-width:none; }
  .header-actions{ gap:.5rem; margin-left:auto; }
  .header-actions .phone{ font-size:.8rem; }
  .header-actions .cta{ padding:.45rem .7rem; font-size:.85rem; }
  .header-bottom{ padding:.4rem .85rem; }
  .nav-toggle{ display:flex; }
  nav{ display:none; flex-direction:column; gap:.15rem; width:100%; }
  .nav-toggle[aria-expanded="true"] ~ nav{ display:flex; }
  nav a{ margin-right:0; padding:.5rem 0; }
  .nav-mobile-only{ display:block; }
  .nav-mobile-only:first-of-type{ border-top:1px solid var(--teal-line); margin-top:.3rem; padding-top:.6rem; }
  .trust{ grid-template-columns:1fr; }
  .q-svc button, .q-freq button, .q-add button, .u-leather{ font-size:.85rem; padding:.5rem .65rem; }
  .u-item-grid{ grid-template-columns:1fr; }
  .u-step-btn{ width:2.2rem; height:2.2rem; font-size:1.2rem; }
  .u-msize{ font-size:.85rem; padding:.5rem .75rem; }
  main{ padding:1rem; }
  .hero{ padding:1rem; }
  main h1{ font-size:1.4rem; margin:.3rem 0 .5rem; }
  .answer{ margin-bottom:.75rem; }
  .breadcrumbs{ margin-bottom:.6rem; }
  .faq-grid{ grid-template-columns:1fr; }
  .cat-strip{ grid-template-columns:1fr 1fr; }
  .blog-cards{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; padding:2rem 1.25rem 1.5rem; }
  .footer-stats{ grid-template-columns:1fr 1fr; padding:1.25rem; }
  .footer-bottom{ flex-direction:column; text-align:center; }
  .city-service-split{ grid-template-columns:1fr; }
}
@media (max-width:480px){ .step-grid{ grid-template-columns:1fr; } }

.contact-modal { border:none; border-radius:14px; padding:0; max-width:26rem; width:92vw; }
.contact-modal::backdrop { background:rgba(4,52,44,.55); }
.contact-modal-form { padding:1.5rem; display:flex; flex-direction:column; gap:.9rem; position:relative; }
.contact-modal-form h2 { margin:0; font-size:1.2rem; color:var(--ink); }
.contact-modal-sub { margin:0; color:var(--ink-soft); font-size:.88rem; }
.contact-modal-close { position:absolute; top:.6rem; right:.75rem; border:none; background:none; font-size:1.5rem; line-height:1; cursor:pointer; color:var(--ink-soft); padding:.2rem; }
.contact-modal-form label { display:flex; flex-direction:column; gap:.3rem; font-size:.85rem; color:var(--ink); }
.contact-modal-form input[type=text], .contact-modal-form textarea { border:1px solid var(--teal-line); border-radius:8px; padding:.6rem .7rem; font-family:inherit; font-size:.9rem; resize:vertical; }
.contact-modal-consent { flex-direction:row !important; align-items:flex-start; gap:.5rem !important; font-size:.78rem; color:var(--ink-soft); }
.contact-modal-consent input { margin-top:.2rem; }
.contact-modal-note { margin:0; font-size:.72rem; color:var(--ink-soft); }
.quick-quote-modal { max-width:28rem; }
.quick-quote-inner { padding:1.5rem; position:relative; display:flex; flex-direction:column; gap:.6rem; }
.quick-quote-inner h2 { margin:0; font-size:1.2rem; color:var(--ink); }
.quick-quote-sub { margin:0 0 .3rem; color:var(--ink-soft); font-size:.88rem; }
.quick-quote-grid { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.quick-quote-option { display:flex; align-items:center; justify-content:center; text-align:center; padding:.7rem .5rem; border:1px solid var(--teal-line); border-radius:8px; text-decoration:none; color:var(--ink); font-size:.85rem; font-weight:500; }
.quick-quote-option:hover { background:var(--teal-pale); border-color:var(--teal-mid); }
.quick-quote-alt { margin:.4rem 0 0; font-size:.8rem; color:var(--ink-soft); text-align:center; }
