:root{--blue:#0874bd;--navy:#0c2840;--ink:#15202a;--red:#f20d12;--paper:#f4f6f7;--white:#fff;--line:#d7dde1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue","Noto Sans JP",Arial,sans-serif;line-height:1.75}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.header{height:90px;padding:0 max(24px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.97);position:sticky;top:0;z-index:20;border-bottom:3px solid var(--red)}.brand{display:flex;gap:13px;align-items:center;font-weight:900;letter-spacing:.1em;line-height:1}.brand img{width:58px;height:58px;object-fit:contain}.brand small{display:block;font-size:9px;letter-spacing:.14em;margin-top:7px;font-weight:700;color:var(--blue)}.header nav{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:800}.header nav a:not(.nav-cta):hover{color:var(--blue)}.nav-cta{background:var(--red);color:#fff;padding:11px 19px}.menu{display:none;border:0;background:none;font:inherit;font-weight:800;color:var(--navy)}.hero{min-height:calc(100vh - 90px);height:720px;position:relative;color:#fff;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,30,50,.96),rgba(5,30,50,.72) 42%,rgba(5,30,50,.08) 73%)}.hero-copy{position:absolute;left:max(24px,calc((100vw - 1180px)/2));top:50%;transform:translateY(-56%);max-width:700px}.eyebrow,.section-no{font-size:12px;letter-spacing:.2em;font-weight:900;color:var(--red)}.hero h1{font-size:clamp(48px,6vw,86px);line-height:1.08;letter-spacing:-.05em;margin:20px 0}.hero h1 em{font-style:normal;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:6px;text-underline-offset:10px}.hero-copy>p:not(.eyebrow){font-size:18px;max-width:610px}.hero-actions{display:flex;gap:12px;margin-top:36px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:0 24px;font-weight:900;border:1px solid transparent;cursor:pointer;font-size:15px}.primary{background:var(--red);color:#fff}.ghost,.outline{border-color:rgba(255,255,255,.6);color:#fff;background:transparent}.hero-facts{position:absolute;right:max(24px,calc((100vw - 1180px)/2));bottom:0;display:flex;background:#fff;color:var(--ink);padding:24px 32px;gap:34px;border-top:4px solid var(--blue)}.hero-facts span{font-size:12px}.hero-facts strong{display:block;font-size:20px;color:var(--navy)}.intro,.diy{display:grid;grid-template-columns:1fr 2.2fr;gap:40px;padding:120px 0 75px}.intro h2,.dark h2,.area h2,.contact h2,.works h2,.owners h2,.diy h2{font-size:clamp(34px,4vw,58px);line-height:1.25;margin:0 0 30px;letter-spacing:-.03em}.intro>div>p,.diy>div>p{font-size:17px;max-width:700px}.services{display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:120px}.service{min-height:310px;border:1px solid var(--line);padding:28px;position:relative;background:#fff}.service+.service{border-left:0}.service.featured{background:var(--red);color:#fff;border-color:var(--red)}.service span{font-size:12px;font-weight:900}.service h3{font-size:22px;margin-top:72px}.service p{font-size:14px}.service b{position:absolute;right:18px;bottom:12px;font-size:34px;line-height:1;color:rgba(8,116,189,.09)}.featured b{color:rgba(255,255,255,.15)}.dark{background:var(--navy);color:#fff;padding:120px 0;border-top:8px solid var(--blue)}.light{color:#ff3438}.split{display:grid;grid-template-columns:1fr 1.25fr;gap:90px}.points article{display:grid;grid-template-columns:60px 1fr;gap:20px;padding:28px 0;border-top:1px solid rgba(255,255,255,.18)}.points strong{color:#ff3438}.points h3{margin:0 0 8px;font-size:21px}.points p{margin:0;color:#c7d3dd;font-size:15px}.works{padding:120px 0}.section-heading{display:grid;grid-template-columns:.7fr 1.2fr 1fr;gap:40px;align-items:start}.work-list{display:grid;grid-template-columns:repeat(3,1fr);margin-top:55px}.work-list article{background:#fff;padding:36px;border:1px solid var(--line);min-height:230px}.work-list article+article{border-left:0}.work-list span{font-size:11px;color:var(--blue);font-weight:900;letter-spacing:.16em}.work-list h3{font-size:23px;margin:42px 0 10px}.project-note{display:grid;grid-template-columns:190px 1fr;gap:25px;border-left:6px solid var(--red);background:#e8edf0;padding:25px 30px;margin-top:26px}.project-note p{margin:0}.owners{background:var(--blue);color:#fff;padding:110px 0}.owners-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:90px}.owners-grid>div>p:not(.section-no){color:#d9effd}.owners .outline{margin-top:25px}.owners ul{list-style:none;padding:0;margin:0}.owners li{display:grid;gap:3px;padding:22px 0;border-top:1px solid rgba(255,255,255,.3)}.owners li b{font-size:19px}.owners li span{color:#d9effd;font-size:14px}.diy{border-bottom:1px solid var(--line)}.area{padding:120px 0}.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.text-link{display:inline-block;margin-top:20px;color:var(--red);font-weight:900}.map-card{background:#fff;padding:52px;border-left:7px solid var(--red);box-shadow:0 18px 50px rgba(0,0,0,.08)}.map-card span{font-size:11px;color:var(--red);font-weight:900;letter-spacing:.2em}.map-card strong{display:block;font-size:clamp(28px,5vw,55px);letter-spacing:-.04em;color:var(--blue)}.map-card ul{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:22px 0 0;margin:22px 0 0;border-top:1px solid var(--line);list-style:none;font-weight:800}.about{background:#e7ecef;padding:100px 0}.about-grid{display:grid;grid-template-columns:1fr 2.2fr;gap:40px}.about-logo{width:160px;height:125px;object-fit:contain;margin-top:28px}.about h2{font-size:40px;margin-top:0}.about dl{margin:0}.about dl div{display:grid;grid-template-columns:160px 1fr;padding:18px 0;border-top:1px solid #c5cdd2}.about dt{font-weight:900}.about dd{margin:0}.contact{background:#081e30;color:#fff;padding:120px 0;border-top:8px solid var(--red)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-grid>div>p:not(.section-no){color:#c8d5df}.contact-direct{display:grid;gap:9px;margin-top:28px}.contact-direct a{font-size:20px;font-weight:900}.contact-direct small{display:inline-block;width:70px;font-size:10px;letter-spacing:.13em;color:#5eb6ee}.contact form{display:grid;gap:18px}.contact label{font-size:14px;font-weight:800}.contact input,.contact textarea{width:100%;display:block;margin-top:7px;border:1px solid #496275;background:#061725;color:#fff;padding:14px;font:inherit}.contact textarea{resize:vertical}.contact button{width:100%}.form-note{font-size:12px;color:#9eafbc;margin:0}footer{padding:35px max(24px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:5px solid var(--blue)}footer .brand img{width:62px;height:62px}.footer-info{text-align:right}footer p{font-size:11px;color:#687682;margin:3px 0}
.representative{margin:28px 0 0;max-width:340px}.representative img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 35%;border-left:7px solid var(--red)}.representative figcaption{display:grid;gap:3px;padding:14px 0}.representative small{font-size:10px;letter-spacing:.16em;color:var(--blue);font-weight:900}.representative strong{font-size:17px}.about-message{max-width:690px;margin:-10px 0 32px}
@media(max-width:960px){.header nav{gap:16px;font-size:13px}.section-heading{grid-template-columns:1fr}}
@media(max-width:850px){.header{height:74px}.brand img{width:48px;height:48px}.header nav{display:none;position:absolute;top:74px;left:0;right:0;background:#fff;padding:24px;flex-direction:column;align-items:stretch;border-bottom:3px solid var(--red)}.header nav.open{display:flex}.menu{display:block}.hero{height:710px;min-height:0}.hero-shade{background:linear-gradient(90deg,rgba(5,30,50,.92),rgba(5,30,50,.48))}.hero-copy{transform:translateY(-62%);right:24px}.hero-copy>p:not(.eyebrow){font-size:16px}.hero-facts{left:0;right:0;gap:10px;padding:18px 20px;justify-content:space-between}.hero-facts strong{font-size:16px}.intro,.split,.area-grid,.about-grid,.contact-grid,.owners-grid,.diy{grid-template-columns:1fr;gap:30px}.services{grid-template-columns:1fr 1fr}.service:nth-child(3){border-left:1px solid var(--line)}.service{min-height:260px}.intro,.area,.works,.diy{padding:80px 0}.services{padding-bottom:80px}.dark,.contact,.owners{padding:80px 0}.about{padding:70px 0}.work-list{grid-template-columns:1fr}.work-list article+article{border-left:1px solid var(--line);border-top:0}}
@media(max-width:540px){.wrap{width:min(100% - 32px,1180px)}.brand{font-size:12px;gap:8px}.brand img{width:44px;height:44px}.brand small{font-size:7px}.hero h1{font-size:44px}.hero-actions{flex-direction:column}.hero-facts span{font-size:10px}.services{grid-template-columns:1fr}.service+.service,.service:nth-child(3){border-left:1px solid var(--line);border-top:0}.service h3{margin-top:42px}.map-card{padding:30px}.map-card ul{grid-template-columns:1fr}.about dl div{grid-template-columns:100px 1fr}.about-logo{width:125px;height:100px}.project-note{grid-template-columns:1fr;gap:5px}.contact-direct a{font-size:16px}.contact-direct small{width:58px}footer{align-items:flex-start;gap:25px;flex-direction:column}.footer-info{text-align:left}}
.header{height:100px}.header .brand{font-size:18px}.header .brand img{width:68px;height:68px}.header .brand small{font-size:10px}
@media(max-width:850px){.header{height:78px}.header .brand{font-size:14px}.header .brand img{width:52px;height:52px}.header .brand small{font-size:8px}.header nav{top:78px}}
@media(max-width:540px){.header .brand{font-size:13px}.header .brand img{width:48px;height:48px}}
/* Slightly smaller hero heading for the longer service-area message. */
@media(min-width:851px){.hero h1{font-size:clamp(42px,5vw,72px)}}
@media(max-width:540px){.hero h1{font-size:38px}}
.featured-work{display:grid;grid-template-columns:minmax(260px,.72fr) 1.6fr;margin-top:34px;background:var(--navy);color:#fff}.featured-work-copy{padding:42px}.featured-work-copy>span{font-size:11px;letter-spacing:.16em;color:#5eb6ee;font-weight:900}.featured-work-copy h3{font-size:30px;line-height:1.3;margin:34px 0 14px}.featured-work-copy p{margin:0;color:#c8d5df;font-size:15px}.featured-work-gallery{display:grid;grid-template-columns:1fr 1fr;min-height:420px}.featured-work-gallery.single{grid-template-columns:1fr}.featured-work-gallery figure{position:relative;margin:0;min-width:0;overflow:hidden}.featured-work-gallery img{display:block;width:100%;height:100%;object-fit:cover}.featured-work-gallery figure:first-child img{object-position:center}.featured-work-gallery figure:last-child img{object-position:center}.featured-work-gallery figcaption{position:absolute;left:16px;bottom:14px;background:rgba(8,30,48,.88);padding:5px 12px;font-size:12px;font-weight:900}
.featured-work-gallery.triple{grid-template-columns:repeat(3,1fr)}
.work-title-lines>span,.works-heading-lines>span{display:block}
.works-heading-lines>span{white-space:nowrap}
@media(max-width:850px){.featured-work{grid-template-columns:1fr}.featured-work-gallery{min-height:360px}.featured-work-copy{padding:30px}}
@media(max-width:540px){.featured-work-gallery,.featured-work-gallery.triple{grid-template-columns:1fr;min-height:0}.featured-work-gallery figure{aspect-ratio:4/3}.featured-work-copy h3{font-size:25px;margin-top:24px}}

/* Price and project-flow section */
.header nav{gap:20px;font-size:13px}
.guide{padding:115px 0;background:#fff;border-top:1px solid var(--line)}
.guide-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:end;margin-bottom:52px}
.guide h2{font-size:clamp(34px,4vw,58px);line-height:1.25;margin:0;letter-spacing:-.03em}
.guide-heading>p{margin:0;font-size:16px}
.price-flow{display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid var(--line)}
.price-card{padding:44px;background:var(--navy);color:#fff}
.price-card small{color:#5eb6ee;font-weight:900;letter-spacing:.18em}
.price-card h3{font-size:27px;margin:30px 0 12px}
.price-card>p{color:#cbd8e1}
.price-card ul{list-style:none;padding:18px 0;margin:24px 0;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.price-card li{padding:5px 0}
.price-card li::before{content:"—";color:#5eb6ee;margin-right:10px}
.price-card .price-note{font-size:12px;color:#9fb1be}
.price-card .button{margin-top:15px}
.flow-list{padding:22px 42px}
.flow-list article{display:grid;grid-template-columns:58px 1fr;gap:20px;padding:23px 0;border-bottom:1px solid var(--line)}
.flow-list article:last-child{border-bottom:0}
.flow-list span{font-size:12px;color:var(--red);font-weight:900;letter-spacing:.12em}
.flow-list h3{margin:0 0 5px;font-size:20px}
.flow-list p{margin:0;color:#566571;font-size:14px}
@media(max-width:850px){.guide{padding:80px 0}.guide-heading,.price-flow{grid-template-columns:1fr}.guide-heading{gap:24px}.flow-list{padding:16px 28px}}
@media(max-width:540px){.price-card{padding:30px}.flow-list{padding:10px 22px}.flow-list article{grid-template-columns:42px 1fr}}
.owners-title span{display:block;white-space:nowrap}
@media(max-width:540px){.owners-title{font-size:clamp(27px,8vw,34px)!important;letter-spacing:-.05em}}
.contact-direct a[target="_blank"]{font-size:16px;color:#d9e7f0}.contact-direct a[target="_blank"]:hover{color:#fff}.contact-direct a[target="_blank"] small{width:92px}
.line-qr{display:flex;align-items:center;gap:18px;margin:30px 0 0}.line-qr img{width:150px;height:150px;object-fit:contain;background:#fff;padding:7px}.line-qr figcaption{display:grid;gap:4px}.line-qr strong{font-size:18px}.line-qr span{max-width:220px;color:#c8d5df;font-size:13px;line-height:1.6}@media(max-width:540px){.line-qr img{width:132px;height:132px}.line-qr{align-items:flex-start}}
.hero-title{font-size:clamp(34px,4.2vw,56px)!important;line-height:1.16!important;letter-spacing:-.055em!important}.hero-title>span,.hero-title em span{display:block;white-space:nowrap}.hero-title em{display:block;margin-top:.12em}@media(max-width:540px){.hero-title{font-size:27px!important;letter-spacing:-.06em!important}}
.hero-lead .lead-line{display:block}.hero-lead .lead-line>span+span::before{content:""}@media(max-width:540px){.hero-lead .lead-line>span{display:block}.hero-lead{font-size:15px!important;line-height:1.7}.hero-lead .lead-line+.lead-line{margin-top:.18em}}

.service-more{display:block;position:relative;z-index:1;font-size:14px;font-weight:800;text-decoration:underline;text-underline-offset:4px;margin-top:16px}.owners-more{font-weight:800;text-decoration:underline;text-underline-offset:4px}
