/* Product polish: retain the green identity and artwork with a quieter hierarchy. */
:root {
  --color-bg: #f8faf9;
  --color-text: #1c2c25;
  --color-text-muted: #58685f;
  --color-border: #dee6e1;
  --color-surface-muted: #f0f6f2;
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 24px;
  --shadow-sm: 0 2px 6px #163c2804;
  --shadow-md: 0 8px 28px #163c2809;
  --space-section: clamp(3.5rem,6.5vw,5.5rem);
}
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', ui-sans-serif, system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
h1 { font-weight: 650; letter-spacing: -.045em; line-height: 1.1; }
h2 { font-weight: 600; letter-spacing: -.035em; line-height: 1.2; }
h3 { font-weight: 600; letter-spacing: -.02em; line-height: 1.3; }
.eyebrow { font-size: .7rem; font-weight: 600; letter-spacing: .1em; }
.body-large { line-height: 1.7; }
.site-header { border-bottom: 1px solid #e5ebe7; }
.header-inner { min-height: 76px; }
.wordmark { font-weight: 650; letter-spacing: -.035em; }
.wordmark-light { font-weight: 500; }
.brand-icon { border-radius: 10px; transform: none; }
.site-navigation > a { font-size: .85rem; font-weight: 500; }
.button { border-radius: 10px; font-weight: 600; letter-spacing: -.01em; min-height: 46px; }
.button--small { border-radius: 9px; min-height: 40px; }
.button--outline { background: #fff; border-color: #cfded4; }
.button--outline:hover { background: #f0f7f3; }
.hero { background: radial-gradient(ellipse at 95% 20%,#e1f2e7 0,transparent 58%),linear-gradient(110deg,#fcfdfc 25%,#f0f8f3); padding-top: clamp(2.5rem,4vw,3.5rem); padding-bottom: 1.8rem; border-bottom: 1px solid #e1ebe4; }
.hero-grid { margin-bottom: 1.7rem; }
.hero h1 { font-size: clamp(2.5rem,4.6vw,3.85rem); font-weight: 650; line-height: 1.1; letter-spacing: -.05em; }
.hero-copy > .body-large { font-size: clamp(1rem,1.5vw,1.12rem); margin-block: 1.3rem; max-width: 540px; }
.hero .eyebrow { letter-spacing: .09em; margin-bottom: 1.1rem; }
.hero-caption { gap: 0; }
.hero-caption > span { background: none; border-radius: 0; padding: 0 .8rem; font-weight: 500; font-size: .75rem; }
.hero-caption > span:first-child { padding-left: 0; }
.hero-caption > span + span { border-left: 1px solid #c9dbd0; }
.hero-art { width: 100%; max-width: 430px; justify-self: end; border-radius: 24px; }
.hero-art > img { object-fit: contain; }
.art-label { border: 1px solid #dfebe3; border-radius: 10px; padding: .6rem .85rem; font-weight: 500; font-size: .72rem; box-shadow: var(--shadow-sm); }
.search-panel { border-radius: 14px; border-color: #cfdfd5; box-shadow: 0 6px 24px #153e2908; }
.search-field label { font-size: .72rem; font-weight: 600; }
.search-field select { font-weight: 500; }
.search-note { font-size: .75rem; }
.value-row { font-size: .75rem; }
.section-heading { align-items: flex-start; gap: 2rem; }
.section-heading > div:last-child { max-width: 390px; color: var(--color-text-muted); font-size: .95rem; }
.section--muted { background: #f0f5f2; border-block: 1px solid #e1e9e4; }
.service-card { border-radius: 16px; padding: 1.5rem; box-shadow: none; }
.service-card:hover { box-shadow: 0 8px 22px #163c2808; transform: translateY(-2px); }
.service-card h3 { font-size: 1.05rem; }
.service-card p { font-size: .85rem; line-height: 1.6; }
.service-icon { width: 44px; height: 44px; border-radius: 12px; margin-bottom: 1.15rem; }
.location-card { border-radius: 12px; padding: 1.15rem 1.3rem; }
.steps article { padding: 1.5rem; border: 1px solid #dce6df; border-radius: 16px; background: #fff; }
.steps h3 { font-size: 1.1rem; }
.step-number { width: 36px; height: 36px; border-radius: 10px; font-weight: 600; font-size: .85rem; }
.business-panel { border-radius: 22px; padding: clamp(1.6rem,4vw,3.5rem); background: #173e2e; }
.business-panel h2 { font-weight: 600; }
.business-panel .button { margin-top: .75rem; }
.business-panel .button + .button { background: transparent; color: #fff; border-color: #749c86; }
.business-details h3 { color: #e1f3e8; }
.business-details .small { line-height: 1.75; }
.company-card, .review-card, .filter-panel { border-radius: 16px; box-shadow: none; }
.company-card--featured { border-color: #a8cdb7; background: #f6fbf8; }
.company-avatar { border-radius: 12px; }
.company-profile .profile-overview { border-radius: 22px; background: linear-gradient(110deg,#f8fcf9,#e7f4ec); }
.company-profile .profile-section, .company-profile .contact-card { border-radius: 18px; }
.company-profile .profile-title h1 { font-weight: 650; }
.page .editorial-benefits > div, .page .editorial-plans > div { border-radius: 16px; padding: 1.5rem; }
.page .prose > article > h1 { max-width: 21ch; margin-bottom: 1.25rem; }
.hh-faq { background: #f0f5f2; border: 1px solid #e0e9e3; border-radius: 20px; }
.hh-faq-item { border-color: #dce6df; border-radius: 12px; }
.site-footer { background: #f1f5f2; border-top: 1px solid #dce6df; }
.footer-heading { font-weight: 600; letter-spacing: -.01em; }
.footer-bottom { border-color: #d9e3dc; }
@media(min-width:768px) {
 .hero-grid { grid-template-columns: 1.15fr .85fr; gap: 3rem; }
 .search-panel { padding: 1.1rem 1.3rem; }
 .steps { gap: 1.25rem; }
}
@media(max-width:767px) {
 .hero-art { justify-self: center; max-width: 350px; width: 100%; }
 .section-heading { gap: 1rem; }
 .section-heading > div:last-child { max-width: 100%; }
 .business-panel .button { width: 100%; }
}
@media(max-width:599px) {
 .header-inner { min-height: 70px; }
 .hero h1 { font-size: clamp(2.35rem,8.8vw,3.15rem); }
 .hero-art { align-self: center; max-height: 250px; }
 .hero-art img { max-height: 250px; }
 .hero-copy { margin-bottom: 1.2rem; }
 .hero-caption > span { font-size: .7rem; padding-inline: .55rem; }
 .search-panel { padding: 1.2rem; }
 .steps article { padding: 1.3rem; }
 .company-profile .profile-title h1 { font-size: 1.8rem; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior: auto; }
 .service-card, .location-card, .button { transition: none; }
 .service-card:hover { transform: none; }
}

.company-profile .profile-areas .secondary-areas-title { margin-top: 1.25rem; }

/* UI labels keep their presentation without entering the document outline. */
.result-heading .result-count { font-size: 1.45rem; font-weight: 600; line-height: 1.2; letter-spacing: -.035em; margin: 0; }
.empty-state-title { font-weight: 600; line-height: 1.25; margin: 0; }
.site-footer .footer-heading { margin: 0; line-height: 1.2; }

/* Editorial tips reuse the site's cards, colors and spacing. */
.tips-categories { display: flex; flex-wrap: wrap; gap: .6rem; margin: 2rem 0 2.5rem; }
.tip-card { padding: 1.5rem; border: 1px solid var(--color-border,#dfe6e2); border-radius: 18px; background: #fff; }
.tip-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 10px; margin-bottom: 1.25rem; }
.tip-card h2 { font-size: 1.35rem; line-height: 1.3; }
.tip-card h2 a { text-decoration: none; }
.tip-card h2 a:hover { text-decoration: underline; }
.tips-empty { padding: 2rem; border-radius: 18px; background: #eef5f0; }
.tips-article { max-width: 820px; margin-inline: auto; }
.tips-article h1 { margin-block: 1rem; }
.tips-article .prose { margin-top: 2rem; max-width: none; }
.tips-article .prose h2 { margin-top: 2rem; }
.tips-article .prose h3 { margin-top: 1.5rem; }
.tips-article .prose img { height: auto; border-radius: 12px; }
.tips-hero { border-radius: 18px; width: 100%; height: auto; margin-top: 1.5rem; }
.tips-cta { background: #eef5f0; padding: 1.75rem; border-radius: 18px; margin-top: 3rem; }
.tips-cta > .h3 { font-weight: 600; }
