:root{--ink:#1a1d1a;--muted:#6b6b62;--gold:#2e6e47;--deep:#1f4733;--line:#e3e0d3;--soft:#e5efe3;--serif:'Noto Sans JP',sans-serif;--sans:'Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#fff;font:400 15px/2.1 var(--sans);overflow-wrap:anywhere}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}p,h1,h2,h3,figure,dl,dd{margin:0}p+p{margin-top:1.2em}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.7;letter-spacing:.04em}h1{font-size:clamp(32px,3.7vw,56px)}h2{font-size:clamp(28px,3vw,44px)}h3{font-size:21px;margin-bottom:20px}img{display:block;width:100%;height:auto}ul{padding:18px 0 0 1.3em;border-top:1px solid var(--line);margin:24px 0 0}li{padding:2px 0}li::marker{color:var(--gold)}.wrap{width:min(1200px,86%);margin-inline:auto}.section{padding:110px 0}.soft{background:var(--soft)}.section-heading{margin-bottom:54px;max-width:790px}.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--deep);font-weight:500;line-height:1.8;margin-bottom:20px}.section-heading h2{margin-bottom:27px}.intro{font-size:14px;line-height:2.2;color:var(--muted);max-width:680px}.source-line{display:block;white-space:pre-wrap}.number{font:400 29px/1.6 var(--serif);color:var(--gold);margin-bottom:14px}.stat-number{font:400 clamp(38px,4vw,62px)/1.4 var(--serif);color:var(--deep)}.caption,small,.smallprint{font-size:12px;color:var(--muted)}.photo{overflow:hidden;background:var(--soft);margin:0 0 28px}.photo img{aspect-ratio:1.6;object-fit:cover;transition:transform 1.8s cubic-bezier(.2,.65,.3,1),filter 1.3s}.photo.retained img{aspect-ratio:auto;object-fit:contain}.photo:hover img{transform:scale(1.035)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px 48px}.grid.three,.grid.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.stats{grid-template-columns:repeat(3,minmax(0,1fr));padding:56px 0;gap:24px}.stats .item{text-align:center;padding:0 24px;border-right:1px solid var(--line)}.stats .item:last-child{border:0}.stats .item p{margin:8px 0}.stats:has(.item:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}.text-link{display:inline-block;font-size:13px;border-bottom:1px solid var(--gold);padding:12px 0;margin-top:24px;color:var(--deep);transition:color .3s}.text-link:hover{color:var(--ink)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:15px 35px;background:var(--gold);color:#fff;border:1px solid var(--gold);border-radius:2px;letter-spacing:.05em;font-size:13px;transition:background .3s,transform .3s}.button:hover{background:var(--deep);transform:translateY(-2px)}.button.outline{color:var(--deep);background:transparent}.phone{font:400 35px/1.5 var(--serif);display:block;letter-spacing:.035em;white-space:nowrap}.phone.small{font-size:25px;margin-top:24px}.site-header{height:100px;padding:0 4.2%;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.97);position:relative;z-index:30;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:70px;height:70px;object-fit:contain}.brand-copy{display:flex;flex-direction:column;font-family:var(--serif);font-size:19px;line-height:1.6}.brand-copy small{font:9px/1.8 var(--sans);letter-spacing:.16em;color:var(--deep)}.site-header nav{display:flex;gap:26px;align-items:center}.site-header nav>a,.site-header nav details>summary{font-size:11px;cursor:pointer;list-style:none}.site-header nav a:hover{color:var(--deep)}.site-header [aria-current=page]{color:var(--deep)}.header-contact{border:1px solid var(--gold);border-radius:28px;padding:12px 24px}.header-phone{font-size:16px!important}.header-phone small{display:block;font-size:8px}.site-header details{position:relative}.site-header details>div{position:absolute;top:35px;left:-20px;background:#fff;box-shadow:0 6px 25px #0001;min-width:190px;padding:20px}.site-header details>div a{display:block;font-size:12px;padding:8px}.menu-toggle{display:none}.home-hero{height:620px;min-height:65vh;position:relative;overflow:hidden}.home-hero>.photo,.page-hero>.photo,.article-hero>.photo{position:absolute;inset:0;margin:0;z-index:0}.home-hero>.photo img,.page-hero>.photo img,.article-hero>.photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;animation:heroZoom 12s ease-out both}.home-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.9),rgba(255,255,255,.65) 37%,rgba(255,255,255,0) 75%),linear-gradient(0deg,#fff8,transparent 40%);pointer-events:none}.hero-copy{position:relative;z-index:1;padding-top:95px}.hero-copy h1{margin:22px 0 25px;font-size:clamp(35px,3.7vw,56px);line-height:1.8;letter-spacing:.08em}.hero-copy .intro{max-width:520px}.heritage{font-size:12px;color:var(--deep);border-left:1px solid var(--gold);padding-left:16px}.hero-follow-section{padding:0}.hero-follow{display:grid;grid-template-columns:210px 1fr 1.1fr;gap:32px;align-items:center;border-bottom:1px solid var(--line);padding:32px 0}.hero-follow .photo{margin:0}.hero-follow .photo img{aspect-ratio:2}.vertical-note{font-family:var(--serif);font-size:19px}.contact-strip{display:grid;grid-template-columns:auto 1fr auto;column-gap:12px;align-items:center}.contact-strip .phone-icon{grid-row:1/3}.contact-strip .eyebrow{margin:0;letter-spacing:0;font-size:10px}.contact-strip .phone{font-size:28px;grid-column:2}.contact-strip .button{grid-column:3;grid-row:1/3;padding:12px 20px;min-height:48px}.contact-strip small{grid-column:3;text-align:center;margin-top:4px}.phone-icon{font-family:var(--serif);font-size:27px;color:var(--gold)}.opening{padding:55px 0 0}.notice{display:grid;grid-template-columns:220px 1fr;gap:36px;padding:26px 32px;border:1px solid var(--line)}.notice h3{font-size:16px;margin:0}.notice p{font-size:12px}.notice .eyebrow{padding-top:8px;margin:0;color:var(--deep)}.scroll{text-align:center;font-size:9px;letter-spacing:.3em;color:var(--gold);margin-top:10px}.scroll:after{content:'';display:block;width:1px;height:50px;background:var(--gold);margin:15px auto 0}.concept-grid{display:grid;grid-template-columns:1.05fr .8fr;gap:12%;align-items:start}.concept-grid>.section-heading{margin-bottom:35px}.concept-grid>div:nth-child(2){padding-top:90px}.concept-grid>div:nth-child(2) .photo img{aspect-ratio:.84}.note{padding:30px;border:1px solid var(--line);margin-top:32px;background:#fff}.note h3{font-size:18px;margin-bottom:14px}.note p{font-size:13px}.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.badges span{font-size:10px;padding:4px 10px;border:1px solid var(--line)}.services-grid{gap:60px 45px}.services-grid .eyebrow{margin-bottom:8px}.services-grid h3{margin-bottom:18px}.services-grid .photo img{aspect-ratio:1.65}.statement{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;margin-bottom:70px}.statement .photo img{aspect-ratio:.95}.reasons-grid>.item{border-top:1px solid var(--line);padding-top:25px}.reasons-grid .eyebrow{margin:0 0 10px}.reasons-grid h3{margin-bottom:12px}.reasons-grid .item>p:last-child{color:var(--muted)}.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}.flow-step{border-top:1px solid var(--gold);padding-top:22px}.flow-step h3{font-size:16px;min-height:55px}.flow-step p{font-size:12px}.flow-step .number{font-size:30px}.flow-step .eyebrow{font-size:10px;letter-spacing:0}.knowledge-preview{display:grid;grid-template-columns:.9fr 1fr;gap:9%}.species-pair>div+div{margin:50px 0 0 70px}.species-pair h3{font-size:18px}.species-pair .eyebrow{margin-bottom:5px}.signs>div{display:flex;gap:24px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0}.signs p{margin:0}.signs .number{font-size:19px;min-width:32px;margin:0}.blog-grid{margin-top:45px}.blog-card{display:block}.blog-card .photo{margin-bottom:22px}.blog-card .eyebrow{display:inline-block;margin-right:15px;margin-bottom:15px;font-size:10px}.blog-card time{font-size:10px;color:var(--muted)}.blog-card h3{font-size:18px;line-height:1.9}.blog-card:hover h3{color:var(--deep)}.blog-card>p:not(.eyebrow){font-size:13px;color:var(--muted)}.page-hero{position:relative;min-height:465px;display:flex;align-items:center;background:var(--soft);overflow:hidden}.page-hero:after,.article-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fffffff5,#ffffffc9 50%,#ffffff35)}.page-hero-copy{position:relative;z-index:1;padding:60px 0}.page-hero .intro{max-width:570px;margin-top:23px}.page-hero .eyebrow{margin-bottom:16px}.message-copy{max-width:820px;margin:auto}.message-copy .signature{text-align:right;font-family:var(--serif);margin:35px 0}.wide-photo{position:relative}.wide-photo .photo{margin:0}.wide-photo .photo img{aspect-ratio:2.6}.wide-photo h2{position:absolute;left:7%;bottom:15%;color:#fff;text-shadow:0 2px 12px #0009}.photo-section{padding:0}.timeline>div{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid var(--line);padding:32px 0}.timeline .year{font:35px/1.5 var(--serif);color:var(--deep)}.timeline h3{font-size:17px;margin-bottom:12px}.company-table>div{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid var(--line);padding:22px 0;gap:20px}.company-table dt{color:var(--muted);font-size:13px}.company-table p+p{margin-top:6px}.company-table.compact>div{grid-template-columns:100px 1fr;font-size:13px;padding:16px 0}.service-feature{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.section:nth-child(odd) .service-feature{direction:rtl}.section:nth-child(odd) .service-feature>*{direction:ltr}.service-feature .photo img{aspect-ratio:1.05}.service-feature h2{font-size:34px;margin-bottom:24px}.service-feature .eyebrow{margin-bottom:10px}.prices .item{background:#fff;padding:40px}.price{font:32px/1.6 var(--serif);color:var(--deep)}.cta-row{display:flex;gap:20px;justify-content:center;margin-top:30px}.species-grid .photo.retained img{max-height:440px}.contact-methods .item{padding:24px;border-left:1px solid var(--line)}.contact-methods h3{font-size:17px}.form-wrap{max-width:780px;margin:auto}.field{margin:28px 0}.field label{display:block;margin-bottom:12px;font-size:14px}.field input,.field select,.field textarea{display:block;width:100%;border:1px solid var(--line);background:#fff;padding:14px;border-radius:0;min-height:54px}.field textarea{resize:vertical}.smallprint+.smallprint{margin-top:10px}form .button{display:flex;margin:35px auto 0;min-width:280px}.faq{max-width:950px}.faq details{border-bottom:1px solid var(--line);padding:26px 0}.faq summary{display:flex;gap:25px;cursor:pointer;list-style:none;font-size:16px}.faq summary:after{content:'+';margin-left:auto;color:var(--gold)}.faq details[open] summary:after{content:'−'}.faq summary .eyebrow{margin:0;font-size:17px}.faq-answer{display:flex;gap:25px;margin-top:20px;color:var(--muted)}.faq-answer .eyebrow{font-size:17px;flex-shrink:0}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}.filters{display:flex;gap:12px;margin-bottom:65px;flex-wrap:wrap}.filter{background:transparent;border:1px solid var(--line);padding:9px 26px;font-size:12px}.filter.active{background:var(--gold);color:#fff;border-color:var(--gold)}.featured{display:grid;grid-template-columns:1.2fr 1fr;gap:7%;align-items:center}.featured h2{font-size:27px;margin:15px 0}.featured .photo{margin:0}.pagination{display:flex;gap:25px;justify-content:center;align-items:center;margin:65px 0 30px}.pagination button{border:0;background:none;padding:12px}.pagination button:disabled{opacity:.35;cursor:default}.article-hero{position:relative;overflow:hidden;padding:90px 0;min-height:420px}.article-hero>.wrap{position:relative;z-index:1;max-width:980px}.article-hero h1{font-size:clamp(27px,3vw,42px);margin:24px 0}.article-hero .eyebrow{display:inline-block;margin-right:20px}.article-hero time,.byline{font-size:12px;color:var(--muted)}.article-body{max-width:860px;width:86%;margin:75px auto 110px;font-size:15px;line-height:2.3}.article-body>p{white-space:pre-wrap;margin:20px 0}.article-body>.photo{margin:48px 0}.article-heading{font-size:29px;margin:70px 0 28px;padding:0 0 22px;border-bottom:1px solid var(--gold)}.article-subheading{font-size:23px;margin:42px 0 20px;padding-left:22px;border-left:3px solid var(--gold)}.article-point{padding:9px 20px;background:var(--soft);border-left:1px solid var(--line);font-size:14px;margin:8px 0!important}.toc{background:var(--soft);padding:35px;margin:40px 0;max-height:390px;overflow:hidden;position:relative;padding-bottom:70px}.toc.expanded{max-height:none}.toc h2{font-size:22px;margin-bottom:18px}.toc-entry{display:block;font-size:12px;padding:4px 0;border-bottom:1px solid var(--line);color:var(--muted)}.toc-entry:hover{color:var(--deep)}.toc button{position:absolute;bottom:0;left:0;width:100%;border:0;background:#e5efe3;padding:18px;font-size:12px}.toc button[hidden]{display:none}.article-body table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.9}.article-body th,.article-body td{padding:15px;border:1px solid var(--line);text-align:left}.article-body th{background:var(--soft)}.table-wrap{overflow:auto;margin:30px 0}.site-footer{background:var(--soft);border-top:1px solid var(--line);padding:0 0 30px}.footer-cta{padding:85px 0;display:grid;grid-template-columns:1fr 1fr;gap:12%;border-bottom:1px solid var(--line)}.footer-cta h2{font-size:35px;margin:22px 0}.footer-cta .eyebrow{margin-bottom:10px}.footer-cta p{font-size:13px}.footer-contact-links>a{display:block;border-bottom:1px solid var(--line);padding:25px 0}.footer-contact-links strong{display:block;font-family:var(--serif);font-size:30px;font-weight:400}.footer-contact-links small{display:block;font-size:10px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:55px;padding:65px 0}.footer-brand{font-family:var(--serif);font-size:23px;margin-bottom:25px}.footer-company{font-size:11px}.footer-company dl>div{display:grid;grid-template-columns:46px 1fr;gap:14px;margin:8px 0}.footer-grid nav a{display:block;font-size:12px;margin:11px 0}.footer-grid nav .eyebrow{margin-bottom:15px}.footer-social{display:flex;gap:20px;font-size:12px;margin-top:20px}.copyright{border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.footer-social .eyebrow{margin:0}.section.reveal{transform:translateY(18px);opacity:0;transition:transform 1.1s,opacity 1.1s}.section.reveal.visible{transform:none;opacity:1}.photo.reveal img{filter:blur(8px)}.photo.reveal.visible img{filter:blur(0)}h1 .source-line,h2 .source-line{animation:headingIn 1.1s both}h1 .source-line:nth-child(2),h2 .source-line:nth-child(2){animation-delay:.12s}h2 .source-line:nth-child(3){animation-delay:.24s}@keyframes heroZoom{from{transform:scale(1.1)}to{transform:scale(1)}}@keyframes headingIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.home-hero{height:740px}.hero-copy{padding-top:130px}}@media(max-width:1150px){.site-header nav{gap:15px}.header-phone{display:none!important}.brand-copy{font-size:16px}.hero-follow{grid-template-columns:150px 1fr}.hero-follow .vertical-note{font-size:15px}.contact-strip{grid-column:1/-1;max-width:580px;margin:auto}.flow{grid-template-columns:repeat(3,1fr)}.grid.three{gap:25px}.wrap{width:88%}}
@media(max-width:800px){body{font-size:14px}.site-header{height:80px;padding:0 6%}.brand img{width:53px;height:53px}.brand-copy{font-size:17px}.brand-copy small{font-size:8px}.menu-toggle{display:block;width:40px;height:40px;border:0;background:none;padding:8px;z-index:2}.menu-toggle span{display:block;height:1px;background:var(--ink);margin:8px 0;transition:transform .3s}.site-header nav{display:none;position:absolute;top:80px;left:0;right:0;max-height:calc(100vh - 80px);overflow:auto;background:white;padding:25px 8%;box-shadow:0 12px 18px #0001}.site-header nav.open{display:block}.site-header nav>a,.site-header nav details>summary{display:block;padding:15px 0;font-size:14px;border-bottom:1px solid var(--line)}.site-header details>div{position:static;box-shadow:none;padding:5px 20px}.header-contact{margin-top:20px;text-align:center}.home-hero{height:590px;min-height:0}.hero-copy{padding-top:65px}.hero-copy h1{font-size:clamp(26px,4.9vw,37px);line-height:1.95;letter-spacing:.025em}.hero-copy .intro{font-size:12px;max-width:360px}.home-hero:after{background:linear-gradient(90deg,#ffffffc9,#ffffff73 65%,#ffffff16),linear-gradient(0deg,#fff9,transparent)}.hero-copy{width:88%}.home-hero>.photo img{object-position:60% center}.heritage{font-size:11px}.section{padding:70px 0}.hero-follow-section{padding:0}.hero-follow{padding:23px 0;gap:20px;grid-template-columns:100px 1fr}.contact-strip{column-gap:10px;width:100%}.contact-strip .phone{font-size:23px}.contact-strip .button{font-size:10px;padding:10px 13px}.contact-strip .eyebrow{font-size:8px}.contact-strip .phone-icon{font-size:20px}.contact-strip small{font-size:9px}.notice{grid-template-columns:1fr;gap:10px;padding:22px}.notice .eyebrow{padding:0}.opening{padding:35px 0 0}.grid.stats{gap:0;padding:35px 0}.stat-number{font-size:34px}.stats .item{padding:0 10px}.stats .caption{font-size:9px}.concept-grid,.statement,.knowledge-preview,.service-feature,.access-grid,.featured{grid-template-columns:1fr;gap:35px}.concept-grid>div:nth-child(2){padding-top:0;max-width:600px}.concept-grid>div:nth-child(2) .photo img{aspect-ratio:1.1}.section-heading{margin-bottom:35px}.section-heading h2{margin-bottom:20px}.grid{gap:35px 22px}.grid.three,.grid.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three>.item:last-child:nth-child(odd){grid-column:1/-1}.services-grid .photo{margin-bottom:18px}.services-grid h3{font-size:19px}.services-grid p,.services-grid li{font-size:12px}.statement{margin-bottom:40px}.statement .photo img{aspect-ratio:1.5}.flow{grid-template-columns:1fr;gap:0}.flow-step{padding:24px 0;display:grid;grid-template-columns:40px 1fr;gap:0 15px}.flow-step .number{grid-row:1/4;margin:0}.flow-step .eyebrow{margin:0}.flow-step h3{min-height:0;margin:8px 0}.flow-step>p:last-child{grid-column:2;margin:0}.species-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.species-pair>div+div{margin:0}.species-pair h3{font-size:16px}.page-hero{min-height:375px}.page-hero h1{font-size:30px}.page-hero .intro{font-size:12px;max-width:85%}.page-hero:after{background:linear-gradient(90deg,#ffffffeb,#ffffffa8)}.stats:has(.item:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 0}.stats:has(.item:nth-child(4)) .item:nth-child(2){border:0}.wide-photo .photo img{aspect-ratio:1.4}.wide-photo h2{font-size:27px}.timeline>div{grid-template-columns:85px 1fr;gap:15px}.timeline .year{font-size:28px}.company-table>div{grid-template-columns:90px 1fr;gap:15px;font-size:13px}.service-feature .photo img{aspect-ratio:1.5}.section:nth-child(odd) .service-feature{direction:ltr}.service-feature h2{font-size:28px}.prices .item{padding:25px}.price{font-size:26px}.cta-row{flex-direction:column;align-items:stretch}.contact-methods .item{padding:20px 0 20px 22px}.featured h2{font-size:24px}.featured .photo img{aspect-ratio:1.6}.article-body{width:88%;font-size:14px;margin-top:45px}.article-hero{padding:55px 0}.article-hero h1{font-size:28px}.article-heading{font-size:24px}.article-subheading{font-size:20px}.toc{padding:25px 22px 70px}.footer-cta{grid-template-columns:1fr;gap:30px;padding:60px 0}.footer-grid{grid-template-columns:1fr 1fr;gap:35px;padding:45px 0}.footer-company{grid-column:1/-1}.footer-grid nav a{font-size:11px}.copyright{flex-direction:column;gap:10px}.footer-cta h2{font-size:30px}.photo-section{padding:0}}
@media(max-width:480px){.grid.services-grid,.grid.species-grid{grid-template-columns:1fr}.grid.blog-grid{grid-template-columns:1fr}.reasons-grid{grid-template-columns:1fr}.grid.three{grid-template-columns:1fr}.grid.three>.item:last-child:nth-child(odd){grid-column:auto}.species-pair{gap:15px}.species-pair .eyebrow{font-size:8px}.species-pair h3{font-size:14px}.prices{grid-template-columns:1fr}.page-hero h1{font-size:26px}.section-heading h2{font-size:28px}.hero-copy h1{font-size:25px}.home-hero{height:540px}.hero-copy .intro{max-width:290px}.contact-strip .phone{font-size:20px}.contact-strip .button{padding:10px}.contact-strip .phone-icon{display:none}.contact-strip{grid-template-columns:1fr auto}.contact-strip .phone{grid-column:1}.contact-strip .button,.contact-strip small{grid-column:2}.contact-strip .button{grid-row:1/3}.faq summary{font-size:14px}.faq-answer{gap:15px}.article-hero h1{font-size:25px}.article-body th,.article-body td{min-width:120px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.section.reveal{opacity:1;transform:none}.photo.reveal img{filter:none}}
[data-source-line]{white-space:pre-wrap}.grid .item[hidden],.featured[hidden]{display:none}.site-header details small{display:block;color:var(--gold);font-size:9px}.article-body ul,.article-body ol{background:var(--soft);border:0;padding:20px 25px 20px 45px;margin:25px 0}.article-body li{padding:5px 0}.section.reveal:not(.visible) h2 .source-line{animation:none}.section.reveal.visible h2 .source-line{animation:headingIn 1.1s both}.section.reveal.visible h2 .source-line:nth-child(2){animation-delay:.12s}.section.reveal.visible h2 .source-line:nth-child(3){animation-delay:.24s}
[hidden]{display:none!important}
.inline-link{color:var(--deep);text-decoration:underline;text-underline-offset:4px}
/* Original-site grouping and placement, retaining the approved visual palette and typography. */
.home-hero{height:auto;min-height:680px;padding-bottom:36px}.hero-copy{padding-top:65px}.hero-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:6%;align-items:end}.hero-mobile-photo{display:none}.hero-notice{width:100%;max-width:420px;justify-self:end;background:#fffffff0;border:1px solid var(--line);padding:30px}.hero-notice .notice{display:block;padding:0;border:0}.hero-notice .notice>.eyebrow{margin-bottom:20px}.hero-notice .stats{padding:24px 0 0;margin-top:24px;border-top:1px solid var(--line)}.hero-notice .stat-number{font-size:30px}.hero-notice .stats .item{padding:0 8px}.hero-notice .caption{font-size:10px}.hero-layout .contact-strip{margin-top:36px}.hero-layout .contact-strip .phone{font-size:26px}.hero-layout .contact-strip .button{padding:12px 15px}.home-hero .scroll{margin-top:30px}.home-hero .scroll:after{height:30px}.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:54px}.section-heading-row .section-heading{margin:0;flex:1}.section-heading-row>.intro{max-width:450px;flex:1}.section-heading-row>.text-link{flex-shrink:0;margin:0}.service-image,.blog-image{position:relative}.service-image>.eyebrow,.blog-image>.eyebrow{position:absolute;top:18px;left:18px;max-width:calc(100% - 36px);margin:0;padding:7px 12px;background:#fffffff0;z-index:2}.service-image>.photo{margin-bottom:28px}.strengths-section{position:relative;isolation:isolate;overflow:hidden;background:var(--soft)}.strengths-photo{position:absolute;inset:0;z-index:-2;margin:0;opacity:.13}.strengths-photo img{width:100%;height:100%;object-fit:cover}.strengths-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:8%;align-items:start}.strengths-layout>.section-heading{position:sticky;top:30px}.strengths-cards{grid-template-columns:1fr;gap:28px}.strengths-cards>.item{padding:28px;background:#fffffff0;border:1px solid var(--line)}.message-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:8%;align-items:center}.message-copy{max-width:none}.message-identity .signature{font-family:var(--serif)}.timeline{position:relative}.timeline:before{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--line)}.timeline>.timeline-row{grid-template-columns:1fr 1fr;gap:9%;padding:32px 0;border:0}.timeline-row:nth-child(even)>.timeline-entry{order:2}.timeline-row:nth-child(odd)>.timeline-entry{text-align:right}.timeline-row:nth-child(even)>.timeline-description{text-align:right}.service-list .service-feature+.service-feature{margin-top:110px}.service-list .service-feature{direction:ltr}.service-list .service-feature:nth-child(even)>.service-image{order:2}.service-feature .photo img{aspect-ratio:4/3}.warranty-layout{display:grid;grid-template-columns:1fr 2fr;gap:6%;align-items:center;padding:40px;margin-top:60px;background:#fff;border:1px solid var(--line)}.warranty-layout .section-heading{margin:0}.warranty-layout h2{font-size:30px}.warranty-layout .stats{padding:0}.warning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.warning-grid>div{align-items:start;border:1px solid var(--line);padding:20px}.grid.species-grid{grid-template-columns:1fr;gap:60px}.species-grid>.item{display:grid;grid-template-columns:1fr 1.4fr;gap:6%;align-items:center}.species-grid>.item:nth-child(even)>.photo{order:2}.species-grid .company-table{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}.species-grid .company-table>div{display:block;padding:10px 0}.species-grid .photo{margin:0}.contact-methods{grid-template-columns:repeat(3,minmax(0,1fr))!important}form[data-contact-form]{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}form[data-contact-form]>*{grid-column:1/-1}form[data-contact-form]>.field-half{grid-column:auto}.field{margin:14px 0}.faq-item{border:1px solid var(--line);padding:28px;margin-top:20px}.faq-question{display:flex;gap:25px;font-size:16px}.faq-question .eyebrow{margin:0;font-size:17px}.access-photo{position:relative}.access-photo .photo{margin:0}.access-caption{position:absolute;bottom:22px;left:22px;right:22px;padding:16px;background:#fffffff0}.access-caption .eyebrow{margin-bottom:6px}.access-caption p{margin:0}.filter-section{padding:26px 0;border-bottom:1px solid var(--line)}.filter-section .filters{margin:0}.archive-section{margin-top:90px}.featured>.blog-image .photo{margin:0}.blog-card>.blog-image .photo{margin-bottom:22px}
@media(max-width:1023px){.hero-layout,.strengths-layout,.message-layout,.species-grid>.item{grid-template-columns:1fr;gap:40px}.hero-notice{justify-self:start;max-width:none}.hero-layout .contact-strip{max-width:580px;margin-left:0}.hero-mobile-photo{display:block;position:relative;margin-top:28px;max-width:600px}.hero-mobile-photo .photo{margin:0}.hero-mobile-photo .photo img{aspect-ratio:5/4}.hero-mobile-photo .vertical-note{position:absolute;left:20px;bottom:20px;padding:10px;background:#fffffff0}.home-hero>.hero-photo{display:none}.home-hero:after{display:none}.hero-copy{padding-top:45px}.hero-copy h1{max-width:760px}.hero-notice .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-notice .stat-number{font-size:36px}.species-grid>.item:nth-child(even)>.photo{order:0}.service-list .service-feature{grid-template-columns:1fr;gap:30px}.service-list .service-feature:nth-child(even)>.service-image{order:0}.warning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading-row{align-items:start;flex-direction:column;gap:24px}.section-heading-row>.intro{max-width:680px}.message-identity{max-width:820px}.message-copy{margin:0}}
@media(max-width:800px){.home-hero{height:auto;min-height:0}.hero-layout .contact-strip{margin-top:25px}.hero-copy{width:88%}.hero-notice{padding:24px}.hero-layout{gap:30px}.home-hero .scroll{display:none}.section-heading-row{margin-bottom:35px}.strengths-cards>.item{padding:22px}.service-list .service-feature+.service-feature{margin-top:70px}.warranty-layout{grid-template-columns:1fr;padding:25px;gap:35px}.warranty-layout .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-methods{grid-template-columns:repeat(3,minmax(0,1fr))!important}.contact-methods .item:last-child{grid-column:auto!important}.contact-methods .phone.small{font-size:18px;white-space:normal}.timeline:before{left:0}.timeline>.timeline-row{grid-template-columns:1fr;gap:12px;padding-left:25px}.timeline-row:nth-child(even)>.timeline-entry{order:0}.timeline-row:nth-child(odd)>.timeline-entry,.timeline-row:nth-child(even)>.timeline-description{text-align:left}.archive-section{margin-top:60px}.featured>.blog-image .photo{margin:0}.access-caption{position:static;padding:18px;background:#fff}.filter-section{padding:22px 0}}
@media(max-width:767px){.contact-methods{grid-template-columns:1fr!important}.contact-methods .phone.small{font-size:25px}.warning-grid{grid-template-columns:1fr}.field-half{grid-column:1/-1!important}.species-grid .company-table{grid-template-columns:1fr 1fr}.hero-layout .contact-strip .phone{font-size:23px}.hero-layout .contact-strip .button{font-size:11px}.hero-notice .stat-number{font-size:29px}.faq-question{font-size:14px}.home-hero{padding-bottom:45px}}
@media(max-width:480px){.hero-layout .contact-strip .phone{font-size:20px}.hero-notice{padding:20px}.hero-notice .stat-number{font-size:25px}.hero-notice .stats .item{padding:0 5px}.hero-notice .caption{font-size:9px}.species-grid .company-table{gap:10px}.service-image>.eyebrow,.blog-image>.eyebrow{top:12px;left:12px;padding:5px 8px;font-size:9px}}
.species-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.species-pair>div{position:relative}.species-pair>div:first-child{margin-top:48px}.species-pair>div+div{margin:0}.species-pair .photo{margin:0}.species-pair .photo img{aspect-ratio:3/4;object-fit:cover}.species-caption{position:absolute;bottom:15px;left:15px;right:15px;background:#fffffff0;padding:12px}.species-caption h3{margin:0;font-size:16px}.species-caption .eyebrow{font-size:9px}.knowledge-preview .signs{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.knowledge-preview .signs>div{align-items:start;gap:12px;font-size:12px}.knowledge-preview .signs .number{min-width:22px}
@media(max-width:639px){.knowledge-preview .signs{grid-template-columns:1fr}.species-caption{left:8px;right:8px;bottom:8px;padding:8px}.species-caption h3{font-size:13px}.species-caption .eyebrow{font-size:8px}}
/* Retained source images stay complete; layout restoration must not crop them. */
.species-pair .photo.retained img,.service-feature .photo.retained img{aspect-ratio:auto;object-fit:contain}
.species-pair>div:has(.photo.retained) .species-caption{position:static;background:#fff;margin-top:12px}

/* Readability revision, 2026-10-16: keep the approved visual system and section order.
   These final rules intentionally override earlier desktop and mobile small type. */
body { font-size:16px; }
h1 { font-size:clamp(34px,3.9vw,58px); }
h2 { font-size:clamp(30px,3.2vw,46px); }
h3 { font-size:23px; }
.intro, .hero-copy .intro, .page-hero .intro,
.services-grid p, .services-grid li, .note p, .flow-step p,
.knowledge-preview .signs>div, .blog-card>p:not(.eyebrow),
.company-table>div, .company-table.compact>div,
.footer-cta p, .article-body, .article-point { font-size:16px; }
.eyebrow, .brand-copy small, .site-header details small,
.header-phone small, .contact-strip .eyebrow, .scroll,
.badges span, .flow-step .eyebrow, .blog-card .eyebrow, .blog-card time,
.species-pair .eyebrow, .species-caption .eyebrow,
.service-image>.eyebrow, .blog-image>.eyebrow, .copyright { font-size:12px; }
.caption, small, .smallprint, .stats .caption, .hero-notice .caption,
.contact-strip small, .heritage, .notice p, .company-table dt,
.text-link, .button, .contact-strip .button, .hero-layout .contact-strip .button,
.filter, .article-hero time, .byline, .toc-entry, .toc button,
.article-body table, .footer-company, .footer-grid nav a,
.footer-contact-links small, .footer-social { font-size:14px; }
.site-header nav>a, .site-header nav details>summary,
.site-header details>div a { font-size:14px; }
.site-header details>div { min-width:220px; }
.brand-copy { font-size:20px; }
.brand-copy small { letter-spacing:.1em; }
.notice h3, .flow-step h3, .timeline h3, .contact-methods h3 { font-size:18px; }
.blog-card h3, .note h3 { font-size:20px; }
.species-pair h3, .species-caption h3 { font-size:18px; }
.service-feature h2 { font-size:36px; }
.warranty-layout h2 { font-size:32px; }
.hero-copy h1 { font-size:clamp(37px,3.9vw,58px); }
.featured h2 { font-size:29px; }
.article-hero h1 { font-size:clamp(29px,3.2vw,44px); }
.article-heading { font-size:31px; }
.article-subheading { font-size:25px; }
.footer-cta h2 { font-size:37px; }
.field label, .field input, .field select, .field textarea,
.faq summary, .faq-question { font-size:16px; }
/* Let larger labels wrap inside their existing cards rather than push the grid. */
.hero-layout>* , .contact-strip>*, .stats .item, .footer-grid>* { min-width:0; }
.hero-notice .stats, .warranty-layout .stats { column-gap:0; }
.footer-company dl>div { grid-template-columns:56px minmax(0,1fr); }
form .button { min-width:0; width:min(100%,320px); }
@media (min-width:1024px) and (max-width:1400px) {
  .site-header nav { gap:16px; }
  .header-phone { display:none!important; }
  .header-contact { padding:12px 16px; }
  .brand-copy { font-size:18px; }
}
/* Use the existing collapsible navigation sooner to keep enlarged links comfortable. */
@media (max-width:1023px) {
  .site-header { height:80px; padding:0 6%; }
  .brand img { width:53px; height:53px; }
  .brand-copy { font-size:18px; }
  .menu-toggle { display:block; flex-shrink:0; width:40px; height:40px; border:0; background:none; padding:8px; z-index:2; }
  .menu-toggle span { display:block; height:1px; background:var(--ink); margin:8px 0; transition:transform .3s; }
  .site-header nav { display:none; position:absolute; top:80px; left:0; right:0; max-height:calc(100vh - 80px); overflow:auto; background:white; padding:25px 8%; box-shadow:0 12px 18px #0001; }
  .site-header nav.open { display:block; }
  .site-header nav>a, .site-header nav details>summary { display:block; padding:15px 0; font-size:16px; border-bottom:1px solid var(--line); }
  .site-header details>div { position:static; min-width:0; box-shadow:none; padding:5px 20px; }
  .header-contact { margin-top:20px; text-align:center; }
}
@media (max-width:800px) {
  .hero-copy h1 { font-size:clamp(28px,5.1vw,39px); }
  .services-grid h3 { font-size:21px; }
  .page-hero h1 { font-size:32px; }
  .service-feature h2, .warranty-layout h2 { font-size:30px; }
  .wide-photo h2 { font-size:29px; }
  .featured h2, .article-heading { font-size:26px; }
  .article-hero h1 { font-size:30px; }
  .article-subheading { font-size:22px; }
  .footer-cta h2 { font-size:32px; }
  .hero-notice .stats .item { padding-inline:6px; }
  .faq-item { padding:22px; }
  .faq-question { gap:16px; }
  .faq-question .eyebrow { flex-shrink:0; }
}
@media (max-width:480px) {
  .hero-copy h1 { font-size:27px; }
  .page-hero h1 { font-size:28px; }
  .section-heading h2 { font-size:30px; }
  .article-hero h1 { font-size:27px; }
  .species-pair h3, .species-caption h3 { font-size:16px; }
  /* Full-width call and LINE links avoid squeezing larger text into two columns. */
  .contact-strip { grid-template-columns:minmax(0,1fr); row-gap:6px; }
  .contact-strip .eyebrow, .contact-strip .phone,
  .contact-strip .button, .contact-strip small { grid-column:1; grid-row:auto; }
  .contact-strip .phone, .hero-layout .contact-strip .phone { font-size:26px; }
  .contact-strip .button, .hero-layout .contact-strip .button { width:100%; padding:12px 16px; margin-top:6px; }
  .contact-strip small { text-align:center; }
  .hero-notice { padding:18px; }
  .hero-notice .stats .item { padding-inline:3px; }
  .company-table>div { grid-template-columns:76px minmax(0,1fr); gap:12px; }
  .company-table.compact>div { grid-template-columns:84px minmax(0,1fr); }
  .species-grid .company-table>div { display:block; }
}

/* One synchronized, progressively enhanced hero across both responsive layouts. */
.home-hero .hero-slideshow{position:relative;isolation:isolate}
.home-hero>.hero-slideshow{position:absolute}
.home-hero .hero-slideshow .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;aspect-ratio:auto;opacity:0;filter:blur(7px);transform:scale(1.1);animation:none;transition:opacity 4.5s ease,filter 4.5s ease;will-change:opacity,transform}
.home-hero .hero-slideshow .hero-slide:first-child{position:relative}
.home-hero>.hero-slideshow .hero-slide:first-child{position:absolute}
.home-hero .hero-mobile-photo .hero-slide:first-child{aspect-ratio:5/4;height:auto}
.home-hero .hero-slideshow .hero-slide.is-active{opacity:1;filter:blur(0);z-index:2;transform:scale(1)}
.home-hero .hero-slideshow .hero-slide.is-leaving{z-index:1}
.home-hero .hero-slideshow.is-running .hero-slide.is-active,
.home-hero .hero-slideshow.is-running .hero-slide.is-leaving{animation:heroZoom 12s linear both}
.home-hero .hero-slideshow.is-running.is-paused .hero-slide{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){
 .home-hero .hero-slideshow .hero-slide{animation:none!important;transition:none!important;transform:none;filter:none}
 .home-hero .hero-slideshow .hero-slide:not(:first-child){opacity:0}
 .home-hero .hero-slideshow .hero-slide:first-child{opacity:1}
}

/* Complete notice remains in concept after the standalone hero photo was removed. */
.concept-grid .hero-notice{max-width:none;margin-bottom:28px}
.concept-grid>div{min-width:0}

/* 2026-10-16 image correction. Source photograph bytes remain untouched.
   A sideways 4:3 photo rotates clockwise inside the existing 1.65:1 service
   frame. Swap the image box axes before rotating; contain keeps all pixels. */
.home .services-grid .photo.rotate-clockwise{position:relative;aspect-ratio:1.65}
.home .services-grid .photo.rotate-clockwise img{position:absolute;left:50%;top:50%;width:60.6060606061%;height:165%;max-width:none;aspect-ratio:auto;object-fit:contain;transform:translate(-50%,-50%) rotate(90deg)}
.home .services-grid .photo.rotate-clockwise:hover img{transform:translate(-50%,-50%) rotate(90deg)}
/* Match the current homepage knowledge image geometry, including its display
   crop and overlay captions. No source images are resized or rewritten. */
.home-knowledge>.wrap{width:100%;max-width:1280px;padding-inline:20px}
.home-knowledge .knowledge-preview{grid-template-columns:minmax(0,1fr);gap:48px;align-items:center}
.home-knowledge .species-pair{gap:16px}
.home-knowledge .species-pair>div{min-width:0;aspect-ratio:3/4}
.home-knowledge .species-pair>div:first-child{margin-top:48px}
.home-knowledge .species-pair .photo{width:100%;height:100%;margin:0}
.home-knowledge .species-pair .photo.retained img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover}
.home-knowledge .species-pair>div:has(.photo.retained) .species-caption{position:absolute;left:12px;right:12px;bottom:12px;margin:0;padding:8px 12px;background:#fffffff0}
@media(min-width:768px){.home-knowledge>.wrap{padding-inline:40px}}
@media(min-width:1024px){.home-knowledge .knowledge-preview{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:80px}}

/* All-page photo geometry reconciliation, 2026-10-16.
   Frames and responsive placement follow the live site's image containers.
   The approved type, colours, source pixels, omissions and slideshow remain.
   Natural image dimensions are no longer used to size framed photographs. */
.wrap{width:100%;max-width:1280px;padding-inline:20px}
.photo img{object-position:center}
.home-services,.home-blog{padding-block:96px}
.home .services-grid{grid-template-columns:minmax(0,1fr);gap:24px}
.home .services-grid>.item{min-width:0;border:1px solid var(--line);overflow:hidden}
.home .services-grid .service-image>.photo{position:relative;width:100%;aspect-ratio:16/10;margin:0}
.home .services-grid .service-image>.photo img{display:block;width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;object-position:center}
.service-card-copy{padding:24px}
.home .services-grid .photo.rotate-clockwise{aspect-ratio:16/10}
.home .services-grid .photo.rotate-clockwise img{position:absolute;left:50%;top:50%;width:62.5%;height:160%;max-width:none;aspect-ratio:auto;object-fit:cover;object-position:left center;transform:translate(-50%,-50%) rotate(90deg)}
.home .services-grid .photo.rotate-clockwise:hover img{transform:translate(-50%,-50%) rotate(90deg)}
/* Rotated source's left edge maps to the upright top edge. Swapping axes fills
   the entire 16:10 frame without stretching or contain letterboxing. */
.home .knowledge-preview{grid-template-columns:minmax(0,1fr);gap:48px}
.home .grid.blog-grid{grid-template-columns:minmax(0,1fr);gap:24px}
.grid.blog-grid.archive{grid-template-columns:minmax(0,1fr);gap:24px}
.blog-grid>.item{min-width:0}
.blog-grid .blog-card{border:1px solid var(--line);height:100%;overflow:hidden}
.blog-grid .blog-image>.photo{width:100%;aspect-ratio:4/3;margin:0 0 22px}
.blog-grid .blog-image>.photo img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.service-list .service-feature{grid-template-columns:minmax(0,1fr);gap:40px}
.service-list .service-feature+.service-feature{margin-top:96px}
.service-feature .service-image>.photo{width:100%;aspect-ratio:4/3;margin:0}
.service-feature .photo img,.service-feature .photo.retained img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.photo-section>.wrap{max-width:none;padding:0}
.wide-photo{height:40vh}
.wide-photo .photo{height:100%;margin:0}
.wide-photo .photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.grid.species-grid{gap:40px}
.species-grid>.item{grid-template-columns:minmax(0,1fr);gap:32px;border:1px solid var(--line);overflow:hidden;align-items:center}
.species-grid>.item>.photo{position:relative;aspect-ratio:4/5;width:100%;height:auto;min-height:0;margin:0;align-self:stretch}
.species-grid>.item>.photo img,.species-grid>.item>.photo.retained img{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
.species-grid>.item>div{padding:0 24px 24px}
.access-grid{grid-template-columns:minmax(0,1fr);gap:40px;padding:32px;border:1px solid var(--line);align-items:center}
.access-grid .photo{width:100%;aspect-ratio:4/3;margin:0}
.access-grid .photo img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.access-grid .access-caption{position:absolute;bottom:24px;left:24px;right:24px;margin:0;padding:0;background:transparent}
.featured{grid-template-columns:minmax(0,1fr);gap:32px;border:1px solid var(--line);align-items:stretch;overflow:hidden}
.featured>.blog-image{position:relative;aspect-ratio:4/3;min-height:0}
.featured>.blog-image .photo{position:absolute;inset:0;width:100%;height:100%;margin:0}
.featured>.blog-image .photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.featured>div:last-child{padding:0 24px 24px}
.article-body{width:100%;max-width:820px;padding-inline:20px}
.article-body>.photo{margin:32px 0}
.article-body>.photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:cover}
/* Header photo height stays content-driven: approved larger copy and omitted
   notice/portrait deliberately affect text flow rather than distort photos. */
.page-hero,.article-hero{min-height:0}
.page-hero{padding:0 0 64px}
.page-hero-copy{padding-top:64px;padding-bottom:0}
.article-hero{padding:64px 0}
.article-hero>.wrap{max-width:1280px}
.site-header .brand img{width:44px;height:44px}
@media(min-width:768px){
 .wrap{padding-inline:40px}
 .home-services,.home-blog{padding-block:144px}
 .home .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
 .home .services-grid>.item:nth-child(2),.home .services-grid>.item:nth-child(3){transform:translateY(32px)}
 .service-card-copy{padding:32px}
 .home .grid.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
 .grid.blog-grid.archive{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
 .service-list .service-feature+.service-feature{margin-top:144px}
 .wide-photo{height:60vh}
 .grid.species-grid{gap:64px}
 .species-grid>.item>div{padding:0 40px 40px}
 .access-grid{padding:48px}
 .featured>div:last-child{padding:0 40px 40px}
 .article-body{padding-inline:40px}
 .page-hero{padding-bottom:96px}
 .page-hero-copy{padding-top:96px}
 .article-hero{padding:96px 0}
 .site-header .brand img{width:48px;height:48px}
}
@media(min-width:1024px){
 .home .knowledge-preview{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:80px}
 .service-list .service-feature{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
 .species-grid>.item{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:56px}
 .species-grid>.item>.photo{aspect-ratio:auto;min-height:420px;height:auto}
 .species-grid>.item>div{padding:40px 40px 40px 0}
 .species-grid>.item:nth-child(even)>div{padding:40px 0 40px 40px}
 .access-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:64px}
 .featured{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px}
 .featured>.blog-image{aspect-ratio:auto;min-height:420px}
 .featured>div:last-child{padding:40px 40px 40px 0}
 .grid.blog-grid.archive{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Article replacements retain the original 32 source-image frame ratios,
   rather than adopting the generated files' different native dimensions. */
.article-body>.photo{margin:1.5em 0 0}
.article-body>.photo:first-child{margin-top:0}
.article-body>.photo img{aspect-ratio:var(--source-aspect);object-fit:cover}
.site-header{height:72px;padding-inline:max(20px,calc((100% - 1480px)/2 + 20px))}
.site-header nav{top:72px}
@media(min-width:768px){
 .site-header{height:88px;padding-inline:max(40px,calc((100% - 1480px)/2 + 40px))}
 .site-header nav{top:88px}
}
.photo-section{padding:0}
.footer-logo{width:56px;height:56px;object-fit:contain;margin-bottom:16px}
/* Original header/hero coordinate system: photos begin at the viewport top
   beneath the fixed navigation. Height follows the approved text naturally. */
.site-header{position:fixed;inset:0 0 auto}
.page-hero{padding-top:88px}
.article-hero{padding-top:88px;padding-bottom:64px}
.article-hero>.wrap{padding-top:64px}
@media(min-width:768px){
 .page-hero{padding-top:112px}
 .article-hero{padding-top:112px;padding-bottom:96px}
 .article-hero>.wrap{padding-top:96px}
}
@media(max-width:1023px){
 .site-header nav{max-height:calc(100vh - 72px)}
}
@media(min-width:768px) and (max-width:1023px){
 .site-header nav{max-height:calc(100vh - 88px)}
}
/* Labels remain attached to their original frame corners. */
.home .service-image>.eyebrow{top:16px;left:16px}
.service-feature .service-image>.eyebrow{top:20px;left:20px}
.blog-grid .blog-image>.eyebrow{top:12px;left:12px}
.featured .blog-image>.eyebrow{top:20px;left:20px}
.access-grid .access-caption{bottom:16px;left:16px;right:auto;padding:10px 16px;background:#fffffff0;max-width:calc(100% - 32px)}
.footer-identity{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:16px;align-items:center;margin-bottom:25px}
.footer-identity .footer-logo{grid-row:1/3;margin:0}
.footer-identity .eyebrow,.footer-identity .footer-brand{margin:0}
/* Text padding is part of the adjacent stretch-image height calculation. */
.species-grid>.item>div,.species-grid>.item:nth-child(even)>div,
.featured>div:last-child{padding:32px}
.featured>div:last-child{display:flex;flex-direction:column;justify-content:center}
@media(min-width:768px){
 .species-grid>.item>div,.species-grid>.item:nth-child(even)>div,
 .featured>div:last-child{padding:48px}
}
.blog-grid .blog-image>.photo{margin:0}
.blog-grid .blog-card{padding-bottom:24px}
.blog-grid .blog-card>:not(.blog-image){margin-left:24px;margin-right:24px}
.blog-grid .blog-card>.blog-image+time{display:block;padding-top:24px}

/* Restore only the homepage hero to its pre-geometry-revision layout.
   Its original in-flow header preserves the hero's vertical starting point;
   the corrected logo size and all other pages' fixed headers remain intact. */
.home .site-header{position:relative;inset:auto;height:100px;padding:0 4.2%}
.home .hero-copy{width:min(1200px,86%);max-width:none;padding-inline:0}
@media(max-width:1150px){.home .hero-copy{width:88%}}
@media(max-width:1023px){
 .home .site-header{height:80px;padding:0 6%}
 .home .site-header nav{top:80px;max-height:calc(100vh - 80px)}
}

/* CONTACT: user-requested live map replaces only the access photo. */
.access-grid .access-map{min-width:0}
.access-grid .access-map-frame{width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--soft)}
.access-grid .access-map-frame iframe{display:block;width:100%;height:100%;border:0}
.access-grid .access-map .access-caption{position:static;max-width:none;margin:0;padding:16px;background:#fff}

/* Header menu feedback: transform the label only, preserving navigation geometry. */
#main-nav > a:not(.header-phone):not(.header-contact) > span,
#main-nav > details > summary > span {
  display:inline-block;
  position:relative;
  transform-origin:center;
  transition:transform .18s ease;
}
#main-nav > a:not(.header-phone):not(.header-contact) > span::after,
#main-nav > details > summary > span::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-3px;
  height:2px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .18s ease;
}
@media (hover:hover) and (pointer:fine) {
  #main-nav > a:not(.header-phone):not(.header-contact):hover > span,
  #main-nav > details > summary:hover > span { transform:scale(1.04); }
  #main-nav > a:not(.header-phone):not(.header-contact):hover > span::after,
  #main-nav > details > summary:hover > span::after { transform:scaleX(1); }
}
#main-nav > a:not(.header-phone):not(.header-contact):focus-visible > span,
#main-nav > details > summary:focus-visible > span { transform:scale(1.04); }
#main-nav > a:not(.header-phone):not(.header-contact):focus-visible > span::after,
#main-nav > details > summary:focus-visible > span::after { transform:scaleX(1); }
#main-nav > details > summary:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:5px;
}
@media (prefers-reduced-motion:reduce) {
  #main-nav > a:not(.header-phone):not(.header-contact) > span,
  #main-nav > details > summary > span { transform:none!important; transition:none; }
  #main-nav > a:not(.header-phone):not(.header-contact) > span::after,
  #main-nav > details > summary > span::after { transition:none; }
}

/* Match the About disclosure label to ordinary menu-link feedback. */
.site-header nav details > summary:hover,
.site-header nav a:focus-visible,
.site-header nav details > summary:focus-visible { color:var(--deep); }

/* Free consultation: enlarge the button without changing menu layout. */
#main-nav > .header-contact { transition:transform .18s ease; transform-origin:center; }
@media (hover:hover) and (pointer:fine) {
  #main-nav > .header-contact:hover { transform:scale(1.04); }
}
#main-nav > .header-contact:focus-visible { transform:scale(1.04); }
@media (prefers-reduced-motion:reduce) {
  #main-nav > .header-contact { transform:none!important; transition:none; }
}

/* Requested three-line home heading. Underlines follow the official site's
   low, thick marker placement; pale blue and pale green per user reference. */
.home .hero-heading .hero-heading-group{display:contents}
.home .hero-heading .hero-heading-line{display:inline-block;position:relative;isolation:isolate;white-space:nowrap}
.home .hero-heading .hero-heading-line:after{content:none}
.home .hero-heading .hero-heading-soft-gold:after,
.home .hero-heading .hero-heading-gold:after{content:"";position:absolute;left:0;right:0;bottom:.24em;bottom:calc(.5lh - .56em);height:.18em;z-index:-1;pointer-events:none}
.home .hero-heading .hero-heading-soft-gold:after{background:#e3e0d3;opacity:1}
.home .hero-heading .hero-heading-gold:after{background:#e3e0d3;opacity:1}
.home .hero-heading .hero-heading-group>.hero-heading-line:first-child{animation-delay:0s}
.home .hero-heading .hero-heading-soft-gold{animation-delay:.12s}
.home .hero-heading>.hero-heading-gold{animation-delay:.24s}

/* Approved hero contact treatment; source wording and destinations are unchanged. */
.home-hero .hero-layout .contact-strip{display:flex;align-items:center;flex-wrap:wrap;gap:18px;max-width:730px}
.home-hero .contact-strip .hero-phone-button{display:flex;align-items:center;gap:16px;padding:9px 11px;border:2px solid var(--gold);border-radius:18px;background:#ffffffed;color:var(--ink);flex:0 1 auto}
.home-hero .contact-strip .phone-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 48px;border-radius:50%;background:var(--gold);color:#fff;font-size:25px}
.home-hero .contact-strip .hero-contact-copy{display:flex;flex-direction:column;min-width:0}
.home-hero .contact-strip .eyebrow{display:block;margin:0 0 4px;font-size:12px;letter-spacing:.04em}
.home-hero .hero-layout .contact-strip .phone{font-size:clamp(22px,2.3vw,32px);line-height:1.5}
.home-hero .hero-layout .contact-strip .hero-line-button{display:flex;gap:14px;flex:0 1 auto;margin:0;padding:9px 11px;border:2px solid #06c755;border-radius:18px;background:#06c755;color:#fff;font-size:18px;font-weight:600;letter-spacing:0;min-height:0;width:auto}
.home-hero .contact-strip .line-icon{width:32px;height:32px;flex:0 0 32px}
.home-hero .contact-strip .hero-line-button small{margin:0;color:#fff;text-align:left;font-size:14px;font-weight:500;line-height:1.5}
@media(max-width:600px){
 .home-hero .hero-layout .contact-strip{gap:14px}
 .home-hero .contact-strip .hero-phone-button,.home-hero .hero-layout .contact-strip .hero-line-button{flex-basis:auto;justify-content:center;padding:8px;min-height:0}
 .home-hero .hero-layout .contact-strip .phone{font-size:clamp(20px,5.8vw,26px)}
 .home-hero .contact-strip .hero-phone-button{gap:12px;padding:7px}
 .home-hero .contact-strip .phone-icon{width:40px;height:40px;flex-basis:40px}
}
/* Individual scale composes with existing transform/reveal effects. Exclude text links. */
:is(button,a.button,.hero-phone-button,.header-contact,.header-phone,a.phone,.footer-contact-links>a):not(:disabled):not([aria-disabled="true"]){scale:1;transform-origin:center;transition:scale .18s ease,background .3s,color .3s}
/* Replace the older button-only translate and header CTA scale, avoiding double scaling. */
.button:hover,#main-nav>.header-contact:hover,#main-nav>.header-contact:focus-visible{transform:none}
@media(hover:hover) and (pointer:fine){
 :is(button,a.button,.hero-phone-button,.header-contact,.header-phone,a.phone,.footer-contact-links>a):not(:disabled):not([aria-disabled="true"]):hover{scale:1.04}
}
:is(button,a.button,.hero-phone-button,.header-contact,.header-phone,a.phone,.footer-contact-links>a):not(:disabled):not([aria-disabled="true"]):focus-visible{scale:1.04}
@media(prefers-reduced-motion:reduce){
 :is(button,a.button,.hero-phone-button,.header-contact,.header-phone,a.phone,.footer-contact-links>a){scale:1!important;transition:none!important}
}

#main-nav>.header-contact{transition:scale .18s ease,background .3s,color .3s}
@media(prefers-reduced-motion:reduce){#main-nav>.header-contact{transition:none}}

/* Keep the four-generation caption on its requested two lines. */
.concept-grid .hero-notice .caption .heritage-caption-line{display:block;white-space:nowrap}

/* Refined home information panels and service cards; intentionally scoped.
   No changes to content, photo geometry, hero or button interactions. */
.home .concept-grid .note,
.home .concept-grid .hero-notice{
 position:relative;
 border-color:#e3e0d3;
 border-radius:6px;
 background:linear-gradient(145deg,#fff 35%,#e5efe3);
 box-shadow:0 5px 20px rgba(26,29,26,.035);
}
.home .concept-grid .note::before,
.home .concept-grid .hero-notice::before{
 content:"";position:absolute;top:-1px;left:30px;width:48px;height:2px;
 background:var(--gold);pointer-events:none;
}
.home .concept-grid .note h3{color:var(--ink)}
.home .concept-grid .badges span{
 border-color:#e5efe3;border-radius:3px;background:#e5efe3;
 box-shadow:inset 0 -2px 0 rgba(46,110,71,.13);color:#1f4733;
}
.home .concept-grid .hero-notice .notice>.eyebrow{color:var(--deep)}
.home .concept-grid .hero-notice .stats{border-top-color:#e3e0d3}
.home .concept-grid .hero-notice .stats .item{border-right-color:#e5efe3}
.home .home-services .services-grid>.item{
 border-color:#e3e0d3;border-radius:6px;background:#fff;
 box-shadow:0 6px 22px rgba(26,29,26,.045);
}
.home .home-services .service-card-copy{
 position:relative;background:linear-gradient(135deg,#fff 40%,#e5efe3);
}
.home .home-services .service-card-copy::before{
 content:"";position:absolute;top:0;left:24px;width:40px;height:2px;
 background:var(--gold);pointer-events:none;
}
.home .home-services .service-card-copy ul{border-top-color:#e3e0d3}
.home .home-services .service-image>.eyebrow{
 border-radius:3px;background:rgba(255,255,255,.96);
 box-shadow:inset 2px 0 0 var(--gold),0 2px 10px rgba(26,29,26,.06);
}
@media(min-width:768px){
 .home .home-services .service-card-copy::before{left:32px}
}
@media(max-width:480px){
 .home .concept-grid .hero-notice::before{left:18px}
}

/* Requested lower-right gold glow: only these two home information panels. */
.home .concept-grid .note,
.home .concept-grid .hero-notice{
 background:radial-gradient(ellipse at 100% 100%,rgba(46,110,71,.17) 0%,rgba(46,110,71,.075) 25%,rgba(46,110,71,.018) 48%,rgba(46,110,71,0) 70%),#fff;
 box-shadow:0 3px 8px rgba(0,0,0,.035),0 12px 28px rgba(0,0,0,.055);
}
/* Compact enclosed membership badge, matching the original site's treatment. */
.home .concept-grid .association-badge{
 display:inline-block;max-width:100%;box-sizing:border-box;
 margin-top:8px;padding:12px 20px;border:1px solid #e3e0d3;border-radius:16px;
 background:#e5efe3;box-shadow:0 16px 30px -18px rgba(26,29,26,.24);
}
.home .concept-grid .association-badge p{margin:0}
.home .concept-grid .association-badge p+p{margin-top:4px;font-weight:600}

/* Preserve the upright service photo while matching the standard photo zoom. */
.home .services-grid .photo.rotate-clockwise:hover img{transform:translate(-50%,-50%) rotate(90deg) scale(1.035)}
@media(prefers-reduced-motion:reduce){
 .home .services-grid .photo.rotate-clockwise:hover img{transform:translate(-50%,-50%) rotate(90deg)}
}

/* Body-only scroll entrances. No pending/hidden state: fail-open without JS.
   MOCI reference: opposing lateral entrances, rising headings, stagger, blur. */
main .body-reveal .source-line{animation:none}
main .body-reveal-enter{animation:bodyRevealFade .8s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--reveal-delay,0s)}
main .body-reveal-left.body-reveal-enter{animation-name:bodyRevealLeft;animation-duration:1.1s}
main .body-reveal-right.body-reveal-enter{animation-name:bodyRevealRight;animation-duration:1.1s}
main .body-reveal-heading.body-reveal-enter{animation-name:bodyRevealHeading;animation-duration:1s}
main .body-reveal-rise.body-reveal-enter{animation-name:bodyRevealRise;animation-duration:.95s}
main .body-reveal-blur.body-reveal-enter{animation-name:bodyRevealBlur;animation-duration:1.15s}
@keyframes bodyRevealFade{from{opacity:0}to{opacity:1}}
@keyframes bodyRevealLeft{from{opacity:0;translate:calc(-1 * var(--reveal-distance,42px)) 0}to{opacity:1;translate:0 0}}
@keyframes bodyRevealRight{from{opacity:0;translate:var(--reveal-distance,42px) 0}to{opacity:1;translate:0 0}}
@keyframes bodyRevealHeading{from{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}
@keyframes bodyRevealRise{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@keyframes bodyRevealBlur{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}
@media(max-width:800px){main .body-reveal{--reveal-distance:18px}}
@media(prefers-reduced-motion:reduce){
 main .body-reveal-enter{animation:none!important;opacity:1;translate:none;filter:none}
}
/* Body palette: muted sky and sage accompany the retained gold, never the hero/header. */
main>.section.soft{background:#e5efe3}
main>.section.soft:nth-of-type(odd){background:#e5efe3}
main>.home-services{background:#e5efe3}
main>.strengths-section{background:#e5efe3}
main>.home-knowledge{background:#e5efe3}
main>.home-blog{background:#e5efe3}
main .strengths-cards>.item{background:#e5efe3ed;border-color:#e3e0d3}
main .strengths-cards>.item:nth-child(even){background:#e5efe3ed;border-color:#e3e0d3}
main .home-services .services-grid>.item:nth-child(odd){background:#e5efe3;border-color:#e3e0d3}
main .home-services .services-grid>.item:nth-child(even){background:#e5efe3;border-color:#e3e0d3}
main .home-services .service-image>.eyebrow,main .home-blog .blog-image>.eyebrow{background:#e5efe3f5;color:#1f4733}
main .home-services .services-grid>.item:nth-child(even) .service-image>.eyebrow{background:#e5efe3f5;color:#1f4733}
main .concept .badges span:nth-child(odd){background:#e5efe3;border-color:#e3e0d3;color:#1f4733}
main .concept .badges span:nth-child(even){background:#e5efe3;border-color:#e3e0d3;color:#1f4733}
main .faq-item{background:#e5efe3;border-color:#e3e0d3}
main .faq-item:nth-child(even){background:#e5efe3;border-color:#e3e0d3}
main .article-body .article-point,main .article-body ul{background:#e5efe3;border-color:#e3e0d3}
main .article-body ol,main .article-body th{background:#e5efe3}

/* Homepage only: in-flow sticky header; measured MORE BEAUTY glass after scrolling.
   Reference 2026-10-17: white .7, blur 6px, no shadow, background transition .3s.
   Keep existing top-of-page appearance, header height, hero position and CTA styling. */
.home .site-header{position:sticky;top:0;transition:background .3s,border-color .3s,box-shadow .3s}
.home .site-header.is-scrolled{background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:none;border-bottom-color:transparent}
@supports not ((backdrop-filter:blur(6px)) or (-webkit-backdrop-filter:blur(6px))){
 .home .site-header.is-scrolled{background:rgba(255,255,255,.97)}
}
@media(max-width:1023px){
 .home .site-header nav{top:100%;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);overscroll-behavior:contain}
}
@media(prefers-reduced-motion:reduce){.home .site-header{transition:none}}
/* Exact pale blue from the supplied free-survey badge: RGB 231,241,243. */
main>.section.soft{background:#e5efe3}
main>.section.soft:nth-of-type(odd){background:#e5efe3}
main>.home-services,main>.home-blog{background:#e5efe3}
main .article-body .article-point,main .article-body ul{background:#e5efe3}
/* User-requested slower entrance: 2.4s opacity / 2.6s clarity.
   Retain blur 8px, .2s delay, ease and no title translation. */
main .body-reveal-soft.body-reveal-enter,
main .about-reasons .grid.three>.item.body-reveal-enter,
main .faq-item.body-reveal-enter,
main form[data-contact-form].body-reveal-enter,
main .article-body .photo.body-reveal-enter,
main .moci-title-enter,
main h2.body-reveal-enter.moci-title-enter,main h3.body-reveal-enter.moci-title-enter,
.home-hero.hero-intro-enter .heritage,
.home-hero.hero-intro-enter h1,
.home-hero.hero-intro-enter .intro,
.home-hero.hero-intro-enter .contact-strip,
.home-hero.hero-intro-enter .vertical-note{
 animation:mociOpacity 2.4s ease .2s both,mociClarity 2.6s ease .2s both;
}
/* Replace title-only slide; the containing column/card keeps its own motion. */
main h2.body-reveal-enter,main h3.body-reveal-enter{animation:none}
.home-hero h1 .source-line{animation:none}
@keyframes mociOpacity{from{opacity:0}to{opacity:1}}
@keyframes mociClarity{from{filter:blur(8px)}to{filter:blur(0)}}
/* First frame also fades in. The existing shared 7.5s clock/12s zoom stays intact. */
.home-hero.hero-intro-enter .hero-slideshow{animation:mociFirstImage 4.5s ease .05s both}
@keyframes mociFirstImage{from{opacity:0}to{opacity:1}}
/* Reference photos crossfade without a blur; preserve their transforms and geometry. */
.home-hero .hero-slideshow .hero-slide{filter:none;transition:opacity 4.5s ease}
.home-hero .hero-slideshow .hero-slide.is-active{filter:none}
@media(prefers-reduced-motion:reduce){
 main .moci-title-enter,.home-hero.hero-intro-enter .heritage,.home-hero.hero-intro-enter h1,.home-hero.hero-intro-enter .intro,.home-hero.hero-intro-enter .contact-strip,.home-hero.hero-intro-enter .vertical-note,.home-hero.hero-intro-enter .hero-slideshow{animation:none!important;filter:none}
}

/* The reference starts inside the viewport, not before its bottom edge.
   Keep each framed column whole; user-requested slow 2.8s movement and soft start. */
main .body-reveal-left.body-reveal-enter,main .body-reveal-right.body-reveal-enter{animation-duration:2.8s;animation-timing-function:cubic-bezier(.42,0,.58,1);--reveal-distance:48px}
main .body-reveal-rise.body-reveal-enter{animation-duration:1.1s}
main .service-feature .body-reveal-left.body-reveal-enter,main .service-feature .body-reveal-right.body-reveal-enter{--reveal-distance:56px}

/* At the exact top, override the legacy translucent base without a return fade.
   Only scrollY > 0 receives the existing 70% white / 6px glass rule. */
.home .site-header:not(.is-scrolled){background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;transition:none}

/* Home service cards: preserve the former left 64px gap in both columns.
   Remove decorative offsets so visual spacing equals the layout gap. */
.home .home-services{overflow-x:clip}
.home .home-services .services-grid>.item{transform:none}
@media(min-width:768px){
 .home .home-services .services-grid{row-gap:64px}
}

/* Home service cards: lift the right column together, keeping both row gaps. */
@media(min-width:768px){
 .home .home-services .services-grid>.item:nth-child(even){position:relative;top:-32px}
}

/* Home service cards: soft outer depth, matching the concept information panels. */
.home .home-services .services-grid>.item{
 box-shadow:0 3px 8px rgba(0,0,0,.035),0 12px 28px rgba(0,0,0,.055);
}

/* Home services: reference FIRST PRICE uses a stationary 1.25s fade, 200ms stagger.
   CSS delay is assigned only to visible cards, in 01 -> 02 -> 03 -> 04 order. */
.home .home-services .services-grid>.item{
 box-shadow:0 4px 10px rgba(0,0,0,.055),0 16px 34px rgba(0,0,0,.085);
}
.home .home-services .body-reveal-service.body-reveal-enter{
 animation:bodyRevealFade 1.25s ease both;animation-delay:var(--reveal-delay,.4s);
}

/* Home process only: whole steps and introduction share the same upward slide. */
.home main .body-reveal-process.body-reveal-enter{
 animation:processStepRise 1s cubic-bezier(.42,0,.58,1) both,processStepOpacity 1.5s cubic-bezier(.42,0,.58,1) both;
 animation-delay:var(--reveal-delay,0s);
}
@keyframes processStepRise{from{translate:0 30px}to{translate:0 0}}
@keyframes processStepOpacity{from{opacity:0}to{opacity:1}}

/* Knowledge only: the existing 1.1s rise takes twice as long, including trailing links. */
.home-knowledge .body-reveal-knowledge.body-reveal-enter{
 animation-name:bodyRevealRise;
 animation-duration:2.2s;
}

/* Home blog: independent 3s opacity and unchanged 2.2s rise, keeping the archive link in sync. */
.home-blog .body-reveal-blog.body-reveal-enter,
.blog-grid.archive>.body-reveal-blog.body-reveal-enter{
 animation-name:blogRevealSlide,blogRevealOpacity;
 animation-duration:2.2s,3s;
 animation-timing-function:cubic-bezier(.22,1,.36,1),ease-in-out;
}
.home-blog .body-blog-wait{opacity:0}
@media(prefers-reduced-motion:reduce){.home-blog .body-blog-wait{opacity:1}}
@keyframes blogRevealSlide{from{translate:0 18px}to{translate:0 0}}
@keyframes blogRevealOpacity{from{opacity:0}to{opacity:1}}

/* Home free inspection: typography and whole-column entrances only. */
:is(.home,.interior,.article-page) .footer-cta>div:first-child>.eyebrow{font-size:12px}
:is(.home,.interior,.article-page) .footer-cta h2 .source-line{animation:none}
:is(.home,.interior,.article-page) .footer-cta>div:first-child.inspection-enter{
 animation:mociOpacity 2.4s ease .2s both,mociClarity 2.6s ease .2s both;
}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links.inspection-enter{
 --reveal-distance:48px;
 animation:bodyRevealRight 2.8s cubic-bezier(.42,0,.58,1) both;
}
@media(prefers-reduced-motion:reduce){
 :is(.home,.interior,.article-page) .footer-cta>.inspection-enter{animation:none!important;opacity:1;filter:none;translate:none}
}

/* HOME footer contact buttons: same treatment as the hero; retain all text/links. */
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links{display:grid;gap:18px;justify-items:start;align-content:center}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a{display:grid;grid-template-columns:48px minmax(0,1fr) auto;column-gap:16px;align-items:center;padding:9px 11px;border:2px solid var(--gold);border-radius:18px;background:#ffffffed;color:var(--ink);width:fit-content;max-width:100%;min-height:0}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a::before{content:'';grid-column:1;grid-row:1/4;align-self:center;width:48px;height:48px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2025%2032%22%3E%3Ctext%20x%3D%2212.5%22%20y%3D%2225%22%20text-anchor%3D%22middle%22%20fill%3D%22white%22%20font-family%3D%22serif%22%20font-size%3D%2225%22%3E%E2%98%8E%3C%2Ftext%3E%3C%2Fsvg%3E") center/25px 32px no-repeat}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>small,:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>strong{grid-column:2;min-width:0}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>small:first-child{grid-row:1;font-size:12px;letter-spacing:.04em;line-height:1.8;margin:0 0 4px;color:var(--deep)}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>strong{grid-row:2;font-size:clamp(22px,2.3vw,32px);line-height:1.5;letter-spacing:.035em;font-weight:400}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>small:nth-child(3){grid-row:3;font-size:14px;line-height:1.5}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>span:last-child{grid-column:3;grid-row:1/4}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2){grid-template-columns:32px minmax(0,1fr) auto;column-gap:14px;border-color:#06c755;background:#06c755;color:#fff;font-size:18px;font-weight:600;letter-spacing:0}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)::before{width:32px;height:32px;border-radius:0;background:transparent url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22line-icon%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22white%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M19.365%209.863c.349%200%20.63.285.63.631%200%20.345-.281.63-.63.63H17.61v1.125h1.755c.349%200%20.63.283.63.63%200%20.344-.281.629-.63.629h-2.386c-.345%200-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346%200%20.627.285.627.63%200%20.349-.281.63-.63.63H17.61v1.125h1.755zm-3.855%203.016c0%20.27-.174.51-.432.596-.064.021-.133.031-.199.031-.211%200-.391-.09-.51-.25l-2.443-3.317v2.94c0%20.344-.279.629-.631.629-.346%200-.626-.285-.626-.629V8.108c0-.271.173-.51.43-.595.06-.023.136-.033.194-.033.195%200%20.375.104.495.254l2.462%203.33V8.108c0-.345.282-.63.63-.63.345%200%20.63.285.63.63v4.771zm-5.741%200c0%20.344-.282.629-.631.629-.345%200-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346%200%20.628.285.628.63v4.771zm-2.466.629H4.917c-.345%200-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348%200%20.63.285.63.63v4.141h1.756c.348%200%20.629.283.629.63%200%20.344-.282.629-.629.629M24%2010.314C24%204.943%2018.615.572%2012%20.572S0%204.943%200%2010.314c0%204.811%204.27%208.842%2010.035%209.608.391.082.923.258%201.058.59.12.301.079.766.038%201.08l-.164%201.02c-.045.301-.24%201.186%201.049.645%201.291-.539%206.916-4.078%209.436-6.975C23.176%2014.393%2024%2012.458%2024%2010.314%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)>small{margin:0;color:#fff;text-align:left;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)>strong{font-family:var(--sans);font-size:18px;font-weight:600;letter-spacing:0;line-height:2.1}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2):hover{background-color:var(--deep)}
@media(max-width:600px){
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links{gap:14px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a{grid-template-columns:40px minmax(0,1fr) auto;column-gap:12px;padding:7px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a::before{width:40px;height:40px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>strong{font-size:clamp(20px,5.8vw,26px)}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2){padding:8px}
}

/* Keep HOME footer LINE green during pointer and keyboard interaction. */
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2):hover,
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2):focus-visible{background-color:#06c755;border-color:#06c755;color:#fff}

/* Optically center only the hero LINE copy; retain its line spacing and button size. */
.home-hero .contact-strip .hero-line-button>.hero-contact-copy{position:relative;top:-3.2px}

/* HOME strengths: full-width introduction above staggered service-style columns. */
.home .strengths-layout{grid-template-columns:minmax(0,1fr);gap:64px}
.home .strengths-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 32px}
.home .strengths-cards>.item{box-shadow:0 4px 10px rgba(0,0,0,.055),0 16px 34px rgba(0,0,0,.085)}
.home .strengths-cards>.item:nth-child(even){position:relative;top:-32px}
@media(max-width:767px){
 .home .strengths-layout{gap:40px}
 .home .strengths-cards{grid-template-columns:minmax(0,1fr);gap:24px}
 .home .strengths-cards>.item:nth-child(even){top:0}
}

/* Sitewide photo and framed-surface shadows; layout and imagery remain untouched. */
main .photo:not(.hero-photo):not(.strengths-photo),
main .services-grid>.item,
main .strengths-cards>.item,
main .blog-card,
main .species-grid>.item,
main .species-pair>div,
main .note,
main .hero-notice,
main .notice,
main .prices>.item,
main .warranty-layout,
main .warning-grid>div,
main .faq-item,
main .access-grid,
main .toc,
main .table-wrap,
.home .concept-grid .note,
.home .concept-grid .hero-notice,
.home .home-services .services-grid>.item,
.home .strengths-cards>.item{
 box-shadow:0 4px 10px rgba(0,0,0,.055),0 16px 34px rgba(0,0,0,.085);
}
/* Small standalone frames use the same direction with a gentler falloff. */
main .article-point,
main .article-body>ul,
main .article-body>ol,
main .field input,
main .field select,
main .field textarea,
.home .concept-grid .association-badge{
 box-shadow:0 2px 5px rgba(0,0,0,.035),0 6px 14px rgba(0,0,0,.055);
}
.home .concept-grid .badges span{
 box-shadow:inset 0 -2px 0 rgba(46,110,71,.13),0 2px 5px rgba(0,0,0,.035),0 6px 14px rgba(0,0,0,.055);
}
/* A compound card casts one outer shadow, never a second photo/caption shadow. */
main :is(.services-grid>.item,.blog-card,.species-grid>.item,.species-pair>div,.access-grid) .photo,
main .hero-notice .notice{
 box-shadow:none;
}
.home .home-services .service-image>.eyebrow{
 box-shadow:inset 2px 0 0 var(--gold);
}

/* Loco Nail reference, adapted to the existing bronze / blue / sage palette.
   White mats, offset planes, fine outer frames and inset rules vary by section.
   All decorations are paint-only: no border-width, padding or layout changes. */
main .photo:not(.hero-photo):not(.strengths-photo){
 box-shadow:0 0 0 4px #fff,0 12px 26px rgba(26,29,26,.14);
}
.home main .concept-grid .photo,
.interior main .wide-photo .photo{
 box-shadow:0 0 0 6px #fff,0 16px 36px rgba(26,29,26,.18);
}
.home main .hero-mobile-photo .photo{
 box-shadow:0 0 0 4px #fff,0 10px 24px rgba(26,29,26,.12);
}
main .service-feature:nth-child(odd) .photo{
 box-shadow:8px 8px 0 #e5efe3,0 12px 26px rgba(26,29,26,.12);
}
main .service-feature:nth-child(even) .photo{
 box-shadow:-8px 8px 0 #e5efe3,0 12px 26px rgba(26,29,26,.12);
}
.home .strengths-cards>.item{
 box-shadow:inset 0 3px 0 #e3e0d3,0 4px 10px rgba(0,0,0,.055),0 16px 34px rgba(0,0,0,.085);
}
.home .strengths-cards>.item:nth-child(even){
 box-shadow:inset 0 3px 0 #e3e0d3,0 4px 10px rgba(0,0,0,.055),0 16px 34px rgba(0,0,0,.085);
}
main .species-pair>div{
 box-shadow:-8px 8px 0 #e5efe3,0 10px 24px rgba(26,29,26,.12);
}
main .species-pair>div:nth-child(even){
 box-shadow:8px 8px 0 #e5efe3,0 10px 24px rgba(26,29,26,.12);
}
main .species-grid>.item{
 box-shadow:0 0 0 4px #fff,0 0 0 5px #e3e0d3,0 12px 26px rgba(26,29,26,.12);
}
main .species-grid>.item:nth-child(even){
 box-shadow:0 0 0 4px #fff,0 0 0 5px #e3e0d3,0 12px 26px rgba(26,29,26,.12);
}
main .blog-card{
 box-shadow:inset 0 -2px 0 #2e6e47,0 10px 24px rgba(26,29,26,.12);
}
main .blog-card.featured{
 box-shadow:0 0 0 4px #fff,0 0 0 5px #e3e0d3,0 16px 36px rgba(26,29,26,.14);
}
main .prices>.item,
main .faq-item,
main .warning-grid>div{
 box-shadow:inset 0 2px 0 #e3e0d3,0 4px 12px rgba(26,29,26,.08);
}
main .prices>.item:nth-child(even),
main .faq-item:nth-child(even),
main .warning-grid>div:nth-child(even){
 box-shadow:inset 0 2px 0 #e3e0d3,0 4px 12px rgba(26,29,26,.08);
}
main .warranty-layout{
 box-shadow:inset 0 2px 0 #2e6e47,0 10px 24px rgba(26,29,26,.12);
}
main .access-grid{
 box-shadow:0 0 0 6px #fff,0 20px 40px rgba(26,29,26,.16);
}
main .note{
 box-shadow:inset 2px 0 0 #2e6e47,0 8px 20px rgba(26,29,26,.10);
}
main .toc{
 box-shadow:inset 2px 0 0 #2e6e47,0 8px 20px rgba(26,29,26,.08);
}
main .table-wrap{
 box-shadow:0 2px 0 #e3e0d3,0 6px 16px rgba(26,29,26,.07);
}
main .article-body>.photo:nth-of-type(even){
 box-shadow:0 0 0 5px #fff,0 0 0 6px #e3e0d3,0 12px 26px rgba(26,29,26,.12);
}
/* Keep the compound surface as the sole external shadow owner after variation rules. */
main :is(.services-grid>.item,.blog-card,.species-grid>.item,.species-pair>div,.access-grid) .photo{
 box-shadow:none;
}
@media(max-width:767px){
 main .service-feature:nth-child(odd) .photo{
  box-shadow:5px 5px 0 #e5efe3,0 8px 20px rgba(26,29,26,.10);
 }
 main .service-feature:nth-child(even) .photo{
  box-shadow:-5px 5px 0 #e5efe3,0 8px 20px rgba(26,29,26,.10);
 }
 main .species-pair>div{
  box-shadow:-5px 5px 0 #e5efe3,0 8px 20px rgba(26,29,26,.10);
 }
 main .species-pair>div:nth-child(even){
  box-shadow:5px 5px 0 #e5efe3,0 8px 20px rgba(26,29,26,.10);
 }
}

/* HOME strengths heading: one desktop line, readable natural wrapping on phones. */
.home .strengths-layout>div:first-child>.section-heading{max-width:none}
.home .strengths-layout>div:first-child>.section-heading h2>.source-line{display:inline;white-space:inherit}
@media(min-width:768px){
 .home .strengths-layout>div:first-child>.section-heading h2{font-size:clamp(28px,3vw,44px);white-space:nowrap}
}

/* HOME strengths intro: use the full heading width before the requested line break. */
.home .strengths-layout>div:first-child>.section-heading>.intro{max-width:none}

/* HOME knowledge pair: Loco-inspired fine gold outline, preserving existing shadows. */
.home .home-knowledge .species-pair>div{outline:1px solid var(--gold);outline-offset:6px}

/* HOME strengths: existing fact pair shares the number row at the upper right. */
.home .strengths-cards>.item{display:grid;grid-template-columns:minmax(0,1fr) max-content max-content;column-gap:8px;align-content:start}
.home .strengths-cards>.item>.number{grid-area:1 / 1 / 2 / 2}
.home .strengths-cards>.item>.eyebrow{grid-area:2 / 1 / 3 / -1}
.home .strengths-cards>.item>h3{grid-area:3 / 1 / 4 / -1}
.home .strengths-cards>.item>p:nth-child(4){grid-area:4 / 1 / 5 / -1}
.home .strengths-cards>.item>p:nth-last-child(2){grid-area:1 / 2 / 2 / 3}
.home .strengths-cards>.item>p:last-child{grid-area:1 / 3 / 2 / 4}
.home .strengths-cards>.item>p:nth-last-child(-n+2){margin:0;align-self:center;font-size:14px;white-space:nowrap}
@media(max-width:767px){
 .home .strengths-cards>.item>p:nth-last-child(-n+2){font-size:12px}
}

/* ABOUT hero: subtitle, heading and description enter as a single still group. */
.about-hero-copy h1 .source-line{animation:none}
.about-hero-copy.about-hero-enter{
 animation:mociOpacity 2.4s ease .2s both,mociClarity 2.6s ease .2s both;
}
@media(prefers-reduced-motion:reduce){
 .about-hero-copy.about-hero-enter{animation:none!important;opacity:1;filter:none;translate:none}
}

/* ABOUT greeting: full container width, centered text and one retained signature. */
.message-layout{display:block;text-align:center}
.message-layout>.message-copy{width:100%;max-width:none;margin:0}
.message-layout>.message-copy>.section-heading{max-width:none;text-align:center}
.message-layout>.message-identity{width:100%;max-width:none;margin:35px 0 0;text-align:center}
.message-layout>.message-identity>.eyebrow{margin:0 0 12px}
.message-layout>.message-identity>.signature{margin:0;text-align:center}

/* ABOUT message: requested continuous heading, readable natural mobile wrapping. */
.message-layout>.message-copy>.section-heading h2{white-space:normal}
.message-layout>.message-copy>.section-heading h2>.source-line{display:inline;white-space:inherit}
@media(min-width:768px){.message-layout>.message-copy>.section-heading h2{white-space:nowrap}}

/* ABOUT greeting: one 18px rise / 3s fade for body and retained signature. */
.message-body-rise>.message-identity{width:100%;max-width:none;margin:35px 0 0;text-align:center}
.message-body-rise>.message-identity>.eyebrow{margin:0 0 12px}
.message-body-rise>.message-identity>.signature{margin:0;text-align:center}
.message-body-rise.body-reveal-message.body-reveal-enter,
.page-hero .services-hero-intro.body-reveal-message.body-reveal-enter,
.service-body-rise.body-reveal-message.body-reveal-enter{
 animation-name:blogRevealSlide,blogRevealOpacity;
 animation-duration:2.2s,3s;
 animation-timing-function:cubic-bezier(.22,1,.36,1),ease-in-out;
}

/* Ordered facts: hide only after observation is installed; no-JS stays visible. */
.section>.wrap>.stats>.item.stats-wait{opacity:0}
.section>.wrap>.stats>.item.stats-enter{
 animation:blogRevealSlide 2.2s cubic-bezier(.22,1,.36,1) both,blogRevealOpacity 3s ease-in-out both;
 animation-delay:var(--stats-delay,0s);
}
@media(prefers-reduced-motion:reduce){
 .section>.wrap>.stats>.item.stats-wait,.section>.wrap>.stats>.item.stats-enter{animation:none!important;opacity:1;translate:none}
}
/* Section palette: quiet white / water blue / sage / warm stone / cool gray.
   Paint only: leave all section dimensions, typography, gold rules and shadows
   unchanged. Hero photography and the photographic strengths band are exempt. */
main > .section:not(.strengths-section):not(.photo-section):nth-of-type(5n + 2) {
  background-color:#ffffff;
}
main > .section:not(.strengths-section):not(.photo-section):nth-of-type(5n + 3) {
  background-color:#e5efe3;
}
main > .section:not(.strengths-section):not(.photo-section):nth-of-type(5n + 4) {
  background-color:#e5efe3;
}
main > .section:not(.strengths-section):not(.photo-section):nth-of-type(5n + 5) {
  background-color:#e5efe3;
}
main > .section:not(.strengths-section):not(.photo-section):nth-of-type(5n + 6) {
  background-color:#e5efe3;
}
/* The service descriptions and blog archive are existing semantic subsections.
   These fills don't add wrappers, gutters, borders, or layout changes. */
main .service-list .service-feature:nth-child(4n + 1) { background-color:#ffffff; }
main .service-list .service-feature:nth-child(4n + 2) { background-color:#e5efe3; }
main .service-list .service-feature:nth-child(4n + 3) { background-color:#e5efe3; }
main .service-list .service-feature:nth-child(4n + 4) { background-color:#e5efe3; }
main .archive-section { background-color:#e5efe3; }
/* Footer contact and company/navigation remain two distinct existing bands. */
.site-footer { background-color:#e5efe3; }
.site-footer .footer-grid { background-color:#e5efe3; }

/* Exact direct-child compatibility for semantic article grouping. */
.article-body > :is(.article-intro,.article-section) >p{white-space:pre-wrap;margin:20px 0}
.article-body > :is(.article-intro,.article-section) >.photo{margin:48px 0}
.article-body > :is(.article-intro,.article-section) >.photo{margin:32px 0}
.article-body > :is(.article-intro,.article-section) >.photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:cover}
.article-body > :is(.article-intro,.article-section) >.photo{margin:1.5em 0 0}
.article-body > .article-intro >.photo:first-child{margin-top:0}
.article-body > :is(.article-intro,.article-section) >.photo img{aspect-ratio:var(--source-aspect);object-fit:cover}
main .article-body > :is(.article-intro,.article-section) >ul,
main .article-body > :is(.article-intro,.article-section) >ol{
 box-shadow:0 2px 5px rgba(0,0,0,.035),0 6px 14px rgba(0,0,0,.055);
}
main .article-body > :is(.article-intro,.article-section) >.photo[data-article-photo-even]{
 box-shadow:0 0 0 5px #fff,0 0 0 6px #e3e0d3,0 12px 26px rgba(26,29,26,.12);
}
/* Each article's h2-delimited section receives one quiet reading surface. */
main .article-body > .article-intro { background-color:#ffffff; }
main .article-body > .article-section:nth-of-type(5n + 2) { background-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 3) { background-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 4) { background-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 5) { background-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 6) { background-color:#ffffff; }
/* Short interior pages finish on blue; give the following contact band white. */
body:has(main > .section:nth-of-type(5n + 3):last-child) .site-footer {
  background-color:#ffffff;
}

/* Full-width section paint, independent from width-constrained content.
   A separate pseudo layer keeps existing card/photo shadows intact. The spread
   is clipped vertically, never horizontally; it does not create scroll width.
   No card selectors, dimensions, margins, padding or animation are changed. */
main .service-list .service-feature:nth-child(4n + 1) { --section-band-color:#ffffff; }
main .service-list .service-feature:nth-child(4n + 2) { --section-band-color:#e5efe3; }
main .service-list .service-feature:nth-child(4n + 3) { --section-band-color:#e5efe3; }
main .service-list .service-feature:nth-child(4n + 4) { --section-band-color:#e5efe3; }
main .archive-section { --section-band-color:#e5efe3; }
.site-footer .footer-grid { --section-band-color:#e5efe3; }
main .article-body > .article-intro { --section-band-color:#ffffff; }
main .article-body > .article-section:nth-of-type(5n + 2) { --section-band-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 3) { --section-band-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 4) { --section-band-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 5) { --section-band-color:#e5efe3; }
main .article-body > .article-section:nth-of-type(5n + 6) { --section-band-color:#ffffff; }
.site-footer .footer-grid,
main .service-list .service-feature,
main .archive-section,
main .article-body > .article-intro,
main .article-body > .article-section {
 position:relative;
 isolation:isolate;
}
.site-footer .footer-grid::before,
main .service-list .service-feature::before,
main .archive-section::before,
main .article-body > .article-intro::before,
main .article-body > .article-section::before {
 content:"";
 position:absolute;
 inset:0;
 z-index:-1;
 pointer-events:none;
 background:var(--section-band-color);
 box-shadow:0 0 0 100vmax var(--section-band-color);
 clip-path:inset(0 -100vmax);
}

/* ABOUT: two independent bands with the standard section rhythm. */
/* Stats band keeps its source card padding; no bottom-padding reset. */
main > .section.about-message:not(.strengths-section):not(.photo-section) { background-color:#e5efe3; }
main > .section.about-reasons:not(.strengths-section):not(.photo-section) { background-color:#e5efe3; }

/* Ordered facts: hide only after observation is installed; no-JS stays visible. */
.warranty-cards>.item.stats-wait,.services-pricing .prices>.item.stats-wait,.services-pricing .warranty-layout.stats-wait,.knowledge-sign-panel.stats-wait,.knowledge-prevention-panel.stats-wait,.knowledge-species-panel.stats-wait{opacity:0}
.warranty-cards>.item.stats-enter,
.services-pricing .prices>.item.stats-enter,
.services-pricing .warranty-layout.stats-enter,
.knowledge-sign-panel.stats-enter,.knowledge-prevention-panel.stats-enter,.knowledge-species-panel.stats-enter{
 animation:blogRevealSlide 2.2s cubic-bezier(.22,1,.36,1) both,blogRevealOpacity 3s ease-in-out both;
 animation-delay:var(--stats-delay,0s);
}
@media(prefers-reduced-motion:reduce){
 .warranty-cards>.item.stats-wait,.warranty-cards>.item.stats-enter,.services-pricing .prices>.item.stats-wait,.services-pricing .prices>.item.stats-enter,.services-pricing .warranty-layout.stats-wait,.services-pricing .warranty-layout.stats-enter,.knowledge-sign-panel.stats-wait,.knowledge-sign-panel.stats-enter,.knowledge-prevention-panel.stats-wait,.knowledge-prevention-panel.stats-enter,.knowledge-species-panel.stats-wait,.knowledge-species-panel.stats-enter{animation:none!important;opacity:1;translate:none}
}

/* ABOUT promise and warranty cards: quiet frames with distinct hover accents. */
.about-reasons>.wrap>.grid>.item,
.warranty-cards>.item{
 border:1px solid #e3e0d3;
 padding:24px;
 transition:border-color .35s ease;
}
.about-reasons>.wrap>.grid>.item:hover,
.about-reasons>.wrap>.grid>.item:focus-within{border-color:#2e6e47}
.warranty-cards>.item{border-color:#e3e0d3}
.warranty-cards>.item:hover,
.warranty-cards>.item:focus-within{border-color:#1f4733}
/* HISTORY: one continuous desktop heading, natural wrapping on phones. */
.section-heading:has(>#history){max-width:none}
.section-heading:has(>#history)>h2>.source-line{display:inline;white-space:inherit}
@media(min-width:768px){.section-heading:has(>#history)>h2{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){
 .about-reasons>.wrap>.grid>.item,.warranty-cards>.item{transition:none}
}

/* Ordered facts: hide only after observation is installed; no-JS stays visible. */
.about-company-table>div.company-wait{opacity:0}
.about-company-table>div.company-enter{
 animation:blogRevealSlide 2.2s cubic-bezier(.22,1,.36,1) both,blogRevealOpacity 3s ease-in-out both;
 animation-delay:var(--company-delay,0s);
}
@media(prefers-reduced-motion:reduce){
 .about-company-table>div.company-wait,.about-company-table>div.company-enter{animation:none!important;opacity:1;translate:none}
}

/* The user-confirmed consultation office address, directly below its note. */
.consultation-map{margin-top:32px;width:100%}
.consultation-map>iframe{display:block;width:100%;height:450px;max-width:100%;border:0}
@media(max-width:767px){.consultation-map>iframe{height:320px}}

/* ABOUT introduction: keep the approved sentence break, with room for both desktop lines. */
@media(min-width:768px){.about-hero-copy>.intro{max-width:40em}}

/* ABOUT WHY NAGAMATSU: fixed watercolor with the live MOCI company white veil.
   Reference style.css?v=18: rgba(255,255,255,.78), center/cover, no blur.
   Keep the existing section height/padding and all text animations unchanged. */
.about-facts{position:relative;isolation:isolate;overflow:hidden}
.about-facts-background{position:absolute;inset:0;z-index:0;pointer-events:none;background:#fff url("../images/modern-japanese-house-watercolor.webp") center center/cover no-repeat;background-attachment:fixed}
.about-facts-background::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(255,255,255,.78)}
.about-facts>.wrap{position:relative;z-index:1}
/* Touch browsers can ignore background-attachment:fixed. Clip a viewport-fixed
   paint layer instead; keep a safe local cover image if clipping is unsupported. */
@media(max-width:900px){
 .about-facts-background{background-attachment:scroll}
 @supports(clip-path:inset(0)){
  .about-facts{clip-path:inset(0);overflow:visible}
  .about-facts-background{background-image:none}
  .about-facts-background::before{content:"";position:fixed;inset:0;z-index:0;background:url("../images/modern-japanese-house-watercolor.webp") center center/cover no-repeat;pointer-events:none}
 }
}
@media(prefers-reduced-motion:reduce){
 .about-facts-background{background-attachment:scroll}
 .about-facts-background::before{position:absolute}
}
/* The five requested ABOUT heading groups only. Cards/rows keep their alignment. */
.about-facts>.wrap>.section-heading,
.about-reasons>.wrap>.section-heading,
.section-heading:has(+.warranty-cards),
.section-heading:has(>#history),
.section-heading:has(>#company){max-width:none;text-align:center}
.about-facts>.wrap>.section-heading>.intro{max-width:none}
.about-facts>.wrap>.section-heading>h2>.source-line,
.about-reasons>.wrap>.section-heading>h2>.source-line{display:inline;white-space:inherit}
@media(min-width:768px){
 .about-facts>.wrap>.section-heading>h2,
 .about-reasons>.wrap>.section-heading>h2{white-space:nowrap}
}
/* Preserve the readable font size. The 59-character sentence fits full-width
   desktop content; narrower screens may wrap naturally rather than overflow. */
@media(min-width:1200px){.about-facts>.wrap>.section-heading>.intro{white-space:nowrap}}

/* v75: the HOME header is the common header on all fourteen pages.
   In-flow sticky geometry replaces the old 72/88px fixed interior header. */
:is(.home,.interior,.article-page) .site-header{
 position:sticky;inset:auto;top:0;height:100px;padding:0 4.2%;
 transition:background .3s,border-color .3s,box-shadow .3s;
}
:is(.home,.interior,.article-page) .site-header:not(.is-scrolled){
 background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;transition:none;
}
:is(.home,.interior,.article-page) .site-header.is-scrolled{
 background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
 box-shadow:none;border-bottom-color:transparent;
}
@supports not ((backdrop-filter:blur(6px)) or (-webkit-backdrop-filter:blur(6px))){
 :is(.home,.interior,.article-page) .site-header.is-scrolled{background:rgba(255,255,255,.97)}
}
@media(max-width:1023px){
 :is(.home,.interior,.article-page) .site-header{height:80px;padding:0 6%}
 :is(.home,.interior,.article-page) .site-header nav{
  top:100%;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);overscroll-behavior:contain;
 }
}
@media(prefers-reduced-motion:reduce){
 :is(.home,.interior,.article-page) .site-header{transition:none}
}
/* Remove only the obsolete fixed-header allowance (88-72 / 112-88).
   Existing hero content padding, photos, motion and all other geometry remain. */
.interior .page-hero,.article-page .article-hero{padding-top:16px}
@media(min-width:768px){
 .interior .page-hero,.article-page .article-hero{padding-top:24px}
}

/* ABOUT history: fixed photo with the live MOCI company white veil.
   Reference style.css?v=18: rgba(255,255,255,.78), center/cover, no blur.
   Keep the existing section height/padding and all text animations unchanged. */
.about-history{position:relative;isolation:isolate;overflow:hidden}
.about-history-background{position:absolute;inset:0;z-index:0;pointer-events:none;background:#fff url("../images/history-neighborhood-photo.webp") center center/cover no-repeat;background-attachment:fixed}
.about-history-background::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(255,255,255,.78)}
.about-history>.wrap{position:relative;z-index:1}
/* Touch browsers can ignore background-attachment:fixed. Clip a viewport-fixed
   paint layer instead; keep a safe local cover image if clipping is unsupported. */
@media(max-width:900px){
 .about-history-background{background-attachment:scroll}
 @supports(clip-path:inset(0)){
  .about-history{clip-path:inset(0);overflow:visible}
  .about-history-background{background-image:none}
  .about-history-background::before{content:"";position:fixed;inset:0;z-index:0;background:url("../images/history-neighborhood-photo.webp") center center/cover no-repeat;pointer-events:none}
 }
}
@media(prefers-reduced-motion:reduce){
 .about-history-background{background-attachment:scroll}
 .about-history-background::before{position:absolute}
}

/* SERVICES: give each full-width color band the standard section breathing room. */
main > .section.service-list{padding-block:0}
main .service-list .service-feature{padding-block:110px}
main .service-list .service-feature + .service-feature{margin-top:0}
@media(max-width:800px){
 main .service-list .service-feature{padding-block:70px}
}

/* SERVICES pricing: soft depth on the five whole panels, without changing geometry. */
main .services-pricing .prices>.item,
main .services-pricing .warranty-layout{
 box-shadow:0 12px 28px rgba(0,0,0,.18),0 3px 8px rgba(0,0,0,.11);
}

/* SERVICES prices: keep each numeric amount and its original-sized unit on one line.
   Removing the extra paragraph lets both equal-width grid cards share a compact row. */
.services-pricing .prices>.item{min-width:0}
.services-pricing .prices .price-inline{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.services-pricing .prices .price-unit{font:400 15px/2.1 var(--sans);color:var(--ink)}
@media(max-width:800px){
 .services-pricing .prices .price-unit{font-size:14px}
}

/* FREE INSPECTION: one shared section scale across all fourteen pages.
   Preserve eyebrow hierarchy and whole-column motion; let button copy wrap safely. */
:is(.home,.interior,.article-page) .footer-cta{grid-template-columns:repeat(2,minmax(0,1fr))}
:is(.home,.interior,.article-page) .footer-cta>div{min-width:0}
:is(.home,.interior,.article-page) .footer-cta>div:first-child>h2{font-size:clamp(37px,3.2vw,46px)}
:is(.home,.interior,.article-page) .footer-cta>div:first-child>p:not(.eyebrow){font-size:18px;line-height:2.1}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a{grid-template-columns:56px minmax(0,1fr);column-gap:18px;padding:16px 20px}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a::before{width:56px;height:56px;background-size:29px 37px}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>small:first-child{font-size:14px}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>strong{font-size:clamp(30px,2.5vw,36px);white-space:nowrap}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>small:nth-child(3){font-size:16px}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2){grid-template-columns:40px minmax(0,1fr);column-gap:16px;padding:16px 20px}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)::before{width:40px;height:40px;background-size:contain}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)>small{font-size:16px}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)>strong{font-size:22px}
@media(max-width:1023px){
 :is(.home,.interior,.article-page) .footer-cta{grid-template-columns:minmax(0,1fr);gap:36px}
}
@media(max-width:800px){
 :is(.home,.interior,.article-page) .footer-cta>div:first-child>h2{font-size:34px}
}
@media(max-width:480px){
 :is(.home,.interior,.article-page) .footer-cta>div:first-child>h2{font-size:32px}
 :is(.home,.interior,.article-page) .footer-cta>div:first-child>p:not(.eyebrow){font-size:17px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a{grid-template-columns:40px minmax(0,1fr);column-gap:10px;padding:12px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a::before{width:40px;height:40px;background-size:25px 32px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>strong{font-size:clamp(22px,6vw,28px)}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a>small:nth-child(3){font-size:15px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2){grid-template-columns:36px minmax(0,1fr);column-gap:12px;padding:12px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)::before{width:36px;height:36px;background-size:contain}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a:nth-child(2)>strong{font-size:20px}
}

/* Keep the requested three footer copy lines at desktop widths. */
@media(min-width:1024px){
 :is(.home,.interior,.article-page) .footer-cta{grid-template-columns:minmax(520px,1fr) minmax(0,1fr);column-gap:min(12%,calc(100% - 850px))}
}

/* KNOWLEDGE emergency: original-site left copy / right contact arrangement. */
main .note.knowledge-sign-panel{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 align-items:center;
 gap:24px 40px;
 background:#e5efe3;
}
main .note.knowledge-sign-panel .emergency-copy{min-width:0}
main .note.knowledge-sign-panel .emergency-copy h3{margin-bottom:0}
main .note.knowledge-sign-panel .eyebrow{
 -webkit-text-stroke:2px #fff;
 paint-order:stroke fill;
 text-shadow:1px 0 #fff,-1px 0 #fff,0 1px #fff,0 -1px #fff;
}
main .note.knowledge-sign-panel .emergency-contact{min-width:0;justify-self:end}
main .note.knowledge-sign-panel .emergency-contact-label{white-space:nowrap}
main .note.knowledge-sign-panel .phone{font-size:35px;white-space:nowrap}
@media(max-width:767px){
 main .note.knowledge-sign-panel{grid-template-columns:minmax(0,1fr);gap:20px;padding:24px}
 main .note.knowledge-sign-panel .emergency-contact{justify-self:start;max-width:100%}
 main .note.knowledge-sign-panel .phone{font-size:clamp(23px,6.4vw,35px)}
}

/* KNOWLEDGE emergency: compact content-width panel centered in its section. */
main .note.knowledge-sign-panel{
 width:fit-content;
 max-width:100%;
 margin-inline:auto;
 column-gap:32px;
}

/* v89: knowledge section titles use the service-scale ceiling; retain smaller widths. */
.knowledge-page main>.section>.wrap>.section-heading>h2{font-size:clamp(30px,3.2vw,36px)}

/* Keep the two species cards together; match the existing 18px rise / 3s fade. */
.knowledge-page main .species-grid>.item.body-reveal-rise.body-reveal-enter{
 animation-name:blogRevealSlide,blogRevealOpacity;
 animation-duration:2.2s,3s;
 animation-timing-function:cubic-bezier(.22,1,.36,1),ease-in-out;
}

/* KNOWLEDGE signs: equal-height rows and vertically centered number/text. */
.knowledge-page .signs.warning-grid{grid-auto-rows:1fr}
.knowledge-page .signs.warning-grid>.knowledge-sign-panel{align-items:center}

/* KNOWLEDGE species: hover scales the entire framed card, never the image alone. */
.knowledge-page .species-grid>.knowledge-species-panel .photo:hover img{transform:none}
@media(hover:hover) and (pointer:fine){
 .knowledge-page .species-grid>.knowledge-species-panel{scale:1;transition:scale .18s ease}
 .knowledge-page .species-grid>.knowledge-species-panel:hover{scale:1.02}
}
@media(prefers-reduced-motion:reduce){
 .knowledge-page .species-grid>.knowledge-species-panel{scale:none!important;transition:none!important}
}

/* KNOWLEDGE signs: gently enlarge each whole card, matching the species hover. */
@media(hover:hover) and (pointer:fine){
 .knowledge-page .signs.warning-grid>.knowledge-sign-panel{scale:1;transition:scale .18s ease}
 .knowledge-page .signs.warning-grid>.knowledge-sign-panel:hover{scale:1.03}
}
@media(prefers-reduced-motion:reduce){
 .knowledge-page .signs.warning-grid>.knowledge-sign-panel{scale:none!important;transition:none!important}
}

/* v97: balance both species descriptions and keep distribution text together. */
.knowledge-page .species-grid .company-table{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
@media(min-width:1024px){
 .knowledge-page .species-grid>.knowledge-species-panel:nth-child(even){grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
}
@media(max-width:767px){
 .knowledge-page .species-grid .company-table>div:first-child{grid-column:1/-1}
}

/* KNOWLEDGE daily prevention: same fixed watercolor and white veil as ABOUT. */
.knowledge-prevention{position:relative;isolation:isolate;overflow:hidden}
.knowledge-prevention-background{position:absolute;inset:0;z-index:0;pointer-events:none;background:#fff url("../images/daily-prevention-watercolor.webp") center center/cover no-repeat;background-attachment:fixed}
.knowledge-prevention-background::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(255,255,255,.78)}
.knowledge-prevention>.wrap{position:relative;z-index:1}
/* Touch browsers can ignore background-attachment:fixed. Clip a viewport-fixed
   paint layer instead; keep a safe local cover image if clipping is unsupported. */
@media(max-width:900px){
 .knowledge-prevention-background{background-attachment:scroll}
 @supports(clip-path:inset(0)){
  .knowledge-prevention{clip-path:inset(0);overflow:visible}
  .knowledge-prevention-background{background-image:none}
  .knowledge-prevention-background::before{content:"";position:fixed;inset:0;z-index:0;background:url("../images/daily-prevention-watercolor.webp") center center/cover no-repeat;pointer-events:none}
 }
}
@media(prefers-reduced-motion:reduce){
 .knowledge-prevention-background{background-attachment:scroll}
 .knowledge-prevention-background::before{position:absolute}
}

/* v99: keep article breathing room inside each full-width color band.
   Padding prevents child margin collapse; adjacent bands remain continuous. */
main .article-body > .article-section {
 display:flow-root;
 margin-block:0;
 padding-block:clamp(40px,5vw,64px);
}
main .article-body > .article-intro {
 display:flow-root;
 padding-bottom:clamp(40px,5vw,64px);
}
main .article-body > .article-section > :first-child {
 margin-top:0;
}
main .article-body > :is(.article-intro,.article-section) > :last-child {
 margin-bottom:0;
}

/* v100: blog frames and all their contents enlarge as one surface.
   Only framed article children are selected; reading bands and heroes stay still. */
main .blog-card .photo:hover img,
.article-page .article-body .photo:hover img{transform:none}
/* The table-of-contents control stays inside its single enlarged frame. */
.article-page .article-body .toc button{scale:1!important}
@media(hover:hover) and (pointer:fine){
 main .blog-card,
 .article-page .article-body>:is(.article-intro,.article-section)>:is(.photo,.toc,.article-point,.table-wrap,ul,ol){scale:1;transition:scale .18s ease}
 main .blog-card:hover,
 .article-page .article-body>:is(.article-intro,.article-section)>:is(.photo,.toc,.article-point,.table-wrap,ul,ol):hover{scale:1.02}
}
@media(prefers-reduced-motion:reduce){
 main .blog-card,
 .article-page .article-body>:is(.article-intro,.article-section)>:is(.photo,.toc,.article-point,.table-wrap,ul,ol){scale:none!important;transition:none!important}
}

/* Archive titles share one size; keep full text within two readable lines. */
.blog-grid.archive .blog-card>h3{font-size:16px}
@media(min-width:768px) and (max-width:1099px){
 .grid.blog-grid.archive{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:374px){
 .blog-grid.archive .blog-card>h3{font-size:14px;margin-left:20px;margin-right:20px}
}

/* v104: reserve both requested Blog introduction lines without shrinking type. */
.page-hero .blog-hero-intro{max-width:none}
@media(min-width:768px){
 .page-hero .blog-hero-intro{white-space:nowrap}
}
/* Featured keeps its image/layout; use the existing inset for a wider title. */
main .featured.blog-card h2{font-size:clamp(16px,calc((100vw - 106px)/17),26px);white-space:nowrap}
@media(min-width:768px){
 main .featured.blog-card h2{font-size:26px}
}
@media(min-width:1024px){
 main .featured.blog-card h2{font-size:clamp(20px,2vw,26px);margin-inline:-24px}
}
@media(max-width:374px){
 main .featured.blog-card h2{font-size:14px;margin-inline:-12px}
}
/* All seven archive titles grow together, using the longest title's budget. */
.blog-grid.archive .blog-card>h3{font-size:clamp(16px,calc((100vw - 90px)/17.1),19px)}
@media(min-width:768px){
 .blog-grid.archive .blog-card>h3{font-size:clamp(16px,calc((50vw - 106px)/17.1),19px)}
}
@media(min-width:1100px){
 .blog-grid.archive .blog-card>h3{font-size:clamp(16px,calc((33.333333vw - 98px)/17.1),19px)}
}
@media(max-width:374px){
 .blog-grid.archive .blog-card>h3{font-size:14px}
}

/* v106: keep archive bottom breathing room within its green band. */
main > .blog-content-section{padding-bottom:0}
main > .blog-content-section > .wrap > .archive-section{padding-bottom:110px}
@media(max-width:800px){
 main > .blog-content-section > .wrap > .archive-section{padding-bottom:70px}
}

/* v107: give the archive heading space inside its green background. */
main > .blog-content-section > .wrap > .archive-section{padding-top:80px}
@media(max-width:800px){
 main > .blog-content-section > .wrap > .archive-section{padding-top:48px}
}

/* v128: restore the requested two-line article title to its original left alignment. */
.article-hero h1.pest-intrusion-title{text-align:left}

/* Shared article design: gold headings and verified original emphasis passages. */
main .article-body > .article-section > :is(h2.article-heading,h3.article-subheading){color:var(--gold)}
main .article-body .article-hero-marker{
 color:inherit;background:linear-gradient(transparent 76%,#e3e0d3 76%,#e3e0d3 94%,transparent 94%);
 padding:0;-webkit-box-decoration-break:clone;box-decoration-break:clone;
}
main .article-body > .article-section:nth-of-type(2n + 1) .article-hero-marker{
 background:linear-gradient(transparent 76%,#e3e0d3 76%,#e3e0d3 94%,transparent 94%);
}

/* v128: restore this article’s metadata and byline to their original left alignment. */
.article-hero > .pest-intrusion-hero-copy{text-align:left}

/* v137: one article parent owns its frame, title/copy and inline contents.
   Start fully transparent; viewport entry begins the shared fade without a queue. */
main .article-body .source-line{animation:none}
.article-body > :is(.article-intro,.article-section) > .article-surface-wait{opacity:0}
.article-body > :is(.article-intro,.article-section) > .article-surface-enter{
 animation:articleSurfaceOpacity 1.5s ease-in-out both,blogRevealSlide 1.1s cubic-bezier(.22,1,.36,1) both;
 will-change:translate,opacity;
}
.article-body > :is(.article-intro,.article-section) > :is(h2,h3,.photo).article-surface-enter{
 animation:articleSurfaceOpacity 1.5s ease-in-out both,articleSurfaceClarity 1.5s ease-in-out both;
 will-change:filter,opacity;
}
@keyframes articleSurfaceOpacity{from{opacity:0}to{opacity:1}}
@keyframes articleSurfaceClarity{from{filter:blur(2px)}to{filter:blur(0)}}
@media(prefers-reduced-motion:reduce){
 .article-body > :is(.article-intro,.article-section) > :is(.article-surface-wait,.article-surface-enter){animation:none!important;opacity:1;translate:none;filter:none}
}

/* v113: chapter photographs and contrasting article callout surfaces. */
main .article-body > .article-section:nth-of-type(5n + 2){--article-box-color:#e5efe3;--article-box-border:#e3e0d3}
main .article-body > .article-section:nth-of-type(5n + 3){--article-box-color:#e5efe3;--article-box-border:#e3e0d3}
main .article-body > .article-section:is(:nth-of-type(5n + 2),:nth-of-type(5n + 3)) > :is(.article-point,ul,ol),
main .article-body > .article-section:is(:nth-of-type(5n + 2),:nth-of-type(5n + 3)) .table-wrap th{
 background:var(--article-box-color);border-color:var(--article-box-border);
}
main .article-body > .article-section:is(:nth-of-type(5n + 2),:nth-of-type(5n + 3)) .table-wrap td{border-color:var(--article-box-border)}
/* v137: opaque table bodies stay separate from each reading band.
   White bands use the established pale blue; tinted bands use white. */
main .article-body > :is(.article-intro,.article-section){--article-table-body:#fff}
main .article-body > .article-intro,
main .article-body > .article-section:nth-of-type(5n + 6){--article-table-body:#e5efe3}
main .article-body > :is(.article-intro,.article-section) .table-wrap td{background:var(--article-table-body)}
main .article-body{margin-bottom:0}
main .article-body > .article-section:last-child{padding-bottom:calc(clamp(40px,5vw,64px) + 110px)}
main .article-body .article-closing-heading{font-size:clamp(22px,2.35vw,30px)}
.article-body .article-web-link{display:inline-flex;align-items:center;gap:12px;max-width:100%;overflow-wrap:anywhere}
.article-body .article-web-link::after{content:none}
.article-body .article-link-icon{width:20px;height:20px;flex:0 0 20px}
.article-body .article-closing-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}
.article-body .article-closing-button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 20px;border:1px solid var(--gold);background:#fff;font-size:16px;color:var(--ink);scale:1;transition:scale .18s ease}
.article-body .article-closing-phone{font-family:var(--serif);font-size:20px;color:var(--deep)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.article-body .article-closing-button:hover{scale:1.04}}
@media(max-width:480px){.article-body .article-closing-actions{flex-direction:column}.article-body .article-closing-button{width:100%}}
@media(prefers-reduced-motion:reduce){.article-body .article-closing-button{scale:none!important;transition:none!important}}

/* Closing navigation stays usable independently of the article reveal queue. */
main .article-body > .article-section > .article-closing-actions,
main .article-body .article-closing-actions > .article-closing-button{
 opacity:1!important;visibility:visible!important;animation:none!important;translate:none!important;
}

/* All article TOCs: keep the frame still; enlarge only its show-all button. */
.article-page .article-body .toc{scale:1!important}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .article-page .article-body .toc .toc-open:hover{scale:1.06!important}
}
@media(prefers-reduced-motion:no-preference){
 .article-page .article-body .toc .toc-open:focus-visible{scale:1.06!important}
}

/* v120: match chapter three’s reading-band color on the show-all control. */
.article-page .article-body .toc .toc-open{background:#e5efe3}

/* v121: wider reading columns and shallow photographs across all eight articles. */
.article-page main > .article-body{max-width:1200px}
.article-page main > .article-body > :is(.article-intro,.article-section) > .photo img{
 width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center;
}
.article-page main > .article-body > .article-section > h2.article-heading{
 width:100%;max-width:none;margin-inline:auto;text-align:left;font-size:28px;
}
@media(min-width:768px){
 .article-page main > .article-body > :is(.article-intro,.article-section) > .photo img{aspect-ratio:2.7}
 .article-page main > .article-body > .article-section > h2.article-heading{font-size:clamp(30px,3vw,36px)}
 .article-page main > .article-body > :is(.article-intro,.article-section) > .photo img[src$="/arrival.webp"]{object-position:center 20%}
}

/* v122: text-only article frames follow their content instead of the reading column. */
.article-page main > .article-body > :is(.article-intro,.article-section) > :is(.article-point,ul,ol){
 width:fit-content;max-width:100%;min-width:0;
 justify-self:start;align-self:flex-start;overflow-wrap:anywhere;
}

/* v123: breathing room around article photographs and before the contents frame.
   Adjacent block margins collapse to the larger value, rather than adding up.
   Keep first/last edges unchanged so the color-band padding stays in control. */
.article-page main > .article-body > :is(.article-intro,.article-section) > .photo:not(:first-child){margin-top:40px}
.article-page main > .article-body > :is(.article-intro,.article-section) > .photo:not(:last-child){margin-bottom:40px}
.article-page main > .article-body > :is(.article-intro,.article-section) > .toc:not(:first-child){margin-top:112px}
.article-page main > .article-body > :is(.article-intro,.article-section) > .toc:not(:last-child){margin-bottom:112px}
@media(max-width:767px){
 .article-page main > .article-body > :is(.article-intro,.article-section) > .photo:not(:first-child){margin-top:32px}
 .article-page main > .article-body > :is(.article-intro,.article-section) > .photo:not(:last-child){margin-bottom:32px}
 .article-page main > .article-body > :is(.article-intro,.article-section) > .toc:not(:first-child){margin-top:96px}
 .article-page main > .article-body > :is(.article-intro,.article-section) > .toc:not(:last-child){margin-bottom:96px}
}

/* BLOG: remove the empty FEATURED band when filtering or on page two. */
main > .blog-content-section:has(.featured[hidden]){padding-top:0}
main > .blog-content-section > .wrap:has(> .featured[hidden]) > .archive-section{margin-top:0}

/* v146: opaque pale-blue archive cards contrast with the sage archive band. */
main .archive-section .blog-card{background-color:#e5efe3}

/* v148: independent contact links, with icon and copy scaling as one. */
.contact-methods > a.contact-social-button{
 display:block;min-width:0;padding:24px;border:1px solid var(--line);border-radius:18px;
 background:#fff;color:var(--ink);scale:1;transform-origin:center;
 transition:scale .18s ease;
}
.contact-methods > .contact-social-button > .eyebrow{margin:0 0 24px}
.contact-methods > .contact-social-button > .contact-social-icon{
 display:block;width:44px;height:44px;margin:0 0 14px;object-fit:contain;
}
.contact-methods > .contact-social-button > .contact-line-icon{color:#06c755}
.contact-methods > .contact-social-button > h3{margin:0 0 6px}
.contact-methods > .contact-social-button > .contact-social-handle{margin:0;padding:0 0 6px}
.contact-methods > .contact-social-button > p:last-child{margin:12px 0 0}
@media(hover:hover) and (pointer:fine){
 .contact-methods > a.contact-social-button:hover{scale:1.04}
 .pagination button[data-page-next]:not(:disabled):not([aria-disabled="true"]):hover{color:var(--gold);scale:1.12}
}
.contact-methods > a.contact-social-button:focus-visible{scale:1.04}
.pagination button[data-page-next]:not(:disabled):not([aria-disabled="true"]):focus-visible{color:var(--gold);scale:1.12}
@media(max-width:767px){.contact-methods > a.contact-social-button{padding:22px}}
@media(prefers-reduced-motion:reduce){
 .contact-methods > a.contact-social-button,
 .pagination button[data-page-next]{scale:1!important;transition:none!important}
}

/* v150: the telephone shares the contact card frame and 44px icon box. */
.contact-methods > .contact-phone-button > .contact-phone-icon{color:var(--gold)}

/* v152: keep the native subject select; give its chevron a balanced inset. */
form[data-contact-form] select#subject{
 -webkit-appearance:none;
 appearance:none;
 padding-right:50px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 7 6 6 6-6' fill='none' stroke='%231a1d1a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat:no-repeat;
 background-position:right 18px center;
 background-size:20px 20px;
}
@media (forced-colors:active){
 form[data-contact-form] select#subject{-webkit-appearance:auto;appearance:auto;background-image:none}
}

/* v155: center the CONTACT FAQ container; keep its text and rows left-aligned. */
main .contact-faq{margin-inline:auto}
main .contact-faq :is(.faq-question,.faq-answer)>:last-child{min-width:0}

/* v156: center the CONTACT FAQ heading block, preserving left-aligned text. */
main .section-heading:has(+ .contact-faq){margin-inline:auto}

/* v157: balance CONTACT access columns and reserve more room for the facts. */
main .access-grid > div{min-width:0}
@media(min-width:768px){
 main .access-grid .company-table > div{grid-template-columns:76px minmax(0,1fr);gap:16px}
}
@media(min-width:1024px){
 main .access-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px}
}

/* v158: center the six primary links on the header, independent of side widths. */
@media(min-width:1024px){
 .site-header{justify-content:center}
 .site-header>.brand{position:absolute;left:4.2%}
 .site-header #main-nav{position:static;flex-shrink:0;white-space:nowrap}
 .site-header #main-nav>.header-contact{position:absolute;right:4.2%}
 .site-header #main-nav>.header-phone{position:absolute;right:calc(4.2% + 146px)}
}

/* v159: one photo-backed hero on mobile; the approved desktop stays untouched. */
@media(max-width:1023px){
 .home .home-hero{height:auto;min-height:620px;padding-bottom:0}
 .home .home-hero>.hero-photo{display:block}
 .home .home-hero:after{display:block;background:linear-gradient(90deg,rgba(255,255,255,.88),rgba(255,255,255,.68) 58%,rgba(255,255,255,.38)),linear-gradient(0deg,rgba(255,255,255,.35),transparent 50%)}
 .home .home-hero>.hero-photo .hero-slide{object-position:58% center}
 .home .hero-copy{padding-top:36px;padding-bottom:40px}
 .home .hero-copy h1{font-size:clamp(28px,8.2vw,44px);line-height:1.65;margin:20px 0}
 .home .hero-copy .intro{font-size:15px;line-height:2.1;color:var(--ink)}
 .home .hero-mobile-photo{display:none;margin-top:18px;max-width:none}
 .home .hero-mobile-photo>.hero-slideshow{display:none}
 .home .hero-mobile-photo>.vertical-note{position:static;padding:0;background:transparent;font-size:15px;color:var(--ink)}
 .home .home-hero .hero-layout .contact-strip{margin-top:24px;gap:12px}
}
@media(max-width:600px){
 .home .home-hero .hero-layout .contact-strip{flex-direction:column;align-items:flex-start}
 .home .home-hero .contact-strip .hero-phone-button,
 .home .home-hero .hero-layout .contact-strip .hero-line-button{width:100%;max-width:340px;min-height:70px}
 .home .home-hero .contact-strip .eyebrow{font-size:11px;letter-spacing:0}
}
/* Mobile navigation: keep both contact actions inside the scrollable panel. */
@media(max-width:1023px){
 :is(.home,.interior,.article-page) .site-header #main-nav{
  top:100%;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);
  overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
  padding:20px 8% calc(32px + env(safe-area-inset-bottom,0px));
  scroll-padding-bottom:32px;overscroll-behavior:contain;
 }
 .site-header #main-nav>.header-phone{
  display:block!important;position:static;margin-top:20px;padding:12px 16px;
  border:1px solid var(--gold);border-radius:28px;text-align:center;
  min-height:64px;line-height:1.6;color:var(--deep);background:#fff;
 }
 .site-header #main-nav>.header-phone small{font-size:11px;line-height:1.6}
 .site-header #main-nav>.header-phone>span{font-size:22px;white-space:nowrap}
 .site-header #main-nav>.header-contact{
  position:static;display:block;margin-top:16px;padding:14px 16px;
  border:1px solid var(--gold);border-radius:28px;min-height:58px;text-align:center;
 }
}

/* v160: Keep mobile lateral reveals inside existing content gutters. Desktop unchanged. */
@media(max-width:1023px){
 main .body-reveal-left.body-reveal-enter,
 main .body-reveal-right.body-reveal-enter,
 main .service-feature .body-reveal-left.body-reveal-enter,
 main .service-feature .body-reveal-right.body-reveal-enter{
  --reveal-distance:18px;
 }
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links.inspection-enter{
  --reveal-distance:18px;
 }
}

/* v161: mobile contact shortcuts sit immediately left of the menu toggle. */
.mobile-header-contacts{display:none}
@media(max-width:1023px){
 .site-header>.mobile-header-contacts{display:flex;flex:0 0 88px;margin-left:auto;align-items:center}
 .site-header>.mobile-header-contacts>a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border-radius:50%}
 .site-header>.mobile-header-contacts .mobile-contact-icon{display:block;width:26px;height:26px}
 .site-header>.mobile-header-contacts>.mobile-header-phone{color:var(--gold)}
 .site-header>.mobile-header-contacts>.mobile-header-line{color:#06c755}
 .site-header>.mobile-header-contacts>a:focus-visible{outline-offset:0}
 .site-header>.menu-toggle{width:44px;height:44px;flex:0 0 44px}
 .site-header>.brand{min-width:0;max-width:calc(100% - 132px)}
 .home .home-hero .hero-layout .contact-strip{display:none}
 .home .home-hero{min-height:0}
}
@media(max-width:430px){
 :is(.home,.interior,.article-page) .site-header{padding-inline:12px}
 .site-header>.brand{gap:6px}
 .site-header>.brand img{width:clamp(32px,10vw,44px);height:clamp(32px,10vw,44px)}
 .site-header>.brand .brand-copy{font-size:clamp(16px,calc(4vw + 3.2px),18px);white-space:nowrap}
 .site-header>.brand .brand-copy small{font-size:clamp(7px,2vw,8px)}
}

/* v163: keep the requested three-line HOME strengths heading on mobile only. */
@media(max-width:1023px){
 .home .strengths-layout>div:first-child>.section-heading h2>.source-line{display:block;white-space:nowrap}
}

/* Mobile-only HOME STRENGTHS background. Desktop rules and original img stay intact.
   White veil exactly matches ABOUT WHY NAGAMATSU: rgba(255,255,255,.78), no blur.
   The supported fixed layer covers one viewport, never the full tall card section. */
@media(max-width:1023px){
 .home .strengths-section{background:#fff}
 .home .strengths-section>.strengths-photo{
  z-index:0;opacity:1;pointer-events:none;
  background:#fff url("../images/tools-mobile-portrait.webp") center center/cover no-repeat;
 }
 .home .strengths-section>.strengths-photo>img{display:none}
 .home .strengths-section>.strengths-photo::after{
  content:"";position:absolute;inset:0;z-index:1;background:rgba(255,255,255,.78);
 }
 .home .strengths-section>.strengths-layout{position:relative;z-index:1}
 @supports(clip-path:inset(0)){
  .home .strengths-section{clip-path:inset(0);overflow:visible}
  .home .strengths-section>.strengths-photo{background-image:none}
  .home .strengths-section>.strengths-photo::before{
   content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
   background:url("../images/tools-mobile-portrait.webp") center center/cover no-repeat;
  }
 }
}


/* Mobile HOME knowledge heading: preserve its two phrases on separate lines.
   Fit twelve full-width glyphs plus the existing .04em tracking inside the
   20px side gutters, with an additional 8px of breathing room below 431px. */
@media(max-width:1023px){
 .home .knowledge-heading h2>.source-line{display:block;white-space:nowrap}
}
@media(max-width:430px){
 .home .knowledge-heading h2{font-size:clamp(20px,calc((100vw - 48px)/12.48),30px)}
}

/* v164: reduce the HOME blog heading-to-image gap by one third on mobile.
   Keep the existing link, type, images, and desktop layout intact. */
@media(max-width:1023px){
 .home .home-blog>.wrap>.section-heading-row{row-gap:8px;margin-bottom:0}
 .home .home-blog>.wrap>.section-heading-row>.section-heading>h2{margin-bottom:0}
 .home .home-blog>.wrap>.blog-grid{margin-top:43.533333px}
}
@media(max-width:800px){
 .home .home-blog>.wrap>.blog-grid{margin-top:32.866667px}
}


/* FREE INSPECTION mobile: the requested sentence break; preserve approved desktop breaks. */
.footer-inspection-copy > .inspection-mobile-break, .phone-symbol-mobile{display:none}
@media(max-width:1023px){
 .footer-inspection-copy > .inspection-desktop-break{display:none}
 .footer-inspection-copy > .inspection-mobile-break{display:initial}
 .phone-symbol-desktop{display:none}
 .phone-symbol-mobile{display:inline}
 :is(.home,.interior,.article-page) .footer-cta > .footer-contact-links > a[href^="tel:"]::before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2025%2032%22%3E%3Ctext%20x%3D%2212.5%22%20y%3D%2225%22%20text-anchor%3D%22middle%22%20fill%3D%22white%22%20font-family%3D%22serif%22%20font-size%3D%2225%22%3E%E2%98%8E%EF%B8%8E%3C%2Ftext%3E%3C%2Fsvg%3E")}
}

/* Footer Instagram icon: reuse the contact-page artwork on desktop and mobile. */
.footer-social { align-items:center; gap:12px; }
.footer-social > .footer-instagram-icon {
  display:block;
  width:24px;
  height:24px;
  flex:0 0 24px;
  object-fit:contain;
}

/* v164: split the copyright association line on mobile only. */
.copyright .copyright-mobile-break{display:none}
@media(max-width:1023px){
 .copyright .copyright-mobile-break{display:initial}
}

/* Footer LINE: reuse the CONTACT icon beside its label on desktop and mobile. */
.footer-social.footer-line-social { align-items:center; gap:12px; }
.footer-line-social > .footer-line-icon {
  display:block;
  width:24px;
  height:24px;
  flex:0 0 24px;
  color:#06c755;
}
.footer-line-social + .footer-social { margin-top:12px; }

/* v165: keep the two requested ABOUT headings on two exact mobile lines. */
@media(max-width:1023px){
 .about-hero-copy h1>.source-line{white-space:nowrap}
 .about-hero-copy h1 .mobile-about-hero-line{display:block;white-space:nowrap}
 .about-message .message-layout>.message-copy>.section-heading h2{font-size:min(clamp(30px,3.2vw,46px),calc((100vw - 40px)/10.5))}
 .about-message .message-layout>.message-copy>.section-heading h2>.source-line{display:block;white-space:nowrap}
}

/* v166: keep only the mobile HOME hero heritage label on a single line. */
@media(max-width:1023px){
 .home .home-hero .heritage>p{display:flex;flex-wrap:nowrap}
 .home .home-hero .heritage>p>.source-line{white-space:nowrap}
}

/* v167: center the mobile footer group while preserving its left-aligned copy. */
@media(max-width:1023px){
 .site-footer .footer-grid{width:fit-content;max-width:100%;margin-inline:auto;text-align:left}
 .site-footer .copyright{flex-direction:column;align-items:center;text-align:center}
}

/* v167: give the mobile ABOUT intro equal side gutters without moving its left edge. */
@media(max-width:1023px){
 .about-hero-copy>.intro{max-width:none}
}

/* v168: mobile ABOUT copy alignment and exact two-line WHY heading. */
@media(max-width:1023px){
 .about-message .message-body-rise>p{text-align:left}
 .about-facts>.wrap>.section-heading>h2>.source-line{display:block;white-space:nowrap}
 .about-facts>.wrap>.section-heading>.intro{text-align:left}
}


/* v169: WHY figures and retained units share one baseline on every screen. */
.about-facts .stats>.item>.stat-value{display:flex;align-items:baseline;justify-content:center;gap:.2em;white-space:nowrap}
.about-facts .stat-value>p{flex:0 0 auto}
/* Keep mobile descriptions readable while honoring the requested line breaks. */
@media(max-width:1023px){
 .about-facts .grid.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 0}
 .about-facts .stats>.item{container-type:inline-size;padding-inline:clamp(0px,calc((100vw - 320px) / 5.5),10px)}
 .about-facts .stats>.item:nth-child(2){border-right:0}
 .about-facts .stats .stat-description-two-lines{font-size:min(16px,calc(100cqw / 8))}
 .about-facts .stat-description-two-lines>span{display:block;white-space:nowrap}
 .about-facts .stats .stat-description-single-line{font-size:clamp(14px,calc(100cqw / 10),16px);letter-spacing:-.02em;white-space:nowrap}
 /* Preserve legibility in one-line promise titles rather than shrinking narrow cards. */
 .about-reasons>.wrap>.grid.three{grid-template-columns:minmax(0,1fr)}
 .about-reasons>.wrap>.section-heading>h2>.source-line{display:block;white-space:nowrap}
 .about-reasons>.wrap>.grid>.item:has(>.local-promise-heading){container-type:inline-size}
 .about-reasons .local-promise-heading{font-size:min(23px,calc(100cqw / 14.56));white-space:nowrap}
}
@media(max-width:360px){
 .about-reasons>.wrap>.section-heading>h2{font-size:28px}
}

@media(min-width:602px) and (max-width:1023px){
 .about-reasons>.wrap>.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* v170: requested promise titles keep the Local title's mobile scale and one-line fit. */
@media(max-width:1023px){
 .about-reasons>.wrap>.grid>.item:has(>.mobile-promise-heading){container-type:inline-size}
 .about-reasons .mobile-promise-heading{font-size:min(23px,calc(100cqw / 14.56));white-space:nowrap}
}

/* v170: the WARRANTY heading breaks at the requested phrase on mobile only. */
@media(max-width:1023px){
 .section-heading:has(+.warranty-cards)>h2 .mobile-warranty-line{display:block;white-space:nowrap}
}

/* v170: retain the two requested HISTORY phrases as separate mobile lines. */
@media(max-width:1023px){
 .section-heading:has(>#history)>h2>.source-line{display:block;white-space:nowrap}
}

/* Balance SERVICES and KNOWLEDGE mobile hero intro gutters, retaining their left edges. */
@media(max-width:1023px){
 .page-hero-copy>.services-hero-intro:not(.blog-hero-intro){max-width:none}
 .knowledge-hero-title-line{display:block;white-space:nowrap}
}

/* v172: center the mobile EMERGENCY content as one left-aligned column. */
.emergency-mobile-break{display:none}
@media(max-width:1023px){
 .knowledge-page main .note.knowledge-sign-panel{
  width:100%;grid-template-columns:minmax(0,max-content);justify-content:center;gap:20px;text-align:left;
 }
 .knowledge-page main .note.knowledge-sign-panel .emergency-copy h3{
  font-size:min(20px,calc((100vw - 90px)/13.52));white-space:nowrap;text-align:left;
 }
 .knowledge-page main .note.knowledge-sign-panel .emergency-mobile-break{display:initial}
 .knowledge-page main .note.knowledge-sign-panel .emergency-contact{justify-self:start;max-width:100%;text-align:left}
}

/* v172: retain the BLOG hero title on one readable mobile line. */
@media(max-width:1023px){
 .page-hero-copy:has(>.blog-hero-intro)>h1>.source-line{white-space:nowrap}
}
@media(max-width:480px){
 .page-hero-copy:has(>.blog-hero-intro)>h1{font-size:min(28px,calc((100vw - 40px)/13.52))}
}

/* v173: give the mobile FEATURED photo a definite width before its overlay label. */
@media(max-width:1023px){
 .featured>.blog-image{width:100%;min-width:0}
 .featured>.blog-image>.eyebrow{white-space:nowrap}
}

/* v174: compact and center the closing article buttons on mobile only. */
@media(max-width:1023px){
 .article-body .article-closing-actions{justify-content:center;align-items:center;gap:12px}
 .article-body .article-closing-button{width:min(100%,240px);justify-content:center;gap:12px}
}

/* v175: source-marked parents are hidden before the first paint, only when the
   synchronous head initializer is healthy. Layout and existing motion stay intact.
   The state moves pending -> enter -> done once; no-JS/error keeps normal content. */
@media(prefers-reduced-motion:no-preference){
 html.reveal-enabled [data-reveal-state="pending"]{opacity:0}
}

/* v177: SERVICES hero sentence breaks on mobile; retain the approved desktop break. */
.services-hero-intro > .services-intro-mobile-break{display:none}
@media(max-width:1023px){
 .services-hero-intro > .services-intro-desktop-break{display:none}
 .services-hero-intro > .services-intro-mobile-break{display:initial}
}

/* v177: the SERVICES warranty heading uses the requested two lines on mobile only. */
@media(max-width:1023px){
 .services-pricing .warranty-layout>.section-heading>h2 .services-warranty-mobile-line{display:block;white-space:nowrap}
}

/* v178: only the requested pest-intrusion headings and callouts change on mobile. */
@media(max-width:1023px){
 .pest-intrusion-body > .article-section > :is(h2.article-heading,h3.article-subheading) > .pest-chapter-heading-mobile-line{display:block;white-space:nowrap}
 /* Preserve the callout's 16px text wherever possible; narrow padding before type. */
 .pest-intrusion-body > .article-section > .pest-type-point-mobile{
  padding-inline:clamp(8px,calc((100vw - 361px)/2),20px);
  font-size:min(16px,calc((100vw - 57px)/20));white-space:nowrap;
 }
}
@media(max-width:767px){
 .article-page main > .pest-intrusion-body > .article-section > h2.article-heading#section-1-{
  font-size:min(28px,calc((100vw - 40px)/12.65));
 }
 .article-page main > .pest-intrusion-body > .article-section > h2.article-heading#section-2-{
  font-size:min(28px,calc((100vw - 40px)/10.7));
 }
 .pest-intrusion-body > .article-section > h3.article-subheading#section-2-3{
  font-size:min(22px,calc((100vw - 65px)/13.45));
 }
}

/* v179: only the requested ceiling-rat title and subheadings break on mobile. */
@media(max-width:1023px){
 .article-hero h1.ceiling-rat-title-mobile{white-space:nowrap}
 .article-hero h1.ceiling-rat-title-mobile > .ceiling-rat-title-mobile-first{display:block}
 .article-body > .article-section > h3.ceiling-rat-subheading-mobile > .ceiling-rat-subheading-mobile-line{display:block;white-space:nowrap}
}
/* Fit only requested heading lines within their existing narrow mobile gutters. */
@media(max-width:767px){
 .pest-intrusion-body > .article-section > h3.article-subheading#section-5-2{
  font-size:min(22px,calc((100vw - 65px)/12.4));
 }
 .pest-intrusion-body > .article-section > h3.article-subheading#section-6-3{
  font-size:min(22px,calc((100vw - 65px)/13.45));
 }
 .article-page main > .pest-intrusion-body > .article-section > h2.article-heading#section-7-{
  font-size:min(28px,calc((100vw - 40px)/10.7));
 }
 .article-body > .article-section > h3.ceiling-rat-subheading-mobile{
  font-size:min(22px,calc((100vw - 65px)/13.45));
 }
}
@media(max-width:480px){
 .article-hero h1.ceiling-rat-title-mobile{font-size:min(27px,calc((100vw - 40px)/11.44))}
}

/* v180: retain only the seven requested article chapter headings as two mobile lines. */
@media(max-width:1023px){
 .article-body > .article-section > h2.same-day-chapter-heading-mobile > .same-day-chapter-heading-mobile-line,
 .article-body > .article-section > h2.cockroach-chapter-heading-mobile > .cockroach-chapter-heading-mobile-line{display:block;white-space:nowrap}
 .article-body > .article-section > h3:is(.same-day-consultation-heading-mobile,.cockroach-experience-heading-mobile){white-space:nowrap}
 .article-hero h1.cockroach-title-mobile > .cockroach-title-mobile-tail{white-space:nowrap}
}
/* Preserve the existing 28px size wherever the requested lines fit the mobile column. */
@media(max-width:767px){
 .article-page main > .article-body > .article-section > h2.article-heading:is(.same-day-chapter-heading-mobile,.cockroach-chapter-heading-mobile){
  font-size:min(28px,calc((100vw - 40px)/12.8));
 }
 .article-body > .article-section > h3:is(.same-day-consultation-heading-mobile,.cockroach-experience-heading-mobile){
  font-size:min(22px,calc((100vw - 65px)/15.55));
 }
}
/* Keep the cockroach hero suffix together, with matching type across its title. */
@media(max-width:480px){
 .article-hero h1.cockroach-title-mobile{font-size:min(27px,calc((100vw - 40px)/13.52))}
}

/* v181: keep only the requested hornet subsidy subheading on one mobile line. */
@media(max-width:1023px){
 .article-body > .article-section > h3.hornet-subsidy-heading-mobile{white-space:nowrap}
}
@media(max-width:767px){
 .article-body > .article-section > h3.hornet-subsidy-heading-mobile{
  font-size:min(22px,calc((100vw - 65px)/15.55));
 }
}

/* v182: keep the requested termite-prevention hero suffix on one mobile line. */
@media(max-width:1023px){
 .article-hero h1.termite-prevention-title-mobile > .termite-prevention-title-mobile-tail{white-space:nowrap}
}
/* Match the type across this title, fitting only when the existing 27px is too wide. */
@media(max-width:480px){
 .article-hero h1.termite-prevention-title-mobile{font-size:min(27px,calc((100vw - 40px)/13.52))}
}

/* v182: split only the requested prevention chapter heading into two mobile lines. */
@media(max-width:1023px){
 .article-body > .article-section > h2.termite-prevention-chapter-heading-mobile > .termite-prevention-chapter-heading-mobile-line{display:block;white-space:nowrap}
}
@media(max-width:767px){
 .article-page main > .article-body > .article-section > h2.article-heading.termite-prevention-chapter-heading-mobile{
  font-size:min(28px,calc((100vw - 40px)/12.8));
 }
}

/* v182: add only the requested mobile break to this article's closing heading. */
@media(max-width:1023px){
 .article-body > .article-section > h2.termite-prevention-closing-heading-mobile{white-space:nowrap}
 .article-body > .article-section > h2.termite-prevention-closing-heading-mobile > .termite-prevention-closing-mobile-first{display:block}
}
@media(max-width:767px){
 .article-page main > .article-body > .article-section > h2.article-heading.termite-prevention-closing-heading-mobile{
  font-size:min(28px,calc((100vw - 40px)/11.44));
 }
}

/* v182: use the three requested lines only for the mobile pest-company hero. */
@media(max-width:1023px){
 .article-hero h1.pest-company-title-mobile{white-space:nowrap}
 .article-hero h1.pest-company-title-mobile > .pest-company-title-mobile-first{display:block}
}
@media(max-width:480px){
 .article-hero h1.pest-company-title-mobile{font-size:min(27px,calc((100vw - 40px)/13.52))}
}

/* v182: keep the requested pest-company chapter heading to two mobile lines. */
@media(max-width:1023px){
 .article-body > .article-section > h2.pest-company-chapter-heading-mobile > .pest-company-chapter-heading-mobile-line{display:block;white-space:nowrap}
}
@media(max-width:767px){
 .article-page main > .article-body > .article-section > h2.article-heading.pest-company-chapter-heading-mobile{
  font-size:min(28px,calc((100vw - 40px)/12.8));
 }
}

/* v182: keep the requested pest-company process heading to two mobile lines. */
@media(max-width:1023px){
 .article-body > .article-section > h2.pest-company-process-heading-mobile > .pest-company-process-heading-mobile-line{display:block;white-space:nowrap}
}
@media(max-width:767px){
 .article-page main > .article-body > .article-section > h2.article-heading.pest-company-process-heading-mobile{
  font-size:min(28px,calc((100vw - 40px)/12.8));
 }
}

/* v182: keep the requested specialist-benefit subheading on one mobile line. */
@media(max-width:1023px){
 .article-body > .article-section > h3.pest-company-benefit-heading-mobile{white-space:nowrap}
}
@media(max-width:767px){
 .article-body > .article-section > h3.pest-company-benefit-heading-mobile{
  font-size:min(22px,calc((100vw - 65px)/15.55));
 }
}

/* v182: split only the requested pest-company service heading on mobile. */
@media(max-width:1023px){
 .article-body > .article-section > h2.pest-company-service-heading-mobile > .pest-company-service-heading-mobile-line{display:block;white-space:nowrap}
}
@media(max-width:767px){
 .article-page main > .article-body > .article-section > h2.article-heading.pest-company-service-heading-mobile{
  font-size:min(28px,calc((100vw - 40px)/12.5));
 }
}

/* v184: small TOC links keep the list's existing type and spacing. */
.article-page .toc li > .toc-subentry{font:inherit;color:inherit;text-decoration:none}
.article-page .toc li > .toc-subentry:hover{color:var(--deep)}


/* v185: restore live-site supporting labels only inside the mobile menu. */
.site-header #main-nav .mobile-nav-label,
.site-header #main-nav .mobile-phone-caption{display:none}
@media(max-width:1023px){
 .site-header #main-nav .mobile-nav-label{
  display:inline-block;margin-inline-start:12px;
  font-size:11px;line-height:1.6;letter-spacing:.08em;color:var(--gold);white-space:nowrap;
 }
 .site-header #main-nav .mobile-phone-caption{display:block;margin-top:2px}
}

/* v185: About disclosure matches the live hover timing and directional marker.
   The native details/summary remains usable when JavaScript is unavailable. */
#main-nav > details > summary::-webkit-details-marker{display:none}
#main-nav > details > summary::after{
 content:"";display:inline-block;width:0;height:0;margin-inline-start:6px;
 border-inline:5px solid transparent;border-top:8px solid currentColor;
 color:var(--gold);vertical-align:middle;transform:rotate(0deg);
 transition:transform .3s cubic-bezier(.4,0,.2,1);
}
#main-nav > details:not(.about-menu-enhanced)[open] > summary::after,
#main-nav > details.is-about-expanded > summary::after{transform:rotate(180deg)}
@media(min-width:1024px){
 #main-nav > details > summary{padding-block:8px}
 #main-nav > details > div{
  top:calc(100% + 12px);left:50%;min-width:220px;padding:8px;
  border:1px solid var(--line);border-radius:16px;background:#fff;
  box-shadow:0 16px 40px -16px rgba(26,29,26,.25);z-index:50;
  transform:translate(-50%,0);
 }
 /* This transparent bridge keeps the pointer inside the disclosure across its gap. */
 #main-nav > details > div::before{
  content:"";position:absolute;left:0;right:0;top:-13px;height:13px;
 }
 #main-nav > details > div::after{
  content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;
  background:#fff;border-top:1px solid var(--line);border-left:1px solid var(--line);
  transform:translateX(-50%) rotate(45deg);pointer-events:none;
 }
 #main-nav > details > div > a{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:12px 16px;border-radius:12px;transition:background .2s,color .2s;
 }
 #main-nav > details > div > a small{font-size:10px;letter-spacing:.2em}
 #main-nav > details > div > a:hover,
 #main-nav > details > div > a:focus-visible{background:var(--soft)}
 #main-nav > details.about-menu-enhanced > div{
  opacity:0;visibility:hidden;transform:translate(-50%,4px);pointer-events:none;
  transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),visibility .2s;
 }
 #main-nav > details.about-menu-enhanced.is-about-expanded > div{
  opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto;
 }
 /* Keep the existing gold underline/scale while moving onto submenu links. */
 #main-nav > details.is-about-expanded > summary > span{transform:scale(1.04)}
 #main-nav > details.is-about-expanded > summary > span::after{transform:scaleX(1)}
}
@media(prefers-reduced-motion:reduce){
 #main-nav > details > summary::after,
 #main-nav > details.about-menu-enhanced > div{transition:none}
 #main-nav > details.is-about-expanded > summary > span{transform:none!important}
}


/* v186: match the mobile CONTACT intro gutters without moving its left edge. */
@media(max-width:1023px){
 .contact-hero-copy>.intro{max-width:none}
}

/* Instagram directly below LINE in the shared contact section. */
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button{grid-template-columns:40px minmax(0,1fr);column-gap:16px;padding:16px 20px;border-color:var(--gold);background:#fff;color:var(--ink)}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button::before{width:40px;height:40px;border-radius:0;background:transparent url('../images/instagram-icon.svg?v=20261023-original-colors') center/contain no-repeat}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button>small{margin:0;color:var(--gold);text-align:left;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:0}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button>strong{color:var(--ink);font-family:var(--sans);font-size:22px;font-weight:600;letter-spacing:0;line-height:2.1}
:is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button:focus-visible{outline:3px solid var(--deep);outline-offset:4px}
@media(max-width:480px){
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button{grid-template-columns:36px minmax(0,1fr);column-gap:12px;padding:12px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button::before{width:36px;height:36px}
 :is(.home,.interior,.article-page) .footer-cta>.footer-contact-links>a.footer-instagram-button>strong{font-size:20px}
}

/* Fixed shared hero photo; caption is mobile-only. */
.home-hero .hero-slideshow,.home-hero .hero-slideshow .hero-slide{animation:none!important;transition:none!important;transform:none!important;filter:none!important}
.hero-mobile-caption{display:none}
@media(max-width:1023px){
 .home .hero-mobile-caption{display:table;margin:20px 0 0;padding:10px 16px;max-width:100%;border-radius:12px;background:#fffffff0;color:var(--ink);font-size:15px;font-weight:600;line-height:1.8}
}

/* Show the fixed hero photo without the white gradient veil on any viewport. */
.home .home-hero::after{display:none;background:none}
