.home-hero_component{background:var(--color-pine);color:var(--color-cream);overflow:hidden}
.home-hero_inner{display:grid;min-height:clamp(38rem,68vw,52rem);grid-template-columns:minmax(0,.92fr) minmax(28rem,1.08fr);align-items:stretch;gap:clamp(var(--space-7),6vw,var(--space-10))}
.home-hero_content{display:flex;justify-content:center;flex-direction:column;padding-block:clamp(var(--space-8),9vw,var(--space-10))}
.home-hero_content h1{max-width:9ch;margin-bottom:var(--space-5);font-size:var(--type-display-xl)}
.home-hero_intro{max-width:42rem;margin-bottom:var(--space-6);color:color-mix(in srgb,var(--color-cream) 90%,transparent);font-size:var(--type-body-lg)}
.home-hero_figure{position:relative;margin:0;background:var(--color-forest)}
.home-hero_figure::before{content:"";position:absolute;z-index:1;inset:var(--space-6) calc(var(--space-6) * -1) calc(var(--space-6) * -1) var(--space-6);border:1px solid color-mix(in srgb,var(--color-brand-accent) 75%,transparent);pointer-events:none}
.home-hero_figure img{width:100%;height:100%;object-fit:cover;object-position:48% center;filter:saturate(.82) contrast(.96)}
.home-hero_figure figcaption{position:absolute;right:var(--space-4);bottom:var(--space-4);padding:.35rem .55rem;background:color-mix(in srgb,var(--color-pine) 78%,transparent);font-size:.68rem;letter-spacing:.04em}

.fact-strip_component{border-bottom:1px solid var(--color-border-primary);background:var(--color-background-secondary)}
.fact-strip_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.fact-strip_grid>div{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-5) clamp(var(--space-4),3vw,var(--space-7));border-right:1px solid var(--color-border-primary)}
.fact-strip_grid>div:last-child{border-right:0}
.fact-strip_grid strong{color:var(--color-brand-primary);font-size:clamp(1.55rem,3vw,2.5rem);font-weight:500;letter-spacing:-.04em}
.fact-strip_grid span{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}

.home-problem_grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(20rem,1.1fr);gap:clamp(var(--space-7),10vw,var(--space-10));align-items:start}
.home-problem_grid h2{max-width:12ch;margin:0}
.home-problem_grid p{color:var(--color-text-secondary)}
.home-problem_grid .lead{color:var(--color-text-primary)}

.service-group_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(var(--space-4),2.4vw,var(--space-6))}
.service-group_card{display:flex;min-width:0;flex-direction:column;border:1px solid var(--color-border-primary);border-radius:var(--radius-control);background:var(--color-surface-raised);overflow:hidden}
.service-group_card>img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.84) contrast(.96)}
.service-group_body{display:flex;flex:1;flex-direction:column;padding:clamp(var(--space-5),2.8vw,var(--space-7))}
.service-group_body h3{max-width:13ch}
.service-group_body>p{color:var(--color-text-secondary)}
.service-group_body ul{display:grid;gap:0;margin:auto 0 0;padding:var(--space-5) 0 0;list-style:none}
.service-group_body li{border-top:1px solid var(--color-border-primary)}
.service-group_body a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;color:var(--color-brand-primary);font-weight:600;text-decoration:none}

.service-card_grid.is-featured{grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch}
.service-card_grid.is-featured .service-card_component{grid-column:span 4}
.service-card_grid.is-featured .service-card_component:nth-child(1),.service-card_grid.is-featured .service-card_component:nth-child(6){grid-column:span 8;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr)}
.service-card_grid.is-featured .service-card_component:nth-child(1) .service-card_media-link,.service-card_grid.is-featured .service-card_component:nth-child(6) .service-card_media-link{height:100%}
.service-card_grid.is-featured .service-card_component:nth-child(1) .service-card_media,.service-card_grid.is-featured .service-card_component:nth-child(6) .service-card_media{height:100%;aspect-ratio:auto}
.service-card_grid.is-related{grid-template-columns:repeat(3,minmax(0,1fr))}

.story-split_grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(20rem,.95fr);align-items:center;gap:clamp(var(--space-7),8vw,var(--space-10))}
.story-split_media{position:relative}
.story-split_media img{width:100%;aspect-ratio:4/3;border-radius:var(--radius-media);object-fit:cover}
.story-split_note{position:absolute;right:clamp(var(--space-4),4vw,var(--space-7));bottom:calc(var(--space-6) * -1);display:grid;min-width:12rem;padding:var(--space-5);border-radius:var(--radius-card);background:var(--color-brand-accent);color:var(--color-pine);box-shadow:var(--shadow-card)}
.story-split_note span{font-size:.78rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.story-split_note strong{font-size:2rem;font-weight:500;line-height:1}
.story-split_content{padding-block:var(--space-7)}
.story-split_content p{color:var(--color-text-secondary)}
.story-split_content .lead{color:var(--color-text-primary)}
.story-split_content .text-link{margin-top:var(--space-4)}

.origin_grid{display:grid;grid-template-columns:minmax(18rem,.82fr) minmax(0,1.18fr);align-items:center;gap:clamp(var(--space-7),10vw,var(--space-10))}
.origin_word{display:flex;min-height:24rem;justify-content:flex-end;flex-direction:column;padding:clamp(var(--space-6),5vw,var(--space-9));background:var(--color-brand-accent);color:var(--color-pine)}
.origin_word span{font-size:clamp(3.8rem,9vw,8rem);font-weight:500;line-height:.82;letter-spacing:-.065em}
.origin_word small{margin-top:var(--space-4);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.origin_content{max-width:42rem}
.origin_content p{color:var(--color-text-secondary)}
.origin_content .lead{color:var(--color-text-primary)}
.origin_content .text-link{margin-top:var(--space-4)}

.process_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);margin:0;padding:0;list-style:none;counter-reset:step}
.process_grid li{min-height:17rem;padding:clamp(var(--space-5),3vw,var(--space-7));border-top:1px solid color-mix(in srgb,var(--color-sage) 42%,transparent)}
.process_grid li::after{display:none}
.process_grid li>span{display:block;margin-bottom:clamp(var(--space-7),6vw,var(--space-9));color:var(--color-brand-accent);font-size:.8rem;font-weight:600;letter-spacing:.18em}
.process_grid h3{max-width:12ch;margin-bottom:var(--space-4)}
.process_grid p{position:relative;z-index:1;color:var(--color-sage)}

.areas_layout{display:grid;grid-template-columns:minmax(18rem,.78fr) minmax(0,1.22fr);gap:clamp(var(--space-6),5vw,var(--space-9))}
.areas_map{display:flex;min-height:30rem;align-items:flex-end;padding:clamp(var(--space-6),4vw,var(--space-8));border-radius:var(--radius-control);background:var(--color-pine);color:var(--color-cream)}
.areas_map::before,.areas_map::after{display:none}
.areas_map-copy{max-width:20rem}
.areas_map-copy svg{margin-bottom:var(--space-5);color:var(--color-brand-accent)}
.areas_map-copy strong{display:block;margin-bottom:var(--space-3);font-size:var(--type-heading-md);font-weight:500;line-height:1.1}
.areas_map-copy p{color:var(--color-sage)}
.town-list_component{display:grid}
.town-list_component a{display:grid;grid-template-columns:3rem 1fr auto auto;align-items:center;gap:var(--space-4);padding:clamp(var(--space-4),2.3vw,var(--space-6)) 0;border-bottom:1px solid var(--color-border-primary);text-decoration:none}
.town-list_component a:first-child{border-top:1px solid var(--color-border-primary)}
.town-list_component a>span{color:var(--color-ember);font-size:.76rem;font-weight:600;letter-spacing:.14em}
.town-list_component a>strong{font-size:clamp(1.25rem,2vw,1.8rem);font-weight:500}
.town-list_component a>small{color:var(--color-text-secondary)}
.town-list_component a>svg{color:var(--color-brand-primary);transition:transform var(--motion-fast) ease}
.town-list_component a:hover>svg{transform:translateX(5px)}

.proof_grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(var(--space-7),10vw,var(--space-10))}
.proof_grid p{color:var(--color-text-secondary)}
.proof_grid .lead{color:var(--color-text-primary)}

.editorial_grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(var(--space-7),10vw,var(--space-10))}
.editorial_grid .rich-text{max-width:44rem}
.principle_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
.principle_grid article{min-height:16rem;padding:clamp(var(--space-5),3vw,var(--space-7)) 0;border-top:1px solid var(--color-border-primary)}
.principle_grid article>span{display:block;margin-bottom:var(--space-8);color:var(--color-ember);font-size:.78rem;font-weight:600;letter-spacing:.16em}
.principle_grid p{color:var(--color-text-secondary)}

.detail_grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(var(--space-7),7vw,var(--space-10));align-items:start}
.detail_grid>*:nth-child(n+3){margin-top:var(--space-7)}
.faq_layout{display:grid;grid-template-columns:minmax(18rem,.75fr) minmax(0,1.25fr);gap:clamp(var(--space-7),8vw,var(--space-10));align-items:start}
.faq_layout>div:first-child{position:sticky;top:calc(var(--layout-header-height) + var(--space-6))}

.location-card_grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
.location-card_component{padding:clamp(var(--space-5),3.5vw,var(--space-8));border:1px solid var(--color-border-primary);border-radius:var(--radius-card);background:var(--color-surface-raised)}
.location-card_component>div{display:flex;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-8);color:var(--color-text-secondary);font-size:.78rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.location-card_component>div span{color:var(--color-ember)}
.location-card_component h2{font-size:var(--type-heading-lg)}
.location-card_component h2 a{text-decoration:none}
.location-card_component p{margin-bottom:var(--space-5);color:var(--color-text-secondary)}
.town-detail_grid,.town-services_grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(var(--space-7),8vw,var(--space-10));align-items:start}
.property-note_grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin:0;padding:0;list-style:none}
.property-note_grid li{display:flex;min-height:10rem;flex-direction:column;justify-content:space-between;padding:var(--space-5);border:1px solid var(--color-border-primary);border-radius:var(--radius-card);background:var(--color-surface-raised)}
.property-note_grid span{color:var(--color-ember);font-size:.75rem;font-weight:600;letter-spacing:.14em}
.property-note_grid strong{font-size:1.08rem;font-weight:500}
.town-services_list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--color-border-primary)}
.town-services_list a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border-right:1px solid var(--color-border-primary);border-bottom:1px solid var(--color-border-primary);text-decoration:none}
.town-services_list a:nth-child(2n){border-right:0}
.town-services_list svg{color:var(--color-brand-primary)}

.quote-page_component{padding-block:clamp(var(--space-6),5vw,var(--space-8));background:linear-gradient(90deg,var(--color-background-primary) 0 43%,var(--color-surface-muted) 43% 100%)}
.quote-page_grid{display:grid;grid-template-columns:minmax(18rem,.82fr) minmax(0,1.18fr);gap:clamp(var(--space-7),7vw,var(--space-10));align-items:start}
.quote-page_intro{position:sticky;top:calc(var(--layout-header-height) + var(--space-6));padding-block:var(--space-4)}
.quote-page_intro h1{max-width:10ch}
.quote-page_intro>.lead{color:var(--color-text-secondary)}
.quote-page_steps{display:grid;gap:var(--space-4);margin:var(--space-7) 0;padding:0;list-style:none}
.quote-page_steps li{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3)}
.quote-page_steps svg{margin-top:.2rem;color:var(--color-ember)}
.quote-page_contact{display:flex;align-items:baseline;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--color-border-primary)}
.quote-page_contact span{color:var(--color-text-secondary);font-size:.88rem}
.quote-page_contact a{color:var(--color-brand-primary);font-size:1.15rem;font-weight:600;text-decoration:none}

.utility-hero_component{display:flex;min-height:70svh;align-items:center;background:var(--color-background-primary)}
.utility-hero_inner{padding-block:var(--space-10)}
.utility-hero_inner h1{max-width:12ch}
.utility-hero_inner .lead{max-width:42rem;color:var(--color-text-secondary)}
.utility-hero_icon{display:flex;width:4.5rem;height:4.5rem;align-items:center;justify-content:center;margin-bottom:var(--space-6);border-radius:50%;background:var(--color-brand-primary);color:var(--color-cream)}
.legal-hero_component{padding-block:clamp(var(--space-9),10vw,var(--space-10));background:var(--color-pine);color:var(--color-cream)}
.legal-hero_component h1{max-width:14ch}
.legal-hero_component p:last-child{color:var(--color-sage)}

@media (max-width:1100px){
  .service-card_grid.is-featured .service-card_component{grid-column:span 6}
  .service-card_grid.is-featured .service-card_component:nth-child(1),.service-card_grid.is-featured .service-card_component:nth-child(6){grid-column:span 12}
  .areas_layout{grid-template-columns:1fr}
  .areas_map{min-height:24rem}
}

@media (max-width:820px){
  .home-hero_inner{min-height:0;grid-template-columns:1fr;gap:0}
  .home-hero_content{padding-block:var(--space-8) var(--space-7)}
  .home-hero_figure{min-height:23rem;margin-inline:calc(var(--space-4) * -1)}
  .home-hero_figure::before{display:none}
  .home-hero_figure img{min-height:23rem;max-height:30rem}
  .service-group_grid{grid-template-columns:1fr}
  .home-problem_grid,.origin_grid,.story-split_grid,.proof_grid,.editorial_grid,.detail_grid,.faq_layout,.town-detail_grid,.town-services_grid,.quote-page_grid{grid-template-columns:1fr}
  .story-split_content{padding-bottom:0}
  .process_grid{grid-template-columns:1fr}
  .process_grid li{min-height:15rem}
  .faq_layout>div:first-child,.quote-page_intro{position:static}
  .detail_grid>*:nth-child(n+3){margin-top:var(--space-4)}
  .quote-page_component{background:var(--color-background-primary)}
  .location-card_grid{grid-template-columns:1fr}
  .principle_grid{grid-template-columns:1fr}
  .principle_grid article{min-height:15rem}
}

@media (max-width:620px){
  .fact-strip_grid{grid-template-columns:1fr}
  .fact-strip_grid>div{display:grid;grid-template-columns:4.5rem 1fr;align-items:center;padding-block:var(--space-3);border-right:0;border-bottom:1px solid var(--color-border-primary)}
  .fact-strip_grid>div:last-child{border-bottom:0}
  .fact-strip_grid strong{font-size:1.45rem}
  .fact-strip_grid span{font-size:.72rem}
  .service-card_grid.is-featured{grid-template-columns:1fr}
  .service-card_grid.is-featured .service-card_component,.service-card_grid.is-featured .service-card_component:nth-child(1),.service-card_grid.is-featured .service-card_component:nth-child(6){display:flex;grid-column:auto}
  .service-card_grid.is-related{grid-template-columns:1fr}
  .town-list_component a{grid-template-columns:2.5rem 1fr auto}
  .town-list_component a>small{display:none}
  .property-note_grid,.town-services_list{grid-template-columns:1fr}
  .town-services_list a,.town-services_list a:nth-child(2n){border-right:0}
}
