/* market.css — huntsville. Rules that differ from, or do not exist in, the
   shared base. Loaded after base.css. Extracted verbatim from the
   stylesheet as deployed, so appearance is unchanged. */

:root { --background: #ffffff; --foreground: #14161a; --muted: #f4f1ea; --muted-2: #fbf9f5; --muted-foreground: #58606a; --primary: #8e2f22; --primary-dark: #6f2419; --primary-foreground: #ffffff; --secondary: #3b4a57; --secondary-dark: #2a353f; --secondary-foreground: #ffffff; --accent: #b8923d; --accent-soft: #dcc48b; --border: #ddd8ce; --border-strong: #c6bfb1; --ring: #8e2f22; --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --radius: 0.25rem; --radius-btn: 0.25rem; --shadow-sm: 0 1px 2px 0 rgb(20 22 26 / 0.07); --shadow-md: 0 2px 4px -1px rgb(20 22 26 / 0.10), 0 4px 10px -4px rgb(20 22 26 / 0.10); --shadow-lg: 0 2px 4px -1px rgb(20 22 26 / 0.10), 0 14px 28px -12px rgb(20 22 26 / 0.22); --wrap: 1140px; --header-h: 68px; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 14px); }
body { margin: 0; font-family: var(--font-sans); font-size: 1rem; line-height: 1.68; color: var(--foreground); background: var(--background); -webkit-font-smoothing: antialiased; overflow-x: clip; }
h1, h2, h3, h4 { line-height: 1.18; margin: 0 0 0.55em; font-weight: 700; letter-spacing: -0.018em; }
h1 { font-size: clamp(2.05rem, 5.4vw, 3.15rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.05rem); }
h3 { font-size: 1.1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 1.2rem; }
a { color: var(--primary); text-decoration-thickness: 1px; text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--ring); outline-offset: 2px; border-radius: 2px; }
.section { padding-block: 4rem; }
.section--tight { padding-block: 2.25rem; }
.section--rule { border-top: 1px solid var(--border); }
.lead { font-size: 1.07rem; color: var(--muted-foreground); }
.section--dark .lead, .section--brand .lead { color: rgb(255 255 255 / 0.86); }
.measure { max-width: 66ch; }
.eyebrow { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.7rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--primary); }
.eyebrow::before { content: ""; flex: none; width: 26px; height: 2px; background: var(--accent); }
.center .eyebrow, .eyebrow.center { justify-content: center; }
.section-head { max-width: 60ch; margin-bottom: 2.5rem; }
.section-head.center .eyebrow { justify-content: center; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.78rem 1.4rem; border: 2px solid transparent; border-radius: var(--radius-btn); font: inherit; font-weight: 600; font-size: 0.92rem; letter-spacing: 0.01em; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.1s ease; }
.btn--ghost { background: transparent; color: #fff; border-color: rgb(255 255 255 / 0.7); }
.btn--ghost:hover { background: rgb(255 255 255 / 0.13); color: #fff; border-color: #fff; }
.btn--brass { background: var(--accent); color: #24292f; border-color: var(--accent); }
.btn--brass:hover { background: var(--accent-soft); border-color: var(--accent-soft); color: #24292f; }
.arrow-link { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; font-size: 0.92rem; text-decoration: none; }
.topbar { background: var(--secondary-dark); color: rgb(255 255 255 / 0.9); font-size: 0.81rem; letter-spacing: 0.01em; text-align: center; padding: 0.55rem 1.25rem; }
.site-header { position: sticky; top: 0; z-index: 60; background: #fff; border-bottom: 2px solid var(--secondary); }
.brand { display: flex; flex: none; align-items: center; gap: 0.6rem; text-decoration: none; color: inherit; margin-right: auto; }
.brand__mark { flex: none; width: 40px; height: 40px; }
.brand__name { font-weight: 700; font-size: 0.99rem; line-height: 1.15; letter-spacing: -0.02em; color: var(--secondary); }
.brand__tag { display: block; font-size: 0.67rem; font-weight: 600; letter-spacing: 0.11em; text-transform: uppercase; color: var(--primary); }
.site-nav ul { display: flex; align-items: center; gap: 0.1rem; list-style: none; margin: 0; padding: 0; }
.site-nav a { display: block; padding: 0.45rem 0.6rem; border-radius: var(--radius-btn); font-size: 0.875rem; font-weight: 500; color: var(--secondary); text-decoration: none; white-space: nowrap; }
.site-nav a[aria-current="page"] { color: var(--primary); font-weight: 700; box-shadow: inset 0 -3px 0 var(--accent); }
.mobile-nav { display: none; border-top: 1px solid var(--border); background: #fff; padding: 0.7rem 0 1.1rem; }
.mobile-nav a { display: block; padding: 0.68rem 0.3rem; border-bottom: 1px solid var(--border); font-weight: 600; color: var(--secondary); text-decoration: none; }
.hero { position: relative; display: flex; align-items: center; min-height: 560px; padding-block: 4rem 4.5rem; background: var(--secondary); overflow: hidden; isolation: isolate; border-bottom: 6px solid var(--primary); }
.hero--short { min-height: 320px; padding-block: 2.75rem 3rem; }
.hero__bg { position: absolute; inset: 0; z-index: -3; background:
    radial-gradient(85% 90% at 8% 96%, rgb(142 47 34 / 0.52) 0%, transparent 60%),
    radial-gradient(70% 80% at 92% 6%, rgb(184 146 61 / 0.26) 0%, transparent 62%),
    linear-gradient(200deg, #4c5f6d 0%, #3b4a57 45%, #242e37 100%); }
.hero__pattern { position: absolute; inset: 0; z-index: -2; opacity: 0.2; pointer-events: none; }
.hero__scrim { position: absolute; inset: 0; z-index: -1; background: linear-gradient(96deg, rgb(18 23 28 / 0.84) 0%, rgb(18 23 28 / 0.58) 52%, rgb(18 23 28 / 0.22) 100%); }
.hero__inner { position: relative; max-width: 41rem; color: #fff; }
.hero__rule { width: 62px; height: 4px; background: var(--accent); margin-bottom: 1.2rem; }
.hero h1 { color: #fff; margin-bottom: 0.7rem; }
.hero__sub { font-size: 1.08rem; font-weight: 600; color: var(--accent-soft); margin-bottom: 0.9rem; }
.hero p.hero__body { color: rgb(255 255 255 / 0.9); font-size: 1.02rem; margin-bottom: 1.6rem; }
.hero .btn-row { margin-bottom: 1.5rem; }
.hero__trust { display: grid; gap: 0.45rem; list-style: none; margin: 0; padding: 0; font-size: 0.86rem; color: rgb(255 255 255 / 0.86); }
.hero__trust li { display: flex; align-items: flex-start; gap: 0.5rem; }
.hero__trust svg { flex: none; margin-top: 0.32rem; color: var(--accent); }
.hero__ridge { position: absolute; left: 0; right: 0; bottom: 0; z-index: -1; width: 100%; height: 90px; opacity: 0.35; pointer-events: none; }
.crumbs { font-size: 0.83rem; color: var(--muted-foreground); padding-block: 0.85rem; border-bottom: 1px solid var(--border); }
.crumbs li + li::before { content: "\203A"; margin-right: 0.4rem; color: var(--border-strong); }
.grid { display: grid; gap: 1.15rem; }
.features { display: grid; gap: 1.35rem; }
.feature__icon { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--radius); background: var(--secondary); color: var(--accent-soft); }
.feature h3 { font-size: 0.99rem; margin-bottom: 0.2rem; }
.feature p { font-size: 0.9rem; color: var(--muted-foreground); }
.card { display: flex; flex-direction: column; padding: 1.45rem; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); transition: box-shadow 0.18s ease, border-color 0.18s ease; }
.card:hover { box-shadow: var(--shadow-md); border-color: var(--border-strong); }
.card__icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 0.95rem; border-radius: var(--radius); background: var(--muted); color: var(--primary); border: 1px solid var(--border); }
.card h3 { font-size: 1.04rem; }
.card p { font-size: 0.93rem; color: var(--muted-foreground); }
.card--edge { border-left: 3px solid var(--accent); }
.card--clay { border-left: 3px solid var(--primary); }
.card--onDark { background: rgb(255 255 255 / 0.06); border-color: rgb(255 255 255 / 0.2); }
.card--onDark h3 { color: #fff; }
.card--onDark p { color: rgb(255 255 255 / 0.82); }
.tag { display: inline-block; margin-bottom: 0.8rem; padding: 0.22rem 0.62rem; border-radius: 2px; background: var(--primary); color: #fff; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.tag--brass { background: var(--accent); color: #24292f; }
.panel { display: grid; gap: 1.75rem; padding: 1.6rem; border: 1px solid var(--border-strong); border-top: 5px solid var(--primary); border-radius: var(--radius); background: linear-gradient(160deg, #ffffff 0%, var(--muted) 120%); }
.panel h2 { margin-bottom: 0.55rem; }
.panel--dark { background: rgb(255 255 255 / 0.05); border-color: rgb(255 255 255 / 0.2); border-top-color: var(--accent); }
.checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.65rem; }
.checklist li { display: flex; gap: 0.6rem; font-size: 0.93rem; }
.checklist svg { flex: none; margin-top: 0.3rem; color: var(--primary); }
.section--dark .checklist svg, .panel--dark .checklist svg { color: var(--accent); }
.checklist--tight li { font-size: 0.9rem; }
.steps { display: grid; gap: 1.1rem; }
.step { position: relative; padding: 1.35rem 1.35rem 1.35rem 1.35rem; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); }
.step::after { content: ""; position: absolute; left: 1.35rem; right: 1.35rem; top: 3.45rem; height: 1px; background: var(--border); }
.step__num { display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 0.75rem; border-radius: 2px; background: var(--accent); color: #24292f; font-size: 0.88rem; font-weight: 700; }
.step h3 { font-size: 1rem; margin-bottom: 0.35rem; padding-top: 0.55rem; }
.step p { font-size: 0.91rem; color: var(--muted-foreground); margin: 0; }
.stats { display: grid; gap: 1.4rem; grid-template-columns: repeat(2, 1fr); margin-top: 2rem; }
.stat { padding-top: 0.9rem; border-top: 3px solid var(--accent); }
.stat__num { font-size: clamp(1.85rem, 4.6vw, 2.4rem); font-weight: 700; color: var(--primary); line-height: 1.1; }
.stat__label { font-size: 0.88rem; color: var(--muted-foreground); }
.section--dark .stat__num { color: var(--accent); }
.section--dark .stat__label { color: rgb(255 255 255 / 0.84); }
.info-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.05rem; }
.info-list .info__icon { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius); background: #fff; border: 1px solid var(--border-strong); color: var(--primary); }
.info__label { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted-foreground); }
.form-card { padding: 1.5rem; background: #fff; border: 1px solid var(--border-strong); border-top: 5px solid var(--secondary); border-radius: var(--radius); }
.field label { font-size: 0.84rem; font-weight: 600; color: var(--secondary); }
.field .hint { font-size: 0.77rem; font-weight: 400; color: var(--muted-foreground); }
.field input, .field select, .field textarea { width: 100%; padding: 0.65rem 0.75rem; font: inherit; font-size: 0.94rem; color: var(--foreground); background: #fff; border: 1px solid var(--border-strong); border-radius: var(--radius-btn); }
fieldset legend { padding: 0; margin-bottom: 0.75rem; font-size: 0.76rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted-foreground); }
.form-note { font-size: 0.81rem; color: var(--muted-foreground); margin-top: 0.9rem; }
.form-status[data-tone='ok'] { background: #edf5ee; border-color: #b3d3b7; color: #1d4f2c; }
.form-status[data-tone='error'] { background: #fbeeeb; border-color: #e2bdb2; color: #7d2a1c; }
.callout { display: grid; gap: 1rem; align-items: center; padding: 1.5rem; border: 1px solid var(--border-strong); border-left: 5px solid var(--accent); border-radius: var(--radius); background: #fff; }
.callout__icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: var(--radius); background: var(--secondary); color: var(--accent); }
.callout h2 { font-size: 1.12rem; margin-bottom: 0.3rem; }
.callout p { font-size: 0.91rem; color: var(--muted-foreground); margin: 0; }
.area-group + .area-group { margin-top: 1.6rem; }
.area-group h3 { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted-foreground); margin-bottom: 0.7rem; }
.pill-list { display: flex; flex-wrap: wrap; gap: 0.45rem; list-style: none; margin: 0; padding: 0; }
.pill-list li { display: flex; align-items: center; gap: 0.4rem; padding: 0.35rem 0.75rem; border: 1px solid var(--border-strong); border-radius: 2px; background: #fff; font-size: 0.855rem; font-weight: 500; color: var(--secondary); }
.pill-list li::before { content: ""; width: 5px; height: 5px; background: var(--accent); flex: none; }
.section--dark .pill-list li { background: rgb(255 255 255 / 0.07); border-color: rgb(255 255 255 / 0.22); color: #fff; }
.faq { display: grid; gap: 0.6rem; }
.faq details { border: 1px solid var(--border); border-left: 3px solid var(--border-strong); border-radius: var(--radius); background: #fff; overflow: hidden; }
.faq details[open] { border-left-color: var(--primary); box-shadow: var(--shadow-sm); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.95rem 1.1rem; font-weight: 600; font-size: 0.99rem; color: var(--secondary); cursor: pointer; list-style: none; }
.faq summary::after { content: "+"; flex: none; font-size: 1.3rem; font-weight: 400; color: var(--primary); line-height: 1; }
.faq .faq__body { padding: 0 1.1rem 1.1rem; font-size: 0.93rem; color: var(--muted-foreground); }
.prose { width: 100%; max-width: 70ch; }
.prose h2 { margin-top: 2.6rem; padding-top: 1rem; border-top: 2px solid var(--border); }
.prose h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.prose h3 { margin-top: 1.7rem; font-size: 1.04rem; color: var(--secondary); }
.prose p, .prose li { color: #2c3138; }
.prose blockquote { margin: 1.5rem 0; padding: 1rem 1.25rem; border-left: 4px solid var(--primary); background: var(--muted); font-size: 0.95rem; }
.toc { padding: 1.15rem 1.3rem; background: var(--secondary); border-radius: var(--radius); color: #fff; }
.toc h2 { font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin: 0 0 0.7rem; }
.toc ol { margin: 0; padding-left: 1.1rem; font-size: 0.91rem; }
.toc li { margin-bottom: 0.35rem; }
.toc a { color: rgb(255 255 255 / 0.88); text-decoration: none; }
.toc a:hover { color: #fff; text-decoration: underline; }
.table-wrap { overflow-x: auto; border: 1px solid var(--border-strong); border-radius: var(--radius); }
table { width: 100%; border-collapse: collapse; font-size: 0.91rem; background: #fff; }
caption { padding: 0.75rem 1rem; text-align: left; font-size: 0.84rem; color: var(--muted-foreground); background: var(--muted); border-bottom: 1px solid var(--border); }
th { background: var(--muted-2); font-weight: 700; color: var(--secondary); }
thead th { white-space: nowrap; }
.photo-ph { position: relative; display: grid; place-items: center; min-height: 220px; padding: 1.5rem; border: 2px dashed var(--border-strong); border-radius: var(--radius); background:
    linear-gradient(150deg, rgb(142 47 34 / 0.12) 0%, rgb(59 74 87 / 0.12) 100%),
    repeating-linear-gradient(90deg, var(--muted) 0 14px, var(--muted-2) 14px 28px); text-align: center; }
.photo-ph__label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--primary); }
.photo-ph__caption { font-size: 0.88rem; color: var(--muted-foreground); max-width: 32ch; margin: 0.35rem auto 0; }
.site-footer { background: var(--secondary-dark); color: rgb(255 255 255 / 0.78); font-size: 0.9rem; border-top: 6px solid var(--primary); }
.footer-brand__name { font-weight: 700; color: #fff; font-size: 0.98rem; line-height: 1.2; }
.site-footer h3 { color: var(--accent); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 0.6rem 1.25rem; justify-content: space-between; padding-block: 1.15rem; border-top: 1px solid rgb(255 255 255 / 0.14); font-size: 0.83rem; }
.callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: grid; grid-template-columns: 1.35fr 1fr; gap: 1px; background: var(--border-strong); border-top: 1px solid var(--border-strong); }
.callbar a { padding: 0.8rem 0.5rem; background: #fff; color: var(--secondary); font-size: 0.88rem; font-weight: 600; text-align: center; text-decoration: none; }
.err { display: grid; place-items: center; text-align: center; padding-block: 4.5rem; }
.err__code { font-size: clamp(3.6rem, 15vw, 7.5rem); font-weight: 700; line-height: 1; color: var(--accent); letter-spacing: -0.05em; }
.u-mt-05 { margin-top: 0.5rem; }
.u-mt-1 { margin-top: 1rem; }
.u-mt-125 { margin-top: 1.25rem; }
.u-mt-15 { margin-top: 1.5rem; }
.u-mt-175 { margin-top: 1.75rem; }
.u-mt-2 { margin-top: 2rem; }
.u-mt-25 { margin-top: 2.5rem; }
.u-my-15 { margin: 1.5rem 0; }
.u-my-2 { margin: 2rem 0; }
.u-row-center { justify-content: center; }
.u-row-center-15 { justify-content: center; margin-top: 1.5rem; }
.u-row-center-175 { justify-content: center; margin-top: 1.75rem; }
.u-white { color: #fff; }
.u-white-80 { color: rgb(255 255 255 / 0.8); }
.u-accent { color: var(--accent); }
.u-fw-500 { font-weight: 500; }
.u-fs-092 { font-size: 0.92rem; }
.u-fs-094-muted { font-size: 0.94rem; color: var(--muted-foreground); }
.u-fs-098 { font-size: 0.98rem; }
.u-fs-112 { font-size: 1.12rem; }
.u-fs-122 { font-size: 1.22rem; }
.u-fs-132 { font-size: 1.32rem; }
.u-narrow { max-width: 58rem; margin-inline: auto; }
.u-bt-0 { border-top: 0; }
.u-sticky-aside { position: static; }

/* ---- media queries, ascending (mobile-first) ---------------------- */
@media (min-width: 760px) {
  .hero__trust { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 1.6rem; }
}
@media (min-width: 800px) {
  .callout { grid-template-columns: 54px 1fr auto; gap: 1.4rem; }
}
@media (min-width: 900px) {
  .split { grid-template-columns: 1fr 1fr; gap: 3rem; }
  .split--wide-left { grid-template-columns: 1.2fr 1fr; }
  .split--wide-right { grid-template-columns: 1fr 1.2fr; }
  .panel { grid-template-columns: 1.1fr 1fr; padding: 2.25rem; align-items: start; gap: 2.5rem; }
  .u-sticky-aside { position: sticky; top: calc(var(--header-h) + 1.25rem); }
}
@media (min-width: 1024px) {
  .header-cta { display: flex; align-items: center; gap: 0.85rem; }
  .header-cta .btn { white-space: nowrap; padding-inline: 1.1rem; }
  .header-cta__note { display: none; font-size: 0.83rem; color: var(--muted-foreground); white-space: nowrap; }
}
@media (min-width: 1040px) {
  .grid--4 { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1240px) {
  /* Deliberately not re-shown. The header row is brand (237px) + nav
     (555px) + note (197px) + CTA button (189px), and .wrap caps the inner
     width around 1180px, so the note cannot fit at any viewport width once
     services / rug types / areas joined the nav — it was pushing two nav
     items underneath the CTA. The same reassurance is already carried by
     the topbar line, so nothing is lost by leaving it off. */
  .header-cta__note { display: none; }
}
@media (max-width: 1023px) {
  body { padding-bottom: 52px; }
}

/* ---- cascade repair -------------------------------------------------
   These four declarations live in base.css inside media queries, but this
   file declares the same properties at top level and loads afterwards.
   Media queries carry no specificity, so the later top-level rule was
   winning and the responsive behaviour was silently lost:

     .callbar     stayed visible over content at desktop
     .mobile-nav  never got its desktop reset
     .stats       stayed 2-up instead of 4-up above 900px
     html         kept smooth scrolling for reduced-motion users

   Re-declared here so they land last. Values are copied verbatim from
   base.css — nothing new is introduced. */
@media (min-width: 900px) {
  .stats { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1024px) {
  .mobile-nav,
  .mobile-nav.is-open { display: none; }
  .callbar { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
