/* Colorful product direction. Shared visual layer for all public templates. */
:root {
  --color-bg: #f6f9f6;
  --color-surface: #ffffff;
  --color-surface-muted: #e6f3e9;
  --color-text: #203529;
  --color-text-muted: #5c7062;
  --color-border: #dce7df;
  --color-primary: #13734b;
  --color-primary-hover: #0b5838;
  --color-accent: #ff806d;
  --color-success: #17665f;
  --color-warning: #73531a;
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --radius-xl: 36px;
  --shadow-sm: 0 5px 20px #1b583308;
  --shadow-md: 0 16px 45px #1b58330d;
}
body { font-family: 'Avenir Next', Avenir, 'Segoe UI', ui-sans-serif, system-ui, sans-serif; }
.page .editorial-benefits, .page .editorial-plans { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 1.5rem 0; }
.page .editorial-benefits > div, .page .editorial-plans > div { padding: 1.25rem; border: 1px solid var(--color-border); border-radius: 22px; background: #fff; }
.page .editorial-benefits h3, .page .editorial-plans h3 { margin-top: 0; font-size: 1.15rem; }
.page .editorial-plans > div:last-child { background: #eaf6ee; border-color: #b8ddc5; }
.page .plan-price { font-size: 1.5rem; font-weight: 650; color: var(--color-primary); }
.page .prose:has(.editorial-plans) { max-width: 1100px; }
.page .prose .hh-faq { margin-top: 3rem; }
@media(max-width:760px) { .page .editorial-benefits, .page .editorial-plans { grid-template-columns: minmax(0,1fr); } }
h1 { font-weight: 750; letter-spacing: -.045em; }
h2, h3 { font-weight: 600; letter-spacing: -.035em; }
:focus-visible { outline-color: #13734b; }
::selection { background: #c7e7d2; }
.site-header { background: #fff; border-bottom-color: #e8f1eb; }
.header-inner { min-height: 82px; }
.brand-icon { background: var(--color-primary); border-radius: 12px; transform: rotate(-5deg); }
.wordmark { font-weight: 800; }
.wordmark-light { font-weight: 650; }
.menu-toggle { border-radius: 12px; background: #e9f6ed; border-color: #cce7d4; color: #12633f; }
.button { border-radius: 14px; font-weight: 750; }
.button--small { border-radius: 100px; }
.button--outline { border-color: #ded8f5; background: #eff8f1; }
.button--light { background: white; color: #12633f; border-color: white; }
.hero { background: #eaf7ee; position: relative; }
.hero .eyebrow { color: #13734b; letter-spacing: .07em; }
.hero .eyebrow-dot { background: #ff806d; width: 9px; height: 9px; }
.hero h1 { font-size: clamp(2.65rem,5.4vw,4.9rem); line-height: 1.07; font-weight: 800; }
.hero-copy > .body-large { color: #526c5b; }
.hero-caption { gap: .6rem; }
.hero-caption > span { padding: .4rem .75rem; border-radius: 100px; background: #ffffffa0; color: #526c5b; font-weight: 600; }
.hero-art { border-radius: 32px; background: transparent; }
.art-label { background: white; border-radius: 100px; padding: .7rem 1rem; font-weight: 650; color: #12633f; box-shadow: var(--shadow-sm); }
.search-panel { border-radius: 22px; border: 1px solid #cce7d4; padding: 1.4rem; }
.search-field select { font-weight: 550; }
.search-field label { color: #5c7062; }
.search-note { color: #586f60; }
.value-row { color: #586f60; }
.value-row > span:before { color: #13734b; }
.service-card { border-color: #dce7df; padding: 1.7rem; border-radius: 22px; box-shadow: var(--shadow-sm); }
.service-card:hover { border-color: #84bea0; box-shadow: 0 12px 28px #13734b12; }
.service-icon { background: #e1f1e5; color: #13734b; border-radius: 15px; width: 50px; height: 50px; }
.service-card:nth-child(3n+2) .service-icon { background: #fff0e9; color: #a7442d; }
.service-card:nth-child(3n) .service-icon { background: #ddf5ee; color: #17665f; }
.service-card h3 { font-size: 1.15rem; }
.card-arrow { color: #668571; }
.location-card { border: 1px solid #d8e7dd; background: white; border-radius: 16px; padding: 1.2rem; }
.location-card:hover { background: #e4f4e9; }
.section--muted { background: #e6f3e9; }
.step-number { background: #13734b; color: white; border: 0; border-radius: 13px; width: 44px; height: 44px; font-weight: 750; }
.steps article:nth-child(2) .step-number { background: #ffd2c7; color: #763521; }
.steps article:nth-child(3) .step-number { background: #bcebdd; color: #155b54; }
.business-panel { background: #173b2c; border-radius: 32px; position: relative; overflow: hidden; }
.business-panel .eyebrow { color: #a9dfbf; }
.business-panel p { color: #d8ede0; }
.business-details { border-color: #ffffff30; }
.business-details h3 { color: #ffd0c4; }
.editorial h2 { color: #12633f; }
.badge { background: #ffe6dc; color: #813d26; border-radius: 100px; padding: .4rem .75rem; }
.badge--demo { background: #def0e3; color: #12633f; }
.company-card { border-radius: 22px; box-shadow: var(--shadow-sm); }
.company-card--featured { background: #f5fbf6; border-color: #acd4ba; }
.company-avatar { background: #def0e3; color: #13734b; border-radius: 16px; }
.company-card:nth-of-type(2) .company-avatar { background: #ddf5ee; color: #17665f; }
.rating > span:first-child { color: #95600f; }
.filter-panel { border-radius: 20px; }
.filter-panel select { border-radius: 10px; }
.empty-state { background: #eaf4ed; border-color: #bad6c4; border-radius: 18px; }
.chip { border-radius: 100px; background: #f2faf4; color: #3f6650; border-color: #d3e4d9; }
.profile-hero { background: #e1f1e5; border-radius: 28px; }
.contact-card { border-radius: 24px; box-shadow: var(--shadow-md); }
.review-card { border-radius: 20px; }
.review-reply { background: #eff8f1; border-color: #8fc6a5; border-radius: 0 12px 12px 0; }
.price-card { border-radius: 18px; }
.project-grid img { border-radius: 18px; }
.site-footer { background: #e8f1eb; }
.footer-bottom { border-color: #cbded2; }
@media (max-width: 599px) {
  .header-inner { min-height: 76px; }
  .hero-art { max-height: 285px; }
  .hero-art img { object-fit: contain; aspect-ratio: 1.3; }
  .search-panel { padding: 1.15rem; }
  .business-panel { padding: 1.6rem; }
}
/* Keep the primary action ahead of decorative artwork on small screens. */
@media (max-width: 599px) {
  .hero > .container { display: flex; flex-direction: column; }
  .hero-grid { display: contents; }
  .hero-copy { order: 0; margin-bottom: 1.5rem; }
  .hero .search-panel { order: 1; }
  .hero .search-note { order: 2; }
  .hero .hero-art { order: 4; margin-top: 1rem; }
  .hero .value-row { order: 3; gap: .7rem; }
}

/* Real company media and content. */
.company-avatar--image { overflow: hidden; background: white; }
.company-avatar--image img { width: 100%; height: 100%; object-fit: contain; }
.company-content { overflow-wrap: anywhere; }
.company-content h2, .company-content h3 { margin-top: 1.5rem; }
.company-content img { height: auto; }
.contact-card address { font-size: .9rem; font-style: normal; overflow-wrap: anywhere; }

/* Shared company presentation; plan permissions remain in the data/template gates. */
.company-profile .profile-layout { grid-template-columns: minmax(0,1fr) 330px; gap: 1.5rem; }
.company-profile .profile-overview { grid-column: 1 / -1; padding: clamp(1.5rem,4vw,3rem); border: 1px solid #cde5d5; border-radius: 28px; background: radial-gradient(circle at 95% 0%,#d3efdc 0,transparent 55%),#edf7f0; }
.company-profile .profile-title { align-items: flex-start; }
.company-profile .profile-title h1 { margin: 0; }
.company-profile .profile-title .eyebrow { color: var(--color-primary); margin: 0 0 .65rem; }
.company-profile .company-avatar--large { flex-shrink: 0; width: 76px; height: 76px; border-radius: 22px; background: #fff; color: var(--color-primary); border: 1px solid #d5e7db; }
.company-profile .company-rating { margin: 1.25rem 0; font-size: .95rem; }
.company-profile .profile-overview-services .chip { background: #fff; border-color: #cee4d5; }
.company-profile .profile-main { display: grid; gap: 1.5rem; }
.company-profile .profile-section { padding: clamp(1.25rem,3vw,2rem); background: #fff; border: 1px solid var(--color-border); border-radius: 24px; }
.company-profile .profile-section h2 { font-size: 1.5rem; margin: 0 0 1rem; }
.company-profile .profile-section p:last-child { margin-bottom: 0; }
.company-profile .profile-section .body-large { font-size: 1.05rem; line-height: 1.8; }
.company-profile .profile-facts-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; margin: 0; }
.company-profile .profile-facts-grid dt { display: flex; align-items: center; gap: .45rem; color: var(--color-text-muted); font-size: .8rem; font-weight: 500; }
.company-profile .profile-facts-grid dt .icon { width: 18px; height: 18px; color: var(--color-primary); }
.company-profile .profile-facts-grid dd { margin: .4rem 0 0; overflow-wrap: anywhere; font-weight: 600; }
.company-profile .profile-facts-grid address { font-style: normal; }
.company-profile .profile-areas { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.company-profile .profile-areas h3 { font-size: 1rem; margin: 0 0 .75rem; }
.company-profile .contact-card { position: sticky; top: 110px; padding: 1.5rem; }
.company-profile .company-claim { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
@media(max-width:900px) {
 .company-profile .profile-layout { grid-template-columns: minmax(0,1fr); }
 .company-profile .contact-card { position: static; grid-row: 2; }
}
@media(max-width:480px) {
 .company-profile .company-avatar--large { width: 52px; height: 52px; border-radius: 16px; font-size: 1rem; }
 .company-profile .profile-title h1 { font-size: 1.8rem; }
 .company-profile .profile-facts-grid { grid-template-columns: minmax(0,1fr); }
}
.company-card h3 a { text-decoration: none; }
.company-card h3 a:hover { text-decoration: underline; }
.pagination .nav-links { display: flex; gap: .7rem; flex-wrap: wrap; padding-block: 1.5rem; }
.page-numbers { padding: .5rem .8rem; border-radius: 9px; background: white; }
.page-numbers.current { background: var(--color-primary); color: white; }
/* Logo wrappers must not inherit the flexible text-column sizing. */
.company-card-top > .company-avatar--image {
  flex: 0 0 52px;
  min-width: 52px;
  width: 52px;
  height: 52px;
}

/* Local directory: compact search, visible results, editorial text follows cards. */
.listing-intro h1 { max-width: 24ch; }
.search-panel--compact { margin-top: 1.5rem; padding: 1rem; box-shadow: none; border: 1px solid var(--border); }
.search-panel--compact label { font-size: .8rem; }
.listing-group { margin: 1.75rem 0 2.5rem; }
.listing-group > h2 { margin-bottom: .65rem; }
.search-error { background: #fff0eb; color: #8e3015; border-radius: 16px; padding: 1rem; }
.chip--active { background: #13734b; color: white; }
.seo-content { line-height: 1.75; }
@media(max-width: 700px) {
 .listing-intro { padding-top: 1.25rem; }
 .search-panel--compact { gap: .65rem; }
 .search-panel--compact .search-field { padding: .25rem .5rem; }
 .search-panel--compact select { min-height: 40px; }
 .search-panel--compact .button { padding: .75rem 1rem; }
 .result-heading { gap: .75rem; }
}
.listing-search { margin-top: 1rem; }
.listing-search summary { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; cursor: pointer; padding: .85rem 1rem; background: white; border: 1px solid #d9e8df; border-radius: 16px; font-weight: 700; }
.listing-search summary::before { content: '+'; color: #13734b; }
.listing-search[open] summary::before { content: '−'; }
.listing-search summary span { font-size: .85rem; font-weight: 400; color: #53685c; }
.listing-search .search-panel--compact { margin-top: .5rem; }
@media(max-width:700px) {
 .listing-intro { padding-bottom: .5rem; }
 .listing-intro .eyebrow { margin-bottom: .5rem; }
 .listing-intro h1 { font-size: 2rem; }
 .listing-intro > .body-large { font-size: 1rem; line-height: 1.5; }
 .listing-intro + .section { padding-top: 1rem; }
 .listing-intro + .section .result-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; margin-bottom: 1rem; gap: .5rem; }
 .listing-intro + .section .result-heading .small { font-size: .75rem; line-height: 1.45; margin: .35rem 0; }
 .listing-intro + .section .result-heading > .chip { font-size: .75rem; padding: .4rem .65rem; }
 .listing-group { margin-top: 1rem; }
 .listing-group > .small { margin: .4rem 0 .8rem; font-size: .75rem; line-height: 1.45; }
}

/* Rich text wrappers retain the spacing of the original paragraphs. */
.eyebrow > p { margin: 0; }
.section-heading > div:last-child:not(:first-child) { max-width: 290px; color: var(--color-text-muted); }
.editorial > div:not(.eyebrow) { max-width: 590px; margin: 1.5rem auto; }

.hh-faq { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.7fr); gap:3rem; margin:4rem 0; padding:2.5rem; border-radius:26px; background:#eaf5ee; }
.hh-faq-heading h2 { margin:.6rem 0 1rem; }
.hh-faq-heading > p:last-child { color:#53685c; }
.hh-faq-items { display:grid; gap:12px; align-content:start; min-width:0; }
.hh-faq-item { background:#fff; border:1px solid #d5e8dd; border-radius:16px; overflow:hidden; }
.hh-faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 22px; cursor:pointer; font-weight:600; list-style:none; }
.hh-faq-item summary::-webkit-details-marker { display:none; }
.hh-faq-item summary:focus-visible { outline:3px solid #13734b; outline-offset:-4px; border-radius:16px; }
.hh-faq-item[open] { border-color:#83b79a; }
.hh-faq-toggle { position:relative; flex:0 0 28px; height:28px; border-radius:50%; background:#eaf5ee; }
.hh-faq-toggle::before, .hh-faq-toggle::after { content:""; position:absolute; background:#13734b; border-radius:2px; }
.hh-faq-toggle::before { width:12px; height:2px; top:13px; left:8px; }
.hh-faq-toggle::after { width:2px; height:12px; top:8px; left:13px; }
.hh-faq-item[open] .hh-faq-toggle::after { display:none; }
.hh-faq-answer { padding:0 22px 20px; color:#53685c; overflow-wrap:anywhere; }
.hh-faq-answer > :last-child { margin-bottom:0; }
.hh-faq-answer a { color:#13734b; text-decoration:underline; }
@media(max-width:760px) { .hh-faq { grid-template-columns:1fr; gap:1.25rem; padding:1.5rem; margin:2.5rem 0; } .hh-faq-item summary { padding:18px; } .hh-faq-answer { padding:0 18px 18px; } }

.profile-portfolio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.profile-portfolio img{width:100%;height:auto;border-radius:16px}@media(max-width:600px){.profile-portfolio{grid-template-columns:1fr}}

/* Readable ordinary pages, including the editable legal documents. */
.page .prose { max-width: 76ch; margin-inline: auto; }
.page .prose h2 { margin-top: 2rem; }
.page .prose p, .page .prose li { line-height: 1.75; }
.page .prose li + li { margin-top: .7rem; }
.page .prose code { overflow-wrap: anywhere; }
