:root{
  --navy:#102A43;
  --deep-navy:#0B1F33;
  --white:#FFFFFF;
  --pale-blue:#F2F8FC;
  --off-white:#F7F7F5;
  --gold:#B79A55;
  --turquoise:#18A6A6;
  --wine:#8E3040;
  --text:#333A40;
  --muted:#68737B;
  --line:#DDE2E5;
  --content:1160px;
  --reading:800px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--text);font-family:"Noto Sans JP","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:17px;line-height:1.9}
a{color:inherit}
.serif{font-family:"Noto Serif JP","Yu Mincho","YuMincho","Hiragino Mincho ProN",serif}
.site-header{position:relative;z-index:20;background:var(--white);border-bottom:1px solid var(--line)}
.header-inner{width:min(var(--content),calc(100% - 48px));min-height:82px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand{display:block;line-height:0}.brand img{width:206px;height:auto}
.desktop-nav{display:flex;align-items:center;gap:clamp(16px,2vw,31px);color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:13px;font-weight:600;white-space:nowrap}
.desktop-nav a{text-decoration:none}.desktop-nav a:hover{text-decoration:underline;text-underline-offset:5px}.desktop-nav .current{color:var(--gold);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.contact-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 20px;border-radius:999px;background:var(--navy);color:var(--white)!important;text-decoration:none!important;font-family:"Noto Sans JP",sans-serif;font-size:13px;font-weight:600}
.menu-button,.mobile-nav{display:none}
.eyebrow{display:flex;align-items:center;gap:11px;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.16em;line-height:1.4}.eyebrow:before{content:"";width:28px;height:1px;background:currentColor}
.section{padding:112px 24px}.section-soft{background:var(--off-white)}.section-blue{background:var(--pale-blue)}.section-navy{background:var(--deep-navy);color:var(--white)}
.section-inner{width:min(var(--content),100%);margin:0 auto}.reading{width:min(var(--reading),100%);margin:0 auto}
.section-title{margin:18px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:clamp(32px,3.3vw,44px);font-weight:600;letter-spacing:.035em;line-height:1.55}.section-navy .section-title{color:var(--white)}
.section-copy{margin:35px 0 0;font-size:17px;line-height:1.98}.section-copy p{margin:0 0 25px}.section-copy p:last-child{margin-bottom:0}

/* Hero: impression only; the concrete building explanation begins below. */
.service-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#FFFFFF 0%,#F7FBFE 52%,var(--pale-blue) 100%);border-bottom:1px solid var(--line)}
.service-hero-inner{width:min(1180px,calc(100% - 48px));min-height:468px;margin:0 auto;padding:68px 0 62px;display:grid;grid-template-columns:minmax(0,59%) minmax(0,41%);align-items:center;gap:28px}
.hero-copy{position:relative;z-index:1}.hero-title{margin:19px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:30px;font-weight:600;letter-spacing:.04em;line-height:1.5}.hero-main{margin:22px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:clamp(48px,4vw,56px);font-weight:600;letter-spacing:.015em;line-height:1.43}.hero-sub{max-width:690px;margin:25px 0 0;font-size:17px;line-height:1.92}
.hero-line-art{position:relative;min-height:330px;overflow:hidden}.hero-line-art svg{display:block;width:100%;height:100%}.hero-line-art .hero-layer{fill:none;stroke:#D7E1E8;stroke-width:1.2}.hero-line-art .hero-flow{fill:none;stroke:var(--navy);stroke-width:1.35}.hero-line-art .hero-gold-flow{fill:none;stroke:var(--gold);stroke-width:2.6}.hero-line-art .hero-fine{fill:none;stroke:#9FB3C8;stroke-width:1}.hero-line-art .hero-node{fill:var(--white);stroke:var(--navy);stroke-width:1.15}.hero-line-art .hero-gold-node{fill:#FCFAF4;stroke:var(--gold);stroke-width:1.45}

.why-block{margin:43px 0 0;padding:31px 36px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:clamp(23px,2.7vw,33px);line-height:1.78}.why-block p{margin:0}.public-note{margin:30px 0 0;color:var(--muted);font-size:13px;line-height:1.85}.public-note a{color:var(--navy);text-underline-offset:3px}

/* THE WHOLE PICTURE is the sole concrete building explanation. */
.building-layout{margin:54px auto 0;display:grid;grid-template-columns:152px minmax(0,1fr) 152px;gap:20px;align-items:center}.building-arrow{display:flex;align-items:center;justify-content:center;min-height:260px;color:var(--gold);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:17px;font-weight:600;line-height:1.7;text-align:center}.building-arrow.left:after{content:"↑";display:block;margin-left:12px;font-size:32px}.building-arrow.right:before{content:"↓";display:block;margin-right:12px;font-size:32px}.building-diagram{display:block;width:100%;height:auto}.jump-links{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:47px 0 0}.jump-links a{display:flex;align-items:center;min-height:64px;padding:12px 13px;border:1px solid var(--line);background:var(--white);color:var(--navy);font-size:13px;font-weight:700;line-height:1.5;text-decoration:none}.jump-links a:hover{border-color:var(--gold)}.jump-index{display:inline-block;min-width:28px;color:var(--gold);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:17px}

.service-section{scroll-margin-top:24px}.service-heading{max-width:810px;margin:0 auto;text-align:center}.service-meta{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.11em;line-height:1.5}.service-meta .tag{padding:4px 9px;border:1px solid currentColor;letter-spacing:.04em}.service-name{margin:16px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:clamp(26px,3vw,34px);font-weight:600;line-height:1.55}.service-heading h2{margin:17px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:clamp(32px,3.5vw,46px);font-weight:600;letter-spacing:.035em;line-height:1.55}.service-lead{margin:20px auto 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:20px;line-height:1.75}
.service-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(300px,2fr);gap:70px;align-items:start;margin-top:62px}.service-grid.reverse{grid-template-columns:minmax(300px,2fr) minmax(0,3fr)}.service-grid.reverse .service-content{order:2}.service-grid.reverse .service-visual{order:1}.service-content{min-width:0}.service-content h3{margin:48px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:22px;font-weight:600;line-height:1.65}.service-content h3:first-child{margin-top:0}.service-content p{max-width:780px;margin:18px 0 0;font-size:17px;line-height:1.96}

/* The order of every service is shared: visual, voices, diagnosis, support, original, before-after, CTA. */
.service-visual{position:sticky;top:32px}.visual-card{position:relative;padding:28px 24px;border-top:1px solid var(--gold);border-bottom:1px solid var(--line);background:var(--white)}.visual-card svg{display:block;width:100%;height:auto;margin:0 auto}.visual-caption{margin:17px 0 0;color:var(--muted);font-size:13px;line-height:1.75}
.voice-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 0;padding:0;list-style:none}.voice-list li{position:relative;display:flex;align-items:flex-start;min-height:132px;margin:0;padding:24px 17px 17px 37px;background:var(--pale-blue);border-top:1px solid #C7D6E2;font-size:15px;line-height:1.8}.voice-list li:before{content:"“";position:absolute;left:15px;top:12px;color:var(--wine);font-family:"Noto Serif JP",serif;font-size:30px;line-height:1}
.service-content h3:not(:first-child){padding-left:16px;border-left:2px solid var(--gold)}.service-content h3:first-child{padding-left:0;border-left:0}.support-list{margin:19px 0 0;padding:0;list-style:none}.support-list li{position:relative;margin:0 0 13px;padding-left:1.65em;line-height:1.85}.support-list li:before{content:"✓";position:absolute;left:0;top:.05em;color:var(--navy);font-size:.92em;font-weight:700}
.method-list{display:grid;gap:11px;margin:21px 0 0}.method-card{position:relative;padding:28px 20px 18px;background:var(--off-white);border-top:1px solid var(--gold)}.method-card:before{content:"WASOU ORIGINAL";position:absolute;top:9px;left:20px;color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.14em;line-height:1}.method-card strong{display:block;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:18px;font-weight:600;line-height:1.55}.method-card p{margin:6px 0 0!important;color:var(--text);font-size:15px!important;line-height:1.75!important}
.before-after{display:grid;gap:12px;margin:25px 0 0}.change-row{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:11px;align-items:stretch}.change-before,.change-after{padding:18px 17px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px;line-height:1.75}.change-before{background:#FEF8F8;border-color:#E8C9CE}.change-after{background:#F3FBFB;border-color:#9FCACA;font-weight:500}.change-label{display:block;margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:.13em}.change-before .change-label{color:var(--wine)}.change-after .change-label{color:var(--navy)}.change-arrow{align-self:center;color:var(--gold);font-size:23px;text-align:center}
.service-cta{margin:45px 0 0;padding:27px 0;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);text-align:center}.service-cta p{max-width:none;margin:0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:19px;line-height:1.75}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;margin-top:23px;padding:12px 25px;border:1px solid var(--turquoise);border-radius:999px;background:var(--turquoise);color:var(--white);font-size:15px;font-weight:700;line-height:1.4;text-align:center;text-decoration:none}.button:hover{background:#128E8E;border-color:#128E8E}

.examples{margin:66px auto 0}.examples-title{margin:0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:25px;font-weight:600;line-height:1.6;text-align:center}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:28px 0 0}.case-card{position:relative;padding:25px 22px;border-top:1px solid var(--gold);border-bottom:1px solid var(--line);background:var(--white)}.case-industry{margin:0;color:var(--gold);font-size:13px;font-weight:700}.case-card h4{margin:19px 0 0;color:var(--muted);font-size:12px;line-height:1.7;letter-spacing:.12em}.case-card p{margin:3px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:22px;font-weight:600;line-height:1.55}.case-card .after-label{margin-top:19px;color:var(--wine)}.case-card .after-label+p{color:var(--wine);font-size:25px}.case-card .retained{margin-top:18px;color:var(--muted);font-family:"Noto Sans JP",sans-serif;font-size:13px;font-weight:400;line-height:1.7}.principle-band{display:flex;justify-content:center;gap:17px;margin:31px auto 0;padding:15px 20px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:18px;line-height:1.5}

.process-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:51px 0 0}.process-grid:before{content:"";position:absolute;top:43px;right:9%;left:9%;height:1px;background:var(--gold)}.process-card{position:relative;padding:0 21px;text-align:center}.process-step{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:86px;height:86px;margin:0 auto;background:var(--white);border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:14px;font-weight:600;line-height:1.4}.process-card h3{margin:22px 0 0;color:var(--navy);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:21px;font-weight:600;line-height:1.55}.process-card p{margin:13px 0 0;font-size:15px;line-height:1.82}
.numbers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:47px 0 0}.number-card{padding:28px 18px;border-top:1px solid rgba(255,255,255,.55);border-bottom:1px solid rgba(255,255,255,.24);text-align:center}.number-card strong{display:block;color:var(--white);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:42px;font-weight:600;line-height:1.2;white-space:nowrap}.number-card span{display:block;margin-top:9px;color:rgba(255,255,255,.85);font-size:14px;line-height:1.6}.numbers-copy{max-width:720px;margin:42px auto 0;color:rgba(255,255,255,.9);font-size:17px;line-height:1.95;text-align:center}
.faq{width:min(900px,100%);margin:48px auto 0;border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-question{display:flex;align-items:flex-start;width:100%;padding:23px 2px;border:0;background:transparent;color:var(--navy);font:inherit;font-family:"Noto Serif JP","Yu Mincho",serif;font-size:19px;font-weight:600;line-height:1.65;text-align:left;cursor:pointer}.faq-question:before{content:"Q.";flex:0 0 auto;margin-right:14px;color:var(--gold)}.faq-question:after{content:"＋";flex:0 0 auto;margin-left:auto;color:var(--gold);font-family:"Noto Sans JP",sans-serif;font-size:24px;font-weight:400;line-height:1}.faq-question[aria-expanded="true"]:after{content:"−"}.faq-answer{padding:0 2px 24px 38px;color:var(--text);font-size:16px;line-height:1.9}.faq-answer[hidden]{display:none}
.final-cta{text-align:center}.final-cta .eyebrow{justify-content:center;color:var(--gold)}.final-copy{max-width:720px;margin:33px auto 0;color:rgba(255,255,255,.9);font-size:18px;line-height:2}.brand-copy{margin:31px 0 0;color:var(--white);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:29px;font-weight:600;line-height:1.65}.final-actions{display:flex;justify-content:center;gap:14px;margin:37px auto 0}.button-primary{background:var(--turquoise);border-color:var(--turquoise)}.button-secondary{background:transparent;border-color:rgba(255,255,255,.7);color:var(--white)}.button-secondary:hover{background:var(--white);border-color:var(--white);color:var(--navy)}.cta-notes{margin:24px 0 0;color:rgba(255,255,255,.72);font-size:13px;line-height:1.75}
.site-footer{padding:35px 24px;background:var(--navy);color:rgba(255,255,255,.82)}.footer-inner{width:min(var(--content),100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:34px}.footer-logo{width:205px;height:auto}.footer-copy{font-size:13px;line-height:1.85;text-align:right}
.desktop-nav a:focus-visible,.contact-link:focus-visible,.button:focus-visible,.faq-question:focus-visible{outline:3px solid var(--turquoise);outline-offset:3px}
.sp-only-br,.sp-break{display:none}

@media(max-width:900px){
  .header-inner{min-height:70px}.brand img{width:190px}.desktop-nav{display:none}.menu-button{display:inline-flex;width:48px;height:48px;padding:0;border:0;background:transparent;color:var(--navy);align-items:center;justify-content:center;font-size:27px;cursor:pointer}.mobile-nav{display:block;position:absolute;z-index:30;top:100%;right:0;left:0;padding:14px 24px 24px;background:var(--white);border-bottom:1px solid var(--line)}.mobile-nav[hidden]{display:none}.mobile-nav a{display:block;padding:13px 0;border-bottom:1px solid var(--line);color:var(--navy);font-size:15px;font-weight:600;text-decoration:none}.mobile-nav a.current{color:var(--gold)}.mobile-nav a:last-child{margin-top:16px;padding:13px 18px;border:0;border-radius:999px;background:var(--navy);color:var(--white);text-align:center}
  .service-hero-inner{grid-template-columns:1fr;gap:25px;padding:66px 0 60px}.hero-line-art{max-width:560px;width:100%;min-height:288px;margin:0 auto}.service-grid,.service-grid.reverse{grid-template-columns:1fr;gap:40px}.service-grid.reverse .service-content,.service-grid.reverse .service-visual{order:initial}.service-visual{position:static;max-width:620px;width:100%;margin:0 auto}.case-grid{grid-template-columns:1fr}.footer-inner{align-items:flex-start;flex-direction:column}.footer-copy{text-align:left}
}
@media(max-width:640px){
  body{font-size:16px}.header-inner,.service-hero-inner{width:calc(100% - 40px)}.brand img{width:174px}.section{padding:76px 20px}.service-hero-inner{min-height:0;padding:62px 0 56px;gap:26px}.hero-title{margin-top:16px;font-size:27px}.hero-main{margin-top:20px;font-size:34px;letter-spacing:0;line-height:1.55}.hero-sub{margin-top:23px;font-size:16px;line-height:1.95}.hero-line-art{min-height:228px}.section-title{font-size:28px;line-height:1.62}.section-copy{margin-top:28px;font-size:16px;line-height:1.95}.section-copy p{margin-bottom:23px}.why-block{margin-top:35px;padding:24px 0;font-size:21px;line-height:1.82}.public-note{font-size:13px}
  .building-layout{grid-template-columns:1fr;gap:16px;margin-top:37px}.building-arrow{min-height:0;font-size:16px}.building-arrow.left{order:1}.building-diagram{order:2}.building-arrow.right{order:3}.building-arrow.left:after{content:"↑";margin-left:10px;font-size:29px}.building-arrow.right:before{content:"↓";margin-right:10px;font-size:29px}.jump-links{grid-template-columns:1fr;gap:9px;margin-top:35px}.jump-links a{min-height:52px;font-size:14px}
  .service-heading{text-align:left}.service-meta{justify-content:flex-start;font-size:12px}.service-name{font-size:24px}.service-heading h2{font-size:29px;line-height:1.65}.service-lead{font-size:18px;line-height:1.75}.service-grid{margin-top:39px;gap:34px}.service-content h3{margin-top:38px;font-size:21px}.service-content p{font-size:16px;line-height:1.95}.service-content h3:not(:first-child){padding-left:13px}.voice-list{grid-template-columns:1fr;gap:8px}.voice-list li{min-height:0;padding:19px 16px 18px 34px;font-size:16px;line-height:1.85}.voice-list li:before{left:14px;top:9px}.support-list li{margin-bottom:12px;padding-left:1.5em;line-height:1.85}.method-card{padding:27px 16px 17px}.method-card:before{left:16px}.method-card strong{font-size:17px}.method-card p{font-size:15px!important}.visual-card{padding:22px 18px}.change-row{grid-template-columns:1fr;gap:0}.change-before,.change-after{font-size:15px}.change-arrow{padding:5px 0;font-size:21px;transform:rotate(90deg)}.service-cta{margin-top:39px;padding:24px 0}.service-cta p{font-size:18px}.button{width:100%;min-height:52px;margin-top:20px;padding:12px 16px;font-size:15px;white-space:nowrap}.examples{margin-top:48px}.examples-title{font-size:23px;text-align:left}.case-grid{gap:12px}.case-card{padding:22px 18px}.case-card p{font-size:21px}.case-card .after-label+p{font-size:24px}.principle-band{gap:11px;padding:13px 7px;font-size:16px}
  .process-grid{grid-template-columns:1fr;gap:0;margin-top:38px}.process-grid:before{top:30px;bottom:30px;left:42px;width:1px;height:auto}.process-card{display:grid;grid-template-columns:84px 1fr;column-gap:18px;padding:0 0 30px;text-align:left}.process-step{width:72px;height:72px;margin:0;font-size:12px}.process-card h3{margin:6px 0 0;font-size:21px}.process-card p{grid-column:2;margin:9px 0 0;font-size:16px}.numbers-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:35px}.number-card{padding:23px 11px}.number-card strong{font-size:32px}.number-card span{font-size:13px}.numbers-copy{margin-top:32px;font-size:16px;text-align:left}.faq{margin-top:35px}.faq-question{padding:19px 0;font-size:18px;line-height:1.7}.faq-answer{padding:0 0 20px 31px;font-size:16px}.final-copy{font-size:16px;line-height:1.95;text-align:left}.brand-copy{font-size:24px}.final-actions{flex-direction:column;gap:0;margin-top:30px}.button-secondary{margin-top:12px}.site-footer{padding:30px 20px}.footer-logo{width:175px}.footer-copy{font-size:12px}.sp-only-br,.sp-break{display:inline}.pc-only-br{display:none}
}
/* Service-content hierarchy refinements. */
.service-content h3{padding-left:0;border-left:0}
.service-content h3.assessment-title{max-width:780px;padding:3px 0 3px 16px;border-left:2px solid var(--gold)}
.service-content h3.key-statement{max-width:780px;margin-top:34px;padding:14px 0 14px 18px;border-left:3px solid var(--gold);background:linear-gradient(90deg,#FCFAF4 0%,rgba(252,250,244,0) 78%);font-size:25px;line-height:1.72}
@media(max-width:900px){.service-grid:not(.reverse) .service-visual,.service-grid.reverse .service-visual{order:-1}.service-grid.reverse .service-content{order:0}}
@media(max-width:640px){.service-content h3.assessment-title{padding-left:13px}.service-content h3.key-statement{padding:12px 0 12px 14px;font-size:22px;line-height:1.72}}

/* Hero-copy line control: two lines on desktop, meaningful three-line maximum on mobile. */
.service-hero-inner{grid-template-columns:60% 40%;gap:0}
.hero-main{font-size:clamp(48px,3.6vw,52px)}
.hero-main-first{white-space:nowrap}
@media(max-width:900px){.service-hero-inner{grid-template-columns:1fr;gap:25px}}
@media(max-width:640px){.hero-main{font-size:32px;letter-spacing:-.045em}.hero-main-first{white-space:nowrap}}

@media(max-width:380px){.hero-main{font-size:30px;letter-spacing:-.055em}}

.case-card .after-label{position:relative;padding-top:25px}
.case-card .after-label:before{content:"↓";position:absolute;top:0;left:0;color:var(--gold);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:18px;line-height:1}

.case-card{border:1px solid var(--line);border-top:2px solid var(--gold)}
