/* Self-hosted Nunito Sans, licensed under the SIL Open Font License. */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/nunito-sans-latin.woff2') format('woff2');
}

/* Rounded companion face for warmer, fuller headlines. */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url('/fonts/nunito-latin.woff2') format('woff2');
}

:root {
  --ink: #163642;
  --ink-soft: #376777;
  --aqua: #287687;
  --aqua-bright: #d6edf1;
  --paper: #f3f7f8;
  --white: #fff;
  --line: #dce6e9;
  --radius: 10px;
  --font-heading: 'Nunito', 'Nunito Sans', sans-serif;
  --font: 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --shadow: 0 14px 40px rgba(16, 49, 63, .06);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: white; font-family: var(--font); font-size: 16px; line-height: 1.65; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
img { display: block; max-width: 100%; height: auto; }
section[id] { scroll-margin-top: 110px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
a:focus-visible, button:focus-visible { outline: 3px solid #5295a5; outline-offset: 5px; }
.site-header { position: sticky; z-index: 50; top: 0; display: flex; align-items: center; gap: 32px; min-height: 90px; padding: 16px max(28px, calc((100vw - 1220px) / 2)); background: white; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 45px; color: var(--ink); border: 1px solid #9db8c1; border-radius: 5px; font: 500 2.1rem var(--font); }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-size: 1.38rem; font-weight: 650; letter-spacing: .12em; }
.brand-copy small { margin-top: 8px; font-size: .64rem; font-weight: 600; letter-spacing: .14em; }
.header-phone { margin-left: auto; order: 2; white-space: nowrap; font-size: .94rem; font-weight: 600; }
nav { display: flex; align-items: center; gap: 26px; margin-left: auto; font-size: .9rem; font-weight: 500; }
nav a:not(.nav-cta):hover { color: var(--aqua); }
.nav-cta { padding: 11px 20px; color: white; background: var(--ink); border-radius: 5px; }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 5px; background: white; padding: 10px; }
.menu-toggle span:not(.sr-only) { display: block; height: 1px; margin: 5px 0; background: var(--ink); }
.hero { position: relative; isolation: isolate; min-height: 660px; height: min(81vh, 850px); display: grid; align-items: center; overflow: hidden; color: white; background: #193746; }
.hero-image, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.hero-image { object-fit: cover; object-position: 60% 51%; filter: brightness(1.10) saturate(1.08); }
.hero-shade { background: linear-gradient(90deg, rgba(40,34,26,.38), rgba(40,34,26,.12) 46%, transparent 80%), linear-gradient(0deg, rgba(40,34,26,.04), transparent 60%); }
.hero-content { width: min(1220px, calc(100% - 64px)); margin: auto; padding: 75px 0 90px; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; color: var(--ink-soft); font-size: .75rem; font-weight: 650; letter-spacing: .13em; line-height: 1.6; text-transform: uppercase; }
.eyebrow span { width: 25px; height: 1px; background: currentColor; flex-shrink: 0; }
.hero .eyebrow { color: #edf6f7; }
h1, h2, h3 { margin: 0; font-family: var(--font-heading); font-weight: 650; }
h1 { max-width: 810px; font-size: clamp(3.4rem, 6.5vw, 6.1rem); line-height: 1.04; letter-spacing: -.045em; }
h1 em { color: #d9eef1; font-weight: inherit; font-style: normal; }
h2 { font-size: clamp(2.65rem, 4.1vw, 4.05rem); line-height: 1.13; letter-spacing: -.04em; }
h2 em { color: var(--ink-soft); font-weight: inherit; font-style: normal; }
.hero-copy { max-width: 455px; margin: 27px 0 31px; color: #f1f5f6; font-size: 1.08rem; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 13px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 13px 23px; border: 1px solid transparent; border-radius: 5px; font-size: .94rem; font-weight: 600; cursor: pointer; transition: background .2s ease, color .2s ease; }
.button-pink { color: white; background: var(--ink); }
.hero .button-pink { color: var(--ink); background: white; }
.button-pink:hover, .nav-cta:hover { background: #285465; }
.hero .button-pink:hover { background: #e2f0f3; }
.button-pink span { font-size: 1.15rem; }
.button-glass { color: white; border-color: rgba(255,255,255,.65); background: rgba(15,39,49,.18); }
.button-glass:hover { background: rgba(255,255,255,.14); }
.scroll-cue { position: absolute; bottom: 26px; right: max(32px, calc((100vw - 1220px) / 2)); display: flex; align-items: center; gap: 13px; color: #ecf5f7; font-size: .68rem; letter-spacing: .15em; }
.scroll-cue b { font-size: 1.1rem; font-weight: 400; }
.trust-strip { display: grid; grid-template-columns: repeat(4, 1fr); padding: 27px max(28px, calc((100vw - 1220px) / 2)); border-bottom: 1px solid var(--line); background: white; }
.trust-strip > div { display: flex; flex-direction: column; justify-content: center; padding: 0 27px; border-right: 1px solid var(--line); }
.trust-strip > div:first-child { padding-left: 0; }
.trust-strip > div:last-child { border: 0; }
.trust-strip strong { font-size: .95rem; font-weight: 650; letter-spacing: .015em; }
.trust-strip span { margin-top: 3px; color: #627780; font-size: .87rem; }
.section { padding: 100px max(28px, calc((100vw - 1180px) / 2)); }
.services { background: #fff; }
.section-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 60px; align-items: end; margin-bottom: 44px; }
.section-heading > p { max-width: 410px; margin: 0 0 5px; color: #5b7179; font-size: 1rem; line-height: 1.8; }
.service-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
.service-card { position: relative; min-height: 365px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--ink); color: white; }
.service-card:nth-child(1), .service-card:nth-child(2) { grid-column: span 3; min-height: 430px; }
.service-card:nth-child(n+3) { grid-column: span 2; }
.service-photo img { position: absolute; inset: 0 0 auto; width: 100%; height: 100%; object-fit: cover; transition: filter .2s ease; }
.service-photo:hover img { filter: brightness(1.05); }
.service-window img { object-position: 60% 47%; }
.service-pressure img { object-position: 55% center; }
.service-soft img { object-position: 48% 52%; }
.service-gutter img { object-position: 48% 40%; }
.service-trash img { object-position: 55% 45%; }
.service-overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,18,25,.85), rgba(4,18,25,.05) 75%); }
.service-number { position: absolute; top: 23px; left: 25px; font-size: .75rem; letter-spacing: .12em; }
.service-card > div:last-of-type { position: absolute; left: 25px; bottom: 27px; right: 64px; }
.service-card p { margin: 0 0 7px; color: #edf5f7; font-size: .75rem; line-height: 1.4; }
.service-card h3 { font-family: var(--font-heading); font-weight: 650; font-size: clamp(1.7rem, 2.8vw, 2.6rem); line-height: 1.08; letter-spacing: -.035em; }
.service-card > a { position: absolute; right: 18px; bottom: 27px; display: grid; place-items: center; width: 34px; height: 34px; color: white; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; font-size: 1rem; }
.service-card > a:hover { background: rgba(255,255,255,.18); }
.process { display: grid; grid-template-columns: .85fr 1.15fr; gap: 75px; background: var(--paper); }
.process-intro { align-self: start; }
.process-intro h2 { font-size: clamp(2.6rem, 3.5vw, 3.4rem); }
.process-intro > p:last-child { max-width: 400px; margin: 25px 0 0; color: #5b7179; }
.steps { list-style: none; display: grid; margin: 0; padding: 0; }
.steps li { display: grid; grid-template-columns: 33px 1fr; gap: 22px; padding: 24px 0; border-bottom: 1px solid #d4e1e5; }
.steps li:first-child { padding-top: 4px; }
.steps li:last-child { border-bottom: 0; padding-bottom: 0; }
.steps > li > span { padding-top: 3px; color: var(--aqua); font-size: .8rem; font-weight: 500; }
.steps h3 { font-family: inherit; font-size: 1rem; font-weight: 600; line-height: 1.45; text-transform: none; }
.steps p { margin: 7px 0 0; color: #617780; font-size: .94rem; line-height: 1.75; }
.about { display: grid; grid-template-columns: 1fr .9fr; gap: 90px; align-items: center; }
.about-copy > p:not(.eyebrow) { max-width: 540px; margin: 26px 0; color: #5b7179; line-height: 1.85; }
.about-tags { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.about-tags span { color: var(--ink-soft); font-size: .85rem; border-bottom: 1px solid #c5d8de; padding: 5px 0; }
.pricing-note { padding: 40px; color: var(--ink); background: #f5f7f6; border: 1px solid var(--line); border-radius: 24px; }
.note-label { margin: 0; color: var(--ink-soft); font-size: .75rem; font-weight: 500; letter-spacing: .12em; }
.pricing-note h3 { margin: 23px 0 20px; font-size: 2.1rem; line-height: 1.2; letter-spacing: -.025em; }
.pricing-note > p:not(.note-label) { color: #526c75; font-size: .94rem; line-height: 1.7; }
.fine-print { display: grid; gap: 0; margin-top: 26px; }
.fine-print span { padding: 11px 0; border-top: 1px solid #d6e1e1; color: #37606d; font-size: .85rem; }
.quote { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; background: var(--paper); }
.quote-copy > p:not(.eyebrow) { max-width: 430px; margin: 26px 0 32px; color: #5b7179; }
.contact-stack { display: grid; border-top: 1px solid var(--line); }
.contact-stack a { display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.contact-stack span { color: #5d7781; font-size: .75rem; letter-spacing: .1em; }
.contact-stack strong { font-size: 1rem; font-weight: 500; overflow-wrap: anywhere; }
.quote-form { padding: 34px; background: white; border: 1px solid var(--line); border-radius: 24px; }
.quote-form label { display: grid; gap: 7px; }
.quote-form label > span, .quote-form legend { font-size: .88rem; font-weight: 500; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 19px; }
.quote-form > label, .quote-form fieldset { margin: 0 0 19px; }
input, textarea { width: 100%; border: 1px solid #cedbdf; border-radius: 4px; background: #fff; padding: 12px 13px; color: var(--ink); outline: none; }
input:focus, textarea:focus { border-color: var(--aqua); box-shadow: 0 0 0 3px #e2eff2; }
textarea { resize: vertical; min-height: 108px; }
fieldset { padding: 0; border: 0; min-width: 0; }
legend { margin-bottom: 10px; }
.choice-row, .service-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.choice-row label, .service-choices label { display: inline-flex; cursor: pointer; }
.choice-row input, .service-choices input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.choice-row span, .service-choices span { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 12px; border: 1px solid #d3dfe3; border-radius: 4px; font-size: .875rem; font-weight: 400; }
.choice-row input:checked + span, .service-choices input:checked + span { color: var(--ink); border-color: #67919e; background: #eaf2f5; }
.choice-row input:focus-visible + span, .service-choices input:focus-visible + span { outline: 3px solid var(--aqua); outline-offset: 2px; }
.form-note { margin: -2px 0 22px; color: #677b83; font-size: .875rem; }
.submit-button { width: 100%; }
.form-status { min-height: 20px; margin: 12px 0 0; color: var(--ink-soft); font-size: .875rem; text-align: center; }
footer { display: grid; grid-template-columns: 1.2fr 1fr .8fr; gap: 35px; align-items: start; padding: 50px max(28px, calc((100vw - 1180px) / 2)) 26px; color: #f2f7f8; background: #122d38; }
footer .brand-mark { color: white; border-color: #54717b; }
footer p { margin: 0 0 7px; color: #b8cdd4; font-size: .88rem; }
.footer-links { display: grid; justify-content: end; gap: 9px; font-size: .88rem; }
.copyright { grid-column: 1 / -1; padding-top: 22px; margin-top: 12px; border-top: 1px solid #38525d; font-size: .8rem; }
@media (max-width: 1050px) {
  .site-header { gap: 23px; padding-inline: 24px; }
  nav { gap: 19px; }
  .brand-copy strong { font-size: 1.2rem; }
  .header-phone { font-size: .87rem; }
  .process, .about, .quote { gap: 45px; }
  .service-card > div:last-of-type { left: 18px; }
  .pricing-note { padding: 30px; }
}
@media (max-width: 850px) {
  .site-header { min-height: 76px; gap: 19px; padding: 13px 24px; }
  .header-phone { margin-left: auto; order: 0; }
  .menu-toggle { display: block; flex-shrink: 0; }
  nav { position: absolute; top: 100%; left: 0; right: 0; display: none; margin: 0; padding: 16px 24px 23px; border-bottom: 1px solid var(--line); background: white; box-shadow: var(--shadow); }
  nav.open { display: grid; gap: 4px; }
  nav a { padding: 10px 12px; }
  .nav-cta { margin-top: 5px; }
  .hero { min-height: 630px; height: 76vh; max-height: 780px; }
  .hero-image { object-position: 58% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(40,34,26,.32), transparent), linear-gradient(0deg, rgba(40,34,26,.06), transparent 70%); }
  .hero-content { width: calc(100% - 56px); }
  h1 { font-size: clamp(3.3rem, 8vw, 5.4rem); }
  .trust-strip { padding: 24px; grid-template-columns: 1fr 1fr; gap: 20px 0; }
  .trust-strip > div { padding: 0 24px; }
  .trust-strip > div:nth-child(odd) { padding-left: 0; }
  .trust-strip > div:nth-child(even) { border: 0; }
  .section { padding-block: 76px; }
  .section-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 33px; }
  .section-heading > p { max-width: 620px; }
  .service-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .service-card:nth-child(n) { grid-column: auto; min-height: 350px; }
  .service-card:nth-child(5) { grid-column: 1 / -1; }
  .service-card h3 { font-size: 1.8rem; }
  .process, .about, .quote { grid-template-columns: 1fr; gap: 40px; }
  .process-intro > p:last-child, .about-copy > p:not(.eyebrow) { max-width: 650px; }
  .steps li { gap: 20px; padding-block: 22px; }
  .pricing-note h3 { font-size: 2.1rem; }
  .quote-copy > p:not(.eyebrow) { max-width: 600px; }
  .contact-stack { max-width: 540px; }
  footer { grid-template-columns: 1fr 1fr; }
  .footer-links { grid-column: 1 / -1; display: flex; justify-content: start; gap: 26px; }
}
@media (max-width: 540px) {
  .site-header { min-height: 74px; gap: 12px; padding: 13px 17px; }
  .brand { gap: 8px; }
  .brand-mark { width: 31px; height: 37px; font-size: 1.75rem; }
  .brand-copy strong { font-size: 1.05rem; letter-spacing: .09em; }
  .brand-copy small { margin-top: 6px; font-size: .5rem; letter-spacing: .08em; }
  .header-phone { font-size: .8rem; font-weight: 600; }
  .menu-toggle { width: 35px; height: 37px; padding: 8px; }
  .hero { min-height: 600px; height: calc(90svh - 74px); max-height: 740px; align-items: end; }
  .hero-image { object-position: 60% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(40,34,26,.48), rgba(40,34,26,.18) 48%, transparent 100%); }
  .hero-content { width: calc(100% - 40px); padding: 190px 0 44px; }
  .eyebrow { font-size: .7rem; letter-spacing: .1em; }
  .hero .eyebrow { max-width: 300px; font-size: .69rem; margin-bottom: 18px; }
  .hero .eyebrow span { display: none; }
  h1 { font-size: clamp(2.6rem, 10.2vw, 3.7rem); line-height: 1.07; letter-spacing: -.045em; }
  h2 { font-size: clamp(2.4rem, 9vw, 3.1rem); }
  .hero-copy { max-width: 360px; font-size: 1rem; margin: 22px 0 26px; line-height: 1.7; }
  .hero-actions { gap: 10px; flex-wrap: nowrap; }
  .hero-actions .button { gap: 12px; padding: 12px 16px; font-size: .875rem; }
  .scroll-cue { display: none; }
  .trust-strip { padding: 25px 20px; gap: 22px 0; }
  .trust-strip > div { padding-inline: 17px; }
  .trust-strip strong { font-size: .86rem; }
  .trust-strip span { max-width: 150px; font-size: .82rem; line-height: 1.5; }
  .section { padding: 65px 20px; }
  .section-heading { gap: 23px; }
  .service-grid { grid-template-columns: 1fr; gap: 22px; }
  .service-card:nth-child(n) { grid-column: 1; min-height: 355px; }
  .service-photo img { height: 100%; }
  .service-card h3 { font-size: 1.85rem; }
  .service-card p { font-size: .8rem; }
  .service-card > div:last-of-type { bottom: 23px; left: 20px; }
  .service-card > a { bottom: 28px; }
  .process-intro h2 { font-size: 2.65rem; }
  .steps h3 { font-size: .98rem; }
  .pricing-note { padding: 30px 24px; }
  .pricing-note h3 { font-size: 1.95rem; }
  .quote-form { padding: 26px 20px; }
  .field-row { grid-template-columns: 1fr; gap: 18px; }
  .quote { gap: 32px; }
  footer { grid-template-columns: 1fr; gap: 25px; padding: 40px 24px 25px; }
  .footer-links { flex-wrap: wrap; gap: 24px; }
  .copyright { margin: 0; }
}
@media (max-width: 370px) {
  .site-header { padding-inline: 12px; gap: 8px; }
  .brand-mark { display: none; }
  .header-phone { font-size: .79rem; }
  .hero-actions .button { font-size: .82rem; padding-inline: 12px; gap: 9px; }
  .hero-content { width: calc(100% - 32px); }
  .section { padding-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Shared pages and the property care guide. */
.skip-link { position: fixed; z-index: 100; top: -90px; left: 20px; padding: 12px 20px; color: white; background: var(--ink); }
.skip-link:focus { top: 12px; }
nav [aria-current="page"] { color: var(--aqua); text-decoration: underline; text-underline-offset: 6px; }
.text-link { display: inline-flex; gap: 20px; color: var(--ink-soft); border-bottom: 1px solid #aac7d0; font-size: .95rem; font-weight: 550; padding-bottom: 3px; }
.page-intro { padding: 85px max(28px, calc((100vw - 1180px) / 2)) 80px; background: #eaf2f5; }
.page-intro h1 { color: var(--ink); max-width: 960px; font-size: clamp(3.1rem, 5.8vw, 5.4rem); line-height: 1.12; }
.page-intro h1 em { color: var(--ink-soft); }
.page-intro > p:last-child { max-width: 610px; margin: 27px 0 0; color: #526e79; font-size: 1.1rem; }
.story-grid, .coverage-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.story-grid > div > p:not(.eyebrow), .coverage-layout > div > p:not(.eyebrow) { color: #5b7179; margin: 25px 0 0; }
.coverage-layout .text-link { margin-top: 25px; }
.story-photo { margin: 0; }
.story-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: 75% center; border-radius: 8px; }
.story-photo figcaption { color: #627980; font-size: .8rem; padding-top: 12px; }
.values-section { background: var(--paper); }
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.values-grid article { border-top: 1px solid #afc8d0; padding-top: 24px; }
.values-grid article > span { font-size: .8rem; color: var(--aqua); }
.values-grid h3 { font-size: 1.85rem; line-height: 1.2; margin: 14px 0; }
.values-grid p { color: #5b7179; }
.contact-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.page-cta { display: flex; justify-content: space-between; gap: 40px; align-items: center; padding: 65px max(28px, calc((100vw - 1180px) / 2)); background: #eaf2f5; }
.page-cta .button { flex-shrink: 0; }
.coverage-cards { display: grid; gap: 22px; }
.coverage-cards article { padding: 32px; border: 1px solid var(--line); border-radius: 8px; }
.coverage-cards h3 { font-size: 2.25rem; }
.coverage-cards p:last-child { color: #5b7179; }
.area-services { padding-top: 0; }
.service-link-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 45px; margin-top: 35px; }
.service-link-list a { padding: 19px 0; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; }
.guide-feature { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 60px; }
.guide-feature img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; }
.guide-feature h2 { font-size: clamp(2.25rem, 3.4vw, 3.3rem); }
.guide-feature p:not(.eyebrow) { color: #5b7179; margin: 24px 0; }
.guide-feature:hover .text-link { color: var(--ink); border-color: var(--ink); }
.article-intro { max-width: 980px; margin: auto; padding: 68px 28px 50px; }
.article-intro > .eyebrow { margin: 36px 0 18px; }
.article-intro h1 { max-width: none; font-size: clamp(2.65rem, 5vw, 4.7rem); line-height: 1.1; color: var(--ink); }
.article-intro > p:not(.eyebrow) { font-size: 1.1rem; color: #5b7179; margin-top: 25px; max-width: 780px; }
.article-meta { color: #637984; font-size: .85rem; margin-top: 24px; }
.article-layout { width: min(1180px, calc(100% - 56px)); margin: 0 auto; display: grid; grid-template-columns: 240px minmax(0, 740px); justify-content: space-between; gap: 70px; padding: 30px 0 85px; }
.article-toc { display: grid; gap: 13px; align-self: start; position: sticky; top: 120px; padding: 25px; background: var(--paper); font-size: .9rem; border-radius: 5px; }
.article-toc strong { font-weight: 600; margin-bottom: 3px; }
.article-toc a { color: #526e79; }
.article-toc a:hover { text-decoration: underline; }
.article-body { min-width: 0; }
.article-body section { margin-bottom: 45px; }
.article-body h2 { font-size: 2.3rem; line-height: 1.2; }
.article-body p, .article-body li { color: #4d6873; line-height: 1.85; font-size: 1.05rem; }
.article-body li { padding-bottom: 8px; }
.article-body ul { padding-left: 24px; }
.article-body a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.article-checklist { background: var(--paper); padding: 32px; border-radius: 5px; }
@media (max-width: 1120px) and (min-width: 851px) {
  .site-header { gap: 20px; }
  nav { gap: 14px; font-size: .85rem; }
  .nav-cta { padding-inline: 13px; }
}
@media (max-width: 850px) {
  .story-grid, .coverage-layout, .contact-intro, .guide-feature { grid-template-columns: 1fr; gap: 38px; }
  .values-grid { gap: 25px; }
  .values-grid h3 { font-size: 1.6rem; }
  .page-intro { padding-block: 65px; }
  .page-cta { align-items: start; flex-direction: column; }
  .article-layout { grid-template-columns: 1fr; gap: 40px; }
  .article-toc { position: static; grid-template-columns: 1fr 1fr; }
  .article-toc strong { grid-column: 1 / -1; }
  .hero { height: auto; min-height: 560px; }
  .hero-image { object-position: 95% center; }
  .hero-content { padding-block: 86px; }
  .service-card.service-window { aspect-ratio: 3 / 2; min-height: 0; grid-column: 1 / -1; }
  .service-window img { object-position: center; }
}
@media (max-width: 540px) {
  .hero { min-height: 510px; max-height: none; }
  .hero-content { padding: 148px 0 37px; }
  .hero-image { object-position: 100% center; }
  .hero .eyebrow { margin-bottom: 15px; }
  .hero-copy { font-size: .96rem; margin: 20px 0 24px; }
  .hero h1 { font-size: clamp(2.5rem, 10vw, 3.4rem); }
  .service-card.service-window { min-height: 0; }
  .service-card.service-window h3 { font-size: 1.55rem; }
  .service-card.service-window > div:last-of-type { left: 20px; bottom: 21px; }
  .service-window .service-overlay { background: linear-gradient(0deg, rgba(4,18,25,.74), transparent 65%); }
  .page-intro { padding: 48px 20px; }
  .page-intro h1 { font-size: 2.75rem; }
  .page-intro > p:last-child { font-size: 1rem; }
  .values-grid, .service-link-list { grid-template-columns: 1fr; }
  .values-grid h3 { font-size: 1.9rem; }
  .page-cta { padding: 50px 20px; gap: 27px; }
  .coverage-cards article { padding: 25px; }
  .article-intro { padding: 45px 20px 35px; }
  .article-intro h1 { font-size: 2.6rem; }
  .article-layout { width: calc(100% - 40px); padding-bottom: 55px; }
  .article-toc { padding: 21px; gap: 14px; }
  .article-body h2 { font-size: 2rem; }
  .article-checklist { padding: 25px; }
}

/* Consistent, legible action labels at every size. */
.button, .hero-actions .button, .nav-cta {
  font-size: .875rem;
  font-weight: 650;
  letter-spacing: .055em;
  line-height: 1.35;
  text-transform: uppercase;
}
.button, .hero-actions .button { min-height: 54px; padding: 16px 24px; gap: 14px; }
.button span { line-height: 1; }
@media (max-width: 540px) {
  .hero-actions { display: grid; grid-template-columns: 1.3fr 1fr; gap: 10px; max-width: 420px; }
  .hero-actions .button { padding: 15px 10px; gap: 8px; font-size: .875rem; letter-spacing: .025em; white-space: nowrap; }
  .hero-actions .button span { font-size: 1rem; }
}
@media (max-width: 370px) {
  .hero-actions { grid-template-columns: 1fr; gap: 10px; }
  .hero-actions .button { min-height: 48px; padding: 13px 16px; }
}

/* Six photo buttons, with the original full scene on phones. */
.service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.service-card:nth-child(n) { grid-column: auto; min-height: 355px; }
.service-card h3 { font-size: 2rem; }
.service-card > a { inset: 0; width: auto; height: auto; border: 0; border-radius: inherit; font-size: 0; }
.service-card > a::after { content: '↗'; position: absolute; right: 18px; bottom: 26px; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; font-size: 1.1rem; }
.service-card > a:hover { background: transparent; }
.service-card > a:hover::after { background: rgba(255,255,255,.18); }
.service-card > a:focus-visible { outline-offset: -4px; }
.service-interior img { object-position: center; }
.home-coverage { background: #f7fafb; border-top: 1px solid var(--line); }
.coverage-content { display: grid; grid-template-columns: 1.25fr 1fr; gap: 55px; align-items: start; }
.coverage-map iframe { display: block; width: 100%; height: 450px; border: 1px solid #d4e2e7; border-radius: 8px; background: #eaf2f5; }
.coverage-map > p { font-size: .82rem; color: #617983; margin: 12px 0 0; }
.coverage-regions details { border-bottom: 1px solid var(--line); }
.coverage-regions summary { padding: 19px 26px 19px 0; font-size: 1.1rem; font-weight: 550; cursor: pointer; }
.coverage-regions summary::marker { color: var(--aqua); }
.coverage-regions ul { display: grid; grid-template-columns: 1fr 1fr; list-style: none; padding: 0 0 20px; margin: 0; gap: 8px 20px; color: #5b7179; font-size: .94rem; }
.coverage-regions .text-link { margin-top: 27px; }
.area-map-section { padding-top: 0; }
.area-map-section iframe { height: 520px; }
@media (max-width: 850px) {
  .service-grid { grid-template-columns: 1fr 1fr; }
  .service-card:nth-child(n), .service-card.service-window { grid-column: auto; aspect-ratio: auto; min-height: 330px; }
  .service-card h3 { font-size: 1.7rem; }
  .service-window img { object-position: 95% center; }
  .coverage-content { grid-template-columns: 1fr; gap: 30px; }
  .coverage-map iframe { height: 390px; }
}
@media (max-width: 540px) {
  .service-grid { grid-template-columns: 1fr; }
  .service-card:nth-child(n), .service-card.service-window { grid-column: 1; aspect-ratio: 3/2; min-height: 0; }
  .service-card h3, .service-card.service-window h3 { font-size: 1.6rem; }
  .service-card > div:last-of-type { max-width: 250px; }
  .service-window img { object-position: center; }
  .service-card p { font-size: .75rem; }
  .service-card > a::after { width: 33px; height: 33px; bottom: 22px; }
  .service-number { top: 18px; left: 20px; }
  .coverage-map iframe { height: 370px; }
}

/* People-first About page; compact avatars become headshots when available. */
.team-section { background: #fff; }
.team-intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: end; margin-bottom: 52px; }
.team-intro > p, .team-intro-copy > p { max-width: 475px; margin: 0 0 4px; color: #5b7179; line-height: 1.8; }
.valley-mascot { display: block; width: 128px; height: 128px; flex-shrink: 0; object-fit: contain; clip-path: inset(0 0 5% 0); }
.team-mascot-link { display: flex; align-items: center; gap: 22px; margin: 22px 0 26px; }
.team-mascot-intro { display: flex; align-items: center; gap: 20px; margin: 20px 0 0; }
.team-mascot-intro figcaption { color: #5b7179; font-size: .875rem; }
@media (max-width: 540px) {
 .valley-mascot { width: 104px; height: 104px; }
 .team-mascot-link { gap: 16px; }
}
.team-group + .team-group { margin-top: 46px; }
.team-group-title { font-family: inherit; font-size: .93rem; font-weight: 600; color: var(--ink-soft); margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.team-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.team-card { min-width: 0; padding: 27px; border: 1px solid #dce6e9; border-radius: 10px; background: #fbfdfe; }
.team-card-heading { display: flex; align-items: center; gap: 17px; }
.team-portrait { flex: 0 0 74px; display: grid; place-items: center; width: 74px; height: 84px; overflow: hidden; border-radius: 8px; border: 1px solid #c6dce3; background: #e7f0f3; color: #678d9a; }
.team-portrait svg { width: 49px; height: 49px; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.team-portrait img { width: 100%; height: 100%; object-fit: cover; }
.team-role { margin: 0 0 7px; color: #587884; font-size: .75rem; font-weight: 600; letter-spacing: .055em; text-transform: uppercase; }
.team-card h3 { font-size: 1.75rem; line-height: 1.1; letter-spacing: -.03em; }
.team-focus { margin: 25px 0 10px; font-size: .875rem; font-weight: 600; color: #355d6c; line-height: 1.55; }
.team-bio { margin: 0; font-size: .94rem; line-height: 1.8; color: #5b7179; }
.creator-credit { grid-column: 1/-1; margin: -20px 0 0; color: #b8cdd4; font-size: .875rem; line-height: 1.7; }
.creator-credit a { color: #e4edf0; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #6c8b97; }
.creator-credit a:hover { color: white; }
.creator-credit a:focus-visible { outline: 2px solid #f3b5ca; outline-offset: 4px; }
@media (max-width: 1120px) and (min-width: 851px) {
 .team-card { padding: 23px; }
 .team-card-heading { flex-direction: column; align-items: start; gap: 18px; }
}
@media (max-width: 850px) {
 .team-intro { grid-template-columns: 1fr; gap: 25px; margin-bottom: 35px; }
 .team-intro > p { max-width: 640px; }
 .team-grid { grid-template-columns: 1fr; gap: 17px; }
 .team-card { padding: 28px; }
 .team-card-heading { gap: 22px; }
 .team-card h3 { font-size: 2rem; }
 .team-focus { margin-top: 21px; }
 .team-bio { max-width: 630px; }
}
@media (max-width: 540px) {
 .team-card { padding: 23px; }
 .team-portrait { flex-basis: 66px; width: 66px; height: 76px; }
 .team-card-heading { gap: 17px; }
 .team-card h3 { font-size: 1.85rem; }
 .team-group-title { font-size: .875rem; }
 .team-group + .team-group { margin-top: 33px; }
}

.origin-story { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; padding-bottom: 0; }
.origin-copy > p { color: #5b7179; line-height: 1.85; margin: 0 0 20px; }
.origin-copy > p:first-child { color: #294e5d; font-size: 1.13rem; }
.origin-copy > p:last-child { margin-bottom: 0; }
.team-personal { display: block; margin-top: 14px; padding-top: 14px; border-top: 1px solid #dce6e9; }
@media (max-width: 850px) { .origin-story { grid-template-columns: 1fr; gap: 26px; } }

/* Careers and direct submissions */
.careers-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,6vw,90px);align-items:start}.careers-copy p,.careers-copy li{line-height:1.85;color:var(--muted,#52636c)}.careers-copy h3{margin-top:2rem}.application-form{width:100%;min-width:0}.quote-form select{width:100%;border:1px solid #cbd8dc;background:white;color:#203641;padding:14px;border-radius:5px;font:inherit}.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.submit-button:disabled{opacity:.65;cursor:wait}.form-status[data-state="error"]{color:#a32929}.form-status[data-state="success"]{color:#225a45}.values-section .section-heading p:last-child{max-width:780px;line-height:1.85}@media(max-width:850px){.careers-layout{grid-template-columns:1fr}.application-form{padding:24px}.application-form h2{font-size:2.2rem}}

.values-section .section-heading{grid-template-columns:1fr}.application-form h2{margin-bottom:26px}.quote-form select:focus{outline:2px solid #67919e;outline-offset:2px}

.hero h1{text-shadow:0 2px 16px rgba(7,27,36,.28)}.hero .eyebrow,.hero-copy{text-shadow:0 1px 5px rgba(7,27,36,.55)}

/* Daylight photography supplies the light background; no broad image overlay. */
.hero{color:var(--ink);align-items:start}
.hero-image{filter:none;object-position:60% 51%}
.hero-shade{display:none}
.hero-content{padding-top:68px}
.hero h1{max-width:690px;font-size:clamp(3rem,5.5vw,5.2rem);color:#102f3b;text-shadow:0 1px 2px rgba(255,255,255,.3)}
.hero h1 em{color:#153c49}
.hero .eyebrow,.hero-copy{color:#163743;text-shadow:0 1px 3px rgba(255,255,255,.8)}
.hero .button-pink{background:#173743;color:white}
.hero .button-pink:hover{background:#2a5362}
.hero .button-glass{color:#173743;background:rgba(255,255,255,.88);border-color:#526e79}
.hero .scroll-cue{display:none}
@media(max-width:850px){.hero h1{font-size:clamp(2.65rem,6.5vw,4.5rem)}}
@media(max-width:540px){.hero-content{padding-top:56px}.hero h1{font-size:clamp(2.4rem,9vw,3.2rem)}}

.hero-media{position:absolute;inset:0;z-index:-1}.hero-media .hero-image{z-index:0}
@media(max-width:850px){.hero{height:760px;min-height:760px;max-height:none}.hero-image{object-position:center}.hero-content{padding-top:42px}}
@media(max-width:540px){.hero{height:740px;min-height:740px}.hero-content{padding-top:38px}.hero-copy{font-size:.96rem;max-width:345px}.hero h1{font-size:clamp(2.35rem,9vw,3rem)}}

/* Anchor the mobile message at the top of the photograph. */
@media(max-width:850px){.hero-content{margin:0 auto;align-self:start;padding:32px 0 0}.hero{height:680px;min-height:680px}.hero h1{max-width:580px}}
@media(max-width:540px){.hero{height:660px;min-height:660px}.hero-content{padding-top:30px}.hero h1{font-size:clamp(2.5rem,10.5vw,3rem);line-height:1.04}.hero-copy{margin:18px 0 20px;max-width:340px}.hero .eyebrow{font-size:.65rem;margin-bottom:16px}.hero-actions .button{font-size:.76rem;min-height:48px;padding:12px}.hero-image{object-position:65% center}}

@media(max-width:540px){.hero-tagline{display:none}.hero-copy{max-width:330px}}

/* Window, sky and a blush cloud: a crisp mark at every size. */
.brand-mark,footer .brand-mark{display:block;width:52px;height:56px;border:0;border-radius:0;flex-shrink:0}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:540px){.brand-mark{width:38px;height:42px}}
@media(max-width:370px){.brand-mark{display:block;width:30px;height:34px}.site-header .brand{gap:6px}.site-header .brand-copy strong{font-size:.92rem}.site-header .brand-copy small{font-size:.44rem}.header-phone{font-size:.73rem}}

/* Keep phone and estimate actions together, including outside the mobile menu. */
.header-actions{display:flex;align-items:center;gap:20px;margin-left:auto;order:2;flex-shrink:0}.header-actions .header-phone{order:0;margin:0}.header-actions .nav-cta{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;margin:0;min-height:42px}.site-header nav{margin-left:auto}
@media(max-width:1050px){.site-header{gap:20px}.header-actions{gap:14px}.site-header nav{gap:16px}}
@media(max-width:850px){.header-actions{order:0}.site-header nav{margin:0}}
@media(max-width:650px){.site-header{display:grid;grid-template-columns:1fr auto;gap:7px 14px;padding:8px 18px 10px}.site-header .brand{grid-column:1;grid-row:1}.menu-toggle{grid-column:2;grid-row:1}.header-actions{grid-column:1/-1;grid-row:2;width:100%;justify-content:space-between;gap:16px}.header-actions .header-phone{font-size:.85rem}.header-actions .nav-cta{min-height:38px;padding:9px 20px;font-size:.73rem}.site-header nav{grid-column:1/-1}}

/* All service towns remain visible without accordions. */
.coverage-regions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 26px}.coverage-region{border-top:2px solid #c9e3e7;padding-top:16px}.coverage-region h3{font-family:inherit;font-size:1rem;font-weight:650;line-height:1.45;letter-spacing:0;margin:0 0 12px}.coverage-regions ul{grid-template-columns:1fr;gap:5px;padding:0;font-size:.9rem;line-height:1.6}.coverage-regions .text-link{grid-column:1/-1;margin-top:0}
@media(max-width:540px){.coverage-regions{gap:26px 20px}.coverage-region h3{font-size:.94rem}.coverage-regions ul{font-size:.86rem}}

/* Keep the exterior service photograph bright, shading only its caption. */
.service-window .service-overlay{background:linear-gradient(0deg,rgba(4,18,25,.72),rgba(4,18,25,.24) 29%,transparent 57%)}
.service-window .service-number{color:#173743;text-shadow:0 1px 3px rgba(255,255,255,.75)}

/* Floating, pill-shaped navigation over the opening photograph. */
body{padding-top:96px}body:has(.hero){padding-top:0}
.site-header{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(1220px,calc(100% - 40px));min-height:66px;padding:5px 18px 5px 24px;border:1px solid rgba(255,255,255,.9);border-radius:999px;background:rgba(255,255,255,.97);box-shadow:0 7px 28px rgba(20,50,60,.12);gap:24px}
.site-header .brand-mark{width:36px;height:40px}.header-actions .nav-cta{border-radius:999px;padding-inline:24px}.menu-toggle{border-radius:50%}
.hero{padding-top:106px;min-height:760px;height:min(94svh,900px)}
@media(max-width:1050px){.site-header{gap:16px;padding-inline:20px}.site-header nav{gap:15px}.header-actions{gap:14px}.header-actions .nav-cta{padding-inline:18px}}
@media(max-width:850px){.site-header{min-height:64px}.site-header nav{top:calc(100% + 10px);border:1px solid var(--line);border-radius:24px;padding:14px;box-shadow:0 10px 30px rgba(20,50,60,.13)}.site-header nav a{border-radius:12px}.hero{height:790px;min-height:790px;padding-top:108px}}
@media(max-width:650px){body{padding-top:118px}.site-header{top:10px;width:calc(100% - 24px);border-radius:24px;padding:4px 16px;gap:2px 12px}.site-header .brand-mark{width:32px;height:36px}.site-header .header-actions{gap:12px}.header-actions .nav-cta{padding:9px 18px;min-height:38px}.hero{padding-top:126px;height:790px;min-height:790px}}
@media(max-width:370px){.site-header{padding-inline:13px}.site-header .brand-mark{width:32px;height:36px}.header-actions .header-phone{font-size:.8rem}}

@media(max-width:650px){.hero{background:#86b8df}.hero-media{top:92px}section[id]{scroll-margin-top:120px}}

/* One complete opening screen, with space to grow when text needs it. */
.hero{
  height:auto;
  min-height:100vh;
  min-height:100svh;
  max-height:none;
  padding:clamp(140px,16vh,190px) 0 100px;
  align-items:center;
}
.hero-content{margin:0 auto;padding:0;align-self:center}
.hero h1{max-width:840px;font-size:clamp(3.7rem,6.3vw,6.6rem);font-weight:700;line-height:1.06;letter-spacing:-.03em}
.hero-copy{max-width:450px;margin:30px 0 32px;font-size:1.1rem}
.hero-actions .button{border-radius:999px;min-height:56px;padding:17px 26px}
.hero .button-pink{background:#f4c9d5;color:#153743;border:1px solid #f4c9d5;box-shadow:0 8px 24px rgba(43,57,62,.15)}
.hero .button-pink:hover{background:#f8dce4;transform:translateY(-2px)}
.hero .button-glass{background:#c6e5f3;color:#153743;border-color:#c6e5f3;box-shadow:0 8px 24px rgba(43,57,62,.15)}
.hero .button-glass:hover{background:#dceff8;transform:translateY(-2px)}
.hero .scroll-cue{display:flex;left:max(32px,calc((100vw - 1220px)/2));right:auto;bottom:26px;gap:14px;padding:10px 16px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(255,255,255,.9);color:#173743;font-size:.75rem;font-weight:600;letter-spacing:.04em}
@media(prefers-reduced-motion:no-preference){
  .hero-content{animation:hero-arrive .75s ease-out both}
  .hero-image{animation:hero-settle 1.6s cubic-bezier(.2,.6,.3,1) both}
  @keyframes hero-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes hero-settle{from{transform:scale(1.025)}to{transform:scale(1)}}
}
@media(max-width:850px){
  .hero{padding:132px 0 250px;align-items:start}
  .hero-content{align-self:start}
  .hero h1{max-width:680px;font-size:clamp(3.2rem,8vw,5.1rem)}
}
@media(max-width:650px){
  .hero{padding:134px 0 clamp(240px,33svh,330px)}
  .hero h1{max-width:100%;font-size:clamp(2.6rem,10.6vw,3.7rem);line-height:1.08}
  .hero-copy{max-width:330px;font-size:1rem;line-height:1.65;margin:20px 0 24px}
  .hero-actions .button{min-height:50px;padding:13px 10px;font-size:.875rem;letter-spacing:.015em}
  .hero .scroll-cue{left:20px;bottom:20px;padding:9px 14px}
}
@media(max-width:370px){.hero h1{font-size:2.4rem}.hero-actions .button{font-size:.875rem;gap:8px}.hero .scroll-cue{left:16px}}

/* A slightly slimmer floating header once visitors begin exploring. */
.site-header{transition:top .22s ease,min-height .22s ease,padding .22s ease,box-shadow .22s ease}
.site-header .brand-mark{transition:width .22s ease,height .22s ease}
.site-header.is-compact{top:8px;min-height:58px;padding-top:3px;padding-bottom:3px;box-shadow:0 5px 20px rgba(20,50,60,.14)}
.site-header.is-compact .brand-mark{width:32px;height:36px}
@media(max-width:650px){
  .site-header.is-compact{top:6px;padding-top:2px;padding-bottom:2px;row-gap:1px}
  .site-header.is-compact .brand-mark{width:30px;height:34px}
}
@media(max-width:370px){.site-header.is-compact .brand-mark{width:30px;height:32px}}
@media(prefers-reduced-motion:reduce){.site-header,.site-header .brand-mark{transition:none}}

/* Keep service photographs intact, with useful details in a quiet caption. */
.service-grid{row-gap:34px}
.service-item{min-width:0}
.service-description{margin:15px 2px 0;font-size:1rem;line-height:1.65;color:#5b7179}
#services-title,#process-title,#about-title,.home-coverage h2,#quote-title{font-size:clamp(2.45rem,3.8vw,3.8rem);line-height:1.18;letter-spacing:-.025em;text-wrap:balance}
@media(max-width:540px){.service-description{margin-top:13px}.service-grid{row-gap:30px}}

.service-details{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:.9rem;color:var(--ink-soft)}
.service-details summary{cursor:pointer;line-height:1.5;font-weight:600;padding:4px 0}
.service-details p{margin:12px 0 0;color:#5b7179;font-size:1rem;line-height:1.65}
.home-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;border-top:1px solid var(--line)}
.faq-intro h2{font-size:clamp(2.45rem,3.8vw,3.8rem);line-height:1.12}
.faq-intro>p:not(.eyebrow){color:#5b7179;margin:24px 0}
.faq-list details{border-bottom:1px solid var(--line);padding:0 0 20px;margin:0 0 20px}
.faq-list summary{font-weight:600;cursor:pointer;padding:6px 0;line-height:1.5}
.faq-list p{margin:14px 0 0;color:#5b7179;line-height:1.75}
.form-note a,.fine-print a{text-decoration:underline;text-underline-offset:3px}
.privacy-content{max-width:800px;margin:auto;padding:60px 28px 80px}
@media(max-width:850px){.home-faq{grid-template-columns:1fr;gap:35px}}
@media(max-width:540px){.privacy-content{padding:40px 20px 60px}}

/* One quiet type treatment across page introductions and section headings. */
h1,h2,h3{text-wrap:balance}
h3 em{font-style:normal;font-weight:inherit}
.hero h1,.hero .eyebrow,.hero-copy{text-shadow:none}

/* Calm lower-page panels and a consistent reading rhythm. */
body:has(.hero) .section{padding-block:clamp(64px,7vw,96px)}
body:has(.hero) :is(.process,.about,.quote,.home-faq){gap:clamp(32px,5vw,64px)}
body:has(.hero) .section-heading{gap:clamp(24px,4vw,48px);margin-bottom:36px}
body:has(.hero) :is(.section-heading>p,.about-copy>p:not(.eyebrow),.process-intro>p:last-child,.quote-copy>p:not(.eyebrow)){line-height:1.75}
.about-copy>p:not(.eyebrow){margin:20px 0}
.process-intro>p:last-child,.quote-copy>p:not(.eyebrow){margin-top:20px}
.pricing-note h3{margin:18px 0}
.pricing-basis{margin:22px 0;font-size:.94rem}
.pricing-basis>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 20px;padding:10px 0;border-bottom:1px solid #dce5e4}
.pricing-basis dt{font-weight:600}
.pricing-basis dd{margin:0;color:#526c75}
.quote-form :is(input,textarea,select),.quote-form .choice-row span,.quote-form .service-choices span{border-radius:10px}
.quote-form .submit-button{border-radius:999px}
@media(max-width:540px){body:has(.hero) .section-heading{margin-bottom:28px}.pricing-note,.quote-form{border-radius:24px}}

/* Real work, with restrained accents from Valley's supplied brand graphics. */
:root{--work-teal:#168d98;--work-pink:#ef8499;--work-cream:#faf7f1}
.home-work,.gallery-results{background:var(--work-cream)}
.home-work h2,.gallery-results h2,.gallery-on-job h2,.team-in-action h2{font-size:clamp(2.25rem,3.8vw,3.8rem);line-height:1.16}
.work-comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.work-comparison figure{position:relative;margin:0;min-width:0;overflow:hidden;border-radius:22px;background:#e3e9e5}
.work-photo-link{position:relative;display:block;overflow:hidden;border-radius:20px;background:#eef1ef}
.work-photo-link img{width:100%;height:auto;display:block}
.work-photo-link:focus-visible{outline:3px solid var(--aqua);outline-offset:5px}
.work-comparison .work-photo-link{border-radius:0}
.work-label{position:absolute;top:16px;left:16px;z-index:2;background:var(--ink);color:#fff;padding:8px 17px;border-radius:999px;font-size:.875rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.work-label.after{background:#f5b7c5;color:var(--ink)}
.photo-enlarge{position:absolute;bottom:14px;right:14px;background:#fff;color:var(--ink);font-size:.875rem;font-weight:700;border-radius:999px;padding:7px 13px;box-shadow:0 2px 10px #16364215}
.work-section-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px}
.work-section-footer p{font-weight:650;color:var(--ink-soft)}
.home-work{border-top:3px solid var(--work-teal)}
.home-work .work-comparison img{max-height:540px;object-fit:cover;object-position:center}
.home-team-photo{margin:30px 0 0;max-width:500px}
.home-team-photo img{aspect-ratio:4/3;object-fit:cover;object-position:50% 72%}
.home-team-photo figcaption{font-size:.9rem;color:var(--ink-soft);margin-top:12px}
.gallery-intro{background:var(--work-cream);border-bottom:3px solid var(--work-pink)}
.gallery-jumps{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.gallery-jumps a{padding:9px 18px;border:1px solid #ccd9d8;border-radius:999px;background:#fff;font-weight:650;font-size:.95rem}
.work-caption{margin-bottom:24px}
.work-caption h3,.branded-result h3{font-size:1.5rem;margin-bottom:8px}
.work-caption p,.branded-result p{color:var(--ink-soft)}
.work-results-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:36px;align-items:start;margin-top:56px}
.branded-result,.work-photo-grid figure{margin:0;min-width:0}
.branded-result figcaption{padding:20px 4px 0}
.branded-result .work-photo-link{border:1px solid #e8ded1}
.work-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;align-items:start}
.work-photo-grid figcaption{padding-top:14px;font-size:1rem;font-weight:650}
.team-in-action{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;background:var(--work-cream)}
.team-in-action figure{margin:0}.team-in-action p:not(.eyebrow){margin:24px 0}
.team-in-action img{max-height:580px;object-fit:cover}
.photo-dialog{width:min(1100px,94vw);max-height:94dvh;border:0;border-radius:20px;padding:16px;background:#f9faf9;color:var(--ink)}
.photo-dialog::backdrop{background:#071a22dd}
.photo-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}
.photo-dialog-bar p{font-size:1rem;margin:0}.photo-dialog button{background:var(--ink);color:white;border:0;border-radius:999px;padding:10px 18px;cursor:pointer;font:inherit;flex-shrink:0}
.photo-dialog img{display:block;width:100%;max-height:75dvh;object-fit:contain}
@media(min-width:851px) and (max-width:1100px){.site-header{gap:12px;padding-inline:16px}.site-header nav{gap:12px}.site-header nav a{font-size:.875rem}.header-actions{gap:10px}.header-actions .nav-cta{padding-inline:14px}}
@media(max-width:850px){.work-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-in-action{gap:30px}}
@media(max-width:650px){.work-comparison{gap:10px}.work-comparison figure{border-radius:14px}.work-label{top:10px;left:10px;padding:6px 11px;font-size:.75rem}.work-comparison .photo-enlarge{font-size:.75rem;padding:6px 9px;right:8px;bottom:8px}.work-section-footer{align-items:flex-start;flex-direction:column}.work-results-grid,.team-in-action{grid-template-columns:1fr;gap:32px}.work-photo-grid{gap:26px 14px}.photo-enlarge{font-size:.8rem;padding:6px 10px}.gallery-results .section-heading,.gallery-on-job .section-heading{margin-bottom:28px}.photo-dialog-bar{align-items:flex-start}.photo-dialog{padding:12px}.photo-dialog-bar p{font-size:.875rem}}
@media(max-width:420px){.work-photo-grid{grid-template-columns:1fr}.work-photo-grid .work-photo-link{max-width:100%}}

/* Approved Valley logo; frame trims presentation whitespace without altering the artwork. */
.brand-logo-frame{display:block;position:relative;overflow:hidden;width:180px;aspect-ratio:1615/580;flex-shrink:0;background:#fff}
.brand-logo-image{position:absolute;display:block;width:109.8452%;max-width:none;height:auto;left:-6.8111%;top:-27.5862%}
.site-header .brand{gap:0;min-width:0}
.site-header .brand-logo-frame{transition:width .22s ease}
.site-header.is-compact .brand-logo-frame{width:154px}
.footer-brand{justify-self:start;max-width:100%;padding:10px 12px;border-radius:14px;background:#fff}
.footer-brand .brand-logo-frame{width:260px;max-width:100%}
@media(max-width:650px){.site-header .brand-logo-frame{width:164px}.site-header.is-compact .brand-logo-frame{width:148px}.footer-brand .brand-logo-frame{width:min(260px,calc(100vw - 72px))}}
@media(prefers-reduced-motion:reduce){.site-header .brand-logo-frame{transition:none}}

/* A growing, text-first guide library. */
.guide-hub [hidden]{display:none!important}
.guide-hub-intro,.guide-browse,.guide-help,.guide-related{width:min(1180px,calc(100% - 56px));margin-inline:auto}
.guide-hub-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;align-items:center;padding:64px 0 54px}
.guide-hub-intro h1{font-size:clamp(2.6rem,4.6vw,4.1rem);line-height:1.12;letter-spacing:-.035em;margin:18px 0}
.guide-hub-intro>div>p:last-child{max-width:570px;color:var(--ink-soft);font-size:1.1rem;line-height:1.75}
.guide-start{padding:28px 30px;background:#edf5f7;border:1px solid #d8e7eb;border-radius:22px}
.guide-start h2{font-size:1.7rem;line-height:1.25;margin:15px 0 12px}
.guide-start>p:not(.eyebrow){color:var(--ink-soft);margin:0 0 18px}
.guide-start .text-link{font-size:.9375rem;line-height:1.65}
.guide-browse{padding:42px 0 70px;border-top:1px solid var(--line)}
.guide-browse-heading{display:flex;align-items:end;justify-content:space-between;gap:30px}
.guide-browse-heading h2{font-size:2.25rem;line-height:1.2;margin-top:12px}
.guide-search{width:min(100%,360px)}
.guide-search label{display:block;font-size:.875rem;font-weight:650;margin-bottom:8px;color:var(--ink-soft)}
.guide-search input{width:100%;min-height:48px;padding:12px 16px;border:1px solid #bacdd4;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:1rem}
.guide-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:28px 0}
.guide-filters{display:flex;gap:8px;flex-wrap:wrap}
.guide-filters button{font:inherit;font-size:.9375rem;font-weight:650;min-height:44px;padding:10px 17px;border:1px solid #d0dde2;border-radius:999px;background:#fff;color:var(--ink);cursor:pointer}
.guide-filters button:hover{background:#edf5f7}
.guide-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.guide-results{color:var(--ink-soft);font-size:.875rem;margin:0;white-space:nowrap}
.guide-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:28px}
.guide-card{min-width:0}
.guide-card-link{display:flex;flex-direction:column;height:100%;padding:28px;border:1px solid #d5e1e5;border-radius:22px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.guide-card-link:hover{border-color:#8dadb8;box-shadow:0 8px 24px #173e4e0a}
.guide-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.guide-topic{font-size:.8125rem;font-weight:750;letter-spacing:.025em;color:#345d69;background:#edf5f7;border-radius:8px;padding:6px 10px;display:inline-block}
.guide-read-time{font-size:.8125rem;color:var(--ink-soft)}
.guide-card h3{font-size:1.7rem;line-height:1.25;letter-spacing:-.02em;margin:0 0 16px}
.guide-card-summary{font-size:1rem;color:var(--ink-soft);line-height:1.7;margin:0 0 26px}
.guide-takeaway{margin:auto 0 22px;padding-top:22px;border-top:1px solid #e1e9ec;color:var(--ink);font-size:.9375rem;line-height:1.55}
.guide-takeaway>span{display:block;font-size:.8125rem;font-weight:650;color:var(--ink-soft);margin-bottom:6px}
.guide-card-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;font-size:.8125rem;color:var(--ink-soft)}
.guide-read-link{font-size:.875rem;font-weight:750;color:var(--ink)}
.guide-empty{padding:45px 24px;text-align:center;border:1px dashed #c2d5dc;border-radius:22px;background:#f7fafb;margin-top:28px}
.guide-empty h3{font-size:1.65rem}.guide-empty p{color:var(--ink-soft);margin:14px 0 24px}
.guide-help{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:32px 0 54px;border-top:1px solid var(--line)}
.guide-help h2{font-size:1.7rem;line-height:1.25}.guide-help p{color:var(--ink-soft);margin:12px 0 0}.guide-help .button{flex-shrink:0}
.guide-related{padding:0 0 65px}.guide-related-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.guide-related h2{font-size:2rem}
.guide-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.guide-related-grid>a{display:flex;flex-direction:column;align-items:start;padding:26px;border:1px solid var(--line);border-radius:20px}.guide-related-grid h3{font-size:1.45rem;line-height:1.3;margin:18px 0 24px}.guide-related-grid .guide-read-link{margin-top:auto}.guide-related-grid>a:hover{background:#f5f9fa}
.guide-hub :is(a,button,input):focus-visible,.guide-related a:focus-visible{outline:3px solid #247c95;outline-offset:4px}
@media(max-width:1000px){.guide-hub-intro{gap:35px}.guide-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-filter-bar{align-items:start;flex-direction:column;gap:16px}}
@media(max-width:700px){.guide-hub-intro{grid-template-columns:1fr;gap:24px;padding:40px 0 32px}.guide-start{padding:24px}.guide-browse-heading{align-items:stretch;flex-direction:column;gap:24px}.guide-search{width:100%}.guide-card-grid{grid-template-columns:1fr}.guide-browse{padding:32px 0 44px}.guide-help{align-items:start;flex-direction:column}.guide-related-grid{grid-template-columns:1fr}.guide-related-heading{align-items:start;flex-direction:column;gap:14px}.guide-hub-intro,.guide-browse,.guide-help,.guide-related{width:calc(100% - 40px)}.guide-card-link{padding:25px}.guide-card h3{font-size:1.7rem}.guide-filters button{padding-inline:14px}}
@media(prefers-reduced-motion:reduce){.guide-card-link{transition:none}}

/* September 2026: the approved illustrated Florida homepage. Scope preserves inner pages. */
@font-face{font-family:'Valley Display';src:url('/fonts/fraunces-soft-italic.ttf') format('truetype');font-style:italic;font-weight:700;font-display:swap}
.mascot-home{--ink:#10354b;--ink-soft:#385c6c;--line:#cfe5eb;background:#fffdf8}
/* A single edge-to-edge scene under both the navigation and the page copy. */
.mascot-home .site-header{background:rgba(255,253,247,.38);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 18px #10354b08;border-color:rgba(255,255,255,.5)}
.mascot-home .site-header.is-compact{background:rgba(255,253,247,.88)}
.mascot-home .site-header .brand-logo-frame{background:transparent}
.mascot-home .nav-cta{background:#e8b9c2;color:#10354b}
.mascot-home .nav-cta:hover{background:#efcbd2}
.mascot-home .hero{height:auto;min-height:max(760px,100svh);padding:156px 0 100px;background:#eef3f2;color:var(--ink);display:flex;align-items:center}
.mascot-home .hero-media{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.mascot-home .hero-image{height:100%;width:100%;object-fit:cover;object-position:center;filter:none;animation:none}
.mascot-home .hero-content{width:min(1280px,calc(100% - 88px));margin:auto;padding:0;align-self:auto;animation:none}
.mascot-home .hero .eyebrow{max-width:50%;color:#254757;font-size:.8125rem;letter-spacing:.14em;margin:0 0 22px}
.mascot-home .hero h1{font-family:'Valley Display',Georgia,serif;font-style:italic;font-weight:700;font-size:clamp(3rem,5vw,5.3rem);line-height:1.12;letter-spacing:-.04em;max-width:54%;color:#10354b;text-wrap:initial}
.mascot-home .hero-copy{max-width:40%;font-size:1.1rem;line-height:1.65;margin:25px 0 28px;color:#294b5a}
.mascot-home .hero-actions{gap:12px;max-width:52%;display:flex;flex-wrap:wrap}
.mascot-home .hero-actions .button{min-height:52px;padding:15px 22px;font-size:.875rem;letter-spacing:.025em;box-shadow:none;white-space:nowrap}
.mascot-home .hero .button-pink{background:#e8b9c2;border-color:#e8b9c2;color:#10354b}
.mascot-home .hero .button-glass{background:#cadfe4;border-color:#cadfe4;color:#10354b}
.mascot-home .hero .button-pink:hover{background:#efcbd2;transform:none}
.mascot-home .hero .button-glass:hover{background:#d8e8eb;transform:none}
.coastal-intro{display:flex;align-items:center;justify-content:center;gap:28px;padding:27px 28px;background:#fffdf8;color:#234b61;font-size:.8125rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;text-align:center;line-height:1.5}
.coastal-intro::before,.coastal-intro::after{content:'';height:1px;background:#b3d6df;flex:1;max-width:170px}
.coastal-intro span+span::before{content:'•';color:#e8a6b7;margin-right:28px}
.mascot-home .services{background:#fffdf8;padding-top:40px;padding-bottom:72px}
.mascot-home .services .section-heading{display:block;text-align:center;margin-bottom:32px}
.mascot-home .services .eyebrow{justify-content:center;font-size:.8125rem;letter-spacing:.12em;margin-bottom:12px}
.mascot-home #services-title,.mascot-home #home-work-title{font-family:'Valley Display',Georgia,serif;font-style:italic;font-weight:700;font-size:clamp(2.3rem,3.5vw,3.5rem);line-height:1.16;letter-spacing:-.035em}
.mascot-home .services .section-heading>p{max-width:none;margin:14px 0 0;font-size:1.0625rem;color:#385c6c}
.mascot-home .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px}
.illustrated-service{border:1px solid #c3e4ed;border-radius:20px;padding:7px;background:#fffefa;overflow:hidden;display:flex;flex-direction:column}
.illustrated-service-link{display:block;border-radius:14px;position:relative}
.illustrated-service-link>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px;transition:filter .2s}
.illustrated-service-link:hover>img{filter:brightness(1.04)}
.illustrated-service-caption{position:relative;padding:17px 44px 13px 10px}
.illustrated-service h3{font-family:'Valley Display',Georgia,serif;font-style:italic;font-size:1.55rem;line-height:1.2;letter-spacing:-.025em}
.illustrated-service-caption p{font-size:1rem;line-height:1.45;margin:8px 0 0;color:#385c6c}
.service-arrow{position:absolute;right:3px;top:22px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#ddf2f8;color:#10354b;font-size:1.35rem}
.illustrated-service .service-details{margin:0 10px 6px;padding-top:10px;border-top:1px solid #e5edf0}
.illustrated-service .service-details summary{font-size:.875rem;font-weight:600;color:#466774}
.illustrated-service .service-details p{font-size:.9375rem;line-height:1.65}
.mascot-home .home-work{background:#edf8fa;border:0}
.mascot-home .trust-strip{background:#fffdf8;border-block:1px solid #dce8e9}
.mascot-home .process,.mascot-home .home-coverage{background:#f0f7f7}
.mascot-home .about,.mascot-home .home-faq{background:#fffdf8}
.mascot-home .quote{background:#eef7fa}
.mascot-home .pricing-note{background:#f1f7f7;border-color:#d4e6e9}
.mascot-home .work-comparison figure{border:1px solid #d3e7ea}
@media(min-width:1600px){.mascot-home .hero-content{width:min(1440px,calc(100% - 120px))}.mascot-home .hero h1{font-size:5.8rem}}
@media(min-width:851px) and (max-width:1100px){.mascot-home .hero-content{width:calc(100% - 56px)}.mascot-home .hero h1{font-size:3.25rem}.mascot-home .hero-copy{max-width:46%}.mascot-home .hero-actions .button{padding-inline:17px}.coastal-intro{gap:14px}.coastal-intro span+span::before{margin-right:14px}}
@media(max-width:850px){
 .mascot-home .hero{min-height:max(920px,100svh,175vw);padding:128px 0 500px;align-items:flex-start}
 .mascot-home .hero-content{width:calc(100% - 48px);margin:0 auto;position:relative}
 .mascot-home .hero-media{inset:0;height:100%;width:100%}
 .mascot-home .hero-image{object-position:center;object-fit:cover}
 .mascot-home .hero h1{max-width:100%;font-size:clamp(2.8rem,6.5vw,4rem)}
 .mascot-home .hero .eyebrow{max-width:100%;font-size:.75rem;margin-bottom:17px}
 .mascot-home .hero-copy{max-width:440px;margin:20px 0 24px;font-size:1.05rem}
 .mascot-home .hero-actions{max-width:100%}
 .mascot-home .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .coastal-intro{flex-wrap:wrap;gap:10px 20px;padding:24px;font-size:.75rem}
 .coastal-intro::before,.coastal-intro::after,.coastal-intro span+span::before{display:none}
 .coastal-intro span:last-child{flex-basis:100%}
}
@media(max-width:540px){
 .mascot-home .hero{min-height:max(850px,100svh);padding:142px 0 445px}
 .mascot-home .hero-content{width:calc(100% - 40px)}
 .mascot-home .hero .eyebrow{font-size:.75rem;letter-spacing:.1em;max-width:100%;margin-bottom:16px}
 .mascot-home .hero h1{font-size:clamp(2.1rem,9.3vw,3rem);line-height:1.12;letter-spacing:-.035em}
 .mascot-home .hero-copy{max-width:330px;font-size:1rem;line-height:1.6;margin:17px 0 21px}
 .mascot-home .hero-actions{display:flex;flex-wrap:wrap;gap:10px}
 .mascot-home .hero-actions .button{padding:13px 15px;min-height:48px;font-size:.8125rem;letter-spacing:.01em;gap:8px}
 .mascot-home .hero-media{inset:0;height:100%}
 .mascot-home .hero-image{object-position:center}
 .mascot-home .services{padding-top:34px}
 .mascot-home .services .section-heading .eyebrow{font-size:.75rem}
 .mascot-home #services-title,.mascot-home #home-work-title{font-size:2.4rem}
 .mascot-home .service-grid{grid-template-columns:1fr;gap:22px}
 .illustrated-service-caption{padding:18px 48px 15px 12px}
 .illustrated-service h3{font-size:1.75rem}
 .illustrated-service .service-details{margin-inline:12px}
}
@media(prefers-reduced-motion:reduce){.illustrated-service-link>img{transition:none}}

/* One compact mobile row: logo, phone, quote, and menu. */
@media(max-width:650px){
 body:not(.mascot-home){padding-top:76px}
 .site-header,.site-header.is-compact{display:grid;grid-template-columns:minmax(68px,1fr) auto auto 30px;column-gap:8px;row-gap:0;min-height:52px;padding:6px 10px;top:8px;width:calc(100% - 20px);border-radius:18px}
 .site-header .brand{grid-column:1;grid-row:1;width:100%;min-width:0}
 .site-header .brand-logo-frame,.site-header.is-compact .brand-logo-frame{width:100%;max-width:108px}
 .site-header .header-actions{display:contents}
 .site-header .header-phone{grid-column:2;grid-row:1;font-size:.75rem;letter-spacing:-.03em;font-weight:750;line-height:1.2}
 .site-header .nav-cta{grid-column:3;grid-row:1;min-height:34px;padding:9px 10px;font-size:.6875rem;letter-spacing:0;line-height:1.2;border-radius:999px}
 .site-header .menu-toggle{grid-column:4;grid-row:1;width:30px;height:34px;padding:7px;border:0;background:transparent}
 .site-header nav{grid-column:1/-1;grid-row:auto}
 .mascot-home .hero{padding-top:99px}
 section[id]{scroll-margin-top:85px}
}
@media(max-width:370px){
 .site-header,.site-header.is-compact{column-gap:6px;padding-inline:8px;grid-template-columns:minmax(58px,1fr) auto auto 28px}
 .site-header .header-phone{font-size:.6875rem}
 .site-header .nav-cta{padding-inline:8px;font-size:.625rem}
 .site-header .menu-toggle{width:28px}
}

/* Plain navigation and service context for the Property Guide and service pages. */
.breadcrumbs{position:static;display:block;max-width:1180px;margin:28px auto 0;padding:0 24px;font-size:.8rem;line-height:1.6;color:#46616b;overflow-wrap:anywhere;background:none;border:0;box-shadow:none}
.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}
.guide-hub>.breadcrumbs{padding:0 28px}
.service-learn{display:block;margin:0 16px 18px;font-size:.85rem;color:#254857;text-decoration:underline;text-underline-offset:4px}
.service-intro .button{margin-top:20px}
.article-service-links{border-top:1px solid #dbe4e6;padding-top:24px}
@media(min-width:851px) and (max-width:980px){.site-header .brand-logo-frame{width:154px}.site-header nav{gap:10px;font-size:.8rem}}

/* Genuine alpha logo; retain the original white-backed footer treatment. */
.site-header .brand-logo-frame{background:transparent;aspect-ratio:1660/610}
.site-header .brand-logo-image{width:106.8675%;left:-6.0241%;top:-23.7705%}

@media(max-width:850px){.mascot-home .hero-image{object-position:right center}}

/* Lift only desktop copy above the distant shoreline. Mobile placement stays intact. */
@media(min-width:851px){.mascot-home .hero-content{transform:translateY(clamp(-88px,-11vh,-56px))}}

@media(min-width:851px){.mascot-home .hero-copy{max-width:48%;margin-top:11px;margin-bottom:42px}}

/* A single aligned scene wipes clean with ordinary page scrolling. */
.property-wipe{background:#edf5f5;position:relative;--clean:50%}
.property-wipe-sticky{padding:84px 20px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.property-wipe-heading{text-align:center}
.property-wipe-heading .eyebrow{font-size:.75rem;margin:0 0 8px}
.property-wipe-heading h2{font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.15;margin:0}
.property-wipe-heading>p:last-child{font-size:.9375rem;margin:10px 0 0;color:#466774}
.property-wipe-scene{position:relative;width:min(100%,1200px);aspect-ratio:1.65;overflow:hidden;border-radius:20px;background:#dceef2;isolation:isolate}
.property-wipe-scene>picture{display:block;width:100%;height:100%}
.property-wipe-scene>picture>img{display:block;width:100%;height:100%;object-fit:cover}
.property-wipe-scene>.property-wipe-clean{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--clean)) 0 0)}
.property-wipe-line{position:absolute;left:var(--clean);top:0;bottom:0;width:3px;transform:translateX(-50%);background:#fff;box-shadow:0 0 10px #12354b40;pointer-events:none}
.property-wipe-line>span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:#12354b;border:1px solid #d8e7ec;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-size:1.35rem}
.wipe-label{position:absolute;top:14px;border-radius:999px;background:#fffef5ed;color:#12354b;font-size:.8125rem;padding:7px 14px;font-weight:700}
.wipe-label-clean{left:14px}.wipe-label-dirty{right:14px}
.property-wipe-controls{width:min(100%,560px);text-align:center}
.property-wipe-controls label{font-size:.875rem;font-weight:600}
.property-wipe-controls input{display:block;width:100%;min-height:30px;padding:0;margin:2px 0;accent-color:#286b83;cursor:ew-resize}
.property-wipe-controls input:focus-visible{outline:3px solid #286b83;outline-offset:4px}
.property-wipe-footnote{display:flex;justify-content:space-between;gap:16px;font-size:.75rem;color:#496773;line-height:1.4}
.property-wipe-footnote a{text-decoration:underline;text-underline-offset:3px}
.property-wipe.is-scroll-wipe{height:220svh}
.is-scroll-wipe .property-wipe-sticky{position:sticky;top:0;height:100svh;box-sizing:border-box}
.is-scroll-wipe .property-wipe-scene{width:min(100%,1200px,calc((100svh - 250px)*1.65));flex-shrink:0}
@media(max-width:650px){.property-wipe-sticky{padding:76px 10px 20px;gap:16px}.property-wipe-heading .eyebrow{font-size:.6875rem}.property-wipe-heading h2{font-size:1.8rem}.property-wipe-footnote{font-size:.75rem;gap:8px}.property-wipe-scene{border-radius:14px;aspect-ratio:3/2}.wipe-label{top:10px;font-size:.75rem;padding:5px 10px}.wipe-label-clean{left:10px}.wipe-label-dirty{right:10px}.property-wipe-line>span{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){.property-wipe.is-scroll-wipe{height:auto}.is-scroll-wipe .property-wipe-sticky{position:static;height:auto}.is-scroll-wipe .property-wipe-scene{width:min(100%,1100px)}}
.property-wipe-scene{touch-action:pan-y;cursor:ew-resize;user-select:none}
.property-wipe-scene>picture{pointer-events:none}

.home-extra-results{max-width:1000px;margin:42px auto 0;grid-template-columns:.7fr 1.3fr;align-items:center;gap:32px}
@media(max-width:650px){.home-extra-results{grid-template-columns:1fr;gap:30px}}

@media(max-width:650px){
 .property-wipe.is-scroll-wipe{height:auto}
 .property-wipe .property-wipe-sticky{position:static;height:auto;padding:30px 10px 24px;gap:14px}
 .property-wipe .property-wipe-scene{width:100%}
}

/* One shared landscape keeps leaves, lawn, shadows and small fixtures stable. */
.wipe-surface-defs{position:absolute;pointer-events:none}
.property-wipe-scene>.property-wipe-base{position:absolute;inset:0}
.property-wipe-scene>.property-wipe-dirty{position:relative;clip-path:url(#wipe-cleanable-surfaces)}

.property-wipe-scene{aspect-ratio:3/2}
.is-scroll-wipe .property-wipe-scene{width:min(100%,1200px,calc((100svh - 250px)*1.5))}
@media(max-width:650px){.property-wipe .property-wipe-scene{width:100%}}
