:root {
  --navy: #0b2346;
  --navy-deep: #07172e;
  --royal: #17489b;
  --heading: #18365c;
  --red: #c92336;
  --red-dark: #a8192c;
  --lime: #b9ee36;
  --ink: #152235;
  --muted: #596a77;
  --pale: #f1f6f8;
  --line: #d9e1e6;
  --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font: 400 1rem/1.6 Arial, Helvetica, sans-serif; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; }
h1, h2, h3, p { margin-top: 0; }
.wrap { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.skip-link { position: absolute; z-index: 100; top: -100px; left: 12px; padding: 10px 16px; background: var(--lime); color: var(--navy); font-weight: 800; }
.skip-link:focus { top: 12px; }

.site-chrome { position: absolute; z-index: 30; inset: 0 0 auto; }
.utility { background: var(--lime); color: var(--navy); font-size: .85rem; }
.utility-inner { position: relative; min-height: 38px; display: flex; align-items: center; justify-content: center; padding-block: 5px; text-align: center; }
.utility-inner > span { font-weight: 800; }
.utility-inner > a { position: absolute; right: 0; }
.utility a { font-weight: 800; }
.utility a:hover { text-decoration: underline; }
.site-header { position: relative; z-index: 30; background: transparent; }
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; }
.brand img { width: 206px; height: auto; }
.desktop-nav { display: flex; align-items: center; gap: clamp(16px, 2.2vw, 34px); margin-left: auto; color: var(--white); font-size: .96rem; font-weight: 700; white-space: nowrap; }
.desktop-nav a:hover, .footer a:hover, .text-link:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.desktop-nav a:hover { text-decoration-color: var(--lime); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.mobile-nav { display: none; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 11px 20px; border: 2px solid transparent; border-radius: 3px; font-size: .98rem; font-weight: 800; line-height: 1.2; text-align: center; transition: background .15s, color .15s, border-color .15s; }
.button-red { color: var(--white); background: var(--red); border-color: var(--red); }
.button-red:hover { background: var(--red-dark); border-color: var(--red-dark); }
.button-outline { color: var(--white); background: transparent; border-color: rgba(255,255,255,.85); }
.button-outline:hover { color: var(--navy); background: var(--white); }
.button-white { color: var(--navy); background: var(--white); border-color: var(--white); }
.button-white:hover { background: var(--lime); border-color: var(--lime); }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; }

.hero { position: relative; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: var(--navy); isolation: isolate; }
.home-hero { height: clamp(580px, calc(100svh - 100px), 760px); }
.location-hero { height: 565px; }
.hero-image, .hero-shade { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: center 15%; }
.hero-shade { background: linear-gradient(180deg, rgba(5,18,40,.86), rgba(5,18,40,.32) 25%, transparent 48%), linear-gradient(0deg, rgba(5,18,40,.97) 0%, rgba(5,18,40,.86) 35%, rgba(5,18,40,.48) 69%, rgba(5,18,40,.06) 100%); }
.home-hero .hero-image { object-position: 63% 38%; }
.home-hero .hero-shade { background: linear-gradient(180deg, rgba(5,18,40,.78), rgba(5,18,40,.18) 25%, transparent 44%), linear-gradient(90deg, rgba(5,18,40,.88) 0%, rgba(5,18,40,.72) 26%, rgba(5,18,40,.14) 52%, transparent 70%), linear-gradient(0deg, rgba(5,18,40,.36) 0%, transparent 66%); }
.hero-content { position: relative; padding-block: 80px 48px; }
.hero h1 { max-width: 760px; margin-bottom: 16px; color: var(--white); font-family: Arial, Helvetica, sans-serif; font-size: 4.1rem; font-weight: 800; line-height: 1.09; letter-spacing: 0; }
.hero-lede { max-width: 600px; margin-bottom: 23px; font-size: 1.16rem; line-height: 1.55; }
.home-hero h1 { max-width: 500px; }
.home-hero .hero-lede { max-width: 490px; }
.hero-note { margin: 13px 0 0; color: #e0e9ed; font-size: .9rem; }
.eyebrow { margin-bottom: 15px; color: var(--red); font-size: .82rem; font-weight: 900; text-transform: uppercase; }
.eyebrow-light { color: var(--lime); }
.breadcrumbs { display: flex; align-items: center; gap: 10px; margin-bottom: 23px; color: #e1e9ed; font-size: .9rem; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.location-hero h1 { max-width: 900px; font-size: 3.45rem; }
.location-hero .hero-lede { max-width: 780px; }

.proof-bar { background: var(--lime); color: var(--navy); }
.proof-inner { min-height: 65px; display: flex; align-items: center; justify-content: space-between; gap: 15px; font-size: .83rem; font-weight: 800; text-transform: uppercase; }
.proof-inner span { display: block; }
.section { padding-block: 82px; scroll-margin-top: 24px; }
.section-heading { max-width: 840px; margin-bottom: 34px; }
.section h2, .process-section h2, .closing-cta h2 { max-width: 840px; margin-bottom: 0; color: var(--heading); font-family: Arial, Helvetica, sans-serif; font-size: 2.7rem; font-weight: 800; line-height: 1.18; letter-spacing: 0; }
.section-heading h2 { margin-bottom: 12px; }
.section-heading > p { max-width: 700px; margin: 0; color: var(--muted); font-size: 1.05rem; line-height: 1.55; }
.process-section h2, .closing-cta h2 { color: var(--white); }
.text-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 10px; color: var(--red); font-weight: 900; }
.text-link span { font-size: 1.4rem; line-height: 1; }

.work-section { background: var(--pale); }
.work-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.work-item { min-width: 0; margin: 0; }
.work-item img { width: 100%; height: auto; border: 1px solid var(--line); border-radius: 2px; }
.work-item figcaption { display: block; padding-top: 12px; text-align: left; }
.work-item figcaption h3 { margin: 0 0 4px; color: var(--heading); font-size: 1.08rem; font-weight: 800; line-height: 1.35; }
.work-item figcaption p { margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.5; }

.services-section { background: var(--white); }
.service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; border-top: 1px solid var(--line); }
.service-row { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr) 24px; align-items: start; gap: 14px; padding-block: 25px; border-bottom: 1px solid var(--line); }
.service-index { color: var(--red); font-size: .85rem; font-weight: 900; }
.service-row h3 { margin: 0; color: var(--heading); font-family: Arial, Helvetica, sans-serif; font-size: 1.27rem; font-weight: 800; line-height: 1.32; letter-spacing: 0; }
.service-row p { margin: 7px 0 0; color: var(--muted); font-size: .96rem; line-height: 1.5; }
.row-arrow { color: var(--red); font-size: 1.5rem; font-weight: 700; line-height: 1; }
.service-row:hover h3 { color: var(--red); }

.pricing-section { background: var(--pale); }
.pricing-section .section-heading .eyebrow { color: var(--red); }
.price-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.price-row { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: 20px; padding: 19px 0; border-bottom: 1px solid var(--line); }
.price-row h3 { margin: 0 0 3px; color: var(--heading); font-size: 1.18rem; line-height: 1.3; }
.price-row p { max-width: 720px; margin: 0; color: var(--muted); font-size: .96rem; line-height: 1.5; }
.price-row strong { color: var(--royal); font-size: 1.3rem; line-height: 1.3; text-align: right; white-space: nowrap; }
.pricing-note { margin: 16px 0 0; color: var(--muted); font-size: .92rem; }
.pricing-explainer { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 50px; margin-top: 54px; padding-top: 35px; border-top: 3px solid var(--lime); }
.pricing-explainer h3 { margin: 0; color: var(--heading); font-size: 1.7rem; line-height: 1.25; }
.pricing-explainer > div:last-child p { max-width: 750px; margin-bottom: 15px; }
.pricing-explainer > div:last-child p:last-child { margin-bottom: 0; font-weight: 700; }
.pricing-offer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 36px; padding-top: 26px; border-top: 1px solid var(--line); color: var(--navy); }
.pricing-offer p { margin: 0; font-size: 1.04rem; }
.pricing-offer strong { font-weight: 900; }
.pricing-offer .button { flex: 0 0 auto; }

.process-section { padding-block: 88px; background: var(--navy); color: var(--white); }
.process-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); gap: 80px; }
.process-layout > div > p:not(.eyebrow) { max-width: 470px; margin-top: 21px; color: #d5e1e8; font-size: 1.07rem; }
.process-layout .button-row { margin-top: 26px; }
.steps { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 42px 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.steps li:first-child { padding-top: 0; }
.steps li:last-child { border-bottom: 0; }
.steps span { color: var(--lime); font-weight: 900; }
.steps h3 { margin-bottom: 4px; font-size: 1.22rem; }
.steps p { margin-bottom: 0; color: #d5e1e8; }

.about-section { background: var(--white); }
.about-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 80px; }
.about-copy h2 { margin-bottom: 22px; }
.about-copy p:not(.eyebrow) { max-width: 580px; font-size: 1.1rem; }
.about-photo { min-width: 0; margin: 0; }
.about-photo img { width: 100%; height: auto; border: 1px solid var(--line); }
.about-photo figcaption { margin-top: 8px; color: var(--muted); font-size: .82rem; }
.areas-section { background: var(--pale); }
.area-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.area-links a, .nearby-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 18px 18px 18px 0; border-bottom: 1px solid var(--line); color: var(--heading); font-family: Arial, Helvetica, sans-serif; font-size: 1.18rem; font-weight: 800; line-height: 1.35; letter-spacing: 0; }
.area-links a:not(:nth-child(3n + 1)) { padding-left: 18px; border-left: 1px solid var(--line); }
.area-links a:hover, .nearby-links a:hover { color: var(--red); }
.area-links span, .nearby-links span { color: var(--red); font-family: Arial, sans-serif; font-size: 1.3rem; }
.area-extra { margin: 28px 0 0; color: var(--muted); }
.area-extra a { color: var(--red); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.faq-section { background: var(--white); }
.faq-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 90px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 20px 0; color: var(--navy); font-size: 1.08rem; font-weight: 800; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; flex: 0 0 auto; color: var(--red); font-size: 1.5rem; line-height: 1; }
.faq-list details[open] summary::after { content: '\2212'; }
.faq-list details p { max-width: 600px; margin: 0; padding: 0 25px 20px 0; color: var(--muted); }

.closing-cta { padding-block: 60px; background: var(--red); color: var(--white); }
.closing-inner { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.closing-cta .eyebrow-light { color: #edffae; }
.closing-cta h2 { font-size: 2.8rem; }
.closing-cta p:not(.eyebrow) { margin: 14px 0 0; }
.closing-cta .button-row { flex: 0 0 auto; }
.footer { padding-block: 60px 20px; background: var(--navy-deep); color: var(--white); }
.footer-grid { display: grid; grid-template-columns: 1.5fr .8fr .8fr; gap: 45px; }
.brand-footer img { width: 215px; }
.footer-grid > div:first-child > p { max-width: 320px; margin: 22px 0 0; color: #c9d6df; }
.footer h2 { margin: 0 0 16px; font-size: .85rem; text-transform: uppercase; }
.footer-grid > div:not(:first-child) a { display: block; margin-bottom: 9px; color: #dbe5ea; }
.footer-bottom { display: flex; justify-content: space-between; gap: 15px; margin-top: 45px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.2); color: #b4c5d0; font-size: .85rem; }

.local-intro { background: var(--white); }
.local-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr); align-items: start; gap: 75px; }
.local-layout h2 { margin-bottom: 22px; }
.local-layout p:not(.eyebrow) { max-width: 720px; font-size: 1.08rem; }
.focus-list { padding: 28px; background: var(--pale); border-left: 4px solid var(--red); }
.focus-list h3 { margin-bottom: 15px; color: var(--navy); font-size: 1.1rem; }
.focus-list ul { padding-left: 20px; margin: 0 0 20px; }
.focus-list li { padding-bottom: 6px; }
.focus-list p { margin: 0; color: var(--muted); font-size: .95rem !important; }
.local-work { background: var(--pale); }
.local-work-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .8fr); align-items: center; gap: 70px; }
.local-work figure { min-width: 0; margin: 0; }
.local-work img { width: 100%; height: auto; border: 1px solid var(--line); }
.local-work figcaption { margin-top: 8px; color: var(--muted); font-size: .8rem; }
.local-work-layout > div > p:not(.eyebrow) { margin-top: 20px; font-size: 1.06rem; }
.local-steps { background: var(--white); }
.local-steps h2 { margin-bottom: 34px; }
.simple-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; border-top: 1px solid var(--line); }
.simple-steps > div { padding-top: 24px; }
.simple-steps b { color: var(--red); font-size: .85rem; }
.simple-steps h3 { margin: 10px 0 8px; color: var(--navy); font-size: 1.2rem; }
.simple-steps p { max-width: 320px; margin: 0; color: var(--muted); }
.local-nearby { background: var(--pale); }
.nearby-links { border-top: 1px solid var(--line); }

@media (max-width: 1180px) {
  .home-hero { display: block; height: auto; min-height: 0; padding-top: clamp(325px, 42svh, 440px); }
  .home-hero .hero-image, .home-hero .hero-shade { height: clamp(325px, 42svh, 440px); bottom: auto; }
  .home-hero .hero-image { object-position: 62% 35%; }
  .home-hero .hero-shade { background: linear-gradient(180deg, rgba(5,18,40,.68), rgba(5,18,40,.2) 34%, transparent 60%); }
  .home-hero .hero-content { padding-block: 20px 30px; }
  .home-hero h1 { max-width: 620px; }
  .home-hero .hero-lede { max-width: 630px; }
}

@media (min-width: 761px) and (max-width: 1180px) {
  .home-hero h1 { font-size: 3.25rem; }
}

@media (max-width: 980px) {
  .desktop-nav { gap: 14px; font-size: .88rem; }
  .header-inner { gap: 18px; }
  .process-layout, .about-layout, .faq-layout { gap: 45px; }
  .local-layout, .local-work-layout { gap: 45px; }
}

@media (min-width: 761px) and (max-width: 980px) {
  .work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-item:last-child { grid-column: 1 / -1; width: calc((100% - 24px) / 2); justify-self: center; }
}

@media (max-width: 760px) {
  .wrap { width: min(100% - 32px, 560px); }
  .utility-inner > a { display: none; }
  .header-inner { min-height: 76px; }
  .brand img { width: 160px; }
  .desktop-nav { display: none; }
  .mobile-nav { display: block; position: relative; }
  .mobile-nav summary { min-height: 42px; display: flex; align-items: center; padding: 8px 5px; color: var(--white); font-weight: 800; cursor: pointer; list-style: none; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav nav { position: absolute; z-index: 40; top: 49px; right: -16px; width: min(290px, calc(100vw - 32px)); display: grid; padding: 10px 18px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 12px 26px rgba(7,23,46,.15); }
  .mobile-nav nav a { padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--navy); font-weight: 700; }
  .mobile-nav nav a:last-child { border-bottom: 0; }
  .header-quote { min-height: 42px; padding: 8px 11px; font-size: .86rem; }
  .home-hero { padding-top: 240px; }
  .home-hero .hero-image, .home-hero .hero-shade { height: 240px; }
  .location-hero { height: 595px; }
  .hero-image { object-position: 52% top; }
  .home-hero .hero-image { object-position: 65% 35%; }
  .hero-content { padding-block: 42px 28px; }
  .home-hero .hero-content { padding-block: 22px 28px; }
  .hero h1 { font-size: 2.65rem; }
  .location-hero h1 { font-size: 2.5rem; }
  .hero-lede { margin-bottom: 18px; font-size: 1rem; }
  .hero .button-row .button { min-height: 45px; padding: 9px 13px; font-size: .9rem; }
  .hero-note { font-size: .82rem; }
  .proof-inner { min-height: 56px; justify-content: center; flex-wrap: wrap; gap: 3px 14px; padding: 9px 0; font-size: .73rem; text-align: center; }
  .section { padding-block: 64px; }
  .process-layout, .about-layout, .faq-layout, .local-layout, .local-work-layout { grid-template-columns: 1fr; gap: 24px; }
  .pricing-explainer { grid-template-columns: 1fr; gap: 18px; }
  .pricing-offer { align-items: flex-start; flex-direction: column; }
  .section h2, .process-section h2, .closing-cta h2 { font-size: 2.2rem; }
  .section-heading { margin-bottom: 27px; }
  .section-heading > p { max-width: 500px; }
  .work-grid { grid-template-columns: 1fr; gap: 28px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-row { padding-block: 18px; }
  .process-section { padding-block: 65px; }
  .process-layout > div > p:not(.eyebrow) { margin-top: 14px; }
  .area-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .area-links a:not(:nth-child(3n + 1)) { padding-left: 0; border-left: 0; }
  .area-links a:nth-child(2n) { padding-left: 15px; border-left: 1px solid var(--line); }
  .closing-inner { align-items: start; flex-direction: column; }
  .closing-cta h2 { font-size: 2.35rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px 25px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .focus-list { padding: 22px; }
  .simple-steps { grid-template-columns: 1fr; gap: 0; }
  .simple-steps > div { padding: 20px 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 420px) {
  .utility { font-size: .75rem; }
  .brand img { width: 140px; }
  .header-quote { min-height: 40px; padding-inline: 8px; font-size: .78rem; }
  .header-actions { gap: 5px; }
  .mobile-nav summary { font-size: .83rem; }
  .home-hero { padding-top: 220px; }
  .home-hero .hero-image, .home-hero .hero-shade { height: 220px; }
  .home-hero .hero-content { padding-block: 18px 22px; }
  .hero h1 { font-size: 2.13rem; }
  .location-hero h1 { font-size: 2.15rem; }
  .home-hero .hero-lede { margin-bottom: 14px; font-size: 1rem; line-height: 1.45; }
  .home-hero .hero-note { margin-top: 9px; }
  .hero .button-row { gap: 7px; }
  .hero .button-row .button { min-height: 42px; padding-inline: 10px; font-size: .84rem; }
  .area-links { grid-template-columns: 1fr; }
  .price-row { align-items: start; gap: 10px; }
  .price-row strong { font-size: 1.08rem; }
  .price-row p { font-size: .88rem; }
  .pricing-offer { padding-top: 22px; }
  .area-links a:nth-child(2n) { padding-left: 0; border-left: 0; }
  .footer-bottom { flex-direction: column; }
}

@media (max-width: 360px) {
  .header-inner { gap: 10px; }
  .brand img { width: 126px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
}


/* A continuous, light opening with the original team photo. */
.home-page { background: #fff; }
.home-page .site-chrome { position: relative; background: #fff; }
.home-accent { display: none; }
.home-page .header-inner { min-height: 88px; }
.home-page .site-header .brand img { width: 136px; }
.home-page .desktop-nav, .home-page .mobile-nav summary { color: var(--navy); }
.home-page .header-quote { color: var(--navy); background: transparent; border-color: var(--line); border-radius: 24px; }
.home-page .header-quote:hover { border-color: var(--royal); }
.home-page .home-hero { display: flex; align-items: center; height: auto; min-height: 620px; padding: 0; background: #fff; color: var(--navy); }
.home-page .home-hero .hero-image { inset: 0 0 0 auto; width: 65%; height: 100%; object-position: 65% 48%; }
.home-page .home-hero .hero-shade { inset: 0; width: 100%; height: 100%; background: linear-gradient(90deg, #fff 0%, #fff 35%, rgba(255,255,255,.96) 40%, rgba(255,255,255,.2) 57%, transparent 70%), linear-gradient(0deg, #fff, transparent 16%); }
.home-page .home-hero .hero-content { padding-block: 60px 84px; }
.home-page .home-hero .eyebrow { max-width: 450px; margin-bottom: 20px; color: var(--royal); font-size: .875rem; letter-spacing: .055em; }
.home-page .home-hero h1 { max-width: 600px; color: var(--navy); font-size: clamp(3.2rem, 4.5vw, 4.5rem); line-height: 1.05; letter-spacing: -.045em; margin-bottom: 25px; }
.home-page .home-hero h1 span { color: var(--royal); }
.home-page .home-hero .hero-lede { max-width: 455px; color: #42566e; font-size: 1.125rem; line-height: 1.6; margin-bottom: 26px; }
.home-page .home-hero .button { border-radius: 28px; min-height: 50px; font-size: .94rem; padding-inline: 19px; }
.home-page .home-hero .button-outline { color: var(--navy); border-color: #a5b4c5; background: rgba(255,255,255,.8); }
.home-page .home-hero .button-outline:hover { background: var(--pale); border-color: var(--royal); }
.home-page .home-hero .hero-note { max-width: 455px; margin-top: 20px; color: var(--muted); font-size: .875rem; }
.home-page .proof-bar { background: #fff; color: var(--muted); }
.home-page .proof-inner { min-height: 70px; justify-content: center; gap: 16px 40px; border-bottom: 1px solid var(--line); font-size: .875rem; text-transform: none; font-weight: 600; }
.home-page .services-section { padding-top: 64px; }
@media (max-width: 980px) {
  .home-page .home-hero { display: flex; flex-direction: column; min-height: 0; }
  .home-page .home-hero .hero-content { order: 0; padding-block: 34px 0; }
  .home-page .home-hero .hero-image { position: relative; order: 1; inset: auto; z-index: -1; width: 100%; height: clamp(340px, 48vw, 480px); margin-top: -20px; object-position: center 60%; mask-image: linear-gradient(to bottom, transparent, #000 19%, #000 85%, transparent); }
  .home-page .home-hero .hero-shade { display: none; }
  .home-page .home-hero h1 { max-width: none; font-size: 3.5rem; }
  .home-page .home-hero .hero-lede { max-width: 570px; }
  .home-page .home-hero .hero-note { max-width: none; }
}
@media (max-width: 760px) {
  .home-page .header-inner { min-height: 74px; gap: 14px; }
  .home-page .site-header .brand img { width: 108px; }
  .home-page .header-actions { gap: 16px; }
  .home-page .header-quote { min-height: 40px; padding: 8px 14px; font-size: .875rem; }
  .home-page .mobile-nav summary { font-size: .875rem; }
  .home-page .home-hero .hero-content { padding-block: 26px 0; }
  .home-page .home-hero .eyebrow { font-size: .875rem; letter-spacing: 0; margin-bottom: 16px; }
  .home-page .home-hero h1 { font-size: clamp(2.5rem, 10.2vw, 3.5rem); margin-bottom: 18px; }
  .home-page .home-hero .hero-lede { font-size: 1rem; line-height: 1.55; margin-bottom: 22px; }
  .home-page .home-hero .button-row { gap: 10px; }
  .home-page .home-hero .button { font-size: .875rem; padding: 11px 14px; min-height: 46px; }
  .home-page .home-hero .hero-note { font-size: .875rem; margin-top: 16px; }
  .home-page .home-hero .hero-image { height: auto; aspect-ratio: 4 / 3; margin-top: 4px; object-position: center; }
  .home-page .proof-inner { padding-block: 18px; gap: 7px 22px; font-size: .875rem; }
  .home-page .services-section { padding-top: 45px; }
}
@media (max-width: 360px) {
  .home-page .site-header .brand img { width: 94px; }
  .home-page .header-actions { gap: 8px; }
  .home-page .header-quote { padding-inline: 10px; }
}

/* Mobile opening: clear service and booking before the original team photo. */
.mobile-hero-copy { display: none; }
.home-page .home-hero h1 > .desktop-hero-copy { color: inherit; }
@media (max-width: 760px) {
  .home-page .home-accent, .home-page .proof-bar { display: none; }
  .home-page .header-inner { min-height: 64px; gap: 10px; }
  .home-page .site-header .brand img { width: 102px; }
  .home-page .header-actions { gap: 12px; }
  .home-page .mobile-nav summary { min-height: 44px; }
  .home-page .home-hero { display: flex; flex-direction: column; min-height: 0; height: auto; overflow: hidden; background: #fff; color: var(--navy); border-radius: 0; }
  .home-page .home-hero .desktop-hero-copy { display: none; }
  .home-page .home-hero .mobile-hero-copy { display: inline; color: inherit; }
  .home-page .home-hero .hero-content { order: 0; padding-block: 22px 0; }
  .home-page .home-hero .eyebrow { margin-bottom: 10px; color: var(--red); font-size: .875rem; letter-spacing: .06em; text-shadow: none; }
  .home-page .home-hero h1 { max-width: 540px; margin-bottom: 16px; color: var(--navy); font-size: clamp(2.125rem, 8.9vw, 3.25rem); line-height: 1.08; letter-spacing: -.045em; text-shadow: none; }
  .home-page .home-hero .hero-lede { max-width: none; color: #42566e; font-size: 1rem; line-height: 1.5; margin-bottom: 20px; }
  .home-page .home-hero .button-row { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .home-page .home-hero .button-outline { order: -1; min-height: 52px; background: var(--red); border-color: var(--red); color: #fff; font-size: 1rem; border-radius: 26px; }
  .home-page .home-hero .button-outline:hover { background: var(--red-dark); border-color: var(--red-dark); }
  .home-page .home-hero .button-red { align-self: center; min-height: 44px; padding: 10px 12px; border: 0; background: transparent; color: var(--navy); font-size: .9375rem; text-decoration: underline; text-underline-offset: 4px; }
  .home-page .home-hero .hero-note { max-width: 340px; margin: 8px auto 0; color: var(--muted); font-size: .875rem; line-height: 1.5; text-align: center; }
  .home-page .home-hero .hero-image { position: relative; order: 1; inset: auto; z-index: 0; width: 100%; height: clamp(210px, 60vw, 330px); aspect-ratio: auto; margin: 14px 0 0; object-fit: cover; object-position: center 65%; mask-image: linear-gradient(to bottom, transparent, #000 16%); }
  .home-page .home-hero .hero-shade { display: none; }
  .home-page .services-section { padding-top: 36px; }
}

/* Brandon page: shared mobile opening and readable service details. */
.brandon-page .breadcrumbs { color: var(--muted); font-size: .875rem; margin-bottom: 16px; }
.brandon-page .home-hero h1 { font-size: clamp(2.5rem, 4vw, 3.8rem); max-width: 510px; }
.brandon-page .home-hero .hero-lede { max-width: 445px; }
.brandon-services { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px 36px; }
.brandon-services article { border-top: 2px solid var(--line); padding-top: 20px; }
.brandon-services h3 { color: var(--heading); font-size: 1.25rem; margin-bottom: 10px; }
.brandon-services p { margin-bottom: 0; }
.brandon-owners, .brandon-pricing { background: var(--pale); }
.brandon-page .section .local-layout h2 { margin-bottom: 22px; }
@media(max-width:980px) { .brandon-services { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
.brandon-page .home-hero h1 { font-size: clamp(2.125rem, 8.9vw, 3.25rem); }
.brandon-page .home-hero .hero-lede { max-width: none; }
.brandon-services { grid-template-columns: 1fr; gap: 22px; }
.brandon-page .section { padding-block: 44px; }
.brandon-page .section h2 { font-size: 2rem; }
.brandon-page .breadcrumbs { margin-bottom: 12px; }
}

/* Original Brandon job and graduation photos. */
.brandon-page .home-hero .hero-image { width: 49%; object-fit: contain; object-position: center; background: #fff; }
.brandon-page .home-hero .hero-shade { background: linear-gradient(90deg,#fff 0%,#fff 44%,rgba(255,255,255,.7) 49%,transparent 57%); }
.brandon-graduation { margin: 0; width: min(100%,300px); justify-self: center; }
.brandon-graduation img { width: 100%; height: auto; }
.brandon-graduation figcaption { margin-top: 10px; color: var(--muted); font-size: .875rem; }
.brandon-page .brandon-owners .local-layout { align-items: center; }
.brandon-work-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px; align-items: start; }
.brandon-page .local-work { background: #fff; }
.brandon-page .local-work figcaption { font-size: 1rem; margin-top: 16px; }
.brandon-work-grid h3 { margin-bottom: 6px; color: var(--heading); font-size: 1.25rem; }
.brandon-work-grid p { margin-bottom: 0; }
.brandon-page .local-work .text-link { margin-top: 28px; }
@media(max-width:980px) {
.brandon-page .home-hero .hero-image { width: min(100%,460px); height: auto; aspect-ratio: 3 / 4; margin: 22px auto 0; mask-image: none; }
}
@media(max-width:760px) {
.brandon-page .home-hero .hero-image { width: min(100% - 48px,380px); height: auto; aspect-ratio: 3 / 4; object-fit: contain; object-position: center; mask-image: none; margin: 22px auto 0; }
.brandon-work-grid { grid-template-columns: 1fr; gap: 32px; }
.brandon-graduation { width: min(100%,280px); }
}

/* Brandon founders: original younger photos and a tighter graduation frame. */
.brandon-page .brandon-owners .local-layout { grid-template-columns: 1fr 1.3fr; gap: 40px; }
.brandon-history-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: center; min-width: 0; }
.brandon-history-photos figure { margin: 0; width: 100%; min-width: 0; }
.brandon-history-photos img { display: block; width: 100%; height: auto; }
.brandon-history-photos .brandon-graduation img { aspect-ratio: 4 / 5; height: auto; object-fit: cover; object-position: center 48%; }
.brandon-history-photos figcaption { margin-top: 10px; color: var(--muted); font-size: .875rem; }
@media (max-width: 980px) {
  .brandon-page .brandon-owners .local-layout { grid-template-columns: 1fr; gap: 30px; }
  .brandon-history-photos { width: 100%; max-width: 680px; margin-inline: auto; }
}
@media (max-width: 540px) {
  .brandon-history-photos { grid-template-columns: 1fr; max-width: 380px; gap: 28px; }
}

/* Distinct city content using the approved mobile opening. */
.city-page .breadcrumbs { display:flex; gap:10px; margin-bottom:18px; color:var(--muted); font-size:.875rem; }
.city-page .home-hero h1 { max-width:540px; font-size:clamp(2.5rem,4vw,3.7rem); }
.city-hero-tagline { color:var(--royal); font-size:1.25rem; font-weight:700; margin-bottom:12px; }
.city-page .city-hero-text { min-height:0; border-bottom:1px solid var(--line); }
.city-page .city-hero-text .hero-content { padding-block:40px 48px; }
.city-page .city-hero-text h1 { max-width:800px; }
.city-page .city-hero-text .hero-lede { max-width:680px; }
.city-services-section, .city-pricing { background:var(--pale); }
.city-team img { width:100%; height:auto; }
.city-team figcaption { color:var(--muted); font-size:.875rem; margin-top:12px; }
.city-page .closing-cta .button-red { background:#fff; color:var(--navy); }
@media(max-width:980px) {
.city-page .home-hero { flex-direction:column; }
.city-page .home-hero .hero-image { position:relative; order:1; inset:auto; width:100%; max-width:620px; height:auto; aspect-ratio:4 / 3; object-fit:contain; margin:0 auto; mask-image:none; }
.city-page .home-hero .hero-shade { display:none; }
.city-page .home-hero .hero-content { padding-block:30px; }
}
@media(max-width:760px) {
.city-page .section { padding-block:44px; }
.city-page .section h2 { font-size:2rem; }
.city-page .home-hero h1 { font-size:clamp(2.125rem,8.9vw,3.25rem); }
.city-page .home-hero .hero-content { padding-block:22px; }
.city-page .home-hero .hero-image { width:calc(100% - 48px); }
.city-hero-tagline { font-size:1.0625rem; }
.city-page .home-hero .hero-lede { max-width:none; }
.city-page .closing-cta .button-row { flex-direction:column; align-items:stretch; }
.city-page .closing-cta .button { white-space:normal; text-align:center; }
}

/* Original Plant City photos, shown in full to preserve faces and job details. */
.plant-photo-page .home-hero .hero-image { width:46%; object-fit:contain; object-position:center; background:#fff; }
.plant-photo-page .home-hero .hero-shade { background:linear-gradient(90deg,#fff 0%,#fff 46%,rgba(255,255,255,.6) 52%,transparent 57%); }
.plant-photo-page .home-hero h1 { max-width:520px; }
.plant-job-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.plant-job-grid figure { margin:0; }
.plant-job-grid img { display:block; width:100%; height:auto; }
.plant-job-grid h3 { font-size:1.25rem; color:var(--heading); margin-bottom:8px; }
.plant-job-grid figcaption p { font-size:1rem; }
.plant-team-note { margin-top:28px; max-width:760px; }
@media(max-width:980px) {
.plant-photo-page .home-hero .hero-image { width:min(100% - 48px,420px); height:auto; aspect-ratio:3 / 4; margin:0 auto 24px; }
}
@media(max-width:760px) {
.plant-job-grid { grid-template-columns:1fr; gap:28px; }
}

/* Valrico job photos retain the full original frame. */
.valrico-photo-page .home-hero .hero-image { width:46%; object-fit:contain; object-position:center; background:#fff; }
.valrico-photo-page .home-hero .hero-shade { background:linear-gradient(90deg,#fff 0%,#fff 46%,rgba(255,255,255,.6) 52%,transparent 57%); }
.valrico-photo-page .home-hero h1 { max-width:520px; }
.valrico-work figure { margin:0; }
.valrico-work img { display:block; width:100%; max-width:420px; height:auto; margin-inline:auto; }
.valrico-work figcaption { max-width:420px; margin:12px auto 0; color:var(--muted); font-size:.875rem; }
.valrico-work .local-work-layout { align-items:center; }
@media(max-width:980px) {
.valrico-photo-page .home-hero .hero-image { width:min(100% - 48px,420px); height:auto; aspect-ratio:3 / 4; margin:0 auto 24px; }
}

/* Four service groups stay readable on the new area pages. */
.area-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 40px; }
.area-service-grid article { border-top:2px solid var(--line); padding-top:20px; }
.area-service-grid h3 { color:var(--heading); font-size:1.25rem; margin-bottom:10px; }
.area-service-grid p { margin-bottom:0; }
@media(max-width:760px) { .area-service-grid { grid-template-columns:1fr; gap:24px; } }

/* Tampa job photos retain their full framing and original faces. */
.tampa-work { background: var(--pale); }
.tampa-work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 32px; align-items: start; }
.tampa-job { min-width: 0; margin: 0; }
.tampa-job img { width: 100%; height: auto; border-radius: 8px; }
.tampa-job h3 { margin: 16px 0 6px; color: var(--heading); font-size: 1.25rem; line-height: 1.3; }
.tampa-job p { margin: 0; color: var(--muted); font-size: 1rem; }
.tampa-photo-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tampa-photo-pair figure { min-width: 0; margin: 0; }
.tampa-photo-pair figcaption { margin-top: 6px; color: var(--navy); font-size: .875rem; font-weight: 700; }
@media (max-width: 760px) {
 .tampa-work-grid { grid-template-columns: 1fr; gap: 32px; }
 .tampa-photo-pair { gap: 8px; }
}

/* Original team portraits on location pages without local job imagery. */
.location-team-photo { margin: 0 0 24px; }
.location-team-photo img { display: block; width: 100%; height: auto; border-radius: 6px; }
.location-team-photo figcaption { margin-top: 8px; color: var(--muted); font-size: .875rem; line-height: 1.45; }

/* Service directory and detail pages: clear choices, original job photography. */
.service-opening { padding: 26px 0 48px; border-bottom: 1px solid var(--line); }
.service-breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:.875rem; margin-bottom:28px; }
.service-breadcrumbs a { text-decoration:underline; text-underline-offset:3px; }
.service-opening-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.service-page h1 { margin:0 0 22px; color:var(--navy); font-size:clamp(2.5rem,4.5vw,4.25rem); line-height:1.06; letter-spacing:-.04em; max-width:750px; }
.service-opening .eyebrow { color:var(--red); font-size:.875rem; }
.service-intro { max-width:690px; color:#42566e; font-size:1.125rem; line-height:1.6; margin-bottom:24px; }
.service-actions { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.service-actions .button { border-radius:26px; min-height:52px; padding:12px 28px; font-size:1rem; }
.service-text-cta { display:inline-flex; align-items:center; min-height:44px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.service-reassurance { margin:14px 0 0; color:var(--muted); font-size:.875rem; }
.service-photo { min-width:0; margin:0; }
.service-photo img { width:100%; height:auto; max-height:460px; object-fit:contain; border-radius:8px; }
.service-photo figcaption { color:var(--muted); font-size:.875rem; margin-top:10px; }
.service-prep { background:var(--pale); }
.service-checklist { margin:24px 0 0; padding-left:24px; }
.service-checklist li { padding:0 0 18px 8px; }
.service-checklist li::marker { color:var(--red); font-weight:800; }
.service-page .focus-list { background:#fff; border:1px solid var(--line); border-top:3px solid var(--royal); }
.service-page .focus-list ol { padding-left:22px; }
.service-page .focus-list li { padding-bottom:12px; }
.service-related { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.service-related a { padding:20px 0; border-top:2px solid var(--line); color:var(--royal); font-size:1.125rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.service-coverage { margin:28px 0 0; color:var(--muted); }
.service-coverage a { color:var(--royal); text-decoration:underline; }
.service-closing { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; }
.service-closing .button { background:#fff; color:var(--navy); border-color:#fff; }
.service-hub-opening { padding-block:40px 48px; }
.service-directory-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 56px; }
.service-directory-grid article { position:relative; padding:26px 0 0; border-top:2px solid var(--navy); }
.service-number { color:var(--red); font-size:.875rem; font-weight:800; }
.service-directory-grid h3 { font-size:1.65rem; color:var(--heading); margin:8px 0 12px; }
.service-directory-grid h3 a:hover { text-decoration:underline; }
.service-directory-grid p { color:var(--muted); }
.service-directory-grid ul { padding-left:20px; }
.service-directory-grid li { padding-bottom:6px; }
.services-all-link { margin-top:26px; }
@media(max-width:760px) {
 .service-opening { padding:18px 0 30px; }
 .service-opening-grid,.service-directory-grid,.service-closing { grid-template-columns:1fr; gap:28px; }
 .service-breadcrumbs { margin-bottom:22px; }
 .service-page h1 { font-size:clamp(2.2rem,9vw,3.3rem); margin-bottom:18px; }
 .service-intro { font-size:1rem; }
 .service-actions { align-items:stretch; text-align:center; }
 .service-text-cta { justify-content:center; }
 .service-photo img { max-height:380px; }
 .service-page .section { padding-block:44px; }
 .service-page .section h2 { font-size:2rem; }
 .service-related { grid-template-columns:1fr; gap:0; }
 .service-directory-grid { gap:32px; }
}

/* Services overview: open, full-width rows and one team photograph. */
.services-hub .hub-intro { padding:30px 0 32px; }
.services-hub .hub-intro .eyebrow { margin-bottom:10px; color:var(--red); font-size:.875rem; }
.services-hub .hub-intro h1 { max-width:none; margin-bottom:14px; font-size:clamp(2.35rem,4.5vw,3.6rem); }
.hub-intro p:not(.eyebrow) { color:#42566e; font-size:1.0625rem; line-height:1.5; margin:0 0 20px; }
.hub-intro .button { border-radius:25px; min-height:48px; padding-inline:24px; }
.hub-estimate-note { display:inline-block; margin-left:18px; color:var(--muted); font-size:.875rem; }
.hub-service-list { padding:0 0 48px; }
.hub-service-line { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr) auto; align-items:center; gap:32px; padding:26px 0; border-top:1px solid var(--line); }
.services-hub .hub-service-line h2 { margin:0; color:var(--navy); font-size:1.65rem; line-height:1.2; letter-spacing:-.025em; }
.hub-service-line p { color:var(--muted); font-size:1rem; line-height:1.5; margin:0; }
.hub-service-detail { color:var(--royal); font-size:.9375rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.hub-service-line:hover h2,.hub-service-line:hover .hub-service-detail { color:var(--red); }
.hub-help { margin:18px 0 0; padding-top:24px; border-top:1px solid var(--line); color:var(--muted); font-size:1rem; }
.hub-help a { color:var(--royal); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.hub-coverage { padding-top:8px; }
.hub-coverage h3 { color:var(--heading); font-size:1.35rem; margin-bottom:12px; }
.services-hub .service-prep .service-photo img { max-height:none; border-radius:0; }
@media(max-width:760px) {
 .services-hub .hub-intro { padding:20px 0 26px; }
 .services-hub .hub-intro h1 { max-width:390px; font-size:2.25rem; line-height:1.06; }
 .hub-intro p:not(.eyebrow) { font-size:1rem; margin-bottom:16px; }
 .hub-estimate-note { display:block; margin:9px 0 0; }
 .hub-service-line { grid-template-columns:1fr auto; align-items:baseline; column-gap:14px; row-gap:8px; padding:22px 0; }
 .services-hub .hub-service-line h2 { font-size:1.375rem; }
 .hub-service-line p { grid-column:1 / -1; grid-row:2; }
 .hub-service-detail { font-size:.875rem; white-space:nowrap; }
 .hub-service-list { padding-bottom:30px; }
}
@media(max-width:360px) {
 .hub-service-line { grid-template-columns:1fr; }
 .hub-service-detail { grid-row:3; }
}

/* Additional service types remain open, readable lists rather than cards. */
.hub-expanded-group { margin-top:40px; }
.services-hub .hub-expanded-group > h2 { font-size:1.25rem; margin:0 0 8px; color:var(--red); }
.hub-additional-service { display:block; border-top:1px solid var(--line); padding:20px 0; }
.hub-additional-service h3 { font-size:1.25rem; line-height:1.3; margin:0 0 7px; color:var(--navy); }
.hub-additional-service h3 span { margin-left:8px; color:var(--royal); }
.hub-additional-service p { margin:0; color:var(--muted); line-height:1.5; max-width:760px; }
.hub-additional-service:hover h3 { color:var(--red); }
.service-scope-list { max-width:850px; }
.service-scope-list article { padding:24px 0; border-top:1px solid var(--line); scroll-margin-top:130px; }
.service-scope-list h3 { margin:0 0 10px; font-size:1.35rem; }
.service-scope-list p { margin:0; color:var(--muted); line-height:1.65; }

/* Individual service pages: short mobile opening, open sections, one team photo. */
.individual-opening { padding:22px 0 36px; border-bottom:1px solid var(--line); }
.individual-service .individual-opening h1 { max-width:850px; font-size:clamp(2rem,4vw,3.4rem); }
.individual-opening .eyebrow { color:var(--red); font-size:.875rem; }
.individual-promise { font-weight:700; font-size:1.15rem; color:var(--navy); margin:0 0 10px; }
.individual-reading { max-width:900px; }
.individual-includes { margin:28px 0 22px; }
.individual-includes article { border-top:1px solid var(--line); padding:20px 0; }
.individual-includes h3 { font-size:1.25rem; margin:0 0 8px; }
.individual-includes p { margin:0; color:var(--muted); }
.individual-scope { color:var(--muted); }
.individual-reading p > a:not(.text-link) { color:var(--royal); text-decoration:underline; text-underline-offset:3px; }
.individual-related-heading { margin-top:36px; }
@media(max-width:760px) {
 .individual-opening { padding:16px 0 28px; }
 .individual-service .individual-opening h1 { font-size:clamp(2rem,8vw,2.65rem); line-height:1.1; }
 .individual-service .service-breadcrumbs { font-size:.75rem; margin-bottom:20px; }
 .individual-service .section h2 { font-size:1.75rem; }
 .individual-promise { font-size:1.0625rem; }
 .individual-service .service-intro { margin-bottom:18px; }
}

/* Full original photo frames; responsive files keep mobile transfers small. */
.matched-job-photo img { display:block; width:auto; max-width:100%; height:auto; max-height:560px; margin-inline:auto; object-fit:contain; }
.service-job-pair { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.service-job-pair figcaption { font-size:.875rem; }
@media(max-width:760px) {
 .service-job-pair { grid-template-columns:1fr; gap:24px; }
 .matched-job-photo img { max-height:none; width:100%; }
}

/* Contact: direct actions first on mobile; two open columns on desktop. */
.contact-opening { padding:24px 0 56px; }
.contact-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(40px,6vw,90px); align-items:start; }
.contact-page h1 { font-size:clamp(2.2rem,4vw,3.7rem); max-width:660px; }
.contact-page .eyebrow { color:var(--red); }
.contact-lede { font-size:1.35rem; font-weight:700; line-height:1.4; color:var(--navy); margin:0 0 14px; }
.contact-lead > p:not(.eyebrow):not(.contact-lede),.contact-emails > p:not(.eyebrow) { color:var(--muted); }
.contact-phone { display:inline-flex; flex-direction:column; justify-content:center; padding:8px 0; margin:8px 0 18px; color:var(--navy); font-size:1.9rem; font-weight:800; }
.contact-phone span { font-size:.875rem; font-weight:400; color:var(--muted); }
.contact-phone:hover { color:var(--red); }
.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.contact-actions .button { border-radius:28px; min-height:52px; }
.contact-text-link { display:inline-flex; align-items:center; min-height:44px; color:var(--navy); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.contact-note { font-size:.875rem; margin-top:12px; }
.contact-emails h2 { font-size:2rem; margin-bottom:12px; }
.contact-email-row { padding:22px 0; border-top:1px solid var(--line); }
.contact-email-row h3 { margin:0 0 5px; font-size:1.2rem; }
.contact-email-row h3 span { margin-left:8px; color:var(--muted); font-weight:400; font-size:.875rem; }
.contact-email-row p { font-size:.9375rem; color:var(--muted); margin:0; }
.contact-email-row > a { display:inline-flex; align-items:center; min-height:44px; color:var(--royal); font-weight:700; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; max-width:100%; }
.contact-prep { background:var(--pale); }
.contact-checklist,.contact-next ol { padding-left:23px; }
.contact-checklist li,.contact-next li { padding:0 0 16px 5px; }
.contact-next li::marker { color:var(--red); font-weight:800; }
.contact-explore { display:flex; flex-wrap:wrap; gap:12px 24px; }
.contact-explore a { min-height:44px; display:inline-flex; align-items:center; }
@media(max-width:760px) {
 .contact-opening { padding:18px 0 32px; }
 .contact-layout { grid-template-columns:1fr; gap:32px; }
 .contact-page h1 { font-size:clamp(2.15rem,8vw,2.8rem); }
 .contact-lede { font-size:1.15rem; }
 .contact-phone { font-size:1.75rem; margin:2px 0 14px; }
 .contact-actions { align-items:stretch; text-align:center; }
 .contact-text-link { justify-content:center; }
 .contact-emails h2,.contact-page .section h2 { font-size:1.75rem; }
 .contact-email-row { padding:18px 0; }
}

/* About: a photo-led story with open sections, not a grid of cards. */
.story-opening { padding:24px 0 56px; }
.story-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.about-story-page h1 { font-size:clamp(2.3rem,4vw,3.6rem); max-width:640px; }
.about-story-page .eyebrow { color:var(--red); }
.story-lede { color:var(--muted); font-size:1.125rem; line-height:1.65; }
.story-photo { margin:0; min-width:0; }
.story-photo img { display:block; width:100%; height:auto; border-radius:8px; }
.story-photo figcaption { margin-top:10px; color:var(--muted); font-size:.875rem; }
.story-history { background:var(--pale); }
.story-graduation { max-width:390px; margin-inline:auto; }
.story-graduation img { width:100%; height:auto; aspect-ratio:710 / 1290; object-fit:cover; object-position:center; }
.story-reading { max-width:860px; }
.story-reading p > a { color:var(--royal); text-decoration:underline; text-underline-offset:3px; }
.story-owner { padding:24px 0; border-top:1px solid var(--line); scroll-margin-top:100px; }
.story-owner h3 { font-size:1.5rem; margin:0 0 10px; }
.story-owner h3 span { display:block; color:var(--muted); font-size:.875rem; font-weight:400; margin-top:6px; }
.story-owner p { color:var(--muted); }
.story-principles article { border-top:1px solid var(--line); padding:24px 0; }
.story-principles h3 { font-size:1.3rem; margin:0 0 10px; }
.story-principles p { margin:0; color:var(--muted); }
.story-links { display:flex; flex-wrap:wrap; gap:12px 24px; }
.story-links a { min-height:44px; display:inline-flex; align-items:center; }
#our-story { scroll-margin-top:24px; }
@media(max-width:760px) {
 .story-opening { padding:18px 0 32px; }
 .story-layout { grid-template-columns:1fr; gap:28px; }
 .about-story-page h1 { font-size:clamp(2.15rem,8.2vw,2.9rem); }
 .about-story-page .section h2 { font-size:1.8rem; }
 .story-lede { font-size:1.0625rem; }
 .story-paths > .story-graduation { order:2; width:min(100%,340px); }
}

/* Recognizable, labeled social links with comfortable touch targets. */
.social-links { display:flex; flex-wrap:wrap; gap:10px 24px; }
.social-links a { display:inline-flex; align-items:center; gap:9px; min-height:44px; font-weight:700; color:var(--navy); }
.social-links svg { flex:none; }
.social-links a:hover span { text-decoration:underline; text-underline-offset:4px; }
.social-links a:focus-visible { outline:2px solid currentColor; outline-offset:5px; border-radius:3px; }
.footer-social { padding-top:28px; padding-bottom:12px; }
.footer-social > p { color:#c9d6df; font-size:.875rem; margin:0 0 8px; }
.footer-social .social-links a { color:#fff; --social-play:var(--navy); }
.social-section { background:var(--pale); }
.social-section h2 { margin-bottom:12px; }
.social-section p:not(.eyebrow) { color:var(--muted); max-width:620px; }
.social-section .social-links { margin-top:18px; }
@media(max-width:480px) { .social-links { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; } }

/* Customer words presented as open quotes, with no boxed photo tiles. */
.customer-reviews { background:#fff; }
.review-excerpts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.review-excerpt { margin:0; border-top:2px solid var(--line); padding-top:24px; }
.review-excerpt blockquote { margin:0 0 20px; }
.review-excerpt blockquote p { color:var(--navy); font-size:1.2rem; line-height:1.55; }
.review-excerpt figcaption strong { display:block; color:var(--navy); }
.review-excerpt figcaption span { display:block; color:var(--muted); font-size:.875rem; margin-top:4px; }
@media(max-width:760px) { .review-excerpts { grid-template-columns:1fr; gap:24px; } .review-excerpt { padding-top:20px; } .review-excerpt blockquote p { font-size:1.125rem; } }

.google-review-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 26px; margin-top:28px; }
.google-review-actions .button { min-height:48px; border-radius:26px; }
.google-review-actions .text-link { display:inline-flex; align-items:center; min-height:44px; }
.google-review-invite p:not(.eyebrow) { max-width:640px; color:var(--muted); }
.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; }
@media(max-width:760px) { .google-review-actions { flex-direction:column; align-items:stretch; text-align:center; gap:8px; } .google-review-actions .text-link { justify-content:center; } }

/* Owner-verified, dated Google rating snapshot; no live requests. */
.google-rating-summary { margin:0 0 18px; color:var(--navy); }
.google-rating-summary > a { display:inline-flex; flex-wrap:wrap; gap:7px; align-items:center; min-height:44px; font-size:1rem; }
.google-rating-summary > a:hover { text-decoration:underline; text-underline-offset:4px; }
.google-rating-summary .rating-star { color:#996600; font-size:1.25rem; }
.google-rating-summary > small { display:block; font-size:.75rem; color:var(--muted); line-height:1.4; }
.customer-reviews .google-rating-summary { margin-top:10px; }
@media(max-width:760px) { .home-hero .google-rating-summary { margin-bottom:14px; } .google-rating-summary > a { font-size:.9375rem; } }

/* Privacy policy: readable document layout on desktop and mobile. */
.privacy-document { max-width:860px; padding-top:28px; padding-bottom:64px; }
.privacy-document h1 { font-size:clamp(2.25rem,5vw,3.5rem); color:var(--navy); margin-bottom:12px; letter-spacing:-.03em; }
.privacy-date { color:var(--muted); font-size:.9375rem; margin-bottom:28px; }
.privacy-document section { margin-top:34px; }
.privacy-document h2 { font-size:1.5rem; margin-bottom:14px; }
.privacy-document p,.privacy-document li,.privacy-document address { line-height:1.7; }
.privacy-document ul { padding-left:24px; }
.privacy-document li { padding-bottom:6px; }
.privacy-document a { color:var(--royal); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.privacy-document address { font-style:normal; }
@media(max-width:760px) { .privacy-document { padding-top:20px; padding-bottom:44px; } .privacy-document h2 { font-size:1.35rem; } }

/* Real hot tub job: full-size photos, stacked on phones. */
.hot-tub-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:28px}.hot-tub-photo-pair .service-photo{margin:0}.hot-tub-photo-pair img{display:block;width:100%;height:auto;object-fit:contain}@media(max-width:760px){.hot-tub-photo-pair{grid-template-columns:1fr;gap:28px}}

/* Thonotosassa: bold opening, large job evidence and open service rows. */
.thono-redesign h2{font-size:clamp(1.9rem,3.3vw,2.9rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:20px}.thono-opening{background:var(--navy);color:white}.thono-opening-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center;padding-block:56px}.thono-kicker{font-size:.875rem;letter-spacing:.08em;font-weight:700;color:#c9d9ee;margin-bottom:22px}.thono-opening h1{font-size:clamp(2.65rem,5vw,4.5rem);line-height:1.02;letter-spacing:-.045em;color:white;margin:0 0 24px}.thono-lede{font-size:1.15rem;max-width:460px;color:#e6edf6;margin-bottom:28px}.thono-text-action{display:block;width:fit-content;font-weight:700;text-decoration:underline;text-underline-offset:5px;margin-top:18px}.thono-assurance{font-size:.875rem;color:#c9d9ee;margin:26px 0 0}.thono-cover{margin:0}.thono-cover img{width:100%;height:530px;object-fit:cover;object-position:center 48%}.thono-cover figcaption{font-size:.875rem;color:#c9d9ee;margin-top:12px}.thono-work,.thono-services,.thono-process{padding:76px 0}.thono-section-intro{max-width:610px}.thono-section-intro>p:last-child{font-size:1.1rem;color:var(--muted)}.thono-comparison{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:32px}.thono-comparison figure{margin:0}.thono-comparison span{display:block;font-size:.875rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}.thono-comparison img{width:100%;height:auto}.thono-work-note{margin:22px 0 0;color:var(--muted)}.thono-services{border-top:1px solid var(--line)}.thono-services-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:80px}.thono-service-lines>a{display:block;border-bottom:1px solid var(--line);padding:22px 0}.thono-service-lines>a:first-child{padding-top:0}.thono-service-lines h3{font-size:1.35rem;margin-bottom:6px}.thono-service-lines p{margin:0;color:var(--muted)}.thono-service-lines a:hover h3{text-decoration:underline}.thono-process{background:var(--pale)}.thono-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:36px}.thono-steps span{font-weight:800;color:var(--red);font-size:1.15rem}.thono-steps h3{font-size:1.2rem;margin:12px 0}.thono-price-note{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.thono-price-note a,.thono-nearby a{text-decoration:underline}.thono-final{background:var(--navy);color:white;padding:64px 0}.thono-final h2{color:white}.thono-nearby{font-size:.875rem;color:#c9d9ee;margin:36px 0 0}
@media(max-width:760px){.thono-opening-grid{grid-template-columns:1fr;gap:28px;padding-block:30px}.thono-kicker{font-size:.8rem;margin-bottom:18px;letter-spacing:.045em}.thono-opening h1{font-size:2.7rem;margin-bottom:18px}.thono-lede{font-size:1.0625rem;line-height:1.5;margin-bottom:22px}.thono-opening .button,.thono-final .button{width:100%}.thono-text-action{margin:16px auto 0;text-align:center}.thono-assurance{margin-top:20px;font-size:.875rem}.thono-cover img{height:290px;object-position:center 45%}.thono-work,.thono-services,.thono-process{padding:44px 0}.thono-comparison{grid-template-columns:1fr;gap:28px;margin-top:26px}.thono-comparison img{max-height:520px;object-fit:contain;background:#f1f6f8}.thono-services-layout{grid-template-columns:1fr;gap:20px}.thono-steps{grid-template-columns:1fr;gap:24px}.thono-steps>div{border-top:1px solid var(--line);padding-top:20px}.thono-steps p{margin-bottom:0}.thono-final{padding:44px 0}}

.discount-note{font-size:1rem;color:var(--muted);margin:24px 0 16px}.discount-note strong{color:var(--navy)}

/* Practical decision guides and mobile-first navigation. */
.guide-intro{padding:48px 0 36px;background:#102445;color:#fff}
.guide-intro .eyebrow{color:#fff;opacity:.85}.guide-intro h1{color:#fff;max-width:850px;font-size:clamp(2.2rem,5vw,4rem);line-height:1.08;margin:18px 0}.guide-intro p{max-width:720px;font-size:1.15rem}.guide-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:24px}.guide-intro .text-link,.closing-cta .text-link{color:#fff}.guide-intro .guide-note{font-size:.95rem;margin-top:16px}.guide-body{max-width:900px}.guide-section{padding:36px 0;border-bottom:1px solid #dce1e6}.guide-section h2{font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.2}.guide-section p,.guide-section li,.guide-table{font-size:1.0625rem;line-height:1.7}.guide-section li{margin-bottom:12px}.guide-section a{text-decoration:underline;text-underline-offset:3px}.guide-section details{padding:18px 0;border-bottom:1px solid #dce1e6}.guide-section summary{font-weight:700;cursor:pointer}.guide-photo{margin:36px 0 48px}.guide-photo img{display:block;width:100%;height:auto;border-radius:12px}.guide-photo figcaption{font-size:.95rem;margin-top:10px}.comparison-scroll{overflow-x:auto}.guide-table{width:100%;border-collapse:collapse;text-align:left;min-width:540px}.guide-table th,.guide-table td{padding:18px 14px;border-bottom:1px solid #dce1e6;vertical-align:top}.guide-table thead{background:#102445;color:white}.desktop-nav{gap:clamp(12px,1.4vw,24px);font-size:.9rem}
@media(max-width:1100px){.desktop-nav{display:none}.mobile-nav{display:block;position:relative}.mobile-nav summary{min-height:44px;display:flex;align-items:center;padding:8px 5px;color:var(--navy);font-weight:800;cursor:pointer;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{position:absolute;z-index:40;top:49px;right:0;width:min(320px,calc(100vw - 32px));display:grid;padding:10px 18px;background:#fff;border:1px solid #dce1e6;box-shadow:0 12px 26px rgba(7,23,46,.15);max-height:calc(100dvh - 150px);overflow-y:auto}.mobile-nav nav a{padding:12px 0;border-bottom:1px solid #dce1e6;color:var(--navy);font-weight:700;min-height:44px}.mobile-nav nav .menu-estimate{background:#c62032;color:#fff;text-align:center;border-radius:6px;padding:12px;margin:10px 0;border:0}}
@media(max-width:600px){.guide-intro{padding:30px 0}.guide-intro .eyebrow{font-size:.8rem}.guide-actions{align-items:stretch;flex-direction:column;gap:18px}.guide-actions .button{text-align:center}.guide-section{padding:28px 0}.guide-table{min-width:0;font-size:.9rem;line-height:1.5;table-layout:fixed}.guide-table th,.guide-table td{padding:12px 7px;overflow-wrap:break-word}.guide-table th:first-child{width:25%}.guide-photo{margin:28px 0}}

/* Desktop audit: keep the existing mobile layout and actions unchanged. */
.desktop-estimate { display: none; }
@media (min-width: 1101px) {
  .home-page .header-quote { display: none; }
  .home-page .desktop-estimate { display: inline-flex; border-radius: 24px; white-space: nowrap; }
  .decision-guide .closing-cta .button-red { background: #fff; color: var(--navy); border-color: #fff; }
  .decision-guide .closing-cta .button-red:hover { background: var(--pale); border-color: var(--pale); }
}

/* Fluid wide-screen spacing; phone and tablet layouts retain their existing rules. */
@media (min-width: 1280px) {
  .wrap { width: min(1600px, calc(100% - 96px)); }
  .home-page .home-hero .hero-content { padding-block: 48px 64px; }
}
