/* Shared foundations for EVERY model, service, city, guide and calculator. */
.seo-page { --seo-text:#34473e; --seo-heading:#163d2b; --muted:#34473e; min-height:100vh; background:#f4f7f5; color:var(--seo-text); }
.seo-head { background:#fff; border-bottom:1px solid #dce8e0; }
.seo-head .nav { height:auto; min-height:88px; gap:28px; }
.seo-head .brand { min-width:0; }
.seo-head .links { display:flex; position:static; flex-direction:row; align-items:center; gap:24px; padding:0; box-shadow:none; color:#254733; font-size:14px; }
.seo-head .links a { padding:12px 0; min-height:44px; }
.seo-head .nav-contact { display:inline-flex; align-items:center; justify-content:center; flex:none; border:0; cursor:pointer; font:700 14px/1.4 'DM Sans',Arial,sans-serif; }
.seo-main { padding:32px 0 64px; }
.seo-hero { background:linear-gradient(120deg,#08362f,#126247); color:#fff; padding:44px 40px; border-radius:18px; margin-bottom:28px; }
.seo-hero>.wrap { width:100%; margin:0; }
.seo-page .eyebrow { display:inline-block; color:#07622d; font-size:13px; line-height:1.5; letter-spacing:.1em; }
.seo-hero .eyebrow.light { color:#d9f5c8; }
.seo-hero h1 { font:800 clamp(32px,4vw,52px)/1.16 Manrope,Arial,sans-serif; letter-spacing:-.035em; max-width:950px; margin:14px 0 18px; color:#fff; overflow-wrap:anywhere; }
.seo-hero p { font-size:18px; line-height:1.75; color:#f2faf5; max-width:780px; margin:0; }
.seo-hero .button { margin-top:24px; }
.seo-hero .button-green { --button-pulse-rgb:255,255,255; background:#fff; color:#075d31; }
.seo-hero .button-green:hover { background:#edf6ef; }
.seo-content { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:28px; align-items:start; }
.seo-copy,.seo-aside,.guide-article,.seo-local,.seo-cities,.intent-related { min-width:0; background:#fff; border:1px solid #dce8e0; border-radius:16px; padding:30px; }
.seo-copy h2,.guide-article h2,.seo-local h2,.intent-related h2,.seo-cities h2 { font:800 clamp(24px,2.5vw,30px)/1.3 Manrope,Arial,sans-serif; letter-spacing:-.025em; color:var(--seo-heading); margin:32px 0 14px; }
.seo-copy>h2:first-child,.seo-copy>.eyebrow+h2 { margin-top:12px; }
.seo-local h2:first-child,.guide-article h2:first-child,.intent-related h2:first-child,.seo-cities h2:first-child { margin-top:0; }
.seo-copy h3,.guide-article h3,.seo-local h3 { font:800 20px/1.4 Manrope,Arial,sans-serif; color:var(--seo-heading); margin:26px 0 12px; }
.seo-copy p,.seo-copy li,.seo-aside p,.guide-article p,.guide-article li,.seo-local p,.seo-local li { font-size:16px; line-height:1.8; color:var(--seo-text); }
.seo-copy p,.seo-aside p,.guide-article p,.seo-local p { margin:0 0 18px; }
.seo-copy>:last-child,.guide-article>:last-child,.seo-local>:last-child { margin-bottom:0; }
.seo-copy ul,.guide-article ul { margin:0 0 22px; padding-left:23px; }
.seo-copy li+li,.guide-article li+li { margin-top:8px; }
.seo-copy a:not(.button),.guide-article a:not(.button) { color:#07622d; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.seo-copy a:hover,.guide-article a:hover { color:#05461f; }
.seo-copy .text-link { margin-top:0; }
.seo-aside { padding:24px; }
.seo-aside h2 { font:800 23px/1.35 Manrope,Arial,sans-serif; color:var(--seo-heading); margin:24px 0 12px; }
.seo-aside>h2:first-child { margin-top:0; }
.seo-aside .button { width:100%; margin-top:4px; }
.seo-aside a:not(.button) { display:flex; align-items:center; min-height:44px; color:#07622d; font-size:14px; line-height:1.6; font-weight:700; margin-top:12px; overflow-wrap:anywhere; }
.seo-aside a:hover { text-decoration:underline; text-underline-offset:3px; }
.model-photo { margin:0; }
.model-photo+.model-photo { margin-top:24px; }
.model-photo img { display:block; width:100%; height:auto; max-height:330px; object-fit:contain; background:#eef4f0; border-radius:10px; }
.model-photo figcaption { margin-top:12px; color:#34473e; font-size:14px; line-height:1.6; }
.model-photo figcaption strong { display:block; color:#163d2b; font-size:16px; margin-bottom:3px; }
.model-photo-portrait img { height:300px; padding:16px; }
.catalog-pdf { display:block; width:100%; height:300px; border:0; border-radius:10px; background:#edf4ef; margin-bottom:18px; }
.catalog-pdf-link { min-height:44px; }
.seo-cities,.intent-related,.seo-local { margin-top:28px; }
.seo-cities h2 { font-size:24px; }
.seo-city-groups { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(220px,.85fr); gap:28px; }
.seo-city-group h3 { font:800 18px/1.4 Manrope,Arial,sans-serif; margin:0 0 14px; color:#163d2b; }
.seo-city-group+.seo-city-group { border-left:1px solid #dce8e0; padding-left:26px; }
.seo-city-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px 18px; }
.seo-city-grid a { display:flex; align-items:center; min-height:44px; color:#07622d; font-size:14px; line-height:1.6; font-weight:700; }
.seo-city-grid a:hover { text-decoration:underline; }
.seo-foot { background:#102f2b; color:#edf6ef; padding:26px 0; font-size:14px; line-height:1.6; }

/* Consistent reading rhythm and no cramped CTA/card rows. */
.guide-article { padding:36px; }
.guide-lead { font-size:18px!important; }
.guide-article h2[id] { scroll-margin-top:24px; }
.guide-toc { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 20px; margin:28px 0 36px; padding:22px; border:1px solid #cfe1d4; border-radius:12px; background:#f5faf6; }
.guide-toc a { display:flex; align-items:center; min-height:44px; font-size:14px; line-height:1.6; }
.guide-facts,.simple-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:26px 0; }
.seo-copy .guide-facts { grid-template-columns:1fr; }
.guide-facts article,.simple-list article { min-width:0; padding:20px; border-radius:12px; background:#f2f8f3; border:1px solid #d0e5d5; }
.guide-facts strong { display:block; color:#07622d; font-size:16px; margin-bottom:8px; }
.guide-facts span { color:#34473e; font-size:16px; line-height:1.7; }
.simple-list h3 { font-size:18px; margin:0 0 10px; }
.simple-list p { font-size:16px; margin:0; }
.guide-cta { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:32px; padding:24px; border-radius:12px; background:#0a4a38; color:#fff; }
.guide-cta p { flex:1 1 240px; margin:0; color:#f2faf5; font-size:16px; line-height:1.75; }
.guide-cta .button { flex:none; max-width:100%; color:#075d31; text-decoration:none; }
.intent-related h2 { font-size:25px; }
.intent-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.intent-related-grid a { display:flex; align-items:center; min-height:66px; padding:16px; border:1px solid #dce8e0; border-radius:10px; color:#07622d; font-size:16px; font-weight:700; line-height:1.5; background:#f8fbf9; }
.intent-related-grid a:hover { border-color:#83b798; background:#eef7f0; }
.calculator-page-main .calculator-layout { align-items:start; gap:36px; }
.calculator-page-main .calculator-card { max-width:650px; }
.calculator-page-main .guide-article { margin-top:28px; }
.calculator-page-main .calculator-result p { color:#34473e; }
.model-comparison { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:26px 0 32px; }
.model-comparison .model-photo { margin:0; padding:16px; background:#f5faf6; border:1px solid #dce8e0; border-radius:12px; }
.model-comparison img { width:100%; height:180px; padding:8px; }
.model-comparison figcaption { margin-top:12px; }

/* Local coverage, maps and FAQs. */
.seo-local-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.84fr); gap:30px; align-items:stretch; }
.seo-local-grid>div { min-width:0; }
.seo-local .eyebrow+h2 { margin-top:12px; }
.seo-neighborhoods { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 18px; padding:0; list-style:none; }
.seo-neighborhoods li { padding:8px 12px; border:1px solid #cfe1d4; border-radius:999px; background:#f5faf6; color:#254e34; font-size:14px; font-weight:700; line-height:1.5; }
.seo-local .seo-local-note { font-size:14px; margin:16px 0 0; }
.seo-map-card { display:flex; flex-direction:column; padding:12px; border-radius:12px; background:#edf4ef; border:1px solid #d7e7db; }
.seo-map-card iframe { display:block; width:100%; height:295px; border:0; border-radius:8px; background:#dce7df; }
.seo-map-card a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; margin-top:10px; padding:10px; border-radius:8px; color:#07622d; background:#fff; font-size:14px; font-weight:700; text-align:center; line-height:1.5; }
.seo-map-card a:hover { text-decoration:underline; }
.seo-local .seo-faq { margin-top:28px; padding-top:28px; border-top:1px solid #dce8e0; }
.seo-faq h2 { margin:0 0 18px; }
.seo-faq details { border-top:1px solid #dce8e0; }
.seo-faq details:last-child { border-bottom:1px solid #dce8e0; }
.seo-faq summary { padding:18px 34px 18px 0; color:#163d2b; font-size:16px; line-height:1.6; font-weight:700; cursor:pointer; list-style:none; position:relative; }
.seo-faq summary::-webkit-details-marker { display:none; }
.seo-faq summary::after { content:'+'; position:absolute; right:2px; top:14px; color:#087e37; font-size:23px; font-weight:400; }
.seo-faq details[open] summary::after { content:'−'; }
.seo-faq details p { padding:0 30px 20px 0; margin:0; max-width:75ch; }
.seo-page .quote-dialog p { color:#34473e; }

@media(max-width:1000px) {
  .seo-content { grid-template-columns:minmax(0,1fr) 290px; gap:22px; }
  .seo-copy { padding:26px; }
  .seo-hero { padding:36px 30px; }
  .seo-city-groups { grid-template-columns:1fr; }
  .seo-city-group+.seo-city-group { border-left:0; border-top:1px solid #dce8e0; padding:24px 0 0; }
  .guide-cta { flex-direction:column; align-items:stretch; }
  .guide-cta p { flex-basis:auto; }
  .model-comparison { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:800px) {
  .seo-head .nav { gap:14px; }
  .seo-head .links { gap:16px; }
  .seo-content,.seo-local-grid { grid-template-columns:1fr; gap:22px; }
  .seo-aside { padding:24px; }
  .seo-aside .model-photo img { max-height:350px; }
  .model-photo-portrait img { height:300px; }
  .intent-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guide-facts,.simple-list { grid-template-columns:1fr; }
}
@media(max-width:680px) {
  .seo-head .nav { min-height:0; padding-top:10px; padding-bottom:10px; flex-wrap:wrap; gap:8px 14px; }
  .seo-head .brand { order:1; }
  .seo-head .nav-contact { order:2; margin-left:auto; padding:12px; font-size:14px; }
  .seo-head .links { order:3; flex-basis:100%; width:100%; margin:0; gap:6px; border-top:1px solid #e3ece6; }
  .seo-head .links a { flex:1; display:flex; align-items:center; justify-content:center; padding:10px 4px; font-size:14px; line-height:1.4; text-align:center; white-space:normal; }
  .seo-main { padding:20px 0 44px; }
  .seo-hero { padding:28px 22px; margin-bottom:22px; border-radius:14px; }
  .seo-hero h1 { font-size:clamp(30px,7.8vw,42px); letter-spacing:-.025em; }
  .seo-hero p { font-size:16px; line-height:1.75; }
  .seo-hero .button { width:100%; }
  .seo-copy,.seo-aside,.guide-article,.seo-local,.seo-cities,.intent-related { padding:22px; border-radius:14px; }
  .seo-copy h2,.guide-article h2,.seo-local h2 { font-size:25px; }
  .seo-page .eyebrow { font-size:13px; letter-spacing:.07em; }
  .seo-cities,.intent-related,.seo-local { margin-top:22px; }
  .seo-city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 14px; }
  .guide-toc { grid-template-columns:1fr; padding:18px; margin:24px 0 28px; }
  .guide-cta { padding:20px; margin-top:28px; }
  .guide-cta .button { width:100%; white-space:normal; }
  .seo-neighborhoods { gap:8px; }
  .seo-map-card iframe { height:270px; }
  .seo-faq summary { padding-right:30px; }
  .seo-faq details p { padding-right:0; }
  .seo-foot { padding:22px 0; }
}
@media(max-width:430px) {
  .seo-copy,.seo-aside,.guide-article,.seo-local,.seo-cities,.intent-related { padding:20px; }
  .seo-hero { padding:26px 20px; }
  .intent-related-grid,.model-comparison { grid-template-columns:1fr; }
  .model-comparison img { height:200px; }
  .seo-city-grid { grid-template-columns:1fr; }
}
