:root {
  --ink:#171717;
  --ink-soft:#55534f;
  --concrete:#666;
  --paper:#f4f2ed;
  --paper-2:#ebe8e1;
  --line:#d2cfc7;
  --navy:#273a57;
  --red:#a63c32;
  --white:#fffdfa;
  --mono:ui-monospace,"SFMono-Regular","SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --sans:Inter,"Helvetica Neue","Yu Gothic",YuGothic,"Hiragino Sans","Hiragino Kaku Gothic ProN",Arial,sans-serif;
  --display-weight:600;
  --heading-weight:500;
  --page-title-size:clamp(41px,4.4vw,64px);
  --max:1240px;
  --gutter:clamp(20px,4vw,64px);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:98px}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.8;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-weight:var(--heading-weight)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
::selection{background:var(--red);color:white}
:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.skip-link{position:fixed;z-index:201;top:10px;left:10px;background:var(--navy);color:white;padding:10px 14px;transform:translateY(-160%);transition:transform .15s}
.skip-link:focus{transform:translateY(0)}
.site-intro{display:none}
.show-intro .site-intro{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:28px;background:#fff;animation:site-intro-out 1.8s ease both}
.site-intro-logo{width:clamp(220px,25vw,320px);height:auto;animation:site-intro-in .8s cubic-bezier(.22,1,.36,1) .1s both}
@keyframes site-intro-in{from{opacity:0;transform:translateY(5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes site-intro-out{0%,65%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden;pointer-events:none}}
@media(prefers-reduced-motion:reduce){.show-intro .site-intro{display:none;animation:none}.site-intro-logo{animation:none}}
@media print{.show-intro .site-intro{display:none}}
.container{width:min(var(--max),calc(100% - var(--gutter)*2));margin-inline:auto}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.section{padding:clamp(88px,12vw,168px) 0;border-top:1px solid var(--line);position:relative;overflow:hidden}
.section-head{display:grid;grid-template-columns:1fr;gap:clamp(24px,5vw,72px);margin-bottom:clamp(48px,8vw,104px)}
.section-head>div{min-width:0}
.section-kicker{color:var(--red);padding-top:12px}
.section-title{font-size:clamp(48px,8.5vw,128px);font-weight:var(--heading-weight);line-height:.88;letter-spacing:-.055em;text-transform:uppercase}
.section-title-ja{display:block;margin-top:24px;font-size:clamp(17px,2vw,24px);font-weight:500;line-height:1.5;letter-spacing:.04em;text-transform:none}
.section-num{position:absolute;right:var(--gutter);top:24px;color:var(--red);font:500 clamp(76px,13vw,190px)/1 var(--mono);opacity:.12;pointer-events:none}
.text-link{display:inline-flex;align-items:center;gap:14px;color:var(--red);font:500 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.text-link::after{content:"→";font-size:17px;transition:transform .2s ease}.text-link:hover::after{transform:translateX(5px)}

.site-header{height:82px;position:fixed;inset:0 0 auto;z-index:50;background:rgba(244,242,237,.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(23,23,23,.12)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand-logo{width:150px;height:50px;object-fit:contain;object-position:left center}
.nav-list{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px);list-style:none;font:500 10px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase}
.nav-list a{padding:12px 0;position:relative}.nav-list a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:100%;bottom:5px;height:1px;background:var(--red);transition:right .2s}.nav-list a:hover::after{right:0}
.nav-contact{background:var(--red);color:white;padding:14px 20px!important}
.nav-toggle{display:none;border:0;background:none;font:500 11px var(--mono);letter-spacing:.12em}

.hero{min-height:100svh;padding-top:82px;position:relative;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.hero-media{position:absolute;inset:82px 0 0;z-index:-2}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:grayscale(1) contrast(1.04)}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(244,242,237,.96) 0%,rgba(244,242,237,.78) 48%,rgba(244,242,237,.38) 100%)}
.hero-inner{padding-block:clamp(72px,11vh,132px) 52px}
.hero-copy{max-width:970px}
.hero-copy .eyebrow{color:var(--red);margin-bottom:24px}
.hero h1{font-size:clamp(58px,10.8vw,166px);font-weight:var(--heading-weight);line-height:.82;letter-spacing:-.065em;text-transform:uppercase;max-width:900px}
.hero-ja{font-size:clamp(22px,3vw,42px);font-weight:500;line-height:1.45;letter-spacing:.015em;margin-top:34px;max-width:760px}
.hero-ja em{font-style:normal;color:var(--red)}
.hero-description{margin-top:20px;max-width:650px;color:var(--ink-soft);font-size:clamp(14px,1.3vw,17px)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-width:260px;padding:18px 20px;border:1px solid var(--ink);font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;transition:.2s}
.button::after{content:"→";font-size:17px}.button:hover{background:var(--ink);color:var(--paper)}
.button-red{background:var(--red);border-color:var(--red);color:white}.button-red:hover{background:#7f2c25;border-color:#7f2c25}
.hero-foot{margin-top:54px;padding-top:18px;border-top:1px solid rgba(23,23,23,.3);display:flex;justify-content:space-between;gap:24px;color:var(--ink-soft);font:500 10px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase}

.needs-nav{padding:clamp(52px,6vw,78px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper-2)}
.needs-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:30px}
.needs-head h2{font-size:clamp(30px,4vw,52px);line-height:1.25;letter-spacing:-.025em}
.needs-head p{max-width:34em;color:var(--ink-soft)}
.needs-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--line);gap:1px}
.need-card{min-width:0;background:var(--paper);padding:26px 22px;display:flex;flex-direction:column;min-height:190px;transition:background .2s,color .2s,box-shadow .2s}
.need-card span{color:var(--red);font:500 11px/1.5 var(--mono);letter-spacing:.12em}
.need-card strong{font-weight:var(--heading-weight);font-size:18px;line-height:1.55;margin-top:20px}
.need-card small{color:var(--ink-soft);font-size:14px;line-height:1.75;margin-top:auto;padding-top:18px}
.need-card::after{content:"→";align-self:flex-end;color:var(--red);font-size:18px;margin-top:14px}
.need-card:hover,.need-card:focus-visible{background:var(--navy);color:white;box-shadow:inset 0 -3px var(--red)}
.need-card:hover small,.need-card:focus-visible small{color:rgba(255,255,255,.72)}
.need-card:hover>span,.need-card:focus-visible>span,.need-card:hover::after,.need-card:focus-visible::after{color:#e17669}
.need-card:focus-visible{outline-color:#e17669}

.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,8vw,120px);align-items:start}
.lead{font-size:clamp(24px,3.5vw,48px);line-height:1.4;letter-spacing:-.02em}
.body-copy{color:var(--ink-soft);font-size:15px;max-width:580px}.body-copy p+p{margin-top:18px}
.tieup-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--line);gap:1px;margin-top:48px}
.tieup-summary div{background:var(--paper);padding:24px 26px}
.tieup-summary dt{color:var(--concrete,#8c8c8c);font:500 11px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.tieup-summary dd{font-size:16px;line-height:1.8;margin-top:10px}

.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:70px}
.route{background:var(--paper);padding:clamp(28px,4vw,56px)}
.route-no{color:var(--red);font:500 11px var(--mono);letter-spacing:.15em}.route h3{font-size:clamp(25px,3vw,40px);line-height:1.25;margin:0 0 34px;letter-spacing:-.025em}
.flow{list-style:none;display:grid;gap:0}.flow li{display:grid;grid-template-columns:34px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line);position:relative}.flow li::before{content:attr(data-step);color:var(--red);font:500 10px var(--mono)}
.flow strong{font-weight:var(--heading-weight);display:block;font-size:15px;margin-bottom:4px}.flow span{display:block;color:var(--ink-soft);font-size:12px;line-height:1.65}.flow li:not(:last-child)::after{content:"↓";position:absolute;right:0;bottom:-12px;color:var(--red);background:var(--paper);padding:0 5px;z-index:1}
.route-note{margin-top:30px;padding-top:20px;border-top:2px solid var(--red);font-size:14px;font-weight:500}
.tieup-visual{margin-top:1px;display:grid;grid-template-columns:1.2fr .8fr;min-height:430px;background:var(--navy);color:white}
.tieup-visual img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);opacity:.8}
.tieup-visual-copy{padding:clamp(36px,6vw,76px);display:flex;flex-direction:column;justify-content:space-between}.tieup-visual-copy strong{font-size:clamp(28px,4vw,54px);line-height:1.15;letter-spacing:-.03em}.tieup-visual-copy p{color:rgba(255,255,255,.72);font-size:14px}

.dark-section{background:var(--navy);color:white;border-color:rgba(255,255,255,.18)}
.dark-section .section-kicker{color:#e17669}.dark-section .section-num{color:#e17669}.dark-section .body-copy{color:rgba(255,255,255,.7)}
.specs{border-top:1px solid rgba(255,255,255,.3);margin-top:40px}.spec{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:19px 0;border-bottom:1px solid rgba(255,255,255,.18)}.spec dt{color:#e17669;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase}.spec dd{font-size:15px}.consulting-badge{display:inline-block;margin-top:32px;background:var(--red);padding:12px 16px;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase}

.services-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:64px}.services-intro h2{font-size:clamp(42px,7vw,96px);line-height:.95;letter-spacing:-.05em}.services-intro p{max-width:460px;color:var(--ink-soft)}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.service-card{background:var(--paper);display:grid;grid-template-columns:.85fr 1.15fr;min-height:360px;cursor:pointer;transition:background .2s,color .2s;position:relative}
.service-card:hover,.service-card:focus-visible{background:var(--red);color:white;outline-offset:-5px}.service-card:hover .service-desc,.service-card:focus-visible .service-desc{color:rgba(255,255,255,.78)}
.service-image{overflow:hidden}.service-image img{width:100%;height:100%;object-fit:cover;filter:none;transition:transform .4s}.service-card:hover img{filter:none;transform:scale(1.025)}
.service-content{padding:clamp(24px,3vw,42px);display:flex;flex-direction:column}.service-no{font:500 10px var(--mono);letter-spacing:.13em;color:var(--red)}.service-card:hover .service-no{color:white}.service-content h3{font-size:clamp(22px,2.5vw,34px);line-height:1.2;margin:0 0 8px}.service-ja{font-size:12px}.service-desc{color:var(--ink-soft);font-size:13px;margin-top:auto;padding-top:26px}.service-cta{margin-top:18px;font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase}

.works-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:32px}.works-head h2{font-size:clamp(46px,8vw,110px);line-height:.9;letter-spacing:-.055em}.works-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px}
.work-card{display:block;background:var(--paper);position:relative;min-width:0}.work-media{aspect-ratio:4/5;overflow:hidden}.work-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}.work-card:hover img{transform:scale(1.015)}.work-placeholder{aspect-ratio:16/10;background:var(--red);color:white;display:grid;place-items:center;font:500 clamp(28px,5vw,64px)/1 var(--mono);letter-spacing:.08em}
.work-content{padding:16px 0 0}.work-meta{color:var(--red);font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase}.work-content h3{font-size:clamp(21px,2.6vw,34px);line-height:1.35;margin:0}.work-content p{color:var(--ink-soft);font-size:16px;margin-top:8px}.work-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.work-view{font-size:13px;line-height:1.8;border-bottom:1px solid var(--line);white-space:nowrap}

.news-row{display:grid;grid-template-columns:150px 1fr 30px;gap:20px;align-items:center;padding:28px 0;border-top:1px solid var(--line);font-size:14px}.news-row:last-child{border-bottom:1px solid var(--line)}.news-date,.news-cat{font:500 10px var(--mono);letter-spacing:.1em}.news-cat{color:var(--red)}.news-arrow{color:var(--red);font-size:18px}

.contact-section{background:var(--navy);color:white;padding:clamp(84px,9vw,124px) 0}.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(50px,9vw,130px)}.contact-copy h2{font-size:clamp(58px,8vw,114px);line-height:.84;letter-spacing:-.06em;text-transform:uppercase}.contact-copy p{margin-top:30px;color:rgba(255,255,255,.78);max-width:400px}.contact-logo{width:190px;margin-top:70px}
.contact-grid-with-map{grid-template-areas:"copy form" "location form";grid-template-rows:auto 1fr;row-gap:36px}
.contact-grid-with-map>.contact-copy{grid-area:copy}
.contact-grid-with-map>.form{grid-area:form}
.contact-location{grid-area:location;min-width:0;max-width:400px;scroll-margin-top:100px}
.contact-location h3{font-size:28px;line-height:1.2;font-weight:var(--heading-weight);letter-spacing:.02em}
.contact-map{display:block;width:100%;height:240px;border:0}
.contact-location p{margin-top:16px;color:rgba(255,255,255,.78);font-size:14px;line-height:1.85}
.contact-location .contact-location-intro{margin:12px 0 24px;font-size:16px;color:inherit}
.contact-location .text-link{margin-top:10px;font-size:14px;letter-spacing:0;text-transform:none}
@media(max-width:900px){.contact-grid-with-map{grid-template-areas:"copy" "form" "location";grid-template-rows:auto}}
.form{display:grid;grid-template-columns:1fr 1fr;gap:26px 20px}.field{display:grid;gap:9px}.field-full{grid-column:1/-1}.field label{font:500 10px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.8)}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.48);background:transparent;color:white;padding:13px 2px;border-radius:0}.field select{background:var(--navy)}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:#e17669}.consent{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:12px;color:rgba(255,255,255,.82)}.consent input{margin-top:6px;accent-color:var(--red)}.consent a{text-decoration:underline;text-underline-offset:3px}.form-note{grid-column:1/-1;color:rgba(255,255,255,.72);font-size:13px;line-height:1.75}.submit{grid-column:1/-1;border:1px solid rgba(255,255,255,.72);background:var(--red);color:white;padding:20px 24px;display:flex;justify-content:space-between;cursor:pointer;font:600 12px var(--sans);letter-spacing:.06em}.submit:hover{background:#7f2c25}.form-status{grid-column:1/-1;min-height:24px;font-size:12px;color:#f0a398}

.site-footer{background:#18263a;color:white;border-top:1px solid rgba(255,255,255,.2);padding:42px 0}.footer-inner{display:flex;justify-content:space-between;align-items:end;gap:40px}.footer-logo{width:160px}.footer-nav{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:24px;color:rgba(255,255,255,.72);font:500 11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase}.footer-nav a:hover{text-decoration:underline;text-underline-offset:4px}.footer-meta{text-align:right;color:rgba(255,255,255,.55);font:10px/1.8 var(--mono);letter-spacing:.08em}

.page-hero{padding:150px 0 72px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(58px,9vw,126px);line-height:.88;letter-spacing:-.055em;text-transform:uppercase}.page-hero p{margin-top:28px;max-width:620px;color:var(--ink-soft)}
.company-statement{padding:110px 0;display:grid;grid-template-columns:1fr 1fr;gap:80px}.company-statement h2{font-size:clamp(32px,5vw,64px);line-height:1.3}.company-table{border-top:1px solid var(--ink)}.company-row{display:grid;grid-template-columns:170px 1fr;gap:30px;padding:23px 0;border-bottom:1px solid var(--line)}.company-row dt{font:400 14px/1.6 var(--sans);letter-spacing:0;color:var(--red)}.company-row dd{font-size:14px}
.work-detail{padding:90px 0;border-top:1px solid var(--line)}.work-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,110px);align-items:start}.work-detail img,.work-detail .work-placeholder{width:100%;aspect-ratio:4/3;object-fit:cover}.work-detail h2{font-size:clamp(34px,5vw,68px);line-height:1.1;margin:0 0 28px}.detail-list{margin-top:30px;border-top:1px solid var(--line)}.detail-list li{list-style:none;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}
.article{padding:90px 0 150px}.article-inner{max-width:760px}.article time{font:500 11px var(--mono);color:var(--red)}.article h2{font-size:clamp(34px,5vw,60px);line-height:1.35;margin:20px 0 45px}.article p+p{margin-top:24px}

[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}[data-reveal].is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1;transform:none;transition:none}.service-card img,.work-card img{transition:none}}
@media(max-width:900px){.section-head{grid-template-columns:1fr}.section-kicker{padding:0}.nav-toggle{display:block;min-width:44px;min-height:44px;cursor:pointer}.site-nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:22px var(--gutter)}.site-nav.is-open{display:block}.nav-list{align-items:stretch;flex-direction:column;gap:0}.nav-list a{display:block;padding:16px 0}.nav-contact{text-align:center;margin-top:12px}.hero-media::after{background:rgba(244,242,237,.78)}.hero h1{font-size:clamp(56px,15vw,110px)}.hero-foot{flex-direction:column}.needs-grid{grid-template-columns:repeat(2,1fr)}.intro-grid,.services-intro,.contact-grid,.company-statement,.work-detail-grid{grid-template-columns:1fr}.route-grid,.tieup-visual,.service-grid{grid-template-columns:1fr}.tieup-visual img{min-height:380px}.service-card{min-height:330px}.contact-logo{display:none}.company-statement{gap:40px}.news-row{grid-template-columns:100px 1fr 20px}.news-cat{display:none}}
@media(max-width:600px){html{scroll-padding-top:82px}.site-header{height:68px}.brand-logo{width:130px}.site-nav{top:68px}.hero{padding-top:68px}.hero-media{inset:68px 0 0}.hero-inner{padding-bottom:34px}.hero h1{font-size:clamp(52px,17vw,82px)}.hero-ja{font-size:21px}.hero-actions{display:grid}.button{min-width:0;width:100%}.needs-head,.needs-grid,.tieup-summary{grid-template-columns:1fr}.need-card{min-height:0}.section{padding:76px 0}.section-title{font-size:clamp(38px,11.5vw,50px);line-height:.94;letter-spacing:-.045em;max-inline-size:100%;text-wrap:wrap;overflow-wrap:anywhere}.section-num{display:none}.route{padding:28px 22px}.tieup-visual-copy{min-height:340px}.service-card{grid-template-columns:1fr;min-height:0}.service-image{aspect-ratio:16/9}.service-content{min-height:270px}.works-grid{grid-template-columns:1fr}.news-row{grid-template-columns:88px 1fr 18px;padding:22px 0}.contact-section{padding:76px 0}.contact-copy h2{font-size:50px}.form{grid-template-columns:1fr}.field-full,.consent,.form-note,.submit,.form-status{grid-column:1}.footer-inner{align-items:start;flex-direction:column}.footer-meta{text-align:left}.company-row{grid-template-columns:1fr;gap:7px}.page-hero{padding:112px 0 58px}.work-detail{padding:70px 0}}

/* =========================================================
   CLASSIC BASE — original quiet navy design + red micro-accent
   ========================================================= */
:root{
  --ink:#1a1a1a;
  --ink-soft:#4f4f4d;
  --paper:#f2f1ee;
  --paper-2:#e9e8e3;
  --line:#d9d9d6;
  --navy:#2b3a55;
  --red:#a54a42;
}
body{font-weight:400}
.section{padding:clamp(84px,8vw,116px) 0}
.section-head{grid-template-columns:1fr;margin-bottom:clamp(36px,5vw,56px)}
.section-kicker{color:var(--concrete,#8c8c8c)}
.section-title{font-size:clamp(52px,7vw,104px);font-weight:var(--display-weight);line-height:.9;letter-spacing:-.05em}
.section-title-ja{font-weight:var(--heading-weight)}
.section-num{color:var(--line);opacity:1;font-weight:400}
.lead{font-weight:400}

.site-header{background:rgba(242,241,238,.94);border-top:4px solid var(--navy)}
.nav-contact{background:var(--navy);color:white}
.nav-list a:not(.nav-contact)::after{background:var(--red)}

.hero-media::after{background:linear-gradient(90deg,rgba(242,241,238,.94),rgba(242,241,238,.82) 52%,rgba(242,241,238,.55))}
.hero-copy .eyebrow{color:var(--ink-soft)}
.hero h1{font-size:clamp(56px,8.5vw,128px);font-weight:var(--display-weight);line-height:.86;letter-spacing:-.055em}
.hero-ja{font-size:clamp(20px,2.5vw,34px);font-weight:400}
.hero-ja em{color:inherit;border-bottom:2px solid var(--red)}
.button{font-weight:400;background:transparent}
.button-red{background:var(--navy);border-color:var(--navy);color:white;box-shadow:inset 0 -3px var(--red)}
.button-red:hover{background:#202e46;border-color:#202e46}

.text-link{color:inherit;font-weight:400}.text-link::after{color:var(--red)}
.dark-section .text-link::after{color:#e17669}
.dark-section .text-link:focus-visible{outline-color:#e17669}
.route-no,.flow li::before{color:var(--concrete,#8c8c8c)}
.flow li:not(:last-child)::after{color:var(--red)}
.route-note{border-top:1px solid var(--red)}
.tieup-visual-copy .text-link{color:white}.tieup-visual-copy .text-link::after{color:#d78a83}

.dark-section .section-kicker{color:rgba(255,255,255,.6)}
.dark-section .section-num{color:rgba(255,255,255,.08)}
.consulting-badge{background:transparent;border:1px solid rgba(255,255,255,.35);box-shadow:inset 3px 0 var(--red)}

.services-intro h2,.works-head h2,.page-hero h1,.contact-copy h2{font-weight:var(--display-weight);letter-spacing:-.055em}
.services-intro .lead>span,.hero-description>span{display:inline-block;max-width:100%}
.company-statement h2>span{display:inline-block;max-inline-size:100%}
.service-no{color:var(--concrete,#8c8c8c)}
.service-card:hover,.service-card:focus-visible{background:var(--paper);color:var(--ink);box-shadow:inset 0 -3px var(--red)}
.service-card:hover .service-desc,.service-card:focus-visible .service-desc{color:var(--ink-soft)}
.service-card:hover .service-no{color:var(--concrete,#8c8c8c)}
.service-card:hover img{filter:none}
.service-cta{color:var(--red)}

.work-meta{color:var(--concrete,#8c8c8c)}
.work-placeholder{background:var(--paper-2);color:var(--navy);border-top:3px solid var(--red);font-weight:800}
.news-cat{color:var(--concrete,#8c8c8c)}
.news-arrow{color:var(--red)}

.contact-section{background:var(--navy)}
.submit{background:var(--paper);color:var(--navy);box-shadow:inset 0 -3px var(--red)}
.submit:hover{background:white}
.form-status{color:#e7c1bd}

.page-hero .section-kicker,.company-row dt,.article time{color:var(--concrete,#8c8c8c)}
.company-row dt::before{content:"";display:inline-block;width:18px;height:1px;background:var(--red);vertical-align:middle;margin-right:9px}

@media(max-width:900px){
  .hero-media::after{background:rgba(242,241,238,.78)}
  .hero h1{font-size:clamp(52px,12vw,88px)}
}
@media(max-width:600px){
  .section{padding:82px 0}
  .hero h1{font-size:clamp(48px,14vw,70px)}
  .section-title{font-size:clamp(43px,13vw,66px)}
}

/* Classic grid proportions */
@media(min-width:1100px){
  .service-grid{grid-template-columns:repeat(4,1fr)}
  .service-card{grid-template-columns:1fr;display:grid;grid-template-rows:190px 1fr;min-height:470px}
  .service-content{padding:26px 22px}
  .service-content h3{font-size:22px}
}
.works-head h2{font-size:clamp(38px,5vw,68px);line-height:1.05;letter-spacing:-.035em}

/* =========================================================
   READABILITY DEBUG PASS — WCAG reflow / resize / text spacing
   ========================================================= */
html{font-size:100%;overflow-x:hidden}
body{font-size:17px;line-height:1.85;overflow-wrap:break-word;line-break:strict}
p,li,dd{ text-wrap:pretty;word-break:normal }
.hero h1,.section-title,.services-intro h2,.page-hero h1,.contact-copy h2{ text-wrap:balance;overflow-wrap:normal;word-break:normal }
.hero-ja,.lead,.route h3,.service-content h3,.work-content h3,.article h2,.section-title-ja{ text-wrap:pretty;word-break:normal;overflow-wrap:normal }

.eyebrow{font-size:12px;line-height:1.5}
.nav-list{font-size:12px}
.hero h1{max-inline-size:11ch}
.hero-ja{max-inline-size:28em;line-height:1.55}
.hero-description{font-size:17px;line-height:1.9;max-inline-size:38em}
.button{font-size:12px;line-height:1.4}
.hero-foot{font-size:12px;line-height:1.7}

.body-copy{font-size:17px;line-height:2;max-inline-size:38em}
.lead{max-inline-size:22em}
.section-title{max-inline-size:16ch}
.section-title-ja{font-size:clamp(18px,2vw,24px);line-height:1.65}
.text-link{font-size:12px;line-height:1.5}

.route-no{font-size:12px;line-height:1.6}
.route h3{max-inline-size:100%;line-height:1.4}
.flow strong{font-weight:var(--heading-weight);font-size:17px;line-height:1.6}
.flow span{font-size:16px;line-height:1.85}
.route-note{font-size:16px;line-height:1.8}
.tieup-visual-copy strong{max-inline-size:10ch;text-wrap:balance}
.tieup-visual-copy p{font-size:16px;line-height:1.85}

.spec dt{font:400 14px/1.6 var(--sans);letter-spacing:0;text-transform:none}
.spec dd{font-size:17px;line-height:1.75}
.consulting-badge{font-size:12px;line-height:1.5}

.services-intro p{font-size:17px;line-height:1.9}
.service-no{font-size:12px;line-height:1.5}
.service-ja{font-size:14px;line-height:1.7}
.service-desc{font-size:16px;line-height:1.9}
.service-cta{font:400 14px/1.5 var(--sans);letter-spacing:0;text-transform:none}
.work-meta{font-size:12px;line-height:1.6}
.work-content p{font-size:16px;line-height:1.85}
.news-row{font-size:16px;line-height:1.7}
.news-date,.news-cat{font-size:12px;line-height:1.6}

.field label{font:500 15px/1.6 var(--sans);letter-spacing:0;text-transform:none}
.field input,.field select,.field textarea{font-size:16px;line-height:1.6;min-height:48px}
.consent{font-size:14px;line-height:1.8}
.submit{font-size:12px;line-height:1.5}
.form-status{font-size:14px;line-height:1.7}
.footer-meta{font-size:12px;line-height:1.9}

.page-hero p{font-size:17px;line-height:1.9}
.company-row dt{font-size:12px;line-height:1.7}
.company-row dd{font-size:16px;line-height:1.9}
.detail-list li{font-size:16px;line-height:1.85}
.article{font-size:17px;line-height:2}
.article time{font-size:12px}

@media(max-width:900px){
  body{font-size:16.5px}
  .section-head{gap:18px}
  .intro-grid{gap:30px}
  .hero-description,.body-copy{max-inline-size:36em}
}
@media(max-width:600px){
  body{font-size:16px;line-height:1.85}
  .container{width:min(var(--max),calc(100% - 40px))}
  .page-hero p,.estimate-intro p{overflow-wrap:anywhere}
  .hero-ja{max-inline-size:100%}
  .hero-description,.body-copy{font-size:16px;line-height:1.9}
  .route h3{font-size:26px}
  .flow strong{font-size:16px}
  .flow span,.route-note,.service-desc,.work-content p,.news-row,.company-row dd,.detail-list li{font-size:15.5px}
  .news-row{grid-template-columns:92px 1fr 18px;gap:10px}
  .contact-copy h2{max-inline-size:10ch;text-wrap:balance}
}

/* =========================================================
   STYLE LOCK — Refined Brutalism source-of-truth restoration
   ========================================================= */
.hero-inner.container{width:min(var(--max),calc(100% - var(--gutter)*2));margin-inline:auto}
.hero h1,.section-title,.services-intro h2,.page-hero h1,.contact-copy h2{font-family:var(--sans);font-weight:var(--display-weight);text-transform:uppercase}
.works-head h2{font-weight:var(--display-weight)}
.route h3,.service-content h3,.work-content h3,.article h2{font-weight:var(--heading-weight)}
.section-title-ja{font-weight:var(--heading-weight);letter-spacing:.04em}
.main-service-head{display:block;margin-bottom:clamp(42px,6vw,72px)}
.main-service-head .section-kicker{padding:0;margin-bottom:22px}
.main-service-head .section-title{max-inline-size:14ch}
.section-head,.route-grid,.service-grid,.works-grid,.company-table{border-radius:0}
@media(max-width:900px){.hero-inner.container{width:min(var(--max),calc(100% - 48px))}.section-head{grid-template-columns:1fr}}
@media(max-width:600px){.hero-inner.container{width:min(var(--max),calc(100% - 40px))}.hero h1{font-size:clamp(42px,12.8vw,56px);line-height:.92}.section-title{font-size:clamp(38px,11.5vw,50px);line-height:.94;max-inline-size:100%;text-wrap:wrap;overflow-wrap:anywhere}}

/* Japanese phrase-aware wrapping */
.text-chunk{display:inline-block;max-inline-size:100%;overflow-wrap:normal}
@media(max-width:600px){
  .spec{grid-template-columns:5em minmax(0,1fr);gap:16px}
  .news-row{grid-template-columns:minmax(0,1fr) 18px;gap:8px 16px}
  .news-row .news-date{grid-column:1/-1}
}
.hero-ja .hero-line{display:block;max-inline-size:100%}
.hero-ja .phrase{display:inline-block;white-space:nowrap}
.hero-ja .hero-line + .hero-line{margin-top:.08em}
.lead .phrase{display:inline-block;white-space:nowrap}

/* Company office access */
.office-access{padding:clamp(84px,8vw,116px) 0;border-top:1px solid var(--line);overflow:hidden}
.office-access-head{margin-bottom:clamp(36px,5vw,56px)}
.office-access-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.office-map-panel,.access-sketch-panel{background:var(--paper);padding:clamp(24px,3.2vw,46px)}
.office-panel-heading .eyebrow{color:var(--concrete,#8c8c8c)}
.office-panel-heading h3{font-size:clamp(25px,3vw,40px);line-height:1.2;margin-top:0;letter-spacing:-.025em}
.office-map-frame{margin-top:28px;aspect-ratio:16/10;min-height:330px;background:var(--paper-2);border:1px solid var(--line);overflow:hidden}
.office-map-frame iframe{width:100%;height:100%;display:block;border:0;filter:grayscale(.28) contrast(1.02)}
.office-map-meta{display:flex;justify-content:space-between;align-items:end;gap:26px;padding-top:22px}
.office-map-meta p{font-size:14px;line-height:1.85;color:var(--ink-soft)}
.office-map-meta .text-link{flex-shrink:0;font-size:11px}
.access-sketch{position:relative;isolation:isolate;margin-top:28px;min-height:330px;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2);border:1px solid var(--line);background-image:radial-gradient(rgba(43,58,85,.12) .8px,transparent .8px);background-size:14px 14px}
.access-sketch::before,.access-sketch::after{content:"";position:absolute;z-index:-1;background:var(--paper);border:1px solid var(--line)}
.access-sketch::before{width:125%;height:58px;left:-12%;top:52%;transform:rotate(-8deg)}
.access-sketch::after{width:54px;height:125%;left:52%;top:-12%;transform:rotate(14deg)}
.sketch-road{position:absolute;color:var(--ink-soft);font:500 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;z-index:1}
.sketch-road-main{left:7%;right:7%;top:48%;transform:rotate(-8deg);text-align:left}
.sketch-road-side{top:12%;bottom:10%;left:54%;writing-mode:vertical-rl;transform:rotate(14deg);text-align:right}
.sketch-route{position:absolute;height:2px;background:var(--red);transform-origin:left center;z-index:2}
.sketch-route-hommachi{width:22%;left:24%;top:39%;transform:rotate(31deg)}
.sketch-route-sakaisuji{width:28%;left:63%;top:65%;transform:rotate(148deg)}
.sketch-station,.sketch-office{position:absolute;z-index:3;padding:9px 11px;background:var(--paper);border:1px solid var(--navy);color:var(--navy);line-height:1.25}
.sketch-station strong,.sketch-office strong{display:block;font-size:13px;white-space:nowrap}
.sketch-station small,.sketch-office small{display:block;margin-top:3px;font:10px/1.45 var(--mono);color:var(--ink-soft);white-space:nowrap}
.sketch-station-hommachi{left:8%;top:25%}.sketch-station-sakaisuji{right:5%;bottom:10%}
.sketch-office{left:43%;top:46%;background:var(--navy);border-color:var(--navy);color:white;transform:translate(-50%,-50%);box-shadow:4px 4px 0 var(--red)}
.sketch-office small{color:rgba(255,255,255,.72)}
.sketch-walk{position:absolute;z-index:4;left:28%;top:34%;color:var(--red);font:500 10px/1 var(--mono);letter-spacing:.04em;transform:rotate(31deg);white-space:nowrap}
.sketch-north{position:absolute;right:16px;top:14px;color:var(--red);font:500 12px/1 var(--mono);letter-spacing:.08em}
.access-notes{list-style:none;margin-top:22px;border-top:1px solid var(--line)}
.access-notes li{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7;color:var(--ink-soft)}
.access-notes li span{display:inline-block;min-width:116px;color:var(--ink);font-weight:600}
.office-access-note{margin-top:22px;color:var(--ink-soft);font-size:13px}

/* Service to estimate handoff */
.service-estimate-link{display:inline-flex;align-items:center;gap:10px;margin-top:14px;color:var(--red);font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-decoration:none}
.service-estimate-link::after{content:"→";font-size:16px;transition:transform .2s ease}
.service-estimate-link:hover{text-decoration:underline;text-underline-offset:4px}
.service-estimate-link:hover::after{transform:translateX(4px)}
.estimate-back-link{display:inline-flex;align-items:center;gap:10px;margin-top:28px;color:var(--red);font:500 11px/1.4 var(--mono);letter-spacing:.08em}
.estimate-back-link:hover{text-decoration:underline;text-underline-offset:4px}

/* Estimate simulator */
.estimate-hero h1{max-inline-size:8ch}
.estimate-section{padding-top:clamp(70px,9vw,120px)}
.estimate-simulator{min-width:0}
.estimate-intro{margin:0 0 28px}
.estimate-intro h2{font-size:clamp(34px,4.4vw,58px);font-weight:var(--heading-weight);line-height:1.28;letter-spacing:0;margin-top:8px}
.estimate-intro p{margin-top:8px;color:var(--ink-soft);font-size:16px;line-height:1.75;max-width:42em}
.estimate-flow{min-width:0}
.estimate-block{border:0;margin:0 0 36px;padding:0}
.estimate-block legend,.estimate-options summary span{display:block;margin-bottom:14px;color:var(--ink);font:600 16px/1.7 var(--sans);letter-spacing:0;text-transform:none}
.estimate-chip-row{display:flex;flex-wrap:wrap;gap:8px 28px}
.estimate-chip-grid-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.estimate-chip-row label,.estimate-chip-grid label{display:flex;align-items:center;gap:12px;min-width:0;cursor:pointer}
.estimate-chip-row input,.estimate-chip-grid input{flex:0 0 16px;width:16px;height:16px;margin:0;accent-color:var(--navy);cursor:inherit}
.estimate-chip-row span{display:flex;align-items:center;min-height:44px;font-size:16px}
.estimate-chip-grid label{border-bottom:1px solid var(--line)}
.estimate-chip-grid label:hover{background:rgba(29,43,61,.025)}
.estimate-chip-grid label:has(input:checked){border-bottom-color:var(--navy)}
.estimate-chip-grid span{flex:1;min-width:0;min-height:72px;display:grid;align-content:center;gap:3px;padding:14px 0;text-align:left}
.estimate-chip-grid strong{font-size:16px;font-weight:500;line-height:1.6}
.estimate-chip-grid small{font:400 13px/1.5 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink-soft)}
.estimate-chip-grid input:checked + span strong{font-weight:600}
.estimate-chip-row input:disabled + span{opacity:.45;cursor:not-allowed}
.estimate-chip-row label:has(input:focus-visible),.estimate-chip-grid label:has(input:focus-visible){outline:2px solid var(--red);outline-offset:3px}
.estimate-options{border-top:1px solid var(--line);padding-top:24px}
.estimate-options summary{cursor:pointer;list-style:none}
.estimate-options summary::-webkit-details-marker{display:none}
.estimate-options summary small{display:block;color:var(--ink-soft);font-size:14px;line-height:1.7}
.estimate-options summary::after{content:"+";float:right;margin-top:-38px;color:var(--red);font:400 26px/1 var(--mono)}
.estimate-options[open] summary::after{content:"-"}
.estimate-option-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px;margin-top:26px}
.estimate-field label{color:var(--ink);font:500 15px/1.7 var(--sans);letter-spacing:0;text-transform:none}
.estimate-field input,.estimate-field select,.estimate-field textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:12px;font:400 16px/1.6 var(--sans);resize:vertical}
.estimate-field select{appearance:auto}
.estimate-field input:focus,.estimate-field select:focus,.estimate-field textarea:focus{outline:2px solid var(--navy);outline-offset:2px;border-color:var(--navy)}
.estimate-field small{color:var(--ink-soft);font-size:13px;line-height:1.6}
.estimate-check{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:8px 0;font-size:16px;line-height:1.7}
.estimate-check input{width:16px;height:16px;margin-top:5px;accent-color:var(--navy)}
.estimate-check small{display:block;color:var(--ink-soft);font:13px/1.6 var(--sans)}
.estimate-auto-parts{border-left:2px solid var(--line);padding:0 16px}
.estimate-auto-parts p{color:var(--ink-soft);font:500 14px/1.6 var(--sans)}
.estimate-auto-parts strong{display:block;margin-top:7px;font-size:22px;line-height:1.35}
.estimate-auto-parts small{display:block;margin-top:6px;color:var(--ink-soft);font-size:13px;line-height:1.7}
.estimate-grading-size select:disabled{opacity:.55}
.estimate-result-panel{min-width:0;align-self:start;margin:0;border-top:2px solid var(--ink);background:transparent;color:var(--ink);padding:24px 0 0}
.estimate-result-panel h2{color:var(--ink)}
.estimate-result-panel p{color:var(--ink-soft);max-width:38em;font-size:15px;line-height:1.8}
.estimate-breakdown{margin:24px 0;border-top:1px solid var(--line)}
.estimate-breakdown div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 16px;padding:14px 0;border-bottom:1px solid var(--line)}
.estimate-breakdown dt{font:400 14px/1.65 var(--sans);letter-spacing:0;color:var(--ink-soft)}
.estimate-breakdown dd{margin-left:auto;font:500 14px/1.65 var(--sans);font-variant-numeric:tabular-nums}
.estimate-note{font-size:13px;line-height:1.8}
.estimate-mail{margin-top:24px;width:100%;min-width:0;border-color:var(--navy);background:var(--navy);color:white;font:500 15px/1.6 var(--sans);letter-spacing:0;text-transform:none}
.estimate-source{padding-top:clamp(70px,8vw,118px)}
.estimate-table-hint{display:none}
.estimate-table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--paper)}
.estimate-table{width:100%;border-collapse:collapse;min-width:720px}
.estimate-table th,.estimate-table td{padding:17px 18px;border-bottom:1px solid var(--line);text-align:left}
.estimate-table th{font:12px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--concrete,#8c8c8c);background:var(--paper-2)}
.estimate-table td{font-size:15px}
.estimate-table td:not(:first-child){font-family:var(--mono);font-size:13px}
.service-detail-section{padding:clamp(72px,10vw,136px) 0;border-top:1px solid var(--line)}
.service-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,120px);align-items:start}
.service-detail-media{display:flex;min-width:0;min-height:clamp(430px,46vw,660px);margin:0;flex-direction:column;align-items:center;justify-content:center;background:transparent}
.service-detail-media img{display:block;width:auto;max-width:100%;height:auto;max-height:clamp(430px,46vw,660px);aspect-ratio:auto;object-fit:contain;filter:none}
.service-detail-media video{display:block;width:auto;max-width:100%;height:clamp(520px,54vw,720px);background:#111;object-fit:contain}
.service-detail-media figcaption{align-self:stretch;padding-top:14px;border-top:1px solid var(--line);color:var(--concrete,#8c8c8c);font:500 11px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.service-detail-copy .eyebrow{color:var(--concrete,#8c8c8c)}
.service-detail-copy h2{font-size:26px;line-height:1.5;letter-spacing:0;margin-top:0}
.service-detail-copy>p{margin-top:24px;color:var(--ink-soft);font-size:17px;line-height:1.95}
.service-detail-meta{margin-top:38px;border-top:1px solid var(--line)}
.service-detail-meta div{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}
.service-detail-meta dt{color:var(--concrete,#8c8c8c);font:500 12px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.service-detail-meta dd{font-size:16px;line-height:1.8}
.service-detail-cta{margin-top:34px}
.estimate-hero,.service-detail-hero{position:relative;background-image:linear-gradient(90deg,rgba(244,242,237,.98) 0%,rgba(244,242,237,.86) 34%,rgba(244,242,237,.42) 60%,rgba(244,242,237,.04) 100%),var(--service-hero-image);background-position:center;background-size:cover;background-repeat:no-repeat}
.estimate-hero{--service-hero-image:url("assets/service-pattern.webp")}
.service-hero--sample{--service-hero-image:url("assets/service-sample.webp")}
.service-hero--planning{--service-hero-image:url("assets/textile-product-display.webp");background-position:center 35%}
.service-hero--domestic{--service-hero-image:url("assets/service-domestic-hero.webp");background-position:center 34%}
.service-hero--visual{--service-hero-image:url("assets/service-visual.webp")}
.estimate-hero .container,.service-detail-hero .container{position:relative;z-index:1}
.estimate-hero-content{max-width:min(620px,58%)}
.service-detail-hero .container>p,.service-detail-hero .container>h1,.service-detail-hero .container>a{max-width:min(620px,58%)}
.service-gallery{min-width:0}
.service-gallery .work-gallery-item img{filter:none}
.visual-support-intro{max-width:820px}
.visual-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,24px);margin-top:clamp(54px,8vw,100px)}
.visual-video-item{min-width:0;margin:0}
.visual-video-item video{display:block;width:100%;aspect-ratio:9/16;background:#111;object-fit:cover}
.visual-video-item figcaption{padding-top:12px;border-top:1px solid var(--line);color:var(--concrete,#8c8c8c);font:500 10px/1.6 var(--mono);letter-spacing:.09em;text-transform:uppercase}
.service-detail-process{padding:36px 0 56px;border-top:1px solid var(--line)}
.service-detail-process-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}
.service-detail-process-head h2{font-size:22px;line-height:1.6;letter-spacing:0}
.service-detail-process-head p{max-width:360px;color:var(--ink-soft);font-size:16px;line-height:1.85}
.service-detail-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.service-detail-step{padding:22px 28px 6px 0;margin-right:28px;border-right:1px solid var(--line)}
.service-detail-step:last-child{margin-right:0;border-right:0}
ol.service-detail-steps{list-style:none;margin:0;padding:0}
.service-detail-step>span{display:block;color:var(--ink);font:500 30px/1 var(--sans);letter-spacing:0}
.service-detail-step h3{font-size:20px;line-height:1.5;margin-top:16px}
.service-detail-step p{color:var(--ink-soft);font-size:15px;line-height:1.8;margin-top:10px}
@media(max-width:700px){
  .service-detail-grid{grid-template-columns:1fr}
  .estimate-hero,.service-detail-hero{background-image:linear-gradient(180deg,rgba(244,242,237,.7),rgba(244,242,237,.92)),var(--service-hero-image);background-position:center}
  .estimate-hero-content{max-width:100%}
  .service-detail-hero .container>p,.service-detail-hero .container>h1,.service-detail-hero .container>a{max-width:100%}
  .service-detail-process-head{display:grid;grid-template-columns:1fr;gap:18px}
  .service-detail-steps{grid-template-columns:1fr;border-top:0}
  .service-detail-step{margin-right:0;padding:18px 0;border-right:0;border-top:1px solid var(--line)}
  .service-detail-step:first-child{border-top:1px solid var(--ink)}
  .service-detail-meta div{grid-template-columns:1fr;gap:6px}
  .service-detail-media{min-height:0}
  .service-detail-media img{width:100%;max-height:none}
  .service-detail-media video{width:auto;height:min(138vw,620px)}
  .visual-video-grid{grid-template-columns:1fr;gap:34px}
}

/* Polish preview page: stronger alignment without changing the original top */
.polish-page .hero-description{
  max-inline-size:42em;
}
.polish-page .intro-grid,
.polish-page .services-intro{
  align-items:start;
}
.polish-page .lead{
  max-inline-size:15em;
}
.polish-page .body-copy{
  max-inline-size:34em;
}
.polish-page .route{
  display:flex;
  flex-direction:column;
}
.polish-page .route h3{
  min-height:2.8em;
}
.polish-page .route .flow{
  flex:1;
}
.polish-page .route-note{
  min-height:4.4em;
  display:flex;
  align-items:flex-end;
}
.polish-page .services-intro{
  border-top:1px solid var(--line);
  padding-top:34px;
}
.polish-page .service-content{
  min-height:280px;
}
.polish-page .service-desc{
  min-height:7.6em;
}
.polish-page .service-cta{
  margin-top:auto;
}
.polish-page .work-content p{
  min-height:3.7em;
}
@media(min-width:1100px){
  .polish-page .service-content{
    min-height:280px;
  }
  .polish-page .service-desc{
    min-height:9.4em;
  }
}
@media(max-width:900px){
  .polish-page .route h3,
  .polish-page .route-note,
  .polish-page .service-desc,
  .polish-page .work-content p{
    min-height:0;
  }
}

/* =========================================================
   NEXT PRODUCTION REFRESH — product-led hero + cursor reveal
   ========================================================= */
:root{
  --paper:#f5f5f7;
  --paper-2:#e9e9ec;
  --line:#d7d7dc;
  --navy:#1d2b3d;
  --red:#a54a42;
}
body{background:var(--paper)}
.site-header{height:72px;border-top:0;background:rgba(245,245,247,.84);border-bottom:1px solid rgba(23,23,23,.1)}
.brand-logo{width:168px}
.nav-list{gap:clamp(18px,2.8vw,34px);font-size:11px}
.nav-contact{background:var(--navy);padding:12px 18px!important}
.hero{min-height:0;padding-top:72px;background:var(--paper);display:block}
.hero-media{display:none}
.hero-inner{padding:clamp(52px,7vw,88px) 0 42px}
.hero-copy{max-width:820px}
.hero-copy .eyebrow{color:var(--ink-soft);margin-bottom:26px}
.hero h1{font-size:clamp(60px,9.2vw,136px);line-height:.84;letter-spacing:-.07em;max-width:none}
.hero-ja{font-size:clamp(22px,2.8vw,38px);line-height:1.5;margin-top:34px;max-width:760px}
.hero-description{max-width:560px;margin-top:22px;font-size:16px;line-height:1.9}
.hero-actions{margin-top:34px}
.hero-actions .button{min-width:252px}
.hero-scene{--reveal-x:50%;--reveal-y:50%;position:relative;margin-top:clamp(52px,8vw,104px);height:clamp(420px,42vw,660px);overflow:hidden;background:#c8c8c8;isolation:isolate;cursor:crosshair}
.hero-scene:focus-visible{outline:2px solid var(--red);outline-offset:7px}
.hero-scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 53%}
.hero-scene-base{filter:grayscale(1) contrast(1.1) brightness(.96)}
.hero-scene-layer{position:absolute;inset:0;z-index:1;clip-path:circle(0 at var(--reveal-x) var(--reveal-y));transition:clip-path .25s ease-out}
.hero-scene.is-active .hero-scene-layer{clip-path:circle(clamp(130px,13vw,250px) at var(--reveal-x) var(--reveal-y))}
.hero-scene-layer .hero-scene-image{filter:saturate(1.25) contrast(1.07) brightness(1.03)}
.hero-scene-caption{position:absolute;z-index:2;left:22px;right:22px;bottom:18px;display:flex;justify-content:space-between;gap:16px;color:white;text-shadow:0 1px 10px rgba(0,0,0,.35);font:500 11px/1.5 var(--mono);letter-spacing:.12em}
.hero-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:11px}
.needs-nav{background:#fff;padding:clamp(68px,8vw,112px) 0}
.needs-head{margin-bottom:38px}
.needs-head h2{font-size:clamp(38px,5vw,68px);letter-spacing:-.055em;line-height:1}
.needs-head p{max-width:28em;font-size:16px;line-height:1.85}
.need-card{background:#fff;min-height:210px;padding:30px 26px}
.need-card strong{font-weight:var(--heading-weight);font-size:17px}
.need-card small{font-size:14px}
.section{padding:clamp(104px,12vw,176px) 0}
.section-num{opacity:.45;color:var(--line);font-size:clamp(72px,11vw,160px)}
.dark-section{background:var(--navy)}
.map-page .section{padding:clamp(82px,9vw,132px) 0}
.map-page .contact-section{padding:clamp(76px,7vw,100px) 0}
@media(max-width:600px){
  .map-page .section,.map-page .contact-section{padding:64px 0}
}
@media(prefers-reduced-motion:reduce){
  .hero-scene-layer{transition:none;clip-path:inset(0)}
}
@media(max-width:900px){
  .site-header{height:68px}
  .site-nav{top:68px}
  .hero{padding-top:68px}
  .hero-inner{padding-top:62px}
  .hero h1{font-size:clamp(56px,12vw,100px)}
  .hero-scene{height:clamp(380px,62vw,620px);margin-top:58px}
  .hero-scene.is-active .hero-scene-layer{clip-path:circle(22vw at var(--reveal-x) var(--reveal-y))}
}
@media(max-width:600px){
  .brand-logo{width:144px}
  .hero-inner{padding-top:54px}
  .hero h1{font-size:clamp(50px,14.5vw,74px);line-height:.88}
  .hero-ja{font-size:21px;line-height:1.6;margin-top:28px}
  .hero-description{font-size:16px;line-height:1.9}
  .hero-actions{display:grid;gap:10px}
  .hero-actions .button{width:100%;min-width:0}
  .hero-scene{height:clamp(420px,112vw,620px);margin-top:48px;cursor:default}
  .hero-scene.is-active .hero-scene-layer{clip-path:circle(34vw at var(--reveal-x) var(--reveal-y))}
  .hero-scene-caption{left:14px;right:14px;bottom:14px;font-size:10px}
  .hero-foot{gap:8px;font-size:10px}
  .hero-foot span:nth-child(2){display:none}
  .needs-nav{padding:68px 0}
}

/* Service directory navigation — keep the page visible beneath the menu. */
.nav-services{position:static}
.nav-services>summary{display:flex;align-items:center;gap:8px;padding:12px 0;list-style:none;cursor:pointer}
.nav-services>summary::-webkit-details-marker{display:none}
.nav-services>summary::after{content:"";width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.nav-services[open]>summary::after{transform:translateY(1px) rotate(225deg)}
.site-header.has-open-services{background:var(--paper)}
.services-menu{position:absolute;inset:100% 0 auto;background:var(--paper);border-bottom:1px solid var(--line);max-height:calc(100dvh - 72px);overflow:auto;overscroll-behavior:contain;font-family:var(--sans);letter-spacing:0;text-transform:none}
.services-menu-inner{display:grid;grid-template-columns:1.15fr 1fr .9fr;gap:clamp(32px,5vw,72px);padding-block:38px 44px}
.services-menu-group{min-width:0}
.services-menu-group h2{margin-bottom:14px;color:var(--ink-soft);font-size:13px;line-height:1.6;font-weight:400;letter-spacing:0}
.services-menu-group ul{list-style:none}
.nav-list .services-menu a{display:block;width:fit-content;max-width:100%;padding:6px 0;color:var(--ink);font-size:22px;font-weight:600;line-height:1.5;letter-spacing:0}
.nav-list .services-menu a::after{content:none}
.nav-list .services-menu a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.services-menu a .text-chunk{text-decoration:inherit}
.nav-list .services-menu-requests a{font-size:15px;font-weight:400;line-height:1.7;padding-block:8px}
.nav-list .services-menu .services-menu-overview{margin-top:18px;font-size:14px;font-weight:400;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px}
.services-menu-textile p{margin-top:12px;color:var(--ink-soft);font-size:14px;line-height:1.8}
.services-backdrop{position:fixed;inset:72px 0 0;z-index:49;background:rgba(29,43,61,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.services-backdrop[hidden]{display:none}
.nav-services[open] .services-menu-inner{animation:services-menu-in .18s ease-out both}
@keyframes services-menu-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.site-footer-directory{padding:48px 0 28px}
.footer-home{display:block;width:fit-content;padding-block:4px}
.footer-directory{display:grid;grid-template-columns:1fr 1fr 1fr 1.1fr;gap:32px;margin-top:32px}
.footer-directory-group{min-width:0}
.footer-directory-group h2{font-size:14px;font-weight:600;line-height:1.7;margin-bottom:12px}
.footer-directory-group ul{list-style:none}
.footer-directory a{display:block;width:fit-content;max-width:100%;padding:7px 0;color:rgba(255,255,255,.8);font-size:14px;line-height:1.7}
.footer-directory a:hover,.footer-directory-bottom a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-directory-bottom{display:flex;justify-content:space-between;gap:28px;margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7);font-size:12px;line-height:1.9}
.footer-directory-contact a{display:inline-block;padding-block:4px}
.footer-directory-legal{text-align:right;flex-shrink:0}
.footer-directory-legal a{display:inline-block;padding-block:4px}
.site-footer-directory a:focus-visible{outline-color:white}
@media(max-width:900px){
  .site-nav{max-height:calc(100dvh - 68px);overflow-y:auto;overscroll-behavior:contain;padding-block:12px 20px}
  .nav-list{gap:0}
  .nav-services>summary{justify-content:space-between;min-height:48px;padding-block:16px}
  .nav-services>summary::after{margin-right:4px}
  .services-menu{position:static;max-height:none;overflow:visible;border-bottom:0}
  .services-menu-inner{display:block;width:auto;margin:0 0 14px;padding:4px 0 4px 16px;border-left:1px solid var(--line)}
  .services-menu-group h2{font-size:12px;margin-bottom:4px}
  .services-menu-main h2{display:none}
  .nav-list .services-menu a{font-size:17px;font-weight:500;line-height:1.6;padding-block:8px;min-height:44px}
  .nav-list .services-menu .services-menu-overview{margin-top:4px;font-size:13px;min-height:40px}
  .services-menu-textile{margin-top:14px}
  .services-menu-textile p,.services-menu-requests{display:none}
  .services-backdrop{top:68px}
  .footer-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 40px}
}
@media(max-width:600px){
  .site-footer-directory{padding:36px 0 24px}
  .footer-directory{gap:24px 20px;margin-top:26px}
  .footer-directory-group h2{font-size:13px}
  .footer-directory a{min-height:44px;display:flex;flex-wrap:wrap;align-items:center;padding-block:9px;font-size:14px}
  .footer-directory-bottom{flex-direction:column;gap:14px;margin-top:28px;padding-top:20px}
  .footer-directory-legal{text-align:left}
}
@media(max-width:380px){.footer-directory{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.nav-services[open] .services-menu-inner{animation:none}}

/* Works image galleries — preserve source orientation */
.work-gallery-wrap{min-width:0}
.work-gallery-stage{position:relative;min-width:0}
.work-gallery{display:flex;gap:16px;min-width:0;overflow-x:auto;overflow-y:hidden;padding:0;scroll-padding-inline:0;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab;touch-action:pan-x pan-y;user-select:none}
.work-gallery::-webkit-scrollbar{display:none;width:0;height:0}
.work-gallery:active,.work-gallery.is-dragging{cursor:grabbing}
.work-gallery.is-dragging{scroll-snap-type:none;scroll-behavior:auto}
.work-gallery:focus-visible{outline:2px solid var(--red);outline-offset:7px}
.work-gallery-control{position:absolute;z-index:2;top:50%;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:0;background:linear-gradient(var(--navy),var(--navy)) center/28px 28px no-repeat;color:white;font-size:11px;line-height:1;cursor:pointer;opacity:1;transform:translateY(-50%);transition:opacity .2s,transform .2s}
.work-gallery-stage:hover .work-gallery-control,.work-gallery-stage:focus-within .work-gallery-control,.work-gallery-stage.is-touched .work-gallery-control{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1)}
.work-gallery-stage:hover .work-gallery-control:disabled,.work-gallery-stage:focus-within .work-gallery-control:disabled,.work-gallery-stage.is-touched .work-gallery-control:disabled{opacity:.25;pointer-events:none}
.work-gallery-control:hover{color:white;transform:translateY(-50%) scale(1.08)}
.work-gallery-control:focus-visible{outline:2px solid var(--red);outline-offset:0;color:white}
.work-gallery-control:disabled{opacity:.25;cursor:default;pointer-events:none}
.work-gallery-control[hidden]{display:none}
.work-gallery-control-prev{left:12px}
.work-gallery-control-next{right:12px}
.work-gallery-item{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 100%;height:clamp(430px,46vw,660px);margin:0;overflow:hidden;background:transparent;border:0;scroll-snap-align:start}
.work-gallery-item img{display:block;width:auto!important;height:100%!important;max-width:none!important;aspect-ratio:auto!important;object-fit:contain!important;filter:grayscale(.08);transition:filter .3s,transform .5s}
.work-gallery-item:hover img{filter:grayscale(0);transform:scale(1.012)}
.work-gallery-item figcaption{display:none}
.work-gallery-hint{display:none}
@media(max-width:900px){
  .work-gallery-item{height:clamp(390px,72vw,620px)}
}
@media(max-width:600px){
  .work-gallery{gap:12px}
  .work-gallery-item{height:clamp(320px,92vw,440px)}
}

body.is-lightbox-open{overflow:hidden}
.work-lightbox{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px}
.work-lightbox[hidden]{display:none}
.work-lightbox-backdrop{position:absolute;inset:0;background:rgba(15,23,36,.9)}
.work-lightbox-dialog{position:relative;z-index:1;display:grid;justify-items:center;gap:12px;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px)}
.work-lightbox-image{display:block;width:auto!important;height:auto!important;max-width:min(92vw,1200px)!important;max-height:80vh!important;object-fit:contain!important;background:var(--paper-2);box-shadow:0 18px 60px rgba(0,0,0,.28)}
.work-lightbox-close{position:absolute;z-index:2;top:-16px;right:-16px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.76);background:var(--navy);color:white;font-size:26px;line-height:1;cursor:pointer}
.work-lightbox-close:hover,.work-lightbox-close:focus-visible{background:var(--red)}
.work-lightbox-caption{color:white;font:500 11px/1.5 var(--mono);letter-spacing:.1em;text-align:center;text-transform:uppercase}
.work-lightbox-project-info[hidden],.work-lightbox-thumbnails[hidden]{display:none}
.work-lightbox-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.work-lightbox--project .work-lightbox-dialog{width:min(1200px,calc(100vw - 48px));height:calc(100vh - 48px);height:calc(100dvh - 48px);max-height:none;padding:28px;background:var(--paper);grid-template-rows:auto minmax(0,1fr) auto;gap:18px}
.work-lightbox--project .work-lightbox-close{top:20px;right:20px}
.work-lightbox-project-info{width:100%;padding-right:56px;justify-self:stretch}
.work-lightbox-project-info h2{font-size:26px;font-weight:500;line-height:1.3;letter-spacing:0;margin:0}
.work-lightbox-project-info p{font-size:16px;line-height:1.7;color:var(--ink-soft);margin-top:8px}
.work-lightbox--project .work-lightbox-image{width:100%!important;height:100%!important;min-height:0;max-height:100%!important;max-width:100%!important;background:none;box-shadow:none}
.work-lightbox--project .work-lightbox-caption{display:none}
.work-lightbox-thumbnails{display:flex;gap:10px;max-width:100%;overflow-x:auto;padding:4px;scrollbar-width:thin;overscroll-behavior-x:contain}
.work-lightbox-thumbnails button{flex:0 0 58px;width:58px;height:72px;padding:3px;border:1px solid transparent;border-radius:0;background:none;cursor:pointer}
.work-lightbox-thumbnails button[aria-pressed="true"]{border-color:var(--red)}
.work-lightbox-thumbnails img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:600px){
  .work-lightbox{padding:16px}
  .work-lightbox-dialog{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px)}
  .work-lightbox-image{max-width:calc(100vw - 32px)!important;max-height:78vh!important}
  .work-lightbox-close{top:-12px;right:-8px;width:38px;height:38px;font-size:22px}
  .work-lightbox--project{padding:0}
  .work-lightbox--project .work-lightbox-dialog{width:100vw;max-width:100vw;height:100vh;height:100dvh;padding:22px 16px;gap:16px}
  .work-lightbox--project .work-lightbox-close{top:16px;right:16px;width:44px;height:44px}
  .work-lightbox-project-info h2{font-size:23px}
  .work-lightbox-project-info p{font-size:15px}
  .work-lightbox-thumbnails{gap:8px}
  .work-lightbox-thumbnails button{flex-basis:50px;width:50px;height:64px}
}

/* Tie-up service consolidation */
#tieup > .container .tieup-visual{
  margin-top:0;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);
  min-height:clamp(460px,42vw,620px);
  border:1px solid var(--line);
  background:var(--navy);
  color:white;
}
#tieup .tieup-visual-media{position:relative;min-height:100%;overflow:hidden}
#tieup .tieup-visual img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.02);opacity:1}
#tieup .tieup-gallery,#tieup .tieup-gallery .work-gallery-stage,#tieup .tieup-gallery .work-gallery{height:100%}
#tieup .tieup-gallery .work-gallery{gap:0;background:#ebe8e1}
#tieup .tieup-gallery .work-gallery-item{height:100%;min-height:clamp(460px,42vw,620px);background:#ebe8e1}
#tieup .tieup-gallery .work-gallery-item img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center 46%;filter:none!important;opacity:1}
#tieup .tieup-gallery .work-gallery-control{color:white}
#tieup .tieup-gallery .work-gallery-hint{position:absolute;z-index:3;right:12px;bottom:12px;display:flex;gap:12px;padding:5px 8px;background:var(--navy);color:white;font:500 12px/1.5 var(--sans);letter-spacing:0;text-transform:none}
#tieup .tieup-visual-copy{padding:clamp(32px,5vw,72px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
#tieup .tieup-visual-eyebrow{color:#e17669;font:500 clamp(24px,3.5vw,48px)/1.1 var(--sans);letter-spacing:-.04em;margin-bottom:clamp(30px,5vw,64px)}
#tieup .tieup-visual-copy h3{font-size:clamp(24px,2.8vw,42px);line-height:1.45;letter-spacing:-.03em;margin-bottom:24px}
#tieup .tieup-visual-copy p:not(.tieup-visual-eyebrow){max-width:28em;color:rgba(255,255,255,.76);font-size:16px;line-height:1.9;margin-bottom:34px}
#tieup .tieup-visual-copy .text-link{margin-top:8px;color:white}
#tieup .tieup-summary{margin-top:1px}
#tieup .tieup-visual-copy .tieup-summary{display:flex;flex-direction:column;align-items:flex-start;gap:10px;width:100%;margin-top:20px;border:0;background:transparent}
#tieup .tieup-visual-copy .tieup-summary div{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:100%;padding:10px 15px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(255,255,255,.94)}
#tieup .tieup-visual-copy .tieup-summary dt{flex:0 0 auto;color:var(--red);font:400 13px/1.5 var(--sans);letter-spacing:0;line-height:1.5}
#tieup .tieup-visual-copy .tieup-summary dd{min-width:0;margin:0;color:var(--navy);font-size:13px;line-height:1.55}
#tieup .route-grid{margin-top:24px}
#tieup .route{display:flex;flex-direction:column;min-height:100%}
#tieup .route h3{margin-bottom:18px}
#tieup .route-summary{color:var(--ink-soft);font-size:16px;line-height:1.9}
#tieup .route-details{margin-top:30px;border-top:1px solid var(--line)}
#tieup .route-details summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:18px 0;color:var(--ink-soft);font:500 12px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase}
#tieup .route-details summary::-webkit-details-marker{display:none}
#tieup .route-details summary::after{content:"+";color:var(--red);font:400 22px/1 var(--sans);transition:transform .2s ease}
#tieup .route-details[open] summary::after{transform:rotate(45deg)}
#tieup .route-details .flow{padding-bottom:4px}
#tieup .route-note{margin-top:auto}

@media(min-width:901px){
  #tieup.section{padding-top:clamp(24px,2.4vw,38px)}
  #tieup .main-service-head{margin-bottom:18px}
  #tieup .main-service-head .section-kicker{margin-bottom:10px}
  #tieup .main-service-head .section-title{max-inline-size:21ch;font-size:clamp(54px,5.8vw,88px)}
  #tieup .main-service-head .section-title-ja{margin-top:8px}
  #tieup > .container .tieup-visual{height:clamp(430px,58vh,590px);min-height:0;grid-template-columns:minmax(340px,.78fr) minmax(0,1.22fr)}
  #tieup .tieup-gallery .work-gallery-item{min-height:0}
  #tieup .tieup-gallery .work-gallery-item img{width:100%!important;object-fit:cover!important;object-position:center 46%}
  #tieup .tieup-visual-copy{padding:clamp(22px,2.4vw,34px)}
  #tieup .tieup-visual-eyebrow{font-size:clamp(23px,2.2vw,32px);margin-bottom:18px}
  #tieup .tieup-visual-copy h3{font-size:clamp(22px,2vw,30px);line-height:1.35;margin-bottom:14px}
  #tieup .tieup-visual-copy p:not(.tieup-visual-eyebrow){font-size:14px;line-height:1.7;margin-bottom:16px}
}

@media(max-width:900px){
  #tieup > .container .tieup-visual{grid-template-columns:1fr;min-height:0}
  #tieup .tieup-visual-media{height:clamp(360px,58vw,560px);min-height:0}
  #tieup .tieup-gallery .work-gallery-item{min-height:0}
  #tieup .tieup-visual-copy{min-height:360px}
}
@media(max-width:600px){
  #tieup .tieup-visual-media{height:clamp(300px,88vw,460px)}
  #tieup .tieup-visual-copy{min-height:0;padding:34px 26px 38px}
  #tieup .tieup-visual-eyebrow{font-size:31px;margin-bottom:36px}
  #tieup .tieup-visual-copy h3{font-size:27px;line-height:1.5}
  #tieup .tieup-visual-copy .tieup-summary{margin-top:24px}
  #tieup .tieup-visual-copy .tieup-summary div{padding:9px 13px}
  #tieup .tieup-visual-copy .tieup-summary dd{font-size:12.5px}
  #tieup .tieup-summary{margin-top:1px}
  #tieup .route-grid{margin-top:24px}
  #tieup .route-summary{font-size:15.5px;line-height:1.85}
}

/* Contact form paper panel */
.contact-section .form{background:var(--paper);color:var(--navy);padding:clamp(30px,4vw,60px)}
.contact-section .field label{color:var(--navy)}
.contact-section .field input,.contact-section .field select,.contact-section .field textarea{border-bottom-color:rgba(15,23,36,.34);color:var(--navy)}
.contact-section .field select{background:var(--paper)}
.contact-section .consent{color:var(--navy)}
.contact-section .form-note{color:var(--ink-soft)}
.contact-section .submit{border-color:var(--navy);background:var(--navy);color:white;box-shadow:inset 0 -3px var(--red)}
.contact-section .submit:hover{background:#273a57}
.contact-section .form-status{color:var(--red)}
@media(max-width:600px){
  .contact-section .form{padding:28px 22px}
}

@media(max-width:900px){
  .office-access-grid{grid-template-columns:1fr}
  .office-map-panel,.access-sketch-panel{min-width:0}
}
@media(max-width:600px){
  .section{padding:68px 0}
  .page-hero{padding:104px 0 48px}
  .service-detail-hero h1{font-size:clamp(44px,13.3vw,54px);line-height:.94}
  .work-detail{padding:56px 0}
  .office-access{padding:68px 0}
  .contact-section{padding:68px 0}
  .office-map-panel,.access-sketch-panel{padding:28px 22px}
  .office-map-frame,.access-sketch{height:260px;min-height:0;aspect-ratio:auto}
  .office-map-meta{display:block}
  .office-map-meta .text-link{margin-top:18px}
  .access-notes li span{display:block;min-width:0;margin-bottom:3px}
  .sketch-station strong,.sketch-office strong{font-size:12px}
  .sketch-station small,.sketch-office small{font-size:9px}
  .sketch-station-hommachi{left:5%;top:22%}
  .sketch-station-sakaisuji{right:2%;bottom:7%}
  .sketch-office{left:42%;top:45%}
  .estimate-table-hint{display:block;margin:0 0 10px;color:var(--ink-soft);font:500 10px/1.6 var(--mono);letter-spacing:.06em}
  .work-gallery-control{opacity:1}
  .work-gallery-control:disabled{opacity:.22;pointer-events:none}
}

/* Heading scale pass — 2026-10-02
   Display headings: approximately 65% of the previous scale.
   Supporting headings: approximately 75%, with readable minimums. */
.hero h1{font-size:clamp(40px,6vw,88px)}
.section-title{font-size:clamp(34px,4.6vw,68px)}
.services-intro h2{font-size:clamp(30px,4.6vw,62px)}
.page-hero h1{font-size:var(--page-title-size);line-height:1.08}
.contact-copy h2{font-size:clamp(38px,5.2vw,74px)}
.works-head h2{font-size:clamp(28px,3.3vw,44px)}
.needs-head h2{font-size:clamp(28px,3.75vw,51px)}

.company-statement h2,
.work-detail h2,
.article h2{font-size:clamp(27px,3.75vw,51px)}
.estimate-intro h2{font-size:clamp(27px,3.3vw,44px)}
.estimate-result-panel h2{font-size:clamp(32px,4.9vw,59px)}
.office-panel-heading h3{font-size:clamp(21px,2.25vw,30px)}
.route h3{font-size:clamp(20px,2.25vw,30px)}
.service-content h3,.work-content h3{font-size:clamp(19px,1.9vw,26px)}
.service-detail-step h3{font-size:18px}
.section-title-ja{font-size:clamp(16px,1.5vw,18px)}

#tieup .main-service-head .section-title{font-size:clamp(35px,3.8vw,57px)}
#tieup .tieup-visual-copy h3{font-size:clamp(21px,1.6vw,26px)}

@media(max-width:900px){
  .hero h1{font-size:clamp(38px,8vw,64px)}
}
@media(max-width:600px){
  .hero h1{font-size:clamp(34px,10vw,46px);line-height:.92}
  .section-title{font-size:clamp(30px,8.6vw,40px);line-height:.96}
  .page-hero h1{font-size:var(--page-title-size)}
  .contact-copy h2{font-size:clamp(34px,10vw,46px)}
  .route h3{font-size:21px}
  .service-content h3{font-size:20px}
  .work-content h3{font-size:18px}
  .service-detail-hero h1{font-size:var(--page-title-size);line-height:1.08}
  #tieup .main-service-head .section-title{font-size:clamp(30px,8.6vw,40px)}
  #tieup .tieup-visual-copy h3{font-size:22px}
}

/* Sample making: overview first, then inquiry and equipment. */
.sample-making-page .service-detail-section{padding:clamp(40px,5vw,64px) 0 48px;border-top:0}
.sample-making-page .service-detail-grid{gap:clamp(32px,5vw,72px);align-items:center}
.sample-making-page .service-detail-meta{margin-top:24px}
.sample-making-page .service-detail-meta div{grid-template-columns:5em minmax(0,1fr);gap:16px}
.sample-making-page .service-detail-meta dt{font:400 14px/1.8 var(--sans);letter-spacing:0;color:var(--ink-soft)}
.sample-term{display:inline-block}
.sample-making-page .service-detail-copy .sample-experience{margin-top:16px;font-size:15px;line-height:1.85}
.sample-equipment-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 0 56px}
.sample-equipment-entry a{display:flex;align-items:center;gap:20px;min-height:144px;border-block:1px solid var(--line);padding:24px 32px 24px 0}
.sample-equipment-entry a:hover strong{text-decoration:underline;text-underline-offset:5px}
.sample-equipment-entry a + a{border-left:1px solid var(--line);padding:24px 0 24px 32px}
.sample-equipment-label{min-width:0}
.sample-equipment-label strong{display:block;font-size:22px;font-weight:var(--heading-weight);line-height:1.6}
.sample-equipment-label small{display:block;margin-top:8px;font-size:16px;color:var(--ink-soft);line-height:1.85}
.sample-equipment-label small>span{display:inline-block;max-width:100%}
.sample-equipment-arrow{margin-left:auto;flex-shrink:0;color:var(--red);font-size:23px}
.sample-process{padding:36px 0 56px;border-top:1px solid var(--line)}
.sample-process h2{font-size:22px;font-weight:var(--heading-weight);line-height:1.6;margin-bottom:24px}
.sample-process-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.sample-process-list li{position:relative;min-width:0}
.sample-process-list li:not(:last-child)::after{content:'→';position:absolute;right:-30px;top:54px;color:var(--red);font-size:20px}
.sample-process-art{display:block;width:220px;max-width:100%;height:140px;margin-bottom:22px;color:var(--navy)}
.sample-process-art path,.sample-process-art circle{vector-effect:non-scaling-stroke}
.sample-process-copy{min-width:0}
.sample-process-list h3{font-size:18px;font-weight:500;line-height:1.6}
.sample-process-list p{font-size:16px;line-height:1.85;color:var(--ink-soft);margin-top:10px}
.equipment-hero{padding:120px 0 48px}
.equipment-hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(36px,6vw,80px);align-items:center}
.equipment-hero .section-kicker{margin:0 0 16px;padding:0}
.equipment-hero .equipment-hero-title{margin-top:24px;font-size:24px;font-weight:var(--heading-weight);line-height:1.6;color:var(--ink)}
.equipment-hero .equipment-hero-title + p{margin-top:16px}
.equipment-back{display:inline-block;min-height:44px;padding:10px 0;font-size:15px;line-height:1.6;color:var(--ink-soft)}
.equipment-back:hover{text-decoration:underline;text-underline-offset:5px}
.equipment-hero .equipment-back{margin-top:24px}
.equipment-photo{width:min(100%,380px);justify-self:end}
.equipment-photo img{width:100%;height:auto}
.equipment-photo figcaption{margin-top:10px;font-size:13px;color:var(--ink-soft)}
.equipment-inventory{padding:52px 0 72px;background:var(--white)}
.equipment-list-head{margin-bottom:36px}
.equipment-list-head h2{font-size:26px;font-weight:var(--heading-weight);line-height:1.5}
.equipment-list-head p{margin-top:12px;font-size:16px;color:var(--ink-soft);max-width:42em}
.equipment-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,88px);align-items:start}
.equipment-column{display:grid;gap:36px;min-width:0}
.equipment-group{min-width:0}
.equipment-group h3{padding:0 0 16px;border-bottom:2px solid var(--ink);font-size:20px;font-weight:var(--heading-weight);line-height:1.6}
.equipment-list div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}
.equipment-list dt,.equipment-list dd{font-size:16px;line-height:1.8}
.equipment-list dt{font-weight:400;overflow-wrap:anywhere}
.equipment-list dd{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;min-width:3em}
.equipment-list small{display:block;font-size:13px;color:var(--ink-soft);line-height:1.7}
.equipment-term{display:inline-block}
.equipment-list .equipment-pending{margin-top:4px}
.equipment-contact{padding:48px 0 64px;border-top:1px solid var(--line)}
.equipment-contact-inner{display:flex;justify-content:space-between;align-items:center;gap:28px 48px}
.equipment-contact h2{font-size:24px;font-weight:var(--heading-weight);line-height:1.6}
.equipment-contact p{margin-top:12px;font-size:16px;color:var(--ink-soft)}
.equipment-contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;flex-shrink:0}
.equipment-contact .button{font-size:15px;letter-spacing:0;text-transform:none}
@media(max-width:900px){
  .sample-making-page .service-detail-grid{grid-template-columns:1fr}
  .sample-making-page .service-gallery{max-width:580px;width:100%;justify-self:center}
  .equipment-hero-grid{grid-template-columns:1.2fr 1fr;gap:28px}
  .equipment-hero h1{font-size:var(--page-title-size)}
  .equipment-grid{gap:32px}
  .equipment-contact-inner{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
  .sample-making-page .service-detail-section{padding:32px 0}
  .service-detail-copy h2{font-size:23px}
  .service-detail-process{padding:28px 0 40px}
  .service-detail-process-head h2{font-size:21px}
  .sample-making-page .service-detail-meta div{grid-template-columns:4em minmax(0,1fr);gap:12px}
  .sample-equipment-entry{grid-template-columns:1fr;padding-bottom:36px}
  .sample-equipment-entry a{gap:16px;min-height:122px;padding:22px 0}
  .sample-equipment-entry a + a{border-left:0;border-top:0;padding:22px 0}
  .sample-equipment-label strong{font-size:21px}
  .sample-process{padding:28px 0 40px}
  .sample-process h2{font-size:21px}
  .sample-process-list{grid-template-columns:1fr;gap:42px}
  .sample-process-list li{display:grid;grid-template-columns:100px minmax(0,1fr);gap:20px;align-items:center}
  .sample-process-art{width:100px;height:100px;margin-bottom:0}
  .sample-process-list li:not(:last-child)::after{content:'↓';left:44px;right:auto;top:auto;bottom:-35px}
  .equipment-hero{padding:104px 0 32px}
  .equipment-hero-grid{grid-template-columns:1fr;gap:28px}
  .equipment-hero h1{font-size:var(--page-title-size)}
  .equipment-hero .equipment-hero-title{margin-top:18px;font-size:22px}
  .equipment-hero .equipment-back{margin-top:14px}
  .equipment-photo{justify-self:start;width:min(100%,340px)}
  .equipment-inventory{padding:36px 0 48px}
  .equipment-list-head h2{font-size:24px}
  .equipment-grid{grid-template-columns:1fr;gap:36px}
  .equipment-group h3{font-size:19px}
  .equipment-list div{gap:8px 14px}
  .equipment-contact{padding:36px 0 44px}
  .equipment-contact h2{font-size:22px}
  .equipment-contact-actions{width:100%}
  .equipment-contact .button{padding:18px 16px;gap:12px}
}

/* Sample sewing inquiry: native choices, optional details, explicit mail review. */
.sample-quote-page [hidden]{display:none}
.sample-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.sample-quote-hero{padding:118px 0 36px}
.sample-quote-hero .section-kicker{margin:0 0 14px;padding:0}
.sample-quote-hero .sample-quote-title{margin-top:22px;font-size:24px;font-weight:var(--heading-weight);color:var(--ink)}
.sample-quote-hero .sample-quote-title + p{margin-top:12px;max-width:40em}
.sample-quote-hero .sample-quote-title + p>span{display:inline-block;max-width:100%}
.sample-quote-hero .equipment-back{margin-top:16px}
.sample-quote-section{padding:36px 0 72px;background:var(--white)}
.sample-quote-intro{font-size:16px;color:var(--ink-soft);margin-bottom:28px}
.sample-quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(36px,6vw,88px);align-items:start}
.sample-quote-fields{min-width:0;border:0;margin:0;padding:0}
.service-request{margin-top:52px;padding-top:28px;border-top:2px solid var(--ink);scroll-margin-top:110px;max-width:900px}
.service-request h2{font-size:26px;line-height:1.5;font-weight:var(--heading-weight)}
.service-request-intro{margin:12px 0 28px;font-size:16px;line-height:1.85;color:var(--ink-soft)}
.service-request .button{font:500 15px/1.6 var(--sans);letter-spacing:0;text-transform:none;cursor:pointer}
.request-files{margin-top:26px}
.request-submit-note{margin-top:14px}
.request-status{margin-top:12px;font-size:14px;line-height:1.8;color:var(--ink-soft)}
[data-fm-submit]:disabled{opacity:.55;cursor:default}
.sample-field input[type="file"]{padding:10px;max-width:100%;font-size:14px}
.sample-field input[type="file"]::file-selector-button{border:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:10px;margin-right:12px;font:inherit;cursor:pointer}
.sample-quote-block + .sample-quote-block{margin-top:44px}
.sample-quote-block h2{font-size:23px;font-weight:var(--heading-weight);line-height:1.5;border-top:2px solid var(--ink);padding-top:20px;margin-bottom:26px}
.sample-quote-block h2>span{margin-right:12px;font:400 13px/1.6 var(--mono);color:var(--ink-soft)}
.sample-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}
.sample-field{min-width:0;display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.sample-field-grid .sample-field{margin:0}
.sample-field-grid + .sample-help{margin-top:14px}
.sample-field-grid + .sample-field{margin-top:24px}
.sample-field label,.sample-choice legend{font-size:16px;font-weight:500;line-height:1.8}
.sample-field input,.sample-field select,.sample-field textarea{width:100%;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:11px 12px;font:400 16px/1.7 var(--sans)}
.sample-field textarea{resize:vertical}
.sample-field input:focus,.sample-field select:focus,.sample-field textarea:focus{outline:2px solid var(--navy);outline-offset:2px}
.sample-required,.sample-optional{display:inline-block;margin-left:6px;font-size:12px;font-weight:400;color:var(--ink-soft);vertical-align:middle}
.sample-required{border-bottom:1px solid var(--red)}
.sample-choice{border:0;min-width:0;padding:0;margin:24px 0}
.sample-choice legend{margin-bottom:10px}
.sample-choice-row{display:flex;flex-wrap:wrap;gap:4px 24px}
.sample-choice-stack{display:grid;gap:4px}
.sample-choice label,.sample-check{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:8px 0;font-size:16px;line-height:1.7;cursor:pointer}
.sample-choice input,.sample-check input{flex:0 0 17px;width:17px;height:17px;margin:5px 0 0;accent-color:var(--navy)}
.sample-help{font-size:14px;line-height:1.85;color:var(--ink-soft)}
.sample-details{border-block:1px solid var(--line);margin-top:26px}
.sample-details summary{position:relative;list-style:none;cursor:pointer;padding:18px 28px 18px 0;font-size:16px;font-weight:500;line-height:1.7}
.sample-details summary::-webkit-details-marker{display:none}
.sample-details summary>span{font-size:12px;font-weight:400;color:var(--ink-soft);margin-left:8px;display:inline-block}
.sample-details summary::after{content:'+';position:absolute;right:0;top:16px;font-size:22px;font-weight:400;color:var(--red)}
.sample-details[open] summary::after{content:'−'}
.sample-details[open] summary{margin-bottom:10px}
.sample-details>.sample-field-grid{margin-bottom:24px}
.sample-conditional{border:0;border-left:2px solid var(--line);padding:0 0 0 18px;margin:0 0 24px;min-width:0}
.sample-conditional>.sample-field{margin-top:12px;max-width:320px}
.sample-attachments{padding:20px 0;border-block:1px solid var(--line)}
.sample-attachments h3{font-size:17px;font-weight:var(--heading-weight);margin-bottom:10px}
.sample-attachments p{font-size:15px;line-height:1.85}
.sample-attachments .sample-help{margin-top:10px;font-size:14px}
.sample-attachments .sample-check{margin-top:12px}
.sample-consent{margin:22px 0}
.sample-consent a{text-decoration:underline;text-underline-offset:4px}
.sample-quote-page .button{font-family:var(--sans);font-size:15px;letter-spacing:0;line-height:1.6;text-transform:none;cursor:pointer}
.sample-review-button + .sample-help{margin-top:12px}
.sample-quote-aside{position:sticky;top:98px;border-top:2px solid var(--ink);padding-top:20px}
.sample-quote-aside h2{font-size:18px;font-weight:var(--heading-weight);line-height:1.6}
.sample-live-summary{margin:22px 0}
.sample-live-summary>div{padding:13px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:6em minmax(0,1fr);gap:12px;align-items:baseline}
.sample-live-summary dt{font-size:13px;color:var(--ink-soft)}
.sample-live-summary dd{font-size:15px;overflow-wrap:anywhere}
.sample-quote-aside>p{font-size:14px;line-height:1.85;color:var(--ink-soft)}
.sample-quote-aside .equipment-back{margin-top:16px;font-size:14px}
.sample-review{margin-top:52px;padding-top:32px;border-top:2px solid var(--ink);scroll-margin-top:100px}
.sample-review h2{font-size:26px;font-weight:var(--heading-weight);line-height:1.5;margin-bottom:18px}
.sample-review>label{display:block;margin:24px 0 8px;font-size:16px;font-weight:500}
.sample-review>textarea{display:block;width:100%;min-width:0;border:1px solid var(--line);background:transparent;color:var(--ink);padding:18px;font:400 16px/1.85 var(--sans);resize:vertical}
.sample-review>p{font-size:15px;overflow-wrap:anywhere}
#sample-review-attachments{margin-top:18px}
.sample-review-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:24px 0 18px}
#sample-copy{background:transparent;color:var(--ink);border:1px solid var(--line)}
#sample-edit{border:0;background:transparent;text-decoration:underline;text-underline-offset:5px;min-height:44px;font-size:15px;cursor:pointer}
#sample-copy-status{margin-top:12px}
@media(max-width:900px){
  .sample-quote-layout{grid-template-columns:1fr;gap:36px}
  .sample-quote-aside{position:static}
}
@media(max-width:600px){
  .sample-quote-hero{padding:104px 0 30px}
  .sample-quote-hero .sample-quote-title{font-size:22px;line-height:1.6}
  .sample-quote-section{padding:28px 0 48px}
  .sample-field-grid{grid-template-columns:1fr;gap:20px}
  .sample-quote-block h2{font-size:21px}
  .sample-choice-row{gap:4px 20px}
  .sample-details summary{font-size:15px}
  .sample-review h2{font-size:23px}
  .sample-review>textarea{padding:12px}
  .sample-review-actions{align-items:stretch;flex-direction:column;gap:12px}
}

/* Pattern services: shared entry, independent estimates. */
.pattern-page .estimate-hero{padding:118px 0 40px;min-height:0}
.pattern-page .estimate-hero h1{max-inline-size:none}
.pattern-page .estimate-hero .section-kicker{margin:0 0 12px}
.pattern-page .estimate-hero h1 + p{font-size:18px;margin-top:18px;color:var(--ink)}
.pattern-page .estimate-back-link{margin-top:18px;font:400 14px/1.6 var(--sans);letter-spacing:0}
.pattern-page .estimate-section{padding:24px 0 80px;overflow:visible;background:var(--white)}
.pattern-tabs{display:flex;gap:40px;border-bottom:1px solid var(--line);margin-bottom:40px}
.pattern-tab{position:relative;padding:16px 0 18px;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--ink-soft)}
.pattern-tab[aria-selected="true"]{color:var(--ink)}
.pattern-tab[aria-selected="true"]::after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--ink)}
.pattern-tab:focus-visible{outline-offset:4px;z-index:1}
.pattern-tab strong{font:400 18px/1.5 var(--sans);letter-spacing:0}
.pattern-tab[aria-selected="true"] strong{font-weight:600}
.pattern-panel[hidden]{display:none}
.pattern-page .estimate-intro h2{font-size:24px;font-weight:var(--heading-weight);line-height:1.5;letter-spacing:0;margin:0}
.pattern-estimate-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(40px,6vw,88px);align-items:start}
.pattern-page .estimate-result-panel{position:sticky;top:96px}
.pattern-page .estimate-result-panel h2{margin:12px 0 14px;font:var(--heading-weight) clamp(26px,2.3vw,32px)/1.4 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.025em;overflow-wrap:anywhere}
.pattern-page .estimate-result-label{font-size:15px;color:var(--ink)}
.pattern-page .estimate-note{font-size:14px}
.pattern-page .estimate-mail-help{margin-top:12px;font-size:13px;line-height:1.8}
.pattern-file-types{white-space:nowrap}
.pattern-page .estimate-mail[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.output-methods{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
.output-methods span{grid-template-columns:minmax(0,1fr) auto;gap:2px 20px}
.output-methods strong{font-size:16px}
.output-methods small{grid-column:2;grid-row:1 / 3;align-self:center;font-size:15px;color:var(--ink);white-space:nowrap}
.output-methods em{font:400 14px/1.7 var(--sans);color:var(--ink-soft)}
.output-quantity-row{display:grid;grid-template-columns:minmax(120px,180px) 1fr;align-items:center;gap:20px;margin:0 0 32px}
.output-unknown{display:flex;align-items:center;gap:8px;font-size:15px;cursor:pointer}
.output-unknown input{width:17px;height:17px;accent-color:var(--navy)}
.output-quantity-row input:disabled{opacity:.4}
#output-quantity-error{color:var(--red)}
.output-mail-fallback{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;font-size:13px;color:var(--ink-soft)}
.output-mail-fallback summary{cursor:pointer}
.output-mail-fallback p{margin-top:12px;font-size:13px}
.output-copy{margin-top:14px;min-height:44px;padding:8px 12px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:14px}
@media(max-width:1100px){
  .pattern-estimate-layout{grid-template-columns:minmax(0,1fr) 310px;gap:24px}
}
@media(max-width:900px){
  .pattern-estimate-layout{grid-template-columns:1fr;gap:40px}
  .pattern-page .estimate-result-panel{position:static}
}
@media(max-width:600px){
  .pattern-page .estimate-hero{padding:98px 0 30px}
  .pattern-page .estimate-section{padding:12px 0 56px}
  .pattern-tabs{gap:28px;margin-bottom:28px}
  .pattern-tab{padding:14px 0 16px}
  .pattern-tab strong{font-size:17px}
  .pattern-page .estimate-intro h2{font-size:22px}
  .pattern-page .estimate-result-panel h2{font-size:24px}
  .estimate-chip-grid-items{gap:0 18px}
  .estimate-chip-row{gap:4px 20px}
  .estimate-option-grid{grid-template-columns:1fr}
  .estimate-options summary small{padding-right:26px}
  .output-methods span{gap:2px 12px}
  .output-quantity-row{grid-template-columns:minmax(150px,170px) 1fr;gap:14px}
  .output-unknown{font-size:14px}
}
@media(max-width:480px){
  .estimate-chip-grid-items{grid-template-columns:1fr}
  .estimate-chip-grid-items span{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:56px}
  .estimate-chip-grid-items small{white-space:nowrap;font-size:12px}
}
@media(max-width:380px){
  .estimate-chip-grid-items span{grid-template-columns:1fr;gap:2px}
  .output-methods small{grid-row:1;align-self:start;font-size:14px}
  .output-methods em{grid-column:1 / -1}
}



/* Textile proposals: material, product sample, and the place it is presented. */
.product-planning-page .text-link{gap:0;font-family:var(--sans);font-size:16px;line-height:1.8;letter-spacing:0;text-decoration:underline;text-underline-offset:5px}
.product-planning-page .text-link::after{content:none}
.planning-process,.planning-scenes{padding:36px 0 56px;border-top:1px solid var(--line);scroll-margin-top:94px}
.planning-process h2{font-size:22px;line-height:1.6;font-weight:var(--heading-weight);letter-spacing:0}
.planning-scenes h2{font-size:26px;line-height:1.5;font-weight:var(--heading-weight);letter-spacing:0}
.planning-process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:28px 0 0;list-style:none}
.planning-process-steps li{border-top:1px solid var(--line);padding-top:18px}
.planning-step-number{font:500 13px/1.6 var(--mono);color:var(--red)}
.planning-process-steps h3,.planning-scene-grid h3{font-size:18px;font-weight:500;line-height:1.6;margin:12px 0}
.planning-process-steps p,.planning-scene-grid p{font-size:16px;line-height:1.85;color:var(--ink-soft)}
.planning-scene-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:28px}
.planning-scene-grid figure{margin:0;min-width:0}
.planning-scene-grid img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 62%}
.planning-scene-grid figcaption{padding-top:10px}
.planning-contact{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px;margin-top:44px}
.planning-contact p{font-size:16px;line-height:1.85}
@media(max-width:900px){
  .planning-process-steps{gap:22px}
}
@media(max-width:600px){
  .planning-process-steps,.planning-scene-grid{grid-template-columns:1fr}
  .planning-process,.planning-scenes{padding:28px 0 36px}
  .planning-process h2{font-size:21px}
  .planning-scenes h2{font-size:23px}
  .planning-process-steps{gap:22px;margin-top:22px}
  .planning-scene-grid{gap:30px;margin-top:24px}
  .planning-contact{margin-top:30px;gap:16px}
}


/* Company history and the shared page-title scale. */
.company-page .page-hero{padding-bottom:40px}
.company-page .company-statement{padding-block:64px;gap:clamp(28px,5vw,72px)}
.company-page .company-statement h2{font-size:clamp(26px,2.7vw,36px);line-height:1.6;letter-spacing:-.025em}
.company-page .company-statement h2>span{display:block}
.company-page .body-copy{font-size:16px;line-height:1.95}
.company-history,.company-information,.company-recruit,.company-message{display:grid;grid-template-columns:minmax(140px,.55fr) minmax(0,1.7fr);gap:clamp(28px,5vw,72px);padding-block:56px;border-top:1px solid var(--line)}
.company-history>h2,.company-information>h2,.company-recruit>h2,.company-access h2,.company-message h2{font-size:24px;line-height:1.5;font-weight:600;letter-spacing:0}
.company-message{scroll-margin-top:100px}
.company-message-profile,.company-message-copy{min-width:0}
.company-message h2{word-break:keep-all;overflow-wrap:anywhere}
.company-message-photo{margin-top:0;max-width:300px}
.company-message-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center}
.company-message-photo figcaption{margin-top:10px;color:var(--ink-soft);font-size:12px;line-height:1.7}
.company-message-copy{max-width:42em;font-size:16px;line-height:1.95}
.company-message-copy p+p{margin-top:20px}
.company-message-copy .company-message-lead{font-size:22px;line-height:1.85;font-weight:500;max-width:28em}
.company-message-copy .company-message-signature{margin-top:28px;display:grid;gap:2px}
.company-message-signature span:last-child{font-weight:500}
.company-recruit{scroll-margin-top:100px}
.company-recruit-copy{font-size:16px;line-height:1.95}
.company-recruit-copy p+p{margin-top:12px;color:var(--ink-soft)}
.company-recruit-copy .text-link{display:inline-block;margin-top:20px;padding-block:6px}
.company-timeline{list-style:none}
.company-timeline li{display:grid;grid-template-columns:112px minmax(0,1fr);gap:24px;padding-block:24px;border-bottom:1px solid var(--line)}
.company-timeline li:first-child{padding-top:0}
.company-timeline time{font:500 17px/1.8 var(--mono);color:var(--navy)}
.company-timeline h3{font-size:18px;line-height:1.75;font-weight:500}
.company-timeline p{margin-top:10px;font-size:16px;line-height:1.9;color:var(--ink-soft)}
.company-page .company-table{border-top:0}
.company-page .company-row{grid-template-columns:112px minmax(0,1fr);gap:24px;padding-block:18px}
.company-page .company-row:first-child{padding-top:0}
.company-page .company-row dd{font-size:16px}
.company-page .text-link{font:inherit;letter-spacing:0;text-transform:none;text-decoration:underline;text-underline-offset:5px}
.company-page .text-link::after{content:none}
.company-access{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);padding-block:56px 76px;border-top:1px solid var(--line)}
.company-access-copy>p{font-size:16px;margin-top:24px}
.company-access .access-notes{margin-block:20px}
.company-access .office-map-frame{margin-top:0;min-width:0;min-height:300px;aspect-ratio:auto}
.company-contact .container{padding-block:56px 64px;border-top:1px solid var(--line);text-align:center}
.company-contact h2{font-size:28px;line-height:1.5;font-weight:600;letter-spacing:0;margin-bottom:24px}
.company-contact .button{justify-content:center;min-width:280px;max-width:100%;background:var(--navy);border-color:var(--navy);color:white;font:400 16px/1.6 var(--sans);letter-spacing:0;text-transform:none}
.company-contact .button::after{content:none}
.company-contact .button:hover{background:#273a57;border-color:#273a57}
@media(max-width:900px){
  .company-history,.company-information,.company-recruit,.company-message{grid-template-columns:1fr;gap:24px}
  .company-page .company-statement{gap:24px}
}
@media(max-width:600px){
  :root{--page-title-size:clamp(26px,8.35vw,41px)}
  .company-page .page-hero{padding-bottom:30px}
  .company-page .company-statement{padding-block:40px}
  .company-history,.company-information,.company-recruit,.company-message{padding-block:40px}
  .company-message-copy .company-message-lead{font-size:20px;line-height:1.8}
  .company-timeline li{grid-template-columns:1fr;gap:8px;padding-block:20px}
  .company-timeline h3{font-size:17px}
  .company-page .company-row{grid-template-columns:1fr;gap:6px}
  .company-access{grid-template-columns:1fr;gap:28px;padding-block:40px 56px}
  .company-contact .container{padding-block:40px 48px}
  .company-contact h2{font-size:24px}
  .company-contact .button{min-width:0;width:100%;max-width:320px}
}

/* Readable FAQ: answers remain visible and service links retain their context. */
.faq-page .page-hero{padding-bottom:48px}
.faq-topics{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:30px}
.faq-topics a{display:inline-flex;align-items:center;min-height:44px;padding-block:6px;color:var(--navy);font-size:15px;font-weight:500;line-height:1.8;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:6px;text-decoration-thickness:1px}
.faq-topics a:hover{text-decoration-color:currentColor}
.faq-all-link,.related-faq a{font-size:15px;line-height:1.8;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:6px;text-decoration-thickness:1px}
.faq-all-link:hover,.related-faq a:hover{text-decoration-color:currentColor}
.faq-group{padding-block:56px 32px}
.faq-group>h2,.home-faq-heading h2,.related-faq h2{font-size:24px;font-weight:600;line-height:1.6;letter-spacing:0}
.faq-group>h2{margin-bottom:22px}
.faq-content .faq-group{max-width:960px;margin-inline:auto}
.faq-content .faq-group:last-child{padding-bottom:72px}
.faq-list{min-width:0}
.faq-item{padding-block:28px 30px;border-bottom:1px solid var(--line);scroll-margin-top:20px}
.faq-item h3{display:grid;grid-template-columns:24px minmax(0,1fr);gap:18px;color:var(--navy);font-size:20px;font-weight:600;line-height:1.75;letter-spacing:0}
.faq-marker{color:var(--navy);text-align:center;font:600 20px/1.75 var(--sans)}
.faq-answer{display:grid;grid-template-columns:24px minmax(0,1fr);gap:18px;margin-top:12px;color:var(--ink-soft);font-size:16px;line-height:1.95}
.faq-answer-marker{color:var(--navy);text-align:center;font:400 20px/1.55 var(--sans)}
.faq-answer-copy{min-width:0}
.faq-answer p+p{margin-top:4px}
.faq-answer-links{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:10px}
.faq-answer-links a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding-block:6px;color:var(--navy);font-size:14px;font-weight:500;line-height:1.7;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px;text-decoration-thickness:1px}
.faq-answer-links a:hover{text-decoration-color:currentColor}
.home-faq .faq-group{padding-block:clamp(64px,7vw,100px);border-top:1px solid var(--line)}
.home-faq-heading{max-width:960px;margin-inline:auto;text-align:center;margin-bottom:22px}
.home-faq .faq-list{max-width:960px;margin-inline:auto}
.home-faq-heading h2{font-size:clamp(28px,3vw,36px)}
.faq-all-link{display:inline-block;margin-top:12px;padding-block:6px}
.faq-contact .container{text-align:center;padding-block:56px 72px;border-top:1px solid var(--line)}
.faq-contact h2{font-size:28px;font-weight:600;line-height:1.6;letter-spacing:0}
.faq-contact p{margin-top:16px;font-size:16px;line-height:1.9}
.faq-contact .button::after{content:none}
.faq-contact .button{margin-top:28px;justify-content:center;min-width:280px;max-width:100%;background:var(--navy);border-color:var(--navy);color:white;font:400 16px/1.6 var(--sans);letter-spacing:0;text-transform:none}
.related-faq{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.7fr);gap:24px clamp(32px,5vw,72px);padding-block:40px 56px;border-top:1px solid var(--line)}
.related-faq ul{display:flex;flex-wrap:wrap;gap:12px 32px;list-style:none}
.related-faq a{display:inline-block;padding-block:8px}
.nav-list a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}
@media(max-width:900px){
  .related-faq{grid-template-columns:1fr;gap:28px}
}
@media(max-width:600px){
  .faq-page .page-hero{padding-bottom:28px}
  .faq-topics{gap:4px 24px;margin-top:24px}
  .faq-group{padding-block:36px 16px}
  .faq-content .faq-group:last-child{padding-bottom:48px}
  .faq-group>h2,.related-faq h2{font-size:22px}
  .faq-item{padding-block:24px}
  .faq-item h3{font-size:18px;grid-template-columns:20px minmax(0,1fr);gap:12px;line-height:1.75}
  .faq-marker{font-size:18px}
  .faq-answer{grid-template-columns:20px minmax(0,1fr);gap:12px;margin-top:10px}
  .faq-answer-marker{font-size:18px;line-height:1.75}
  .faq-answer-links{gap:4px 20px;margin-top:8px}
  .home-faq .faq-group{padding-block:56px}
  .faq-contact .container{padding-block:40px 56px}
  .faq-contact h2{font-size:24px}
  .faq-contact .button{width:auto;min-width:0;padding-inline:24px}
  .related-faq{padding-block:32px 44px;gap:16px}
  .related-faq ul{flex-direction:column;gap:4px}
}

/* Domestic production: wide photo that lines up with the request details. */
.service-detail-section--wide-media{padding:clamp(48px,6vw,88px) 0}
.service-detail-section--wide-media .service-detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center}
.service-detail-section--wide-media .service-detail-media{min-height:0}
.service-detail-section--wide-media .service-detail-media img{width:100%;max-height:none;aspect-ratio:3/2;object-fit:cover;object-position:50% 55%}
@media(max-width:700px){
  .service-detail-section--wide-media .service-detail-grid{grid-template-columns:1fr}
}
