/*
Theme Name: Legacy San Ramon
Author: Legacy Air Duct Service San Ramon
Description: The Legacy edition two design: bold forest green and gold, nine distinct page compositions, unique cleaning illustrations, and direct local contact.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: legacy-san-ramon
*/
:root{--green:#073d2c;--deep:#102e25;--gold:#c99b50;--paper:#fcfaf4;--ink:#17372c;--muted:#58665e;--line:#d6ddce;--pale:#eef0e5}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.8 system-ui,-apple-system,'Segoe UI',sans-serif}html{scroll-behavior:smooth;scroll-padding-top:110px}.wrap{width:min(1280px,calc(100% - 96px));margin:auto}h1,h2,h3{line-height:1.06;letter-spacing:-.055em;margin:0 0 24px}h1{font-size:clamp(42px,4.5vw,68px);font-weight:680}h2{font-size:clamp(29px,3.1vw,46px);font-weight:630}h3{font-size:24px;font-weight:600}p{margin:0 0 23px}a{color:inherit;text-underline-offset:5px}img{display:block;max-width:100%;height:auto}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.2em;line-height:1.7;color:#92651e}.topbar{background:var(--deep);color:#fff;font-size:11px}.topbar .wrap{display:flex;justify-content:space-between;padding:9px 0}.topbar a{margin-left:25px}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:100px}.brand img{height:80px;width:88px;object-fit:contain}nav{display:flex;gap:25px;align-items:center}nav a{font-size:13px;font-weight:650;text-decoration:none;padding:6px 0}nav a[aria-current]{box-shadow:0 2px var(--gold)}.header-call{font-size:12px;text-decoration:none;border:1px solid var(--green);padding:12px 19px}.menu-toggle{display:none}.hero{padding:60px 0}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.hero-copy{min-width:0}.hero .eyebrow{margin-bottom:23px}.lead{max-width:620px;font-size:17px;color:var(--muted)}.button{display:inline-flex;align-items:center;gap:30px;justify-content:space-between;background:var(--gold);color:#163025;text-decoration:none;padding:16px 23px;font-size:18px;font-weight:750;border-radius:3px}.hero-note{font-size:11px;margin:13px 0 0;color:var(--muted)}.photo{margin:0;min-width:0}.photo img{width:100%;aspect-ratio:3/2;object-fit:cover;background:#e3e8dd}.photo figcaption{font-size:10px;line-height:1.5;margin-top:9px;color:var(--muted)}.hero .photo img{height:480px}.editorial{padding:80px 0}.article-content{min-width:0}.content-section{display:flex;gap:24px;margin-bottom:45px;scroll-margin-top:120px}.content-section>div{min-width:0}.content-section h2{font-size:30px;letter-spacing:-.035em;line-height:1.2}.content-section p{overflow-wrap:anywhere}.section-number{font-size:11px;color:#8b631f;font-weight:750;padding-top:9px;flex:0 0 26px}.comparison-break{margin:20px 0 65px}.comparison img{height:auto;object-fit:contain}.closing{padding:65px 0;background:var(--gold);color:var(--deep);margin-top:15px}.closing>.wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:20px 80px;align-items:end}.closing .eyebrow{grid-column:1/-1;color:#4d4528;margin:0}.closing h2{font-size:48px;margin:0}.closing p{max-width:430px}.closing .button{background:var(--green);color:white}.assurance{background:var(--gold);font-size:11px;letter-spacing:.12em;font-weight:700}.assurance>.wrap{display:flex;justify-content:space-between;padding:18px 0}.service-directory{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;padding:85px 0}.directory-heading p{max-width:330px;color:var(--muted)}.directory-list{border-top:1px solid var(--ink)}.service-row{display:grid;grid-template-columns:35px 1fr 30px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line);text-decoration:none}.service-row span{font-size:11px;color:#956f2c}.service-row h3{margin:0;letter-spacing:-.03em}.service-row b{font-size:24px}.service-row:hover{color:#916521}.showcase{display:grid;grid-template-columns:.65fr 1.35fr;gap:70px;align-items:center;padding:60px 0}.text-link{font-weight:700;font-size:14px}.visual-aside{align-self:start;position:sticky;top:125px;min-width:0}.visual-aside .photo{margin-bottom:25px}.footer{background:var(--deep);color:#edf0e6;padding:60px 0 25px}.footer-grid{display:grid;grid-template-columns:1.1fr 1fr .55fr;gap:60px}.footer-logo{width:115px;height:106px;object-fit:contain;background:#fff;padding:9px;border-radius:3px;margin-bottom:25px}.footer h2{font-size:25px;letter-spacing:-.03em;max-width:340px}.footer h3{font-size:14px;letter-spacing:0;color:#e6bc7b}.footer p,.footer address{font-size:13px;font-style:normal;color:#d2ded1}.footer-grid>div:last-child>a{display:block;font-size:13px;text-decoration:none;margin-bottom:9px}.email{overflow-wrap:anywhere}.fine{font-size:10px;color:#c1cdbf;border-top:1px solid #526451;margin-top:40px;padding-top:22px}.fine a{margin-left:15px}.mobile-call{display:none}.skip{position:fixed;top:-100px;left:12px;z-index:99;background:#fff;padding:10px}.skip:focus{top:10px}.standard-page{padding:80px 0;min-height:65vh}.standard-page h1{font-size:48px}.contact-panel{padding:45px;background:var(--green);color:#fff}.contact-panel h2{font-size:40px}.contact-panel .eyebrow{color:#e5bb76}.contact-panel>a{display:block;margin:20px 0}.contact-phone{font-size:26px;font-weight:700;letter-spacing:-.04em;text-decoration:none}.contact-panel .email{font-size:14px}.contact-panel address{font-size:15px;font-style:normal;margin:25px 0}.contact-panel>p:last-child{font-size:12px;color:#d7e1d4}.towns{padding:75px 0;border-bottom:1px solid var(--line)}.towns>div:first-child{display:flex;justify-content:space-between;align-items:start;gap:50px}.towns h2{width:65%}.town-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.town-grid a{padding:25px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;gap:15px;text-decoration:none}.town-grid small{color:#a27938;font-size:10px}.town-grid b{margin-left:auto}.towns>p{margin:20px 0 0;font-size:12px}
/* HOME: green feature panel, service directory, two-column editorial grid. */
.layout-home .hero{background:var(--green);color:#fff;padding:0}.layout-home .hero-grid{gap:0;width:min(1440px,100%);grid-template-columns:1fr 1.05fr}.layout-home .hero-copy{padding:65px 55px 70px 80px}.layout-home .hero h1{font-size:clamp(42px,4.4vw,65px)}.layout-home .lead,.layout-home .hero-note,.layout-home .hero figcaption{color:#d3ded1}.layout-home .hero .eyebrow{color:#dfb572}.layout-home .hero .photo img{height:640px;object-position:center}.layout-home .hero .photo figcaption{padding:0 20px 8px}.layout-home .editorial{border-top:1px solid var(--line);padding-top:65px}.layout-home .article-content{display:grid;grid-template-columns:1fr 1fr;gap:0 65px}.layout-home .comparison-break{grid-column:1/-1;max-width:960px;width:100%;margin:10px auto 70px}.layout-home .content-section{border-top:1px solid var(--line);padding-top:25px}
/* AIR DUCTS: portrait feature and a sticky comparison alongside the story. */
.layout-air .hero{background:#edf0e5}.layout-air .hero-grid{grid-template-columns:1.2fr .8fr}.layout-air .hero .photo img{height:540px;border-radius:200px 200px 4px 4px}.layout-air .hero h1{max-width:740px}.layout-air .editorial{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px}.layout-air .content-section{padding:0 0 35px;border-bottom:1px solid var(--line)}
/* DRYER: full-width title band and inset landscape image, alternating chapters. */
.layout-dryer .hero{background:#ede5d4;padding-bottom:0}.layout-dryer .hero-grid{display:block}.layout-dryer .hero-copy{display:grid;grid-template-columns:1.25fr 1fr;gap:0 70px;align-items:start}.layout-dryer .hero-copy .eyebrow{grid-column:1/-1}.layout-dryer .hero h1{grid-row:2/5;max-width:650px}.layout-dryer .hero-copy .button{justify-self:start}.layout-dryer .hero .photo{margin-top:45px;transform:translateY(35px)}.layout-dryer .hero .photo img{height:430px;object-position:center 55%}.layout-dryer .showcase{padding-top:105px}.layout-dryer .article-content{max-width:1080px;margin:auto}.layout-dryer .content-section{max-width:76%;padding:30px 35px;background:#eef0e7;border-radius:4px}.layout-dryer .content-section:nth-child(even){margin-left:auto;background:#fff;border:1px solid var(--line)}
/* COMMERCIAL: dark business feature, broad ruled editorial sections. */
.layout-commercial .hero{background:var(--deep);color:#fff}.layout-commercial .hero .eyebrow{color:#e6b875}.layout-commercial .lead,.layout-commercial .hero-note,.layout-commercial .hero figcaption{color:#cedbcd}.layout-commercial .hero-grid{grid-template-columns:.9fr 1.1fr;gap:80px}.layout-commercial .hero .photo{order:-1}.layout-commercial .hero .photo img{height:560px}.layout-commercial .article-content{max-width:1100px;margin:auto}.layout-commercial .content-section{border-top:1px solid #a8b8a6;padding:35px 0;display:grid;grid-template-columns:60px 1fr}.layout-commercial .content-section>div{display:grid;grid-template-columns:.8fr 1.2fr;gap:0 55px}.layout-commercial .content-section h2{grid-row:1/5}.layout-commercial .section-number{font-size:20px}.layout-commercial .comparison-break{max-width:850px;margin:10px auto 65px}
/* REGISTERS: centered introduction, wide comparison and a three-column journal. */
.layout-register .hero{padding-bottom:0}.layout-register .hero-grid{display:flex;flex-direction:column;gap:45px}.layout-register .hero-copy{max-width:870px;text-align:center}.layout-register .lead{margin:0 auto 25px}.layout-register .hero .photo{width:100%}.layout-register .hero .photo img{height:430px;border-radius:5px}.layout-register .showcase{grid-template-columns:1fr 1.5fr;border-bottom:1px solid var(--line);padding-bottom:65px}.layout-register .article-content{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}.layout-register .content-section{display:block;border-top:3px solid var(--gold);padding-top:20px}.layout-register .section-number{display:block;margin-bottom:16px}.layout-register .content-section h2{font-size:26px}.layout-register .content-section p{font-size:15px}
/* INSPECTION: reversed hero and a numbered timeline, comparison in a side rail. */
.layout-inspection .hero{background:#e3e8dc}.layout-inspection .hero .photo{order:-1}.layout-inspection .hero .photo img{height:510px;border-radius:4px 90px 4px 4px}.layout-inspection .editorial{display:grid;grid-template-columns:1.15fr .85fr;gap:75px}.layout-inspection .visual-aside{grid-column:2;grid-row:1}.layout-inspection .article-content{grid-column:1;grid-row:1;border-left:1px solid #b8c5b3;padding-left:24px}.layout-inspection .section-number{background:var(--green);color:#fff;border-radius:50%;height:36px;flex-basis:36px;padding:4px;text-align:center;margin-left:-43px}.layout-inspection .content-section{gap:20px}.layout-inspection .content-section h2{font-size:28px}
/* AREA: compact image tile, city directory and paired regional guidance. */
.layout-area .hero{background:#e4ddcd}.layout-area .hero-grid{grid-template-columns:1.2fr .8fr}.layout-area .hero .photo img{height:430px;border-radius:50%}.layout-area .article-content{display:grid;grid-template-columns:1fr 1fr;gap:0 65px}.layout-area .comparison-break{grid-column:2;grid-row:2/4;align-self:start}.layout-area .content-section{display:block}.layout-area .content-section h2{margin-top:15px}.layout-area .content-section:nth-of-type(3){grid-column:1}.layout-area .content-section:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:30px;max-width:900px}
/* ABOUT: large masthead, panorama and a magazine-style story. */
.layout-about .hero{background:#f3f0e6}.layout-about .hero-grid{display:block}.layout-about .hero-copy{max-width:950px;margin:0 auto 50px}.layout-about .hero h1{font-size:clamp(45px,5vw,76px)}.layout-about .lead{max-width:780px}.layout-about .hero .photo img{height:450px;object-position:center 48%}.layout-about .article-content{max-width:1040px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:0 65px}.layout-about .content-section{display:block}.layout-about .section-number{display:block;margin-bottom:18px}.layout-about .content-section:first-child{grid-column:1/-1;max-width:800px;font-size:19px;margin-bottom:60px}.layout-about .comparison-break{grid-column:1/-1;max-width:850px;margin:20px auto 65px;width:100%}.layout-about .content-section h2{font-size:31px}
/* CONTACT: a direct contact board and three short information columns. */
.layout-contact .hero{background:#e6eadf}.layout-contact .hero-grid{gap:80px;align-items:start}.layout-contact .hero h1{font-size:60px}.layout-contact .article-content{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.layout-contact .content-section{display:block;padding-top:20px;border-top:2px solid var(--gold)}.layout-contact .content-section h2{font-size:25px;margin-top:18px}
@media(min-width:1550px){.layout-home .hero-copy{padding-left:80px}}@media(max-width:1150px){.wrap{width:calc(100% - 56px)}nav{gap:16px}nav a{font-size:12px}.header-call{display:none}.hero-grid{gap:40px}.layout-home .hero-copy{padding:45px 35px}.layout-home .hero .photo img{height:640px}.service-directory{gap:55px}.layout-commercial .hero-grid{gap:40px}.editorial,.layout-air .editorial,.layout-inspection .editorial{gap:40px}.footer-grid{gap:35px}.town-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){body{font-size:16px}.wrap{width:calc(100% - 36px)}.topbar .wrap>span:first-child{display:none}.topbar .wrap{justify-content:center}.topbar a{margin-left:12px}.header-inner{min-height:84px;position:relative}.brand img{height:68px;width:78px}.menu-toggle{display:block;background:#fff;border:1px solid var(--green);padding:10px 15px;font-size:14px;color:var(--green)}.menu-toggle span{margin-left:15px}nav{display:none;position:absolute;top:84px;left:-18px;right:-18px;background:#fff;box-shadow:0 12px 20px #0002;padding:20px;align-items:stretch}nav.open{display:flex;flex-direction:column;gap:0}nav a{font-size:16px;padding:12px}.hero{padding:35px 0}.hero-grid,.layout-air .hero-grid,.layout-commercial .hero-grid,.layout-area .hero-grid,.layout-contact .hero-grid{grid-template-columns:1fr;gap:30px}h1,.layout-contact .hero h1{font-size:42px}h2{font-size:32px}.hero .eyebrow{font-size:10px}.lead{font-size:16px}.hero .photo img,.layout-home .hero .photo img,.layout-air .hero .photo img,.layout-dryer .hero .photo img,.layout-commercial .hero .photo img,.layout-register .hero .photo img,.layout-inspection .hero .photo img,.layout-area .hero .photo img,.layout-about .hero .photo img{height:auto;aspect-ratio:3/2}.layout-home .hero-grid{display:block;width:100%}.layout-home .hero-copy{padding:35px 22px}.layout-home .hero h1{font-size:42px}.layout-home .hero .photo{padding:0 18px 20px}.layout-home .hero .photo figcaption{padding:0;margin-bottom:0}.layout-home .hero .photo img{border-radius:4px}.assurance>.wrap{display:flex;flex-wrap:wrap;gap:7px 22px;justify-content:start;font-size:9px}.service-directory{grid-template-columns:1fr;gap:25px;padding:45px 0}.directory-heading h2{font-size:36px}.directory-heading p{max-width:none}.service-row{gap:12px;padding:22px 0;grid-template-columns:25px 1fr 20px}.service-row h3{font-size:22px}.editorial,.layout-air .editorial,.layout-inspection .editorial{display:block;padding:45px 0}.layout-home .article-content,.layout-register .article-content,.layout-area .article-content,.layout-about .article-content,.layout-contact .article-content{display:block}.content-section{gap:15px;margin-bottom:32px}.content-section h2{font-size:28px}.section-number{flex-basis:22px}.comparison-break{margin:25px 0 40px!important}.visual-aside{position:static;margin-bottom:45px}.visual-aside .photo{margin-bottom:15px}.closing{padding:40px 0;margin-top:0}.closing>.wrap{display:block}.closing .eyebrow{margin-bottom:20px}.closing h2{font-size:37px;margin-bottom:25px}.closing .button{font-size:17px}.showcase,.layout-register .showcase{display:block;padding:45px 0}.showcase>div{margin-bottom:25px}.layout-dryer .hero-copy{display:block}.layout-dryer .hero .photo{margin-top:30px;transform:none;padding-bottom:25px}.layout-dryer .hero .photo img{border-radius:4px}.layout-dryer .showcase{padding-top:40px}.layout-dryer .content-section{max-width:100%;padding:23px 18px;gap:10px}.layout-commercial .hero .photo,.layout-inspection .hero .photo{order:0}.layout-commercial .content-section{display:block;padding:25px 0}.layout-commercial .content-section>div{display:block}.layout-commercial .section-number{display:block;margin-bottom:20px}.layout-register .hero-copy{text-align:left}.layout-register .hero-grid{gap:25px}.layout-register .content-section p{font-size:16px}.layout-inspection .article-content{margin-left:16px;padding-left:22px}.layout-inspection .section-number{margin-left:-41px}.layout-inspection .content-section{gap:15px}.layout-area .hero .photo img{border-radius:8px}.towns{padding:40px 0}.towns>div:first-child{display:block}.towns h2{width:auto}.town-grid{grid-template-columns:1fr 1fr;gap:10px}.town-grid a{padding:16px 12px;gap:9px;font-size:13px}.town-grid small{font-size:9px}.town-grid b{font-size:15px}.layout-about .hero-copy{margin-bottom:30px}.layout-about .hero h1{font-size:43px}.layout-about .content-section:first-child{font-size:17px;margin-bottom:35px}.layout-about .content-section h2{font-size:29px}.contact-panel{padding:28px 24px}.contact-panel h2{font-size:35px}.contact-phone{font-size:25px}.contact-panel .email{font-size:13px}.footer{padding:40px 0 85px}.footer-grid{grid-template-columns:1fr;gap:28px}.footer h2{font-size:25px}.footer-grid>div:last-child{display:grid;grid-template-columns:1fr 1fr}.footer-grid>div:last-child h3{grid-column:1/-1}.fine a{display:block;margin:8px 0 0}.mobile-call{display:block;position:fixed;bottom:0;left:0;right:0;z-index:35;background:var(--green);color:#fff;text-align:center;padding:13px;font-size:16px;font-weight:750;text-decoration:none;box-shadow:0 -2px 12px #0002}.standard-page{padding:45px 0}.standard-page h1{font-size:39px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Preserve the full technician scene in every hero. */
.hero .photo img{height:auto!important;aspect-ratio:3/2!important;object-fit:contain!important}
.layout-home .hero .photo{align-self:center}
.layout-dryer .hero .photo{max-width:900px;margin-left:auto;margin-right:0}
.layout-register .hero .photo{max-width:1000px}
.layout-about .hero .photo{max-width:1100px;margin:auto}
.layout-air .hero .photo img{border-radius:12px 70px 12px 12px}
.layout-area .hero .photo img{border-radius:12px}
