/* ==========================================================================
   TOUKI v5 — 追加：ヘッダー拡張／地図／下層ページ共通パーツ
   ========================================================================== */

/* ---------- Header actions ---------- */
.t-header__inner{gap:22px}
.t-nav ul{gap:26px}
.t-nav li{position:relative}
.t-nav .has-sub > a::after{content:"";display:inline-block}
.t-sub{position:absolute;left:50%;top:calc(100% + 18px);translate:-50% 8px;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:10px;opacity:0;visibility:hidden;transition:opacity .3s,translate .4s var(--ease-out),visibility .3s}
.t-sub::before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px}
.t-nav li:hover > .t-sub,.t-nav li:focus-within > .t-sub{opacity:1;visibility:visible;translate:-50% 0}
.t-sub a{display:flex !important;height:auto !important;overflow:visible !important;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:13px !important;color:var(--navy) !important;line-height:1.5 !important}
.t-sub a:hover{background:var(--paper-2)}
.t-sub a em{font-family:var(--font-en);font-size:11px;color:var(--accent);letter-spacing:.14em;min-width:22px}
.t-header__actions{display:flex;align-items:center;gap:10px;margin-left:8px}
.t-btn--line{border:1px solid var(--navy);color:var(--navy);background:transparent;padding:12px 18px;font-size:13px}
.t-btn--line:hover{background:var(--navy);color:#fff}
.t-btn svg{width:16px;height:16px;flex:none;position:relative;z-index:1}
.t-header__cta{display:inline-flex;gap:8px}
.t-hicon{display:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);place-items:center;color:var(--navy)}
.t-hicon svg{width:18px;height:18px}
.t-header:not(.is-scrolled) .t-btn--line{border-color:rgba(255,255,255,.55);color:#fff}
.t-header:not(.is-scrolled) .t-hicon{border-color:rgba(255,255,255,.4);color:#fff}
.t-header.is-solid{background:rgba(255,255,255,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:rgba(207,220,230,.6)}
.t-header.is-solid .t-logo__ja,.t-header.is-solid .t-nav a,.t-header.is-solid .t-header__tel strong{color:var(--navy)}
.t-header.is-solid .t-logo__en,.t-header.is-solid .t-header__tel small{color:var(--ink-3)}
.t-header.is-solid .t-btn--line{border-color:var(--navy);color:var(--navy)}
.t-header.is-solid .t-burger span{background:var(--navy)}
.t-header.is-solid .t-hicon{border-color:var(--line);color:var(--navy)}
.t-header.is-solid .t-header__cta{background:var(--navy)}
.t-nav a[aria-current="page"] span{color:var(--accent)}
.t-nav a[aria-current="page"]{position:relative}
@media (max-width:1240px){.t-nav{display:none}.t-burger{display:block}.t-header__actions{margin-left:auto}}
@media (max-width:1100px){.t-header__tel{display:flex}}
@media (max-width:860px){.t-header__tel,.t-header__sub{display:none}}
@media (max-width:560px){.t-header__cta{display:none !important}.t-hicon{display:grid}.t-header__actions{gap:8px}}
.t-burger{margin-left:4px}

/* ---------- 神奈川県マップ ---------- */
.t-kmap{display:block;width:100%;height:auto;overflow:visible;font-family:var(--font-text)}
.t-kmap__grid line{stroke:rgba(245,244,240,.06);stroke-width:1}
.t-kmap__tokyo{fill:rgba(245,244,240,.035);stroke:rgba(245,244,240,.18);stroke-width:.8;stroke-dasharray:3 3}
.t-kmap__land{fill:rgba(141,208,236,.06);stroke:var(--accent-2);stroke-width:1.4;stroke-linejoin:round;stroke-dasharray:3200;stroke-dashoffset:3200;transition:stroke-dashoffset 2.6s var(--ease-out),fill 1.2s 1.6s}
.t-kmap__yoko{fill:rgba(141,208,236,0);stroke:rgba(141,208,236,.5);stroke-width:.9;transition:fill 1s 1.8s}
.t-kmap__ward{fill:rgba(141,208,236,0);stroke:none;transition:fill .8s 2.2s}
.t-kmap__glow{opacity:0;transition:opacity 1.2s 2.4s}
.t-kmap__link{stroke:#fff;stroke-width:1;stroke-dasharray:3 4;opacity:0;transition:opacity .6s 2.8s}
.is-in .t-kmap__land{stroke-dashoffset:0;fill:rgba(141,208,236,.10)}
.is-in .t-kmap__yoko{fill:rgba(141,208,236,.16)}
.is-in .t-kmap__ward{fill:rgba(141,208,236,.55)}
.is-in .t-kmap__glow,.is-in .t-kmap__link{opacity:1}
.t-kmap__area{font-family:var(--font-display);font-size:15px;letter-spacing:.3em;fill:rgba(245,244,240,.55);opacity:0;transition:opacity .8s 1.6s}
.t-kmap__city{font-size:12px;letter-spacing:.2em;fill:var(--accent-2);opacity:0;transition:opacity .8s 2s}
.t-kmap__sea{font-family:var(--font-display);font-size:13px;letter-spacing:.3em;fill:rgba(245,244,240,.3);opacity:0;transition:opacity .8s 1.8s}
.is-in .t-kmap__area,.is-in .t-kmap__city,.is-in .t-kmap__sea{opacity:1}
.t-kmap__dot{fill:#fff;stroke:var(--navy);stroke-width:2;scale:0;transform-box:fill-box;transform-origin:center;transition:scale .5s var(--ease-out) 2.6s}
.t-kmap__pin--br .t-kmap__dot{fill:var(--accent-2);transition-delay:2.8s}
.t-kmap__pulse{fill:none;stroke:var(--accent-2);stroke-width:1.2;opacity:0}
.t-kmap__leader{fill:none;stroke:rgba(255,255,255,.7);stroke-width:1;stroke-dasharray:200;stroke-dashoffset:200;transition:stroke-dashoffset 1s var(--ease-out) 3s}
.t-kmap__tag{font-family:var(--font-en);font-size:10px;letter-spacing:.24em;fill:var(--accent-2);opacity:0;transition:opacity .6s 3.4s}
.t-kmap__name{font-size:15px;font-weight:700;letter-spacing:.06em;fill:#fff;opacity:0;transition:opacity .6s 3.5s}
.is-in .t-kmap__dot{scale:1}
.is-in .t-kmap__leader{stroke-dashoffset:0}
.is-in .t-kmap__tag,.is-in .t-kmap__name{opacity:1}
@media (prefers-reduced-motion: no-preference){
  .is-in .t-kmap__pulse{animation:kpulse 2.6s ease-out 3.2s infinite;transform-box:fill-box;transform-origin:center}
  .is-in .t-kmap__pin--br .t-kmap__pulse{animation-delay:4.4s}
}
@keyframes kpulse{0%{opacity:.9;scale:.6}100%{opacity:0;scale:3.4}}
.t-num .t-kmap{margin-top:14px;max-width:320px}
.t-num .t-kmap .t-kmap__name{font-size:22px}
.t-num .t-kmap .t-kmap__tag{font-size:14px}
.t-num .t-kmap .t-kmap__sea,.t-num .t-kmap .t-kmap__city{display:none}

/* ---------- Access ---------- */
.t-access{margin-top:80px;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;background:var(--navy);color:#fff;border-radius:var(--radius-lg);padding:44px;box-shadow:var(--shadow-lg);position:relative;overflow:clip}
.t-access::before{content:"";position:absolute;left:-10%;top:-30%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(35,144,200,.28),transparent)}
.t-access__map{position:relative}
.t-access__list{position:relative;display:grid;gap:20px}
.t-access__item{display:grid;grid-template-columns:36px 1fr;gap:4px 14px;padding-bottom:20px;border-bottom:1px solid var(--line-dark)}
.t-access__item em{font-family:var(--font-en);font-size:14px;letter-spacing:.2em;color:var(--accent-2);grid-row:span 3;padding-top:4px}
.t-access__item h3{font-family:var(--font-display);font-size:20px;letter-spacing:.06em}
.t-access__item h3 small{font-family:var(--font-text);font-size:11px;font-weight:400;color:rgba(255,255,255,.6);margin-left:10px}
.t-access__item p{font-size:13.5px;color:rgba(255,255,255,.8);line-height:1.9}
.t-access__item .t-link{color:#fff;font-size:13px;justify-self:start}
.t-access__note{font-size:12.5px;color:rgba(255,255,255,.6)}
@media (max-width:900px){.t-access{grid-template-columns:1fr;padding:28px 20px;gap:24px}}

/* ==========================================================================
   下層ページ
   ========================================================================== */
.t-phero{position:relative;padding:170px 0 80px;background:var(--navy);color:#fff;overflow:clip;isolation:isolate}
.t-phero__bg{position:absolute;inset:0;z-index:-2}
.t-phero__bg img{width:100%;height:100%;object-fit:cover;opacity:.32;scale:1.08;transition:scale 2.4s var(--ease-out)}
.t-phero.is-in .t-phero__bg img{scale:1}
.t-phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,36,50,.95) 0%,rgba(15,36,50,.72) 55%,rgba(15,36,50,.35) 100%)}
.t-phero::after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 70%);-webkit-mask-image:linear-gradient(90deg,#000,transparent 70%)}
.t-crumb{display:flex;gap:10px;font-size:12px;color:rgba(255,255,255,.6);margin-bottom:26px;flex-wrap:wrap}
.t-crumb a:hover{color:#fff}
.t-crumb span[aria-hidden]{opacity:.5}
.t-phero__en{font-family:var(--font-en);font-size:13px;letter-spacing:.3em;color:var(--accent-2);text-transform:uppercase;margin-bottom:12px;display:flex;align-items:center;gap:14px}
.t-phero__en::before{content:"";width:26px;height:1px;background:currentColor}
.t-phero h1{font-family:var(--font-display);font-size:clamp(32px,4.6vw,58px);line-height:1.3;letter-spacing:.08em}
.t-phero__lead{margin-top:22px;max-width:40em;font-size:15px;color:rgba(255,255,255,.82)}
.t-phero__line{position:absolute;left:0;bottom:0;height:3px;width:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:left;scale:0 1;transition:scale 1.6s var(--ease-out) .4s}
.t-phero.is-in .t-phero__line{scale:1 1}

.t-sec{padding:var(--section) 0}
.t-sec--white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.t-sec--navy{background:var(--navy);color:#fff}
.t-sec--navy .t-h2{color:#fff}
.t-narrow{max-width:820px;margin-inline:auto}
.t-lead{font-size:16px;color:var(--ink-2);line-height:2.1}
.t-lead strong{color:var(--navy)}
.t-quote{font-family:var(--font-display);font-size:clamp(22px,3vw,34px);color:var(--navy);letter-spacing:.08em;line-height:1.6;text-align:center;margin:10px 0 30px}
.t-sec--navy .t-quote{color:#fff}

/* page anchors */
.t-anchors{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:36px}
.t-anchors a{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border:1px solid var(--line);background:#fff;border-radius:999px;font-size:13.5px;font-weight:700;color:var(--navy);transition:background .3s,color .3s,transform .4s var(--ease-out)}
.t-anchors a em{font-family:var(--font-en);font-size:12px;color:var(--accent)}
.t-anchors a:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}

/* split block */
.t-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:56px 0;border-top:1px solid var(--line);scroll-margin-top:100px}
.t-split:first-child{border-top:0}
.t-split--rev .t-split__media{order:2}
.t-split__media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3;background:var(--paper-3)}
.t-split__media img{width:100%;height:100%;object-fit:cover;transition:scale 1.4s var(--ease-out)}
.t-split__media::after{content:"";position:absolute;inset:0;background:var(--navy);transform-origin:right;transition:scale 1.1s var(--ease-in-out)}
.t-split.is-in .t-split__media::after{scale:0 1}
.t-split:hover .t-split__media img{scale:1.04}
.t-split__num{font-family:var(--font-en);font-size:64px;line-height:1;color:transparent;-webkit-text-stroke:1px var(--accent);display:block;margin-bottom:6px}
.t-split h2,.t-split h3{font-family:var(--font-display);font-size:clamp(24px,2.8vw,34px);color:var(--navy);letter-spacing:.05em;line-height:1.45;margin-bottom:18px}
.t-split p{color:var(--ink-2);font-size:15px;margin-bottom:14px}
.t-split p strong{color:var(--navy)}
.t-checks{display:grid;gap:8px;margin-top:18px}
.t-checks li{position:relative;padding-left:28px;font-size:14px;color:var(--ink)}
.t-checks li::before{content:"";position:absolute;left:0;top:.55em;width:16px;height:16px;border-radius:50%;background:var(--paper-2);border:1px solid var(--accent)}
.t-checks li::after{content:"";position:absolute;left:5px;top:calc(.55em + 4px);width:6px;height:4px;border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);rotate:-45deg}
.t-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.t-chips span{font-size:12px;padding:6px 14px;border-radius:999px;background:var(--paper-2);color:var(--navy);font-weight:500}

/* feature cards */
.t-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.t-feat{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:30px 28px;position:relative;overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s}
.t-feat:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.t-feat::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2));scale:0 1;transform-origin:left;transition:scale .9s var(--ease-out) .2s}
.t-feat.is-in::before{scale:1 1}
.t-feat em{font-family:var(--font-en);font-size:13px;letter-spacing:.2em;color:var(--accent)}
.t-feat h3{font-family:var(--font-display);font-size:20px;color:var(--navy);margin:10px 0 8px;letter-spacing:.04em}
.t-feat p{font-size:13.5px;color:var(--ink-2)}
.t-sec--navy .t-feat{background:rgba(255,255,255,.04);border-color:var(--line-dark)}
.t-sec--navy .t-feat h3{color:#fff}.t-sec--navy .t-feat p{color:rgba(255,255,255,.75)}

/* spec table */
.t-table{border-top:1px solid var(--line);background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}
.t-table > div{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--line)}
.t-table dt{padding:18px 24px;background:var(--paper);color:var(--navy);font-weight:700;font-size:14px}
.t-table dd{padding:18px 24px;font-size:14.5px;white-space:pre-line}
@media (max-width:640px){.t-table > div{grid-template-columns:1fr}.t-table dt{padding:12px 18px 4px;background:none;font-size:12.5px;color:var(--ink-3)}.t-table dd{padding:0 18px 14px}}

/* vertical timeline */
.t-vtl{position:relative;max-width:760px;margin:0 auto;padding-left:40px}
.t-vtl::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:1px;background:var(--line)}
.t-vtl__bar{position:absolute;left:8px;top:8px;width:1px;height:calc(var(--prog,0) * (100% - 16px));background:linear-gradient(var(--accent),var(--accent-2));transition:height .2s linear}
.t-vtl li{position:relative;padding:0 0 36px}
.t-vtl li::before{content:"";position:absolute;left:-38px;top:6px;width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid var(--line);transition:border-color .5s,background .5s,scale .5s var(--ease-out)}
.t-vtl li.is-in::before{border-color:var(--accent);background:var(--accent);scale:1.1}
.t-vtl em{font-family:var(--font-en);font-size:26px;color:var(--navy);letter-spacing:.02em;display:block;line-height:1.2}
.t-vtl em small{font-family:var(--font-text);font-size:12px;color:var(--ink-3);margin-left:8px}
.t-vtl p{font-size:14.5px;color:var(--ink-2);margin-top:6px}

/* gallery */
.t-filter{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:36px}
.t-filter button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 20px;font-size:13px;font-weight:700;color:var(--navy);transition:background .3s,color .3s}
.t-filter button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.t-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;grid-auto-flow:dense}
.t-gallery__item{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--paper-3);aspect-ratio:1;cursor:zoom-in;border:0;padding:0;transition:opacity .4s,scale .5s var(--ease-out)}
.t-gallery__item--wide{grid-column:span 2;aspect-ratio:2/1}
.t-gallery__item--tall{grid-row:span 2;aspect-ratio:1/2}
.t-gallery__item img{width:100%;height:100%;object-fit:cover;transition:scale 1s var(--ease-out)}
.t-gallery__item:hover img{scale:1.06}
.t-gallery__item figcaption,.t-gallery__item span{position:absolute;left:0;right:0;bottom:0;padding:24px 14px 12px;font-size:12px;color:#fff;text-align:left;background:linear-gradient(transparent,rgba(15,36,50,.85));opacity:0;translate:0 10px;transition:opacity .4s,translate .4s var(--ease-out)}
.t-gallery__item:hover span,.t-gallery__item:focus-visible span{opacity:1;translate:0 0}
.t-gallery__item.is-hidden{display:none}
@media (max-width:900px){.t-gallery{grid-template-columns:repeat(2,1fr)}.t-gallery__item--tall{grid-row:auto;aspect-ratio:1}}
.t-lightbox{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:90vh;overflow:visible}
.t-lightbox::backdrop{background:rgba(10,20,28,.86);backdrop-filter:blur(4px)}
.t-lightbox img{max-width:100%;max-height:82vh;border-radius:var(--radius-md);display:block;margin:auto}
.t-lightbox p{color:#fff;text-align:center;font-size:13px;margin-top:12px}
.t-lightbox button{position:absolute;top:-46px;right:0;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-size:22px}
.t-lightbox[open]{animation:lb-in .4s var(--ease-out)}
@keyframes lb-in{from{opacity:0;scale:.96}}

/* photo strip */
.t-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.t-photos figure{border-radius:var(--radius-md);overflow:hidden;position:relative;aspect-ratio:4/3;background:var(--paper-3)}
.t-photos img{width:100%;height:100%;object-fit:cover}
.t-photos figcaption{position:absolute;left:12px;bottom:12px;background:rgba(15,36,50,.85);color:#fff;font-size:12px;padding:6px 12px;border-radius:4px}
@media (max-width:760px){.t-photos{grid-template-columns:1fr 1fr}}

/* 六か条 */
.t-kanji{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.t-kanji li{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:40px 30px 32px;overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s}
.t-kanji li:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.t-kanji__num{position:absolute;right:-6px;top:-24px;font-family:var(--font-display);font-size:150px;font-weight:800;line-height:1;color:var(--paper-2);transition:color .6s,translate .8s var(--ease-out);translate:0 20px}
.t-kanji li.is-in .t-kanji__num{translate:0 0}
.t-kanji li:hover .t-kanji__num{color:rgba(141,208,236,.18)}
.t-kanji h3{position:relative;font-family:var(--font-display);font-size:22px;color:var(--navy);letter-spacing:.05em;line-height:1.5;margin-bottom:14px}
.t-kanji h3 small{display:block;font-family:var(--font-en);font-size:12px;letter-spacing:.24em;color:var(--accent);margin-bottom:6px}
.t-kanji p{position:relative;font-size:14px;color:var(--ink-2);line-height:2}
@media (max-width:1000px){.t-kanji{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.t-kanji{grid-template-columns:1fr}}

/* 給与インフォグラフィック */
.t-wage{display:grid;gap:22px}
.t-wage__row{display:grid;grid-template-columns:200px 1fr 170px;gap:18px;align-items:center}
.t-wage__row b{font-size:14px;color:var(--navy)}
.t-wage__row b small{display:block;font-weight:400;font-size:12px;color:var(--ink-3)}
.t-wage__track{position:relative;height:14px;background:var(--paper-2);border-radius:999px}
.t-wage__bar{position:absolute;top:0;height:100%;left:var(--from);width:0;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width 1.4s var(--ease-out)}
.t-wage.is-in .t-wage__bar{width:var(--w)}
.t-wage__row span{font-family:var(--font-en);font-size:18px;color:var(--navy);text-align:right}
.t-wage__axis{display:grid;grid-template-columns:200px 1fr 170px;gap:18px;font-family:var(--font-en);font-size:11px;color:var(--ink-3)}
.t-wage__axis div{display:flex;justify-content:space-between}
@media (max-width:760px){.t-wage__row,.t-wage__axis{grid-template-columns:1fr}.t-wage__row span{text-align:left}.t-wage__axis{display:none}}
.t-hl{margin-top:28px;display:flex;align-items:center;gap:16px;padding:22px 26px;border-radius:var(--radius-md);background:var(--navy);color:#fff}
.t-hl strong{font-family:var(--font-en);font-size:clamp(26px,3vw,36px);color:var(--accent-2);white-space:nowrap}
.t-hl span{font-size:13.5px;color:rgba(255,255,255,.8)}

/* benefits */
.t-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.t-benefits li{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 18px;font-size:14px;font-weight:700;color:var(--navy);display:grid;gap:10px;justify-items:start;transition:transform .4s var(--ease-out),border-color .4s}
.t-benefits li:hover{transform:translateY(-3px);border-color:var(--accent)}
.t-benefits svg{width:28px;height:28px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.t-benefits small{font-weight:400;color:var(--ink-2);font-size:12px}
@media (max-width:900px){.t-benefits{grid-template-columns:1fr 1fr}}

/* 1日の流れ（タイムバー） */
.t-day{position:relative;padding-top:12px}
.t-day__bar{display:flex;height:46px;border-radius:12px;overflow:hidden;background:var(--paper-2)}
.t-day__seg{flex:var(--f);display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--navy);scale:1 0;transform-origin:bottom;transition:scale .6s var(--ease-out);transition-delay:calc(var(--i) * .08s)}
.t-day__seg--work{background:linear-gradient(180deg,var(--accent),#1A6E9C)}
.t-day__seg--rest{background:var(--paper-3);color:var(--navy)}
.t-day__seg--meet{background:var(--navy)}
.t-day.is-in .t-day__seg{scale:1 1}
.t-day__ticks{display:flex;margin-top:10px;font-family:var(--font-en);font-size:12px;color:var(--ink-3)}
.t-day__ticks span{flex:var(--f)}
.t-day__legend{display:flex;gap:18px;margin-top:18px;font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.t-day__legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
@media (max-width:760px){.t-day__seg{font-size:0}}

/* steps (generic horizontal flow) */
.t-flow{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:14px;counter-reset:f}
.t-flow li{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:24px 20px;text-align:center}
.t-flow li::before{counter-increment:f;content:"0" counter(f);display:block;font-family:var(--font-en);font-size:13px;letter-spacing:.2em;color:var(--accent);margin-bottom:6px}
.t-flow li:not(:last-child)::after{content:"";position:absolute;right:-12px;top:50%;width:10px;height:10px;border-top:1.5px solid var(--accent);border-right:1.5px solid var(--accent);rotate:45deg;translate:0 -50%}
.t-flow b{font-family:var(--font-display);font-size:18px;color:var(--navy)}
.t-flow p{font-size:12.5px;color:var(--ink-2);margin-top:4px}
@media (max-width:760px){.t-flow{grid-template-columns:1fr}.t-flow li::after{display:none}}

/* events */
.t-events{display:grid;gap:22px}
.t-event{display:grid;grid-template-columns:140px 1fr;gap:28px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px}
.t-event__when{font-family:var(--font-display);font-size:28px;color:var(--navy);letter-spacing:.1em;border-right:1px solid var(--line);padding-right:20px}
.t-event__when small{display:block;font-family:var(--font-en);font-size:11px;letter-spacing:.24em;color:var(--accent)}
.t-event h3{font-family:var(--font-display);font-size:22px;color:var(--navy);margin-bottom:8px}
.t-event p{font-size:14.5px;color:var(--ink-2)}
@media (max-width:640px){.t-event{grid-template-columns:1fr;gap:12px;padding:22px}.t-event__when{border-right:0;padding:0}}

/* form */
.t-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:44px;box-shadow:var(--shadow-sm);display:grid;gap:22px}
.t-field{display:grid;gap:8px}
.t-field > span{font-size:13.5px;font-weight:700;color:var(--navy);display:flex;gap:8px;align-items:center}
.t-field > span b{font-size:10.5px;padding:2px 8px;border-radius:3px;background:var(--navy);color:#fff;font-weight:700}
.t-field > span i{font-style:normal;font-size:10.5px;padding:2px 8px;border-radius:3px;background:var(--paper-2);color:var(--ink-2)}
.t-field input:not([type=radio]):not([type=checkbox]),.t-field textarea,.t-field select{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:16px;background:var(--paper);transition:border-color .3s,box-shadow .3s,background .3s}
.t-field input:focus,.t-field textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(35,144,200,.12)}
.t-field input:user-invalid,.t-field textarea:user-invalid{border-color:#c0392b}
.t-radios{display:flex;flex-wrap:wrap;gap:10px}
.t-radios label{position:relative}
.t-radios input{position:absolute;opacity:0}
.t-radios span{display:inline-block;padding:10px 18px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.t-radios input:checked + span{background:var(--navy);color:#fff;border-color:var(--navy)}
.t-radios input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.t-consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.t-consent input{width:20px;height:20px;margin-top:3px;accent-color:var(--navy)}
.t-consent a{color:var(--accent);text-decoration:underline}
.t-form .t-btn{justify-self:center;min-width:280px}
.t-hp{position:absolute;left:-9999px}
@media (max-width:640px){.t-form{padding:26px 18px}}

/* contact methods */
.t-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:48px}
.t-method{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px 26px;text-align:center;display:grid;gap:8px;justify-items:center;transition:transform .5s var(--ease-out),box-shadow .5s}
.t-method:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.t-method svg{width:36px;height:36px;stroke:var(--accent);fill:none;stroke-width:1.5}
.t-method h3{font-family:var(--font-display);font-size:18px;color:var(--navy)}
.t-method strong{font-family:var(--font-en);font-size:28px;color:var(--navy);letter-spacing:.02em}
.t-method small{font-size:12px;color:var(--ink-3)}
@media (max-width:860px){.t-methods{grid-template-columns:1fr}}

/* prose */
.t-prose{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:52px}
.t-prose h2{font-family:var(--font-display);font-size:20px;color:var(--navy);margin:38px 0 12px;padding-left:14px;border-left:3px solid var(--accent)}
.t-prose p,.t-prose li{font-size:14.5px;color:var(--ink-2)}
.t-prose ul{list-style:disc;padding-left:1.6em;margin-top:8px}
.t-prose .t-prose__box{background:var(--paper);border-radius:var(--radius-md);padding:20px 24px;margin-top:10px}
@media (max-width:640px){.t-prose{padding:28px 20px}}

/* news list (page) */
.t-newsitem{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px}
.t-newsitem summary{list-style:none;display:grid;grid-template-columns:120px 1fr 28px;gap:18px;align-items:center;padding:20px 24px;cursor:pointer}
.t-newsitem summary::-webkit-details-marker{display:none}
.t-newsitem time{font-family:var(--font-en);font-size:14px;color:var(--ink-3)}
.t-newsitem h3{font-size:15.5px;color:var(--ink);font-weight:700}
.t-newsitem summary i{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);position:relative;transition:rotate .4s var(--ease-out)}
.t-newsitem summary i::before,.t-newsitem summary i::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:1.5px;background:var(--navy);translate:-50% -50%}
.t-newsitem summary i::after{rotate:90deg;transition:rotate .4s}
.t-newsitem[open] summary i::after{rotate:0deg}
.t-newsitem__body{padding:0 24px 24px 162px;font-size:14px;color:var(--ink-2)}
.t-newsitem__body img{border-radius:var(--radius-md);margin-top:14px;max-height:340px;width:auto}
.t-newsitem__imgs{display:flex;gap:10px;flex-wrap:wrap}
.t-newsitem__imgs img{height:200px;width:auto;object-fit:cover}
@media (max-width:640px){.t-newsitem summary{grid-template-columns:1fr 24px}.t-newsitem time{grid-column:1/-1}.t-newsitem__body{padding:0 18px 20px}}

/* bottom CTA band */
.t-cta{position:relative;background:var(--navy);color:#fff;overflow:clip;padding:84px 0}
.t-cta::before{content:"";position:absolute;right:-10%;top:-60%;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(35,144,200,.3),transparent)}
.t-cta__grid{position:relative;display:grid;grid-template-columns:1fr auto auto;gap:40px;align-items:center}
.t-cta h2{font-family:var(--font-display);font-size:clamp(24px,3vw,36px);letter-spacing:.06em;line-height:1.5}
.t-cta p{color:rgba(255,255,255,.7);font-size:13.5px;margin-top:8px}
.t-cta__tel{display:grid;gap:2px}
.t-cta__tel small{font-family:var(--font-en);font-size:11px;letter-spacing:.24em;color:var(--accent-2)}
.t-cta__tel a{font-family:var(--font-en);font-size:34px;line-height:1.1}
.t-cta__tel span{font-size:11.5px;color:rgba(255,255,255,.55)}
@media (max-width:900px){.t-cta__grid{grid-template-columns:1fr;gap:24px}}

/* ring stat (message page) */
.t-statrow{display:grid;grid-template-columns:auto 1fr;gap:56px;align-items:center}
.t-statrow .t-ring{width:220px;height:220px}
.t-statrow .t-num__value--ring{font-size:52px;color:var(--navy)}
.t-statrow .t-ring__bg{stroke:var(--paper-3)}
.t-statrow .t-ring__fg{stroke:var(--accent)}
.t-statrow.is-in .t-ring__fg{stroke-dashoffset:calc(339.3 - 339.3 * var(--pct) / 100)}
@media (max-width:760px){.t-statrow{grid-template-columns:1fr;justify-items:center;gap:28px}}

/* misc */
.t-center{text-align:center}
.t-mt{margin-top:56px}
.t-btnrow{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:36px}
@media (max-width:760px){.t-split{grid-template-columns:1fr;gap:28px;padding:40px 0}.t-split--rev .t-split__media{order:0}.t-feats{grid-template-columns:1fr}.t-phero{padding:130px 0 56px}}

.t-opening__word{font-size:clamp(24px,4.4vw,52px);line-height:1.7;text-align:center}

/* キャッチコピー */
.t-hero__title{font-size:clamp(28px,4vw,52px);line-height:1.45;letter-spacing:.06em}
.t-hero__small{font-size:.62em;letter-spacing:.1em;color:rgba(255,255,255,.9);display:inline-block;margin-bottom:.2em}
.t-hero__big{font-size:1.12em;letter-spacing:.08em}
.t-opening__word{font-size:clamp(18px,2.6vw,30px)}
.t-opening__big{font-size:1.7em;letter-spacing:.14em;margin-top:.2em}
@media (max-width:640px){.t-hero__title .t-kinetic,.t-opening__word .t-kinetic{white-space:normal}}
/* 数字カードのタグ */
.t-num__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.t-num__tags li{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--line-dark);border-radius:999px;font-size:12.5px;color:#fff;opacity:0;translate:0 8px;transition:opacity .5s,translate .6s var(--ease-out),border-color .4s}
.t-num__tags li i{font-style:normal;font-family:var(--font-en);font-size:12px;color:var(--accent-2)}
.t-num.is-in .t-num__tags li{opacity:1;translate:0 0}
.t-num.is-in .t-num__tags li:nth-child(2){transition-delay:.15s}.t-num.is-in .t-num__tags li:nth-child(3){transition-delay:.3s}.t-num.is-in .t-num__tags li:nth-child(4){transition-delay:.45s}
.t-num__tags li:hover{border-color:var(--accent-2)}
