/* KAKUDO — SWELL-friendly,fully scoped corporate site styling. v2.0.0
 * Colors: edit the tokens below. Animation: assets/kakudo.js (Motion). */
.kd-site{
  --kd-ink:#102321;--kd-muted:#5b6c65;--kd-base:#f5f6f1;--kd-paper:#fffefa;--kd-lime:#dcff68;--kd-forest:#173a33;--kd-deep:#102822;
  --kd-line:rgba(18,42,36,.15);--kd-header-h:88px;--kd-max:1320px;--kd-gutter:clamp(24px,5vw,80px);--kd-side:max(var(--kd-gutter),calc((100% - var(--kd-max)) / 2));--kd-shift:max(0px,calc((100% - var(--kd-max)) / 2 - var(--kd-gutter)));--kd-ease:cubic-bezier(.18,.74,.2,1);
  color:var(--kd-ink);background:var(--kd-base);
  font-family:"Inter","Helvetica Neue",Arial,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:16px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;
  width:100vw;max-width:none!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;
  overflow-x:clip;position:relative}
.kd-site--has-header{padding-top:var(--kd-header-h)}
.kd-site,.kd-site *,.kd-site *::before,.kd-site *::after{box-sizing:border-box}
.kd-site.kd-site :where(h1,h2,h3,p,figure,ul,ol,dl,dt,dd,li){margin:0;padding:0;border:0;background:none;box-shadow:none;list-style:none}
.kd-site.kd-site :where(h1,h2,h3,li,dt)::before,.kd-site.kd-site :where(h1,h2,h3,li,dt)::after{content:none;display:none}
.kd-site.kd-site :where(h1,h2,h3){font-family:inherit;color:inherit;font-size:inherit;line-height:inherit}
.kd-site a,.kd-site a:hover{color:inherit;text-decoration:none!important}
.kd-site img{display:block;max-width:100%;height:auto}
.kd-site svg{display:block;flex-shrink:0}
.kd-site a,.kd-site button{-webkit-tap-highlight-color:transparent}
.kd-site a:focus-visible,.kd-site button:focus-visible{outline:3px solid #719d22;outline-offset:5px}
.kd-site .kd-wrap{width:min(var(--kd-max),calc(100% - var(--kd-gutter) * 2));margin-inline:auto}
.kd-site [id]{scroll-margin-top:calc(var(--kd-header-h) + 12px)}
.kd-site .kd-sp-only{display:none}
.kd-site .kd-label{display:inline-flex;align-items:center;gap:13px;font-size:11px;letter-spacing:.17em;font-weight:800;line-height:1.5}
.kd-site .kd-label::before{content:"";width:9px;height:9px;background:var(--kd-lime);border:1px solid var(--kd-ink);border-radius:50%}

/* Line-mask headings (Motion slides each .kd-line > span up) */
.kd-site .kd-lines .kd-line{display:block;overflow:hidden;padding:0 .12em .04em 0;margin-bottom:-.04em}
.kd-site .kd-lines .kd-line>span{display:inline-block;will-change:transform}
.kd-site .kd-muted-line{color:#a0aea4}
/* 和文見出しの句読点：詰めすぎで前の文字にくっつかないよう少し空ける */
.kd-site .kd-punc{letter-spacing:0;margin-left:.06em}
.kd-site .kd-punc--mid{margin-right:.14em}

/* ---------- Header (fixed) ---------- */
.kd-site .kd-header{position:fixed;top:0;left:0;right:0;height:var(--kd-header-h);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 var(--kd-side);background:rgba(250,251,247,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e3e7e0;z-index:9990;transition:box-shadow .3s ease,transform .5s var(--kd-ease)}
.kd-site .kd-header.kd-is-hidden{transform:translateY(-100%)}
.kd-site .kd-header.kd-is-scrolled{box-shadow:0 10px 30px rgba(16,40,34,.06)}
body.admin-bar .kd-header{top:32px}
.kd-site .kd-header__progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--kd-forest);transform-origin:0 50%;transform:scaleX(0)}
.kd-site .kd-brand{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;min-width:0}
.kd-site .kd-brand__mark{width:38px!important;height:38px!important;object-fit:contain;flex-shrink:0}
.kd-site .kd-brand__name{font-size:clamp(24px,2.2vw,31px);font-weight:900;line-height:1;letter-spacing:-.07em}
.kd-site .kd-brand__detail{font-size:9px;line-height:1.45;letter-spacing:.12em;font-weight:800;border-left:1px solid #b7bfb9;margin-left:11px;padding-left:15px}
.kd-site .kd-navigation{display:flex;align-items:center;gap:clamp(18px,2.2vw,36px)}
.kd-site .kd-navigation>a:not(.kd-navigation__contact):not(.kd-header__tel){display:flex;flex-direction:column;align-items:center;gap:3px;transition:opacity .2s ease}
.kd-site .kd-navigation>a:not(.kd-navigation__contact):not(.kd-header__tel):hover{opacity:.55}
.kd-site .kd-en{font-size:11px;letter-spacing:.14em;font-weight:800;line-height:1.2}
.kd-site .kd-ja{font-size:10px;letter-spacing:.06em;color:var(--kd-muted);line-height:1.2;font-weight:500}
.kd-site .kd-header__tel{display:none;align-items:center;gap:10px;padding-left:22px;border-left:1px solid var(--kd-line)}
.kd-site .kd-header__tel svg{width:20px;height:20px}
.kd-site .kd-header__tel span{display:flex;flex-direction:column}
.kd-site .kd-header__tel b{font-size:19px;font-weight:800;letter-spacing:.02em;line-height:1.1}
.kd-site .kd-header__tel small{font-size:9px;color:var(--kd-muted);letter-spacing:.02em}
.kd-site .kd-navigation__contact{padding:12px 18px 12px 20px;display:inline-flex;align-items:center;gap:18px;background:var(--kd-forest);color:#fff!important;transition:background .25s ease}
.kd-site .kd-navigation__contact>span{display:flex;flex-direction:column;gap:2px}
.kd-site .kd-navigation__contact .kd-ja{color:#c9d8cf}
.kd-site .kd-navigation__contact svg{width:20px;height:20px;transition:transform .3s var(--kd-ease)}
.kd-site .kd-navigation__contact:hover{background:#25564a}
.kd-site .kd-navigation__contact:hover svg{transform:translate(2px,-2px)}
.kd-site .kd-menu-toggle{display:none}
@media(min-width:1320px){.kd-site .kd-header__tel{display:flex}}

/* ---------- Buttons ---------- */
.kd-site .kd-button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-width:210px;padding:19px 22px 19px 26px;background:var(--kd-forest);color:#fff!important;font-size:14px;font-weight:700;letter-spacing:.06em;transition:background .25s}
.kd-site .kd-button svg{width:20px;height:20px;transition:transform .3s var(--kd-ease)}
.kd-site .kd-button:hover{background:#25564a}
.kd-site .kd-button:hover svg{transform:translate(3px,-3px)}
.kd-site .kd-arrow-link{display:inline-flex;align-items:center;gap:22px;font-size:13px;letter-spacing:.08em;font-weight:700;white-space:nowrap}
.kd-site .kd-arrow-link__icon{display:grid;place-items:center;border:1px solid currentColor;width:52px;height:52px;border-radius:50%;transition:background .25s var(--kd-ease),border-color .25s}
.kd-site .kd-arrow-link__icon svg{width:20px;height:20px}
.kd-site .kd-arrow-link:hover .kd-arrow-link__icon{background:var(--kd-lime);border-color:var(--kd-ink);color:var(--kd-ink)}

/* ---------- Hero ---------- */
.kd-site .kd-hero{height:min(880px,calc(100svh - var(--kd-header-h)));min-height:700px;position:relative;background:#edf2ee;overflow:hidden;isolation:isolate}
.kd-site .kd-hero__image{position:absolute;inset:0;z-index:0;overflow:hidden;background:#bbd5df}
.kd-site .kd-hero__image img{width:100%!important;height:112%!important;max-width:none;object-fit:cover;object-position:62% 52%;filter:saturate(.9) contrast(.98);will-change:transform}
.kd-site .kd-hero__whiteplane{position:absolute;z-index:1;inset:0;background:linear-gradient(105deg,#fcfdfa 0%,#f8faf6 75%,rgba(250,251,247,.96) 100%);clip-path:polygon(0 0,calc(64% + var(--kd-shift)) 0,calc(20% + var(--kd-shift)) 100%,0 100%)}
.kd-site .kd-hero__grid{position:absolute;inset:0 0 0 auto;width:30%;z-index:2;pointer-events:none}
.kd-site .kd-hero__grid i{position:absolute;background:rgba(255,255,255,.75)}
.kd-site .kd-hero__grid i:nth-child(1){left:0;top:0;bottom:0;width:1px;transform-origin:50% 0}
.kd-site .kd-hero__grid i:nth-child(2){left:50%;top:0;bottom:0;width:1px;transform-origin:50% 0}
.kd-site .kd-hero__grid i:nth-child(3){left:0;right:0;bottom:17%;height:1px;transform-origin:0 50%}
.kd-site .kd-hero__grid i:nth-child(4){left:0;right:0;bottom:48%;height:1px;transform-origin:0 50%}
.kd-site .kd-hero__content{position:relative;z-index:5;padding:clamp(90px,12vh,150px) 0 70px var(--kd-side);max-width:none;pointer-events:none}
.kd-site .kd-hero__content a{pointer-events:auto}
.kd-site .kd-overline{font-size:12px;letter-spacing:.22em;font-weight:800}
.kd-site .kd-hero__overline{display:flex;align-items:center;gap:26px;margin-bottom:38px}
.kd-site .kd-hero__rule{display:block;width:55px;height:1px;background:var(--kd-ink);transform-origin:0 50%}
.kd-site .kd-hero h1{font-size:clamp(53px,5.9vw,95px);letter-spacing:-.045em;font-weight:900;line-height:1.2;color:#0d1b19;white-space:nowrap;text-align:left}
.kd-site .kd-hero p{font-size:clamp(13px,1.1vw,16px);line-height:2.1;font-weight:500;letter-spacing:.04em;margin-top:38px;color:#263a35;max-width:520px}
.kd-site .kd-hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px 36px;margin-top:38px}
.kd-site .kd-hero__keywords{position:absolute;top:54px;right:53px;z-index:4;padding-left:22px;border-left:1px solid rgba(23,53,49,.55);font-size:10px;line-height:2.3;letter-spacing:.21em;color:#3f5650;font-weight:800}
.kd-site .kd-hero__bottomleft{position:absolute;left:var(--kd-side);bottom:30px;z-index:6;font-size:9px;line-height:1.7;letter-spacing:.17em;color:#526960;font-weight:700}
.kd-site .kd-hero__bottomleft span{display:block;height:45px;border-left:1px solid #789087;margin-bottom:11px}
.kd-site .kd-hero__bottomright{position:absolute;right:40px;bottom:36px;z-index:4;display:flex;flex-direction:column;gap:30px;align-items:flex-start;min-width:120px;color:#fff;text-shadow:0 1px 5px rgba(16,35,33,.35)}
.kd-site .kd-hero__bottomright p{font-size:10px;line-height:2.1;letter-spacing:.19em;color:#fff;margin:0;font-weight:700;max-width:none}
.kd-site .kd-hero__scroll{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.24em;font-weight:800}
.kd-site .kd-hero__scroll i{display:block;position:relative;width:46px;height:2px;background:rgba(255,255,255,.35);overflow:hidden}
.kd-site .kd-hero__scroll b{position:absolute;inset:0;background:var(--kd-lime);transform-origin:0 50%}

/* ---------- Ticker ---------- */
.kd-site .kd-ticker{height:72px;background:#152e29;overflow:hidden;display:flex;align-items:center;color:var(--kd-lime)}
.kd-site .kd-ticker__track{display:flex;align-items:center;gap:45px;padding-right:45px;width:max-content;white-space:nowrap;font-size:14px;letter-spacing:.23em;font-weight:800;will-change:transform}
.kd-site .kd-ticker__ja{font-size:13px;letter-spacing:.18em;font-weight:700;color:#e9ffb0}
.kd-site .kd-ticker__sep{display:block;width:1px;height:26px;background:var(--kd-lime);transform:rotate(35deg);opacity:.85}

/* ---------- Sections ---------- */
.kd-site .kd-section{padding:clamp(90px,10vw,148px) 0}
.kd-site .kd-section__heading h2,.kd-site .kd-section__top h2{font-size:clamp(40px,5.2vw,72px);font-weight:900;letter-spacing:-.035em;line-height:1.22;margin-top:22px}
.kd-site h2.kd-en-head{font-weight:800;letter-spacing:-.055em}
.kd-site .kd-section__top{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:65px}
.kd-site .kd-section__top>p{font-size:14px;line-height:2.05;color:var(--kd-muted);max-width:380px;margin-bottom:6px;letter-spacing:.03em}

/* About */
.kd-site .kd-about{background:#fffffc}
.kd-site .kd-about__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:end;margin-top:70px}
.kd-site .kd-about__statement{justify-self:end}
.kd-site .kd-about__description{max-width:390px}
.kd-site .kd-about__description p{font-size:14px;line-height:2.3;color:var(--kd-muted)}
.kd-site .kd-about__description p+p{margin-top:1.2em}
.kd-site .kd-about__statement{font-size:clamp(38px,4.6vw,66px);font-weight:900;letter-spacing:-.04em;line-height:1.42;color:#152a25}
.kd-site .kd-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:96px;border-top:1px solid var(--kd-line)}
.kd-site .kd-stat{padding:30px 24px 6px 0;border-right:1px solid var(--kd-line);padding-left:24px}
.kd-site .kd-stat:first-child{padding-left:0}
.kd-site .kd-stat:last-child{border-right:0}
.kd-site .kd-stat dt{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--kd-muted)}
.kd-site .kd-stat dd{display:flex;align-items:baseline;gap:6px;margin-top:14px}
.kd-site .kd-stat b{font-size:clamp(44px,5vw,72px);font-weight:800;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.kd-site .kd-stat small{font-size:14px;font-weight:700}
.kd-site .kd-stats__note{font-size:11px;color:var(--kd-muted);margin-top:22px}

/* Business */
.kd-site .kd-business{background:var(--kd-base)}
.kd-site .kd-business__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.kd-site .kd-service{background:#fff;padding:35px 31px 30px;position:relative;display:flex;flex-direction:column;transition:box-shadow .35s ease}
.kd-site .kd-service:hover{box-shadow:0 18px 36px rgba(14,44,33,.08)}
.kd-site .kd-service__number{font-size:11px;font-weight:700;letter-spacing:.16em;color:#536960}
.kd-site .kd-service__graphic{height:170px;display:grid;place-items:center;position:relative}
.kd-site .kd-service__graphic span{display:block;position:relative}
.kd-site .kd-service__graphic--one span{width:130px;height:100px;background:linear-gradient(140deg,#e1ff83 0%,#d4efca 100%);clip-path:polygon(50% 0,100% 100%,0 100%)}
.kd-site .kd-service__graphic--one span::after{content:"";position:absolute;inset:30% 25% 0;border:3px solid #173a33;transform:rotate(45deg)}
.kd-site .kd-service__graphic--two span{width:110px;height:105px;background:var(--kd-lime);border:3px solid #173a33;box-shadow:18px -18px 0 #d6e1d9}
.kd-site .kd-service__graphic--two span::after{content:"";position:absolute;left:15px;right:15px;top:35%;height:3px;background:#173a33;box-shadow:0 23px #173a33}
.kd-site .kd-service__graphic--three span{width:116px;height:116px;border-radius:50%;border:3px solid #173a33;background:radial-gradient(circle at center,white 0 18%,#173a33 19% 21%,transparent 22%),linear-gradient(45deg,transparent 49%,#173a33 50% 51%,transparent 52%),linear-gradient(-45deg,transparent 49%,#173a33 50% 51%,transparent 52%),#e1ff86}
.kd-site .kd-service h3{font-size:23px;font-weight:800;letter-spacing:-.03em;margin:8px 0 12px}
.kd-site .kd-service>p{font-size:13px;line-height:2;color:var(--kd-muted)}
.kd-site .kd-service ul{margin:22px 0 28px;border-top:1px solid var(--kd-line)}
.kd-site .kd-service li{position:relative;font-size:13px;font-weight:500;padding:12px 0 12px 20px;border-bottom:1px solid var(--kd-line)}
.kd-site .kd-service li::before{content:"";display:block;position:absolute;left:2px;top:50%;width:7px;height:7px;margin-top:-3.5px;background:var(--kd-lime);border:1px solid var(--kd-ink)}
.kd-site .kd-service__link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:700;padding-top:6px}
.kd-site .kd-service__link svg{width:22px;height:22px;transition:transform .3s var(--kd-ease)}
.kd-site .kd-service__link:hover svg{transform:translate(3px,-3px)}

/* Projects */
.kd-site .kd-projects{background:#1b3b32;color:#fff}
.kd-site .kd-projects .kd-label::before{border-color:#d1ff65}
.kd-site .kd-projects .kd-section__top>p{color:#bdccc2}
.kd-site .kd-period{color:var(--kd-lime)}
.kd-site .kd-projects__grid{display:grid;grid-template-columns:7fr 5fr;gap:64px 28px;align-items:start}
.kd-site .kd-project__image{position:relative;overflow:hidden;height:480px;background:#2a4c43}
.kd-site .kd-project--tall .kd-project__image{height:560px}
.kd-site .kd-project__image img{position:absolute;left:0;top:-9%;width:100%!important;height:118%!important;max-width:none;object-fit:cover;transition:scale .9s var(--kd-ease)}
.kd-site .kd-project:hover .kd-project__image img{scale:1.04}
.kd-site .kd-project__image>span{position:absolute;z-index:1;top:22px;left:22px;background:var(--kd-lime);color:#10291f;padding:10px 14px;font-size:10px;letter-spacing:.15em;font-weight:800}
.kd-site .kd-project__info{padding-top:24px}
.kd-site .kd-project__info h3{font-size:clamp(20px,2.2vw,27px);line-height:1.3;font-weight:800;letter-spacing:-.03em}
.kd-site .kd-project__info>p{font-size:13px;line-height:1.95;color:#c0d0c5;margin-top:10px;max-width:560px}
.kd-site .kd-project__info dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:20px;border-top:1px solid rgba(255,255,255,.16)}
.kd-site .kd-project__info dl div{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:12px}
.kd-site .kd-project__info dt{color:#8fa79a;min-width:3.5em;font-weight:700}
.kd-site .kd-project--wide{grid-column:1 / -1;display:grid;grid-template-columns:7fr 5fr;gap:28px;align-items:end}
.kd-site .kd-project--wide .kd-project__image{height:400px}
.kd-site .kd-project--wide .kd-project__info{padding:0 0 4px}

/* Message */
.kd-site .kd-principle{background:var(--kd-lime);padding:clamp(90px,9vw,130px) 0}
.kd-site .kd-principle__grid{display:grid;grid-template-columns:38% 62%;gap:18px}
.kd-site .kd-principle .kd-label::before{background:#fff}
.kd-site .kd-principle h2{font-size:clamp(36px,4.6vw,64px);font-weight:900;letter-spacing:-.04em;line-height:1.42}
.kd-site .kd-principle__body{margin-top:34px;max-width:620px}
.kd-site .kd-principle__body p{font-size:15px;line-height:2.2;color:#1f3a33}
.kd-site .kd-principle__body p+p{margin-top:1em}
.kd-site .kd-principle__sign{margin-top:30px!important;font-size:19px!important;font-weight:700;letter-spacing:.06em}
.kd-site .kd-principle__sign small{display:block;font-size:11px;letter-spacing:.1em;color:#3d5a50}

/* Flow */
.kd-site .kd-flow{background:#fffffc}
.kd-site .kd-flow__wrap{position:relative}
.kd-site .kd-flow__bar{position:absolute;left:0;right:0;top:27px;height:1px;background:var(--kd-line)}
.kd-site .kd-flow__bar i{position:absolute;inset:0;background:var(--kd-forest);transform-origin:0 50%;transform:scaleX(0)}
.kd-site .kd-flow__list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;position:relative}
.kd-site .kd-flow__num{display:grid;place-items:center;width:55px;height:55px;border-radius:50%;background:#fff;border:1px solid var(--kd-ink);font-size:14px;font-weight:800;transition:background .4s}
.kd-site .kd-flow__list li.kd-is-active .kd-flow__num{background:var(--kd-lime)}
.kd-site .kd-flow h3{font-size:18px;font-weight:800;letter-spacing:-.02em;margin:22px 0 10px}
.kd-site .kd-flow__list p{font-size:13px;line-height:1.95;color:var(--kd-muted)}

/* News */
.kd-site .kd-news{background:var(--kd-base)}
.kd-site .kd-news .kd-section__top{margin-bottom:42px}
.kd-site .kd-news__rows{border-top:1px solid var(--kd-line)}
.kd-site .kd-news__row{display:grid;grid-template-columns:120px 120px 1fr 30px;gap:18px;align-items:center;border-bottom:1px solid var(--kd-line);padding:28px 6px;transition:background .3s,padding .3s var(--kd-ease)}
.kd-site .kd-news__row:hover{background:#fff;padding-left:18px;padding-right:12px}
.kd-site .kd-news__row time{font-size:13px;color:var(--kd-muted);font-variant-numeric:tabular-nums}
.kd-site .kd-news__row>span{justify-self:start;border:1px solid #aebcb4;padding:6px 11px;font-size:11px;letter-spacing:.06em;font-weight:700;background:#fff}
.kd-site .kd-news__row>p{font-size:15px;line-height:1.8;font-weight:500}
.kd-site .kd-news__row i svg{width:22px;height:22px}
.kd-site .kd-news__note{font-size:12px;color:#8a4b1f;margin-top:20px}

/* Company */
.kd-site .kd-company{background:#fffffc}
.kd-site .kd-company .kd-section__top{margin-bottom:50px}
.kd-site .kd-company__grid{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:start}
.kd-site .kd-company__table{border-top:1px solid var(--kd-ink)}
.kd-site .kd-company__table>div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:20px 4px;border-bottom:1px solid var(--kd-line)}
.kd-site .kd-company__table dt{font-size:13px;font-weight:700}
.kd-site .kd-company__table dd{font-size:14px;line-height:1.95}
.kd-site .kd-company__table dd small{display:block;font-size:11px;color:var(--kd-muted);letter-spacing:.06em}
.kd-site .kd-access__map{height:340px;position:relative;overflow:hidden;background:#e7eee3}
.kd-site .kd-access__map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.3)}
.kd-site .kd-access__illust{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 38px,rgba(23,58,51,.05) 38px 39px),repeating-linear-gradient(90deg,transparent 0 38px,rgba(23,58,51,.05) 38px 39px),#e9efe6}
.kd-site .kd-road{position:absolute;background:#fff;box-shadow:0 0 0 1px rgba(23,58,51,.08)}
.kd-site .kd-road--a{left:-10%;right:-10%;top:58%;height:16px;transform:rotate(-8deg)}
.kd-site .kd-road--b{top:-10%;bottom:-10%;left:38%;width:12px;transform:rotate(12deg)}
.kd-site .kd-road--c{top:-10%;bottom:-10%;left:74%;width:10px;transform:rotate(-4deg)}
.kd-site .kd-rail{position:absolute;left:-10%;right:-10%;top:24%;height:6px;background:repeating-linear-gradient(90deg,#173a33 0 18px,#fff 18px 30px);transform:rotate(-8deg)}
.kd-site .kd-station{position:absolute;left:22%;top:13%;background:#173a33;color:#fff;font-size:9px;letter-spacing:.18em;font-weight:800;padding:5px 8px}
.kd-site .kd-pin{position:absolute;left:56%;top:46%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--kd-lime);border:3px solid var(--kd-ink)}
.kd-site .kd-pin::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid var(--kd-ink);opacity:.35}
.kd-site .kd-access__info{padding-top:26px}
.kd-site .kd-access__info h3{font-size:13px;letter-spacing:.2em;font-weight:800}
.kd-site .kd-access__info p{font-size:14px;line-height:2;margin:10px 0 22px}

/* Contact */
.kd-site .kd-contact{background:#e7eee3;padding:clamp(90px,9vw,130px) 0}
.kd-site .kd-contact__inner{display:grid;grid-template-columns:1fr minmax(0,520px);gap:50px;align-items:end}
.kd-site .kd-contact h2{font-size:clamp(41px,5vw,70px);font-weight:900;letter-spacing:-.04em;line-height:1.35;margin:22px 0}
.kd-site .kd-contact__lead p{font-size:14px;line-height:2.05;color:#51635a}
.kd-site .kd-contact__cards{display:grid;gap:14px}
.kd-site .kd-contact__card{display:flex;flex-direction:column;gap:8px;padding:26px 28px;background:#fff;transition:transform .35s var(--kd-ease),box-shadow .35s}
.kd-site .kd-contact__card:hover{box-shadow:0 16px 30px rgba(14,44,33,.08)}
.kd-site .kd-contact__card small{font-size:12px;font-weight:700;color:var(--kd-muted);letter-spacing:.04em}
.kd-site .kd-contact__card b{display:flex;align-items:center;gap:12px;font-size:30px;font-weight:800;letter-spacing:.01em;line-height:1.2}
.kd-site .kd-contact__card b svg{width:26px;height:26px}
.kd-site .kd-contact__card span{font-size:12px;color:var(--kd-muted)}
.kd-site .kd-contact__card--primary{background:var(--kd-forest);color:#fff!important}
.kd-site .kd-contact__card--primary small,.kd-site .kd-contact__card--primary span{color:#bcd0c4}
.kd-site .kd-contact__card--primary b{font-size:19px;justify-content:space-between}
.kd-site .kd-contact__card--primary:hover{background:#25564a}
.kd-site .kd-contact__form{margin-top:60px;background:#fff;padding:clamp(24px,4vw,48px)}

/* Footer */
.kd-site .kd-footer{padding:76px 0 32px;background:var(--kd-deep);color:#fff}
.kd-site .kd-footer__top{display:flex;align-items:flex-start;justify-content:space-between;gap:40px}
.kd-site .kd-brand--footer .kd-brand__name{font-size:32px}
.kd-site .kd-footer__company p{font-size:12px;color:#b0c6b7;line-height:2;margin-top:22px}
.kd-site .kd-footer__company p b{color:#fff;font-size:14px}
.kd-site .kd-footer__nav{display:grid;grid-template-columns:repeat(2,auto);gap:14px 52px}
.kd-site .kd-footer__nav a{font-size:13px;font-weight:500;transition:opacity .2s}
.kd-site .kd-footer__nav a:hover{opacity:.6}
.kd-site .kd-footer__bottom{border-top:1px solid rgba(255,255,255,.18);margin-top:64px;padding-top:26px;display:flex;justify-content:space-between;gap:30px}
.kd-site .kd-footer__bottom small{font-size:11px;line-height:1.8;letter-spacing:.04em;color:#a2bdad}

/* Fixed UI */
.kd-site .kd-spcta{display:none}
.kd-site .kd-pagetop{position:fixed;right:24px;bottom:24px;z-index:9980;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--kd-lime);color:var(--kd-ink)!important;border:1px solid var(--kd-ink);opacity:0;pointer-events:none}
.kd-site .kd-pagetop svg{width:20px;height:20px}
.kd-site .kd-pagetop{transition:opacity .4s ease,transform .4s var(--kd-ease),background .2s;transform:translateY(12px)}
.kd-site .kd-pagetop.kd-is-shown{opacity:1;transform:none;pointer-events:auto}
.kd-site .kd-pagetop:hover{background:#fff}

/* ---------- Pre-paint hidden states (only when JS + Motion run,never for reduced motion) ---------- */
@media (prefers-reduced-motion:no-preference){
  .kd-js .kd-site .kd-reveal,.kd-js .kd-site [data-kd-stagger]>*,.kd-js .kd-site [data-kd-hero-item],.kd-js .kd-site [data-kd-hero-side]{opacity:0}
  .kd-js .kd-site .kd-lines .kd-line>span{transform:translateY(110%)}
  .kd-js .kd-site [data-kd-clip]{clip-path:inset(100% 0 0 0)}
  .kd-js .kd-site [data-kd-hero-image]{clip-path:inset(0 0 0 100%)}
  .kd-js .kd-site .kd-hero__grid i:nth-child(-n+2){transform:scaleY(0)}
  .kd-js .kd-site .kd-hero__rule{transform:scaleX(0)}
  .kd-js .kd-site .kd-hero__grid i:nth-child(n+3){transform:scaleX(0)}
}

/* ---------- Responsive ---------- */
@media(max-width:1180px){
  .kd-site .kd-navigation{gap:16px}.kd-site .kd-brand__detail{display:none}.kd-site .kd-ja{display:none}
  .kd-site .kd-navigation__contact .kd-ja{display:none}
  .kd-site .kd-hero h1{font-size:clamp(53px,6.3vw,75px)}
  .kd-site .kd-hero__whiteplane{clip-path:polygon(0 0,72% 0,19% 100%,0 100%)}
  .kd-site .kd-hero__keywords{right:25px}.kd-site .kd-hero__bottomright{right:22px}
  .kd-site .kd-flow__list{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:46px}
  .kd-site .kd-flow__bar{display:none}
}
@media(max-width:900px){
  .kd-site{--kd-header-h:72px}
  .kd-site .kd-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:#f9fbf6}
  .kd-site{--kd-gutter:30px}
  .kd-site .kd-brand__name{font-size:27px}.kd-site .kd-brand__mark{width:33px!important;height:33px!important}
  .kd-site .kd-menu-toggle{width:46px;height:44px;background:none;border:1px solid #142f28;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;cursor:pointer;position:relative;z-index:2;padding:0}
  .kd-site .kd-menu-toggle span{width:21px;height:2px;background:#142f28;transition:transform .3s var(--kd-ease)}
  .kd-site .kd-menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}
  .kd-site .kd-menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  .kd-site .kd-navigation{display:none;position:fixed;top:var(--kd-header-h);left:0;right:0;bottom:0;background:#f9fbf6;padding:20px 30px 40px;flex-direction:column;align-items:stretch;gap:0;overflow-y:auto}
  body.admin-bar .kd-navigation{top:calc(var(--kd-header-h) + 46px)}
  .kd-site .kd-navigation.kd-is-open{display:flex}
  .kd-site .kd-navigation>a:not(.kd-navigation__contact):not(.kd-header__tel){flex-direction:row;justify-content:space-between;align-items:baseline;padding:20px 2px;border-bottom:1px solid #dce6db}
  .kd-site .kd-navigation .kd-en{font-size:15px}.kd-site .kd-navigation .kd-ja{display:block;font-size:12px}
  .kd-site .kd-header__tel{display:flex;border-left:0;padding:24px 2px 0}
  .kd-site .kd-navigation__contact{justify-content:space-between;margin-top:20px;padding:20px!important}
  .kd-site .kd-navigation__contact .kd-ja{display:block}
  .kd-site .kd-hero{height:760px;min-height:0}.kd-site .kd-hero__content{padding:110px 22px 40px var(--kd-side)}.kd-site .kd-hero h1{font-size:clamp(50px,7vw,72px)}
  .kd-site .kd-hero__whiteplane{clip-path:polygon(0 0,82% 0,17% 100%,0 100%)}
  .kd-site .kd-hero__bottomright{bottom:26px}
  .kd-site .kd-section__heading h2,.kd-site .kd-section__top h2{font-size:clamp(38px,5.6vw,56px)}
  .kd-site .kd-business__grid{grid-template-columns:1fr 1fr}.kd-site .kd-service{padding:28px 24px}
  .kd-site .kd-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kd-site .kd-stat:nth-child(2){border-right:0}.kd-site .kd-stat:nth-child(3){padding-left:0}.kd-site .kd-stat:nth-child(n+3){border-top:1px solid var(--kd-line)}
  .kd-site .kd-projects__grid{grid-template-columns:1fr 1fr;gap:56px 20px}
  .kd-site .kd-project__image{height:380px}.kd-site .kd-project--tall .kd-project__image{height:380px}
  .kd-site .kd-project--wide{grid-template-columns:1fr;gap:0}.kd-site .kd-project--wide .kd-project__image{height:340px}.kd-site .kd-project--wide .kd-project__info{padding-top:24px}
  .kd-site .kd-principle__grid{grid-template-columns:1fr;gap:26px}
  .kd-site .kd-company__grid{grid-template-columns:1fr;gap:44px}
  .kd-site .kd-contact__inner{grid-template-columns:1fr;gap:34px}
}
@media(max-width:782px){body.admin-bar .kd-header{top:46px}}
@media(max-width:680px){
  .kd-site{--kd-gutter:20px}
.kd-site .kd-navigation{padding:12px 20px 40px}.kd-site .kd-brand{gap:6px}.kd-site .kd-brand__name{font-size:25px}
  .kd-site .kd-sp-only{display:inline}
  .kd-site .kd-hero{height:auto;background:#f9fbf7}
  .kd-site .kd-hero__image{height:320px;inset:auto 0 0 0}
  .kd-site .kd-hero__image img{object-position:64% 50%}
  .kd-site .kd-hero__whiteplane{clip-path:none;height:calc(100% - 250px);background:linear-gradient(#f9fbf7 0%,#f9fbf7 87%,rgba(249,251,247,.87) 100%);inset:0 0 auto}
  .kd-site .kd-hero__grid{width:45%;height:320px;top:auto;bottom:0}
  .kd-site .kd-hero__content{padding:56px 20px 360px;max-width:none}
  .kd-site .kd-hero__overline{gap:12px;margin-bottom:28px;font-size:9px;letter-spacing:.15em}
  .kd-site .kd-hero__rule{width:25px}
  .kd-site .kd-hero h1{font-size:clamp(38px,10.4vw,58px);line-height:1.32;letter-spacing:-.05em}
  .kd-site .kd-hero p{font-size:13px;line-height:2.05;margin-top:22px;letter-spacing:0}
  .kd-site .kd-hero__actions{margin-top:28px;gap:18px}
  .kd-site .kd-button{width:100%}
  .kd-site .kd-arrow-link{font-size:12px;gap:16px}.kd-site .kd-arrow-link__icon{width:46px;height:46px}
  .kd-site .kd-hero__keywords{top:auto;bottom:240px;right:17px;font-size:8px;line-height:1.8;padding-left:8px}
  .kd-site .kd-hero__bottomleft,.kd-site .kd-hero__bottomright{display:none}
  .kd-site .kd-ticker{height:52px}.kd-site .kd-ticker__track{font-size:10px;gap:22px;padding-right:22px;letter-spacing:.14em}.kd-site .kd-ticker__ja{font-size:11px}.kd-site .kd-ticker__sep{height:18px}
  .kd-site .kd-section{padding:84px 0}.kd-site .kd-section__heading h2,.kd-site .kd-section__top h2{font-size:clamp(34px,9vw,50px);line-height:1.26}
  .kd-site .kd-section__top{display:block;margin-bottom:36px}.kd-site .kd-section__top>p{margin-top:22px;font-size:13px}
  .kd-site .kd-section__top>.kd-arrow-link{margin-top:24px}
  .kd-site .kd-about__grid{display:block;margin-top:40px}.kd-site .kd-about__description p{font-size:13px}.kd-site .kd-about__statement{margin-top:40px;font-size:clamp(32px,8.6vw,48px)}
  .kd-site .kd-stats{margin-top:60px}.kd-site .kd-stat{padding:22px 12px 18px}.kd-site .kd-stat:nth-child(odd){padding-left:0}.kd-site .kd-stat dt{font-size:11px}
  .kd-site .kd-business__grid{grid-template-columns:1fr;gap:14px}.kd-site .kd-service__graphic{height:140px}
  .kd-site .kd-projects__grid{grid-template-columns:1fr;gap:52px}
  .kd-site .kd-project__image,.kd-site .kd-project--tall .kd-project__image,.kd-site .kd-project--wide .kd-project__image{height:280px}
  .kd-site .kd-project--tall .kd-project__image{height:400px}
  .kd-site .kd-project__info dl{grid-template-columns:1fr}
  .kd-site .kd-principle h2{font-size:clamp(32px,8.4vw,46px)}.kd-site .kd-principle__body p{font-size:14px}
  .kd-site .kd-flow__list{grid-template-columns:1fr;row-gap:0}
  .kd-site .kd-flow__list li{display:grid;grid-template-columns:55px 1fr;column-gap:20px;padding-bottom:30px;position:relative}
  .kd-site .kd-flow__list li:not(:last-child)::before{content:"";position:absolute;left:27px;top:55px;bottom:0;width:1px;background:var(--kd-line);display:block}
  .kd-site .kd-flow__num{grid-row:1 / 3}
  .kd-site .kd-flow h3{margin:12px 0 6px}
  .kd-site .kd-news__row{grid-template-columns:auto 1fr 22px;gap:8px 12px;padding:20px 2px}
  .kd-site .kd-news__row:hover{padding-left:8px;padding-right:2px}
  .kd-site .kd-news__row>p{grid-column:1 / 3;font-size:14px}.kd-site .kd-news__row i{grid-column:3;grid-row:1 / 3;justify-self:end}
  .kd-site .kd-company__table>div{grid-template-columns:1fr;gap:4px;padding:16px 2px}
  .kd-site .kd-company__table dt{font-size:12px;color:var(--kd-muted)}
  .kd-site .kd-access__map{height:260px}
  .kd-site .kd-contact__card{padding:22px}.kd-site .kd-contact__card b{font-size:26px}.kd-site .kd-contact__card--primary b{font-size:16px}
  .kd-site .kd-footer{padding:60px 0 110px}.kd-site .kd-footer__top{display:block}.kd-site .kd-footer__nav{margin-top:36px;gap:14px 30px}.kd-site .kd-footer__bottom{display:block;margin-top:44px}.kd-site .kd-footer__bottom small{display:block;margin-top:12px}
  .kd-site .kd-spcta{display:grid;grid-template-columns:1fr 1.3fr;position:fixed;left:0;right:0;bottom:0;z-index:9985;box-shadow:0 -8px 24px rgba(16,40,34,.12)}
  .kd-site .kd-spcta a{display:flex;align-items:center;justify-content:center;gap:8px;height:60px;font-size:14px;font-weight:700;background:#fff}
  .kd-site .kd-spcta a svg{width:18px;height:18px}
  .kd-site .kd-spcta .kd-spcta__primary{background:var(--kd-forest);color:#fff!important}
  .kd-site .kd-pagetop{right:14px;bottom:74px;width:44px;height:44px}
}
@media(max-width:380px){
  .kd-site .kd-hero h1{font-size:35px}.kd-site .kd-hero__content{padding-left:16px;padding-right:12px}.kd-site .kd-hero__overline{font-size:8px}
}
@media (prefers-reduced-motion:no-preference){
  .kd-js .kd-site .kd-spcta{transform:translateY(110%);transition:transform .5s var(--kd-ease)}
  .kd-js .kd-site .kd-spcta.kd-is-shown{transform:none}
}
@media(prefers-reduced-motion:reduce){
  .kd-site *,.kd-site *::before,.kd-site *::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .kd-site .kd-pagetop{opacity:1;pointer-events:auto}
}
