/* Shared service presentation, based on the approved deratization page. */
.modern-site { background:#f4f8fa; }
.modern-site .modern-service { background:#f4f8fa; }
.modern-site .modern-hero {
  position:relative; isolation:isolate; display:flex; align-items:center;
  width:calc(100% - 48px); max-width:1320px; min-height:460px;
  margin:16px auto 24px; padding:52px 64px;
  border:0; border-radius:20px; overflow:hidden; color:#ffffff;
  background:#242424 var(--modern-hero-image) 65% center / cover no-repeat;
}
.modern-site .modern-hero::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(90deg,rgba(36,36,36,.95),rgba(36,36,36,.8) 43%,rgba(36,36,36,.18) 100%);
}
.modern-site .modern-hero__copy { width:62%; max-width:800px; }
.modern-site .modern-hero h1 { color:#ffffff; margin:0; font:650 clamp(36px,3.1vw,50px)/1.16 var(--font-display); letter-spacing:-.02em; max-width:26ch; text-wrap:balance; }
.modern-site .modern-hero__breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; color:#e8f1f5; font:500 13px/1.5 var(--font-text); margin-bottom:24px; }
.modern-site .modern-hero__breadcrumbs a { color:inherit; text-underline-offset:4px; }
.modern-site .modern-hero__facts { display:grid; gap:14px; max-width:54ch; list-style:none; margin:26px 0 28px; padding:0; }
.modern-site .modern-hero__facts li { display:flex; align-items:flex-start; gap:12px; color:#ffffff; font:500 16px/1.5 var(--font-text); }
.modern-site .modern-hero__facts svg { width:24px; height:24px; flex:0 0 24px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.modern-site .modern-hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.modern-site .modern-hero__cta { min-width:246px; }
.modern-site .modern-hero__secondary { min-height:44px; display:inline-flex; align-items:center; color:#ffffff; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.modern-site .modern-hero__cta:focus-visible { outline:3px solid #ffffff; outline-offset:5px; }
.modern-site .service-benefits { background:#102a43; color:#ffffff; }
.modern-site .service-benefits ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px 24px; margin-block:0; padding-block:20px; list-style:none; }
.modern-site .service-benefits li { display:grid; grid-template-columns:36px minmax(0,1fr); align-items:center; gap:12px; min-height:44px; min-width:0; }
.modern-site .service-benefits__icon { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#334e68; color:#bfe7ee; }
.modern-site .service-benefits svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.modern-site .service-benefits strong { font:550 14px/1.4 var(--font-text); }

/* Shared rhythm and typography; each service retains its own content. */
.modern-site .modern-service { --soil-deep:#123b5d; --soil-green:#0e7490; --soil-line:#cbd9e2; --soil-paper:#f4f8fa; --soil-yellow:#0e7490; --soil-ink:#123b5d; --soil-muted:#526d82; }
.modern-site .modern-service > :is(.section,.service-diagnosis,.service-decision,.compact-process,.soil-section) { padding-block:clamp(36px,4vw,60px); border:0; background:#f4f8fa; }
.modern-site .modern-service > :is(.service-depth,.svc-method,.service-price,.service-faq-v3,.soil-programs,.soil-cost,.soil-faq) { background:#f4f8fa; }
/* Soil research uses the shared light surface, including its responsive table. */
.modern-site .soil-programs { color:var(--soil-ink); }
.modern-site .soil-programs :is(.soil-section__head h2,.soil-program-table,.soil-program-table tbody th) { color:var(--soil-ink); }
.modern-site .soil-programs :is(.soil-section__head p,.soil-program-table td,.soil-program-note) { color:var(--ink-700); }
.modern-site .soil-programs .soil-program-table thead th,
.modern-site .soil-programs .soil-program-table td::before { color:var(--soil-muted); }
.modern-site .soil-programs .soil-program-table :is(th,td,tr) { border-color:var(--soil-line); }
.modern-site .soil-quote .form-privacy-note,
.modern-site .soil-quote .form-privacy-note a { color:var(--soil-paper); }
.modern-site .modern-service :is(.eyebrow,.service-depth__number,.service-diagnosis__signals ol>li>span,.service-assurance__num) { display:none; }
.modern-site .modern-service :is(h2,h3,h4) { font-family:var(--font-text); letter-spacing:-.02em; text-wrap:pretty; }
.modern-site .modern-service h2 { font-weight:650; font-size:clamp(27px,2.6vw,36px); line-height:1.2; }
.modern-site .modern-service h3 { font-weight:600; font-size:21px; line-height:1.3; }
.modern-site .modern-service p { font-weight:400; }
.modern-site .modern-service :is(.section-head,.service-depth__head,.service-diagnosis__head) { margin-bottom:28px; }
.modern-site .modern-service :is(.section-head,.service-depth__head,.service-diagnosis__head) p { margin-top:14px; max-width:65ch; line-height:1.6; }
.modern-site .modern-service :is(.svc-method__card,.service-depth__card,.service-diagnosis__result,.service-decision__card,.compact-process__item,.service-assurance__card) { box-shadow:none; border:1px solid #cbd9e2; border-radius:12px; background:#ffffff; color:#123b5d; }
.modern-site .modern-service .service-depth__card--accent { background:#e8f1f5; }
.modern-site .modern-service .service-diagnosis__signals ol>li { grid-template-columns:1fr; }
.modern-site .modern-service :is(.service-anchorbar,.soil-jump) { position:static; border:0; border-bottom:1px solid #cbd9e2; background:#ffffff; }
.modern-site .modern-service :is(.service-anchorbar,.soil-jump) .wrap { gap:22px; }
.modern-site .modern-service :is(.service-anchorbar,.soil-jump) a { display:inline-flex; align-items:center; min-height:52px; padding-block:10px; color:#526d82; font-size:13px; font-weight:600; }
.modern-site .modern-service .faq-list { display:block; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.modern-site .modern-service .faq-list details { margin:0; padding:0; border:0; border-bottom:1px solid #cbd9e2; border-radius:0; background:transparent; box-shadow:none; }
.modern-site .modern-service .faq-list summary { min-height:66px; padding:20px 0; font-size:16px; font-weight:600; }
.modern-site .modern-service .faq-list details p { padding:0 0 20px; line-height:1.6; }

/* Price choices: no internal scroll boxes or oversized selector cards. */
.modern-site .modern-service .price-widget { overflow:hidden; box-shadow:none; border:1px solid #cbd9e2; border-radius:12px; background:#ffffff; }
.modern-site .modern-service :is(.price-panes,.price-pane) { padding:0; }
.modern-site .modern-service .price-pane.is-active { display:block; }
.modern-site .modern-service .price-chipset { display:flex; flex-direction:row; flex-wrap:wrap; gap:6px; max-height:none; overflow:visible; margin:0; padding:14px; background:#e8f1f5; border:0; border-bottom:1px solid #cbd9e2; }
.modern-site .modern-service .price-chip { display:flex; align-items:center; width:auto; max-width:100%; min-height:44px; white-space:normal; padding:9px 12px; border:1px solid #cbd9e2; border-radius:8px; background:#ffffff; color:#526d82; font:600 14px/1.4 var(--font-text); }
.modern-site .modern-service .price-chip.is-active { color:#ffffff; border-color:#0e7490; background:#0e7490; }
.modern-site .modern-service .price-chip[hidden],.modern-site .modern-service .price-list-wrap[hidden] { display:none!important; }
.modern-site .modern-service .price-list-wrap { padding:26px 30px; }
.modern-site .modern-service .price-list__cap { font:700 16px/1.45 var(--font-text); text-transform:none; letter-spacing:0; color:#526d82; }
.modern-site .modern-service .price-row { gap:16px; border-color:#cbd9e2; min-height:62px; }
.modern-site .modern-service .price-row__price { color:#123b5d; font-size:24px; font-weight:750; font-variant-numeric:tabular-nums; }
.modern-site .modern-service .price-row__label { font-weight:400; }
.modern-site .modern-service .price-audience { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(calc(100% - 28px),380px); margin:14px 14px 0; padding:4px; border:1px solid #cbd9e2; border-radius:12px; background:#e8f1f5; }
.modern-site .modern-service .price-audience button { min-height:44px; padding:9px 6px; border:0; border-radius:8px; background:transparent; color:#526d82; font:650 14px/1.4 var(--font-text); }
.modern-site .modern-service .price-audience button[aria-pressed=true] { color:#ffffff; background:#0e7490; }
.modern-site .modern-service :is(.price-chip,.price-audience button):focus-visible { outline:2px solid #0e7490; outline-offset:2px; }

/* One outlined final form in the approved style. */
.modern-site .modern-service .service-final-cta { padding-block:64px; background:#f4f8fa; color:#123b5d; }
.modern-site .modern-service .service-final-cta__grid { position:relative; display:block; padding:36px; border:1px solid #8db9c7; border-radius:16px; }
.modern-site .modern-form__pest { position:absolute; width:108px; height:108px; right:20px; top:-100px; object-fit:contain; pointer-events:none; }
.modern-site .modern-service .service-final-cta h2 { color:#123b5d; font-size:clamp(27px,2.8vw,36px); max-width:none; margin:0 0 26px; }
.modern-site .modern-service .service-final-cta__copy > :is(p,ul) { display:none; }
.modern-site .modern-service .service-final-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px 24px; padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.modern-site .modern-service .service-final-form > p:first-child:not(.modal-consent) { display:none; }
.modern-site .modern-service .service-final-form > .form-row { grid-column:1; grid-row:1; margin:0; }
.modern-site .modern-service .service-final-form .form-row { margin:0; }
.modern-site .modern-service .service-final-form .lead-preferences { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; grid-row:2; grid-column:1/-1; margin:0; }
.modern-site .modern-service .service-final-form > .btn { grid-column:2; grid-row:1; align-self:end; min-height:50px; margin:0; box-shadow:none; }
.modern-site .modern-service .service-final-form:has(.lead-preferences) > .btn { grid-row:1; }
.modern-site .modern-service .service-final-form .modal-consent { grid-column:1/-1; font-size:11px; margin:0; }
.modern-site .modern-service .service-final-form :is(input:not(.lead-hp),select) { min-height:50px; border:1px solid #cbd9e2; border-radius:8px; font:400 16px/1.5 var(--font-text); }
.modern-site .modern-service .service-final-form :is(input:not(.lead-hp),select):focus { border-color:#0e7490; outline:2px solid #0e7490; outline-offset:2px; }
.modern-site.modern-prices-in-view:not(.chatw-open) .chatw { visibility:hidden; pointer-events:none; }
.modern-site.modern-form-in-view > .sticky-contact { display:none; }
.modern-site.modern-form-in-view:not(.chatw-open) .chatw { visibility:hidden; pointer-events:none; }

@media(max-width:1024px) {
  .modern-site .modern-hero { padding:40px; }
  .modern-site .modern-hero__copy { width:72%; }
  .modern-site .modern-hero h1 { font-size:38px; }
  .modern-site .service-benefits ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; padding-block:16px; }
}
@media(max-width:680px) {
  .modern-site .modern-hero { width:calc(100% - 24px); margin-top:12px; padding:32px 24px; min-height:420px; border-radius:22px; background-position:65% center; }
  .modern-site .modern-hero::before { background:linear-gradient(90deg,rgba(36,36,36,.94),rgba(36,36,36,.75) 58%,rgba(36,36,36,.42)); }
  .modern-site .modern-hero__copy { width:100%; max-width:520px; }
  .modern-site .modern-hero h1 { font-size:clamp(29px,5.4vw,36px); max-width:24ch; text-wrap:pretty; }
  .modern-site .modern-hero__breadcrumbs { font-size:12px; margin-bottom:18px; }
  .modern-site .modern-hero__facts { gap:12px; margin-block:22px; }
  .modern-site .modern-hero__facts li { font-size:14px; }
  .modern-site .modern-service h3 { font-size:21px; }
  .modern-site .modern-service .price-chip { font-size:13px; padding:8px 10px; }
  .modern-site .modern-service .price-list-wrap { padding:20px; }
  .modern-site .modern-service .price-row__price { font-size:23px; }
  .modern-site .modern-service .service-final-cta__grid { padding:24px; }
}
@media(max-width:540px) {
  .modern-site .service-benefits ul { gap:12px 16px; }
  .modern-site .service-benefits li { grid-template-columns:28px minmax(0,1fr); gap:8px; }
  .modern-site .service-benefits__icon { width:28px; height:28px; }
  .modern-site .service-benefits svg { width:16px; height:16px; }
  .modern-site .service-benefits strong { font-size:13px; }
  .modern-site .modern-service .service-final-cta__grid { padding:20px; }
  .modern-site .modern-service .service-final-form { grid-template-columns:1fr; gap:16px; }
  .modern-site .modern-service .service-final-form .lead-preferences { grid-template-columns:1fr; gap:16px; }
  .modern-site .modern-service .service-final-form :is(.lead-preferences,.modal-consent,.btn) { grid-column:1; grid-row:auto!important; }
}
@media(max-width:359px) {
  .modern-site .modern-hero { padding:30px 20px; }
  .modern-site .modern-service .price-audience button { font-size:13px; }
}

/* One page rhythm across the homepage and service pages. */
.modern-site { font-weight:400; }
.modern-site .reveal { opacity:1; transform:none; transition:none; }
.modern-site .service-price-jump { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:#ffffff; font-size:15px; font-weight:500; text-decoration:underline; text-underline-offset:5px; }
.modern-site .service-price-jump:hover { color:#e8f1f5; }
.modern-site .dr-hero .service-price-jump { margin:12px 0 0 20px; }
.modern-site .modern-home .modern-hero { min-height:440px; }
.modern-site .home-service-directory { position:relative; margin:0; border-radius:0; box-shadow:none; background:#f4f8fa; }
.modern-site .home-service-directory h2 { margin-bottom:28px; }
.home-service-directory__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 44px; }
.home-service-directory__group { min-width:0; padding-top:20px; border-top:1px solid #cbd9e2; }
.home-service-directory__group h3 { margin-bottom:10px; }
.home-service-directory__group h3 a { color:#123b5d; }
.home-service-directory__group ul { display:flex; flex-wrap:wrap; gap:0 18px; }
.home-service-directory__group li { min-width:0; }
.home-service-directory__group li a { display:inline-flex; align-items:center; min-height:40px; color:#526d82; font-size:14px; font-weight:400; line-height:1.4; text-decoration:underline; text-decoration-color:#cbd9e2; text-underline-offset:4px; }
.home-service-directory__group a:hover { color:#0e7490; text-decoration-color:currentColor; }
.home-service-directory__group a:focus-visible { outline:2px solid #0e7490; outline-offset:4px; border-radius:2px; }
.modern-site .modern-home #prices { background:#f4f8fa; }
.modern-site .modern-home :is(.masters,.certs) > .wrap { width:min(var(--wrap),100% - var(--gutter)*2); }
.modern-site .modern-home .section-head { margin-bottom:26px; }
.modern-site .modern-home .price-tabs { display:flex; flex-wrap:wrap; gap:6px; padding:14px; border-bottom:1px solid #cbd9e2; }
.modern-site .modern-home .price-tab { flex:1 1 150px; min-height:48px; padding:10px 14px; border-radius:8px; background:#ffffff; text-align:left; font-size:14px; font-weight:500; }
.modern-site .modern-home .price-tab.is-active { background:#0e7490; color:#ffffff; }
.modern-site .modern-home .price-tab :is(strong,span) { color:inherit; }
.modern-site .modern-home .price-tab strong { font-weight:600; }
.modern-site .modern-home .price-tab__name { font-weight:600; }
.modern-site .modern-home .price-tab__from { font-weight:400; }
.modern-site .modern-home .price-tab small { display:none; }
.price-scope-note { margin:0; padding:18px 24px; border-top:1px solid #cbd9e2; color:#526d82; font-size:13px; line-height:1.6; }
.price-scope-note a { color:#0e7490; text-decoration:underline; text-underline-offset:3px; }
.modern-site .modern-home #request { background:#123b5d; color:#ffffff; }
.modern-site .modern-home #request h2 { color:#ffffff; }
.modern-site .modern-home #request .form-layout { display:block; }
.modern-site .modern-home #request .request__info { margin-bottom:24px; }
.modern-site .modern-home #request .request__contact { display:none; }
.modern-site .modern-home #request .lead-form { padding:26px; border-radius:12px; box-shadow:none; }
.modern-site .modern-home #request .lead-form { display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; }
.modern-site .modern-home #request .lead-form > .form-row { grid-column:1; grid-row:1; margin:0; }
.modern-site .modern-home #request .lead-form > .btn { grid-column:2; grid-row:1; margin:0; align-self:end; min-height:50px; box-shadow:none; }
.modern-site .modern-home #request .lead-form .lead-preferences { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:0; }
.modern-site .modern-home #request .lead-form .lead-preferences .form-row { margin:0; }
.modern-site .modern-home #request .lead-form .modal-consent { grid-column:1/-1; margin:0; }
.modern-site .modern-home #request .lead-form :is(input,select) { font-size:16px; font-weight:400; }
.modern-site .modern-home #request .lead-form label { font-size:13px; font-weight:550; }
.modern-site .modern-home #rayony { padding-block:28px; background:#f4f8fa; color:#334e68; }
.modern-site .modern-home #rayony h2 { margin-bottom:12px; color:#123b5d; font-size:24px; }
.home-coverage__details { border-top:1px solid #cbd9e2; }
.home-coverage__details > summary { min-height:48px; padding:14px 0; color:#0e7490; font-size:15px; font-weight:550; cursor:pointer; }
.home-coverage__details[open] > summary { margin-bottom:14px; }
/* Coverage is now a light disclosure, including the older city templates. */
.modern-site .modern-home #rayony :is(p,h3,strong) { color:#334e68; }
.modern-site .modern-home #rayony :is(.geo__sub,h3) { color:#123b5d; }
.modern-site .modern-home #rayony .geo__sub { font-size:14px; font-weight:600; letter-spacing:0; text-transform:none; }
.modern-site .modern-home #rayony .geo__cities { gap:6px 16px; padding:0; margin:0; list-style:none; }
.modern-site .modern-home #rayony .geo__cities li { padding:0; border:0; border-radius:0; background:transparent; color:#0e7490; box-shadow:none; font-size:14px; font-weight:400; line-height:1.6; }
.modern-site .modern-home #rayony .geo__cities li:is(:hover,:focus-within) { transform:none; background:transparent; }
.modern-site .modern-home #rayony .geo__cities a { color:inherit; box-shadow:none; text-decoration:underline; text-underline-offset:3px; }
.modern-site .modern-home #rayony .geo-landing__localities { margin-top:24px; border-color:#cbd9e2; background:#f4f8fa; }
.modern-site .modern-home #rayony .geo-localities li { color:#0e7490; border-color:#cbd9e2; background:#ffffff; font-weight:500; }
.modern-site .modern-home #rayony .geo-landing__nearby { margin-top:24px; border-color:#cbd9e2; }
.modern-site .modern-home #rayony .geo-landing__scope { border:0; padding-left:0; }
.modern-site .modern-home #rayony .btn--ghost { color:#0e7490; border-color:#8db9c7; background:#ffffff; }
.modern-site .modern-home #rayony .geo-localities::-webkit-scrollbar-track { background:#cbd9e2; }
.modern-site .modern-home #rayony .geo-localities::-webkit-scrollbar-thumb { background-color:#526d82; }
.modern-site .master { box-shadow:none; border-radius:12px; }
.modern-site .master--assigned { box-shadow:none; }
.modern-site .master h3 { font-size:20px; font-weight:600; }
.modern-site .master :is(.master__exp,.master__role) { font-size:13px; font-weight:400; }
.modern-site .service-related h2 { margin-bottom:18px; font-size:25px; }
.related-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 28px; }
.related-services a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; border-bottom:1px solid #cbd9e2; color:#0e7490; font-size:15px; font-weight:500; }
.modern-site .modern-service .service-final-cta { padding-block:40px; background:#f4f8fa; }
.modern-site .modern-service .service-final-cta__grid { padding:28px; background:#ffffff; }
.modern-site .modern-service .service-final-cta h2 { font-size:30px; font-weight:650; margin-bottom:22px; }
.modern-site .modern-service .service-start h3 { font-size:20px; }
.modern-site .modern-service .service-equipment__copy h3 { font-size:24px; font-weight:600; }
.modern-site :is(.form-row,.modal-field) > label { font-weight:550; font-size:13px; line-height:1.4; }
.modern-site .service-specialist .masters__grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.modern-site .service-specialist .masters__grid:has(> :only-child) { max-width:620px; }
.modern-site [data-chat][hidden],.modern-site .mobile-header-phone__hint[hidden] { display:none!important; }
.modern-site .service-specialist .master__avatar { max-height:220px; }
@media(max-width:760px){
 .home-service-directory__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .related-services { grid-template-columns:1fr; gap:0; }
 .modern-site .modern-service .service-final-cta h2 { font-size:27px; }
 .modern-site .modern-service .service-start h3 { font-size:17px; }
 .modern-site .modern-service .service-equipment__copy h3 { font-size:21px; }
 .modern-site .modern-service .service-final-cta__grid { padding:20px; }
}
@media(max-width:540px){
 .modern-site .modern-home .modern-hero { min-height:380px; }
 .home-service-directory__grid { grid-template-columns:1fr; gap:22px; }
 .home-service-directory__group { padding-top:16px; }
 .home-service-directory__group ul { column-gap:20px; }
 .modern-site .home-service-directory h2 { margin-bottom:20px; }
 .modern-site .modern-home .price-tab { flex-basis:40%; font-size:13px; min-height:44px; }
 .modern-site .modern-home #request .lead-form { padding:20px; }
 .modern-site .modern-home #request .lead-form,.modern-site .modern-home #request .lead-form .lead-preferences { grid-template-columns:1fr; }
 .modern-site .modern-home #request .lead-form > .btn { grid-column:1; grid-row:auto; }
 .modern-site .master { grid-template-columns:96px minmax(0,1fr); min-height:118px; }
 .modern-site .master__avatar { min-height:118px; }
 .modern-site .master h3 { font-size:18px; }
 .modern-site .master__badge { font-size:9px; padding:3px 5px; }
 .modern-site .service-specialist .masters__grid { grid-template-columns:1fr; }
}
