:root{--ink:#14212c;--blue:#087e9d;--pale:#eef9fb;--line:#d7e5e8;--green:#10ae4e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--ink);background:white;font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.9}a{color:inherit;text-decoration:none}a,button,summary{-webkit-tap-highlight-color:transparent}a:hover{color:var(--blue)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #087e9d;outline-offset:5px}img{max-width:100%;display:block;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.55}button{font:inherit}.wrap{width:min(1100px,88%);margin-inline:auto}.wide{width:min(1350px,94%);margin-inline:auto}.tint{background:var(--pale)}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:0}.header{position:sticky;top:0;z-index:20;height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 3.2%;background:rgba(255,255,255,.95);border-bottom:1px solid #e9eef0}.brand{display:block;width:300px}.brand img{width:100%;height:auto}.header nav{display:flex;align-items:center;gap:28px;font-size:15px;font-weight:700}.nav-contact{border:1px solid;padding:8px 19px}.menu,.mobile-column{display:none}.hero{height:min(740px,57vw);min-height:560px;position:relative;isolation:isolate}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-position:center 52%;z-index:-2}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fffffffc 0%,#ffffffed 26%,#ffffff9c 40%,#ffffff00 63%);z-index:-1}.hero-copy{padding:64px 5.2%;max-width:850px}.hero-label{font-size:19px;font-weight:700;letter-spacing:.13em}.hero-label:after{content:"";display:block;width:66px;height:2px;background:linear-gradient(90deg,var(--blue),#16bfa1);margin:17px 0 26px}h1{font-size:clamp(40px,4.6vw,70px);font-weight:800;letter-spacing:.015em;line-height:1.5}.hero-sub{font-size:clamp(19px,1.85vw,28px);font-weight:600;margin:23px 0 30px;line-height:1.65}.line-button{display:inline-flex;align-items:center;justify-content:center;gap:21px;min-height:70px;border-radius:50px;background:var(--green);color:white;font-weight:700;font-size:21px;padding:12px 30px;box-shadow:0 6px 20px #0d854611}.line-button:hover{background:#068d3b;color:white}.line-mark{display:grid;place-items:center;background:white;border-radius:50%;width:43px;height:43px;font-family:Arial,sans-serif;font-size:13px;color:#06a948}.image-note{position:absolute;right:15px;bottom:8px;font-size:10px;background:#fff9;padding:0 6px}.quick-links{display:grid;grid-template-columns:1fr 1fr;width:min(1100px,92%);margin:auto;padding:24px 0}.quick-links a{display:flex;justify-content:center;align-items:center;gap:25px;font-size:19px;font-weight:700;padding:10px 15px}.quick-links a+a{border-left:1px solid var(--line)}.quick-links a>span:last-child{color:var(--blue)}.quick-icon{font-size:42px;line-height:1.2;color:#129ab8;width:70px;height:70px;text-align:center;background:var(--pale);border-radius:50%;display:grid;place-items:center}.section-heading{text-align:center;margin-bottom:48px}.section-heading>p{font-family:Georgia,serif;font-size:29px;color:var(--blue);letter-spacing:.04em}.section-heading>p:before,.section-heading>p:after{content:"—";font-weight:400}.section-heading h2{font-size:16px;font-weight:500;margin-top:8px;letter-spacing:.1em}.greetings,.services,.column,.prices,.flow,.faq{padding-top:95px;padding-bottom:95px}.greetings{padding-top:90px;padding-bottom:105px}.greeting-copy{text-align:center}.greeting-copy p{margin-top:28px;line-height:2.1}.greeting-copy .lead{font-size:25px;font-weight:600;line-height:1.9}.worries{color:#3e6170}.special,.works,.contact{padding:85px 0 90px}.banner-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.home-banner{position:relative;min-height:350px;display:flex;align-items:center;color:white;isolation:isolate;overflow:hidden}.home-banner>img{position:absolute;inset:0;width:100%;height:100%;z-index:-2;transition:transform .4s}.home-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#15363cec,#17383c88 72%,#17383c22);z-index:-1}.home-banner:hover{color:white}.home-banner:hover img{transform:scale(1.025)}.home-banner>div{padding:35px 7%;width:100%}.home-banner small{display:inline-block;padding:2px 12px;border:1px solid #ffffff8a;font-size:13px;margin-bottom:17px}.home-banner h3{font-size:clamp(22px,2.3vw,34px);font-weight:500;font-family:"Yu Mincho",serif}.home-banner p{font-size:13px;margin-top:15px}.banner-link{display:flex;justify-content:space-between;border-top:1px solid #fff7;padding-top:13px;margin-top:22px;font-size:13px}.repair-banner:after{background:linear-gradient(90deg,#205b68ed,#22556199 72%,#22556133)}.main-service,.service-pair>a{display:block}.collage{display:grid;height:540px;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:5px;overflow:hidden}.collage img{width:100%;height:100%;min-height:0}.collage-floor{grid-row:1/3}.collage-kitchen{grid-row:1/3}.service-caption{display:flex;align-items:center;gap:19px;padding:22px 5px;border-bottom:1px solid var(--line)}.service-number{font:italic 34px Georgia,serif;color:var(--blue)}.service-caption h3{font-size:23px;font-weight:500}.round-arrow{margin-left:auto;border:1px solid var(--line);border-radius:50%;width:40px;height:40px;display:grid;place-items:center}.service-pair{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:38px}.service-pair>a>img{height:285px;width:100%}.service-pair h3{font-size:20px}.service-detail{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;padding:46px 0 0;margin-top:40px;border-top:1px solid var(--line);scroll-margin-top:110px}.service-detail h3{font-size:23px}.kicker{font-size:13px;color:var(--blue);margin-bottom:12px}.service-detail p{margin-bottom:15px}.outline-button{display:flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid #7896a0;min-height:52px;padding:10px 24px;font-size:14px;max-width:430px}.outline-button:hover{background:var(--ink);color:white}.centered{margin:30px auto 0}.section-intro{text-align:center;margin:-15px 0 38px}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.case{background:white;padding:15px 15px 22px}.before-after{display:grid;grid-template-columns:1fr 1fr;gap:8px}.before-after img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#f3f4f4}.before-after figcaption{font:14px Georgia,serif;display:flex;gap:8px;padding-top:8px;color:var(--blue)}.before-after figcaption span{font:11px Meiryo,sans-serif}.case h3{font-size:18px;margin-top:20px}.case p{font-size:12px;margin-top:5px}.note{font-size:12px;line-height:1.9;color:#52656d;margin-top:24px}.column-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.column-grid a{display:block}.column-grid img{width:100%;height:270px}.column-grid h3{font-size:20px;margin:12px 0}.column-grid p{font-size:14px;color:#53626a}.column-grid span,.column-grid small{font-size:12px;color:var(--blue)}.column-grid .text-link{margin-top:12px}.column .section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.column h2{font-size:27px}.eyebrow{color:var(--blue);font:25px Georgia,serif}.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px}.floor-price{position:relative;padding:25px;background:white;overflow:hidden}.floor-price p,.floor-price strong,.floor-price small{position:relative;z-index:1}.floor-price strong{display:block;font-size:42px}.floor-price strong span{font-size:16px}.floor-price img{height:150px;width:100%;margin-top:20px}.water-price{margin:0}.water-price>div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:17px 0;gap:10px}.water-price dd{margin:0;font-size:25px}.water-price small{font-size:13px}.comparison{margin-top:30px}.comparison-inner{overflow-x:auto;padding:20px 0}.comparison table{width:100%;border-collapse:collapse;min-width:600px;font-size:14px;background:white}.comparison th,.comparison td{padding:15px 12px;border:1px solid var(--line);text-align:left}.comparison td small{display:block}.comparison caption{padding:10px}.discount{border:1px solid #b9d6df;background:white;padding:25px;display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:30px 0}.discount b{font-size:38px;color:var(--blue)}.discount small{display:block;font-size:12px}.text-link{display:inline-block;color:var(--blue);border-bottom:1px solid;padding-bottom:5px;font-size:14px}.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.steps li{border-top:2px solid var(--blue);padding:20px 0}.steps span{font:19px Georgia,serif;color:var(--blue)}.steps h3{font-size:17px;margin:15px 0}.steps p,.steps a{font-size:14px}.steps a{color:var(--blue);text-decoration:underline}.faq{padding-top:20px}.faq details,.comparison{border-bottom:1px solid var(--line)}summary{cursor:pointer;padding:23px 2px;display:flex;justify-content:space-between;gap:20px;font-size:16px;list-style:none;border-top:1px solid var(--line)}summary::-webkit-details-marker{display:none}details[open]>summary span{transform:rotate(45deg)}.faq details>p{padding:0 20px 25px;color:#4a6069;font-size:14px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;text-align:center}.contact-grid>div+div{border-left:1px solid var(--line);padding-left:55px}.contact-grid p{margin-bottom:20px}.contact-grid .outline-button{margin:15px auto 0;max-width:310px}.phone{display:block;font-size:33px;font-family:Arial,sans-serif;line-height:1.5}.contact .note{text-align:center;margin-top:35px}footer{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding-top:60px;padding-bottom:45px}footer nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:13px}footer p{font-size:13px;margin-top:15px}footer small{grid-column:1/-1;text-align:center;color:#627680;font-size:11px;padding-top:20px}.sticky{display:none}
@media(min-width:1600px){.hero-copy{padding-left:calc((100vw - 1400px)/2)}}
@media(max-width:1000px){.header nav{gap:15px;font-size:12px}.brand{width:245px}.hero{min-height:540px}.hero-copy{padding-top:62px}.hero-label{font-size:16px}.hero-sub{font-size:21px}.hero h1{font-size:45px}.line-button{font-size:17px;gap:14px;min-height:62px}.quick-links a{font-size:16px;gap:15px}.collage{height:430px}.service-caption h3{font-size:19px}.service-pair h3{font-size:17px}.steps{grid-template-columns:1fr 1fr}.contact-grid{gap:25px}.contact-grid>div+div{padding-left:25px}.phone{font-size:27px}}
@media(max-width:760px){html{scroll-padding-top:88px}.header{height:66px;padding:0 5%}.brand{width:190px}.mobile-column{display:block;font-size:11px;margin-left:auto;margin-right:15px}.menu{display:flex;flex-direction:column;justify-content:center;gap:7px;width:32px;height:44px;padding:3px;background:none;border:0}.menu span{height:1px;background:var(--ink);width:26px}.header nav{display:none;position:absolute;top:66px;left:0;right:0;background:white;padding:15px 6% 25px;box-shadow:0 12px 20px #1232}.header nav.open{display:flex;align-items:stretch;gap:0;flex-direction:column;font-size:14px}.header nav a{padding:12px 0;border-bottom:1px solid var(--line)}.header nav .nav-contact{border:0;border-bottom:1px solid var(--line)}.hero{min-height:0;height:660px}.hero-image{height:100%;object-position:100% center}.hero:after{background:radial-gradient(ellipse 44px 48px at calc(100% - 266px) 234px,rgba(255,255,255,.12) 0%,rgba(255,255,255,.06) 55%,rgba(255,255,255,0) 100%),linear-gradient(180deg,#fffffff5,#ffffffbb 26%,#ffffff66 43%,#ffffff05 62%)}.hero-copy{padding:30px 6%;max-width:100%}.hero-label{font-size:12px;letter-spacing:.07em}.hero-label:after{margin:12px 0 16px;width:48px}.hero h1{font-size:clamp(31px,8.7vw,42px);line-height:1.55;letter-spacing:.01em}.hero-sub{font-size:17px;margin:14px 0 20px;line-height:1.7}.hero .line-button{font-size:16px;min-height:53px;padding:9px 20px}.hero .line-mark{width:32px;height:32px;font-size:10px}.quick-links{width:100%;padding:12px 2%;gap:0}.quick-links a{flex-wrap:wrap;font-size:11px;gap:7px;padding:4px;line-height:1.4}.quick-icon{font-size:27px;width:37px;height:37px}.quick-links a>span:last-child{display:none}.wrap{width:88%}.greetings,.services,.column,.prices,.flow{padding-top:65px;padding-bottom:65px}.section-heading{margin-bottom:34px}.section-heading>p{font-size:23px}.section-heading h2{font-size:13px}.greeting-copy .lead{font-size:19px}.greeting-copy p{font-size:13px;text-align:left;margin-top:23px;line-height:2}.greeting-copy .lead,.greeting-copy .worries{text-align:center}.greeting-copy p br{display:none}.greeting-copy .lead br,.greeting-copy .worries br{display:initial}.greeting-copy .worries{font-size:11px}.special,.works,.contact{padding:60px 0}.banner-grid{grid-template-columns:1fr;gap:20px;width:90%}.home-banner{min-height:300px}.home-banner h3{font-size:26px}.home-banner small{font-size:11px}.home-banner p{font-size:12px}.collage{height:330px;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px}.collage-floor,.collage-kitchen{grid-row:auto}.service-caption{padding:17px 0;gap:12px}.service-caption h3{font-size:17px}.service-number{font-size:25px}.round-arrow{width:29px;height:29px;font-size:13px}.service-pair{gap:17px;margin-top:25px}.service-pair>a>img{height:145px}.service-pair .service-caption{flex-wrap:wrap;gap:7px}.service-pair .service-caption h3{font-size:13px;width:calc(100% - 30px)}.service-pair .service-number{font-size:20px}.service-pair .round-arrow{display:none}.service-detail{grid-template-columns:1fr;gap:20px;padding-top:30px;margin-top:30px}.service-detail h3{font-size:21px}.service-detail p{font-size:14px}.case-grid{grid-template-columns:1fr;gap:25px}.section-intro{font-size:14px;margin-top:0}.case h3{font-size:17px}.column-grid{grid-template-columns:1fr;gap:35px}.column-grid img{height:220px}.column-grid h3{font-size:18px}.column .section-top{display:block}.price-grid{grid-template-columns:1fr;gap:20px}.floor-price strong{font-size:36px}.floor-price img{height:130px}.water-price dt{font-size:14px}.water-price dd{font-size:22px}.discount{grid-template-columns:1fr;padding:20px;gap:10px}.discount p{font-size:14px}.text-link{font-size:13px}.steps{grid-template-columns:1fr;gap:8px}.steps li{padding:20px 0}.steps h3{margin:10px 0}.faq{padding:0 0 60px}summary{font-size:14px;padding:19px 0}.contact-grid{grid-template-columns:1fr;gap:32px}.contact-grid>div+div{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.contact-grid .line-button{font-size:18px}.contact-grid p{font-size:14px}.phone{font-size:29px}footer{grid-template-columns:1fr;padding-bottom:90px;padding-top:45px}footer .brand{width:240px}footer nav{font-size:12px}footer small{font-size:10px}.sticky.show{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1.6fr;z-index:30;box-shadow:0 -3px 15px #1232;background:white;padding-bottom:env(safe-area-inset-bottom)}.sticky a{text-align:center;padding:15px 8px;font-size:13px;font-weight:700}.sticky a:last-child{background:var(--green);color:white}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.columns{padding:95px 0}@media(max-width:760px){.columns{padding:65px 0}}

/* FOR YOUR HOME: natural photo colors and cable-free floor framing. */
.home-banner,.home-banner:hover{color:var(--ink)}
.home-banner:after,.repair-banner:after{background:linear-gradient(90deg,rgba(255,255,255,.93),rgba(255,255,255,.72) 48%,rgba(255,255,255,.08) 100%)}
.home-banner small{border-color:#53656f;background:#ffffff70}
.banner-link{border-top-color:#64778080}
.home-banner:not(.repair-banner)>img{width:125%;height:125%;max-width:none;top:auto;bottom:0;left:0;object-position:left bottom}

@media(max-width:760px){.greeting-copy .lead{text-wrap:balance}.greeting-copy .lead br{display:none}}

.price-detail-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:92px;margin-top:34px;padding:19px 25px 19px 29px;background:#fff;border:2px solid var(--blue);box-shadow:0 7px 22px rgba(16,64,78,.09);color:var(--ink)}
.price-detail-cta:hover{background:var(--blue);color:#fff}
.price-detail-copy{display:flex;flex-direction:column;gap:2px}
.price-detail-copy small{font-size:12px;color:#51717b}
.price-detail-cta:hover small{color:#fff}
.price-detail-copy strong{font-size:19px;letter-spacing:.035em}
.price-detail-arrow{flex:0 0 auto;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;font-size:21px;transition:transform .2s}
.price-detail-cta:hover .price-detail-arrow{background:#fff;color:var(--blue);transform:translateX(3px)}
@media(max-width:760px){.price-detail-cta{min-height:82px;margin-top:26px;padding:15px 14px 15px 17px;gap:12px}.price-detail-copy small{font-size:10px}.price-detail-copy strong{font-size:15px;letter-spacing:0}.price-detail-arrow{width:38px;height:38px;font-size:17px}}

.contact-grid{grid-template-columns:repeat(3,1fr);gap:0}
.contact-grid>div{display:flex;flex-direction:column;align-items:center;padding:0 28px}
.contact-grid>div+div{padding-left:28px}
.contact-grid .line-button{width:100%;max-width:300px;padding:10px 16px;font-size:16px;gap:10px}
.contact-grid .phone{font-size:25px;margin-top:7px}
.contact-grid .outline-button{width:100%;margin-top:7px;background:#fff;text-align:left}
.contact-form-wrap{max-width:850px;margin:68px auto 0;padding-top:54px;border-top:1px solid var(--line)}
.contact-form-wrap h3{text-align:center;font-size:26px;font-weight:600;letter-spacing:.08em}
.form-purpose{text-align:center;margin:8px 0 18px;font-size:14px;color:#46616b}
.required-note{text-align:right;margin-bottom:25px;font-size:12px;color:#52656d}
.req{color:#a34c3f;font-size:11px}
.contact-form-v2{display:grid;gap:19px}
.contact-form-v2>label:not(.privacy-check),.contact-form-v2 fieldset{display:grid;grid-template-columns:235px 1fr;gap:24px;align-items:start}
.contact-form-v2 fieldset{margin:0;padding:0;border:0}
.contact-form-v2 legend{float:left;width:235px}
.contact-form-v2 input[type="text"],.contact-form-v2 select,.contact-form-v2 textarea{width:100%;min-height:48px;padding:10px 13px;border:1px solid #a9bdc4;background:#fff;color:var(--ink);font:inherit;font-size:15px}
.contact-form-v2 textarea{min-height:135px;resize:vertical}
.contact-form-v2 input:focus,.contact-form-v2 select:focus,.contact-form-v2 textarea:focus{outline:2px solid rgba(8,126,157,.35);outline-offset:2px}
.form-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 14px}
.form-check-grid label{display:flex;align-items:center;gap:7px;font-size:13px}
.form-check-grid input,.privacy-check input{width:18px;height:18px;accent-color:var(--blue)}
.privacy-check{display:flex;justify-content:center;align-items:center;gap:8px;font-size:13px}
.privacy-check a,.form-fallback a{text-decoration:underline;color:var(--blue)}
.contact-form-v2 button{width:min(440px,100%);min-height:60px;margin:4px auto 0;border:0;background:var(--blue);color:#fff;font:inherit;font-weight:700;font-size:17px;cursor:pointer}
.contact-form-v2 button:hover{background:#086a83}
.form-error{margin:0;padding:11px 15px;background:#fff0ed;color:#8b392f;text-align:center;font-size:13px}
.test-form-note,.form-fallback{margin:0;text-align:center;font-size:11px;color:#52656d}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}.contact-grid>div,.contact-grid>div+div{padding:24px 0;border-left:0;border-top:1px solid var(--line)}.contact-grid>div:first-child{border-top:0;padding-top:0}.contact-form-wrap{margin-top:42px;padding-top:40px}.contact-form-v2>label:not(.privacy-check),.contact-form-v2 fieldset{grid-template-columns:1fr;gap:7px}.contact-form-v2 legend{float:none;width:auto;margin-bottom:8px}.form-check-grid{grid-template-columns:repeat(2,1fr)}}

/* Copy support and trust section for the general-consumer route. */
.hero-help{width:max-content;max-width:100%;margin-top:11px;padding:3px 9px;background:rgba(255,255,255,.78);font-size:12px;color:#314851;letter-spacing:.02em}
.reasons{padding:95px 0;border-top:1px solid #edf2f3}
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.reason-grid article{min-height:245px;padding:31px 29px;background:#f4fafb;border-top:3px solid var(--blue)}
.reason-grid article>span{display:block;margin-bottom:17px;color:var(--blue);font:italic 27px Georgia,serif}
.reason-grid h3{font-size:18px;margin-bottom:13px}
.reason-grid p{font-size:14px;color:#48606a;line-height:1.95}
.contact-form-wrap{scroll-margin-top:115px}
@media(max-width:760px){.hero-help{width:max-content;max-width:100%;margin-top:8px;padding:3px 7px;font-size:11px;line-height:1.6}.reasons{padding:65px 0}.reason-grid{grid-template-columns:1fr;gap:14px}.reason-grid article{min-height:0;padding:24px 22px}.reason-grid article>span{margin-bottom:8px;font-size:23px}.reason-grid h3{font-size:17px;margin-bottom:8px}.reason-grid p{font-size:13px}.contact-form-wrap{scroll-margin-top:95px}}

/* Hero consultation: form entry, with a lower-left mobile placement. */
.hero-form-button{background:var(--blue)}
.hero-form-button:hover{background:#086a83}
@media(max-width:760px){.hero-action{position:absolute;left:6%;bottom:44px;width:215px;max-width:88%;text-align:left}.hero-action .hero-form-button{min-height:53px;padding:10px 22px;gap:16px}.hero-action .hero-help{width:215px;max-width:100%;margin-top:9px;padding:5px 7px;font-size:11px;line-height:1.7;text-wrap:pretty}}

@media(max-width:760px){.hero-help-ending{display:block}}

/* Keep contact outlined actions legible when hovered or keyboard-focused. */
.contact-grid .outline-button:hover,.contact-grid .outline-button:focus-visible{background:var(--ink);color:#fff;border-color:var(--ink)}
