@charset "utf-8";
/* TAKAKURA V46 Phase 176 FINAL-CANDIDATE — consolidated preview stylesheet. */
:root{
  --navy:#052d57;--navy-deep:#031e39;--navy-2:#0b446f;
  --pink:#ea3a73;--pink-deep:#c91f5e;
  --ink:#213a52;--muted:#5b6c7d;--line:#dde5ec;--soft:#f5f8fb;--white:#fff;
  --max:1200px;--header:72px;
  --mincho:"Yu Mincho","Hiragino Mincho ProN",YuMincho,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --section:68px;--section-mobile:52px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-break:strict;overflow-wrap:normal;word-break:normal;text-wrap:balance}
.wrap{width:min(var(--max),calc(100% - 64px));margin-inline:auto;min-width:0}
[id]{scroll-margin-top:calc(var(--header) + 14px)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
:focus-visible{outline:3px solid var(--pink-deep);outline-offset:3px}
main:focus{outline:3px solid currentColor;outline-offset:3px}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.98);border-bottom:1px solid #edf1f5;backdrop-filter:blur(10px)}
.site-header .wrap{height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:24px}
.mobile-header-contact{display:none}
.brand{display:flex;align-items:center;gap:12px;min-width:242px;flex:0 0 auto}
.brand-mark{width:80px;height:45px;object-fit:contain}
.brand-copy{display:flex;flex-direction:column;line-height:1.22}
.brand-copy strong{font-family:var(--mincho);font-size:17px;color:var(--navy);letter-spacing:.04em}
.brand-copy small{font-size:12px;color:#5b6c7d;letter-spacing:.01em;margin-top:3px}
.nav{display:flex;align-items:center;justify-content:flex-end;gap:22px;font-size:13px;font-weight:700;white-space:nowrap}
.nav a{position:relative;padding:27px 0 23px;color:#29455f}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:17px;height:2px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}
.nav a:hover::after,.nav a.active::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav .contact-link{padding:10px 16px;background:var(--pink-deep);color:#fff}
.nav .contact-link::after{display:none}
.nav .contact-link:hover{background:#b81954}
.menu-btn{display:none;min-width:52px;min-height:44px;border:1px solid #b9c5d1;background:#fff;color:var(--navy);font-size:12px;font-weight:900;letter-spacing:.09em}
.eyebrow{font-size:12px;line-height:1.4;font-weight:900;letter-spacing:.18em;color:var(--pink-deep);text-transform:uppercase}
.eyebrow{margin-bottom:8px}
.pink{color:var(--pink)}
.nw{display:inline-block}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border:1px solid #aebdca;background:#fff;color:var(--navy);font-size:13px;font-weight:800;transition:background .15s,color .15s,border-color .15s,transform .15s}
.btn:hover{transform:translateY(-1px);border-color:var(--navy)}
.btn.pink{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff}
.btn.pink:hover{background:#b81954}
.btn.dark{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.dark:hover{background:#031f3d}
.title{font-family:var(--mincho);font-size:32px;line-height:1.4;letter-spacing:.02em;color:var(--navy);margin:0 0 20px}
.title--sm{font-size:29px}
.project-link{display:inline-block;padding:4px 0;font-size:13px;font-weight:800;color:#274762;text-decoration:underline;text-decoration-color:#9cb0c3;text-underline-offset:4px}
.sns-link{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:11px 18px;background:var(--navy);color:#fff;font-size:13px;font-weight:800;white-space:nowrap}
.sns-link:hover{background:#031f3d}
.sns-link .icon,.footer-sns .icon{width:17px;height:17px;fill:currentColor}
.sns-link .accent,.footer-sns .accent{fill:var(--pink)}
.site-footer{background:var(--navy-deep);color:#fff;padding:22px 0 16px}
.footer-row{display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:28px}
.footer-logo{display:flex;align-items:center;gap:12px}
.footer-logo>img{width:72px;height:42px;object-fit:contain}
.footer-logo>div{display:flex;flex-direction:column;line-height:1.2}
.footer-logo strong{font-family:var(--mincho);font-size:15px;letter-spacing:.04em}
.footer-logo small{font-size:12px;letter-spacing:.12em;color:#bdccda;margin-top:4px}
.footer-nav{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}
.footer-nav a{display:inline-block;color:#e6edf4;padding:6px 0}
.footer-nav a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-contact{display:flex;align-items:center;gap:13px}
.footer-phone{font-size:22px;font-weight:800;line-height:1.1}
.footer-contact small{font-size:12px;color:#c1cfdd}
.footer-btn{display:inline-flex;align-items:center;min-height:44px;padding:11px 16px;background:var(--pink-deep);font-size:12.5px;font-weight:800}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:13px;padding-top:13px;border-top:1px solid rgba(255,255,255,.11)}
.copyright{font-size:12.5px;color:#c3d3e1;margin:0}
.footer-sns{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:5px 2px;font-size:12.5px;color:#dbe5ee}
.page-hero{position:relative;min-height:300px;overflow:hidden;background:var(--navy)}
.page-hero--plain{background:linear-gradient(120deg,var(--navy-deep),var(--navy) 55%,var(--navy-2))}
.page-bg{position:absolute;inset:0}
.page-bg img{width:100%;height:100%;object-fit:cover}
.page-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,30,57,.94) 0%,rgba(5,45,87,.78) 48%,rgba(5,45,87,.28) 100%)}
.page-hero>.wrap{position:relative;z-index:2;min-height:300px;display:flex;flex-direction:column;justify-content:center;color:#fff;padding:32px 0}
.page-hero .kicker{font-size:12px;font-weight:900;letter-spacing:.18em;color:#ffd2e1;margin:0 0 6px}
.recruit-form-head .kicker{font-size:12px;font-weight:900;letter-spacing:.18em;color:var(--pink-deep);margin:0 0 6px}
.page-hero h1{font-family:var(--mincho);font-size:48px;line-height:1.25;letter-spacing:.02em;margin:0 0 8px}
.page-hero p{max-width:670px;font-size:15px;line-height:1.8;color:#eef4fa;margin:0}
.content-grid{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(270px,.95fr);gap:32px;align-items:start}
.box{border:1px solid #e0e7ee;background:#fff;padding:27px;margin-bottom:20px}
.box h2{font-family:var(--mincho);font-size:29px;line-height:1.45;color:var(--navy);margin-bottom:12px}
.box h3{font-size:19px;line-height:1.5;color:var(--navy);margin-bottom:8px}
.box p,.box li{font-size:15px;line-height:1.9;color:#536577}
.sidebar{background:#f6f9fc;border:1px solid #e3eaf0;padding:24px;height:max-content}
.sidebar h3{font-size:17px;line-height:1.5;color:var(--navy);margin-bottom:8px}
.sidebar p,.sidebar li{font-size:13.5px;line-height:1.85;color:#596b7c}
.sidebar ul{padding-left:1.25em}
.privacy-list h3{margin-top:24px;margin-bottom:6px}
.privacy-list h3:first-child{margin-top:0}
.form{display:grid;gap:16px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{display:grid;gap:7px}
.form label{font-size:14px;font-weight:800;color:var(--navy)}
.form input,.form select,.form textarea{width:100%;padding:13px 14px;border:1px solid #9fb0c0;border-radius:0;background:#fff;color:#1b344f}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--navy);box-shadow:0 0 0 2px rgba(5,45,87,.08)}
.form textarea{min-height:170px;resize:vertical}
.required,.optional{display:inline-block;margin-left:7px;padding:2px 7px;color:#fff;font-size:12px;font-weight:800;vertical-align:1px;line-height:1.5}
.required{background:var(--pink-deep)}
.optional{background:#637486}
.checkline{display:flex;align-items:flex-start;gap:9px!important;font-weight:400!important;color:#4f6072!important;line-height:1.7!important}
.checkline input{width:24px!important;height:24px!important;flex:0 0 auto;margin-top:.05em}
.form-status{display:none;padding:13px 15px;margin-bottom:14px;font-size:13.5px;line-height:1.8;border-left:3px solid var(--pink-deep)}
.form-status:not(:empty){display:block}
.form-status.is-success{background:#f0fbf6;border-left-color:#0f7a4d;color:#1d5a44}
.form-status.is-error{background:#fff4f6;border-left-color:#b73052;color:#8f3f52}
.field-error{display:block;color:#b73052;font-size:12px;font-weight:700}
.field-error:empty{display:none}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-note{background:#f8fbfe;border-left:3px solid var(--pink);padding:13px 15px;font-size:14px;line-height:1.8;color:#536779;margin-bottom:17px}
.mini-link{display:inline-block;padding:3px 0;text-decoration:underline;text-underline-offset:3px;color:var(--navy)}
.sidebar a:not(.btn):not(.sns-link),.box p a:not(.btn),.footer-phone a{display:inline-block;padding:3px 0}
.recruit-contact-section{background:#f7f9fc;border-top:1px solid #e5ebf1}
.recruit-form-head{max-width:760px;margin-bottom:24px}
.recruit-form-head h2{font-family:var(--mincho);font-size:31px;line-height:1.45;color:var(--navy);margin:0 0 9px}
.recruit-form-head p{font-size:15px;color:#5b6c7d;margin:0}
@media (max-width:1180px){.wrap{width:min(var(--max),calc(100% - 48px))}
.brand{min-width:220px}
.brand-mark{width:76px;height:43px}
.brand-copy strong{font-size:16px}
.nav{gap:16px;font-size:12px}
.nav .contact-link{padding:10px 13px}
.footer-row{grid-template-columns:230px 1fr}
.footer-contact{grid-column:1/-1;justify-content:flex-end}}
@media (max-width:960px){:root{--header:72px}
.wrap{width:min(var(--max),calc(100% - 40px))}
.site-header .wrap{position:relative}
.brand{min-width:0}
.brand-mark{width:68px;height:40px}
.brand-copy strong{font-size:15px}
.brand-copy small{display:none}
.mobile-header-contact{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;margin-left:auto;border:1px solid var(--pink);background:#fff;color:var(--pink-deep);font-size:12px;font-weight:800;line-height:1;border-radius:2px;white-space:nowrap}
.mobile-header-contact:hover,.mobile-header-contact:focus-visible{background:var(--pink);color:#fff}
.menu-btn{display:block}
.nav{display:none;position:absolute;top:var(--header);left:0;right:0;z-index:10;background:#fff;border:1px solid #e3e9ef;box-shadow:0 12px 28px rgba(5,45,87,.11);padding:10px 18px 18px;flex-direction:column;align-items:stretch;gap:0;white-space:normal;font-size:14px}
.nav.open{display:flex}
.nav a{padding:13px 3px;border-bottom:1px solid #eef2f5}
.nav a::after{display:none}
.nav .contact-link{margin-top:10px;text-align:center;border-bottom:0;padding:13px}
.content-grid{grid-template-columns:1fr}
.footer-row{grid-template-columns:1fr}
.footer-nav{order:2}
.footer-contact{grid-column:auto;order:3;justify-content:flex-start}
.page-hero,.page-hero>.wrap{min-height:270px}
.page-hero h1{font-size:43px}
.sidebar{margin-top:0}}
@media (max-width:720px){:root{--header:68px}
.wrap{width:min(var(--max),calc(100% - 36px))}
.site-header .wrap{gap:12px}
.brand-mark{width:60px;height:35px}
.brand-copy strong{font-size:14px;letter-spacing:.02em}
.btns{gap:9px}
.btn{min-height:44px;padding:10px 16px;font-size:12.5px}
.title,.title--sm{font-size:27px;line-height:1.42}
.project-link{font-size:12.5px}
.footer-logo>img{width:62px;height:38px}
.footer-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 18px}
.footer-contact{align-items:flex-start;flex-direction:column}
.footer-bottom{align-items:flex-start;flex-direction:column}
.page-hero,.page-hero>.wrap{min-height:240px}
.page-hero .page-bg::after{background:linear-gradient(90deg,rgba(3,30,57,.92),rgba(5,45,87,.74))}
.page-hero h1{font-size:38px}
.page-hero p{font-size:14.5px}
.box{padding:22px}
.box h2{font-size:26px}
.box h3{font-size:18px}
.form-row{grid-template-columns:1fr}
.recruit-form-head h2{font-size:27px}}
@media (max-width:420px){.wrap{width:min(var(--max),calc(100% - 30px))}
.brand-mark{width:54px}
.brand-copy strong{font-size:13px}
.mobile-header-contact{min-height:42px;padding:0 10px;font-size:12px}
.footer-nav{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{transition:none!important;animation:none!important}}
@media (min-width:961px){.page-hero:not(.page-hero--plain),.page-hero:not(.page-hero--plain)>.wrap{min-height:clamp(300px,31.25vw,420px)}}
.vision-statement{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:46px;padding:38px 40px;background:var(--navy);color:#fff}
.vision-statement .eyebrow{color:#ff8eb2}
.vision-statement h2{font-family:var(--mincho);font-size:31px;line-height:1.5;margin:0;color:#fff}
.vision-statement>div>p:last-of-type{font-size:16px;line-height:1.95;color:#e6edf4;margin:0}
.vision-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.vision-tags span{border:1px solid rgba(255,255,255,.35);padding:7px 11px;font-size:12.5px;font-weight:700;color:#fff}
@media (max-width:960px){.vision-statement{grid-template-columns:1fr;gap:18px}}
@media (max-width:720px){.vision-statement{padding:28px 24px}
.vision-statement h2{font-size:27px}
.vision-statement>div>p:last-of-type{font-size:15.5px}}
:root{
  --max:1240px;
  --section:100px;--section-mobile:64px;
  --steel:#eef3f8;--steel-line:#dbe4ec;
  --ink-body:#3d5265;
}
body{font-size:17px;line-height:1.85}
.nav{font-size:14.5px;gap:18px}
.btn{font-size:14.5px;min-height:50px;padding:13px 22px}
.box p,.box li{font-size:16.5px;line-height:1.9}
.page-hero p{font-size:16.5px;line-height:1.85}
.sidebar p,.sidebar li,.project-link{font-size:15px;line-height:1.85}
.footer-nav a{font-size:15px}
.footer-btn{font-size:14px}
.copyright,.footer-sns{font-size:13px}
.title{font-size:clamp(32px,3.3vw,46px);line-height:1.38}
.title--sm{font-size:clamp(28px,2.6vw,36px)}
.page-hero h1{font-size:clamp(36px,4.2vw,56px)}
.site-header{--header:80px}
.site-header .wrap{height:80px}
.brand-mark{width:90px;height:50px}
.brand-copy strong{font-size:18px}
.brand-copy small{font-size:12px}
.nav a{padding:29px 0 25px}
.nav .contact-link{padding:12px 18px;font-size:14px}
.sechead19{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.05fr) minmax(0,1.05fr);
  gap:36px;align-items:start;margin-bottom:40px}
.sechead19 .eyebrow{font-size:13px;letter-spacing:.2em;margin-bottom:10px}
.sechead19 h2{font-family:var(--mincho);font-size:clamp(36px,3.9vw,54px);line-height:1.22;
  letter-spacing:.03em;color:var(--navy);margin:0}
.sechead19 .lead{font-family:var(--mincho);font-size:clamp(20px,1.65vw,23px);line-height:1.7;
  color:var(--navy);font-weight:600;margin:0;padding-top:6px}
.sechead19 .desc{font-size:16px;line-height:1.95;color:var(--ink-body);margin:0;padding-top:8px}
.hero19{position:relative;background:var(--navy-deep);overflow:hidden}
.hero19-bg{position:absolute;inset:0}
.hero19-bg img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,center 58%)}
.hero19-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(100deg,rgba(3,26,50,.93) 0%,rgba(4,34,64,.86) 34%,rgba(5,45,87,.60) 58%,rgba(5,45,87,.20) 100%)}
.hero19 .wrap{position:relative;z-index:2;min-height:clamp(540px,46vw,640px);
  display:flex;flex-direction:column;justify-content:center;padding:56px 0 44px;color:#fff}
.hero19-kicker{font-size:13px;font-weight:900;letter-spacing:.22em;color:#ff9dc0;margin:0 0 16px}
.hero19 h1{font-family:var(--mincho);font-size:clamp(38px,4.6vw,62px);line-height:1.22;
  letter-spacing:.03em;margin:0 0 18px;max-width:17em;text-shadow:0 2px 18px rgba(0,0,0,.28)}
.hero19 .sub{font-family:var(--mincho);font-size:clamp(20px,1.85vw,26px);line-height:1.6;
  font-weight:600;color:#e9f1f8;margin:0 0 18px}
.hero19 .desc19{font-size:16.5px;line-height:1.95;color:#dbe6f0;max-width:44em;margin:0 0 28px}
.hero19 .btns{gap:14px}
.hero19 .btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.55);color:#fff}
.hero19 .btn:hover{background:rgba(255,255,255,.18);border-color:#fff}
.hero19 .btn.pink{background:var(--pink-deep);border-color:var(--pink-deep)}
.hero19 .btn.pink:hover{background:#b81954}
.hero19-facts{display:flex;flex-wrap:wrap;gap:0 34px;margin:32px 0 0;padding:20px 0 0;
  border-top:1px solid rgba(255,255,255,.22);list-style:none}
.hero19-facts li{display:flex;align-items:baseline;gap:10px;font-size:15.5px;color:#d5e2ee;padding:4px 0}
.hero19-facts b{font-family:var(--mincho);font-size:19px;color:#fff;font-weight:600}

.about19{padding:var(--section) 0}
.about19-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:56px;align-items:center}
.about19 .eyebrow{font-size:13px;letter-spacing:.2em;margin-bottom:12px}
.about19 h2{font-family:var(--mincho);font-size:clamp(34px,3.6vw,50px);line-height:1.3;
  letter-spacing:.03em;color:var(--navy);margin:0 0 22px}
.about19 h2 .pink{color:var(--pink-deep)}
.about19 .lead{font-family:var(--mincho);font-size:clamp(19px,1.5vw,22px);line-height:1.75;
  color:var(--navy);font-weight:600;margin:0 0 18px}
.about19 p{font-size:16.5px;line-height:1.95;color:var(--ink-body);margin:0 0 16px}
.about19-photos{display:grid;grid-template-columns:1.32fr .88fr;grid-template-rows:auto auto;gap:12px}
.about19-photos img{width:100%;height:100%;object-fit:cover}
.about19-photos .tall{grid-row:1/3;aspect-ratio:3/4}
.about19-photos .wide{aspect-ratio:4/3}
.about19-note{background:var(--navy);color:#fff;padding:22px 20px;display:flex;flex-direction:column;
  justify-content:center}
.about19-note strong{font-family:var(--mincho);font-size:19px;line-height:1.55;font-weight:600;margin-bottom:6px}
.about19-note span{font-size:14.5px;line-height:1.75;color:#c9daea}
.cards19{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}
.card19{display:flex;flex-direction:column;background:#fff;border:1px solid var(--steel-line);min-width:0}
.card19>img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:var(--pos,center)}
.card19-body{padding:20px 20px 24px;display:flex;flex-direction:column;flex:1}
.card19 .num{display:block;font-family:var(--mincho);font-size:19px;font-weight:700;color:var(--pink-deep);
  letter-spacing:.08em;margin-bottom:6px}
.card19 h3{font-size:22px;line-height:1.45;color:var(--navy);margin:0 0 12px;
  padding-bottom:12px;border-bottom:1px solid var(--steel-line)}
.card19 p{font-size:16px;line-height:1.88;color:var(--ink-body);margin:0}
.section19{padding:var(--section) 0}
.section19.soft{background:var(--soft)}
.ctaband{position:relative;overflow:hidden;background:var(--navy-deep);margin-top:56px}
.ctaband-bg{position:absolute;inset:0}
.ctaband-bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.ctaband-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,26,50,.92),rgba(5,45,87,.86))}
.ctaband .wrap{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;
  gap:32px;padding:44px 0;color:#fff}
.ctaband h2{font-family:var(--mincho);font-size:clamp(26px,2.6vw,36px);line-height:1.45;margin:0 0 8px;
  letter-spacing:.04em}
.ctaband .en{font-size:13px;font-weight:800;letter-spacing:.24em;color:#a9c3da;margin:0}
.ctaband .btn{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff;white-space:nowrap}
.ctaband .btn:hover{background:#b81954}
.proj19-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.proj19-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.proj19{background:#fff;border:1px solid var(--steel-line);display:flex;flex-direction:column;min-width:0}
.proj19>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.proj19 .copy{padding:18px 18px 22px}
.proj19 small{display:block;font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--pink-deep);margin-bottom:8px}
.proj19 h3{font-size:21px;line-height:1.5;color:var(--navy);margin:0 0 8px}
.proj19 p{font-size:15.5px;line-height:1.8;color:var(--muted);margin:0}
.recruit19{position:relative;overflow:hidden;background:var(--navy-deep)}
.recruit19-bg{position:absolute;inset:0}
.recruit19-bg img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.recruit19-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(3,26,50,.94) 0%,rgba(3,30,57,.88) 44%,rgba(3,30,57,.52) 72%,rgba(3,30,57,.18) 100%)}
.recruit19 .wrap{position:relative;z-index:2;padding:78px 0;color:#fff}
.recruit19-copy{max-width:640px}
.recruit19 .eyebrow{color:#ff9dc0;font-size:13px;letter-spacing:.2em;margin-bottom:12px}
.recruit19 h2{font-family:var(--mincho);font-size:clamp(28px,3vw,42px);line-height:1.45;margin:0 0 18px}
.recruit19 p{font-size:16.5px;line-height:1.95;color:#dce7f1;margin:0 0 24px}
.recruit19 .btn{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff}
.recruit19 .btn:hover{background:#b81954}
.company19{padding:var(--section) 0;background:var(--soft)}
.company19-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:start}
.company19 .eyebrow{font-size:13px;letter-spacing:.2em;margin-bottom:12px}
.company19 h2{font-family:var(--mincho);font-size:clamp(32px,3.2vw,44px);line-height:1.32;color:var(--navy);margin:0 0 18px}
.company19 .lead{font-size:16.5px;line-height:1.95;color:var(--ink-body);margin:0 0 24px}
.company19-offices{display:grid;gap:16px}
.about-lead19{max-width:900px;margin:0 auto 56px;text-align:center}
.about-lead19 h2{font-family:var(--mincho);font-size:clamp(30px,3.2vw,44px);line-height:1.4;color:var(--navy);margin:0 0 20px}
.about-lead19 p{font-size:17px;line-height:2;color:var(--ink-body);margin:0 0 14px}
@media (max-width:1180px){.sechead19{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px}
.sechead19 .desc{grid-column:1/-1;padding-top:0}
.cards19{grid-template-columns:repeat(2,minmax(0,1fr))}
.proj19-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.company19-grid{grid-template-columns:1fr;gap:34px}}
@media (max-width:1060px){.nav{gap:14px;font-size:13.5px}}
@media (max-width:960px){:root{--section:76px}
.site-header{--header:76px}
.site-header .wrap{height:76px}
.brand-mark{width:78px;height:44px}
.brand-copy strong{font-size:16px}
.nav{font-size:16px;gap:0}
.nav a{padding:15px 4px}
.nav .contact-link{font-size:15.5px}
.hero19 .wrap{min-height:520px;padding:46px 0 40px}

.about19-grid{grid-template-columns:1fr;gap:34px}
.about19-photos{grid-template-columns:1.2fr .8fr}
.ctaband .wrap{flex-direction:column;align-items:flex-start;gap:22px;padding:38px 0}
.proj19-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.recruit19 .wrap{padding:60px 0}
.recruit19-bg::after{background:linear-gradient(90deg,rgba(3,26,50,.95) 0%,rgba(3,30,57,.86) 60%,rgba(3,30,57,.55) 100%)}}
@media (max-width:720px){:root{--section:64px;--section-mobile:64px}
body{font-size:16px;line-height:1.85}
.btn{font-size:14.5px;min-height:48px;padding:12px 18px}
.title{font-size:clamp(28px,7.4vw,34px)}
.sechead19{grid-template-columns:1fr;gap:16px;margin-bottom:28px}
.sechead19 h2{font-size:clamp(30px,8.6vw,38px)}
.sechead19 .lead{font-size:19px;padding-top:0}
.sechead19 .desc{font-size:15.5px}
.hero19 .wrap{min-height:0;padding:40px 0 36px}
.hero19-bg img{object-position:center 55%}
.hero19-bg::after{background:linear-gradient(180deg,rgba(3,26,50,.90) 0%,rgba(4,34,64,.86) 55%,rgba(5,45,87,.80) 100%)}
.hero19 h1{font-size:clamp(34px,9.6vw,42px);line-height:1.3}
.hero19 .sub{font-size:19px}
.hero19 .desc19{font-size:16px;margin-bottom:24px}
.hero19 .btns{flex-direction:column;align-items:stretch;gap:10px}
.hero19 .btn{width:100%}
.hero19-facts{gap:0;margin-top:26px;flex-direction:column}
.hero19-facts li{width:100%;border-bottom:1px solid rgba(255,255,255,.14);padding:9px 0}
.hero19-facts li:last-child{border-bottom:0}
.about19 h2{font-size:clamp(28px,8.2vw,36px)}
.about19 .lead{font-size:18px}
.about19-photos{grid-template-columns:1fr 1fr;gap:10px}
.about19-photos .tall{grid-row:auto;aspect-ratio:4/3}
.about19-note{grid-column:1/-1;padding:18px}
.cards19{grid-template-columns:1fr;gap:16px}
.card19 h3{font-size:21px}
.card19 p{font-size:15.8px}
.ctaband{margin-top:40px}
.ctaband h2{font-size:clamp(24px,6.6vw,30px)}
.ctaband .btn{width:100%}
.proj19-grid{grid-template-columns:1fr;gap:16px}
.proj19 h3{font-size:20px}
.recruit19 .wrap{padding:48px 0}
.recruit19 h2{font-size:clamp(26px,7.4vw,34px)}
.recruit19 .btn{width:100%}
.company19-grid{gap:28px}
.about-lead19{text-align:left;margin-bottom:40px}
.about-lead19 p{font-size:16px}}
@media (max-width:420px){.hero19 h1{font-size:clamp(32px,9.2vw,36px)}
.about19-photos{grid-template-columns:1fr}
.about19-photos .tall{aspect-ratio:16/10}
.brand-copy strong{font-size:15px}}
.nav .contact-link{font-size:15px}
.sns-link{font-size:15px;min-height:50px;padding:13px 20px}
.footer-btn{font-size:15px;min-height:48px;padding:12px 18px}
.footer-sns{font-size:14px}
.mobile-header-contact{font-size:14.5px!important;min-height:46px!important;padding:0 14px!important}
.project-link{display:inline-flex;align-items:center;min-height:44px}
.footer-nav a{min-height:44px;display:inline-flex;align-items:center}
.footer-phone a{display:inline-flex;align-items:center;min-height:44px}
.footer-sns{min-height:44px}
@media (max-width:1180px) and (min-width:961px){.nav{font-size:14.5px;gap:13px}
.nav .contact-link{padding:11px 13px}
.brand{min-width:0}
.brand-mark{width:78px;height:44px}}
@media (min-width:961px){.hero19 h1{font-size:clamp(46px,4.6vw,62px)}
.sechead19 h2{font-size:clamp(38px,3.9vw,54px)}
.about19 h2{font-size:clamp(38px,3.6vw,50px)}}
@media (min-width:1181px){.sechead19 h2{font-size:clamp(42px,3.9vw,54px)}}
@media (max-width:420px){.site-header .wrap{gap:8px}
.brand{gap:8px;min-width:0;flex:1 1 auto;overflow:hidden}
.brand-mark{width:48px;height:28px;flex:0 0 auto}
.brand-copy strong{font-size:14px;letter-spacing:0;white-space:nowrap}
.mobile-header-contact{padding:0 10px!important;font-size:14px!important;flex:0 0 auto}
.menu-btn{min-width:48px;flex:0 0 auto}}
@media (min-width:1100px){.page-hero h1{font-size:clamp(48px,4.2vw,56px)}}
@media (max-width:420px){.brand{min-height:46px;align-items:center}
.mobile-header-contact{font-size:14.5px!important}}
@media (min-width:1181px){.sechead19{grid-template-columns:max-content minmax(240px,1fr) minmax(240px,1fr);gap:40px}
.sechead19 h2{white-space:nowrap}}
.card19 h3 .nw,.recruit19 h2 .nw{display:inline-block}
.about19 h2 .nw{display:inline-block}
.menu-btn{font-size:14px;min-width:58px}
.mini-link{font-size:15px;display:inline-flex;align-items:center;min-height:44px}
.checkline,label{font-size:15.5px}
.form label,.form .checkline{font-size:15.5px}
.title--flush{margin:0}
.wrap--doc{max-width:940px}
.note19{font-size:15px;line-height:1.85;color:var(--muted);margin:18px 0 0;padding-left:14px;border-left:3px solid var(--steel-line)}
.photo-wide19{width:100%;aspect-ratio:16/7;object-fit:cover;margin-top:8px}
.cards19--2{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.cards19--2 .card19>img{aspect-ratio:16/8}
.card19-list{margin:16px 0 0;padding:14px 0 0 1.2em;border-top:1px solid var(--steel-line);color:#3e566d}
.card19-list li{font-size:15px;line-height:1.8;margin:4px 0}
.about19-photos img{object-position:var(--pos,center)}
.about19-photos .tall{object-position:center 35%}
.statement19{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:44px;
  align-items:start;padding:40px 44px;background:var(--steel);border-top:3px solid var(--navy)}
.statement19 h2{font-family:var(--mincho);font-size:clamp(26px,2.5vw,34px);line-height:1.5;color:var(--navy);margin:0}
.statement19>p{font-size:16.5px;line-height:1.95;color:var(--ink-body);margin:0}
.table19{display:grid;gap:0;margin:36px 0 0}
.table19>div{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;
  padding:18px 4px;border-bottom:1px solid var(--steel-line)}
.table19>div:first-child{border-top:1px solid var(--steel-line)}
.table19 dt{font-size:16px;font-weight:800;color:var(--navy);margin:0}
.table19 dd{font-size:16px;line-height:1.85;color:var(--ink-body);margin:0}
.table19 dd a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.proj19-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.proj19-spec{margin:10px 0 0;display:grid;gap:0}
.proj19-spec>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;
  padding:8px 0;border-top:1px solid var(--steel-line)}
.proj19-spec dt{font-size:14px;font-weight:800;color:var(--pink-deep);margin:0}
.proj19-spec dd{font-size:15.5px;line-height:1.7;color:var(--ink-body);margin:0}
.route19{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.route19--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.route19-card{background:#fff;border:1px solid var(--steel-line);padding:26px 26px 28px}
.route19-card.is-current{border-top:3px solid var(--pink-deep);background:var(--steel)}
.route19-card h3{font-size:20px;line-height:1.5;color:var(--navy);margin:0 0 10px}
.route19-card p{font-size:15.5px;line-height:1.85;color:var(--ink-body);margin:0 0 14px}
.route19-card p:last-child{margin-bottom:0}
.route19-card .eyebrow{margin-bottom:8px}
.formbox19{background:#fff;border:1px solid var(--steel-line);padding:32px 34px 34px}
.formbox19 h2{font-family:var(--mincho);font-size:clamp(24px,2.3vw,30px);line-height:1.45;color:var(--navy);margin:0 0 14px}
.btns--hero404{margin-top:22px}
.btn--onnavy{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}
.btn--onnavy:hover{background:rgba(255,255,255,.14);border-color:#fff}
@media (max-width:1180px){.route19--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:960px){.cards19--2{grid-template-columns:1fr}
.statement19{grid-template-columns:1fr;gap:20px;padding:30px 28px}
.table19>div{grid-template-columns:170px minmax(0,1fr);gap:14px}
.proj19-grid--2{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.cards19--2{gap:16px}
.cards19--2 .card19>img{aspect-ratio:16/9}
.statement19{padding:26px 22px}
.table19{margin-top:26px}
.table19>div{grid-template-columns:1fr;gap:4px;padding:14px 2px}
.table19 dt{font-size:14.5px;color:var(--pink-deep)}
.table19 dd{font-size:16px}
.proj19-grid--2{grid-template-columns:1fr}
.route19,.route19--4{grid-template-columns:1fr;gap:14px}
.route19-card{padding:22px}
.formbox19{padding:22px 20px 24px}
.photo-wide19{aspect-ratio:16/9}
.btns--hero404 .btn{width:100%}}
@media (max-width:430px){.about-lead19 h2{font-size:27px;line-height:1.45}
.statement19 h2{font-size:22px}
.ctaband h2{font-size:clamp(22px,6.2vw,28px)}
.formbox19 h2{font-size:23px}}
.about19-grid{grid-template-areas:"head photos" "body photos";gap:0 56px;align-items:start}
.about19-head{grid-area:head}
.about19-body{grid-area:body}
.about19-photos{grid-area:photos;align-self:center}
.about19-head .lead{margin-bottom:22px}
@media (max-width:960px){.about19-grid{grid-template-columns:1fr;grid-template-areas:"head" "photos" "body";gap:30px}
.about19-photos{align-self:stretch}}
@media (max-width:720px){.about19-grid{gap:26px}
.about19-head .lead{margin-bottom:0}}
@media (max-width:420px){.about19-photos{grid-template-columns:1fr 1fr;gap:9px}
.about19-photos .tall{aspect-ratio:4/3}
.about19-note{padding:16px}}
.hero19-bg img{object-position:center 42%}
@media (max-width:720px){.hero19-bg img{object-position:center 46%}}
.about19-photos .tall{object-position:center 40%}
.recruit19-bg img{object-position:center 46%}
.ctaband-bg img{object-position:center 52%}
.pc-br{display:inline}
@media (max-width:720px){.pc-br{display:none}}
.hero19-bg::after{background:linear-gradient(100deg,rgba(3,26,50,.93) 0%,rgba(4,34,64,.86) 34%,rgba(5,45,87,.74) 54%,rgba(5,45,87,.30) 74%,rgba(5,45,87,.08) 100%)}
.hero19 .desc19{max-width:none}
@media (max-width:720px){.hero19{display:flex;flex-direction:column}
.hero19-bg{position:relative;inset:auto;height:min(58vw,300px)}
.hero19-bg img{object-position:center 44%}
.hero19-bg::after{background:linear-gradient(180deg,rgba(3,30,57,0) 58%,rgba(3,30,57,.62) 100%)}
.hero19 .wrap{padding-top:26px}
.hero19 .desc19{line-height:1.9}}
.cards19{padding-top:34px;row-gap:64px}
.card19{position:relative}
.card19 .num{position:absolute;left:14px;top:-34px;z-index:2;margin:0;
  font-family:"Helvetica Neue",Arial,var(--sans);font-size:56px;font-weight:800;line-height:1;
  letter-spacing:.01em;color:#de6792;text-shadow:0 1px 0 rgba(255,255,255,.85)}
.card19 .card19-sub{font-size:14.5px;font-weight:800;color:var(--pink-deep);letter-spacing:.06em;margin:0 0 12px;
  padding-bottom:12px;border-bottom:1px solid var(--steel-line)}
.card19 h3:has(+ .card19-sub){margin-bottom:4px;padding-bottom:0;border-bottom:0}
.cards19--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.more-link{margin:30px 0 0;text-align:right}
@media (max-width:1180px){.cards19--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:960px){.cards19--3{grid-template-columns:1fr}}
@media (max-width:720px){.cards19{padding-top:28px;row-gap:52px}
.card19 .num{font-size:46px;top:-28px;left:12px}
.more-link{text-align:left}}
.sns24{padding:60px 0;background:var(--steel);border-top:1px solid var(--steel-line);border-bottom:1px solid var(--steel-line)}
.sns24-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.5fr);gap:44px;align-items:center}
.sns24 .eyebrow{font-size:13px;letter-spacing:.2em;margin-bottom:8px}
.sns24 h2{font-family:var(--mincho);font-size:clamp(26px,2.4vw,34px);line-height:1.45;color:var(--navy);margin:0 0 14px}
.sns24-copy p{font-size:15.5px;line-height:1.9;color:var(--ink-body);margin:0 0 22px}
.sns24-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.sns24-tile{display:block;color:var(--navy);text-decoration:none}
.sns24-tile .thumb{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--navy)}
.sns24-tile .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.sns24-tile:hover .thumb img,.sns24-tile:focus-visible .thumb img{transform:scale(1.04)}
.sns24-tile b{display:block;font-size:16.5px;line-height:1.45;margin:12px 0 2px;text-align:center}
.sns24-tile small{display:block;font-size:13px;line-height:1.6;color:var(--muted);text-align:center}
@media (max-width:960px){.sns24-grid{grid-template-columns:1fr;gap:28px}}
@media (max-width:720px){.sns24{padding:44px 0}
.sns24-tiles{grid-template-columns:1fr;gap:12px}
.sns24-tile{display:grid;grid-template-columns:132px 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;
    background:#fff;border:1px solid var(--steel-line)}
.sns24-tile .thumb{grid-row:1/3}
.sns24-tile b{margin:0;text-align:left;align-self:end;font-size:16px}
.sns24-tile small{text-align:left;align-self:start}}
p,li{text-wrap:pretty}

@media (max-width:720px){.sns24-tile{grid-template-rows:auto auto auto}
.sns24-tile .thumb{grid-row:1/4}
.sns24-tile small{align-self:center}
}
.cards19 .card19{overflow:visible}
.card19 .num{pointer-events:none}
.merit24{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:44px;align-items:start}
.merit24-head h2,.proposal24 h2{font-family:var(--mincho);color:var(--navy);line-height:1.3}
.merit24-head h2{font-size:clamp(30px,3vw,42px);margin:6px 0 16px}
.merit24-head p{font-size:16px;line-height:1.95;color:var(--ink-body);margin:0}
.merit24-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.merit24-list li{background:#fff;border:1px solid var(--steel-line);border-left:3px solid var(--navy);padding:20px 24px 22px}
.merit24-k{display:block;font:800 11px/1.4 "Helvetica Neue",Arial,sans-serif;letter-spacing:.2em;color:var(--pink-deep);margin-bottom:4px}
.merit24-list h3{font-size:18.5px;line-height:1.5;color:var(--navy);margin:0 0 6px}
.merit24-list p{font-size:15.5px;line-height:1.85;color:var(--ink-body);margin:0}
.proposal24{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:44px;margin-top:48px;padding-top:44px;border-top:1px solid var(--steel-line)}
.proposal24 h2{font-size:clamp(28px,2.7vw,38px);margin:6px 0 0}
.proposal24-body p{font-size:16px;line-height:1.95;color:var(--ink-body);margin:0 0 14px}
.proposal24-body p:last-child{margin-bottom:0}
@media (max-width:960px){.merit24,.proposal24{grid-template-columns:1fr;gap:22px}
.proposal24{margin-top:36px;padding-top:32px}}
@media (max-width:720px){.merit24-list li{padding:18px 18px 20px}
.merit24-list h3{font-size:17.5px}}

.trade24-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.trade24-grid li{display:flex;align-items:center;gap:12px;background:var(--steel);border:1px solid var(--steel-line);
  padding:12px 14px;font-size:15.5px;font-weight:700;line-height:1.45;color:var(--navy)}
.trade24-ico{flex:0 0 auto}
.trade24-ico .ico{display:block;width:26px;height:26px;color:var(--navy-2)}

@media (max-width:1180px){
.trade24-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:960px){.trade24-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.trade24-grid li{padding:11px 12px;font-size:15px;gap:10px}
.trade24-ico .ico{width:22px;height:22px}}
.flow26-head{max-width:900px;margin:0 auto 38px;text-align:center}
.flow26-head .eyebrow{font-size:13px;letter-spacing:.2em}
.flow26-head h2{font-family:var(--mincho);font-size:clamp(34px,3.8vw,50px);line-height:1.25;color:var(--navy);margin:6px 0 12px}
.flow26-lead{font-size:clamp(18px,1.7vw,22px);line-height:1.6;font-weight:800;color:var(--navy);margin:0 0 12px}
.flow26-head p:not(.flow26-lead){font-size:16px;line-height:1.95;color:var(--ink-body);margin:0}
.flow26-map{list-style:none;margin:0 0 44px;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:relative}
.flow26-map::before{content:"";position:absolute;left:8.33%;right:8.33%;top:30px;height:3px;
  background:linear-gradient(90deg,#3d6a91 0%,var(--navy-2) 40%,var(--navy) 70%,var(--pink-deep) 100%)}
.flow26-map a{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 4px;color:var(--navy);text-decoration:none}
.flow26-map a>.ico{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;
  background:#fff;border:3px solid var(--navy);transition:background .2s,color .2s}
.flow26-map a>.ico svg{width:26px;height:26px;color:var(--navy)}
.flow26-map li:last-child a>.ico{border-color:var(--pink-deep)}
.flow26-map a:hover>.ico,.flow26-map a:focus-visible>.ico{background:var(--navy)}
.flow26-map a:hover>.ico svg,.flow26-map a:focus-visible>.ico svg{color:#fff}
.flow26-map .no{font:800 12px/1 "Helvetica Neue",Arial,sans-serif;letter-spacing:.1em;color:var(--pink-deep)}
.flow26-map b{font-size:15.5px;line-height:1.4;text-align:center;word-break:keep-all}
.flow26-steps{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:18px}
.flow26-step:not(:last-child)::before{content:"";position:absolute;left:30.5px;top:32px;bottom:-50px;width:3px;background:var(--navy-2)}
.flow26-step:nth-last-child(2)::before{background:linear-gradient(180deg,var(--navy-2) 0%,var(--pink-deep) 100%)}
.flow26-step{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:22px;align-items:start}
.flow26-node{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;
  background:#fff;border:3px solid var(--navy);font:800 22px/1 "Helvetica Neue",Arial,sans-serif;color:var(--navy)}
.flow26-step:last-child .flow26-node{border-color:var(--pink-deep);color:var(--pink-deep)}
.flow26-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);background:#fff;border:1px solid var(--steel-line)}
.flow26-main{position:relative;padding:24px 28px 26px}
.flow26-ico{position:absolute;right:22px;top:22px}
.flow26-ico .ico{display:block;width:32px;height:32px;color:#9fb3c6}
.flow26-main h3{font-size:22px;line-height:1.4;color:var(--navy);margin:0 0 10px;padding-right:46px}
.flow26-main p{font-size:16px;line-height:1.95;color:var(--ink-body);margin:0}
.flow26-meta{margin:0;padding:22px 24px;display:grid;gap:16px;align-content:center;background:var(--steel);border-left:1px solid var(--steel-line)}
.flow26-meta div{margin:0}
.flow26-meta dt{font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--pink-deep);margin:0 0 4px}
.flow26-meta dd{font-size:15px;line-height:1.75;font-weight:700;color:var(--navy);margin:0}
.flow26-meta .is-next dd::before,.flow26-meta .is-last dd::before{content:"→";margin-right:6px;color:var(--pink-deep)}
@media (max-width:1180px){.flow26-map b{font-size:14px}}
@media (max-width:960px){.flow26-card{grid-template-columns:1fr}
.flow26-meta{border-left:0;border-top:1px solid var(--steel-line);grid-template-columns:1fr 1fr;gap:14px 20px}}
@media (max-width:720px){.flow26-head{text-align:left;margin-bottom:26px}
.flow26-head h2{font-size:clamp(30px,8.5vw,36px)}
.flow26-map{display:none}
.flow26-steps{gap:14px}
.flow26-step:not(:last-child)::before{left:22.5px;top:24px;bottom:-38px}
.flow26-step{grid-template-columns:48px minmax(0,1fr);column-gap:12px}
.flow26-node{width:48px;height:48px;font-size:17px}
.flow26-main{padding:18px 18px 20px}
.flow26-ico{right:14px;top:16px}
.flow26-ico .ico{width:26px;height:26px}
.flow26-main h3{font-size:19px;padding-right:34px}
.flow26-main p{font-size:15.5px;line-height:1.9}
.flow26-meta{grid-template-columns:1fr;padding:16px 18px;gap:12px}}
.entry26-head{max-width:920px;margin:0 0 32px}
.entry26-head h2{font-family:var(--mincho);font-size:clamp(30px,3.4vw,46px);line-height:1.3;color:var(--navy);margin:6px 0 14px}
.entry26-head p{font-size:16px;line-height:1.95;color:var(--ink-body);margin:0}
.entry26-head .entry26-note{margin-top:12px;padding-left:12px;border-left:3px solid var(--steel-line);font-size:14.5px;line-height:1.85;color:var(--muted)}
.entry26-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.entry26{display:flex;flex-direction:column;background:#fff;border:1px solid var(--steel-line);border-top:3px solid var(--navy);padding:26px 24px 24px}
.entry26--line{border-top-color:#06c755}
.entry26-ico .ico{display:block;width:36px;height:36px;color:var(--navy)}
.entry26-tags{list-style:none;margin:14px 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.entry26-tags li{font-size:12.5px;font-weight:800;line-height:1.5;color:var(--pink-deep);background:#fff2f6;border:1px solid #f3c3d4;padding:3px 10px}
.entry26 h3{font-size:21px;line-height:1.45;color:var(--navy);margin:0 0 10px}
.entry26 p{font-size:15.5px;line-height:1.85;color:var(--ink-body);margin:0 0 16px}
.entry26 p strong{color:var(--navy)}
.entry26-cta{margin-top:auto;width:100%;justify-content:center;text-align:center;line-height:1.5}
.entry26-qr{display:flex;align-items:center;gap:14px;margin:0 0 16px}
.entry26-qr img{width:124px;height:124px;flex:0 0 auto;background:#fff;padding:6px;border:1px solid var(--steel-line);image-rendering:pixelated}
.entry26-qr figcaption{font-size:13px;line-height:1.6;color:var(--muted)}
.entry26-line{background:var(--navy);border-color:var(--navy);color:#fff;gap:8px}
.entry26-line:hover{background:var(--navy-2);border-color:var(--navy-2)}
.entry26-line .ext{position:relative;display:inline-block;width:10px;height:10px;border-top:2px solid currentColor;border-right:2px solid currentColor}
.entry26-line .ext::after{content:"";position:absolute;right:-1px;top:-1px;width:13px;height:2px;background:currentColor;transform-origin:right center;transform:rotate(-45deg)}
.entry26-sns{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;padding:18px 22px;background:var(--steel);border:1px solid var(--steel-line)}
.entry26-sns p{font-size:15px;line-height:1.8;color:var(--ink-body);margin:0}
.entry26-sns strong{color:var(--navy)}
.entry26-sns .sns-link{flex:0 0 auto}
@media (max-width:1180px){.entry26{padding:24px 20px 22px}
.entry26 h3{font-size:20px}}
@media (max-width:960px){.entry26-grid{grid-template-columns:1fr;gap:16px}
.entry26-cta{width:auto;align-self:flex-start}}
@media (max-width:720px){.entry26-qr{display:none}
.entry26-cta{width:100%;align-self:stretch}
.entry26-sns{flex-direction:column;align-items:flex-start}
.entry26-sns .sns-link{width:100%;justify-content:center}}
.merit24-head .eyebrow,.proposal24 .eyebrow,.flow26-head .eyebrow,.entry26-head .eyebrow{color:var(--pink-deep)}
img.ph.ph-top-scope-timber-panorama{object-position:32% center}
img.ph.ph-projects-hero-timber-frames{object-position:center 62%}
.sns24-tile .thumb--illust{background:#eef3f8}
.sns24-tile .thumb--illust img{object-fit:contain}
.card19>img.illust{object-fit:contain;background:#eef3f8}
.meta33{display:flex;flex-wrap:wrap;gap:4px 0;margin:22px 0 0;font-size:14.5px;line-height:1.9;color:var(--muted)}
.meta33 span{display:inline-flex;align-items:center}
.meta33 span:not(:last-child)::after{content:"";display:inline-block;width:1px;height:14px;margin:0 14px;background:var(--steel-line)}
.meta33--sub{margin-top:6px;margin-bottom:20px;font-size:13.5px;color:var(--muted)}
.meta33--sub span:not(:last-child)::after{display:none}
.office40-section{position:relative;overflow:hidden;background:#fff}
.office40-section::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 82% 14%,rgba(111,181,231,.08),transparent 30%),linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.office40-section>.wrap{position:relative;z-index:1}
.office40-eyebrow{display:flex;align-items:center;gap:18px;color:var(--navy);font-family:"Times New Roman",serif;font-size:13px;letter-spacing:.3em;margin-bottom:18px}
.office40-eyebrow::after{content:"";width:72px;height:2px;background:var(--pink)}
.office40-section{padding:84px 0 72px}
.office40-hero{display:grid;grid-template-columns:minmax(300px,.76fr) minmax(520px,1.24fr);gap:48px;align-items:center}
.office40-copy{padding:10px 0 0}
.office40-copy h2{font-family:var(--mincho);font-size:clamp(48px,5vw,72px);line-height:1.12;letter-spacing:.04em;color:var(--navy);margin:0 0 34px;font-weight:700}
.office40-lead{font-family:var(--mincho);font-size:clamp(21px,2.1vw,30px);line-height:1.7;letter-spacing:.03em;color:var(--navy);margin:0 0 24px}
.office40-desc{max-width:440px;font-size:15.5px;line-height:2.05;color:#405d78;margin:0}
.office40-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:38px}
.office40-card{position:relative;background:rgba(255,255,255,.98);border:1px solid #cfdae5;box-shadow:0 12px 30px rgba(29,71,107,.06);padding:25px 28px 22px;min-width:0}
.office40-card__title{display:flex;align-items:center;gap:12px;min-width:0}
.office40-card__accent{width:4px;height:36px;background:var(--pink);flex:0 0 auto}
.office40-card h3{font-family:var(--mincho);font-size:30px;line-height:1.2;color:var(--navy);margin:0}
.office40-card small{margin-left:auto;font-size:12px;font-weight:800;letter-spacing:.16em;color:#7a8da0}
.office40-card__body{margin-top:14px;padding-left:16px}
.office40-card__body p{margin:0;font-size:15.5px;line-height:1.78;color:#294864}
.office40-card__zip{display:block;font-size:13px;color:#74879a;letter-spacing:.05em}
.office40-card__actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:17px;padding-top:16px;border-top:1px solid #d5e0ea}
.office40-card__tel{display:flex;align-items:baseline;gap:12px;min-height:44px;font-family:var(--mincho);font-size:29px;font-weight:700;color:var(--navy);white-space:nowrap}
.office40-card__tel span{font-family:var(--sans);font-size:12px;letter-spacing:.24em;color:#7b8ea1;font-weight:800}
.office40-card__maplink{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding-left:20px;border-left:1px solid #d5e0ea;color:var(--navy);font-size:13px;font-weight:800;white-space:nowrap}
.office40-ext{position:relative;width:17px;height:17px;border:2px solid var(--pink);display:inline-block}
.office40-ext::before{content:"";position:absolute;width:9px;height:9px;right:-5px;top:-5px;border-top:2px solid var(--pink);border-right:2px solid var(--pink);background:#fff}
.office40-ext::after{content:"";position:absolute;width:9px;height:2px;right:-3px;top:1px;background:var(--pink);transform:rotate(-45deg);transform-origin:right center}
.office40-card__maplink:hover{color:var(--pink-deep)}
.office40-mini .office40-cards{grid-template-columns:1fr;gap:10px;margin-top:16px}
.office40-mini .office40-card{padding:16px 18px 14px;box-shadow:none}
.office40-mini .office40-card__accent{height:28px}
.office40-mini .office40-card h3{font-size:20px}
.office40-mini .office40-card small{display:none}
.office40-mini .office40-card__body{padding-left:10px;margin-top:8px}
.office40-mini .office40-card__body p{font-size:13.5px}
.office40-mini .office40-card__actions{margin-top:10px;padding-top:8px;gap:10px}
.office40-mini .office40-card__tel{font-size:18px}
.office40-mini .office40-card__maplink{font-size:12px;padding-left:10px}
.company19-offices--map{min-width:0}
.company19-offices--map .office40-mini{display:grid;grid-template-columns:230px 1fr;gap:18px;align-items:center}
.company19-offices--map .office40-mini .office40-cards{margin-top:0}
@media (max-width:1180px){.office40-section{padding:72px 0 64px}
.office40-hero{grid-template-columns:.8fr 1.2fr;gap:28px}
.office40-card__tel{font-size:24px}
.company19-offices--map .office40-mini{grid-template-columns:190px 1fr}}
@media (max-width:900px){.office40-hero{grid-template-columns:1fr}
.office40-copy{max-width:660px}
.office40-copy h2{font-size:52px}
.office40-cards{grid-template-columns:1fr}
.company19-offices--map .office40-mini{grid-template-columns:1fr}}
@media (max-width:720px){
.office40-section::before{background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.office40-eyebrow{font-size:12px;gap:12px;margin-bottom:14px}
.office40-eyebrow::after{width:48px}
.office40-copy h2{font-size:43px;margin-bottom:24px}
.office40-lead{font-size:21px;line-height:1.65;margin-bottom:15px}
.office40-cards{gap:12px;margin-top:24px}
.office40-card{padding:19px 18px 16px}
.office40-card h3{font-size:24px}
.office40-card small{display:none}
.office40-card__body{padding-left:11px}
.office40-card__body p{font-size:14px}
.office40-card__actions{grid-template-columns:1fr;gap:5px}
.office40-card__tel{font-size:23px}
.office40-card__maplink{border-left:0;padding-left:0;min-height:36px}
.office40-mini .office40-card__actions{grid-template-columns:1fr}
.office40-mini .office40-card__maplink{padding-left:0;border-left:0}
.company19-offices--map .office40-mini{display:block}}
.workflow41-section,.office40-section{position:relative;overflow:hidden;background:#fff}
.workflow41-section::before,.office40-section::before{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(circle at 86% 13%,rgba(152,207,241,.18),transparent 28%),
  linear-gradient(180deg,#fff 0%,#fbfdff 70%,#f5f9fc 100%);z-index:0}
.workflow41-section>.wrap,.office40-section>.wrap{position:relative;z-index:1}
.workflow41-section{padding:92px 0 82px}
.workflow41-wrap{max-width:1280px}
.workflow41-head{max-width:1040px;margin:0 0 42px}
.workflow41-eyebrow{display:flex;align-items:center;gap:18px;font-size:12px;letter-spacing:.34em;font-weight:800;color:var(--navy);margin-bottom:18px}
.workflow41-eyebrow::after{content:"";width:72px;height:2px;background:var(--pink)}
.workflow41-head h2{font-family:var(--mincho);font-size:clamp(46px,5.2vw,68px);line-height:1.28;letter-spacing:.02em;color:var(--navy-deep);margin:0 0 22px}
.workflow41-head>p:last-child{max-width:880px;font-family:var(--mincho);font-size:18px;line-height:2;color:#27435f;margin:0}
.workflow41-rel{width:min(680px,100%);margin:0 auto 0;text-align:center}
.workflow41-customer{display:flex;align-items:center;justify-content:center;gap:14px;width:min(330px,90%);margin:0 auto;padding:13px 24px;background:linear-gradient(180deg,#f2f7fb,#e9f1f7);border:1px solid #dce7ef;border-radius:8px;color:var(--navy);font-family:var(--mincho);font-size:24px}

.workflow41-exchange{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;width:min(500px,94%);margin:7px auto;color:#496782;font-size:13.5px;font-weight:700}
.workflow41-exchange span:first-child{text-align:right}
.workflow41-exchange span:last-child{text-align:left}
.workflow41-arrows{font-size:27px;line-height:1;letter-spacing:.35em;color:var(--pink);font-weight:900;white-space:nowrap}
.workflow41-hub{position:relative;display:grid;grid-template-columns:64px auto 1fr;align-items:center;gap:14px;width:min(650px,100%);margin:2px auto 0;padding:18px 28px;background:linear-gradient(100deg,#062f5f,#073b70);border-radius:9px;color:#fff;box-shadow:0 18px 40px rgba(3,45,87,.16)}
.workflow41-hub img{width:58px;height:auto;filter:brightness(0) invert(1)}
.workflow41-hub strong{font-family:var(--mincho);font-size:30px;letter-spacing:.05em;white-space:nowrap}
.workflow41-hub>span{border-left:1px solid rgba(255,255,255,.42);padding-left:20px;text-align:left;font-size:15px;letter-spacing:.04em}
.workflow41-hub::after{content:"";position:absolute;left:50%;bottom:-28px;width:1px;height:28px;background:#7da3c6}
.workflow41-steps{position:relative;display:grid;grid-template-columns:minmax(145px,.9fr) minmax(145px,.9fr) minmax(360px,2.25fr) minmax(145px,.9fr) minmax(145px,.9fr);gap:14px;list-style:none;margin:28px 0 0;padding:28px 0 0}
.workflow41-steps::before{content:"";position:absolute;left:4%;right:4%;top:0;height:1px;background:#9eb9d1}
.workflow41-step{position:relative;min-width:0;min-height:228px;padding:44px 18px 20px;background:rgba(255,255,255,.95);border:1px solid #cfdde9;border-radius:8px;box-shadow:0 10px 24px rgba(43,83,119,.045)}
.workflow41-step::before{content:"";position:absolute;top:-32px;left:50%;width:1px;height:32px;background:#9eb9d1}
.workflow41-step:not(:last-child)::after{content:"›";position:absolute;right:-12px;top:50%;transform:translateY(-50%);z-index:2;color:#3d6f9c;font-size:30px;font-family:Georgia,serif;background:#fbfdff;line-height:1;padding:3px 1px}
.workflow41-no{position:absolute;top:15px;left:17px;font-family:Georgia,var(--mincho);font-style:italic;font-size:18px;color:var(--pink);font-weight:700}
.workflow41-stepicon{display:block;width:42px;height:42px;margin:0 auto 11px;background-size:42px 42px;background-position:center;background-repeat:no-repeat}
.workflow41-stepicon--talk{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%232d6da8' stroke-width='2.2'%3E%3Ccircle cx='24' cy='22' r='15'/%3E%3Cpath d='M14 35l-2 7 8-5M18 21h.1M24 21h.1M30 21h.1' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E")}
.workflow41-stepicon--plan{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%232d6da8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='11' y='9' width='26' height='32' rx='2'/%3E%3Cpath d='M19 7h10v6H19zM17 21h14M17 28h14M17 35h9'/%3E%3C/g%3E%3C/svg%3E")}
.workflow41-stepicon--link{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%232d6da8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='24' r='6'/%3E%3Ccircle cx='36' cy='14' r='6'/%3E%3Ccircle cx='36' cy='34' r='6'/%3E%3Cpath d='M18 22l12-6M18 27l12 5'/%3E%3C/g%3E%3C/svg%3E")}
.workflow41-stepicon--check{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%232d6da8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='17'/%3E%3Cpath d='M16 24l6 6 11-13'/%3E%3C/g%3E%3C/svg%3E")}
.workflow41-stepicon--repair{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%232d6da8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M29 9a10 10 0 0 0-11 13L8 32l8 8 10-10a10 10 0 0 0 13-11l-7 7-6-6z'/%3E%3C/g%3E%3C/svg%3E")}
.workflow41-step h3{font-family:var(--mincho);font-size:20px;line-height:1.45;text-align:center;color:var(--navy);margin:0 0 9px}
.workflow41-step>p{font-size:14px;line-height:1.75;color:#5a7085;margin:0;text-align:center}
.workflow41-step--core{padding:20px 20px 18px;background:linear-gradient(180deg,#fff,#f8fbfd);border-color:#bfcfe0}
.workflow41-step--core .workflow41-no{top:14px}
.workflow41-corehead{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;padding-left:22px;margin-bottom:15px}
.workflow41-corehead .workflow41-stepicon{margin:0;width:44px;height:44px;background-size:44px}
.workflow41-corehead h3{text-align:left;font-size:23px;margin:0 0 4px}
.workflow41-corehead p{font-size:13.5px;line-height:1.6;color:#607589;margin:0}
.workflow41-trades{display:flex;align-items:stretch;justify-content:center;gap:4px;margin:4px 0 12px}
.workflow41-trades span{display:flex;align-items:center;justify-content:center;min-width:0;flex:1;padding:12px 6px;border-radius:7px;background:#edf4f9;border:1px solid #dae7f0;color:#123f69;font-size:12.5px;font-weight:800;line-height:1.35;text-align:center}
.workflow41-trades i{align-self:center;color:#3e73a3;font-size:19px;font-style:normal;line-height:1}
.workflow41-core-note{padding-top:10px!important;border-top:1px solid #e0e9f0;text-align:left!important;font-size:13px!important;line-height:1.7!important;color:#4e667d!important}
.workflow41-note{font-size:13px;line-height:1.8;color:#687c8f;margin:15px 0 0}
.workflow41-meritrow{display:grid;grid-template-columns:210px 1fr;gap:22px;align-items:start;margin-top:42px;padding-top:30px;border-top:1px solid #d7e2eb}
.workflow41-merit-title .eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.3em;color:var(--navy);margin-bottom:10px}
.workflow41-merit-title .eyebrow::after{content:"";width:50px;height:2px;background:var(--pink)}
.workflow41-merit-title h3{font-family:var(--mincho);font-size:26px;line-height:1.55;color:var(--navy);margin:0}
.workflow41-merits{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0}
.workflow41-merits li{position:relative;min-width:0;padding:18px 16px 16px 20px;background:#fff;border:1px solid #d6e1ea;border-radius:8px;box-shadow:0 8px 20px rgba(43,83,119,.035)}
.workflow41-merits li::before{content:"";position:absolute;left:0;top:16px;width:4px;height:36px;background:var(--pink)}
.workflow41-merits b{display:block;font-family:var(--mincho);font-size:16px;line-height:1.5;color:var(--navy);margin-bottom:7px}
.workflow41-merits p{font-size:13.5px;line-height:1.7;color:#5d7285;margin:0}
.office40-section{padding:88px 0 78px}
.office40-hero{display:grid;grid-template-columns:minmax(310px,.68fr) minmax(560px,1.32fr);gap:46px;align-items:center}
.office40-copy h2{font-family:var(--mincho);font-size:clamp(54px,5vw,72px);line-height:1.15;color:var(--navy-deep);margin:0 0 28px}
.office40-lead{font-family:var(--mincho);font-size:24px;line-height:1.75;color:#24415e;margin:0 0 18px}
.office40-desc{font-size:15px;line-height:2;color:#526b81;max-width:480px}

.office40-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}
.office40-card{border-radius:9px;border:1px solid #d1dee9;box-shadow:0 8px 24px rgba(35,74,110,.04);background:rgba(255,255,255,.96)}
@media (max-width:1180px){.workflow41-steps{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"s1 s2" "core core" "s4 s5";gap:16px;padding-top:20px}
.workflow41-steps::before{display:none}
.workflow41-step::before{display:none}
.workflow41-step::after{display:none!important}
.workflow41-step:nth-child(1){grid-area:s1}
.workflow41-step:nth-child(2){grid-area:s2}
.workflow41-step:nth-child(3){grid-area:core}
.workflow41-step:nth-child(4){grid-area:s4}
.workflow41-step:nth-child(5){grid-area:s5}
.workflow41-step{min-height:0}
.workflow41-meritrow{grid-template-columns:1fr}
.workflow41-merit-title h3 br{display:none}
.workflow41-merits{grid-template-columns:repeat(2,minmax(0,1fr))}
.office40-hero{grid-template-columns:1fr;gap:26px}
.office40-copy{max-width:760px}
}
@media (max-width:720px){.workflow41-section{padding:58px 0 54px}
.workflow41-head{margin-bottom:28px}
.workflow41-head h2{font-size:37px;line-height:1.34;margin-bottom:16px}
.workflow41-head>p:last-child{font-family:var(--sans);font-size:15px;line-height:1.9}
.workflow41-customer{font-size:20px;padding:10px 14px}
.workflow41-exchange{font-size:12px;gap:8px}
.workflow41-arrows{font-size:22px}
.workflow41-hub{grid-template-columns:46px auto;padding:14px 16px;gap:8px 11px}
.workflow41-hub img{width:44px}
.workflow41-hub strong{font-size:23px}
.workflow41-hub>span{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.25);padding:9px 0 0;text-align:center;font-size:12px}
.workflow41-steps{display:grid;grid-template-columns:1fr;grid-template-areas:"s1" "s2" "core" "s4" "s5";gap:13px;margin-top:24px;padding:0 0 0 18px}
.workflow41-steps::before{display:block;left:4px;right:auto;top:0;bottom:0;width:1px;height:auto;background:linear-gradient(180deg,#8caac4 0 82%,var(--pink) 100%)}
.workflow41-step{padding:20px 17px 18px 70px;min-height:0}
.workflow41-step::before{display:block;left:-18px;top:30px;width:8px;height:8px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 4px #fff}
.workflow41-no{top:16px;left:16px;font-size:16px}
.workflow41-stepicon{position:absolute;left:24px;top:42px;width:32px;height:32px;background-size:32px;margin:0}
.workflow41-step h3{text-align:left;font-size:19px;margin:0 0 7px}
.workflow41-step>p{text-align:left;font-size:14px;line-height:1.75}
.workflow41-step--core{padding:58px 15px 16px}
.workflow41-step--core .workflow41-no{top:17px;left:auto;right:16px}
.workflow41-corehead{grid-template-columns:36px 1fr;padding:0;margin:0 0 12px}
.workflow41-corehead .workflow41-stepicon{position:static;width:34px;height:34px;background-size:34px}
.workflow41-corehead h3{font-size:20px}
.workflow41-corehead p{font-size:13px}
.workflow41-trades{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.workflow41-trades span{justify-content:flex-start;padding:10px 11px;font-size:13px;text-align:left}
.workflow41-core-note{font-size:13px!important}
.workflow41-note{font-size:12.5px;margin-left:18px}
.workflow41-meritrow{margin-top:30px;padding-top:24px;gap:16px}
.workflow41-merit-title h3{font-size:23px}
.workflow41-merits{grid-template-columns:1fr;gap:9px}
.workflow41-merits li{padding:15px 14px 14px 18px}
.workflow41-merits b{font-size:16px}
.workflow41-merits p{font-size:14px}
.office40-section{padding:58px 0 54px}
.office40-copy h2{font-size:44px;margin-bottom:20px}
.office40-lead{font-size:20px;line-height:1.7}
.office40-desc{font-size:14px;line-height:1.9}

.office40-cards{grid-template-columns:1fr;gap:11px;margin-top:22px}}
.strengths42{
  padding:106px 0 100px;
  background:#fff;
  overflow:hidden;
}
.strengths42-grid{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:clamp(48px,6vw,90px);
  align-items:center;
}
.strengths42-visual{
  position:relative;
  min-height:620px;
  overflow:hidden;
  background:#eaf0f4;
}
.strengths42-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(4,42,80,0) 46%,rgba(4,42,80,.78) 100%);
  pointer-events:none;
}
.strengths42-visual img{
  width:100%;
  height:100%;
  min-height:620px;
  object-fit:cover;
  display:block;
}
.strengths42-caption{
  position:absolute;
  z-index:2;
  left:34px;
  right:34px;
  bottom:30px;
  color:#fff;
}
.strengths42-caption span{
  display:block;
  margin-bottom:8px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.24em;
  opacity:.88;
}
.strengths42-caption strong{
  display:block;
  font-family:var(--mincho);
  font-size:clamp(24px,2.2vw,33px);
  line-height:1.45;
  letter-spacing:.035em;
}
.strengths42-head{margin-bottom:28px}
.strengths42-head .eyebrow{margin-bottom:12px}
.strengths42-head h2{
  margin:0 0 18px;
  color:var(--navy);
  font-family:var(--mincho);
  font-size:clamp(36px,4vw,55px);
  line-height:1.25;
  letter-spacing:.035em;
}
.strengths42-head>p:last-child{
  margin:0;
  max-width:720px;
  color:#51697e;
  font-size:15.5px;
  line-height:1.95;
}
.strengths42-list{
  list-style:none;
  margin:0 0 30px;
  padding:0;
  border-top:1px solid #cfdae4;
}
.strengths42-list li{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:17px;
  padding:20px 0 19px;
  border-bottom:1px solid #dbe4ec;
}
.strengths42-list>li>span{
  padding-top:2px;
  color:var(--pink);
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:16px;
  font-weight:700;
  letter-spacing:.08em;
}
.strengths42-list h3{
  margin:0 0 5px;
  color:var(--navy);
  font-family:var(--mincho);
  font-size:20px;
  line-height:1.5;
  letter-spacing:.02em;
}
.strengths42-list p{
  margin:0;
  color:#617589;
  font-size:14px;
  line-height:1.75;
}
.strengths42-content>.btn{margin-top:2px}
.card19--focus{overflow:hidden}

@media (max-width:1100px){.strengths42-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:42px}
.strengths42-visual,.strengths42-visual img{min-height:560px}}
@media (max-width:820px){.strengths42{padding:76px 0 72px}
.strengths42-grid{grid-template-columns:1fr;gap:34px}
.strengths42-visual{min-height:0;aspect-ratio:16/9}
.strengths42-visual img{min-height:0;height:100%}}
@media (max-width:560px){.strengths42{padding:60px 0 58px}
.strengths42-visual{aspect-ratio:4/3}
.strengths42-caption{left:20px;right:20px;bottom:18px}
.strengths42-caption strong{font-size:23px}
.strengths42-head h2{font-size:36px}
.strengths42-head>p:last-child{font-size:14.5px;line-height:1.85}
.strengths42-list li{grid-template-columns:39px 1fr;gap:10px;padding:17px 0}
.strengths42-list h3{font-size:18px}
.strengths42-list p{font-size:13.5px}

}
.workflow41-head>p:last-child{max-width:820px;font-size:18px;line-height:1.95;color:#24435f}
.workflow41-exchange{font-size:14px;color:#3f5f7b}
.workflow41-hub>span{font-size:15px}
.workflow41-steps{grid-template-columns:minmax(155px,.92fr) minmax(155px,.92fr) minmax(410px,2.45fr) minmax(165px,.98fr) minmax(165px,.98fr);gap:16px}
.workflow41-step{min-height:218px;padding:44px 18px 20px}
.workflow41-step h3{font-size:20px;line-height:1.42}
.workflow41-step>p{font-size:14.5px;line-height:1.72;color:#4f687e}
.workflow41-corehead p{font-size:14.5px;line-height:1.62;color:#506a81}
.workflow41-trades{gap:6px;margin:6px 0 13px}
.workflow41-trades span{padding:12px 8px;font-size:14px;line-height:1.35;color:#123f69}
.workflow41-core-note{font-size:14px!important;line-height:1.7!important;color:#49647c!important}
.workflow41-note{font-size:14px;line-height:1.75;color:#50677c}
.workflow41-merit-title .eyebrow{font-size:13px}
.workflow41-merits b{font-size:16.5px}
.workflow41-merits p{font-size:14.5px;line-height:1.68;color:#50687d}

.office40-cards--compact{gap:10px;margin-top:18px}
.office40-cards--compact .office40-card{padding:16px 17px 14px;box-shadow:none}
.office40-cards--compact .office40-card__title h3{font-size:21px}
.office40-cards--compact .office40-card__title small{font-size:12px;color:#586f83}
.office40-cards--compact .office40-card__body{padding-left:10px;margin-top:9px}
.office40-cards--compact .office40-card__body p{font-size:14px;color:#294864}
.office40-cards--compact .office40-card__zip{font-size:14px;color:#536b80}
.office40-cards--compact .office40-card__actions{margin-top:10px;padding-top:10px;gap:10px}
.office40-cards--compact .office40-card__tel{font-size:20px}
.office40-cards--compact .office40-card__tel span{font-size:12px;color:#52697e}
.office40-cards--compact .office40-card__maplink{font-size:13.5px;padding-left:12px}

.sidebar .office40-cards--sidebar{grid-template-columns:1fr}
.sidebar .office40-cards--sidebar .office40-card__actions{grid-template-columns:1fr}
.sidebar .office40-cards--sidebar .office40-card__maplink{border-left:0;padding-left:0}
.office40-card__zip{font-size:14px;color:#536b80}
.office40-card__tel span{font-size:12px;color:#52697e}
.office40-card__maplink{font-size:14px}

@media (min-width:721px) and (max-width:1180px){.workflow41-steps{display:grid;grid-template-columns:1fr;grid-template-areas:"s1" "s2" "core" "s4" "s5";gap:14px;max-width:820px;margin:28px auto 0;padding:0 0 0 34px}
.workflow41-steps::before{display:block;left:8px;right:auto;top:0;bottom:0;width:1px;height:auto;background:linear-gradient(180deg,#9eb9d1 0 86%,var(--pink) 100%)}
.workflow41-step{min-height:0;padding:24px 24px 22px 86px}
.workflow41-step::before{display:block;left:-31px;top:31px;width:9px;height:9px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 4px #fff}
.workflow41-step::after{display:none!important}
.workflow41-step:nth-child(1){grid-area:s1}
.workflow41-step:nth-child(2){grid-area:s2}
.workflow41-step:nth-child(3){grid-area:core}
.workflow41-step:nth-child(4){grid-area:s4}
.workflow41-step:nth-child(5){grid-area:s5}
.workflow41-no{top:17px;left:18px}
.workflow41-stepicon{position:absolute;left:34px;top:48px;width:36px;height:36px;background-size:36px;margin:0}
.workflow41-step h3,.workflow41-step>p{text-align:left}
.workflow41-step--core{padding:24px 24px 22px 86px}
.workflow41-step--core .workflow41-no{top:17px;left:18px}
.workflow41-corehead{grid-template-columns:1fr;padding:0;margin:0 0 14px}
.workflow41-corehead .workflow41-stepicon{position:absolute;left:34px;top:48px;width:36px;height:36px;background-size:36px}
.workflow41-corehead h3{font-size:22px}
.workflow41-corehead p{font-size:14.5px}
.workflow41-trades{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.workflow41-trades i{display:none}
.workflow41-trades span{padding:11px 8px;font-size:13.5px}
.workflow41-merits{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){.workflow41-eyebrow{font-size:13px}
.workflow41-exchange{font-size:13px}
.workflow41-step>p{font-size:14.5px}
.workflow41-corehead p{font-size:14px}
.workflow41-trades span{font-size:14px}
.workflow41-core-note,.workflow41-note{font-size:14px!important}
.workflow41-merits p{font-size:14.5px}

.office40-cards--compact .office40-card__title small{display:none}
.office40-cards--compact .office40-card__actions{grid-template-columns:1fr}
.office40-cards--compact .office40-card__maplink{border-left:0;padding-left:0}}
:root{
  --section:96px;
  --section-mobile:62px;
  --radius-ui:8px;
  --shadow-soft:0 12px 34px rgba(28,69,105,.065);
}
.btn{border-radius:5px;letter-spacing:.01em}
.page-hero .kicker{display:flex;align-items:center;gap:16px;font-size:12.5px;letter-spacing:.24em;color:#ffb2cd;margin-bottom:13px}
.page-hero .kicker::after{content:"";width:54px;height:2px;background:var(--pink)}
.page-hero h1{font-size:clamp(43px,4.4vw,60px);line-height:1.24;letter-spacing:.025em;margin-bottom:12px}
.page-hero p{max-width:760px;font-size:16.5px;line-height:1.9}
.section19.soft{background:#f6f9fc}
.box{border-color:#d9e4ed;border-radius:var(--radius-ui)}
.ctaband{border-radius:var(--radius-ui);overflow:hidden}
.hero19 .btns{align-items:center}
.hero19 .btns .btn:first-child{min-width:196px}
.hero19 .btns .btn:nth-child(2){background:rgba(255,255,255,.08)}
.hero19-facts{margin-top:26px}
.about19{padding-bottom:84px}
.strengths42-head>p:not(.eyebrow){max-width:620px}
.company19 .lead{max-width:650px}
.workflow41-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:22px 24px;border-top:1px solid #d6e2eb;border-bottom:1px solid #d6e2eb;background:linear-gradient(90deg,#f7fafc 0%,#fff 100%)}
.workflow41-cta p{margin:0;font-family:var(--mincho);font-size:17px;line-height:1.7;color:var(--navy);font-weight:600}
.workflow41-cta .btn{flex:0 0 auto}
.section19 .sechead19 .eyebrow,.strengths42-head>.eyebrow,.company19>.wrap .eyebrow{
  color:var(--navy);
}
.vision-statement{border-radius:var(--radius-ui)}
.nav .contact-link,.footer-btn{border-radius:5px}
.footer-btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center}
@media (max-width:960px){.page-hero h1{font-size:clamp(40px,6vw,52px)}
.workflow41-cta{align-items:flex-start;flex-direction:column;padding:22px}
.workflow41-cta .btn{width:100%;max-width:360px}}
@media (max-width:720px){:root{--section-mobile:58px}
.page-hero .kicker{font-size:12px;gap:12px}
.page-hero .kicker::after{width:42px}
.page-hero h1{font-size:36px;line-height:1.3}
.page-hero p{font-size:15.5px;line-height:1.85}
.workflow41-cta{margin-top:22px;padding:20px 18px}
.workflow41-cta p{font-size:16px}
.workflow41-cta .btn{max-width:none}
.about19{padding-bottom:var(--section-mobile)}}

/* About-page one-window explanation. */
.about41-window{background:#fff}
.about41-window__grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:54px 64px;align-items:start}
.about41-window__head{grid-row:1 / span 2}
.about41-window__head .eyebrow{margin-bottom:12px}
.about41-window__head h2{font-family:var(--mincho);font-size:clamp(34px,3.5vw,48px);line-height:1.4;letter-spacing:.02em;color:var(--navy);margin:0 0 20px}
.about41-window__head>p:last-child{font-size:16.5px;line-height:2;color:#476078;margin:0}
.about41-window__pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.about41-window__pillars article{position:relative;min-width:0;padding:26px 22px 24px;border-top:3px solid var(--navy);background:#f7fafc;border-radius:0 0 var(--radius-ui) var(--radius-ui)}
.about41-window__pillars article>span{display:block;font-family:Georgia,serif;font-size:16px;font-style:italic;font-weight:700;color:var(--pink);margin-bottom:12px}
.about41-window__pillars h3{font-family:var(--mincho);font-size:21px;line-height:1.45;color:var(--navy);margin:0 0 10px}
.about41-window__pillars p{font-size:14.5px;line-height:1.85;color:#526a80;margin:0}
.about41-window__after{display:grid;grid-template-columns:minmax(180px,.48fr) 1fr;gap:28px;align-items:center;padding:22px 26px;border-left:4px solid var(--pink);background:#eef4f8;border-radius:0 var(--radius-ui) var(--radius-ui) 0}
.about41-window__after strong{font-family:var(--mincho);font-size:21px;line-height:1.5;color:var(--navy)}
.about41-window__after p{font-size:15px;line-height:1.85;color:#526a80;margin:0}

/* TOP company summary. */
.office41-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.office41-compact__item{min-width:0;padding:23px 22px 21px;background:#fff;border:1px solid #d5e1ea;border-radius:var(--radius-ui)}
.office41-compact__item>span{display:block;font-size:12px;line-height:1.3;font-weight:800;letter-spacing:.16em;color:#516b83;margin-bottom:7px}
.office41-compact__item>strong{display:block;font-family:var(--mincho);font-size:23px;line-height:1.35;color:var(--navy);margin-bottom:9px}
.office41-compact__item p{font-size:14.5px;line-height:1.75;color:#526a80;margin:0}
.office41-compact__item a{font-family:var(--mincho);font-size:18px;font-weight:700;color:var(--navy);text-decoration:none}
.office41-compact__item a:hover{text-decoration:underline;text-underline-offset:4px}
.office41-compact__link{grid-column:1/-1;display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-height:44px;font-size:14px;font-weight:800;color:var(--navy);text-decoration:underline;text-decoration-color:#aabccc;text-underline-offset:4px}

@media (max-width:960px){
  .about41-window__grid{grid-template-columns:1fr;gap:30px}
  .about41-window__head{grid-row:auto;max-width:820px}
  .about41-window__after{grid-template-columns:1fr;gap:8px}
  .office41-compact{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .about41-window__grid{gap:24px}
  .about41-window__head h2{font-size:30px}
  .about41-window__head>p:last-child{font-size:15.5px;line-height:1.9}
  .about41-window__pillars{grid-template-columns:1fr;gap:10px}
  .about41-window__pillars article{padding:21px 19px 20px}
  .about41-window__pillars h3{font-size:20px}
  .about41-window__pillars p{font-size:15px}
  .about41-window__after{padding:20px}
  .office41-compact{grid-template-columns:1fr}
  .office41-compact__item{padding:20px 18px}
  .office41-compact__link{justify-content:flex-start}
}

/* Editorial polish: hero, workflow, office content and SNS topic cards. */
.hero19 .sub{max-width:31em;font-size:clamp(20px,1.9vw,27px);line-height:1.62}
.hero19 .desc19{max-width:48em}
.hero19-facts li:first-child b{color:#ffd2e1}

.workflow41-head{max-width:900px}
.workflow41-head h2{font-size:clamp(43px,4.8vw,62px)}
.workflow41-head>p:last-child{max-width:820px}
.workflow41-step{min-height:192px;padding-bottom:16px}
.workflow41-step h3{font-size:19px}
.workflow41-step>p{font-size:14px;line-height:1.68}
.workflow41-step--core{min-height:192px}
.workflow41-corehead{margin-bottom:9px}
.workflow41-corehead h3{font-size:21px}
.workflow41-corehead p{font-size:14px}
.workflow41-trades span{padding:10px 7px;font-size:13.5px}
.workflow41-meritrow{margin-top:34px}
.workflow41-merit-title h3{font-size:26px;white-space:nowrap}
.workflow41-merits li{padding:18px 16px}
.workflow41-merits b{font-size:16px}
.workflow41-merits p{font-size:14px;line-height:1.6;margin-top:5px}
.workflow41-note{max-width:980px}

.sns24-tile--topic{cursor:default}
.sns24-tile--topic .thumb img{transition:none}
.sns24-tile--topic:hover .thumb img{transform:none}

.office43-summary{display:grid;gap:18px}

.office43-summary__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.office43-summary__grid article{padding:19px 18px;border:1px solid #d7e2eb;background:#fff;border-radius:8px}
.office43-summary__grid article>span,.office43-contact__cards article>span{display:block;font-size:12px;font-weight:800;letter-spacing:.15em;color:#4d667e;margin-bottom:5px}
.office43-summary__grid strong{display:block;font-family:var(--mincho);font-size:20px;color:var(--navy);margin-bottom:5px}
.office43-summary__grid p{margin:0;font-size:14.5px;line-height:1.65;color:#465f76}
.office43-summary__link{display:inline-flex;align-items:center;min-height:40px;width:max-content;max-width:100%;font-size:14px;font-weight:800;color:var(--navy);text-decoration:underline;text-decoration-color:#9eb1c1;text-underline-offset:4px}

.office43-contact__area{margin:0 0 18px;padding:17px 18px;background:#eef4f8;border-left:4px solid var(--pink)}
.office43-contact__area strong{display:block;font-family:var(--mincho);font-size:18px;line-height:1.5;color:var(--navy);margin-bottom:4px}
.office43-contact__area span{display:block;font-size:13.5px;line-height:1.7;color:#4b647b}
.office43-contact__cards{display:grid;gap:12px;margin-bottom:14px}
.office43-contact__cards article{padding:17px;border:1px solid #d7e2eb;background:#fff;border-radius:8px}
.office43-contact__cards h4{font-family:var(--mincho);font-size:19px;color:var(--navy);margin:0 0 7px}
.office43-contact__cards p{font-size:13.5px;line-height:1.65;color:#4b647b;margin:0 0 9px}
.office43-contact__cards a{font-family:var(--mincho);font-size:18px;font-weight:700;color:var(--navy)}

/* Small-text contrast: keep the quiet hierarchy without dropping below readable contrast. */
.office40-card small{color:#526b81}
.office40-card__zip{color:#526b81}

@media (min-width:721px) and (max-width:1180px){
  .workflow41-step{min-height:0;padding-top:22px;padding-bottom:20px}
  .workflow41-step:not(:last-child)::after{content:"↓"!important;display:block!important;position:absolute;left:-39px;right:auto;top:auto;bottom:-26px;transform:none;background:#fff;color:var(--pink);font-size:20px;line-height:1;padding:2px;z-index:3}
  .workflow41-step:last-child::after{display:none!important}
}
@media (max-width:720px){
  .hero19 .sub{font-size:19px;line-height:1.65}
  .workflow41-head h2{font-size:35px}
  .workflow41-merit-title h3{white-space:normal;font-size:23px}
  .workflow41-step{padding-top:18px;padding-bottom:16px}
  .office43-summary__grid{grid-template-columns:1fr}
  
  
}

/* ============================================================
   Workflow alignment / unified office map / responsive line rhythm
   ============================================================ */
.workflow44-people{display:block;width:52px;height:34px;flex:0 0 auto;overflow:visible}
.workflow41-customer{min-height:58px}
.workflow41-hub{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:min(700px,100%);padding:18px 30px;text-align:center}
.workflow41-hub>span{border:0;border-top:1px solid rgba(255,255,255,.28);padding:10px 18px 0;text-align:center;font-size:15px;letter-spacing:.04em;width:min(460px,100%)}
.workflow41-steps{grid-template-columns:minmax(135px,.78fr) minmax(135px,.78fr) minmax(520px,3.25fr) minmax(135px,.78fr) minmax(135px,.78fr);gap:12px}
.workflow41-step--core{padding-left:18px;padding-right:18px}
.workflow41-trades{gap:6px}
.workflow41-trades span{font-size:13px;padding:12px 8px}
.workflow44-nowrap{white-space:nowrap}
.workflow41-head h2,.about19-head h2,.sechead19 h2,.page-hero h1,.page-hero p,.recruit19 h2,.company19 .lead{word-break:auto;overflow-wrap:normal}
.pc-br{display:none!important}

.office44-map{display:block;width:100%;margin:0}
.office44-map img{display:block;width:100%;height:auto}
.office44-mapwrap{width:100%;max-width:780px;margin:0 auto;align-self:center}
.office40-hero{grid-template-columns:minmax(310px,.62fr) minmax(520px,1.38fr);gap:clamp(34px,5vw,78px);align-items:center}
.office40-copy{max-width:460px}
.office40-lead{font-size:clamp(22px,2.05vw,31px);line-height:1.65}

.info44{display:grid;gap:38px}
.info44-scope{padding:30px 32px 32px;background:#f7fafc;border:1px solid #dce6ee;border-radius:10px}
.info44-title{display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:end;margin-bottom:22px}
.info44-title>span,.info44-officecopy>span{font-size:12px;letter-spacing:.18em;font-weight:800;color:#4c6680}
.info44-title h3,.info44-officecopy h3{font-family:var(--mincho);font-size:28px;color:var(--navy);margin:5px 0 0}
.info44-title p{grid-column:2;margin:0 0 2px;font-size:14.5px;color:#526b80;line-height:1.75}
.info44-scope .trade24-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.info44-offices{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(500px,1.18fr);gap:clamp(34px,5vw,68px);align-items:center;padding:34px 36px;border-top:1px solid #dbe5ed;border-bottom:1px solid #dbe5ed;background:#fff}
.info44-officecopy{min-width:0}
.info44-area{margin:18px 0;padding:18px 20px;border-left:4px solid var(--pink);background:#f2f7fb;font-size:14.5px;line-height:1.75;color:#49627a}
.info44-area strong{display:block;font-family:var(--mincho);font-size:21px;line-height:1.45;color:var(--navy);margin-bottom:5px}
.info44-map{min-width:0}
.info44-map .office44-map{max-width:650px;margin-left:auto}

.office43-contact__cards p{line-height:1.7}

@media(max-width:1180px){
  .workflow41-steps{grid-template-columns:1fr;max-width:840px;margin-left:auto;margin-right:auto}
  .office40-hero{grid-template-columns:1fr;gap:28px}.office40-copy{max-width:760px}.office44-mapwrap{max-width:760px}
  .info44-scope .trade24-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .info44-offices{grid-template-columns:1fr;gap:24px}.info44-map .office44-map{max-width:720px;margin:0 auto}
}
@media(max-width:900px){.info44-title{grid-template-columns:1fr}.info44-title p{grid-column:1;margin-top:8px}.info44-scope .trade24-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .workflow44-people{width:45px;height:30px}.workflow41-customer{min-height:52px}
  .workflow41-hub{padding:15px 16px;gap:8px}.workflow44-brand img{width:50px}.workflow44-brand strong{font-size:24px}.workflow41-hub>span{font-size:13px;padding-top:8px}
  .workflow44-nowrap{white-space:normal}
  .info44{gap:24px}.info44-scope{padding:22px 18px}.info44-title h3,.info44-officecopy h3{font-size:24px}.info44-scope .trade24-grid{grid-template-columns:1fr 1fr}
  .info44-offices{padding:24px 18px;gap:18px}.info44-area{padding:15px 16px}.info44-area strong{font-size:19px}
  .office44-mapwrap{max-width:430px}
}
@media(max-width:430px){.info44-scope .trade24-grid{grid-template-columns:1fr}.workflow41-head h2{font-size:34px}}

/* ============================================================
   Stable workflow / natural wrapping / copy rhythm
   ============================================================ */

/* Japanese headings: avoid arbitrary mid-word breaks on wide screens. */
:is(h1,h2,h3,.lead,.desc,.workflow41-head p,.workflow41-step h3,.workflow41-corehead h3){
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
  text-wrap:balance;
}
:is(p,li,dd){text-wrap:pretty;}
@supports (word-break:auto-phrase){
  :is(h1,h2,h3,.lead,.desc,.workflow41-head p,.workflow41-step h3,.workflow41-corehead h3){word-break:auto-phrase;}
}

/* Workflow relationship block — centered, readable, no crushed people icon. */
.workflow44-people{display:block;width:58px;height:38px;flex:0 0 auto;overflow:visible}
.workflow41-customer{min-height:66px;padding:13px 26px}
.workflow41-hub{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:min(700px,100%);
  padding:18px 30px;
  text-align:center;
}
.workflow44-brand{display:flex;align-items:center;justify-content:center;gap:16px}
.workflow44-brand img{width:64px;height:auto;filter:brightness(0) invert(1)}
.workflow44-brand strong{font-family:var(--mincho);font-size:31px;letter-spacing:.06em;white-space:nowrap}
.workflow41-hub>span{
  width:min(470px,100%);
  border:0;
  border-top:1px solid rgba(255,255,255,.28);
  padding:10px 18px 0;
  text-align:center;
  font-size:15px;
  letter-spacing:.04em;
}

/* Desktop workflow: clear 5-stage horizontal story, central stage has room. */
@media (min-width:1181px){
  .workflow41-steps{
    grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr) minmax(500px,2.8fr) minmax(150px,.8fr) minmax(150px,.8fr);
    grid-template-areas:none;
    gap:12px;
  }
  .workflow41-step{min-height:226px}
  .workflow41-step--core{padding:20px 18px 18px}
  .workflow41-trades{gap:6px}
  .workflow41-trades span{padding:12px 7px;font-size:13.5px;white-space:normal}
  .workflow44-nowrap{white-space:normal}
}

/* Tablet / small desktop: a single, connected vertical timeline in true 01→05 order. */
@media (min-width:721px) and (max-width:1180px){
  .workflow41-steps{
    display:grid;
    grid-template-columns:1fr;
    grid-template-areas:"s1" "s2" "core" "s4" "s5";
    gap:14px;
    width:min(840px,100%);
    margin:30px auto 0;
    padding:0 0 0 38px;
  }
  .workflow41-steps::before{
    display:block;
    left:10px;
    right:auto;
    top:18px;
    bottom:18px;
    width:2px;
    height:auto;
    background:linear-gradient(180deg,#9eb9d1 0 86%,var(--pink) 100%);
  }
  .workflow41-step{
    min-height:0;
    padding:22px 24px 20px 92px;
  }
  .workflow41-step::before{
    display:block;
    left:-34px;
    top:34px;
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--pink);
    box-shadow:0 0 0 5px #fff;
  }
  .workflow41-step::after{display:none!important}
  .workflow41-step:nth-child(1){grid-area:s1}
  .workflow41-step:nth-child(2){grid-area:s2}
  .workflow41-step:nth-child(3){grid-area:core}
  .workflow41-step:nth-child(4){grid-area:s4}
  .workflow41-step:nth-child(5){grid-area:s5}
  .workflow41-no{top:20px;left:20px}
  .workflow41-stepicon{position:absolute;left:34px;top:54px;width:36px;height:36px;background-size:36px;margin:0}
  .workflow41-step h3,.workflow41-step>p{text-align:left}
  .workflow41-step--core{padding:22px 24px 20px 92px}
  .workflow41-step--core .workflow41-no{top:20px;left:20px;right:auto}
  .workflow41-corehead{grid-template-columns:42px 1fr;padding:0;margin:0 0 14px}
  .workflow41-corehead .workflow41-stepicon{position:static;width:40px;height:40px;background-size:40px}
  .workflow41-trades{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
  .workflow41-trades i{display:none}
  .workflow41-trades span{padding:12px 8px;font-size:13.5px;white-space:normal}
}

/* Mobile workflow: compact timeline; trade names stay readable without forced odd breaks. */
@media (max-width:720px){
  .workflow44-people{width:48px;height:32px}
  .workflow41-customer{min-height:56px;padding:11px 16px}
  .workflow41-hub{padding:15px 16px;gap:8px}
  .workflow44-brand img{width:50px}
  .workflow44-brand strong{font-size:24px}
  .workflow41-hub>span{font-size:13px;padding-top:8px}
  .workflow41-trades span{white-space:normal}
  .workflow44-nowrap{white-space:normal}
}

/* Responsive media polish. */
.entry26-tags{flex-wrap:wrap}
.card19--focus .ph-strengths-integrated-poultry{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.ph-business-livestock-v44,.ph-projects-miyagi-livestock-v44{object-position:center center}

/* ============================================================
   Practical inquiry form / small-text accessibility
   ============================================================ */
.project-brief{
  margin:6px 0 24px;
  padding:22px 22px 8px;
  border:1px solid #d5e1ea;
  border-radius:10px;
  background:#f8fbfd;
}
.project-brief legend{
  padding:0 8px;
  font-family:var(--mincho);
  font-size:18px;
  font-weight:700;
  color:var(--navy);
}
.project-brief__help{margin:0 0 16px;font-size:14px;line-height:1.75;color:#4d6479}
@media(max-width:720px){
  .project-brief{padding:18px 15px 4px;margin-bottom:20px}
  .project-brief legend{font-size:17px}
}

/* Small information labels must remain readable on white backgrounds. */
.office40-card small{font-size:12px;color:#526b81}
.office40-card__zip{font-size:13px;color:#526b81}
.office40-card__tel span{font-size:12px;color:#526b81}
.office43-summary__grid article>span,.office43-contact__cards article>span{font-size:12px;color:#435d76}
.office41-compact__item>span{font-size:12px;color:#435d76}

/* ============================================================
   TAKAKURA V46 Phase 1 — editorial simplification / section hierarchy
   ============================================================ */
.hero19-facts--compact{gap:10px 12px;border-top:0;padding-top:18px}
.hero19-facts--compact li{padding:7px 13px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(255,255,255,.08)}
.hero19-facts--compact b{font-family:var(--sans);font-size:13px;letter-spacing:.04em}
.hero19 .desc19{max-width:40em}

.workflow41-head{max-width:960px;margin-bottom:34px}
.workflow41-head h2{font-size:clamp(42px,4.8vw,62px)}
.workflow41-head>p:last-child{max-width:720px;font-family:var(--sans);font-size:17px;line-height:1.9}
.workflow41-step{min-height:210px}
.workflow41-step>p{font-size:13.5px;line-height:1.65}
.workflow41-corehead p{font-size:13.5px;line-height:1.6}
.workflow41-note{max-width:920px;margin:18px auto 0;font-size:12.5px;line-height:1.7;color:#60758a;text-align:center}
.workflow41-cta{justify-content:center}
.workflow41-cta .btn{min-width:260px}

.info46-head{margin-bottom:28px}
.info46-scope-card{padding:28px 30px}
.info46-scope-card .trade24-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.info46-offices{border-top:1px solid #dbe5ed;border-bottom:1px solid #dbe5ed;background:#fff}
.info46-offices .info44-offices{border:0}
.info46-offices-section .info44-area{margin-top:0}

@media(max-width:1180px){
  .workflow41-step{min-height:0}
  .info46-scope-card .trade24-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:900px){
  .info46-scope-card .trade24-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .hero19-facts--compact{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:20px}
  .hero19-facts--compact li{width:auto;border-bottom:1px solid rgba(255,255,255,.24);padding:6px 11px}
  .workflow41-head h2{font-size:clamp(33px,9.2vw,42px)}
  .workflow41-head>p:last-child{font-size:15.5px}
  .workflow41-note{text-align:left;font-size:12px}
  .info46-scope-card{padding:20px 16px}
  .info46-scope-card .trade24-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .info46-scope-card .trade24-grid{grid-template-columns:1fr}
}

/* ============================================================
   TAKAKURA V46 Phase 3 — accessibility polish / contextual inquiry form
   ============================================================ */
.project-brief[hidden]{display:none!important}
.sidebar .office43-contact__area{margin-top:4px}
.sidebar .office43-summary__link{margin-top:2px}
@media(max-width:720px){
  .sidebar .office43-contact__cards{gap:10px}
}

/* ============================================================
   TAKAKURA V46 Phase 5 — responsive rhythm / typography polish
   ============================================================ */
/* Keep the editorial rhythm consistent across standard content sections. */
.section19,.about19,.company19{padding-block:var(--section)}
.sechead19{margin-bottom:38px}
.sechead19 h2{max-width:18em}
.sechead19 .lead{max-width:38em}
.card19 h3,.box h2,.box h3{line-height:1.5}
.card19 p,.card19 li,.box p,.box li{line-height:1.85}

/* Long-form pages: prevent overly wide copy and create a steadier reading measure. */
.about-lead19 p,.statement19 p,.company19 .lead{max-width:44em}

/* Tablet: reduce vertical jumps without compressing touch targets or copy. */
@media (max-width:960px){
  :root{--section:78px}
  .sechead19{margin-bottom:32px}
  .section19,.about19,.company19{padding-block:var(--section)}
  .workflow41-section{padding:76px 0 70px}
  .office40-section{padding:72px 0 66px}
}

/* Mobile: one consistent section cadence and slightly tighter heading-to-copy spacing. */
@media (max-width:720px){
  :root{--section:60px;--section-mobile:60px}
  .section19,.about19,.company19{padding-block:var(--section-mobile)}
  .sechead19{margin-bottom:26px}
  .sechead19 h2{line-height:1.32}
  .sechead19 .lead{line-height:1.72}
  .workflow41-section,.office40-section{padding:60px 0 56px}
  .sns24{padding:52px 0}
  .recruit19 .wrap{padding:54px 0}
  .ctaband .wrap{padding:34px 0}
}

/* ============================================================
   TAKAKURA V46 Phase 6 — responsive interaction / media polish
   ============================================================ */
/* Keep tap targets comfortable on touch layouts without changing desktop density. */
@media (max-width:900px){
  .nav a,.btn,.office40-card__tel,.office40-card__maplink{min-height:44px}
}

/* Card media: keep subjects legible when the grid collapses. */
@media (max-width:720px){
  .card19>img{aspect-ratio:16/10}
  .ph-business-livestock-v44,.ph-projects-miyagi-livestock-v44{object-position:center 48%}
  .ph-about-policy-timber-frame{object-position:center 46%}
  .ph-about-policy-connection-beam{object-position:center 45%}
  .ph-about-policy-poultry-house{object-position:center 52%}
  .ph-business-earthwork-excavator{object-position:center 52%}
  .ph-business-water-equipment{object-position:center 50%}
}

/* CTA copy and actions should not become overly wide on phones. */
@media (max-width:720px){
  .ctaband .wrap{max-width:100%}
  .ctaband .btn{width:100%;max-width:360px}
}

/* Form controls: preserve readable text and prevent iOS zoom on focus. */
@media (max-width:720px){
  .form input,.form select,.form textarea{font-size:16px;min-height:48px}
  .form textarea{min-height:170px}
  .project-brief{border-radius:8px}
}

/* ============================================================
   TAKAKURA V46 Phase 7 — breakpoint normalization / cross-page consistency
   ============================================================ */
/* Intermediate widths: keep navigation, headings and CTA spacing stable before mobile collapse. */
@media (min-width:901px) and (max-width:1180px){
  .site-header .wrap{gap:18px}
  .nav{gap:12px}
  .nav a{white-space:nowrap}
  .hero19 .wrap{padding-inline:0}
  .sechead19{gap:28px}
  .workflow41-head{margin-bottom:30px}
}
@media (min-width:721px) and (max-width:900px){
  .sechead19{grid-template-columns:1fr;gap:14px}
  .sechead19 .lead,.sechead19 .desc{padding-top:0;max-width:44em}
  .workflow41-cta{max-width:840px;margin-inline:auto}
  .ctaband .wrap{gap:24px}
}
/* At the exact mobile boundary, use one spacing system instead of inheriting older 58/60/64px rules. */
@media (max-width:720px){
  :root{--section:60px;--section-mobile:60px}
  .page-hero{padding-block:52px}
  .page-hero h1{font-size:clamp(32px,9vw,36px)}
  .hero19 .wrap{padding:38px 0 34px}
  .hero19 h1{font-size:clamp(34px,9.4vw,40px)}
  .section19,.about19,.company19{padding-block:60px}
  .workflow41-section,.office40-section{padding:60px 0 56px}
  .workflow41-cta{gap:16px}
  .card19,.box{min-width:0}
}

/* TAKAKURA V46 Phase 9 — reader-first typography / natural Japanese wrapping */
h1,h2,h3{text-wrap:balance;word-break:normal;overflow-wrap:normal;line-break:strict}
p,.lead,.desc,li,dd,.workflow41-head p{text-wrap:pretty;word-break:normal;overflow-wrap:break-word;line-break:strict}
@supports (word-break:auto-phrase){p,.lead,.desc,li,dd,.workflow41-head p{word-break:auto-phrase}}
.about-lead19,.merit24-head,.proposal24-body,.about41-window__head,.recruit-form-head{max-width:48rem}
.card19-body p,.merit24-list p,.workflow41-step p,.strengths42-card p{max-width:38em}
.sechead19 .lead,.sechead19 .desc{justify-self:start}
@media (max-width:720px){p,.lead,.desc,li,dd{letter-spacing:0;line-height:1.85}.sechead19 .lead,.sechead19 .desc,.about-lead19 p,.proposal24-body p{max-width:none}.page-hero p{max-width:32em}.card19-body p{line-height:1.82}}

/* V46 Phase 11 — editorial readability pass */
.hero19 h1{max-width:11em;text-wrap:balance}
.hero19 .sub{max-width:31em}
.hero19 .desc19{max-width:37em}
.page-hero .wrap>p:last-child{max-width:38em;text-wrap:pretty}
.sechead19 .desc{max-width:42em}
.about19-body p,.about-lead19 p,.statement19 p{max-width:43em}
.card19-body p,.strengths42-card p,.workflow41-step p{max-width:35em}
@media(max-width:720px){
  .hero19 h1{max-width:9em}
  .hero19 .sub,.hero19 .desc19,.page-hero .wrap>p:last-child{max-width:100%}
  .about19-body p,.about-lead19 p,.statement19 p,.card19-body p{max-width:none}
}

/* TAKAKURA V46 Phase 12 — final reader-flow normalization */
/* Keep editorial copy aligned to a common reading measure; avoid awkward edge-to-edge text. */
.page-hero .wrap>p:last-child,.sechead19 .lead,.sechead19 .desc,.about-lead19 p,.about19-body p,.statement19 p{max-inline-size:42em}
.card19-body p,.strengths42-card p,.workflow41-step p,.merit24-list p{max-inline-size:36em}
/* Japanese headings should wrap by phrase, not by arbitrary character, where supported. */
@supports (word-break:auto-phrase){h1,h2,h3{word-break:auto-phrase}}
/* Prevent button/CTA copy from becoming cramped at intermediate widths. */
@media (max-width:900px){.ctaband .btn{white-space:normal;text-align:center;line-height:1.45}.workflow41-cta .btn{white-space:normal;text-align:center}}
@media (max-width:720px){
  .page-hero .wrap>p:last-child,.sechead19 .lead,.sechead19 .desc,.about-lead19 p,.about19-body p,.statement19 p,.card19-body p,.strengths42-card p,.workflow41-step p,.merit24-list p{max-inline-size:none}
  h1,h2,h3{letter-spacing:.01em}
}

/* ============================================================
   TAKAKURA V46 Phase 20 — consolidated mobile QA rules
   Screenshot-driven finalization. This is the single authoritative
   block for the previously conflicting Phase 16–19 mobile fixes.
   ============================================================ */

/* Footer: show both offices clearly on all pages. */
.footer-phones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;min-width:0}
.footer-phone-item{display:flex;flex-direction:column;gap:4px;min-width:0}
.footer-phone-item small{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;color:#c1cfdd}
.footer-phone-item .footer-phone{font-size:20px}
.footer-phone-item .footer-phone a{white-space:nowrap}

/* Office cards: postal code / address / telephone are distinct information rows. */
.office40-card__addressline{display:block;margin-top:4px;word-break:keep-all;overflow-wrap:normal}

@media (max-width:960px){
  /* Mobile/tablet menu: same breakpoint as the visible MENU button and JS. */
  .site-header .wrap{position:relative}
  .nav{top:100%}
  .nav.open{max-height:calc(100dvh - var(--header));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}

@media (max-width:720px){
  /* Natural Japanese wrapping. Never segment prose into forced phrases. */
  .jp-phrase{white-space:normal}
  :is(h1,h2,h3,p,.lead,.desc,li,dd){overflow-wrap:normal;word-break:normal;line-break:strict}
  @supports (word-break:auto-phrase){:is(h1,h2,h3,p,.lead,.desc,li,dd){word-break:auto-phrase}}

  /* Reader-first mobile body copy. */
  .about19 h2{font-size:clamp(28px,8vw,32px);line-height:1.45}
  .about19 .lead{font-size:17px;line-height:1.9}
  .about19-body p{font-size:15.5px;line-height:1.9}

  /* WORKFLOW: 01–05 share one visual rule. Number and title align; icon has its own lane. */
  .workflow41-steps{display:grid;grid-template-columns:1fr;grid-template-areas:"s1" "s2" "core" "s4" "s5";gap:14px;margin:24px 0 0;padding:0 0 0 22px}
  .workflow41-steps::before{display:block;left:5px;right:auto;top:18px;bottom:18px;width:1px;height:auto;background:linear-gradient(180deg,#8caac4 0 82%,var(--pink) 100%)}
  .workflow41-step{position:relative;min-height:0;padding:19px 18px;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:14px;row-gap:4px;align-items:start}
  .workflow41-step::before{display:block;left:-21px;top:29px;width:8px;height:8px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 4px #fff}
  .workflow41-step::after{display:none}
  .workflow41-no{position:static;grid-column:2;grid-row:1;display:block;margin:0 0 5px;font-size:16px;line-height:1;color:var(--pink)}
  .workflow41-step>.workflow41-stepicon{position:static;grid-column:1;grid-row:2 / 4;width:36px;height:36px;background-size:36px;margin:2px 0 0}
  .workflow41-step>h3{grid-column:2;grid-row:2;margin:0;font-size:20px;line-height:1.42;text-align:left;min-width:0}
  .workflow41-step>p{grid-column:2;grid-row:3;margin:2px 0 0;font-size:14px;line-height:1.72;text-align:left;min-width:0}

  /* STEP 03 uses different HTML, but matches the same number/icon/title axis. */
  .workflow41-step--core{display:block;padding:19px 18px}
  .workflow41-step--core .workflow41-no{display:block;margin:0 0 8px 56px;width:auto}
  .workflow41-corehead{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;align-items:start;margin:0 0 14px;padding:0;min-width:0}
  .workflow41-corehead .workflow41-stepicon{position:static;grid-area:auto;width:36px;height:36px;background-size:36px;margin:2px 0 0}
  .workflow41-corehead>div{min-width:0;grid-column:2}
  .workflow41-corehead h3{font-size:20px;line-height:1.42;margin:0 0 4px;text-align:left;min-width:0}
  .workflow41-corehead p{font-size:14px;line-height:1.72;margin:0;min-width:0}
  .workflow41-trades{display:grid;grid-template-columns:1fr;gap:8px;margin:2px 0 0 56px}
  .workflow41-trades i{display:none}
  .workflow41-trades span{min-height:0;padding:11px 13px;font-size:14px;line-height:1.45;text-align:left;justify-content:flex-start;white-space:normal}
  .workflow41-note{margin:14px 0 0 22px;font-size:12.5px;line-height:1.75}

  /* SNS topic cards: title + subtitle are centered vertically against the illustration. */
  .sns24-tile{display:grid;grid-template-columns:132px minmax(0,1fr);grid-template-rows:1fr auto auto 1fr;column-gap:14px;align-items:stretch;min-height:100%}
  .sns24-tile .thumb{grid-column:1;grid-row:1 / 5;align-self:stretch}
  .sns24-tile b{grid-column:2;grid-row:2;align-self:end;margin:0;text-align:left;font-size:16px;line-height:1.45}
  .sns24-tile small{grid-column:2;grid-row:3;align-self:start;margin-top:3px;text-align:left;font-size:13px;line-height:1.55}

  /* Office cards: never split the street number or mix it with the telephone row. */
  .office40-card__body p{line-height:1.72}
  .office40-card__addressline{font-size:clamp(13px,3.75vw,14px);white-space:nowrap;letter-spacing:-.01em}

  /* Footer telephone blocks stay readable and tappable. */
  .footer-phones{grid-template-columns:1fr;gap:12px}
  .footer-phone-item{gap:3px}
  .footer-phone-item .footer-phone{font-size:18px}
  .footer-phone-item .footer-phone a{display:inline-flex;align-items:center;min-height:44px;padding:0}
}

/* ===== Phase 22: clean offices map + address wrapping ===== */
.office43-summary__grid p{
  word-break:keep-all;
  overflow-wrap:normal;
}
@media (min-width:721px){
  .office43-summary__grid p{font-size:13.5px;white-space:nowrap}
}

/* ===== Phase 23: OUR OFFICES blueprint layout ===== */
.office23-section{
  position:relative;
  overflow:hidden;
  padding:88px 0 84px;
  background:#fff;
}
.office23-grid{
  display:grid;
  grid-template-columns:minmax(390px,.82fr) minmax(560px,1.18fr);
  gap:clamp(34px,4.5vw,72px);
  align-items:center;
}
.office23-copy{min-width:0;padding-left:8px}
.office23-kicker{display:flex;align-items:center;gap:18px;margin:0 0 24px;font-size:12px;font-weight:800;letter-spacing:.28em;color:var(--navy)}
.office23-kicker i{display:block;width:76px;height:2px;background:var(--pink)}
.office23-copy h2{position:relative;font-family:var(--mincho);font-size:clamp(38px,3.25vw,52px);line-height:1.38;letter-spacing:.02em;color:var(--navy-deep);margin:0 0 26px;padding-left:22px}
.office23-copy h2::before{content:"";position:absolute;left:0;top:4px;bottom:5px;width:4px;background:var(--pink)}
.office23-lead{font-family:var(--mincho);font-size:20px;line-height:1.8;color:#183c61;margin:0 0 18px}
.office23-desc{max-width:610px;font-size:14.5px;line-height:1.95;color:#657d93;margin:0 0 30px}
.office23-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.office23-card{position:relative;min-height:206px;padding:24px 24px 22px;border:1px solid #ccdce9;border-radius:7px;background:rgba(255,255,255,.98);box-shadow:0 7px 20px rgba(15,54,91,.025)}
.office23-en{display:block;font-size:12px;font-weight:800;letter-spacing:.22em;color:#264b70}
.office23-accent{display:block;width:22px;height:2px;background:var(--pink);margin:12px 0 13px}
.office23-card h3{font-family:var(--mincho);font-size:29px;line-height:1.3;color:var(--navy);margin:0 0 16px}
.office23-card p{display:flex;gap:11px;align-items:flex-start;margin:0;color:#547087;font-size:14.5px;line-height:1.62}
.office23-pin{position:relative;flex:0 0 16px;width:16px;height:20px;margin-top:2px;border-radius:10px 10px 12px 12px;background:#b9cde0;clip-path:polygon(50% 100%,8% 47%,8% 35%,12% 23%,20% 13%,32% 6%,50% 3%,68% 6%,80% 13%,88% 23%,92% 35%,92% 47%)}
.office23-pin::after{content:"";position:absolute;left:5px;top:5px;width:6px;height:6px;border-radius:50%;background:#fff}
.office23-arrow{position:absolute;right:19px;bottom:15px;color:var(--pink);font-size:25px;line-height:1;font-weight:300}
.office23-link{display:inline-flex;align-items:center;gap:10px;margin-top:24px;min-height:44px;color:var(--navy);font-size:14px;font-weight:800;text-decoration:none;border-bottom:1px solid #738ca3;padding-bottom:4px}
.office23-link span{color:var(--pink);font-size:18px}
.office23-map{position:relative;min-width:0;isolation:isolate}
.office23-map::before{content:"TAKAKURA CORP.  AREA MAP";position:absolute;right:5%;top:1.5%;z-index:2;font-size:9px;font-weight:800;letter-spacing:.34em;color:#5e84aa;white-space:nowrap}
.office23-map img{display:block;width:100%;height:auto;max-height:690px;object-fit:contain;object-position:center}
.office44-mapwrap--blueprint{max-width:820px}
.office44-mapwrap--blueprint .office44-map img{border:1px solid #e5edf4;border-radius:8px;background:#fff}

@media(max-width:1180px){
  .office23-grid{grid-template-columns:minmax(340px,.9fr) minmax(480px,1.1fr);gap:32px}
  .office23-copy h2{font-size:42px}
  .office23-card{padding:21px 20px;min-height:195px}
}
@media(max-width:900px){
  .office23-section{padding:68px 0}
  .office23-grid{grid-template-columns:1fr;gap:34px}
  .office23-copy{max-width:760px}
  .office23-map{max-width:760px;margin:0 auto;width:100%}
  .office23-map img{max-height:none}
}
@media(max-width:720px){
  .office23-section{padding:54px 0 48px}
  .office23-copy{padding-left:0}
  .office23-kicker{margin-bottom:17px;font-size:11px;gap:12px}
  .office23-kicker i{width:54px}
  .office23-copy h2{font-size:32px;line-height:1.45;margin-bottom:21px;padding-left:16px}
  .office23-copy h2::before{width:3px}
  .office23-lead{font-size:18px;line-height:1.75;margin-bottom:13px}
  .office23-desc{font-size:14px;line-height:1.85;margin-bottom:24px}
  .office23-desktop-br{display:none}
  .office23-cards{grid-template-columns:1fr;gap:12px;margin-top:20px}
  .office23-card{min-height:0;padding:19px 19px 18px}
  .office23-card h3{font-size:24px;margin-bottom:11px}
  .office23-card p{font-size:14px}
  .office23-arrow{right:17px;bottom:14px}
  .office23-link{margin-top:18px}
  .office23-map{margin-top:4px;border-top:1px solid #e5edf4;padding-top:20px}
  .office23-map::before{font-size:8px;right:2%;top:23px}
  .office23-map img{width:100%;max-width:560px;margin:0 auto}
}

/* Phase 23 final polish */
.office23-desc{overflow-wrap:normal;word-break:normal}
.office23-map::before{display:none}
.office23-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
@media(max-width:520px){
  .office23-cards{grid-template-columns:1fr}
}

/* Phase 24: officer-title wrapping */
.meta33 span{min-width:0;}
@media(max-width:720px){
  .meta33 span{overflow-wrap:normal;}
  .table19 dt{word-break:keep-all;}
}

/* ============================================================
   TAKAKURA V46 Phase 34 — typography rhythm / address integrity
   Screenshot-driven readability correction across all pages.
   ============================================================ */
/* Addresses are atomic information: never split a Japanese street address mid-line. */
.office-address-nowrap,
.office23-card p > span:last-child,
.office40-card__addressline,
.office43-summary__grid p,
.office43-contact__cards p,
.contact-office p{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
.office40-card__addressline{display:inline;margin-top:0}
.office40-card__zip{display:inline;margin-right:.35em}
.office41-compact__item p{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.office-compact-tel{display:inline-block;line-height:1.35}

/* Shared editorial rhythm: same hierarchy and breathing room on every content page. */
.section19 .sechead19{row-gap:12px}
.sechead19 .eyebrow{margin-bottom:8px}
.sechead19 .lead,.sechead19 .desc{margin-top:0}
.card19-body{gap:0}
.card19-body h3{margin-bottom:10px}
.card19-body p{margin-top:0}
.about-lead19 p + p,.proposal24-body p + p{margin-top:12px}

/* Do not force editorial copy into arbitrary phrase breaks. */
.office23-copy h2,.office23-lead{max-width:18em;text-wrap:balance}

@media (max-width:720px){
  /* One mobile spacing system instead of page-by-page drift. */
  .section19{padding-block:52px}
  .section19 .sechead19{gap:10px;margin-bottom:28px}
  .sechead19 .eyebrow{margin-bottom:6px}
  .sechead19 h2{margin-bottom:0}
  .sechead19 .lead{margin:2px 0 0;line-height:1.72}
  .sechead19 .desc{margin:2px 0 0;line-height:1.82}
  .about-lead19 h2{margin-bottom:14px}
  .about-lead19 p{margin-bottom:10px;line-height:1.85}
  .card19-body{padding:18px 18px 21px}
  .card19-body h3{margin-bottom:8px}
  .card19-body p{line-height:1.8}

  /* Addresses stay on one line; font scales only as much as required by the viewport. */
  .office23-card p{font-size:clamp(12px,3.45vw,14px);gap:8px}
  .office23-card p > span:last-child{letter-spacing:-.02em}
  .office40-card__addressline{font-size:clamp(12px,3.35vw,14px);letter-spacing:-.025em}
  .office41-compact__item p{font-size:clamp(12px,3.35vw,14px);line-height:1.6}
  .office-address-nowrap{letter-spacing:-.025em}
  .contact-office p{font-size:clamp(12px,3.35vw,14px);letter-spacing:-.02em}

  /* The office heading/lead now wrap naturally based on width, not hard-coded BR tags. */
  .office23-copy h2,.office23-lead{max-width:none;text-wrap:pretty}

  /* Recruitment visual cards keep a consistent frame while approved illustrations remain uncropped. */
}

/* Phase 32: preserve approved illustration artwork without cropping */

/* ============================================================
   TAKAKURA V46 Phase 34 — controlled line breaking
   Prevent arbitrary emergency breaks in primary editorial copy.
   ============================================================ */
.workflow41-head h2,
.about19-head h2,
.sechead19 h2,
.page-hero h1,
.page-hero p,
.recruit19 h2,
.company19 .lead,
.office23-desc{
  word-break:normal;
  overflow-wrap:break-word;
  line-break:strict;
  text-wrap:pretty;
}
@media (max-width:720px){
  .page-hero h1,.sechead19 h2,.workflow41-head h2,.recruit19 h2{line-height:1.35}
}

/* ===== TAKAKURA V46 Phase 35 — wrap hardening / address atomicity ===== */
:is(h1,h2,h3,p,.lead,.desc,li,dd,.workflow41-head p,.office23-desc,.meta33 span){overflow-wrap:normal;}
.office-address-nowrap,.office40-card__addressline,.company-address-nowrap,.privacy-address-nowrap{white-space:nowrap;word-break:keep-all;overflow-wrap:normal;}
@media (max-width:480px){
  .company-address-nowrap,.privacy-address-nowrap{font-size:clamp(11.5px,3.25vw,14px);letter-spacing:-.025em;}
}

/* Phase 36: approved recruitment illustrations */
.sns-card .thumb--illust img,.recruit-point-card .illust{width:100%;height:auto;object-fit:contain;object-position:center;}

/* ============================================================
   TAKAKURA V46 Phase 39 — address layout consolidation
   Addresses must remain readable; never shrink an entire address to force one line.
   ============================================================ */
.office-address-nowrap,
.office23-card p > span:last-child,
.office40-card__addressline,
.office43-summary__grid p,
.office43-contact__cards p,
.contact-office p,
.company-address-nowrap,
.privacy-address-nowrap{
  white-space:normal;
  word-break:normal;
  overflow-wrap:normal;
  letter-spacing:normal;
}
.office40-card__addressline{display:block;margin-top:4px;font-size:14px;}
.office40-card__zip{display:block;margin:0 0 2px;font-size:13px;line-height:1.5;}
.office23-card p{font-size:14px;}
.office23-card p > span:last-child{font-size:14px;line-height:1.7;}
.contact-office p,.company-address-nowrap,.privacy-address-nowrap{font-size:14px;line-height:1.7;}
@media (max-width:480px){
  .company-address-nowrap,.privacy-address-nowrap,.contact-office p,
  .office23-card p,.office23-card p > span:last-child,
  .office40-card__addressline{font-size:14px;letter-spacing:normal;}
}
/* Keep meaningful Japanese address chunks intact while allowing a safe wrap between chunks. */
.address-chunk{display:inline-block;white-space:nowrap;}

/* Phase 40: heading/readability consolidation */
.sechead19,.sechead19__main,.sechead19__side{min-width:0}
.sechead19__side{max-width:none}
@media (min-width:961px){.sechead19{grid-template-columns:minmax(220px,.82fr) minmax(0,1.35fr);column-gap:clamp(32px,4vw,72px);align-items:start}.sechead19__side{width:auto;justify-self:stretch}}
@media (max-width:960px){.sechead19{grid-template-columns:1fr}.sechead19__side{width:auto;max-width:42rem}}
.heading-phrase{display:inline-block;white-space:nowrap}
p,li,dd,td{word-break:normal;overflow-wrap:normal}
@supports (word-break:auto-phrase){p,li,dd,td{word-break:normal}}

/* Phase 41: unified section rhythm */
:root{--tk-section-y-desktop:72px;--tk-section-y-tablet:64px;--tk-section-y-mobile:54px;--tk-head-gap-desktop:32px;--tk-head-gap-mobile:26px;--tk-card-gap-desktop:24px;--tk-card-gap-mobile:18px}
main > .section19,main > .about19,main > .company19,main > .workflow41,main > .office40,main > .office23,main > .sns24,main > .recruit19{padding-top:var(--tk-section-y-desktop);padding-bottom:var(--tk-section-y-desktop)}
.sechead19{margin-bottom:var(--tk-head-gap-desktop)}
.cards19,.office23-cards,.office40-cards,.sns24-grid,.recruit19-grid{gap:var(--tk-card-gap-desktop)}
@media(max-width:960px){main > .section19,main > .about19,main > .company19,main > .workflow41,main > .office40,main > .office23,main > .sns24,main > .recruit19{padding-top:var(--tk-section-y-tablet);padding-bottom:var(--tk-section-y-tablet)}}
@media(max-width:560px){main > .section19,main > .about19,main > .company19,main > .workflow41,main > .office40,main > .office23,main > .sns24,main > .recruit19{padding-top:var(--tk-section-y-mobile);padding-bottom:var(--tk-section-y-mobile)}.sechead19{margin-bottom:var(--tk-head-gap-mobile)}.cards19,.office23-cards,.office40-cards,.sns24-grid,.recruit19-grid{gap:var(--tk-card-gap-mobile)}}

/* Phase 42: recruitment illustration readability */
.sns24-grid img,.sns24-card img,.sns24-item img,.recruit19-grid img,.recruit19-card img,.recruit-point img,.recruit-point-card img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;display:block}
@media(max-width:560px){.sns24-grid,.recruit19-grid{grid-template-columns:1fr}.sns24-grid img,.sns24-card img,.sns24-item img,.recruit19-grid img,.recruit19-card img,.recruit-point img,.recruit-point-card img{width:100%;max-width:none;margin-inline:auto}}

/* Phase 46 contrast */
.office23-desc{color:#526b82}
.step-num,.point-num,.recruit19-num,.business-step__num{color:#c8245b}

/* Phase 49: robust contrast for TOP strengths caption */
.strengths42-visual{position:relative;background:#14283a}
.strengths42-visual::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(10,24,38,0) 38%,rgba(10,24,38,.82) 100%);z-index:1}
.strengths42-caption{z-index:2}

/* Phase 50: contrast correction for small pink text */
.workflow41-no,.about-arrow{color:#c91f5e}
.contact-form select{color:#14283a}

/* ============================================================
   TAKAKURA V46 Phase 51 — cross-page text layout normalization
   Based on full-page PC/SP visual review. Keep natural Japanese
   wrapping by fixing usable width before adding phrase locks.
   ============================================================ */
/* Desktop editorial headers: give the headline enough width so normal
   Japanese phrases are not forced into awkward two-line fragments. */
@media (min-width:961px){
  .sechead19{
    grid-template-columns:minmax(360px,1fr) minmax(0,1fr);
    column-gap:clamp(36px,4vw,64px);
    align-items:start;
  }
}

/* Keep only the short consent ending atomic; do not freeze the whole sentence. */
.consent-tail{white-space:nowrap}

/* Narrow-screen reading width. The screenshots showed that the main cause of
   excessive wrapping was nested horizontal padding, not Japanese word-break. */
@media (max-width:480px){
  .wrap{width:min(var(--max),calc(100% - 28px))}
  .card19-body{padding:16px 15px 19px}
  .box{padding:18px 16px}
  .privacy-list h2{line-height:1.42}
  .privacy-list h3{line-height:1.5}
  .entry26{padding:21px 16px 19px}
  .entry26 p{line-height:1.82}
  .checkline{gap:8px!important}

  /* Business workflow: recover text width without changing content or order. */
  .flow26-step{grid-template-columns:44px minmax(0,1fr);column-gap:10px}
  .flow26-node{width:44px;height:44px;font-size:16px}
  .flow26-step:not(:last-child)::before{left:20.5px;top:22px;bottom:-36px}
  .flow26-main{padding:16px 15px 18px}
  .flow26-ico{right:12px;top:14px}
  .flow26-main h3{padding-right:32px}
  .flow26-meta{padding:14px 15px;gap:11px}
}

/* ============================================================
   TAKAKURA V46 Phase 52 — compact related-company section
   ============================================================ */
.group52{
  padding:60px 0 64px;
  background:#f6f8fa;
  border-top:1px solid rgba(16,43,67,.08);
}
.group52-head{
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);
  gap:clamp(28px,4vw,56px);
  align-items:end;
  margin-bottom:24px;
}
.group52-head h2{margin:0;font-size:clamp(30px,3vw,44px);line-height:1.15;letter-spacing:-.02em;color:#102b43}
.group52-lead{margin:0;max-width:36rem;font-size:15px;line-height:1.8;color:#53697c}
.group52-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.group52-card{
  min-width:0;
  background:#fff;
  border:1px solid rgba(16,43,67,.11);
  padding:24px 26px 22px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  box-shadow:0 8px 28px rgba(16,43,67,.045);
}
.group52-card__body{min-width:0}
.group52-card__eyebrow{margin:0 0 7px;font-size:10px;line-height:1.2;letter-spacing:.15em;font-weight:700;color:#c91f5e}
.group52-card h3{margin:0 0 10px;font-size:20px;line-height:1.35;color:#102b43}
.group52-card__business{margin:0 0 9px;font-size:13.5px;line-height:1.7;color:#435d73}
.group52-card__address{margin:0;font-size:12px;line-height:1.65;color:#6b7f91}
.group52-card__link{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:44px;
  font-size:12px;
  font-weight:700;
  color:#102b43;
  text-decoration:none;
  border-bottom:1px solid rgba(16,43,67,.24);
}
.group52-card__link:hover,.group52-card__link:focus-visible{color:#c91f5e;border-color:#c91f5e}
@media(max-width:900px){
  .group52-head{grid-template-columns:1fr;gap:10px}
  .group52-card{align-items:flex-start;flex-direction:column;gap:14px}
}
@media(max-width:640px){
  .group52{padding:48px 0 50px}
  .group52-head{margin-bottom:18px}
  .group52-head h2{font-size:28px}
  .group52-grid{grid-template-columns:1fr;gap:12px}
  .group52-card{padding:19px 18px 17px}
  .group52-card h3{font-size:18px}
  .group52-card__business{font-size:13px;line-height:1.72}
  .group52-card__address{font-size:12px}
  .group52-card__link{min-height:40px}
}

/* ===== V46 Phase54: TOP SNS topic cards — mobile illustration readability =====
   Independent audit measured the illustration at about 132x99px on mobile.
   On <=720px, switch from thumbnail+copy to a vertical card so the approved
   illustration can use the full content width without cropping. */
@media (max-width:720px){
  .sns24-tiles{grid-template-columns:1fr;gap:16px}
  .sns24-tile{
    display:block;
    min-height:0;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--steel-line)
  }
  .sns24-tile .thumb{
    display:block;
    width:100%;
    aspect-ratio:auto;
    overflow:hidden;
    background:#eef3f8
  }
  .sns24-tile .thumb--illust img{
    display:block;
    width:100%;
    height:auto;
    max-width:none;
    margin:0;
    object-fit:contain;
    object-position:center
  }
  .sns24-tile b{
    display:block;
    margin:14px 16px 0;
    padding:0;
    text-align:left;
    font-size:17px;
    line-height:1.5
  }
  .sns24-tile small{
    display:block;
    margin:4px 16px 16px;
    padding:0;
    text-align:left;
    font-size:14px;
    line-height:1.6
  }
}

/* ============================================================
   TAKAKURA V46 Phase 55 — semantic Japanese wrap guards
   Only audited phrases are protected. No global nowrap is added.
   ============================================================ */
.phrase-unit{
  display:inline-block;
  white-space:nowrap;
}
@media(max-width:430px){
  .flow26-main p,
  .flow26-meta dd{
    overflow-wrap:normal;
    word-break:normal;
    line-break:strict;
  }
}

/* ============================================================
   TAKAKURA V46 Phase 56 — compact-card readability polish
   Keep GROUP visually secondary while avoiding 10–12px UI copy.
   ============================================================ */
.group52-card__eyebrow{
  font-size:12px;
  line-height:1.35;
}
.group52-card__business{
  font-size:14px;
  line-height:1.72;
}
.group52-card__address{
  font-size:13px;
  line-height:1.7;
}
.group52-card__link{
  min-height:44px;
  font-size:14px;
  line-height:1.45;
}
@media(max-width:640px){
  .group52-lead{font-size:15px;line-height:1.75}
  .group52-card__eyebrow{font-size:12px}
  .group52-card__business{font-size:14px;line-height:1.72}
  .group52-card__address{font-size:13px;line-height:1.7}
  .group52-card__link{min-height:44px;font-size:14px}
}

/* V46 Phase57 — mobile reading scale */
@media(max-width:560px){
  .section-lead,.lead,.intro,.flow26-main p,.flow26-meta dd,
  .group52-lead,.group52-card__business{
    font-size:15px;
    line-height:1.78;
  }
  .group52-card__address,.group52-card__eyebrow,figcaption{
    font-size:13px;
    line-height:1.65;
  }
  .group52-card__link{
    font-size:14px;
    min-height:44px;
  }
}

/* V46 Phase58 — mobile card inner-space normalization */
@media(max-width:560px){
  .biz26-body,.strengths42-body,.group52-card__body{padding-left:20px;padding-right:20px}
  .biz26-body > h3 + p,.strengths42-body > h3 + p{margin-top:10px}
  .biz26-body,.strengths42-body{padding-bottom:22px}
}

/* V46 Phase59 — mobile heading-to-copy rhythm */
@media(max-width:560px){
  .section-head > h2,.section-heading > h2{margin-bottom:14px}
  .section-head > h2 + p,.section-heading > h2 + p,
  .section-head > h2 + .section-lead,.section-heading > h2 + .section-lead{margin-top:0}
  .biz26-body > h3,.strengths42-body > h3,.group52-card__body > h3{margin-bottom:10px}
  .biz26-body > h3 + p,.strengths42-body > h3 + p,.group52-card__body > h3 + p{margin-top:0}
}

/* V46 Phase60 — mobile interactive target QA */
@media(max-width:560px){
.btn,.button,.cta-button,.group52-card__link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;line-height:1.45}
.btn,.button,.cta-button{text-wrap:balance;word-break:keep-all;overflow-wrap:normal}
.more-link,.text-link{min-height:44px;display:inline-flex;align-items:center;line-height:1.45}
}

/* V46 Phase61 — mobile form usability */
@media(max-width:560px){
form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),form select,form textarea{width:100%;min-height:48px;font-size:16px;line-height:1.5}
form textarea{min-height:140px;resize:vertical}
form label,form legend{line-height:1.6;overflow-wrap:anywhere}
form input[type="checkbox"],form input[type="radio"]{width:20px;height:20px;min-width:20px;flex:0 0 20px}
form button[type="submit"],form input[type="submit"]{min-height:48px;font-size:16px;line-height:1.45}
form input:focus-visible,form select:focus-visible,form textarea:focus-visible,form button:focus-visible{outline:3px solid currentColor;outline-offset:2px}
}

/* ============================================================
   TAKAKURA V46 Phase 62 — mobile nav/footer interaction polish
   Keep existing visual identity; improve tap size and wrapping only.
   ============================================================ */
@media(max-width:560px){
  /* Navigation links: practical touch target and resilient Japanese labels. */
  header nav a,
  .nav a,
  .global-nav a,
  .mobile-nav a,
  .drawer a,
  .menu a{
    min-height:44px;
    display:flex;
    align-items:center;
    line-height:1.45;
    word-break:keep-all;
    overflow-wrap:normal;
  }

  /* Footer links remain compact visually, but not difficult to tap. */
  footer a,
  .footer a,
  .site-footer a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    line-height:1.5;
  }

  /* Long company/address copy may wrap naturally without horizontal overflow. */
  footer p,
  footer address,
  .footer p,
  .footer address,
  .site-footer p,
  .site-footer address{
    overflow-wrap:anywhere;
    line-height:1.7;
  }

  /* Menu buttons should meet the same touch target baseline. */
  button[aria-controls],
  .menu-toggle,
  .nav-toggle{
    min-width:44px;
    min-height:44px;
  }
}

/* ============================================================
   TAKAKURA V46 Phase 63 — accessibility / resilience baseline
   ============================================================ */
:focus-visible{
  outline:3px solid currentColor;
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
img,svg,video{max-width:100%}
img{height:auto}
@media(max-width:560px){
  body{overflow-wrap:break-word}
  main{min-width:0}
}

/* V46 Phase64 — approved high-resolution area map */
img[src*="takakura-area-map-v182"]{
  display:block;width:100%;height:auto;max-width:1280px;margin-inline:auto;
  object-fit:contain;object-position:center;image-rendering:auto;
}
@media(max-width:560px){
  img[src*="takakura-area-map-v182"]{
    width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;
  }
}

/* ============================================================
   TAKAKURA V46 Phase65 — pre-preview final resilience pass
   ============================================================ */

/* Prevent anchored sections from hiding behind the fixed header. */
[id]{scroll-margin-top:110px}

/* Keyboard users should always see interactive focus. */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{
  outline:3px solid currentColor;
  outline-offset:3px;
}

/* Long URLs / mail addresses must not create horizontal scrolling. */
main a,footer a{overflow-wrap:anywhere}

/* Approved map: preserve full artwork and avoid browser soft-scaling artifacts. */
img[src*="takakura-area-map-v182"]{
  aspect-ratio:3 / 2;
  object-fit:contain;
  background:#fff;
}

@media(max-width:560px){
  [id]{scroll-margin-top:96px}
  html,body{max-width:100%;overflow-x:clip}
}

/* Respect reduced-motion preference across menu/visual effects. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* ============================================================
   TAKAKURA V46 Phase66 — image stability / rendering pass
   ============================================================ */
img{
  max-width:100%;
  height:auto;
}
/* Intrinsic HTML dimensions reserve layout space; CSS remains responsive. */
picture,figure{min-width:0}
@media(max-width:560px){
  figure{max-width:100%}
}

/* V46 Phase67: shared approved area map on About + Company pages. */

/* V46 Phase68: About-page editorial line-break corrections. */

/* V46 Phase69 — editorial no-wrap guarantee */
.keep-one-line{
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
}

/* V46 Phase70 — typography rendering resilience */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  text-rendering:optimizeLegibility;
}

/* V46 Phase71: navigation/form semantics QA checkpoint. */

/* V46 Phase72: current-page navigation semantics. */

/* V46 Phase73: external-link security QA. */

/* V46 Phase74 — keyboard navigation */
.skip-link{position:fixed;z-index:10000;top:.5rem;left:.5rem;padding:.65rem 1rem;background:#fff;color:#111;border:2px solid currentColor;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}

/* V46 Phase75: metadata/preview QA checkpoint. */

/* V46 Phase76: image decoding/performance QA. */

/* V46 Phase77 — keyboard focus resilience */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid currentColor;outline-offset:3px}

/* V46 Phase78: restore visible focus when skip navigation targets main. */

/* V46 Phase82: HTML image-markup validity QA. */

/* V46 Phase83: external-link privacy/security QA. */

/* V46 Phase84 — Windows High Contrast / forced-colors resilience */
@media (forced-colors: active){
  :where(a,button,input,select,textarea,summary):focus-visible{
    outline:3px solid CanvasText;
    outline-offset:3px;
  }
  .skip-link{
    background:Canvas;
    color:CanvasText;
    border-color:CanvasText;
  }
}

/* V46 Phase85: document-language / landmark semantics QA checkpoint. */

/* V46 Phase86: heading hierarchy / document outline QA checkpoint. */

/* V46 Phase87: verified intrinsic image dimensions / CLS QA. */

/* V46 Phase88: reduced-motion JS behavior alignment. */

/* V46 Phase89: aria-current navigation semantics QA checkpoint. */

/* V46 Phase90: TOP copy line-break alignment from visual QA. */

/* V46 Phase91: business-page requested line breaks. */

/* V46 Phase92: strengths-page requested line breaks. */

/* V46 Phase93: projects-page requested line break. */

/* V46 Phase94: recruit-page requested line breaks. */

/* V46 Phase95: recruit TikTok copy requested line break. */

/* V46 Phase96: recruit contact intro requested line breaks. */

/* V46 Phase97: contact-page requested line breaks. */

/* V46 Phase98: consolidate skip-link focus behavior; remove obsolete conflicting positioning rule. */

/* V46 Phase99: business supporting-copy requested line breaks. */

/* V46 Phase100: joint representative display */
.representative-names{display:inline-block;letter-spacing:.02em}

/* V46 Phase101 — TOP workflow connector refinement
   Remove the bus-line appearance. Keep one deliberate connection from
   the TAKAKURA hub to the central coordination stage; stage-to-stage
   direction remains expressed by the existing arrows. */
@media (min-width:721px){
  .workflow41-steps::before{display:none}
  .workflow41-step::before{display:none}
  .workflow41-step--core::before{
    content:"";
    display:block;
    position:absolute;
    top:-57px;
    left:50%;
    width:1px;
    height:57px;
    background:linear-gradient(180deg,#7da3c6 0%,#9eb9d1 100%);
    transform:translateX(-50%);
  }
}

/* V46 Phase102: intentional mobile-only line breaks */
.mobile-break{display:none}
@media (max-width:720px){
  .mobile-break{display:block;height:0}
}

/* V46 Phase103: mobile-break hardening; no desktop inline box, zero-height mobile break. */

/* V46 Phase104 — TOP workflow connector geometry
   Desktop only: one horizontal trunk + five exact vertical branches.
   The hub stem ends exactly at the trunk; every card branch starts at the
   trunk and ends exactly at the card edge. No overlapping line segments. */
@media (min-width:721px){
  .workflow41-hub::after{
    content:"";
    display:block;
    position:absolute;
    left:50%;
    bottom:-28px;
    width:1px;
    height:28px;
    background:#9eb9d1;
    transform:translateX(-50%);
  }
  .workflow41-steps{
    margin-top:28px;
    padding-top:28px;
  }
  .workflow41-steps::before{
    content:"";
    display:block;
    position:absolute;
    left:4%;
    right:4%;
    top:0;
    width:auto;
    height:1px;
    background:#9eb9d1;
  }
  .workflow41-step::before,
  .workflow41-step--core::before{
    content:"";
    display:block;
    position:absolute;
    left:50%;
    top:-28px;
    width:1px;
    height:28px;
    border-radius:0;
    background:#9eb9d1;
    box-shadow:none;
    transform:translateX(-50%);
  }
}

/* V46 Phase105 — workflow connector stroke normalization
   Use one shared stroke width for hub stem, horizontal trunk and all five branches. */
@media (min-width:721px){
  .workflow41-hub::after,
  .workflow41-step::before,
  .workflow41-step--core::before{
    width:1px !important;
    min-width:1px;
    max-width:1px;
  }
  .workflow41-steps::before{
    height:1px !important;
    min-height:1px;
    max-height:1px;
  }
}

/* V46 Phase106 — TOP business cards / mobile text-width refinement
   Global p{text-wrap:pretty} was producing unnecessarily ragged right edges
   in the four narrow business cards. Let these card descriptions use the
   full available line width on mobile, without changing copy or card width. */
@media (max-width:720px){
  .cards19 .card19-body > p:not(.card19-sub){
    max-width:none;
    max-inline-size:none;
    text-wrap:wrap;
    line-break:normal;
    word-break:normal;
    overflow-wrap:normal;
  }
}

/* V46 Phase107 — site-wide mobile prose width / wrapping normalization
   On narrow screens, body copy should use the available content width naturally.
   Intentional .mobile-break controls and headings remain untouched. */
@media (max-width:720px){
  main p,
  main li,
  main dd,
  main .lead,
  main .desc,
  main .sechead19__side,
  main .workflow41-head p,
  main .card19-body p,
  main .strengths42-card p,
  main .workflow41-step p,
  main .merit24-list p,
  main .proposal24-body p,
  main .about-lead19 p,
  main .about19-body p,
  main .statement19 p,
  main .office23-desc,
  main .group52-lead{
    max-width:none !important;
    max-inline-size:none !important;
    text-wrap:wrap !important;
    word-break:normal;
    overflow-wrap:normal;
  }
  main .page-hero .wrap > p:last-child{
    max-width:none !important;
    max-inline-size:none !important;
  }
}

/* V46 Phase108 — mobile overflow hardening
   Prevent long flex/grid descendants from forcing avoidable horizontal
   expansion while preserving intentional full-width sections. */
@media (max-width:720px){
  main,
  main section,
  main article,
  main .wrap,
  main [class*="grid"],
  main [class*="card"],
  main [class*="body"],
  main [class*="copy"]{
    min-width:0;
  }
  main img,
  main video,
  main svg{
    max-width:100%;
  }
  main p,
  main li,
  main dd{
    box-sizing:border-box;
  }
}

/* V46 Phase109 — mobile viewport overflow containment */
@media (max-width:720px){
  html,body{max-width:100%;overflow-x:clip}
  main{width:100%;max-width:100%;overflow-x:clip}
}

/* V46 Phase110 — mobile long-token overflow hardening */
@media (max-width:720px){
  main a,main address,main .form-note,main .form-status,footer a{overflow-wrap:anywhere;word-break:normal}
  input,select,textarea,button{max-width:100%;box-sizing:border-box}
}

/* V46 Phase111 — mobile touch-target QA */
@media (max-width:720px){
  .site-header a,.site-header button,.site-footer a,main .btn,main .button,main button,main input[type="submit"]{min-height:44px}
  .site-header button,main button,main input[type="submit"]{touch-action:manipulation}
}

/* V46 Phase112 — mobile touch-target scope refinement */
@media (max-width:720px){
  .site-header a,.site-footer a{min-height:0}
  .site-header .nav-toggle,.site-header .menu-toggle,.site-header [aria-controls],
  main .btn,main .button,main button,main input[type="submit"]{min-height:44px}
}

/* V46 Phase113 — mobile primary-navigation tap target refinement */
@media (max-width:720px){
  .site-header nav a,
  .site-header .nav a,
  .site-header .global-nav a,
  .site-header .drawer-nav a{
    min-height:44px;
    display:flex;
    align-items:center;
  }
}

/* V46 Phase116: about mobile requested line breaks. */

/* V46 Phase117: about mobile heading requested line break. */

/* V46 Phase118 — location map mobile parity
   Use the exact same corrected v64 map asset and preserve its full 3:2 composition
   on mobile; cancel legacy crop/position/forced-height behavior. */
@media (max-width:720px){
  img[src*="takakura-area-map-v182"]{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:3 / 2 !important;
    object-fit:contain !important;
    object-position:center center !important;
    margin-inline:auto !important;
  }
}

/* V46 Phase119: requested mobile-only line breaks. */

/* Phase120 mobile breaks */

/* V46 Phase121: requested projects/company mobile line breaks. */

/* Phase122 */
.privacy-label-nowrap{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}

/* V46 Phase123: requested mobile-only line breaks. */

/* V46 Phase124 — corrected map cache-bust + mobile full-artwork rendering */
img[src*="takakura-area-map-v182"]{
  display:block !important;
  width:100% !important;
  max-width:1280px !important;
  height:auto !important;
  max-height:none !important;
  aspect-ratio:3 / 2 !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin-inline:auto !important;
}
@media (max-width:720px){
  img[src*="takakura-area-map-v182"]{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:3 / 2 !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}

/* Phase125: requested double mobile break */

/* Phase126 requested mobile break */

/* Phase127: remove forced breaks from specified strengths paragraph. */

/* Phase128: exact two-line recruit heading on mobile */
@media (max-width:720px){
 .recruit-hero-line{display:block;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
}

/* V46 Phase129 — exact two-line privacy heading on mobile */
@media (max-width:720px){
  .privacy-title-line{
    display:block;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
  }
}

/* V46 Phase131: root-cause map fix — mobile now uses the same v124 map as desktop. */

/* V46 Phase132 — mobile typography QA.
   Legacy hard <br> tags in body copy should not force awkward mobile wraps.
   Explicit .mobile-break instructions remain authoritative. */
@media (max-width:720px){
  main p br{display:none}
  main h1 br, main h2 br, main h3 br{display:none}
  .mobile-break{display:block !important}
}

/* V46 Phase133 — exact three-line VISION heading on mobile */
@media (max-width:720px){
  .vision-title-line{
    display:block;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
  }
}

/* V46 Phase135: exact mobile break for business/contact headings. */

/* Phase144: TOP ABOUT mobile photo QA — avoid severe crop of panoramic construction photo */
@media (max-width:720px){
  .about19-photos{grid-template-columns:1fr;gap:10px}
  .about19-photos .tall{grid-row:auto;aspect-ratio:4/3;object-position:center 40%}
  .about19-photos .wide{aspect-ratio:16/9;object-fit:cover;object-position:center center}
  .about19-note{grid-column:1;padding:18px}
}

/* ===== V46 Phase169: canonical approved illustration + responsive rules =====
   Single source of truth replacing the accumulated Phase165-168 overrides.
   Approved SNS/recruit artwork must remain fully visible on desktop and mobile. */
*,*::before,*::after{box-sizing:border-box}
/* [Phase204] 同一宣言が後方（Phase200 FIX-1）に存在するため削除：html,body{max-width:100%;overflow-x:clip} */
main,main section,main .wrap,main :where(div,article,ul,li,figure,picture){min-width:0}
main :where(img,svg,video,canvas){max-width:100%;height:auto}
main :where(.grid,.cards19,.sns24-grid,.sns24-tiles,.workflow41-steps)>*{min-width:0}

/* TOP / SNS */
.sns24 .sns24-grid{grid-template-columns:minmax(260px,.92fr) minmax(0,1.5fr);align-items:center}
.sns24 .sns24-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;margin:0;padding:0}
.sns24 .sns24-tiles>li{min-width:0;list-style:none}
.sns24 .sns24-tile{display:block;min-width:0;min-height:0;background:transparent;border:0;overflow:visible}
.sns24 .sns24-tile .thumb--illust{display:block;width:100%;aspect-ratio:1.565/1;overflow:hidden;background:#eef3f8}
.sns24 .sns24-tile .thumb--illust img{display:block;width:100%;height:100%;margin:0;object-fit:contain;object-position:center}
.sns24 .sns24-tile b{display:block;margin:12px 0 2px;text-align:center}
.sns24 .sns24-tile small{display:block;margin:0;text-align:center}

/* RECRUIT / OUR WORK */
.recruit-points-section .cards19--2{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.recruit-points-section .cards19--2>*{min-width:0}
.recruit-points-section .card19{overflow:hidden}
.recruit-points-section .card19>img.illust{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center;background:#eef3f8}

@media (max-width:960px){
  .sns24 .sns24-grid{grid-template-columns:1fr;gap:28px}
  .recruit-points-section .cards19--2{grid-template-columns:1fr;gap:18px}
}

@media (max-width:720px){
  .wrap{width:min(100% - 32px,var(--wrap,1200px));margin-inline:auto}
  main :where(h1,h2,h3,p,li,dd,dt,a,span){max-width:100%}
  .sns24 .sns24-grid{display:grid;grid-template-columns:1fr;gap:24px}
  .sns24 .sns24-copy,.sns24 .sns24-tiles,.sns24 .sns24-tile{min-width:0;max-width:100%}
  .sns24 .sns24-tiles{grid-template-columns:1fr;gap:16px;width:100%}
  .sns24 .sns24-tile{width:100%;background:#fff;border:1px solid var(--steel-line);overflow:hidden}
  .sns24 .sns24-tile .thumb--illust{width:100%;aspect-ratio:1.565/1;margin:0}
  .sns24 .sns24-tile .thumb--illust img{width:100%;height:100%;object-fit:contain;object-position:center}
  .sns24 .sns24-tile b{margin:14px 16px 0;text-align:left;font-size:16px;line-height:1.5}
  .sns24 .sns24-tile small{margin:4px 16px 16px;text-align:left;font-size:13px;line-height:1.6}
  .recruit-points-section .cards19--2{grid-template-columns:1fr;gap:16px}
  .recruit-points-section .card19{min-width:0;max-width:100%}
  .recruit-points-section .card19>img.illust{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
}

/* ===== V46 Phase170: image rendering reliability + screenshot/mobile QA =====
   Content images are intentionally loaded by HTML without native lazy-loading.
   This prevents long-page/full-page rendering from reserving image boxes while
   leaving the actual artwork/photo undrawn. Existing responsive ratios remain. */
main img{visibility:visible;opacity:1}
@media (max-width:720px){
  .card19>img,.biz26-card>img,.strengths42-card>img{display:block;width:100%;max-width:100%;height:auto}
  .office23-map img,.office44-map img{display:block;width:100%;height:auto;object-fit:contain}
}

/* ===== V46 Phase171: cross-page visual QA refinement =====
   Based on paired desktop/mobile full-page screenshots after Phase170.
   Scope: rhythm, media sizing, card consistency and mobile density only. */
:root{--tk-section-y:clamp(72px,6.5vw,104px)}
main>.section19,main>.about19,main>.company19{padding-top:var(--tk-section-y);padding-bottom:var(--tk-section-y)}
/* deterministic media boxes: never reserve an oversized blank region */
.card19>img,.proj19>img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.strengths42-visual>img{display:block;width:100%;height:100%;object-fit:cover}
/* TOP business cards: tighter, more editorial desktop rhythm */
@media (min-width:1181px){
  .cards19{gap:22px;row-gap:56px}
  .card19-body{padding:18px 18px 22px}
  .card19 h3{font-size:20px}
  .card19 p{font-size:15px;line-height:1.8}
  .proj19-grid--2{max-width:920px;margin-inline:auto}
  .sns24{padding:68px 0}
}
/* tablet: avoid four-column compression */
@media (min-width:721px) and (max-width:1180px){
  .cards19{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:54px}
  .proj19-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* mobile visual rhythm */
@media (max-width:720px){
  :root{--tk-section-y:56px}
  main>.section19,main>.about19,main>.company19{padding-top:var(--tk-section-y);padding-bottom:var(--tk-section-y)}
  .section19 .sechead19{margin-bottom:26px}
  .cards19,.cards19--3{grid-template-columns:1fr;gap:0;row-gap:46px;padding-top:24px}
  .card19>img{aspect-ratio:16/10;object-fit:cover}
  .card19-body{padding:18px 18px 21px}
  .card19 h3{font-size:20px;margin-bottom:10px;padding-bottom:10px}
  .card19 p{font-size:15px;line-height:1.78}
  .proj19-grid,.proj19-grid--2{grid-template-columns:1fr;gap:18px}
  .proj19>img{aspect-ratio:16/10}
  .proj19 .copy{padding:16px 17px 19px}
  .about19{padding-top:58px;padding-bottom:58px}
  .about19-grid{gap:22px}
  .about19-body p{font-size:15.5px;line-height:1.85}
  .workflow41-section{padding-top:58px!important;padding-bottom:58px!important}
  .workflow41-head{margin-bottom:28px}
  .workflow41-rel{margin-bottom:30px}
  .workflow41-steps{margin-top:24px}
  .sns24{padding:54px 0}
  .sns24 .sns24-grid{gap:26px}
  .sns24 .sns24-tiles{gap:18px}
  .recruit19 .wrap{padding-top:54px;padding-bottom:54px}
  .company19-grid{gap:28px}
}

/* ===== V46 Phase172: screenshot-led responsive stabilization ===== */
/* Improve reading scale without changing approved content/artwork. */
@media (min-width:1181px){
  .wrap{width:min(100% - 64px,1240px)}
  .section19 .sechead19 p,.about19-body p,.company19 p{font-size:16px;line-height:1.9}
}
@media (max-width:720px){
  body{font-size:15px}
  .wrap{width:calc(100% - 36px)}
  main h1,main h2,main h3{overflow-wrap:normal;word-break:normal}
  .section19 .sechead19 h2{font-size:clamp(30px,8.4vw,38px);line-height:1.35}
  .section19 .sechead19 p{font-size:15px;line-height:1.85}
  /* TOP workflow: compact vertical sequence and prevent oversized cards. */
  .workflow41-head h2{font-size:clamp(31px,8.5vw,37px)}
  .workflow41-rel{width:100%}
  .workflow41-exchange{width:100%;grid-template-columns:1fr auto 1fr}
  .workflow41-steps{padding-left:14px;gap:10px}
  .workflow41-step{padding:18px 15px 17px 62px}
  .workflow41-stepicon{left:20px;top:39px;width:29px;height:29px;background-size:29px}
  .workflow41-step--core{padding:54px 14px 15px}
  .workflow41-trades{grid-template-columns:1fr 1fr}
  /* Maps/illustrations must always consume their intrinsic responsive height. */
  .office40-section img,.office44-map img,.office23-map img{max-width:100%;height:auto!important;min-height:0!important}
  /* Approved SNS artwork: one full-width card per row, never crop. */
  .sns24 .sns24-tile .thumb--illust{aspect-ratio:auto;min-height:0;background:#eef3f8}
  .sns24 .sns24-tile .thumb--illust img{height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}
  /* Approved recruit artwork: preserve entire panel and keep copy close to it. */
  .recruit-points-section .card19>img.illust{height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}
  .recruit-points-section .card19-body{padding-top:16px}
  /* Avoid exaggerated empty media regions on content cards. */
  .card19>img:not(.illust),.proj19>img{height:auto!important;min-height:0!important;aspect-ratio:16/10;object-fit:cover}
}

/* Phase173: prevent overlap in the after-support message while preserving mobile stacking. */
@media (min-width:961px){
  .about41-window__after{grid-template-columns:360px minmax(0,1fr);gap:30px}
  .about41-window__after strong,.about41-window__after p{min-width:0}
  .about41-window__after strong .keep-one-line{white-space:nowrap}
}

/* ===== V46 Phase174: locked corrections from live Preview QA =====
   1) Prevent after-support headline/body collision on desktop.
   2) Joint representative wording is locked in HTML (no chairman/president split). */
@media (min-width:961px){
  .about41-window__after{grid-template-columns:minmax(390px,.9fr) minmax(0,1.35fr);gap:36px;align-items:center}
  .about41-window__after strong{font-size:clamp(21px,1.8vw,26px);line-height:1.45}
  .about41-window__after strong .keep-one-line{white-space:nowrap}
  .about41-window__after p{min-width:0;font-size:15px;line-height:1.8}
}
@media (min-width:961px) and (max-width:1100px){
  .about41-window__after{grid-template-columns:1fr;gap:10px}
  .about41-window__after strong .keep-one-line{white-space:normal}
}

/* V46 Phase175 — consolidated visual QA guardrails.
   Preserve approved content/assets; stabilize desktop/mobile composition. */
/* [Phase204] 後方の overflow-x:clip に完全に上書きされ無効だったため削除：html,body{max-width:100%;overflow-x:hidden} */
img{max-width:100%}
main :where(h1,h2,h3,p,li,dt,dd,a,span,strong){overflow-wrap:break-word}

/* Desktop readability and rhythm */
@media (min-width:1181px){
  main .container19,main .container41{width:min(1180px,calc(100% - 80px));margin-inline:auto}
  .section19 .sechead19{margin-bottom:34px}
  .cards19,.projects19-grid{gap:24px}
  .company19-grid{align-items:start}
}

/* Tablet: avoid compressed three/four-column cards. */
@media (min-width:721px) and (max-width:1100px){
  main .container19,main .container41{width:min(100% - 48px,1040px);margin-inline:auto}
  .cards19{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sns24 .sns24-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Mobile baseline: predictable media sizing and vertical rhythm. */
@media (max-width:720px){
  main .container19,main .container41{width:calc(100% - 36px);margin-inline:auto}
  main>.section19,main>.about19,main>.company19{padding-top:52px;padding-bottom:52px}
  .section19 .sechead19{margin-bottom:24px}
  .section19 .sechead19 h2{line-height:1.25}
  .cards19,.projects19-grid,.company19-grid{grid-template-columns:1fr!important;gap:18px}
  .cards19 img,.projects19-grid img,.company19 img{max-width:100%;height:auto}
  .workflow41-section{padding-top:52px!important;padding-bottom:52px!important}
  .workflow41-step{min-height:0}
  .workflow41-trades{gap:8px}
  .sns24{padding:52px 0}
  .sns24 .sns24-tiles{grid-template-columns:1fr!important;gap:18px}
  .sns24 .sns24-tile .thumb--illust{height:auto!important;min-height:0!important;aspect-ratio:auto!important}
  .sns24 .sns24-tile .thumb--illust img{display:block;width:100%;height:auto!important;object-fit:contain!important}
  .about41-window__after{grid-template-columns:1fr!important;gap:10px!important}
  .about41-window__after strong,.about41-window__after p{width:auto;max-width:100%;min-width:0}
  .about41-window__after strong .keep-one-line{white-space:normal!important}
}

/* Locked approved representative wording: layout only. */
.representative-names{display:inline-block;max-width:100%}

/* ===== V46 Phase176 FINAL-CANDIDATE: verified lock + narrow-device guardrails =====
   - Preserve approved SNS/recruit illustrations without crop.
   - Preserve joint representative wording layout.
   - Keep 320px-class devices usable without header text clipping.
   These are layout-only locks; production indexing remains intentionally disabled. */
.sns24 .sns24-tile .thumb--illust,
.recruit-points-section .card19>img.illust{content-visibility:visible}
.sns24 .sns24-tile .thumb--illust img,
.recruit-points-section .card19>img.illust{display:block;max-width:100%;object-position:center}
.representative-names{white-space:normal;overflow-wrap:normal;word-break:keep-all}

@media (max-width:340px){
  .site-header .wrap{gap:8px}
  .brand{max-width:145px;min-width:0;gap:7px;overflow:visible}
  .brand-mark{width:46px;height:32px;flex:0 0 46px}
  .brand-copy{min-width:0}
  .brand-copy strong{font-size:12px;letter-spacing:0;white-space:nowrap}
  .mobile-header-contact{min-height:40px;padding:0 7px;font-size:10.5px}
  .menu-btn{min-width:46px;min-height:40px;font-size:10.5px}
}

/* ===== V46 Phase178: construction track record with location field =====
   Photo-less project history remains text-led; location is displayed as a dedicated field. */
.trackrecord19{margin-top:72px;padding-top:64px;border-top:1px solid var(--steel-line)}
.trackrecord19-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:56px;align-items:start;margin-bottom:32px}
.trackrecord19-head .eyebrow{font-size:13px;font-weight:800;letter-spacing:.2em;color:var(--pink-deep);margin:0 0 10px}
.trackrecord19-head h2{font-family:var(--mincho);font-size:clamp(34px,3.6vw,50px);line-height:1.25;color:var(--navy);margin:0}
.trackrecord19-intro{padding-top:6px}
.trackrecord19-intro .lead{font-family:var(--mincho);font-size:clamp(19px,1.5vw,22px);line-height:1.75;color:var(--navy);margin:0 0 10px}
.trackrecord19-list{border-top:2px solid var(--navy)}
.trackrecord19-item{display:grid;grid-template-columns:112px minmax(0,1fr) minmax(120px,.34fr) minmax(210px,.58fr);gap:24px;align-items:center;padding:24px 8px;border-bottom:1px solid var(--steel-line);position:relative}
.trackrecord19-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .2s ease}
.trackrecord19-item:hover::before{background:var(--pink-deep)}
.trackrecord19-year{font-family:var(--mincho);font-size:28px;font-weight:700;line-height:1;color:var(--pink-deep);letter-spacing:.02em}
.trackrecord19-main{min-width:0}
.trackrecord19-tag{display:block;font-size:10px;font-weight:800;letter-spacing:.18em;color:#68839c;margin-bottom:6px}
.trackrecord19-main h3{font-size:19px;line-height:1.5;color:var(--navy);margin:0}
.trackrecord19-location,.trackrecord19-period{display:flex;align-items:baseline;gap:12px;min-width:0}
.trackrecord19-location{justify-content:flex-start;text-align:left}
.trackrecord19-period{justify-content:flex-end;text-align:right}
.trackrecord19-location small,.trackrecord19-period small{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted);white-space:nowrap}
.trackrecord19-location strong,.trackrecord19-period strong{font-size:14px;line-height:1.5;color:var(--ink-body);font-weight:700;white-space:nowrap}

@media (max-width:900px){
  .trackrecord19{margin-top:56px;padding-top:52px}
  .trackrecord19-head{grid-template-columns:1fr;gap:16px;margin-bottom:26px}
  .trackrecord19-intro{padding-top:0}
  .trackrecord19-item{grid-template-columns:86px minmax(0,1fr);gap:10px 18px;padding:20px 4px}
  .trackrecord19-location,.trackrecord19-period{grid-column:2;justify-content:flex-start;text-align:left;gap:10px}
  .trackrecord19-location{margin-top:-2px}
  .trackrecord19-period{margin-top:-2px}
  .trackrecord19-year{font-size:25px;align-self:start;padding-top:2px}
}
@media (max-width:520px){
  .trackrecord19{margin-top:48px;padding-top:44px}
  .trackrecord19-head h2{font-size:clamp(30px,8.4vw,38px)}
  .trackrecord19-intro .lead{font-size:18px;line-height:1.7}
  .trackrecord19-item{grid-template-columns:1fr;gap:6px;padding:18px 2px}
  .trackrecord19-year{font-size:22px;margin-bottom:2px}
  .trackrecord19-main h3{font-size:18px}
  .trackrecord19-location,.trackrecord19-period{grid-column:1;display:block;margin-top:4px;text-align:left}
  .trackrecord19-location small,.trackrecord19-period small{display:block;margin-bottom:3px}
  .trackrecord19-location strong,.trackrecord19-period strong{white-space:normal}
}

/* =========================================================
   Phase 179 — PROJECTS expanded: 5 featured projects + 5 text records
   ========================================================= */
.proj19-grid--featured{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.proj19-grid--featured .proj19{height:100%}
.proj19-grid--featured .proj19>img{aspect-ratio:4/3;object-fit:cover;background:#eef4f8}
.proj19-grid--featured .proj19 .copy{display:flex;flex-direction:column;flex:1}
.proj19-grid--featured .proj19-spec{margin-top:auto;padding-top:10px}
.trackrecord19-item{grid-template-columns:88px minmax(220px,1.15fr) minmax(120px,.48fr) minmax(145px,.52fr) minmax(205px,.72fr)}
.trackrecord19-meta{display:flex;align-items:baseline;gap:18px;min-width:0}
.trackrecord19-meta>span{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.trackrecord19-meta small{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted)}
.trackrecord19-meta strong{font-size:14px;line-height:1.5;color:var(--ink-body);font-weight:700}
@media (max-width:1180px){
  .proj19-grid--featured{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trackrecord19-item{grid-template-columns:72px minmax(0,1fr) minmax(120px,.44fr);gap:10px 18px}
  .trackrecord19-location{grid-column:2}
  .trackrecord19-meta{grid-column:2}
  .trackrecord19-period{grid-column:3;grid-row:1/4;align-self:center;justify-content:flex-end}
}
@media (max-width:720px){
  .proj19-grid--featured{grid-template-columns:1fr;gap:18px}
  .proj19-grid--featured .proj19>img{aspect-ratio:16/10}
  .trackrecord19-item{grid-template-columns:1fr;gap:6px;padding:18px 2px}
  .trackrecord19-year,.trackrecord19-main,.trackrecord19-location,.trackrecord19-meta,.trackrecord19-period{grid-column:1;grid-row:auto}
  .trackrecord19-location,.trackrecord19-meta,.trackrecord19-period{justify-content:flex-start;text-align:left;margin-top:4px}
  .trackrecord19-meta{gap:16px;flex-wrap:wrap}
  .trackrecord19-meta>span{display:block}
  .trackrecord19-meta small,.trackrecord19-location small,.trackrecord19-period small{display:block;margin-bottom:3px}
  .trackrecord19-meta strong,.trackrecord19-location strong,.trackrecord19-period strong{white-space:normal}
}

/* =========================================================
   V46 Phase180 — Company history
   ========================================================= */
.history180{
  background:#f5f8fb;
  border-top:1px solid rgba(5,45,87,.06);
  border-bottom:1px solid rgba(5,45,87,.06);
}
.history180-head{
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(280px,1.28fr);
  gap:54px;
  align-items:end;
  margin-bottom:38px;
}
.history180-head h2{
  margin:0;
  font-family:var(--mincho);
  color:var(--navy);
  font-size:clamp(34px,3.3vw,46px);
  line-height:1.25;
}
.history180-lead{
  margin:0 0 5px;
  color:var(--ink-body);
  font-size:16px;
  line-height:1.8;
}
.history180-list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--steel-line);
}
.history180-item{
  position:relative;
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:42px;
  align-items:center;
  min-height:94px;
  padding:20px 10px 20px 0;
  border-bottom:1px solid var(--steel-line);
}
.history180-item::before{
  content:"";
  position:absolute;
  left:178px;
  top:50%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--pink-deep);
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 6px #f5f8fb;
}
.history180-date{
  display:flex;
  align-items:baseline;
  gap:9px;
  color:var(--navy);
  white-space:nowrap;
}
.history180-date span{
  font-size:16px;
  font-weight:800;
  letter-spacing:.02em;
}
.history180-date strong{
  font-family:var(--mincho);
  font-size:24px;
  font-weight:700;
}
.history180-item>p{
  margin:0;
  padding-left:14px;
  color:var(--navy);
  font-size:17px;
  font-weight:700;
  line-height:1.75;
}
@media(max-width:900px){
  .history180-head{grid-template-columns:1fr;gap:12px;margin-bottom:30px}
  .history180-item{grid-template-columns:160px minmax(0,1fr);gap:30px}
  .history180-item::before{left:150px}
}
@media(max-width:560px){
  .history180-head{margin-bottom:24px}
  .history180-head h2{font-size:clamp(30px,8.4vw,38px)}
  .history180-lead{font-size:15px}
  .history180-list{border-top:0}
  .history180-item{
    grid-template-columns:1fr;
    gap:7px;
    min-height:0;
    padding:18px 16px 18px 18px;
    margin-bottom:10px;
    border:1px solid rgba(5,45,87,.10);
    background:#fff;
    border-radius:4px;
    box-shadow:0 8px 22px rgba(5,45,87,.045);
  }
  .history180-item::before{
    left:0;
    top:20px;
    width:4px;
    height:calc(100% - 40px);
    border-radius:0;
    transform:none;
    box-shadow:none;
  }
  .history180-date{gap:8px}
  .history180-date span{font-size:14px}
  .history180-date strong{font-size:20px}
  .history180-item>p{padding-left:0;font-size:15.5px;line-height:1.7}
}

/* ===== V46 Phase181: TOP ABOUT mobile repair ===== */
.about19-title-line{display:inline}
.about19-photos .mobile{display:none}

@media (max-width:720px){
  .about19{padding-top:54px}
  .about19-grid{gap:24px}
  .about19-head h2{margin-bottom:20px;font-size:30px;line-height:1.42;letter-spacing:.01em}
  .about19-title-line{display:block}
  .about19 .lead{font-size:16px;line-height:1.82;margin-bottom:0}
  .about19-body p{font-size:15px;line-height:1.86}

  /* Mobile uses one purpose-selected landscape photo instead of the desktop collage.
     This prevents awkward crops and excessive vertical height on narrow screens. */
  .about19-photos{display:grid;grid-template-columns:1fr;gap:14px}
  .about19-photos .tall,
  .about19-photos .wide{display:none}
  .about19-photos .mobile{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 45%;border-radius:0}
  .about19-note{grid-column:1;background:#eef4f8;color:var(--navy);padding:20px 18px 19px;border-left:4px solid var(--pink);display:block}
  .about19-note strong{display:block;font-size:21px;line-height:1.5;margin:0 0 8px}
  .about19-note span{display:block;font-size:14.5px;line-height:1.8;color:#476078}
}

@media (max-width:390px){
  .about19-head h2{font-size:28px}
  .about19 .lead{font-size:15.5px}
}

/* ============================================================================
   TAKAKURA V47 / Phase201 — BRAND LAYER
   「大規模木造建築の『つくり方』から変える。」
   ----------------------------------------------------------------------------
   Phase184 の既存スタイル（上記 3,245 行）には手を加えず、このレイヤーのみを追加。
   全クラスに tk200- / tk201- 接頭辞を付与し、既存との衝突を避ける。
   !important は使用しない。
   Phase201 方針：PC本文16px以上／リード18〜20px相当／14px未満を常用しない／
   本文に max-width／余白を大胆に／図解は1図解1メッセージ。
   ============================================================================ */

:root{
  --tk-navy:#052d57;
  --tk-navy-2:#0b446f;
  --tk-navy-3:#16598c;
  --tk-ink:#213a52;
  --tk-muted:#4f6377;
  --tk-line:#dde5ec;
  --tk-soft:#f5f8fb;
  --tk-pink:#ea3a73;
  --tk-pink-deep:#c91f5e;
  --tk-timber:#a87a4d;
  --tk-timber-soft:#f3ece2;
  --tk-gap:clamp(72px,7.5vw,124px);   /* Phase201: セクション余白を大胆に */
  --tk-measure:34em;                  /* 本文の最大行長 */
}

/* ------------------------------------------------------------------ 共通 */

.tk200-sec{padding:var(--tk-gap) 0}

.tk200-eyebrow{
  margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.22em;
  color:var(--tk-pink-deep);line-height:1.5;
}
.tk200-eyebrow--onnavy{color:#9ecdf5}

.tk200-h2{
  margin:0 0 22px;font-family:var(--mincho);color:var(--tk-navy);
  font-size:clamp(29px,3.6vw,50px);line-height:1.4;letter-spacing:.02em;font-weight:700;
}
.tk200-h2--onnavy{color:#fff}
.tk200-lead{margin:0;font-size:clamp(17px,1.45vw,19.5px);line-height:1.95;color:var(--tk-muted);max-width:36em}
.tk200-lead--onnavy{color:#cfe1f0}

/* 意味単位で折り返すための単位（語中で割れないようにする） */
.tk200-u{display:inline-block}
.about19-title-line,.vision-title-line,.recruit-hero-line,.privacy-title-line{display:inline-block}

/* ------------------------------------------------- HERO 見出しの折り返し */

.hero19 h1.tk200-hero-h1{max-width:16em;font-size:clamp(33px,4.4vw,58px);line-height:1.3}
@media (max-width:720px){
  .hero19 h1.tk200-hero-h1{max-width:100%;font-size:clamp(28px,8.1vw,37px);line-height:1.36}
}

/* ------------------------------------------------- 4本柱：TOP サマリー */

.tk200-pillars{margin:0;padding:0;list-style:none;display:grid;gap:0}
.tk200-pillars>li{
  display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;
  padding:26px 0;border-top:1px solid var(--tk-line);
}
.tk200-pillars>li:last-child{border-bottom:1px solid var(--tk-line)}
.tk200-pillars .tk200-no{
  font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:700;
  font-size:22px;color:var(--tk-pink-deep);line-height:1.35;letter-spacing:.06em;
}
.tk200-pillars h3{
  margin:0 0 6px;font-family:var(--mincho);font-size:clamp(21px,1.9vw,26px);
  line-height:1.45;color:var(--tk-navy);font-weight:700;letter-spacing:.02em;
}
.tk200-pillars .tk200-tag{
  display:block;margin:0;font-size:16px;font-weight:700;letter-spacing:.02em;
  color:var(--tk-pink-deep);line-height:1.7;
}

/* --------------------------------------- 国産材セクション（TOP・濃紺） */

.tk200-timber-sec{
  position:relative;padding:var(--tk-gap) 0;
  background:linear-gradient(170deg,#04264a 0%,#052d57 46%,#083a6b 100%);
  color:#fff;overflow:hidden;
}
.tk200-timber-sec::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(900px 420px at 88% -8%,rgba(168,122,77,.22),transparent 62%),
    radial-gradient(700px 380px at -6% 108%,rgba(22,89,140,.5),transparent 60%);
}
.tk200-timber-sec>.wrap{position:relative;z-index:1}
.tk200-timber-head{max-width:40em;margin:0 0 clamp(38px,4vw,60px)}

/* 4価値：罫線グリッドをやめ、上罫だけの軽いブロックにする（Phase201） */
.tk200-values,.tk201-values{
  margin:0;padding:0;list-style:none;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(26px,2.6vw,40px);
}
.tk200-values>li,.tk201-values>li{min-width:0;padding-top:20px;border-top:1px solid rgba(255,255,255,.28)}
.tk200-ven{
  display:block;font-size:12px;font-weight:800;letter-spacing:.18em;
  color:#e7b98a;margin-bottom:12px;line-height:1.5;
}
.tk200-values h3,.tk201-values h3{
  margin:0 0 10px;font-family:var(--mincho);font-size:22px;line-height:1.45;
  color:#fff;font-weight:700;letter-spacing:.03em;
}
.tk200-values p,.tk201-values p{margin:0;font-size:15.5px;line-height:1.95;color:#cfe1f0}

.tk200-timber-foot{
  display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;
  margin-top:clamp(36px,3.6vw,52px);
}
.tk200-timber-note{margin:0;font-size:14px;line-height:1.9;color:#b6d0e5;max-width:46em}

.tk200-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:52px;padding:13px 28px;font-size:15px;font-weight:800;
  letter-spacing:.04em;border-radius:5px;transition:background .16s,color .16s,border-color .16s;
}
.tk200-btn--pink{background:var(--tk-pink-deep);color:#fff;border:1px solid var(--tk-pink-deep)}
.tk200-btn--pink:hover{background:#ae1a51;border-color:#ae1a51}
.tk200-btn--ghost{border:1px solid rgba(255,255,255,.55);color:#fff}
.tk200-btn--ghost:hover{background:rgba(255,255,255,.12)}

/* ===================================================== 強みページ 4本柱 */

.tk200-pillar{padding:var(--tk-gap) 0;border-top:1px solid var(--tk-line)}
.tk200-pillar:first-of-type{border-top:0}
.tk200-pillar--soft{background:var(--tk-soft)}
.tk200-pillar--navy{
  background:linear-gradient(170deg,#04264a,#083a6b);color:#fff;border-top:0;
}

.tk200-pnum{
  display:block;font-family:Georgia,"Times New Roman",serif;font-style:italic;
  font-weight:700;font-size:clamp(38px,4.4vw,60px);line-height:1;
  color:var(--tk-pink);letter-spacing:.04em;margin:0 0 14px;
}
.tk200-pnum--onnavy{color:#f3a8c4}
.tk200-ptag{
  margin:0 0 22px;font-family:var(--mincho);font-weight:700;
  font-size:clamp(25px,2.8vw,38px);line-height:1.45;color:var(--tk-navy);letter-spacing:.03em;
}
.tk200-ptag--onnavy{color:#fff}
.tk200-ptitle{
  margin:0 0 8px;font-size:clamp(17px,1.5vw,20px);font-weight:800;
  letter-spacing:.04em;color:var(--tk-navy-3);line-height:1.5;
}
.tk200-ptitle--onnavy{color:#9ecdf5}
.tk200-pbody{margin:0 0 20px;font-size:16.5px;line-height:2.05;color:var(--tk-ink);max-width:var(--tk-measure)}
.tk200-pbody--onnavy{color:#cfe1f0;max-width:38em}
.tk200-pbody:last-child{margin-bottom:0}

/* 写真＋テキストの2カラム */
.tk200-split{
  display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);
  gap:clamp(32px,4.4vw,72px);align-items:center;
}
.tk200-split--rev .tk200-split__media{order:2}
.tk200-split__media{margin:0;min-width:0}
.tk200-split__media img{width:100%;height:100%;max-height:520px;object-fit:cover;border-radius:6px;display:block}
.tk200-split__copy{min-width:0}

/* 注記 */
.tk200-note{
  margin:clamp(26px,3vw,40px) 0 0;padding:14px 18px;border-left:3px solid var(--tk-line);
  font-size:14px;line-height:1.9;color:var(--tk-muted);background:#fbfcfe;max-width:60em;
}
.tk200-note--onnavy{border-left-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06);color:#b6d0e5}

/* ステートメント（左右非対称） */
.tk200-statement{
  display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:clamp(30px,4vw,72px);align-items:start;
}
.tk200-statement h2{
  margin:0;font-family:var(--mincho);color:var(--tk-navy);font-weight:700;
  font-size:clamp(27px,3.3vw,44px);line-height:1.5;letter-spacing:.03em;
}
.tk200-statement p{margin:0 0 20px;font-size:16.5px;line-height:2.1;color:var(--tk-ink);max-width:var(--tk-measure)}
.tk200-statement p:last-child{margin-bottom:0}

/* ======================================================= Phase201 新規 */

/* 強みページ導入（中央・大きく） */
.tk201-intro{max-width:30em}
.tk201-intro h2{
  margin:0 0 24px;font-family:var(--mincho);color:var(--tk-navy);font-weight:700;
  font-size:clamp(30px,4vw,54px);line-height:1.4;letter-spacing:.02em;
}
.tk201-intro__body{margin:0;font-size:clamp(17px,1.45vw,19.5px);line-height:2;color:var(--tk-muted)}

/* 柱01：左に番号＋見出し、右に本文（左右非対称） */
.tk201-lead2{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(30px,4.4vw,80px);align-items:start;
}
.tk201-lead2__head{min-width:0}
.tk201-lead2__body{min-width:0;padding-top:6px}

/* 全幅の大写真 */
.tk201-bleed{margin:clamp(40px,4.5vw,68px) 0 0}
.tk201-bleed img{
  width:100%;height:clamp(220px,28vw,420px);object-fit:cover;display:block;
}

/* 図解の外枠：余白を十分に取り、枠線を持たせない */
.tk201-fig{margin:clamp(40px,4.5vw,68px) 0 0}

/* 国産材：循環フローを主役に */
.tk201-timberhead{max-width:40em;margin:0 0 clamp(40px,4.4vw,64px)}
.tk201-timberphoto{margin:0 0 clamp(36px,4vw,56px)}
.tk201-timberphoto img{width:100%;height:clamp(200px,24vw,330px);object-fit:cover;border-radius:6px;display:block}

.tk201-cyclefig{margin:0 0 clamp(44px,4.8vw,72px)}
.tk201-cycle201{
  margin:0;padding:0;list-style:none;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.8vw,26px);
}
.tk201-cycle201 li{
  position:relative;min-width:0;padding:24px 20px;border-radius:6px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);text-align:center;
}
.tk201-cycle201 li+li::before{
  content:"";position:absolute;left:calc(-1 * clamp(14px,1.8vw,26px) / 2 - 4px);top:50%;
  width:9px;height:9px;border-right:2px solid rgba(243,168,196,.9);
  border-bottom:2px solid rgba(243,168,196,.9);transform:translateY(-50%) rotate(-45deg);
}
.tk201-cycle201 b{display:block;font-family:var(--mincho);font-size:clamp(19px,1.8vw,23px);color:#fff;line-height:1.4}
.tk201-cycle201 span{display:block;margin-top:8px;font-size:13.5px;color:#b6d0e5;line-height:1.6}
.tk201-cycle201 li.is-build{
  background:rgba(214,166,113,.26);border-color:rgba(240,203,162,.55);
}
.tk201-cycle201 li.is-build b{color:#fdf1e2}
.tk201-cycle201 li.is-build span{color:#f0d8bd}
.tk201-cycle201__loop{
  margin:18px 0 0;font-size:14.5px;line-height:1.85;color:#b6d0e5;text-align:center;
}

/* ============================================================ レスポンシブ */

@media (max-width:1180px){
  .tk200-values,.tk201-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,34px)}
}

@media (max-width:960px){
  .tk200-split{grid-template-columns:1fr;gap:30px}
  .tk200-split--rev .tk200-split__media{order:0}
  .tk200-split__media img{max-height:360px}
  .tk200-statement{grid-template-columns:1fr;gap:24px}
  .tk201-lead2{grid-template-columns:1fr;gap:24px}
  .tk201-lead2__body{padding-top:0}
  .tk201-cycle201{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tk201-cycle201 li:nth-child(3)::before{display:none}
}

@media (max-width:720px){
  .tk200-h2{font-size:clamp(24px,6.6vw,31px);line-height:1.48}
  .tk200-lead,.tk201-intro__body{font-size:17px;line-height:1.95}
  .tk200-pbody,.tk200-statement p{font-size:16px;line-height:1.95}
  .tk200-values,.tk201-values{grid-template-columns:1fr;gap:26px}
  .tk200-timber-foot{gap:18px}
  .tk200-btn{width:100%;max-width:360px}
  .tk200-pillars>li{grid-template-columns:auto 1fr;gap:14px;padding:22px 0}
  .tk200-pillars h3{font-size:20px}
  .tk200-pillars .tk200-tag{font-size:15px}
  .tk201-cycle201{grid-template-columns:1fr;gap:12px}
  .tk201-cycle201 li{padding:18px 16px}
  .tk201-cycle201 li+li::before,
  .tk201-cycle201 li:nth-child(3)::before{
    display:block;left:50%;top:-11px;transform:translateX(-50%) rotate(45deg);
  }
  .tk201-bleed img{height:clamp(190px,46vw,240px)}
  .tk200-note{padding:13px 15px;font-size:14px}
}

@media (prefers-reduced-motion:reduce){
  .tk200-btn{transition:none}
}

/* ------------------------------------------- Phase201：TOP スリム化の部品 */

/* 事業カードの代表キーワード（本文を減らし、写真・用途名・キーワードを主役に） */
.tk201-kw{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.tk201-kw li{
  padding:5px 11px;border-radius:3px;background:#eef4f9;border:1px solid #dbe6ef;
  font-size:13px;font-weight:700;color:#2c4f6e;line-height:1.5;
}

/* 続きを見るリンク列 */
.tk201-more-links{
  display:flex;flex-wrap:wrap;gap:10px 30px;margin:18px 0 0;
}

/* ワークフローを3ステップへ圧縮したときのグリッド */
.workflow41-steps--3{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:none;gap:clamp(14px,1.7vw,24px)}
.workflow41-steps--3>.workflow41-step{grid-area:auto;min-height:0;padding:44px 22px 24px}
@media (max-width:1180px){
  .workflow41-steps--3{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:none;max-width:none}
  .workflow41-steps--3>.workflow41-step{grid-area:auto}
}
@media (min-width:721px) and (max-width:1180px){
  .workflow41-steps--3{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:none;max-width:none;margin-left:0;margin-right:0}
  .workflow41-steps--3>.workflow41-step{grid-area:auto;padding:40px 18px 20px}
}
@media (max-width:720px){
  .workflow41-steps--3{grid-template-columns:1fr;grid-template-areas:none}
  .workflow41-steps--3>.workflow41-step{grid-area:auto}
  .tk201-kw li{font-size:12.5px}
  .tk201-more-links{flex-direction:column;gap:10px}
}

/* ----------------------------- Phase201：スマホTOPの縦長対策（PCは不変） */
@media (max-width:720px){
  /* 事業カード：写真を横長に、本文の行間を締める（読み取り文字サイズは維持） */
  .cards19--top .card19>img{aspect-ratio:21/9}
  .cards19--top .card19-body{padding-top:22px;padding-bottom:20px}
  .cards19--top .card19 p{line-height:1.78}
  .cards19--top{gap:14px}

  /* 国産材の4価値：単純な縦積みをやめ、2列に */
  .tk200-timber-sec .tk200-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
  .tk200-timber-sec .tk200-values h3{font-size:19px}
  .tk200-timber-sec .tk200-values p{font-size:14.5px;line-height:1.85}
  .tk200-timber-sec .tk200-values>li{padding-top:16px}
}
@media (max-width:430px){
  .tk200-timber-sec .tk200-values{gap:20px 14px}
}

/* ---------------------------------------- Phase201：ABOUT の余白と脱カード */

/* 章ごとの余白を大きく（ABOUT ページのみ） */
.tk201-airy .section19{padding-top:var(--tk-gap);padding-bottom:var(--tk-gap)}

/* 写真＋大見出し＋短文の行（カード連続を解消） */
.tk201-rows{display:grid;gap:clamp(48px,5.5vw,84px)}
.tk201-rownum{
  display:block;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:700;
  font-size:26px;line-height:1;color:var(--tk-pink-deep);letter-spacing:.06em;margin:0 0 12px;
}
.tk201-rowtitle{
  margin:0 0 16px;font-family:var(--mincho);font-weight:700;
  font-size:clamp(23px,2.3vw,31px);line-height:1.45;color:var(--tk-navy);letter-spacing:.03em;
}

/* ONE WINDOW の3項目：枠線カードをやめ、上罫のみに */
.about41-window__pillars article{
  background:transparent;border:0;border-top:2px solid var(--tk-navy);
  border-radius:0;padding:18px 0 0;
}
.about41-window__pillars{gap:clamp(20px,2.4vw,32px)}
.about41-window__pillars p{font-size:15.5px;line-height:1.95}

/* 拠点の地図を大きく見せる */
.office23-map.tk201-map-lg img{max-height:none;width:100%}
@media (min-width:961px){
  .office23-grid:has(.tk201-map-lg){grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}
}

@media (max-width:720px){
  .tk201-rows{gap:38px}
  .tk201-rownum{font-size:22px;margin-bottom:8px}
  .about41-window__pillars article{padding-top:15px}
}

/* --------------------------------------- Phase201：BUSINESS の情報量調整 */

/* 電気工事のグループ連携を本文内で明確に */
.tk201-inline-note{
  display:inline-block;margin-top:10px;font-size:14.5px;line-height:1.85;
  font-weight:700;color:#7c5a33;
}

/* スマホでは施工フローを要約表示にする（「次の工程へ」のみ残す／JS不要） */
@media (max-width:720px){
  .flow26-meta .tk201-meta-detail{display:none}
  .flow26-step p{line-height:1.85}
}

/* ============================================================================
   Phase201 タイポグラフィ基準
   PC本文は16px以上／リード18〜20px相当／14px未満を常用しない
   （英字ラベル・著作権表記など純粋なラベルは12px以上で許容）
   ============================================================================ */

@media (min-width:721px){
  /* 本文 */
  .card19 p{font-size:16px;line-height:1.9}
  .strengths42-head p{font-size:16.5px;line-height:1.95}
  .sns24-copy p{font-size:16px;line-height:1.95}
  .workflow41-step>p,.workflow41-corehead p{font-size:15px;line-height:1.8}
  .flow26-meta dd{font-size:15.5px}
  .note19{font-size:15.5px}
  .office23-desc,.office40-desc,.group52-lead,.office43-contact__area{font-size:16px}
  .entry26 p,.entry26-head>p{font-size:16px;line-height:1.95}
  .entry26-note{font-size:15.5px}
  .group52-card__business{font-size:15px}
  .group52-card__address{font-size:14px}
  .contact-note{font-size:15px}
  .workflow41-note{font-size:14px}
  .proj19 .copy p,.proj19-spec dd,.trackrecord19-item dd{font-size:15.5px}

  /* リード文 */
  .sechead19 .lead,.proj19-head .lead{font-size:18px;line-height:1.85}
}
@media (min-width:961px){
  .sechead19 .lead,.proj19-head .lead{font-size:18.5px}
}

/* 極端に小さいラベルの底上げ（可読性） */
.trackrecord19-tag{font-size:12px}
.merit24-k{font-size:12px}
.entry26-qr figcaption{font-size:14px}
.office23-kicker span{font-size:12px}

/* スマホ側の本文下限 */
@media (max-width:720px){
  .strengths42-head p,.sns24-copy p{font-size:15.5px;line-height:1.9}
  .workflow41-step>p{font-size:14.5px}
  .workflow41-note{font-size:13.5px}
}

/* Phase201：コントラストAA未満だった既存要素の色調整（形・配置は変更しない） */
.about41-window__pillars article>span{color:var(--tk-pink-deep)}   /* 3.92 -> 5.47 */
.trackrecord19-tag{color:#526a80}                                   /* 3.95 -> 5.63 */
.group52-card__address{color:#526a80}                               /* 4.14 -> 5.63 */

/* ============================================================================
   Phase184 由来の不具合修正（2件）— デザインは変更せず意図された挙動を復帰
   ============================================================================ */

/* [FIX-1] 追従ヘッダーが機能していなかった問題。
   Phase184 の `html,body{overflow-x:hidden}` が html をスクロールコンテナ化し、
   .site-header の position:sticky を無効化していた（PC・スマホとも追従せず、
   スマホではスクロール後に MENU ボタンへ到達できない）。
   overflow-x:clip は同じ横はみ出し防止のままスクロールコンテナを作らない。 */
html,body{max-width:100%;overflow-x:clip}

/* [FIX-2] スマホ横画面でメニュー先頭項目に到達できなかった問題。
   PC 用の .nav{justify-content:flex-end} が縦並びのモバイルメニューでも効き、
   はみ出した先頭リンクが上方向へ流れてスクロールできなくなっていた。 */
@media (max-width:960px){
  .nav{justify-content:flex-start}
}

/* ============================================================================
   TAKAKURA V47 / Phase202 — FINAL VISUAL POLISH LAYER
   ----------------------------------------------------------------------------
   Phase184 の基礎スタイル、Phase200/201 のブランドレイヤーには手を加えず、
   このレイヤーのみを追加する。接頭辞は tk202-。!important は使用しない。
   方針：情報を足さず、要素を減らし、文字を大きく、写真を強く、余白を十分に。
   ============================================================================ */

/* ---------------------------------------------------- 1. デザイントークン */
:root{
  /* 章と章のあいだの余白（サイト共通） */
  --tk-gap:clamp(76px,7.8vw,128px);
  /* タイポグラフィ・スケール */
  --fs-lead:clamp(17.5px,1.5vw,20px);   /* リード文 */
  --fs-body:16.5px;                     /* 本文 */
  --fs-body-sm:16px;                    /* 補助本文 */
  --fs-small:14px;                      /* 注釈 */
  --fs-label:12.5px;                    /* 英字ラベル・見出し上のキッカー */
  --fs-ui:14.5px;                       /* ボタン・ナビ等のUI文字 */
  --lh-ja:1.9;                          /* 日本語本文の行送り（1.75〜1.95） */
}
@media (max-width:960px){ :root{ --fs-body:16.5px; --fs-ui:15px } }
@media (max-width:720px){
  :root{
    --tk-gap:clamp(58px,13vw,80px);
    --fs-lead:17px; --fs-body:16px; --fs-body-sm:16px; --fs-small:14px; --fs-ui:15px;
  }
}

/* ------------------------------------------- 2. max-width をページ間で統一 */
/* Phase201 まで WORKFLOW セクションだけ 1280px で他は 1240px だった */
.workflow41-wrap{max-width:none}
.workflow41-head{max-width:min(1040px,100%)}

/* ------------------------------- 3. 行送りを日本語本文の基準（1.75〜1.95）へ */
.tk200-pbody,
.tk200-statement p,
.tk201-intro__body,
.tk200-values p,.tk201-values p,
.workflow41-head>p:last-child{line-height:var(--lh-ja)}
.tk200-pbody{font-size:var(--fs-body)}

/* --------------------------------- 4. 小さすぎる文字の是正（11px以下の撲滅） */
/* 4-a. 注釈・ラベル：12px を下限にする */
.footer-phone-item small,
.trackrecord19-location small,
.trackrecord19-period small,
.trackrecord19-meta small{font-size:12px}
.group52-card__eyebrow{font-size:12px;letter-spacing:.12em}
.office23-map::before{font-size:12px;letter-spacing:.26em}
.merit24-k,.trackrecord19-tag{font-size:12px}
.tk202-grouphead__k,.tk202-three__k,.tk202-subtech__k{font-size:var(--fs-label)}

/* 4-b. 注釈本文：14px 前後へ */
.workflow41-note,.tk200-note,.note19,.entry26-note{font-size:var(--fs-small);line-height:1.8}
.form-status,.contact-note{font-size:15.5px;line-height:1.85}

/* 4-c. UI（ボタン・リンク）：PC 14.5px / スマホ 15px を下限にする */
.btn,.sns-link,.footer-btn,.project-link,.mini-link{font-size:var(--fs-ui)}
.menu-btn{font-size:13px}
.copyright,.footer-sns{font-size:14px}
.vision-tags span{font-size:14px}
@media (max-width:420px){
  .btn,.project-link,.footer-btn{font-size:15px}
  .mobile-header-contact{font-size:12.5px;padding:0 8px}
  .menu-btn{font-size:12px;min-width:48px}
  .vision-tags span{font-size:13.5px;padding:7px 10px}
}

/* 4-d. 本文：PCで小さく見えていた箇所を 16px 以上へ */
.flow26-main p,.flow26-main>p{font-size:var(--fs-body);line-height:var(--lh-ja)}
.office23-desc,.proj19 p,.route19-card p,.card19-list li,.merit24-list p,
.sidebar p,.sidebar li,.proj19-spec dd,.flow26-meta dd{font-size:var(--fs-body-sm)}
.page-hero p{font-size:var(--fs-lead);line-height:1.85}
@media (max-width:720px){
  .page-hero p{font-size:16px;line-height:1.85}
  .sechead19 .desc{font-size:16px}
  .vision-statement>div>p:last-of-type{font-size:16px}
  .about19-note span{font-size:15.5px;line-height:1.85}
  .hero19-facts li{font-size:16px}
  .sns24-tile small{font-size:14px}
  .flow26-meta dd{font-size:16px}
}

/* ----------------------------------- 5. 強み01：分断 ⇄ 一体運営（1つの比較図） */
.tk202-vs{display:grid;gap:clamp(20px,2.4vw,30px);margin:0 0 clamp(40px,4.4vw,62px)}
@media (min-width:861px){ .tk202-vs{grid-template-columns:1fr 1fr;gap:clamp(24px,2.6vw,34px)} }
.tk202-vs__card{
  min-width:0;display:flex;flex-direction:column;
  padding:clamp(24px,2.6vw,34px);background:var(--tk-soft);border-top:4px solid #b9cbda;
}
.tk202-vs__card--after{background:#eaf3fa;border-top-color:var(--tk-pink-deep)}
.tk202-vs__label{
  margin:0 0 20px;font-size:clamp(17px,1.5vw,20px);font-weight:800;
  letter-spacing:.02em;color:#3d5265;
}
.tk202-vs__label--accent{color:var(--tk-navy)}
.tk202-vsflow{margin:0;padding:0;list-style:none;display:grid;gap:14px;flex:1 1 auto;align-content:start}
.tk202-vsflow li{
  background:#fff;border:1px solid #cfdce7;padding:18px 16px;
  font-size:17px;font-weight:700;line-height:1.5;color:#27435f;text-align:center;
}
.tk202-vsone{
  flex:1 1 auto;display:grid;place-items:center;text-align:center;
  padding:clamp(30px,3.4vw,46px) clamp(18px,2.2vw,26px);background:var(--tk-navy);
}
.tk202-vsone strong{
  font-family:var(--mincho);font-weight:700;color:#fff;
  font-size:clamp(20px,2vw,26px);line-height:1.65;letter-spacing:.04em;
}
.tk202-vs__note{margin:20px 0 0;font-size:var(--fs-body-sm);line-height:1.85;color:var(--tk-muted)}
.tk202-vs__note--accent{color:#2a5b86}

.tk202-gains{margin:0;padding:0;list-style:none;display:grid;gap:clamp(24px,2.8vw,36px)}
@media (min-width:861px){ .tk202-gains{grid-template-columns:repeat(3,minmax(0,1fr))} }
.tk202-gains>li{min-width:0;padding-top:22px;border-top:3px solid var(--tk-navy)}
.tk202-gains b{
  display:block;font-family:var(--mincho);font-weight:700;
  font-size:clamp(22px,2.2vw,28px);line-height:1.45;color:var(--tk-navy);margin-bottom:12px;
}
.tk202-gains p{margin:0;font-size:var(--fs-body-sm);line-height:var(--lh-ja);color:var(--tk-muted)}

/* --------------------------------------- 6. 強み02：設計 → 構造 → 施工（3工程） */
.tk202-three{margin:0 0 clamp(26px,3vw,38px);padding:0;list-style:none;display:grid;gap:clamp(26px,3vw,40px)}
@media (min-width:861px){ .tk202-three{grid-template-columns:repeat(3,minmax(0,1fr))} }
.tk202-three>li{
  position:relative;min-width:0;background:#fff;border:1px solid #d7e2ec;
  padding:clamp(26px,2.8vw,36px) clamp(22px,2.4vw,30px);
}
.tk202-three__k{display:block;font-weight:800;letter-spacing:.2em;color:var(--tk-navy-3);margin-bottom:12px}
.tk202-three b{
  display:block;font-family:var(--mincho);font-weight:700;
  font-size:clamp(30px,3.2vw,42px);line-height:1.3;color:var(--tk-navy);margin-bottom:14px;
}
.tk202-three p{margin:0;font-size:var(--fs-body-sm);line-height:var(--lh-ja);color:var(--tk-muted)}
.tk202-three>li+li::before{
  content:"";position:absolute;width:12px;height:12px;
  border-top:2px solid var(--tk-pink-deep);border-right:2px solid var(--tk-pink-deep);
}
@media (min-width:861px){
  .tk202-three>li+li::before{left:calc(-1 * clamp(13px,1.5vw,20px) - 6px);top:50%;transform:translateY(-50%) rotate(45deg)}
}
@media (max-width:860px){
  .tk202-three>li+li::before{left:50%;top:calc(-1 * clamp(13px,1.5vw,20px) - 6px);transform:translateX(-50%) rotate(135deg)}
}
.tk202-subtech{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0}
.tk202-subtech__k{font-weight:800;letter-spacing:.14em;color:#64798d}
.tk202-subtech>span:not(.tk202-subtech__k){
  font-size:14.5px;font-weight:700;color:#3d5265;background:#eef3f8;padding:8px 13px;
}

/* --------------------------- 8. BUSINESS：スマホの工程を「タイトル＋一文＋展開」 */
/* HTML は details[open] で出力し、JS が無い環境では全文が開いたまま表示される。 */
.tk202-step{padding:0}
.tk202-sum{
  display:block;list-style:none;cursor:pointer;
  padding:24px 28px 26px;padding-right:74px;position:relative;
}
.tk202-sum::-webkit-details-marker{display:none}
.tk202-sum::marker{content:""}
.tk202-sum h3{font-size:22px;line-height:1.4;color:var(--tk-navy);margin:0 0 12px;padding-right:0}
.tk202-sumrow{display:flex;align-items:flex-start;gap:16px}
.tk202-brief{flex:1 1 auto;font-size:var(--fs-body);line-height:var(--lh-ja);font-weight:700;color:var(--tk-ink)}
.tk202-mark{
  flex:0 0 auto;position:absolute;right:26px;bottom:24px;
  width:32px;height:32px;border:1px solid #c2d2df;background:#fff;
}
.tk202-mark::before,.tk202-mark::after{
  content:"";position:absolute;left:50%;top:50%;background:var(--tk-navy);
  transform:translate(-50%,-50%);
}
.tk202-mark::before{width:13px;height:2px}
.tk202-mark::after{width:2px;height:13px;transition:transform .16s ease}
.tk202-step[open] .tk202-mark::after{transform:translate(-50%,-50%) scaleY(0)}
.tk202-step>p{margin:0;padding:0 28px 26px;font-size:var(--fs-body);line-height:var(--lh-ja);color:var(--ink-body)}
.tk202-sum:hover h3{color:var(--tk-navy-3)}
@media (prefers-reduced-motion:reduce){ .tk202-mark::after{transition:none} }
@media (max-width:960px){
  .tk202-sum{padding:20px 20px 22px;padding-right:70px}
  .tk202-step>p{padding:0 20px 22px}
  .tk202-mark{right:18px;bottom:20px}
}
@media (max-width:720px){
  .tk202-sum{padding:18px 18px 20px;padding-right:66px}
  .tk202-sum h3{font-size:19px;padding-right:34px}
  .tk202-brief{font-size:16px}
  .tk202-step>p{padding:0 18px 20px;font-size:16px}
  .tk202-mark{width:38px;height:38px;right:14px;bottom:16px}
}
@media (max-width:420px){
  .tk202-sum{padding:16px 15px 18px;padding-right:60px}
  .tk202-step>p{padding:0 15px 18px}
  .tk202-mark{right:11px;bottom:14px}
}

/* ------------------------------------------ 9. ABOUT：章（A / B / C）の区切り */
.tk202-grouphead{padding:clamp(60px,6.4vw,104px) 0 0}
.tk202-grouphead>.wrap{border-top:2px solid var(--tk-navy);padding-top:clamp(20px,2.2vw,30px)}
.tk202-grouphead__k{margin:0 0 10px;font-weight:800;letter-spacing:.24em;color:var(--tk-pink-deep)}
.tk202-grouphead__t{
  margin:0;font-family:var(--mincho);font-weight:700;letter-spacing:.05em;
  font-size:clamp(27px,3.2vw,42px);line-height:1.35;color:var(--tk-navy);
}
.tk202-grouphead + section.section19,
.tk202-grouphead + section.tk200-sec{padding-top:clamp(30px,3.4vw,50px)}

/* ------------------------------------------- 10. TOP：事業カードの視線の流れ */
/* 用途（見出し） → 工種（キーワード） → 詳細（1文） */
.cards19--top .card19-body .tk201-kw{margin:0 0 16px}
.cards19--top .card19-body>p{margin:0;font-size:var(--fs-body-sm);line-height:var(--lh-ja)}

/* -------------------------------- 11. TOP：窓口セクションのスマホ過密を解消 */
@media (max-width:720px){
  .workflow44-people{display:none}
  .workflow44-brand img{display:none}
  .workflow41-customer{width:min(280px,86%);padding:11px 16px;font-size:19px;min-height:52px}
  .workflow41-exchange{gap:10px;font-size:14px;margin:6px auto}
  .workflow41-hub{padding:16px 18px;gap:8px}
  .workflow44-brand strong{font-size:24px}
  .workflow41-hub>span{font-size:14.5px;line-height:1.7}
  .workflow41-note{margin-top:16px}
}

/* ------------------------------------------------ 12. フォームのタップ領域 */
.form input,.form select{min-height:52px}
.form input[type="checkbox"]{min-height:0;width:22px;height:22px}
.form .checkline{display:flex;align-items:flex-start;gap:10px;min-height:44px}
.form label{font-size:15.5px}

/* --------------------------------------------- 13. 見出しの流動調整（320px） */
@media (max-width:420px){
  .tk202-grouphead__t{font-size:clamp(24px,7vw,28px)}
  .tk202-three b{font-size:clamp(26px,8vw,32px)}
  .tk202-vsone strong{font-size:clamp(18px,5.4vw,21px)}
  .tk202-gains b{font-size:clamp(20px,6vw,24px)}
}

/* ------------------------- 14. スマホの情報密度：図解ブロックを詰める（Phase202 QA） */
@media (max-width:720px){
  /* 国産材の4価値・循環フローは2列に組み替える（PC版の単純縦積みにしない） */
  .tk200-values,.tk201-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
  .tk201-values>li{padding-top:16px}
  .tk201-values h3{font-size:19px}
  .tk201-values p{font-size:15.5px;line-height:1.85}
  .tk201-cycle201{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tk201-cycle201 li{padding:16px 14px}
  .tk201-cycle201 li+li::before,
  .tk201-cycle201 li:nth-child(3)::before{display:none}
  .tk201-cyclefig{margin-bottom:34px}

  /* 強み01 */
  .tk202-vs{gap:16px;margin-bottom:34px}
  .tk202-vs__card{padding:20px 18px}
  .tk202-vs__label{margin-bottom:16px;font-size:17px}
  .tk202-vsflow{gap:10px}
  .tk202-vsflow li{padding:15px 14px;font-size:16.5px}
  .tk202-vsone{padding:26px 16px}
  .tk202-vs__note{margin-top:16px;font-size:15.5px;line-height:1.8}
  .tk202-gains{gap:22px}
  .tk202-gains>li{padding-top:16px;border-top-width:3px}
  .tk202-gains b{font-size:21px;margin-bottom:8px}
  .tk202-gains p{font-size:15.5px;line-height:1.85}

  /* 強み02 */
  .tk202-three{gap:22px;margin-bottom:22px}
  .tk202-three>li{padding:20px 18px}
  .tk202-three__k{margin-bottom:8px}
  .tk202-three b{font-size:28px;margin-bottom:10px}
  .tk202-three p{font-size:15.5px;line-height:1.85}
  .tk202-subtech{gap:8px}
  .tk202-subtech>span:not(.tk202-subtech__k){font-size:14px;padding:7px 11px}

  /* 強み03 */

  /* 柱の本文と写真 */
  .tk201-lead2{gap:18px}
  .tk200-pbody{margin-bottom:16px}
  .tk201-timberhead{margin-bottom:30px}
  .tk201-timberphoto{margin-bottom:28px}
}
@media (max-width:359px){
  .tk200-values,.tk201-values,.tk201-cycle201{grid-template-columns:1fr}
}
@media (max-width:720px){
  :root{ --tk-gap:clamp(54px,13vw,76px) }
  .tk202-vsone{padding:22px 16px}
  .tk200-note{margin-top:18px}
}
@media (max-width:720px){
  .tk202-grouphead{padding-top:40px}
  .tk202-grouphead>.wrap{padding-top:16px}
  .tk202-grouphead__k{margin-bottom:8px}
  .tk202-grouphead + section.section19,
  .tk202-grouphead + section.tk200-sec{padding-top:26px}
  .tk201-rows{gap:34px}
}
@media (min-width:721px){
  .tk201-rows{gap:clamp(44px,4.8vw,70px)}
}
@media (max-width:720px){
  .tk202-grouphead{padding-top:32px}
  .tk202-grouphead + section.section19,
  .tk202-grouphead + section.tk200-sec{padding-top:20px}
  .tk201-rows{gap:26px}
  .tk201-rows .tk200-split{gap:20px}
  .tk201-rownum{margin-bottom:6px}
  .about-lead19{margin-bottom:34px}
}
@media (max-width:720px){
  .info46-scope-section .trade24-grid{gap:8px}
  .office23-desc{margin-bottom:22px}
}

/* --------- 15. スマホ：拡大した本文を行送りの最適化で吸収（1.75〜1.85 の範囲内） */
@media (max-width:720px){
  /* 15.5px は基準内。実績一覧は情報量が多いため下限側に置く */
  .proj19 p,.proj19-spec dd{font-size:15.5px}
  .proj19-spec dd{line-height:1.7}
}

/* --------------------------- 16. QAで検出した不具合の是正（Phase184由来を含む） */
/* [FIX-3] 1カラム時の grid が min-content で膨らみ、320px でカードからはみ出していた */
@media (max-width:960px){
  .flow26-card{grid-template-columns:minmax(0,1fr)}
}
.tk202-sumrow{min-width:0}
.tk202-brief{min-width:0;overflow-wrap:anywhere}

/* [FIX-4] タップ領域 44px 未満だった要素（ヘッダーロゴ・フッター導線・電話番号） */
/* Phase184 の @media(max-width:720px){.site-header a,.site-footer a{min-height:0}}
   に負けていたため、同等以上の詳細度で指定する。 */
@media (max-width:960px){
  .site-header .brand{min-height:44px}
  .site-footer .footer-nav a,
  .site-footer .footer-sns{display:inline-flex;align-items:center;min-height:44px}
  .site-footer .footer-phone-item a,
  .office23-section .office-compact-tel,
  a.office-compact-tel{display:inline-flex;align-items:center;min-height:44px}
}

/* --- 17. スマホ：タップ領域拡大分をレイアウトで吸収（ページ長を Phase201 以下に） */
@media (max-width:720px){
  .site-footer .footer-nav{gap:4px 18px}
  .footer-bottom{gap:6px}
  .vision-statement{padding:24px 20px}
  .tk202-gains{gap:20px}
  .tk202-vs{margin-bottom:30px}
}
@media (max-width:960px){
  .office43-contact__cards a,
  .office43-summary__link,
  .privacy-contact a[href^="tel:"],
  main a[href^="tel:"]{display:inline-flex;align-items:center;min-height:44px}
  .form input[type="checkbox"]{width:24px;height:24px}
}

/* ------------------------- 18. コントラストと 320px の不自然な改行（QAで検出） */
/* [FIX-5] 白背景上のピンク矢印が 3.92（AA 未達）だった */
.office23-arrow,
.office23-link span[aria-hidden="true"]{color:var(--tk-pink-deep)}
/* [FIX-6] 補足技術ラベルが 4.23（AA 未達）だった */
.tk202-subtech__k{color:#55687b}

@media (max-width:420px){
  /* 「施工実績」が「施工実／績」と割れていた */
  h2.title{white-space:nowrap}
  /* ボタン末尾の「→」だけが次行に落ちていた */
  .tk200-btn{padding-left:14px;padding-right:14px;font-size:15px}
  /* 「…つながる」の「る」だけが次行に落ちていた */
  .tk202-vsone{justify-items:stretch}
  .tk202-vsone strong{display:block;font-size:clamp(16px,4.9vw,19px);line-height:1.6}
}
@media (max-width:420px){
  /* 「説明会について問い合わせる →」の矢印だけが次行に落ちていた */
  .btn{padding-left:12px;padding-right:12px}
}
@media (max-width:420px){
  /* 「施工実績一覧を見る →」が2行に割れていた */
  .proj19-head{flex-wrap:wrap}
  .proj19-head .project-link{flex:0 0 auto;white-space:nowrap}
}

/* ------------------- 19. PC本文の下限を 16px に統一（QAで 15〜15.5px を検出） */
@media (min-width:961px){
  .strengths42-head p,
  .workflow41-hub>span,
  .workflow41-step p,
  .tk200-values p,.tk201-values p,
  .about41-window__pillars article p,
  .about41-window__after p,
  .group52-card__business,
  .entry26-sns p,
  .recruit-form-head p,
  .contact-note{font-size:16px;line-height:var(--lh-ja)}
}
.office43-contact__area,.office43-contact__area span{font-size:15px;line-height:1.8}
.about19-note span{font-size:15.5px}
@media (min-width:961px){ .about19-note span{font-size:16px;line-height:1.85} }

/* --------------- 20. モバイル本文の下限を 15.5px に統一（QAで 14.5〜15px を検出） */
@media (max-width:720px){
  .about19-body p,
  .sechead19 .lead,.sechead19 .desc,
  .proj19-head .desc,.proj19-head .lead,
  .tk200-pillars p,
  .strengths42-head p,
  .workflow41-hub>span,
  .workflow41-step p,
  .tk200-values p,
  .tk201-cycle201__loop,
  .about41-window__after p,
  .about41-window__pillars article p,
  .group52-lead,.group52-card__business,
  .history180-lead,
  .office40-desc,
  .office43-contact__area,.office43-contact__area span,
  .entry26 p,.entry26-sns p,.recruit-form-head p,
  .recruit19-copy p,
  .card19 p,
  .trackrecord19-period strong,.trackrecord19-location strong{font-size:15.5px;line-height:1.85}
}
/* チェックボックス本体は 24px。タップ領域はラベル全体（44px 以上）が担う */
.form .checkline input[type="checkbox"]{flex:0 0 24px;width:24px;height:24px}

/* ============================================================================
   TAKAKURA V47 / Phase203 — FINAL QA & POLISH LAYER
   ----------------------------------------------------------------------------
   Phase202の設計を維持したまま、可読性・図解・固定ヘッダー・アクセシビリティ・
   レスポンシブ・技術品質だけを最終調整する。接頭辞は tk203-。!important 不使用。
   ============================================================================ */

/* ---------------------------------- 1. スキップリンク（通常時は確実に非表示） */
/* transform に加えて clip-path でも隠し、スクロール位置やキャプチャ条件に
   左右されず「キーボードfocus時のみ表示」になるようにする。 */
.skip-link{clip-path:inset(50%)}
.skip-link:focus{clip-path:none}
.skip-link:focus-visible{clip-path:none}

/* --------------------------- 2. アンカー移動先が固定ヘッダーに隠れないように */
/* ヘッダー実測値（PC 81px / SP 77px）に対して余裕を持たせる */
:root{--tk-anchor-offset:96px}
@media (max-width:960px){ :root{--tk-anchor-offset:92px} }
[id]{scroll-margin-top:var(--tk-anchor-offset)}
#main-content{scroll-margin-top:var(--tk-anchor-offset)}

/* ------------------------ 3. 強み03：単能工 ⇄ 多能工（引継ぎ・待ちを最優先表示） */
.tk203-lanes{margin:clamp(40px,4.5vw,66px) 0 0;display:grid;gap:clamp(16px,1.8vw,24px)}
.tk203-lane{min-width:0;padding:clamp(20px,2.2vw,28px) clamp(18px,2vw,26px);background:var(--tk-soft)}
.tk203-lane--after{background:#eaf3fa}
.tk203-lane__label{
  margin:0 0 16px;font-size:clamp(16.5px,1.4vw,19px);font-weight:800;
  letter-spacing:.02em;color:#3d5265;
}
.tk203-lane__label--accent{color:var(--tk-navy)}
.tk203-bar{margin:0;padding:0;list-style:none;display:flex;align-items:stretch}
.tk203-bar li{display:flex;align-items:center;justify-content:center;text-align:center;min-width:0}
.tk203-bar .is-step{
  flex:1 1 0;padding:18px 8px;background:#fff;border:1px solid #cfdce7;
  font-size:16.5px;font-weight:700;line-height:1.4;color:#27435f;
}
/* 「引継ぎ・待ち」＝工程が途切れている場所。斜線と破線で流れを断ち切って見せる */
.tk203-bar .is-wait{
  flex:0 0 auto;margin:0 7px;padding:0 13px;
  background:repeating-linear-gradient(135deg,#a9c0d4 0 3px,#e8f0f7 3px 9px);
  border-top:2px dashed #6b8aa6;border-bottom:2px dashed #6b8aa6;
}
.tk203-bar .is-wait span{
  display:inline-block;padding:3px 7px;background:#f4f8fb;
  font-size:15px;font-weight:800;line-height:1.35;letter-spacing:.02em;color:#24425e;
}
.tk203-bar--joined .is-step{
  background:var(--tk-navy);border-color:var(--tk-navy);color:#fff;
  border-right:1px solid rgba(255,255,255,.28);
}
.tk203-bar--joined .is-step:last-child{border-right-color:var(--tk-navy)}
.tk203-conclusion{
  margin:clamp(28px,3.2vw,44px) 0 0;text-align:center;
  font-family:var(--mincho);font-weight:700;letter-spacing:.04em;
  font-size:clamp(29px,3.8vw,48px);line-height:1.4;color:var(--tk-navy);
}
@media (max-width:720px){
  /* 箱を縦に積まず、横1行のまま圧縮して1画面に収める */
  .tk203-lanes{margin-top:30px;gap:12px}
  .tk203-lane{padding:16px 14px}
  .tk203-lane__label{margin-bottom:12px;font-size:16.5px}
  .tk203-bar .is-step{padding:16px 4px;font-size:16px}
  .tk203-bar .is-wait{margin:0 5px;padding:0 7px}
  .tk203-bar .is-wait span{padding:3px 5px;font-size:14px}
  .tk203-bar .is-wait i{display:none}          /* 「引継ぎ・」を省き「待ち」だけに */
  .tk203-conclusion{margin-top:22px}
}
@media (max-width:360px){
  .tk203-bar .is-step{padding:14px 2px;font-size:15px}
  .tk203-bar .is-wait{margin:0 3px;padding:0 4px}
  .tk203-bar .is-wait span{padding:2px 4px;font-size:13.5px}
}
@media (max-width:420px){ .tk203-conclusion{font-size:clamp(26px,7.6vw,31px)} }

/* ------------------- 4. 強み04：スマホで循環の順序（01→04）を明示する */
@media (max-width:720px){
  .tk201-cycle201{counter-reset:tkcyc}
  .tk201-cycle201 li{counter-increment:tkcyc;position:relative;padding-top:32px}
  .tk201-cycle201 li::after{
    content:"0" counter(tkcyc);position:absolute;left:14px;top:11px;
    font:italic 700 13.5px/1 Georgia,"Times New Roman",serif;letter-spacing:.06em;color:#a8cbe9;
  }
  .tk201-cycle201 li.is-build::after{color:#f0d8bd}
}

/* ------------------------------- 5. BUSINESS：開閉ボタンの意味を視覚的に示す */
/* 要点（タイトル＋一文）を先に全幅で読ませ、開閉ボタンはその下の右端に置く */
.tk202-sumrow{flex-wrap:wrap;justify-content:flex-end;gap:0}
.tk202-brief{flex:1 1 100%}
.tk203-toggle{
  flex:0 0 auto;margin-top:12px;
  display:inline-flex;align-items:center;gap:9px;
}
.tk203-toggle__t{font-size:13.5px;font-weight:800;letter-spacing:.06em;color:#4a6076}
.tk203-toggle__t--close{display:none}
.tk202-step[open] .tk203-toggle__t--open{display:none}
.tk202-step[open] .tk203-toggle__t--close{display:inline}
.tk203-toggle .tk202-mark{position:relative;right:auto;bottom:auto}
.tk202-sum:hover .tk203-toggle__t{color:var(--tk-navy-3)}
/* 開閉ボタン全体を44px以上のタップ領域にする */
.tk203-toggle{min-height:44px}
.tk202-sum{padding-right:28px}
@media (max-width:960px){ .tk202-sum{padding-right:20px} }
@media (max-width:720px){
  .tk202-sum{padding-right:18px}
  .tk203-toggle{margin-top:10px;gap:8px}
}
@media (max-width:420px){
  .tk202-sum{padding-right:15px}
  .tk203-toggle__t{font-size:13px}
}

/* ------------- 6. BUSINESS：「次の工程へ」は本文より弱く（補足であることを示す） */
.flow26-meta dt{font-size:12.5px;font-weight:800;letter-spacing:.08em;color:#546a7f}
.flow26-meta dd{font-size:15px;font-weight:600;line-height:1.75;color:#4c6379}
.flow26-meta .is-next dd::before,.flow26-meta .is-last dd::before{color:currentColor}
@media (max-width:720px){ .flow26-meta dd{font-size:15px} }

/* ------------------------ 7. 通常本文は16px未満にしない（補助文・注記を除く） */
@media (max-width:720px){
  .about19-body p,
  .about19-note span,
  .sechead19 .lead,.sechead19 .desc,
  .proj19-head .lead,.proj19-head .desc,
  .tk200-pillars p,
  .strengths42-head p,
  .workflow41-hub>span,
  .workflow41-step p,
  .tk200-values p,.tk201-values p,
  .tk201-cycle201__loop,
  .about41-window__after p,
  .about41-window__pillars article p,
  .group52-lead,.group52-card__business,
  .history180-lead,
  .office40-desc,
  .office43-contact__area,.office43-contact__area span,
  .entry26 p,.entry26-sns p,.recruit-form-head p,
  .recruit19-copy p,
  .card19 p,
  .card19-list li,
  .proj19 p,.proj19-spec dd,
  .merit24-list p,
  .route19-card p,
  .sidebar p,.sidebar li,
  .sns24-copy p,
  .tk202-vs__note,.tk202-gains p,.tk202-three p,
  .vision-statement>div>p:last-of-type,
  .trackrecord19-period strong,.trackrecord19-location strong{font-size:16px;line-height:1.8}
  /* 注記は本文より一段小さく、ただし14px以上を保つ */
  .tk200-note,.note19,.workflow41-note,.entry26-note,.tk200-timber-note{font-size:14px;line-height:1.8}
}
.tk203-bar .is-wait span{font-style:normal}

/* PCでは開閉ラベルを出さないため、マークを要点行の右端にインラインで置く
   （行を増やさない＝Phase202のPCレイアウトを変えない） */
@media (min-width:961px){
  .tk202-sumrow{flex-wrap:nowrap;gap:18px}
  .tk202-brief{flex:1 1 auto}
  .tk203-toggle{margin-top:2px;min-height:0;align-self:flex-start}
}
@media (max-width:960px){
  .tk203-toggle{margin-top:8px}
  .tk202-sum{padding-bottom:18px}
}

/* --------- 8. 本文16px／行送り1.7〜1.9の最終適用（詳細度を上げて確実に効かせる） */
@media (max-width:720px){
  main .sechead19 .lead, main .sechead19 .desc,
  main .proj19-head .lead, main .proj19-head .desc,
  main .company19 .lead, main .company19 .desc,
  main .recruit19 .lead, main .recruit19 .desc,
  main .about19 .lead,
  main .strengths42 .strengths42-head p,
  main .workflow41-head > p,
  main .tk200-timber-sec .tk200-values p,
  main .tk200-values p, main .tk201-values p,
  main .history180 p,
  main .about41-window__head p,
  main .merit24-head p,
  main .proposal24-body p,
  main .about-lead19 p,
  main .office40-desc,
  main .hero19-facts li,
  main .company19-facts span, main .company19 .facts span{font-size:16px;line-height:1.85}
}
/* 行送りが 2.0 を超えていた本文を 1.85〜1.9 に収める（PC/SP共通） */
main .about-lead19 p,
main .about41-window__head p,
main .merit24-head p,
main .proposal24-body p,
main .office40-desc,
main .recruit19-copy p,
main .entry26-head p{line-height:1.88}

/* 詳細度の高い既存ルール（:last-child 等）に勝たせるための最終指定 */
main .strengths42 .strengths42-content .strengths42-head p{font-size:16.5px;line-height:1.88}
main .about41-window .about41-window__head > p:last-child{font-size:16.5px;line-height:1.88}
main .workflow41-section .workflow41-head > p:last-child{font-size:16.5px;line-height:1.88}
@media (max-width:720px){
  main .strengths42 .strengths42-content .strengths42-head p,
  main .about41-window .about41-window__head > p:last-child,
  main .workflow41-section .workflow41-head > p:last-child,
  main .company19 .meta33 span,
  main .company19-grid .meta33 span{font-size:16px;line-height:1.85}
}


/* ============================================================================
   TAKAKURA V47 / Phase204 — RELEASE CANDIDATE 技術修正
   ----------------------------------------------------------------------------
   Phase203のデザインはFREEZE。見た目を変える指定は入れない。
   実機で再現を確認した不具合のみを修正する。!important は使用しない。
   ============================================================================ */

/* [FIX-13] Safari で背景ぼかしが効かない（-webkit- 接頭辞が必要）
   見た目の差はごく小さいが、ヘッダー背景の意図（半透明＋ぼかし）を全ブラウザで揃える。 */
.site-header{-webkit-backdrop-filter:blur(10px)}

/* [FIX-14] Safari 15 以下で追従ヘッダーが止まる問題
   Phase200 FIX-1 は html,body を overflow-x:clip にして「横はみ出しは抑えるが
   スクロールコンテナは作らない」状態にしている。しかし overflow:clip は Safari 16 で
   実装されたため、Safari 15 以下ではこの宣言が無効になり、素の
   body{overflow-x:hidden} が復活して body がスクロールコンテナ化し、
   .site-header{position:sticky} が効かなくなる。
   実測（Chromiumで overflow-x:hidden を再現）：clip のとき header.top=0、
   hidden のとき header.top=-984 となり追従しないことを確認済み。
   全幅・全ページで horizontal overflow が 0 件であることを確認しているため、
   clip 非対応環境では overflow-x を visible に戻して sticky を優先する。 */
@supports not (overflow-x: clip){
  html,body{overflow-x:visible}
}


/* ===== Phase206: approved SNS illustration normalization =====
   2026-10-02: three user-approved illustrations share one 1591x989 canvas.
   Desktop/tablet: identical frame ratio, full artwork visible, no crop.
   Mobile: full-width natural ratio, no crop, no forced height. */
.sns24 .sns24-tile .thumb--illust{
  aspect-ratio:1591 / 989;
  background:#eef3f8;
  overflow:hidden;
}
.sns24 .sns24-tile .thumb--illust img{
  display:block;
  width:100%;
  height:100%!important;
  aspect-ratio:1591 / 989!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0;
}
@media (max-width:720px){
  .sns24 .sns24-tile .thumb--illust{
    width:100%;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:1591 / 989!important;
  }
  .sns24 .sns24-tile .thumb--illust img{
    width:100%;
    height:auto!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
  }
}


/* =========================================================
   Phase207 — comparison visual refinement
   対象A：一般的な分断 ⇄ たかくらの一体運営（strengths 強み01）
   対象B：単能工中心の進め方 ⇄ 多能工・マルチクラフター（strengths 強み03）

   設計方針：左右（上下）で「同じ形」を使い、違いを “線がつながっているか
   どうか” の一点に絞る。箱を増やさず、比較軸を1本にする。
   既存の tk202-vs* / tk203-bar* 系には手を加えず、新規 tk207-* のみで構成。
   優先度の強制上書きは使用しない。
   ========================================================= */

.tk207-vs,.tk207-lanes{
  --t7-dash:#9bb3c8;        /* 途切れた線 */
  --t7-plate:#d3dfe9;       /* 面の境界 */
  --t7-ink:#27435f;         /* 図中テキスト */
  --t7-sub:#52697f;         /* 小ラベル */
  --t7-onnavy:#b9d4ec;      /* ネイビー面上の補助色 */
}

/* =========================================================
   対象A：分断 ⇄ 一体運営
   同じ縦レールを左右に置き、左は途切れさせ、右はつなげる。
   ========================================================= */
.tk207-vs{
  display:grid;gap:clamp(30px,3.6vw,44px);
  max-width:1060px;margin:0 auto clamp(44px,4.8vw,66px);
}
@media (min-width:861px){
  .tk207-vs{grid-template-columns:.85fr clamp(26px,3vw,44px) 1.15fr;gap:clamp(20px,2.2vw,30px)}
}
.tk207-vs__col{min-width:0;display:flex;flex-direction:column;padding-top:16px;border-top:2px solid var(--t7-plate)}
.tk207-vs__col--after{border-top-color:var(--tk-pink-deep)}
.tk207-vs__label{
  margin:0 0 clamp(16px,1.8vw,22px);
  font-size:clamp(16.5px,1.45vw,19px);font-weight:800;letter-spacing:.04em;color:var(--t7-sub);
}
.tk207-vs__label--accent{color:var(--tk-navy)}
.tk207-vs__note{margin:clamp(18px,2vw,24px) 0 0;font-size:var(--fs-body-sm);line-height:1.85;color:var(--tk-muted)}
.tk207-vs__note--accent{color:#2a5b86}

/* --- 左右共通の面 --- */
.tk207-panel{
  flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(26px,2.9vw,38px) clamp(22px,2.4vw,32px);
  background:var(--tk-soft);
}
.tk207-panel--one{background:var(--tk-navy)}
.tk207-panel__k{
  display:block;margin:0 0 clamp(24px,2.6vw,32px);
  font-size:var(--fs-label);font-weight:800;letter-spacing:.22em;color:#55687b;
}
.tk207-panel__k--accent{color:#8fb6d8;margin-bottom:10px}
.tk207-panel__copy{
  margin:0 0 clamp(24px,2.6vw,32px);
  font-family:var(--mincho);font-weight:700;
  font-size:clamp(19px,1.8vw,24px);line-height:1.6;letter-spacing:.04em;color:#43596d;
}
.tk207-panel__copy--accent{color:#fff;font-size:clamp(20px,1.95vw,26px);max-width:16.5em}

/* --- 縦レール：左は途切れ、右はつながる --- */
.tk207-rail{
  --t7-rgap:clamp(18px,2vw,26px);
  --t7-pad:32px;                    /* 節から本文までの距離 */
  --t7-dot:14px;                    /* 節の直径 */
  /* 線は常に節の中心を通す（計算を1か所にまとめ、ズレを起こさない） */
  --t7-axis:calc(var(--t7-dot) / 2 - 1px);
  position:relative;margin:0;padding:0 0 0 var(--t7-pad);list-style:none;
  display:grid;gap:var(--t7-rgap);
}
.tk207-rail li{
  position:relative;
  font-size:clamp(16px,1.45vw,18px);font-weight:700;line-height:1.5;letter-spacing:.02em;
}
.tk207-rail li::after{
  content:"";position:absolute;left:calc(-1 * var(--t7-pad));top:.52em;
  width:var(--t7-dot);height:var(--t7-dot);border-radius:50%;transform:translateY(-50%);
}

/* 右：端から端まで1本の線＋塗りつぶしの節 */
.tk207-rail--joined li{color:#fff}
.tk207-rail--joined::before{
  content:"";position:absolute;left:var(--t7-axis);top:.52em;bottom:.52em;width:2px;
  background:rgba(255,255,255,.62);
}
.tk207-rail--joined li::after{background:var(--tk-navy);border:2px solid #fff}

/* 左：節と節のあいだで線が切れ、切れ目に引継ぎのラベルが入る */
.tk207-rail--broken{--t7-rgap:clamp(38px,3.8vw,48px)}
.tk207-rail--broken li{color:var(--t7-ink)}
.tk207-rail--broken li::after{background:var(--tk-soft);border:2px solid var(--t7-dash)}
.tk207-rail--broken li+li::before{
  content:"";position:absolute;left:calc(-1 * var(--t7-pad) + var(--t7-axis));
  top:calc(-1 * var(--t7-rgap) + 2px);height:calc(var(--t7-rgap) - 4px);
  border-left:2px dashed var(--t7-dash);
}
.tk207-rail__tag{
  position:absolute;left:0;top:calc(-1 * var(--t7-rgap) / 2 - .05em);
  transform:translateY(-50%);
  font-size:var(--fs-label);font-weight:700;letter-spacing:.06em;line-height:1.3;
  color:var(--t7-sub);white-space:nowrap;
}

/* --- 中央のトランジション --- */
.tk207-vs__turn{display:flex;align-items:center;justify-content:center}
.tk207-vs__turn span{
  display:block;width:11px;height:11px;
  border-right:2px solid var(--t7-dash);border-bottom:2px solid var(--t7-dash);
}
@media (min-width:861px){ .tk207-vs__turn span{transform:rotate(-45deg)} }
@media (max-width:860px){
  .tk207-vs__turn{margin:-10px 0}
  .tk207-vs__turn span{transform:rotate(45deg)}
}

/* =========================================================
   対象B：単能工中心の進め方 ⇄ 多能工・マルチクラフター
   同じ高さの帯を2本。上は3つに切れ、下は先端が矢印の1本。
   ========================================================= */
.tk207-lanes{
  --t7-h:clamp(54px,5.2vw,66px);
  margin:clamp(40px,4.5vw,66px) 0 0;display:grid;gap:clamp(18px,2vw,26px);
}
.tk207-lane{min-width:0;padding:clamp(20px,2.2vw,28px) clamp(20px,2.2vw,28px) clamp(22px,2.4vw,28px);background:var(--tk-soft)}
.tk207-lane--after{background:var(--tk-navy)}
.tk207-lane__label{
  margin:0 0 clamp(24px,2.4vw,30px);
  font-size:clamp(16px,1.4vw,18.5px);font-weight:800;letter-spacing:.04em;color:var(--t7-sub);
}
.tk207-lane__label--accent{color:var(--t7-onnavy)}
.tk207-lane__sub{
  margin:clamp(18px,2vw,24px) 0 0;
  font-size:var(--fs-body-sm);line-height:1.85;color:#cfe1f1;
}

.tk207-flow{margin:0;padding:0;list-style:none;position:relative;display:flex;align-items:stretch}
.tk207-flow>li{
  position:relative;flex:1 1 0;min-width:0;min-height:var(--t7-h);
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:10px;font-size:clamp(15.5px,1.4vw,17.5px);font-weight:700;line-height:1.45;letter-spacing:.02em;
}

/* --- 上段：3つに切れた帯 --- */
.tk207-flow--broken{--t7-fgap:clamp(34px,3.6vw,54px);gap:var(--t7-fgap)}
.tk207-flow--broken>li{background:#fff;border:1px solid var(--t7-plate);color:var(--t7-ink)}
.tk207-flow--broken>li+li::before{
  content:"";position:absolute;top:50%;
  left:calc(-1 * var(--t7-fgap) + 6px);width:calc(var(--t7-fgap) - 12px);
  border-top:2px dashed var(--t7-dash);transform:translateY(-1px);
}
/* ラベルは切れ目の真上。細い縦の引き出し線で切れ目に結びつける */
.tk207-flow__tag{
  position:absolute;top:50%;left:calc(-1 * var(--t7-fgap) / 2);
  transform:translate(-50%,calc(-100% - 15px));
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  font-size:var(--fs-label);font-weight:700;letter-spacing:.04em;line-height:1.3;color:var(--t7-sub);
}
.tk207-flow__tag::after{
  content:"";position:absolute;left:50%;top:calc(100% + 3px);height:9px;
  border-left:1px dashed var(--t7-dash);
}
.tk207-clock{flex:0 0 auto;color:var(--t7-dash)}

/* --- 下段：先端が矢印の、切れない1本 --- */
.tk207-flow--joined{
  background:rgba(255,255,255,.09);
  clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%);
}
.tk207-flow--joined>li{color:#fff}
.tk207-flow--joined>li+li::before{
  content:"";position:absolute;left:0;top:26%;bottom:26%;width:1px;background:rgba(255,255,255,.3);
}
.tk207-flow--joined>li:last-child{padding-right:clamp(28px,2.8vw,38px)}

/* --------------------------------------------------- 中間幅 */
@media (max-width:860px){
  .tk207-vs{margin-bottom:clamp(34px,6vw,44px)}
}

/* --------------------------------------------------- スマホ */
@media (max-width:720px){
  /* 対象A */
  .tk207-vs__col{padding-top:14px}
  .tk207-vs__label{margin-bottom:14px;font-size:16.5px}
  .tk207-panel{padding:22px 18px}
  .tk207-panel__copy{font-size:19px;margin-bottom:20px}
  .tk207-panel__copy--accent{font-size:20px}
  .tk207-rail{--t7-rgap:18px;--t7-pad:28px;--t7-dot:13px}
  .tk207-rail--broken{--t7-rgap:40px}
  .tk207-rail li{font-size:16.5px}
  .tk207-vs__note{margin-top:15px;font-size:15.5px;line-height:1.8}

  /* 対象B：横長図を縮小せず、1本の縦タイムラインへ組み替える */
  .tk207-lanes{--t7-h:50px;margin-top:30px;gap:14px}
  .tk207-lane{padding:18px 16px 20px}
  .tk207-lane__label{margin-bottom:20px;font-size:16px}
  .tk207-flow>li{font-size:16px;padding:8px 10px}

  .tk207-flow--broken{--t7-fgap:46px;display:grid;gap:var(--t7-fgap)}
  .tk207-flow--broken>li+li::before{
    top:calc(-1 * var(--t7-fgap) + 4px);left:50%;width:0;height:calc(var(--t7-fgap) - 8px);
    border-top:0;border-left:2px dashed var(--t7-dash);transform:translateX(-1px);
  }
  .tk207-flow__tag{
    top:calc(-1 * var(--t7-fgap) / 2);left:50%;transform:translate(-50%,-50%);
    padding:2px 8px;background:var(--tk-soft);
  }
  .tk207-flow__tag::after{display:none}

  .tk207-flow--joined{
    display:grid;
    clip-path:polygon(0 0,100% 0,100% calc(100% - 20px),50% 100%,0 calc(100% - 20px));
  }
  .tk207-flow--joined>li+li::before{left:26%;right:26%;top:0;bottom:auto;width:auto;height:1px}
  .tk207-flow--joined>li:last-child{padding-right:10px;padding-bottom:26px}
  .tk207-lane__sub{margin-top:16px;font-size:15.5px;line-height:1.8}
}

@media (max-width:420px){
  .tk207-panel__copy{font-size:clamp(17.5px,5.1vw,20px)}
  .tk207-panel__copy--accent{font-size:clamp(18px,5.3vw,21px)}
  .tk207-rail li{font-size:16px}
  .tk207-flow>li{font-size:15.5px}
}

@media (max-width:359px){
  .tk207-panel{padding:20px 15px}
  .tk207-rail{--t7-rgap:17px;--t7-pad:26px}
  .tk207-rail--broken{--t7-rgap:36px}
  .tk207-rail__tag,.tk207-flow__tag{letter-spacing:.02em}
  .tk207-flow--broken{--t7-fgap:42px}
}


/* =========================================================
   PHASE214 — NEWS + 100億宣言 (2026-10-17)
   Existing design system preserved; additions use tk214-* only.
   ========================================================= */
.tk214-news-sec{padding:clamp(64px,7vw,104px) 0;background:#fff;border-top:1px solid rgba(5,45,87,.08)}
.tk214-news-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:clamp(24px,3vw,38px)}
.tk214-news-head h2{margin:4px 0 0;font-size:clamp(30px,3.3vw,48px);line-height:1.15;color:var(--tk-navy)}
.tk214-news-list{margin:0;padding:0;list-style:none;border-top:1px solid rgba(5,45,87,.15)}
.tk214-news-item{border-bottom:1px solid rgba(5,45,87,.15)}
.tk214-news-link{display:grid;grid-template-columns:118px 116px minmax(0,1fr) 24px;gap:18px;align-items:center;padding:22px 4px;text-decoration:none;color:var(--tk-navy);transition:background .2s ease}
.tk214-news-link:hover{background:rgba(5,45,87,.035)}
.tk214-news-date{font-variant-numeric:tabular-nums;font-size:14px;font-weight:700;letter-spacing:.04em;color:#68798a}
.tk214-news-cat{display:inline-flex;justify-content:center;align-items:center;min-height:28px;padding:4px 10px;border:1px solid rgba(5,45,87,.2);font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--tk-navy);background:#fff}
.tk214-news-title{font-size:clamp(16px,1.45vw,18px);font-weight:700;line-height:1.65}
.tk214-news-arrow{font-size:20px;text-align:right;color:var(--tk-pink)}
.tk214-news-more{white-space:nowrap}

.tk214-declare{padding:clamp(58px,6.5vw,92px) 0;background:var(--tk-soft)}
.tk214-declare-card{display:grid;grid-template-columns:minmax(240px,34%) minmax(0,1fr);gap:clamp(34px,5vw,72px);align-items:center;padding:clamp(32px,4vw,54px);background:#fff;border:1px solid rgba(5,45,87,.12)}
.tk214-declare-logo{display:flex;align-items:center;justify-content:center;padding:clamp(14px,2vw,22px)}
.tk214-declare-logo img{display:block;width:100%;max-width:420px;height:auto}
.tk214-declare-copy .eyebrow{margin-bottom:8px}
.tk214-declare-copy h2{margin:0 0 18px;font-size:clamp(28px,3vw,42px);line-height:1.2;color:var(--tk-navy)}
.tk214-declare-copy p{margin:0 0 14px;line-height:1.95;color:#334b61}
.tk214-declare-copy .tk214-declare-note{font-size:13px;color:#68798a}
.tk214-declare-copy .project-link{display:inline-block;margin-top:6px}

.tk214-news-index{padding:clamp(64px,7vw,104px) 0;background:#fff}
.tk214-news-index .tk214-news-list{max-width:980px}
.tk214-news-index-intro{max-width:760px;margin:0 0 34px;line-height:1.9;color:#40566a}

.tk214-article{padding:clamp(54px,6.5vw,96px) 0;background:#fff}
.tk214-article-wrap{max-width:880px}
.tk214-article-meta{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:20px}
.tk214-article-meta time{font-size:14px;font-weight:700;letter-spacing:.05em;color:#68798a}
.tk214-article h1{margin:0 0 30px;font-size:clamp(30px,4vw,50px);line-height:1.35;color:var(--tk-navy);letter-spacing:.02em}
.tk214-article-lead{font-size:clamp(18px,1.8vw,21px);font-weight:700;line-height:1.85;color:#1f405f;margin:0 0 30px}
.tk214-article-body{font-size:16px;line-height:2;color:#334b61}
.tk214-article-body p{margin:0 0 22px}
.tk214-media-box{margin:34px 0;padding:24px 26px;background:var(--tk-soft);border-left:4px solid var(--tk-pink)}
.tk214-media-box dl{display:grid;grid-template-columns:110px 1fr;gap:10px 18px;margin:0}
.tk214-media-box dt{font-size:13px;font-weight:800;color:#68798a}
.tk214-media-box dd{margin:0;font-weight:700;color:var(--tk-navy);line-height:1.7}
.tk214-copyright-note{font-size:13px;color:#68798a;line-height:1.8}
.tk214-back{margin-top:42px}

@media (max-width:720px){
  .tk214-news-head{align-items:flex-start;flex-direction:column;margin-bottom:20px}
  .tk214-news-link{grid-template-columns:92px 1fr 20px;gap:10px 12px;padding:18px 2px}
  .tk214-news-cat{grid-column:1;grid-row:2;justify-self:start}
  .tk214-news-title{grid-column:2;grid-row:1 / span 2}
  .tk214-news-arrow{grid-column:3;grid-row:1 / span 2}
  .tk214-declare-card{grid-template-columns:1fr;padding:26px 20px;gap:18px}
  .tk214-declare-logo{padding:4px 12px}
  .tk214-declare-logo img{max-width:360px}
  .tk214-media-box{padding:20px}
  .tk214-media-box dl{grid-template-columns:1fr;gap:3px 0}
  .tk214-media-box dd{margin-bottom:10px}
}


/* =========================================================
   PHASE216 — NEWS / 100億宣言 polish + nav consistency
   ========================================================= */
.tk214-news-sec{padding:clamp(50px,5.4vw,76px) 0}
.tk214-news-head{margin-bottom:clamp(20px,2.2vw,30px)}
.tk214-news-head h2{font-size:clamp(30px,3vw,44px)}
.tk214-news-link{padding:20px 8px}
.tk214-declare{padding:clamp(46px,5vw,70px) 0}
.tk214-declare-card{grid-template-columns:minmax(220px,28%) minmax(0,1fr);gap:clamp(30px,4vw,56px);padding:clamp(28px,3.3vw,44px)}
.tk214-declare-logo{padding:8px 10px}
.tk214-declare-logo img{max-width:310px}
.tk214-news-index{padding:clamp(52px,5.5vw,78px) 0}
.tk214-news-index-intro{margin-bottom:26px}
.tk214-article{padding:clamp(48px,5.5vw,78px) 0}
@media (max-width:720px){
  .tk214-news-sec{padding:42px 0 48px}
  .tk214-news-head{gap:12px}
  .tk214-declare{padding:40px 0}
  .tk214-declare-card{padding:22px 18px;gap:16px}
  .tk214-declare-logo img{max-width:290px}
  .tk214-news-index{padding:44px 0 54px}
}


/* =========================================================
   Phase220 — news hero background
   /news のヒーローに正式画像を追加。既存の .page-hero / .page-bg /
   img.ph 方式をそのまま使い、新規の実装方式は増やしていない。
   ここで調整するのは object-position（背景の見せ位置）だけ。
   優先度の強制上書きは使用しない。
   ========================================================= */

/* 原画は 3:1 の横長。ヒーロー枠の比率は幅によって変わり、
   cover でどちら方向に切り取られるかも変わる。
     PC   1440x420 (3.43:1) → 縦に約60px切れる（効くのは Y）
     1024 1024x320 (3.20:1) → 縦に約20px切れる（効くのは Y・ごく僅か）
     768   768x270 (2.84:1) → 横に約40px切れる（効くのは X・僅か）
     SP    390x344 (1.13:1) → 横に約640px切れる（効くのは X・影響大）
   そのため幅ごとに指定を分ける。 */

/* PC：縦が切れる。建物の棟と空を残すため、わずかに上を見せる */
img.ph.ph-news-hero-earthwork-slope{object-position:center 42%}

/* タブレット：切り取り量が小さい帯。ほぼ原画のまま中央寄りで収める */
@media (max-width:1024px){
  img.ph.ph-news-hero-earthwork-slope{object-position:58% 46%}
}

/* スマホ：横が大きく切れる。法面だけにならないよう畜舎側へ寄せる */
@media (max-width:560px){
  img.ph.ph-news-hero-earthwork-slope{object-position:68% 50%}
}


/* =========================================================
   Phase221 — contact hero contrast (721–960px only)
   /contact のヒーロー説明文が 768px で WCAG AA 未達（3.75）だった。

   原因：721〜960px の帯だけ、ヒーロー高さは 270px に縮む一方
   （L151 の max-width:960px）、オーバーレイは既定の3段階グラデーション
   （右端 .28）のまま。720px 以下には右端 .74 の指定（L168）があるため
   この帯だけが抜けていた。

   対応：/contact のヒーローに限り、その帯だけ右側の濃度を上げる。
   色・方向・構造は既存のまま。画像・文言・レイアウト・高さ・
   タイポグラフィ・レスポンシブ構造には一切触れていない。
   他ページのヒーローは変更しない。優先度の強制上書きも使わない。
   ========================================================= */

@media (min-width:721px) and (max-width:960px){
  .page-hero--contact .page-bg::after{
    background:linear-gradient(90deg,
      rgba(3,30,57,.94) 0%,
      rgba(5,45,87,0.86) 48%,
      rgba(5,45,87,0.62) 100%);
  }
}


/* =========================================================
   Phase223 — /news 一覧の「メディア掲載」ラベルの折返し修正（スマホのみ）

   症状：720px以下で一覧行が grid-template-columns:92px 1fr 20px となり、
   1列目92pxに対してチップの自然幅が100pxあるため、
   「メディア掲／載」と最後の1文字だけが2行目に落ちていた。

   対応：一覧行の中のチップに限り、字送りと左右パディングをわずかに詰めて
   92pxに1行で収める。文字サイズ（12px）は変えない。
   記事詳細ページのチップ（.tk214-article-meta 内）は
   既に100px×1行で正常なため、対象外にしている。
   グリッド定義・見出し幅・行の高さ以外のレイアウトには触れない。
   ========================================================= */

@media (max-width:720px){
  .tk214-news-link .tk214-news-cat{
    white-space:nowrap;
    letter-spacing:.04em;
    padding-left:7px;
    padding-right:7px;
  }
}
