/* =========================================================================
   tlnt-talenta — corp.infomart.co.jp の再現（実測値ベース。verification/2026-09-17-talenta/reference-infomart/measure/）
   参考は Tailwind の固定 px（内容幅 1120・左右 60・ヘッダー 92）。伸縮の単位は使わず、実測の px で組む。
   色だけ TALENTA の緑に置き換え：#6eb72f→#16A34A（ボタン・印）／#82d20f→#4ADE80（丸）／#66b329→#15803D／#00645a→#166534（数字・上ボタン）
                                  ／#148871→#15803D（帯）／#025c54→#14532D（足元）／#81aeaa→#A7D7B8／#2c746f→#2F6B45
   ========================================================================= */

:root {
	--g:      #16A34A;   /* 参考 #6eb72f */
	--g2:     #15803D;   /* 参考 #66b329 */
	--g3:     #4ADE80;   /* 参考 #82d20f（丸） */
	--gd:     #166534;   /* 参考 #00645a（数字・会員ボタン） */
	--gband:  #15803D;   /* 参考 #148871 */
	--gfoot:  #14532D;   /* 参考 #025c54 */
	--gfoot-line: #2F6B45;
	--gfoot-text: #A7D7B8;
	--ghost:  #eff2f1;
	--gray:   #f8f8f8;
	--line:   #d9e0de;
	--line2:  #e2e2e2;
	--line3:  #bbc4c1;
	--ink:    #000;
	--ink2:   #222;
	--ff:     Figtree, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Noto Sans JP", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	--ff-en:  Figtree, sans-serif;
	--ff-num: "Work Sans", Figtree, sans-serif;
	--ease:   cubic-bezier(.4, 0, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; position: relative; background: #fff; color: var(--ink); font-family: var(--ff); font-size: 14px; line-height: 21px; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, figure, dl, dd, ul, ol { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
address { font-style: normal; }
[id] { scroll-margin-top: 92px; }
.page-bg { background: var(--gray); }                       /* 参考 div.bg-top-gray（トップ本文の地） */
body[data-page="page"] .page-bg { background: #fff; }      /* 下層は白 */

/* ---------- ロゴ（参考 173×43） ---------- */
.t-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); }
.t-logo__mark { width: 40px; height: auto; }
.t-logo__text { font-family: var(--ff-en); font-weight: 700; font-size: 26px; letter-spacing: .1em; line-height: 1; }

/* ---------- ヘッダー（実測 92px・fixed・白） ---------- */
.hd { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; height: 92px; display: flex; background: #fff; transform: translateY(0); transition: transform .5s var(--ease); }
.hd.is-hidden { transform: translateY(-100%); }
.hd__left { flex: 1; display: flex; align-items: center; padding-left: 56px; margin-right: 32px; }
.hd__logo { display: inline-flex; height: 43px; align-items: center; }
.hd__right { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; margin-right: 32px; }
.hd__sub { display: flex; margin: 14px 0 16px; }
.hd__sub-link { display: flex; padding: 0 20px; font-size: 14px; line-height: 20px; transition: color .3s; }
.hd__sub-link + .hd__sub-link { border-left: 1px solid var(--line); }
.hd__sub-link:last-child { padding-right: 0; }
.hd__sub-link:hover { color: var(--g); }
.hd__nav { display: flex; gap: 32px; }
.hd__nav a { position: relative; display: block; padding-bottom: 16px; font-size: 16px; line-height: 26px; font-weight: 700; letter-spacing: .02em; transition: color .3s; }
.hd__nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--g); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.hd__nav a:hover, .hd__nav a[aria-current="page"] { color: var(--g); }
.hd__nav a:hover::after, .hd__nav a[aria-current="page"]::after { transform: scaleX(1); }
.hd__btns { display: flex; flex-direction: column; width: 151px; }
.hd__btn { display: flex; justify-content: center; align-items: center; height: 46px; padding: 12.5px 20px; color: #fff; font-size: 14px; line-height: 21px; font-weight: 700; letter-spacing: .56px; transition: opacity .3s; }
.hd__btn--login { background: var(--gd); }
.hd__btn--contact { background: var(--g2); }
.hd__btn:hover { opacity: .8; }
.hd__menu { display: none; }
.mnav { display: none; }

/* ---------- 共通のボタン（実測：緑・角丸 2.5・padding 10/24・右に 44px の丸＋8px の白い点） ---------- */
.t-btn { display: flex; justify-content: space-between; align-items: center; gap: 4px; background: var(--g); color: #fff; border-radius: 2.5px; padding: 10px 24px; font-size: 16px; line-height: 25.6px; font-weight: 700; transition: background .3s; }
.t-btn:hover { background: var(--g2); }
.t-btn__dot { position: relative; width: 44px; height: 44px; border-radius: 9999px; background: var(--g3); flex: none; display: flex; align-items: center; justify-content: center; }
.t-btn__dot i { width: 8px; height: 8px; border-radius: 9999px; background: #fff; transition: transform .3s var(--ease), border-radius .3s; }
.t-btn:hover .t-btn__dot i { transform: translateX(2px) scale(1.2); }
.t-btn--about { width: 310px; height: 64px; flex: none; }
.t-btn--card { width: 355px; height: 64px; margin-top: 36px; }
.t-btn--ft { width: 532px; height: 100px; padding: 10px 48px; font-size: 24px; line-height: 33.6px; letter-spacing: .96px; border-radius: 5px; }

/* 丸い矢印つきの行き先（実測：22px の丸（線 #acb2b0）＋緑の矢印＋16px の文字・下線が地から伸びる） */
.t-alink { display: inline-flex; align-items: baseline; gap: 6px; font-size: 16px; line-height: 25.6px; }
.t-alink__ico { position: relative; top: 5px; width: 22px; height: 22px; border-radius: 50%; border: 1px solid #acb2b0; flex: none; transition: background .3s, border-color .3s; }
.t-alink__ico::after { content: ""; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; border-top: 2px solid var(--g); border-right: 2px solid var(--g); transform: translate(-60%, -50%) rotate(45deg); transition: border-color .3s; }
.t-alink__text { background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: bottom left; background-size: 0 1px; transition: background-size .3s var(--ease), color .3s; }
.t-alink:hover { color: var(--g); }
.t-alink:hover .t-alink__text { background-size: 100% 1px; }
.t-alink:hover .t-alink__ico { background: var(--g); border-color: var(--g); }
.t-alink:hover .t-alink__ico::after { border-color: #fff; }

/* ---------- 1 最初の画面（実測：1440×810＝16:9・max 100dvh。文字は sticky の箱から absolute で left 52・y 628） ---------- */
.kv { position: relative; }
.kv__stage { position: relative; width: 100%; aspect-ratio: 1920 / 1080; max-height: 100dvh; background: var(--gray); overflow: hidden; }
.kv__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kv__logo { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -54%); display: flex; flex-direction: column; align-items: center; gap: 20px; }
.kv__mark { width: 150px; height: auto; opacity: 0; animation: kvMark 1.1s var(--ease) .1s forwards; }
.kv__word { font-family: var(--ff-en); font-weight: 700; font-size: 44px; letter-spacing: .18em; line-height: 1; color: var(--ink); opacity: 0; animation: kvWord 1s var(--ease) .5s forwards; }
.kv__sub { font-size: 15px; font-weight: 700; letter-spacing: .12em; color: var(--gd); opacity: 0; animation: kvWord .9s var(--ease) .8s forwards; }
.kv__dot { position: absolute; border-radius: 50%; background: var(--g); opacity: 0; animation: kvDot 6s ease-in-out infinite; }
.kv__dot--1 { width: 14px; height: 14px; left: 38%; top: 30%; animation-delay: .8s; }
.kv__dot--2 { width: 8px; height: 8px; left: 61%; top: 26%; background: var(--g3); animation-delay: 1.6s; }
.kv__dot--3 { width: 10px; height: 10px; left: 63%; top: 66%; animation-delay: 2.4s; }
.kv__dot--4 { width: 6px; height: 6px; left: 36%; top: 70%; background: var(--g3); animation-delay: 3.2s; }
@keyframes kvMark { from { opacity: 0; transform: translateY(24px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes kvWord { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes kvDot { 0%, 100% { opacity: 0; transform: translateY(6px); } 20%, 80% { opacity: .9; } 50% { transform: translateY(-10px); } }
.kv__sticky { position: sticky; top: 0; height: 0; pointer-events: none; z-index: 2; }
.kv__copy { position: absolute; left: 52px; bottom: -41%; width: 797px; height: 134px; pointer-events: auto; }
.kv__title { font-size: 62px; line-height: 67px; font-weight: 700; letter-spacing: .02em; color: var(--ink); opacity: 0; animation: kvWord .9s var(--ease) .6s forwards; }
@media (prefers-reduced-motion: reduce) { .kv__mark, .kv__word, .kv__sub, .kv__title { animation: none; opacity: 1; } .kv__dot { animation: none; opacity: .6; } }

/* ---------- 2 About us（実測：padding 160/60/100・flex baseline gap 36・134｜533｜310） ---------- */
.about { padding: 160px 60px 100px; }
.about__in { display: grid; grid-template-columns: 1fr 533px; gap: 36px 60px; align-items: start; max-width: 1120px; margin: 0 auto; }
.about__left { display: flex; flex-direction: column; align-items: flex-start; }
.about__en { font-family: var(--ff-en); font-size: 14px; line-height: 21px; font-weight: 700; letter-spacing: .84px; text-transform: uppercase; color: var(--g); margin-bottom: 22px; }
.about__title { position: relative; font-size: 56px; line-height: 1.25; font-weight: 700; letter-spacing: .02em; margin: 0 0 36px; padding-bottom: 26px; }
.about__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 48px; height: 3px; background: var(--g); }
.about__title br + * , .about__title { font-feature-settings: "palt"; }
.about__text { font-size: 16px; line-height: 32px; font-weight: 700; letter-spacing: .08em; padding-top: 46px; }
.about__text p + p { margin-top: 1.4em; }
.kv__h1 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- 3 Our Program（実測：透かし 162px・帯 1440×660・白いカード 475×458） ---------- */
.biz { padding: 0 0 112px; position: relative; }
.biz__ghost { font-family: var(--ff-en); font-size: 162px; line-height: 162px; font-weight: 300; letter-spacing: -3.24px; text-transform: uppercase; color: var(--ghost); white-space: nowrap; transform: translate(-16px, 28px); margin-top: 28px; }
.biz__band { position: relative; width: 100%; height: 660px; background: var(--gband); }
.biz__bg { width: 100%; height: 100%; }
.biz__bg img { width: 100%; height: 100%; object-fit: cover; }
.biz__over { position: absolute; inset: 0; display: flex; justify-content: center; padding: 0 60px; }
.biz__in { display: flex; justify-content: flex-end; align-items: center; width: 100%; max-width: 1120px; }
.biz__card { width: 475px; background: #fff; border-radius: 5px; padding: 96px 60px; }
.biz__brand { display: flex; flex-direction: column; gap: 6px; margin-bottom: 32px; }
.biz__logo .t-logo__mark { width: 36px; }
.biz__logo .t-logo__text { font-size: 30px; }
.biz__brand-sub { font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--gd); }
.biz__text { font-size: 16px; line-height: 32px; letter-spacing: .64px; }

/* ---------- 3b 数字の行（実測：mt 112・見出し 24px・数字 34px Work Sans 600・単位 18px） ---------- */
.num { padding: 0 60px; margin-top: 112px; }
.num__in { display: flex; justify-content: center; max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.num__group--main { padding-right: 40px; margin-right: 40px; border-right: 1px solid var(--line2); flex: none; }
.num__group--side { flex: none; }
.num__head { display: flex; align-items: center; gap: 20px; }
.num__title { font-size: 24px; line-height: 33.6px; font-weight: 700; letter-spacing: .96px; }
.num__caption { color: #999; letter-spacing: .28px; }
.num__row { display: flex; margin-top: 24px; }
.num__cell { display: flex; align-items: center; padding-right: 36px; margin-right: 36px; border-right: 1px solid var(--line2); white-space: nowrap; }
.num__cell:last-child { padding-right: 0; margin-right: 0; border-right: 0; }
.num__val { font-family: var(--ff-num); font-size: 34px; line-height: 47.6px; font-weight: 600; color: var(--gd); }
.num__unit { font-size: 18px; line-height: 26.1px; font-weight: 700; padding-top: 8px; margin-left: 4px; }
.num__note { font-size: 12px; color: #999; margin-left: 10px; padding-top: 8px; white-space: nowrap; }
.num__group--side .num__row { margin-top: 24px; }

/* ---------- 4 News → Program（実測：padding 80/60/144・h2 48px・タブ・3列 360 gap 60/20・カード 360×390） ---------- */
.news { position: relative; padding: 80px 60px 144px; }
.news__in { position: relative; max-width: 1120px; margin: 0 auto; }
.news__title { font-family: var(--ff-en); font-size: 48px; line-height: 67.2px; font-weight: 700; text-transform: uppercase; }
.news__body { margin: 40px 0 20px; }
.tabs { display: flex; border-bottom: 1px solid var(--line); font-size: 18px; line-height: 26.1px; }
.tabs__item { position: relative; flex: 1; text-align: center; margin-bottom: -1px; border-bottom: 2px solid transparent; transition: border-color .3s; }
.tabs__item.is-active { border-bottom-color: var(--g); }
.tabs__btn { display: block; width: 100%; padding: 14px 0; color: #888; transition: color .3s; }
.tabs__item.is-active .tabs__btn { color: var(--g); font-weight: 700; }
.tabs__btn:hover { color: var(--g); }
.tabs__panel { padding-top: 40px; }
.tabs__note { margin-bottom: 24px; font-size: 15px; color: #3a3a3a; }
.tabs__note strong { color: var(--gd); }

/* ---------- サポート内容の比較表（/program/。重要事項説明書の支援内容マトリクスと同じ内容） ---------- */
.matrix-wrap { margin-top: 40px; overflow-x: auto; }
.matrix { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.7; }
.matrix th, .matrix td { border: 1px solid var(--line); padding: 12px 14px; text-align: center; }
.matrix thead th { background: var(--gfoot); color: #fff; font-weight: 700; }
.matrix thead th:first-child { text-align: left; }
.matrix thead th span { display: block; font-family: var(--ff-num); font-size: 13px; font-weight: 400; color: #c8e6d3; margin-top: 2px; }
.matrix tbody th { text-align: left; font-weight: 500; background: #fafcfb; color: var(--ink); }
.matrix__yes { color: var(--g); font-weight: 700; font-size: 16px; }
.matrix__no { color: #b9b9b9; }
.matrix__txt { font-size: 13px; }
.matrix tbody tr:nth-child(even) td, .matrix tbody tr:nth-child(even) th { background-color: #f7faf9; }
.tabs__panel[hidden] { display: none; }
.cards { display: grid; grid-template-columns: repeat(3, 360px); gap: 60px 20px; }
.cards__item { display: flex; }
.ncard { position: relative; display: flex; flex-direction: column; width: 100%; background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 10px; overflow: hidden; transition: box-shadow .3s; }
.ncard:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .06); }
.ncard__link { position: absolute; inset: 0; z-index: 1; }
.ncard__main { display: flex; flex-direction: column; gap: 7px; }
.ncard__fig { width: 100%; aspect-ratio: 40 / 21; overflow: hidden; border-radius: 2px; }
.ncard__fig img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--ease); }
.ncard:hover .ncard__fig img { transform: scale(1.04); }
.ncard__text { padding: 14px 10px 0; }
.ncard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ncard__no { font-family: var(--ff-en); font-size: 14px; color: #888; letter-spacing: .04em; }
.pill { display: inline-block; font-size: 12px; line-height: 1; font-weight: 700; color: #fff; padding: 5px 9px; border-radius: 2px; }
.pill--green { background: var(--g); }
.pill--dark { background: var(--gd); }
.ncard__title { margin-top: 12px; font-size: 16px; line-height: 26px; font-weight: 500; letter-spacing: .02em; }
.ncard__foot { margin: 16px 10px 8px; padding-top: 14px; border-top: 1px solid var(--ghost); font-size: 13px; line-height: 21px; color: #555; }
.ncard--flow .ncard__step { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 40 / 21; background: linear-gradient(135deg, #e8f5ee, #c8ecd6); border-radius: 2px; }
.ncard--flow .ncard__step span { font-family: var(--ff-num); font-size: 56px; font-weight: 600; color: var(--gd); }
.news__more { text-align: right; margin-top: 20px; }

/* ---------- 5 写真の帯（実測：左 60＋padding-left 100・flex gap 2・639×519・文字 padding 0/50/0/60）＋バナー（1000×214） ---------- */
.links { padding: 0 0 16px; }
.links__bands { padding-left: 100px; margin: 0 0 112px 60px; }
.bands { display: flex; gap: 2px; }
.bands__item { width: calc((100% - 2px) / 2); }
.band { position: relative; display: block; overflow: hidden; }
.band::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .27); transition: background .3s; }
.band:hover::after { background: rgba(0, 0, 0, .4); }
.band__fig { aspect-ratio: 679 / 552; }
.band__fig img { width: 100%; height: 100%; object-fit: cover; transform: scale(1); transition: transform .3s var(--ease); }
.band:hover .band__fig img { transform: scale(1.05); }
.band__over { position: absolute; inset: 0; z-index: 10; display: flex; flex-direction: column; justify-content: center; color: #fff; padding: 0 50px 0 60px; }
.band__grid { display: grid; grid-template-columns: auto 60px; grid-template-rows: auto auto; align-items: center; }
.band__label { grid-column: 1; grid-row: 1; font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .06em; }
.band__title { grid-column: 1; grid-row: 2; font-family: var(--ff-en); font-size: 48px; line-height: 60px; font-weight: 700; letter-spacing: .04em; }
.band__circle { grid-column: 2; grid-row: 1 / 3; justify-self: end; position: relative; width: 60px; height: 60px; border-radius: 50%; border: 1px solid #fff; background: rgba(255, 255, 255, .2); transition: background .3s; }
.band__circle i { position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%); }
.band:hover .band__circle { background: rgba(255, 255, 255, .35); }
.banners { display: grid; grid-template-columns: 1000px; gap: 40px; justify-content: center; max-width: 1120px; margin: 0 auto; padding: 0 60px 80px; }
.banner { display: block; }
.banner__box { position: relative; height: 214px; border-radius: 5px; overflow: hidden; }
.banner__box::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 83, 45, .75), rgba(20, 83, 45, .2)); }
.banner__fig { position: absolute; inset: 0; }
.banner__fig img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--ease); }
.banner:hover .banner__fig img { transform: scale(1.04); }
.banner__over { position: absolute; inset: 0; z-index: 10; display: flex; justify-content: space-between; align-items: center; gap: 12px; color: #fff; padding: 20px 40px 20px 52px; }
.banner__text { display: grid; gap: 16px; }
.banner__title { font-family: var(--ff-en); font-size: 40px; line-height: 56px; font-weight: 700; letter-spacing: .8px; }
.banner__desc { font-size: 15px; line-height: 24px; font-weight: 700; }
.banner__circle { position: relative; width: 32px; height: 32px; flex: none; border-radius: 50%; border: 1px solid #fff; background: rgba(255, 255, 255, .2); }
.banner__circle i { position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%); }

/* ---------- 6 足元（実測：#025c54・padding 90/24/60・1120） ---------- */
.ft { background: var(--gfoot); color: #fff; padding: 90px 24px 60px; }
.ft__in { position: relative; max-width: 1120px; margin: 0 auto; }
.ft__top { display: grid; grid-template-columns: 476px 532px; gap: 32px 112px; align-items: center; }
.ft__catch { font-size: 48px; line-height: 64px; font-weight: 700; letter-spacing: .04em; }
.ft__hr { border: 0; border-top: 1px solid var(--gfoot-line); margin: 60px 0; }
.ft__mid { display: grid; grid-template-columns: 1004px 108px; justify-content: space-between; gap: 8px; }
.ft__cols { display: grid; grid-template-columns: 166px 260px 260px 1fr; gap: 24px; padding-bottom: 64px; }
.ft__head { display: inline-flex; align-items: baseline; gap: 6px; color: #fff; font-size: 15px; line-height: 24px; font-weight: 700; }
.ft__head .t-alink__ico { border-color: rgba(255, 255, 255, .6); }
.ft__head .t-alink__ico::after { border-color: #fff; }
.ft__head--plain { cursor: default; }
.ft__list { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; padding-left: 2px; }
.ft__list a { display: inline; font-size: 15px; line-height: 24px; color: #fff; background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: bottom left; background-size: 0 1px; transition: background-size .3s var(--ease), color .3s; }
.ft__list a:hover { color: var(--g3); background-size: 100% 1px; }
.ft__addr { margin-top: 16px; font-size: 14px; line-height: 24px; color: #fff; }
.ft__badge { display: flex; justify-content: center; }
.ft__logo { color: #fff; flex-direction: column; gap: 8px; }
.ft__logo .t-logo__mark { width: 90px; }
.ft__logo .t-logo__text { font-size: 16px; letter-spacing: .16em; }
.ft__bottom { position: relative; display: flex; justify-content: space-between; gap: 12px; margin-top: 68px; color: var(--gfoot-text); }
.ft__small { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; width: 830px; }
.ft__small a { font-size: 14px; line-height: 21px; background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: bottom left; background-size: 0 1px; transition: background-size .3s var(--ease), color .3s; }
.ft__small a:hover { color: var(--g3); background-size: 100% 1px; }
.ft__top-btn { position: absolute; right: 0; bottom: -30px; display: flex; align-items: center; justify-content: center; width: 47px; height: 47px; border-radius: 9999px; background: var(--g); transition: background .3s; }
.ft__top-btn:hover { background: var(--g2); }
.ft__top-btn i { width: 9px; height: 9px; border-top: 2px solid #fff; border-left: 2px solid #fff; transform: translateY(2px) rotate(45deg); }
.ft__copy { display: flex; justify-content: flex-end; margin-top: 64px; font-size: 14px; line-height: 21px; letter-spacing: .84px; color: var(--gfoot-text); white-space: nowrap; }

/* ---------- 下層：事業内容型の頭（実測：#eff2f1・320px・h1 45px 字間 3・パンくず右） ---------- */
.ph-band { display: flex; align-items: center; justify-content: center; min-height: 320px; margin-top: 92px; background: var(--ghost); padding-left: 24px; }
.ph-band__in { display: grid; align-items: center; width: 100%; max-width: 1120px; height: 270px; margin-right: 24px; }
.ph-band__title { font-size: 45px; line-height: 67.5px; font-weight: 700; letter-spacing: 3px; }
.inner { max-width: 1120px; margin: 24px auto 136px; padding: 0 60px; }
.crumb { display: flex; justify-content: flex-end; align-items: center; margin-bottom: 40px; color: #b9b9b9; letter-spacing: .56px; }
.crumb ol { display: flex; align-items: center; }
.crumb a { background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: bottom left; background-size: 0 1px; transition: background-size .3s, color .3s; }
.crumb a:hover { color: var(--g); background-size: 100% 1px; }
.crumb__sep { width: 4px; height: 7px; margin: 0 12px; border-top: 1.5px solid #b9b9b9; border-right: 1.5px solid #b9b9b9; transform: rotate(45deg) scale(.9); }
.crumb li:last-child { max-width: calc(88% - 12px); }
.crumb span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.h2line { position: relative; font-size: 34px; line-height: 47.6px; font-weight: 700; letter-spacing: 1.36px; padding-top: 28px; margin: 80px 0 56px; border-top: 1px solid var(--line3); }
.h2line__bar { position: absolute; top: -1.5px; left: 0; width: 24px; height: 2px; background: var(--g); box-shadow: 8px 0 0 #fff; }
.ptext, .ptext__lead, .textimg__text { font-size: 16px; line-height: 32px; letter-spacing: .64px; color: var(--ink2); }
.ptext p + p, .textimg__text p + p, .ptable dd p + p, .ptable dd .t-list + p, .ptable dd p + .t-list { margin-top: 12px; }
.t-list li { position: relative; padding-left: 1.1em; }
.t-list li::before { content: ""; position: absolute; left: 0; top: .95em; width: 6px; height: 6px; border-radius: 50%; background: var(--g); }
.t-list strong { color: var(--ink); }
.textimg { display: grid; grid-template-columns: 654px 426px; gap: 40px; align-items: flex-start; margin-top: 56px; }
.textimg__img { margin-top: 20px; border-radius: 5px; }
.numbox { display: flex; justify-content: flex-start; background: #f7faf9; border-radius: 5px; padding: 32px 24px; margin: 80px 0; }
.numbox .num__group--main { padding-right: 24px; margin-right: 24px; }
.numbox .num__cell { padding-right: 24px; margin-right: 24px; }
.numbox .num__val { font-size: 30px; }
.ptable { border-top: 1px solid var(--line3); }
.ptable__row { display: grid; grid-template-columns: 260px 1fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 32px; letter-spacing: .64px; color: var(--ink2); }
.ptable__row dt { font-weight: 700; color: var(--ink); }
.ptable a { color: var(--gd); text-decoration: underline; text-underline-offset: .2em; }
.ptext__lead { margin-bottom: 40px; }

/* ---------- プラン表（/program/。参考の企業情報型カード＝白・線 #d9e0de・角丸 5・padding 40/32・左上に緑 20×4） ---------- */
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.plan { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 5px; padding: 40px 32px 36px; }
.plan::before { content: ""; position: absolute; top: 0; left: 32px; width: 20px; height: 4px; background: var(--g2); }
.plan__name { display: flex; flex-direction: column; gap: 4px; min-height: 76px; }
.plan__title { font-size: 20px; line-height: 28px; font-weight: 700; letter-spacing: .8px; }
.plan__label { font-size: 13px; font-weight: 700; color: var(--g); letter-spacing: .06em; }
.plan__price { display: flex; align-items: baseline; margin-top: 4px; }
.plan__note { margin-top: 6px; font-size: 13px; color: #666; }
.plan__body { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 14px; line-height: 24px; color: var(--ink2); }
.plan__body .t-list li + li { margin-top: 6px; }
.plan__body p { margin-top: 10px; font-size: 12.5px; color: #666; }

/* ---------- 下層：企業情報型の頭（実測：mt 40・mx 56・点 6＋10px 大文字・h1 45px 字間 2.7・絵 1384×324） ---------- */
.cph { margin-top: calc(92px + 40px); }
.cph__head { margin: 0 56px; }
.cph__en { display: flex; align-items: center; margin-bottom: 8px; color: var(--g); font-family: var(--ff-en); font-size: 10px; line-height: 17.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; }
.cph__en i { width: 6px; height: 6px; border-radius: 9999px; background: var(--g); margin-right: 8px; }
.cph__title { font-size: 45px; line-height: 67.5px; font-weight: 700; letter-spacing: 2.7px; margin-bottom: 48px; }
.cph__kv { margin-left: 56px; height: 324px; border-radius: 5px 0 0 5px; overflow: hidden; }
.cph__kv img { width: 100%; height: 100%; object-fit: cover; }
.ccards { padding-bottom: 40px; }
.ccards__grid { display: grid; grid-template-columns: repeat(3, 360px); gap: 20px; }
.ccard { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 5px; padding: 40px 32px; }
.ccard__bar { position: absolute; top: 0; left: 32px; width: 20px; height: 4px; background: var(--g2); }
.ccard__link { display: inline-flex; align-items: center; transition: color .3s; }
.ccard__link:hover { color: var(--g); }
.ccard__text { font-size: 20px; line-height: 28px; font-weight: 700; letter-spacing: .8px; margin-right: 16px; }
.ccard__arrow { position: relative; width: 21px; height: 21px; border-radius: 50%; border: 1px solid var(--g); flex: none; transition: background .3s; }
.ccard__arrow::after { content: ""; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; border-top: 2px solid var(--g); border-right: 2px solid var(--g); transform: translate(-60%, -50%) rotate(45deg); transition: border-color .3s; }
.ccard__link:hover .ccard__arrow { background: var(--g); }
.ccard__link:hover .ccard__arrow::after { border-color: #fff; }
.cband { margin: 56px 0; }
.cband__link { position: relative; display: block; height: 320px; overflow: hidden; border-radius: 5px; }
.cband__link::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .35); }
.cband__fig { position: absolute; inset: 0; }
.cband__fig img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--ease); }
.cband__link:hover .cband__fig img { transform: scale(1.04); }
.cband__over { position: absolute; inset: 0; z-index: 10; display: flex; flex-direction: column; justify-content: center; padding: 0 140px; color: #fff; }
.cband__en { font-family: var(--ff-en); font-size: 64px; line-height: 1; font-weight: 400; letter-spacing: .02em; }
.cband__lead { margin-top: 20px; font-size: 15px; line-height: 30px; font-weight: 700; }
.cband__over .band__circle { position: absolute; right: 140px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; }

/* ---------- 現れる動き（参考：js-fadein＝フェード＋下から 30px） ---------- */
html.js .js-fadein { opacity: 0; transform: translateY(30px); transition: opacity .8s ease, transform .8s ease; }
html.js .js-fadein.is-in, html.js-timeout .js-fadein { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.js .js-fadein { opacity: 1; transform: none; transition: none; } }

/* ---------- 中間幅（1120＋120 より狭い） ---------- */
@media (max-width: 1280px) {
	.hd__sub { display: none; }
	.hd__right { justify-content: center; }
	.hd__nav { gap: 20px; }
	.hd__nav a { font-size: 15px; padding-bottom: 0; }
	.about__in, .biz__in, .num__in, .news__in { max-width: 100%; }
	.about__in { grid-template-columns: 1fr 1fr; }
	.t-btn--about { width: 260px; }
	.cards { grid-template-columns: repeat(3, 1fr); }
	.banners { grid-template-columns: 1fr; }
	.ft__top { grid-template-columns: 1fr 1fr; gap: 32px; }
	.t-btn--ft { width: 100%; }
	.ft__mid { grid-template-columns: 1fr; }
	.ft__badge { display: none; }
	.ft__cols { grid-template-columns: repeat(4, 1fr); }
	.textimg { grid-template-columns: 1fr 380px; }
	.ccards__grid { grid-template-columns: repeat(3, 1fr); }
	.links__bands { padding-left: 0; margin-left: 60px; margin-right: 60px; }
}

/* ---------- スマホ（実測 375：ヘッダー 60・左右 24） ---------- */
@media (max-width: 860px) {
	body { font-size: 14px; }
	[id] { scroll-margin-top: 60px; }
	.hd { height: 60px; }
	.hd__left { padding-left: 24px; margin-right: 0; }
	.hd__logo { height: 32px; }
	.t-logo__mark { width: 30px; }
	.t-logo__text { font-size: 20px; }
	.hd__right, .hd__btns { display: none; }
	.hd__menu { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 60px; height: 60px; background: var(--g2); color: #fff; }
	.hd__menu-label { font-family: var(--ff-en); font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 1; }
	.hd__menu-bars { display: flex; flex-direction: column; gap: 4px; width: 22px; }
	.hd__menu-bars i { display: block; height: 2px; background: #fff; transition: transform .3s, opacity .3s; }
	.hd__menu.open .hd__menu-bars i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
	.hd__menu.open .hd__menu-bars i:nth-child(2) { opacity: 0; }
	.hd__menu.open .hd__menu-bars i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
	.mnav { display: block; position: fixed; inset: 60px 0 0 0; z-index: 9998; background: #fff; overflow: auto; transform: translateY(-105%); visibility: hidden; transition: transform .45s var(--ease), visibility .45s; }
	.mnav.open { transform: none; visibility: visible; }
	.mnav__in { padding: 8px 24px 40px; }
	.mnav__link { display: block; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 16px; font-weight: 700; }
	.mnav__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 24px; }
	.mnav__btns .hd__btn { height: 52px; }
	.mnav__sub { display: block; margin-top: 24px; font-size: 13px; color: #555; }
	body.menu-open { overflow: hidden; }
	body.menu-open .hd { transform: none; }

	.kv__stage { aspect-ratio: 1 / 1; max-height: none; margin-top: 60px; }
	.kv__logo { gap: 14px; }
	.kv__mark { width: 90px; }
	.kv__word { font-size: 30px; }
	.kv__sub { font-size: 11px; letter-spacing: .08em; white-space: nowrap; }
	.kv__sticky { position: static; height: auto; }
	.kv__copy { position: static; width: auto; height: auto; padding: 26px 24px 0; }
	.kv__title { font-size: 38px; line-height: 50px; }
	.about { padding: 60px 24px 20px; }
	.about__in { grid-template-columns: 1fr; gap: 0; }
	.about__left { display: contents; }
	.about__en { font-size: 10px; line-height: 17.5px; letter-spacing: .6px; }
	.about__title { font-size: 34px; margin: 0 0 20px; padding-bottom: 18px; }
	.about__text { font-size: 14px; line-height: 26px; letter-spacing: 1.12px; padding-top: 0; }
	.about__en { order: 1; margin-bottom: 8px; }
	.about__title { order: 2; }
	.about__text { order: 3; }
	.t-btn--about { order: 4; width: 100%; height: 54px; margin: 28px 0 0; padding: 10px 20px; }
	.t-btn__dot { width: 34px; height: 34px; }
	.biz { padding-bottom: 56px; }
	.biz__ghost { font-size: 50px; line-height: 50px; letter-spacing: -1px; transform: translate(-6px, 10px); margin-top: 10px; }
	.biz__band { height: auto; }
	.biz__bg { height: 330px; }
	.biz__over { position: static; padding: 0 24px; margin-top: -80px; }
	.biz__card { width: 100%; padding: 40px 30px; }
	.biz__brand { margin-bottom: 16px; }
	.biz__text { font-size: 15px; line-height: 24.4px; letter-spacing: .6px; }
	.t-btn--card { width: 100%; height: 54px; margin-top: 20px; padding: 10px 20px; }
	.num { padding: 0 24px; margin-top: 48px; }
	.num__in { flex-direction: column; }
	.num__group--main { padding-right: 0; margin-right: 0; border-right: 0; }
	.num__head { flex-direction: column; align-items: flex-start; gap: 0; }
	.num__title { font-size: 18px; line-height: 26.1px; letter-spacing: .72px; }
	.num__caption { font-size: 12px; line-height: 20.4px; letter-spacing: .24px; }
	.num__row { flex-direction: column; margin-top: 12px; }
	.num__cell { padding: 0 0 4px; margin: 0 0 16px; border-right: 0; border-bottom: 1px solid var(--line2); }
	.num__cell:last-child { margin-bottom: 0; border-bottom: 1px solid var(--line2); }
	.num__val { font-size: 24px; line-height: 33.6px; }
	.num__unit { font-size: 14px; line-height: 25px; padding-top: 4px; }
	.num__group--side { margin-top: 40px; }
	.news { padding: 56px 24px 80px; }
	.news__title { font-size: 32px; line-height: 48px; }
	.news__body { margin: 28px 0 16px; }
	.tabs { font-size: 16px; line-height: 25.6px; overflow: auto; white-space: nowrap; }
	.tabs__btn { padding: 14px 12px; }
	.tabs__panel { padding-top: 24px; }
	.tabs__note { font-size: 14px; margin-bottom: 16px; }
	.tabs--3 .tabs__btn { padding: 14px 6px; font-size: 14px; }
	.matrix { font-size: 12.5px; min-width: 560px; }
	.matrix th, .matrix td { padding: 8px 10px; }
	.cards { grid-template-columns: 1fr; gap: 30px; }
	.ncard__main { flex-direction: row; align-items: center; }
	.ncard__fig { flex: none; width: calc(108 / 308 * 100%); }
	.ncard--flow .ncard__step { flex: none; width: calc(108 / 308 * 100%); }
	.ncard--flow .ncard__step span { font-size: 32px; }
	.ncard__text { padding: 0; }
	.ncard__title { margin-top: 8px; font-size: 15px; line-height: 24px; }
	.ncard__foot { margin: 16px 0 6px; }
	.links__bands { padding: 0; margin: 0 24px 48px; }
	.bands { flex-direction: column; gap: 2px; }
	.bands__item { width: 100%; }
	.band__over { padding: 0 20px; }
	.band__title { font-size: 34px; line-height: 44px; }
	.band__circle { width: 40px; height: 40px; }
	.banners { padding: 0 24px 48px; gap: 16px; }
	.banner__box { height: 150px; }
	.banner__over { padding: 16px 20px; }
	.banner__title { font-size: 22px; line-height: 30px; }
	.banner__desc { display: none; }
	.ft { padding: 56px 24px 28px; }
	.ft__top { grid-template-columns: 1fr; gap: 32px; }
	.ft__catch { font-size: 30px; line-height: 44px; }
	.t-btn--ft { width: 100%; height: 60px; padding: 10px 20px; font-size: 16px; line-height: 25.6px; letter-spacing: .64px; }
	.ft__hr { margin: 28px 0 0; }
	.ft__mid { grid-template-columns: 1fr; }
	.ft__cols { grid-template-columns: 1fr; gap: 0; padding: 12px 0 16px; }
	.ft__col { padding: 16px 0; border-bottom: 1px solid var(--gfoot-line); }
	.ft__list { margin-top: 12px; }
	.ft__bottom { flex-direction: column; margin-top: 28px; }
	.ft__small { width: auto; gap: 12px 20px; }
	.ft__top-btn { position: static; align-self: flex-end; }
	.ft__copy { margin-top: 28px; justify-content: flex-start; }
	.ph-band { margin-top: 60px; min-height: 240px; border-bottom: 1px solid var(--line); }
	.ph-band__in { height: 166px; }
	.ph-band__title { font-size: 26px; line-height: 36.4px; letter-spacing: .52px; }
	.inner { margin: 14px auto 40px; padding: 0 24px; }
	.crumb { justify-content: flex-start; font-size: 12px; line-height: 20.4px; }
	.h2line { font-size: 20px; line-height: 28px; letter-spacing: .4px; padding-top: 20px; margin: 70px 0 40px; }
	.ptext, .ptext__lead, .textimg__text { font-size: 15px; line-height: 24.4px; letter-spacing: .3px; }
	.textimg { grid-template-columns: 1fr; gap: 24px; margin-top: 36px; }
	.numbox { flex-direction: column; padding: 32px 20px; margin: 36px 0 80px; }
	.numbox .num__group--main { padding-right: 0; margin-right: 0; border-right: 0; }
	.numbox .num__cell { padding-right: 0; margin-right: 0; }
	.plans { grid-template-columns: 1fr; margin-top: 28px; }
	.plan { padding: 32px 20px 28px; }
	.plan__name { min-height: 0; }
	.plan::before { left: 20px; }
	.ptable__row { grid-template-columns: 1fr; gap: 4px; padding: 18px 0; font-size: 15px; line-height: 24.4px; letter-spacing: .3px; }
	.cph { margin-top: calc(60px + 40px); }
	.cph__head { margin: 0 24px; }
	.cph__en { font-size: 12px; line-height: 20.4px; letter-spacing: .96px; }
	.cph__title { font-size: 34px; line-height: 47.6px; letter-spacing: 2.04px; margin-bottom: 36px; }
	.cph__kv { margin-left: 0; height: 268px; border-radius: 0; }
	.ccards { padding-bottom: 0; }
	.ccards__grid { grid-template-columns: 1fr; }
	.ccard { padding: 32px 20px; }
	.ccard__bar { left: 20px; }
	.ccard__text { font-size: 16px; line-height: 25.6px; letter-spacing: .64px; }
	.cband { margin: 40px 0; }
	.cband__link { height: 240px; }
	.cband__over { padding: 0 24px 0 24px; }
	.cband__en { font-size: 40px; }
	.cband__lead { font-size: 13px; line-height: 24px; }
	.cband__over .band__circle { right: 24px; }
}
