/* A&A Tree Care - site stylesheet (generated into public/sites/aatreecare/css/site.css by tools/aatreecare-site/build.js). v228 2026-10-28:
   phone-first rhythm (one consolidated max-width:720px block at the foot), featured service card, row cards, Call | Free estimate bar,
   async-font fallbacks, lazy-image skeletons, AA amber text. Desktop layout changes only where a rule says so. */
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("Roboto"),local("Helvetica Neue");size-adjust:107.4%;ascent-override:90.2%;descent-override:22.5%;line-gap-override:0%}
@font-face{font-family:"PJS Fallback";src:local("Arial"),local("Roboto"),local("Helvetica Neue");size-adjust:103%;ascent-override:104%;descent-override:29%;line-gap-override:0%}
:root{--green:#146b3a;--green-dark:#0b3d26;--green-deep:#07271a;--amber:#f59e0b;--amber-dark:#d97706;--amber-text:#b45309;--ink:#0f172a;--muted:#475569;--line:#e2e8e4;--bg:#ffffff;--soft:#f3f7f4;--card:#ffffff;--radius:14px;--shadow:0 10px 30px rgba(7,39,26,.10);--shadow-lg:0 24px 60px rgba(7,39,26,.18);--wrap:1180px;--font-head:"Plus Jakarta Sans","PJS Fallback",system-ui,sans-serif;--font-body:"Inter","Inter Fallback",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
[hidden]{display:none!important} /* .lead-form{display:grid} would otherwise beat the browser's [hidden] after a submit */
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px}
img,picture{display:block;max-width:100%}picture img{width:100%;height:100%;object-fit:cover;background:inherit}
a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}
/* a link inside running text is underlined so it reads as a link without colour alone (Lighthouse link-in-text-block) */
p a:not(.btn),.also a,.review-ask a,.review footer a,.faq-more a{text-decoration:underline;text-underline-offset:2px}
h1,h2,h3{font-family:var(--font-head);line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.6vw,3.4rem);font-weight:800}h2{font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:800}h3{font-size:1.2rem;font-weight:700}
p{margin:0 0 1em}ul{padding-left:1.2em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}.narrow{max-width:860px}.center{text-align:center}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;border-radius:8px;z-index:100}.skip:focus{left:8px}
svg{width:1.2em;height:1.2em;flex:none}
#estimate{scroll-margin-top:88px}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5em;padding:.8em 1.3em;border-radius:999px;font-family:var(--font-head);font-weight:700;font-size:.98rem;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;white-space:nowrap}
.btn:hover,.card:hover,.area-card:hover{text-decoration:none}
@media (hover:hover){.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.area-card:hover{border-color:var(--green);transform:translateY(-2px)}}
.btn-accent{background:var(--amber);color:#1a1200}.btn-accent:hover{background:#fbbf24}
.btn-light{background:#fff;color:var(--green-dark)}.btn-ghost{background:transparent;color:var(--green-dark);border-color:var(--line)}
.btn-outline{background:transparent;color:var(--green-dark);border-color:var(--green)}
.btn-lg{padding:1em 1.6em;font-size:1.05rem}.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.2em}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
@media (max-width:860px){.site-header{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:74px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink)}.brand:hover{text-decoration:none}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--green-dark);color:var(--amber);font-family:var(--font-head);font-weight:800;font-size:.95rem;letter-spacing:-.02em}
.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text strong{font-family:var(--font-head);font-size:1.05rem}.brand-text small{color:var(--muted);font-size:.8rem}
.brand-light{color:#fff}.brand-light .brand-text small{color:#9fb8aa}
.nav{display:flex;gap:4px}.nav a{padding:8px 12px;border-radius:8px;color:var(--ink);font-weight:500;font-size:.95rem;white-space:nowrap}.nav a:hover,.nav a[aria-current]{background:var(--soft);text-decoration:none;color:var(--green-dark)}
.nav-cta{display:flex;align-items:center;gap:8px}.nav-cta .btn{padding:.6em 1em;font-size:.9rem}.nav-cta .btns{display:flex;align-items:center;gap:8px}
.nav-toggle{display:none;background:none;border:0;padding:8px;color:var(--ink);cursor:pointer}.nav-toggle svg{width:28px;height:28px}
.nav-cta .emerg{display:none}
@media (min-width:1100px){.nav-cta{flex-direction:column;align-items:flex-end;gap:2px}.nav-cta .emerg{display:block;font-size:.74rem;font-weight:700;color:var(--amber-text);letter-spacing:.06em;text-transform:uppercase}}
/* one hamburger breakpoint: below 1100px the six links never wrap into a second header row */
@media (max-width:1099px){.nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;padding:8px 20px 14px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.nav.open{display:flex}.nav a{padding:13px 8px;font-size:1.05rem;border-radius:0;border-bottom:1px solid var(--line)}.nav a:last-child{border-bottom:0}.nav-toggle{display:inline-flex}.nav-cta .btn-ghost{display:none}}
@media (max-width:1199px){.brand-text small{display:none}}
/* hero */
.hero{position:relative;color:#fff;overflow:hidden;background:var(--green-deep)}
.hero-bg{position:absolute;inset:0;background:var(--green-deep)}.hero-bg picture,.hero-bg img{width:100%;height:100%}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(7,39,26,.94) 0%,rgba(7,39,26,.82) 45%,rgba(7,39,26,.45) 100%)}
.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding:64px 20px 72px}
.hero h1{color:#fff;margin-bottom:.4em}.hero h1 em{font-style:normal;color:var(--amber)}
.h1-where{display:block;font-size:.6em;font-weight:700;margin-top:.3em;color:#dbe9e0}
.hero .lead{font-size:1.15rem;color:#e6efe9;max-width:560px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 0}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:#e6efe9;font-size:.9rem;font-weight:600;margin:20px 0 0}.hero-meta span{display:inline-flex;align-items:center;gap:6px}.hero-meta svg{color:var(--amber)}
/* inner hero */
.inner-hero{position:relative;color:#fff;background:var(--green-deep);overflow:hidden}.inner-hero .wrap{position:relative;padding:36px 20px 56px}.inner-hero h1{color:#fff;max-width:820px}.inner-hero h1 em{font-style:normal;color:var(--amber)}.inner-hero .lead{font-size:1.1rem;color:#e6efe9;max-width:680px}
.inner-hero .hero-bg::after{background:linear-gradient(100deg,rgba(7,39,26,.95) 0%,rgba(7,39,26,.78) 60%,rgba(7,39,26,.5) 100%)}
/* the inner-hero photos are 710 px wide: on desktop they fill the right half instead of being stretched across the page */
@media (min-width:1025px){.inner-hero .hero-bg{left:45%}.inner-hero .hero-bg::after{background:linear-gradient(90deg,var(--green-deep) 0%,rgba(7,39,26,.6) 30%,rgba(7,39,26,.4) 100%)}}
.crumbs{font-size:.85rem;color:var(--muted);padding:12px 20px 0}.crumbs a{color:var(--muted)}
.crumbs-bar{background:var(--green-deep)}.crumbs-bar .crumbs{font-size:.82rem;color:#9fb8aa;padding:12px 20px 0;margin:0 auto}.crumbs-bar .crumbs a{color:#cfe0d6}.crumbs-bar .crumbs a:hover{color:#fff}
/* trust strip + proof line */
.trust{background:var(--soft);border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:22px 20px}
.trust-item{display:flex;align-items:center;gap:12px}.trust-item svg{width:30px;height:30px;color:var(--green)}.trust-item strong{display:block;font-family:var(--font-head);font-size:.98rem}.trust-item span{display:block;color:var(--muted);font-size:.84rem}
.proof{background:#fff;border-bottom:1px solid var(--line)}.proof .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:14px 20px;font-size:.95rem}.proof .stars svg{width:16px;height:16px}.proof q{quotes:"\201C" "\201D";font-style:italic}.proof .who{color:var(--muted);font-size:.86rem}
/* sections */
.section{padding:72px 0}.section-soft{background:var(--soft)}
.eyebrow-label{display:inline-block;color:var(--amber-text);font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;margin:0 0 10px}
.section-sub{color:var(--muted);font-size:1.08rem;max-width:720px;margin-top:-.4em}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.lead-text{font-size:1.08rem}.h3-size{font-size:1.2rem;font-weight:700}
/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:28px}
.card{display:flex;flex-direction:column;background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);color:var(--ink);transition:transform .2s,box-shadow .2s}
.card picture{aspect-ratio:4/3}.card-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:6px;flex:1}
.card-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--soft);color:var(--green);margin-bottom:4px}.card-icon svg{width:24px;height:24px}
.card h3{margin:0}.card p{color:var(--muted);margin:0;font-size:.97rem;flex:1}.card .link{color:var(--green-dark);font-weight:700;font-family:var(--font-head);font-size:.92rem}
/* featured first card spans the row: 1 wide + 6 = two clean rows of 3 on desktop, 1 + 2 + 2 + 2 on tablet, never an orphan */
.cards-featured .card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.15fr 1fr}
.cards-featured .card:first-child picture{aspect-ratio:auto;min-height:340px;height:100%}
.cards-featured .card:first-child .card-body{padding:36px 40px;justify-content:center}
.cards-featured .card:first-child h3{font-size:1.7rem}
.cards-featured .card:first-child p{font-size:1.05rem;flex:0 0 auto;margin-bottom:14px}
/* lazy photos sit on a green-grey tint, never a white hole, while they load */
.card picture,.gallery picture,.photo-grid picture{background:#dfe8e2 linear-gradient(110deg,#dfe8e2 0%,#edf3ef 45%,#dfe8e2 90%)}
/* why us */
.points{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:16px}.points li{display:flex;gap:12px}.points svg{color:var(--amber-dark);margin-top:4px}.points strong{font-family:var(--font-head)}.points p{margin:2px 0 0;color:var(--muted);font-size:.97rem}
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-grid picture{aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.photo-grid picture:nth-child(2),.photo-grid picture:nth-child(3){aspect-ratio:4/3}
.photo-pair{grid-template-columns:1fr;gap:14px;position:sticky;top:96px;align-self:start}
.photo-pair figure{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff}
.photo-pair picture{aspect-ratio:16/10;border-radius:0;box-shadow:none}
.photo-pair figcaption{padding:10px 14px;font-size:.86rem;color:var(--muted)}
.photo-pair .btn{justify-self:start}
.checks{list-style:none;padding:0;margin:0 0 1.2em;display:grid;gap:10px}.checks li{display:flex;gap:10px;align-items:flex-start}.checks svg{color:var(--green);margin-top:4px}
.promise-line{color:var(--muted);font-size:.92rem;border-top:1px solid var(--line);padding-top:12px}
/* steps */
.steps{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s}
.steps li{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.steps .num{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--green-dark);color:var(--amber);font-family:var(--font-head);font-weight:800;margin-bottom:12px}.steps h3{font-size:1.05rem}.steps p{color:var(--muted);font-size:.95rem;margin:0}
/* gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}.gallery figure{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff}.gallery picture{aspect-ratio:4/5}.gallery figcaption{padding:10px 12px;font-size:.84rem;color:var(--muted)}
/* areas: 11 towns + a "more towns" card = 12 cells, 4 x 3 */
.area-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}.area-cards-lg{grid-template-columns:repeat(3,1fr)}
.area-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:var(--ink);transition:border-color .15s,transform .15s}
.area-card svg{grid-row:span 2;color:var(--amber-dark);width:22px;height:22px}.area-card strong{font-family:var(--font-head);font-size:.98rem}.area-card span{color:var(--muted);font-size:.82rem}
.area-more{border-style:dashed;border-color:var(--amber-dark);background:#fffaf0}
.also{color:var(--muted);margin-top:20px}
/* reviews */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;max-width:760px;margin:24px auto 0}
.review{margin:0;background:#fff;border-radius:var(--radius);padding:28px 30px;box-shadow:var(--shadow);font-size:1.08rem;text-align:left}.review p{margin:10px 0 14px}.review footer{color:var(--muted);font-size:.9rem}.stars{display:flex;gap:2px;color:var(--amber)}.stars svg{width:20px;height:20px}
.review-ask{margin:18px auto 0;color:var(--muted);font-size:.95rem}
/* faq */
.faq{margin-top:20px;border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line);padding:4px 0}.faq summary{cursor:pointer;padding:16px 36px 16px 0;font-family:var(--font-head);font-weight:700;font-size:1.05rem;list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:1.5rem;color:var(--amber-text);transition:transform .2s}.faq details[open] summary::after{transform:rotate(45deg)}.faq p{color:var(--muted);padding:0 0 16px}
.faq-more{margin-top:18px;font-weight:600}
/* cta banner */
.cta-banner{background:linear-gradient(120deg,var(--green-deep),var(--green));color:#fff;padding:64px 0;text-align:center}.cta-banner h2{color:#fff}.cta-banner p{color:#dbe9e0;font-size:1.1rem;max-width:640px;margin:0 auto}.cta-banner .btn-row{justify-content:center;margin-top:22px}
/* form */
.form-card{background:#fff;border-radius:18px;padding:28px;box-shadow:var(--shadow-lg);color:var(--ink)}
.form-title{font-size:1.45rem;margin-bottom:.2em}.form-sub{color:var(--muted);margin-bottom:16px;font-size:.95rem}
.lead-form{display:grid;gap:12px}.lead-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lead-form .row:has(.zip){grid-template-columns:1.4fr 1fr .7fr}
.lead-form label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;font-weight:600;color:var(--muted)}.lead-form .lbl i{color:#dc2626;font-style:normal}
.lead-form input,.lead-form select,.lead-form textarea{font:inherit;font-size:1rem;color:var(--ink);padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(20,107,58,.15)}
.lead-form [aria-invalid="true"]{border-color:#dc2626}
.lead-form .consent{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;font-size:.85rem;line-height:1.4}.lead-form .consent input{width:auto;margin-top:3px}
.lead-form .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.lead-form .btn{justify-content:center;width:100%}.form-note{text-align:center;color:var(--muted);font-size:.9rem;margin:0}.form-error{color:#dc2626;font-size:.9rem;margin:0}
.form-done{padding:12px 0}.form-done strong{font-family:var(--font-head);font-size:1.3rem;display:block;margin-bottom:8px}
.form-compact{padding:22px}.form-compact .form-title{font-size:1.3rem}
/* the optional fields sit behind one disclosure; closed in the hero card at every width */
.lead-form .more{border:1.5px dashed var(--line);border-radius:10px;padding:0 12px}
.lead-form .more summary{cursor:pointer;list-style:none;padding:11px 0;font-size:.9rem;font-weight:600;color:var(--green-dark)}
.lead-form .more summary::-webkit-details-marker{display:none}
.lead-form .more summary::before{content:"+ ";color:var(--amber-text)}
.lead-form .more[open] summary::before{content:"\2212 "}
.lead-form .more summary span{font-weight:400;color:var(--muted)}
.lead-form .more-body{display:grid;gap:12px;padding-bottom:12px}
/* inner-page (non-compact) forms above phone width: the disclosure is open and invisible, so those forms look like a plain full form */
@media (min-width:721px){.form-card:not(.form-compact) .lead-form .more{border:0;padding:0}.form-card:not(.form-compact) .lead-form .more summary{display:none}.form-card:not(.form-compact) .lead-form .more-body{padding-bottom:0}}
.tel{font-weight:700;white-space:nowrap}
.contact-list p{display:flex;align-items:center;gap:10px;margin:0 0 10px}.contact-list svg{color:var(--green)}
.map{width:100%;height:280px;border:0;border-radius:var(--radius);margin-top:20px}
/* footer */
.site-footer{background:var(--green-deep);color:#cfe0d6;padding:56px 0 24px;margin-top:0;border-top:4px solid var(--amber)}.site-footer a{color:#fff}.site-footer h3{color:#fff;font-size:1rem;margin-bottom:12px}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:0;font-size:.93rem}.site-footer ul a{display:inline-block;padding:8px 0}
.grid-4{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}address{font-style:normal;margin:16px 0 8px;line-height:1.7}.site-footer .small{font-size:.85rem;color:#9fb8aa}.promise{margin-top:16px}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:18px;font-size:.82rem;color:#9fb8aa}
.call-bar{display:none}
.split > div:last-child > .form-card{position:sticky;top:90px}
/* responsive */
@media (max-width:1024px){.hero-grid{grid-template-columns:1fr;gap:28px}.hero-form{max-width:560px}.split{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(3,1fr)}.area-cards{grid-template-columns:repeat(3,1fr)}.trust-grid{grid-template-columns:1fr 1fr}.grid-4{grid-template-columns:1fr 1fr}.photo-pair{position:static}}
/* phones: one block, later rules win at equal specificity */
@media (max-width:720px){
  body{font-size:16px;padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  .section{padding:40px 0}
  h2{font-size:clamp(1.45rem,6.2vw,2.4rem)}
  .section-sub{font-size:.98rem;margin-top:-.2em}
  .eyebrow-label{margin-bottom:6px}
  .cards,.steps,.area-cards,.area-cards-lg,.reviews,.grid-4{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .lead-form .row{grid-template-columns:1fr}.lead-form .row:has(.zip){grid-template-columns:1fr}
  .nav-cta .btn-accent{display:none}
  /* header: brand + hamburger; the sticky bar carries Call and Free estimate */
  .nav-wrap{height:60px;gap:10px}.brand{gap:8px}.brand-mark{width:36px;height:36px;font-size:.8rem;border-radius:10px}.brand-text strong{font-size:.95rem}.nav-cta{gap:4px}
  /* hero: headline only (owner 2026-10-28 "Tree Removal & Tree Service is too long on my screen. Remove the get a free estimate bar so the
     survey is higher up when I load into the site"): no button, no paragraph - the form card is the next thing on screen; the bar has Call */
  .hero-grid{padding:22px 20px 0;gap:0}
  .hero-copy{padding-bottom:20px}
  .hero h1{font-size:1.7rem;line-height:1.1;margin-bottom:0}
  .h1-where{font-size:.68em;margin-top:.25em}
  .hero .lead,.lead-more,.hero-meta,.hero-cta{display:none}
  .hero-bg{bottom:auto;height:min(70vh,600px)}
  .hero-bg::after{background:linear-gradient(180deg,rgba(7,39,26,.72) 0%,rgba(7,39,26,.9) 60%,var(--green-deep) 100%)}
  .inner-hero .hero-bg{bottom:0;height:auto}
  .hero-form{position:relative;margin:0 -20px;padding:22px 16px 28px;background:var(--soft);max-width:none}
  .hero-form .form-card{padding:20px 18px;border-radius:14px}
  .form-compact .form-title{font-size:1.22rem}.form-sub{font-size:.9rem;margin-bottom:12px}
  .lead-form{gap:10px}.lead-form input,.lead-form select,.lead-form textarea{padding:12px;font-size:16px}
  /* trust strip 2 x 2 */
  .trust-grid{grid-template-columns:1fr 1fr;gap:12px;padding:16px 20px}
  .trust-item{align-items:flex-start;gap:8px}.trust-item svg{width:24px;height:24px;margin-top:2px}.trust-item strong{font-size:.9rem;line-height:1.25}.trust-item span{font-size:.78rem}
  /* services: photo-left row cards; the featured card stays a stacked card */
  .cards{gap:12px}
  .card-service{display:grid;grid-template-columns:112px 1fr;align-items:stretch}
  .card-service picture{aspect-ratio:auto;height:100%;min-height:112px}
  .card-service .card-body{padding:12px 14px;gap:2px;justify-content:center}
  .card-service .card-icon{display:none}
  .card-service h3{font-size:1.02rem}
  .card-service p{font-size:.86rem;line-height:1.4;flex:0 0 auto;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .card-service .link{font-size:.82rem;margin-top:4px}
  .cards-featured .card:first-child{grid-template-columns:1fr}
  .cards-featured .card:first-child picture{aspect-ratio:16/10;min-height:0;height:auto}
  .cards-featured .card:first-child .card-body{padding:18px 18px 20px}
  .cards-featured .card:first-child h3{font-size:1.3rem}
  .cards-featured .card:first-child p{font-size:.95rem;-webkit-line-clamp:3}
  /* why us */
  .split{gap:20px}
  .points{gap:12px;margin-top:14px}.points li{gap:10px}.points svg{margin-top:2px;width:1.1em;height:1.1em}
  .points strong{font-size:.98rem}.points p{font-size:.88rem;line-height:1.45}
  .points + .btn-row{display:none}
  .photo-grid picture,.photo-grid picture:nth-child(2),.photo-grid picture:nth-child(3){aspect-ratio:1;border-radius:8px;box-shadow:none}
  .photo-pair{position:static;grid-template-columns:1fr 1fr}.photo-pair picture{aspect-ratio:1;border-radius:0}.photo-pair figcaption{font-size:.78rem;padding:8px 10px}.photo-pair .btn{grid-column:1/-1;justify-self:center}
  /* how it works: numbered timeline */
  .steps{grid-template-columns:1fr;gap:0;margin-top:20px}
  .steps li{position:relative;display:grid;grid-template-columns:40px 1fr;column-gap:14px;background:none;box-shadow:none;border-radius:0;padding:0 0 24px}
  .steps li::before{content:"";position:absolute;left:19px;top:44px;bottom:0;width:2px;background:var(--line)}
  .steps li:last-child{padding-bottom:0}.steps li:last-child::before{display:none}
  .steps .num{grid-row:span 2;margin:0}
  .steps h3{margin:8px 0 4px}.steps p{font-size:.92rem}
  /* reviews */
  .reviews{gap:12px;margin-top:16px}.review{padding:20px;font-size:.98rem}
  /* areas: two columns, the home base spans when the count is odd */
  .area-cards,.area-cards-lg{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
  .area-card{padding:10px 12px;column-gap:8px;border-radius:10px}
  .area-card svg{width:18px;height:18px}.area-card strong{font-size:.9rem}.area-card span{font-size:.76rem}
  .area-card:first-child:nth-last-child(odd){grid-column:1/-1}
  .also{font-size:.9rem;margin-top:14px}
  /* faq */
  .faq summary{padding:12px 32px 12px 0;font-size:.98rem}.faq summary::after{top:8px}.faq p{font-size:.95rem;padding-bottom:12px}
  /* banner */
  .cta-banner{padding:44px 0}.cta-banner .btn-row .btn{width:100%;justify-content:center}.cta-banner h2{font-size:1.5rem}.cta-banner p{font-size:1rem}
  .cta-banner .btn-light{display:none} /* the sticky bar already carries Call on phones */
  /* footer: two columns, brand + Company span */
  .site-footer{padding:36px 0 20px}
  .grid-4{grid-template-columns:1fr 1fr;gap:22px 16px}
  .grid-4>div:first-child,.grid-4>div:last-child{grid-column:1/-1}
  .grid-4>div:last-child ul{grid-template-columns:1fr 1fr}
  .site-footer h3{margin-bottom:8px}.site-footer ul{font-size:.88rem}
  address{margin:10px 0 6px;line-height:1.55}
  .foot-bottom{flex-direction:column;gap:4px;margin-top:24px;padding-top:14px}
  /* sticky bar: Call | Free estimate; hides while a form field has focus; clears the iPhone home bar */
  .call-bar{display:grid;grid-template-columns:1.2fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 20px rgba(0,0,0,.18);font-family:var(--font-head);font-weight:800;font-size:clamp(.86rem,4.2vw,1rem)}
  .call-bar a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:56px;padding:0 10px;text-decoration:none;white-space:nowrap}
  .call-bar .cb-call{background:var(--amber);color:#1a1200}
  .call-bar .cb-form{background:var(--green-dark);color:#fff}
  body:has(.lead-form :focus) .call-bar{display:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.card,.area-card{transition:none}}
