/* A lightweight editorial refinement of the existing nodule service LPs. */
:root{--ink:#153c30;--green:#09643e;--muted:#4e655b;--paper:#fffef9;--line:#ccdace;--soft:#eaf3e5;--accent:#f1f6ed;--gold:#f7df88}
body{font-size:1rem;line-height:1.95;overflow-wrap:break-word}
.wrap{width:min(72rem,calc(100% - 5rem))}
h2{font-size:clamp(1.75rem,2.7vw,2.4rem);line-height:1.65;letter-spacing:.025em;text-wrap:pretty}
h3{font-size:1.2rem;line-height:1.65;letter-spacing:.015em}
::selection{background:var(--gold);color:var(--ink)}
html{scroll-padding-top:7rem;scroll-behavior:auto}
:focus-visible{outline:3px solid #a84a00;outline-offset:5px}
a{touch-action:manipulation}
.offer{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap;padding:.55rem 1rem;background:#cb381b;font-size:.875rem;line-height:1.6}
.offer strong{font-size:1.125rem;letter-spacing:.02em;margin:0;color:#fff}
.offer span:last-child{border:1px solid #fff9;padding:.12rem .75rem;border-radius:2rem;margin-left:.5rem;font-size:.8125rem}
.header{background:#fffef9;border-bottom:1px solid var(--line)}
.header-inner{min-height:5.6rem;gap:1.5rem;flex-wrap:wrap;padding-block:.7rem}
.brand{gap:.75rem;min-width:0}
.brand-mark{flex-shrink:0}
.brand-text{min-width:0}
.brand-mark{width:2.8rem;height:2.8rem;font-size:1.65rem;box-shadow:none;background:var(--green);border-radius:50%}
.brand-text strong{font-size:1.2rem;letter-spacing:.07em}
.brand-text small{font-size:.75rem;letter-spacing:.07em}
.header-nav{gap:1.75rem;font-size:.875rem}
.header-nav>a:not(.header-phone){padding:.65rem 0;text-underline-offset:.35em}
.header-phone{background:var(--green);color:#fff;border:0;padding:.75rem 1.25rem;font-size:.875rem;min-height:2.75rem;display:flex;align-items:center}
.crumb{font-size:.8125rem;padding-block:1.3rem;color:var(--muted)}
.crumb a{display:inline-block;min-height:2.75rem;padding-block:.5rem}
.hero{grid-template-columns:1.05fr 1fr;gap:4rem;padding-block:1rem 3.7rem;align-items:center}
.hero>div{min-width:0}
.eyebrow{font-size:.875rem;letter-spacing:.08em;line-height:1.65;margin-bottom:.85rem;font-weight:700}
.eyebrow:before{width:1.6rem;height:2px}
.hero h1{font-size:clamp(1.375rem,2vw,1.75rem);line-height:1.65;letter-spacing:.035em}
.hero h1 span{font-size:.875rem;line-height:1.8;font-weight:400;color:var(--muted);margin-top:.4rem;letter-spacing:0}
.catch{font-family:"Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:clamp(2rem,3.15vw,2.8rem);line-height:1.65;letter-spacing:-.035em;margin-block:1.65rem 1.5rem}
.catch .catch-chunk{white-space:normal;display:inline-block;max-width:100%;color:inherit}
.catch>span:first-child .catch-chunk{color:var(--ink)}
.catch>span:last-child .catch-chunk{color:var(--green)}
.hero-lead{font-size:1rem;line-height:2;max-width:33em}
.hero-photo{position:relative;padding:0;isolation:isolate}
.hero-photo:before{content:"";position:absolute;inset:1rem -.9rem -.9rem 1rem;background:var(--soft);border-radius:1rem;z-index:-1}
.hero-photo img,.theme-blue .hero-photo img,.theme-sand .hero-photo img{aspect-ratio:1;object-fit:cover;border-radius:1rem;box-shadow:none}
.page-ihin .hero-photo img{aspect-ratio:3/2}
.page-cleaning .hero-photo:before{background:#e4f1ed}
.page-zanchibutsu .hero-photo:before{background:#f5edda}
.actions{gap:.75rem;margin-top:1.8rem;flex-wrap:wrap;align-items:stretch}
.btn{justify-content:flex-start;gap:.65rem;padding:1rem 1.2rem;min-height:4.6rem;border-radius:.8rem;font-size:1rem;line-height:1.5;transition:background-color .18s,box-shadow .18s}
.btn-icon{font-size:1.35rem;line-height:1;flex-shrink:0}
.btn-primary{background:var(--green);box-shadow:0 .2rem 0 #c1d9b7;color:#fff}
.btn-primary:hover,.header-phone:hover{background:#034a2d}
.btn-secondary{background:#fff;border:1px solid #90af9b}
.btn-secondary:hover{background:var(--soft)}
.btn small{font-size:.8125rem;line-height:1.65;margin-top:.15rem;opacity:1;font-weight:500}
.note{font-size:.875rem;line-height:1.85;margin-top:1rem}
.quick-nav{justify-content:space-between;gap:.3rem;padding-block:.7rem;border-block:1px solid var(--line)}
.quick-nav a{padding:.75rem 1rem;min-height:2.75rem;font-size:.875rem;border:0;border-radius:.4rem;line-height:1.7}
.quick-nav a:hover{background:var(--soft);text-decoration:none}
.section{padding-block:5rem}
.section-head{grid-template-columns:1.15fr 1fr;gap:4rem;align-items:center;margin-bottom:2.5rem}
.section-head>p{padding:0;font-size:1rem;line-height:2}
.kicker{font-size:.875rem;letter-spacing:.08em;margin-bottom:.8rem;color:var(--green);font-weight:700}
.worries{gap:1.8rem;margin-block:2rem 0}
.worries li{padding-top:1.25rem;font-size:1rem;font-weight:600;line-height:1.9;border-top:1px solid #90af9b;align-items:flex-start}
.check{width:1.55rem;height:1.55rem;font-size:.875rem;background:var(--green);color:#fff;flex-shrink:0;margin-top:.15rem}
.tint{background:var(--accent)}
.service-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:4rem;align-items:end}
.service-intro>p{color:var(--muted);max-width:30em;line-height:2}
.details-grid{gap:1.5rem}
.detail{padding:2rem;background:#fff;border:1px solid var(--line);border-radius:.75rem;box-shadow:none;min-width:0}
.detail .number{display:block;margin-bottom:1.15rem;font:500 2.25rem/1.2 Georgia,serif;color:var(--green)}
.detail h3{font-size:1.2rem;margin-bottom:.85rem}
.detail p{font-size:1rem;line-height:1.95;color:var(--muted)}
.focus{display:grid;grid-template-columns:.85fr 1.4fr;gap:3rem;margin-top:1.8rem;background:#e6f0dd;border:0;border-radius:.75rem;padding:2.25rem;align-items:start}
.focus h3{font-size:1.2rem}
.focus p{font-size:1rem;line-height:1.95;color:var(--ink)}
.estimate-note{margin-top:1.2rem;font-size:.875rem;color:var(--muted)}
.price-panel{grid-template-columns:1.5fr 1fr;gap:3rem;margin-top:2rem}
.price-table{font-size:1rem;line-height:1.85;table-layout:fixed}
.price-table thead{background:#edf4e8}
.price-table th,.price-table td{padding:1.25rem 1rem;vertical-align:top}
.price-table tbody th{width:57%;font-size:1rem;font-weight:700}
.price-table small{font-size:.875rem;line-height:1.8;margin-top:.4rem;font-weight:400;color:var(--muted)}
.price-table td{text-align:right;font-size:.875rem;white-space:normal}
.price-table .unit{font-size:.875rem;line-height:1.65}
.price-table .amount{font-size:1.9rem;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1.3}
.price-note{font-size:.875rem;line-height:1.9;margin-top:1rem;color:var(--muted)}
.price-aside{padding:2rem;background:var(--accent);border-radius:.75rem;align-self:start;min-width:0}
.price-aside h3{font-size:1.2rem}
.price-aside ul{padding-left:1.2rem;margin-block:1.1rem 0}
.price-aside li{font-size:1rem;line-height:1.9;margin-block:.5rem}
.mini-cta{padding:1.75rem 2rem;gap:2rem;margin-top:2rem;background:#edf4e8;color:var(--ink);border:1px solid var(--line);border-radius:.75rem}
.mini-cta h3,.mini-cta p{color:var(--ink)}
.mini-cta .btn-primary{background:var(--green);color:#fff}
.mini-cta h3{font-size:1.2rem}
.mini-cta p{font-size:.875rem;line-height:1.9;margin-top:.5rem}
.mini-cta .btn{flex-shrink:0}
.flow-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.8rem;margin-top:2.5rem;list-style:none;padding:0}
.flow-list li{border-top:1px solid #a9bba9;padding-top:1.5rem;min-width:0}
.flow-list .number{display:block;width:auto;height:auto;background:none;border:0;box-shadow:none;border-radius:0;font:500 2.35rem/1 Georgia,serif;margin-bottom:1rem;color:var(--green)}
.flow-list h3{font-size:1.125rem;margin-bottom:.85rem}
.flow-list p{font-size:1rem;line-height:1.95;color:var(--muted)}
#area{background:#fffef9;border-block:1px solid var(--line)}
.area-grid{grid-template-columns:1fr 1.2fr;gap:4rem}
.area-tags{gap:.6rem;margin-bottom:1.25rem;display:flex;flex-wrap:wrap}
.area-tags span{font-size:1rem;padding:.45rem 1.1rem;background:var(--soft);border-radius:.35rem}
.area-copy{font-size:1rem;line-height:2}
.area-note{font-size:.875rem;line-height:1.9;margin-top:1rem}
.faq-layout{grid-template-columns:.8fr 1.5fr;gap:4rem}
.faq-list details{border-top:1px solid var(--line);padding:0}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{font-size:1rem;line-height:1.85;grid-template-columns:1.5rem 1fr 1.4rem;gap:1rem;padding:1.25rem .35rem;min-height:3.25rem}
.faq-list summary b{font:600 1.15rem/1.7 Georgia,serif;color:var(--green)}
.faq-list details p{padding:.15rem 2.5rem 1.5rem;font-size:1rem;line-height:2;color:var(--muted)}
.faq-list summary:hover{background:var(--soft)}
.contact{background:#dfeedd;padding-block:4.75rem}
.contact-grid{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.contact-grid h2{font-size:clamp(1.8rem,2.8vw,2.45rem)}
.contact-grid>div>p:last-child{font-size:1rem;line-height:2;max-width:30em;margin-top:1.1rem;color:var(--ink)}
.contact-panel{padding:1rem;border:1px solid #d1dfcd;background:#fff;border-radius:1rem;box-shadow:none}
.contact-phone{background:var(--green);border-radius:.65rem;padding:1.4rem .8rem;line-height:1.6;min-height:3rem}
.contact-phone small{font-size:.875rem}
.contact-phone strong{font-size:clamp(1.75rem,3vw,2.35rem);letter-spacing:.02em;white-space:normal;overflow-wrap:anywhere}
.contact-phone span{font-size:.8125rem}
.contact-email{padding:1.15rem .6rem;margin-top:.6rem;border:1px solid var(--line);border-radius:.65rem;line-height:1.7;min-height:3rem}
.contact-email small{font-size:.875rem}
.contact-email strong{font-size:.9375rem;overflow-wrap:anywhere}
.email-tip{font-size:.8125rem;line-height:1.9;margin:1rem .4rem .2rem;color:var(--muted)}
.related{padding-block:3.7rem}
.related h2{font-size:1.45rem}
.related-intro{font-size:.9375rem;line-height:1.95;margin-top:.8rem;color:var(--muted)}
.related-links{gap:.75rem;margin-top:1.4rem}
.related-links a{font-size:.9375rem;padding:1rem 1.2rem;min-height:3.25rem;background:#fff;border:1px solid var(--line);border-radius:.45rem;line-height:1.8}
.related-links a:hover{border-color:var(--green);background:var(--soft)}
.footer{background:#153c30;color:#fff;padding-block:3rem 1.5rem}
.footer .brand-text small{color:#dce6da}
.footer .brand-mark{background:#fff;color:var(--green)}
.footer-top{gap:2rem}
.company{font-size:.875rem;line-height:1.9;color:#eff5ef;overflow-wrap:anywhere}
.company p+p{margin-top:.3rem}
.footer-bottom{font-size:.8125rem;color:#dce6da;border-top:1px solid #ffffff40;gap:1rem;margin-top:2rem;padding-top:1.25rem}
.footer-bottom a{display:inline-block;min-height:2.75rem;padding-block:.5rem;text-decoration:underline;text-underline-offset:.3em}
.mobile-contact a{min-height:3rem;font-size:.9375rem;line-height:1.5}
@media(min-width:701px) and (max-width:1100px){
 .wrap{width:calc(100% - 3rem)}.hero{gap:2.5rem;grid-template-columns:1fr 1fr}.hero-photo img{aspect-ratio:1}.page-ihin .hero-photo img{aspect-ratio:3/2}.catch{font-size:2.1rem}.actions{flex-direction:column}.btn{width:100%}.section-head,.service-intro,.area-grid,.faq-layout,.contact-grid{gap:2rem}.details-grid{gap:1rem}.detail{padding:1.5rem}.flow-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.price-panel{gap:2rem}.mini-cta{align-items:stretch}.mini-cta .btn{width:auto}
}
@media(max-width:850px) and (min-width:701px){.hero{grid-template-columns:1fr;gap:2rem}.hero-photo{width:100%;max-width:42rem}.hero-photo img{aspect-ratio:16/10}.page-ihin .hero-photo img{aspect-ratio:3/2}.actions{flex-direction:row}.actions .btn{flex:1;width:auto}.header-nav>a:not(.header-phone){display:none}.service-intro{grid-template-columns:1fr;gap:1rem}.details-grid{grid-template-columns:1fr}.price-panel{grid-template-columns:1fr 1fr}.catch{font-size:2.5rem}}
@media(max-width:700px){
 html{scroll-padding-top:6rem}.wrap{width:calc(100% - 2.5rem)}body{padding-bottom:5rem}.offer{gap:.15rem .35rem;padding:.45rem .75rem;font-size:.8125rem}.offer strong{font-size:1rem}.offer span:last-child{display:none}.header-inner{min-height:4.4rem;gap:1rem}.brand{gap:.6rem}.brand-mark{width:2.25rem;height:2.25rem;font-size:1.4rem}.brand-text strong{font-size:1rem}.brand-text small{font-size:.75rem}.header-phone{padding:.6rem .85rem;font-size:.8125rem;border-radius:2rem}.header-nav{gap:0}.crumb{font-size:.75rem;padding-block:.65rem}.hero{display:flex;flex-direction:column;gap:1.75rem;padding-block:.65rem 2rem;align-items:stretch}.eyebrow{font-size:.8125rem;margin-bottom:.7rem}.hero h1{font-size:1.375rem}.hero h1 span{font-size:.8125rem;line-height:1.85}.catch{font-size:clamp(1.75rem,7.6vw,2.25rem);line-height:1.7;margin-block:1.3rem 1.1rem;letter-spacing:-.025em}.hero-lead{font-size:1rem;line-height:1.95}.actions{flex-direction:row;gap:.65rem;margin-top:1.35rem}.actions .btn{flex:1;padding:.9rem .85rem;gap:.45rem;font-size:.9375rem;min-height:4.5rem}.btn-icon{display:none}.actions .btn small{font-size:.75rem}.note{font-size:.875rem;margin-top:.8rem}.hero-photo img,.theme-blue .hero-photo img,.theme-sand .hero-photo img{aspect-ratio:16/10;border-radius:.75rem}.hero-photo:before{inset:.5rem -.35rem -.5rem .5rem;border-radius:.75rem}.quick-nav{gap:.35rem;padding-block:.7rem;justify-content:flex-start}.quick-nav a{font-size:.875rem;padding:.55rem .7rem;line-height:1.8;flex:0 0 auto}.section{padding-block:3.2rem}.section-head,.service-intro,.focus,.price-panel,.area-grid,.faq-layout,.contact-grid{grid-template-columns:1fr;gap:1.35rem}.section-head{margin-bottom:1.5rem}.kicker{font-size:.875rem;margin-bottom:.65rem}h2{font-size:1.65rem;line-height:1.65}h3{font-size:1.125rem}.worries{grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}.worries li{font-size:1rem;padding-top:1rem;line-height:1.9}.details-grid{grid-template-columns:1fr;gap:1rem}.detail{padding:1.5rem}.detail .number{font-size:2rem;margin-bottom:.6rem}.detail h3{font-size:1.15rem;margin-bottom:.7rem}.detail p,.focus p{font-size:1rem}.focus{padding:1.5rem;margin-top:1.2rem}.focus h3{font-size:1.15rem}.price-panel{margin-top:1.4rem}.price-table th,.price-table td{padding:1rem .55rem}.price-table tbody th{font-size:.9375rem;width:57%}.price-table small{font-size:.875rem}.price-table .amount{font-size:1.65rem}.price-table .unit{font-size:.8125rem}.price-aside{padding:1.5rem}.mini-cta{flex-direction:column;align-items:stretch;padding:1.5rem;gap:1.2rem}.mini-cta .btn{width:100%}.flow-list{grid-template-columns:1fr;gap:1.5rem;margin-top:1.75rem}.flow-list li{display:grid;grid-template-columns:2.5rem 1fr;gap:.45rem 1rem;padding-top:1.2rem}.flow-list .number{font-size:1.9rem;grid-row:1/3;margin:0}.flow-list h3{margin:0;font-size:1.125rem}.flow-list p{grid-column:2;font-size:1rem}.area-tags{gap:.5rem;margin-bottom:1.2rem}.area-tags span{font-size:1rem;padding:.4rem .85rem}.faq-list summary{font-size:1rem;gap:.6rem;grid-template-columns:1.4rem 1fr 1.1rem;padding:1rem .15rem}.faq-list details p{padding:.2rem .4rem 1.2rem 2.15rem;font-size:1rem}.contact{padding-block:3.2rem}.contact-grid h2{font-size:1.75rem}.contact-phone strong{font-size:1.85rem}.contact-email strong{font-size:.875rem}.related{padding-block:2.7rem}.related h2{font-size:1.35rem}.related-links{grid-template-columns:1fr}.related-links a{font-size:.9375rem}.footer{padding-block:2.5rem 1.5rem}.footer-top{flex-direction:column;gap:1.75rem}.footer-bottom{flex-direction:column;gap:.3rem}.company{font-size:.875rem}.mobile-contact{padding:.65rem .75rem calc(.65rem + env(safe-area-inset-bottom));gap:.6rem;border-top:1px solid var(--line);box-shadow:none;background:#fffef9}.mobile-contact a{font-size:.9375rem;min-height:3rem;border-radius:.65rem}
}
@media(max-width:360px){.header-phone{font-size:.75rem;padding-inline:.7rem}.actions{flex-direction:column}.actions .btn{font-size:1rem}.actions .btn small{font-size:.8125rem}.catch{font-size:1.8rem}.hero h1{font-size:1.3rem}}
@media(max-width:700px){.header{position:relative}.header-inner{padding-block:.75rem}.offer span{white-space:normal}.mini-cta a{white-space:normal}.mobile-contact{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
