/* スケジュール訴求LP（ジョブドラフト）— 見た目
   色：主役＝ジョブドラフトの青。強い塗り（黄色）はCTAだけ。赤は「つまずき」の印だけ */
:root {
  --blue: #0051A0;
  --blue-d: #003F80;
  --blue-m: #5C93CF;
  --navy: #062A55;
  --navy-d: #041E3D;
  --ink: #111A2C;
  --pale: #EAF2FB;
  --pale-2: #DCEAF8;
  --line: #D5E3F2;
  --sky: #9CCBFF;
  --yellow: #FFE14A;
  --yellow-d: #F2CC00;
  --red: #D23434;
  --white: #fff;
  --ff: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  --en: "Oswald", "Noto Sans JP", sans-serif;
  --hd: 72px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; font-family: var(--ff); font-weight: 500; color: var(--ink); background: var(--white); line-height: 1.85; letter-spacing: .04em; font-feature-settings: "palt" 0; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, p, ol, ul, figure { margin: 0; padding: 0; }
ol, ul { list-style: none; }
button { font: inherit; }
sup { font-size: .62em; vertical-align: super; line-height: 0; margin-left: .1em; }
.sp-only { display: none; }
@media (max-width: 767px) { .sp-only { display: inline; } br.sp-only { display: inline; } .pc-only { display: none; } }

/* 改行：見出しや短い行は文節の切れ目でだけ折る（phraseWrap）。長い本文はふつうに流す */
.phr main { word-break: keep-all; overflow-wrap: anywhere; }
.phr main .txt-flow { word-break: normal; line-break: strict; overflow-wrap: anywhere; text-align: justify; }

.in { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.in--wide { max-width: 1360px; }
.in--narrow { max-width: 800px; }
@media (max-width: 767px) { .in { padding: 0 16px; } }

/* 細い線の矢印（丸の中） */
.ar { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--navy); position: relative; display: inline-block; }
.ar::before { content: ""; position: absolute; inset: 0; background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9.5 4.5 13 8l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9.5 4.5 13 8l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat; }

/* CTA（黄色の塗りはここだけ） */
.cta { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 64px; padding: 12px 16px 12px 32px; border-radius: 999px; background: var(--yellow); color: var(--navy); text-decoration: none; font-weight: 900; font-size: 18px; line-height: 1.45; letter-spacing: .04em; border: 0; cursor: pointer; transition: background-color .2s, transform .2s; text-align: center; }
.cta:hover { background: var(--yellow-d); }
.cta:hover .ar { transform: translateX(2px); }
.cta .ar { transition: transform .2s; }
.cta__t { flex: 1 1 auto; }
.cta__note { margin-top: 10px; font-size: 13px; font-weight: 700; color: rgba(255,255,255,.85); }
@media (max-width: 767px) {
  .cta { display: flex; width: 100%; font-size: 16px; padding: 12px 10px 12px 16px; gap: 8px; letter-spacing: .02em; }
  .cta .ar { width: 26px; height: 26px; }
}

/* ===== ヘッダー ===== */
.hd { position: fixed; inset: 0 0 auto; z-index: 50; height: var(--hd); background: rgba(255,255,255,.97); transition: transform .3s ease, box-shadow .3s; }
.hd.is-scrolled { box-shadow: 0 2px 16px rgba(6,42,85,.08); }
.hd.is-hidden { transform: translateY(-100%); }
.hd__in { height: 100%; max-width: 1360px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hd__logo img { width: 150px; height: auto; }
.hd__cta { display: inline-flex; align-items: center; gap: 12px; padding: 8px 8px 8px 24px; border-radius: 999px; background: var(--yellow); color: var(--navy); font-weight: 900; font-size: 15px; text-decoration: none; white-space: nowrap; }
.hd__cta:hover { background: var(--yellow-d); }
.hd__cta .ar { width: 28px; height: 28px; }
@media (max-width: 767px) {
  :root { --hd: 56px; }
  .hd__in { padding: 0 12px 0 16px; }
  .hd__logo img { width: 112px; }
  .hd__cta { font-size: 13px; padding: 6px 6px 6px 14px; gap: 8px; }
  .hd__cta .ar { width: 24px; height: 24px; }
}

/* ===== FV ===== */
.fv { position: relative; background: var(--navy); color: #fff; padding: calc(var(--hd) + 64px) 0 0; overflow: hidden; }
.fv__in { max-width: 1360px; margin: 0 auto; padding: 0 24px 64px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; align-items: center; }
.fv__kicker { display: inline-block; font-size: 16px; font-weight: 700; color: var(--sky); letter-spacing: .08em; margin-bottom: 16px; }
.fv__h1 { font-weight: 900; line-height: 1.15; letter-spacing: .02em; font-size: clamp(44px, 5.4vw, 84px); }
.fv__line { display: block; white-space: nowrap; }
.fv__mo { font-family: var(--en); font-weight: 600; font-size: 1.9em; line-height: .9; letter-spacing: 0; margin-right: .04em; vertical-align: -.06em; }
.fv--b .fv__h1 { font-size: clamp(36px, 4.3vw, 66px); line-height: 1.3; }
.fv__lead { margin-top: 24px; font-size: clamp(19px, 1.7vw, 25px); font-weight: 900; color: var(--sky); line-height: 1.55; }
.fv__sub { margin-top: 14px; font-size: 16px; line-height: 1.9; color: rgba(255,255,255,.92); }
.fv__ctas { margin-top: 32px; }
.fv__vis { position: relative; background: #fff; color: var(--navy); border-radius: 20px; padding: 24px 24px 22px; }
.fv__cap { font-size: 15px; font-weight: 700; margin-bottom: 14px; }
.fv__cap b { font-size: 20px; font-weight: 900; color: var(--blue); }
.fv__flag { position: absolute; right: 20px; top: -22px; display: flex; align-items: baseline; gap: 8px; background: var(--blue); color: #fff; border-radius: 12px; padding: 8px 16px; font-weight: 700; font-size: 14px; }
.fv__flag b { font-family: var(--en); font-size: 28px; font-weight: 600; line-height: 1; }
.fv__proof { max-width: 1360px; margin: 0 auto; padding: 22px 24px 26px; display: flex; justify-content: center; gap: 56px; background: transparent; position: relative; }
.fv__proof::before { content: ""; position: absolute; inset: 0 -100vw; background: var(--navy-d); z-index: -1; }
.fv__proof li { display: flex; align-items: baseline; gap: 12px; }
.fv__proof b { font-family: var(--en); font-weight: 600; font-size: 32px; line-height: 1; color: #fff; }
.fv__proof b small { font-family: var(--ff); font-size: 14px; font-weight: 700; margin-left: 2px; }
.fv__proof span { font-size: 13px; color: rgba(255,255,255,.8); }
@media (max-width: 1024px) {
  .fv__in { grid-template-columns: 1fr; gap: 48px; }
  .fv__vis { max-width: 720px; }
}
@media (max-width: 767px) {
  .fv { padding-top: calc(var(--hd) + 36px); }
  .fv__in { padding: 0 16px 44px; gap: 44px; }
  .fv__kicker { font-size: 14px; margin-bottom: 12px; }
  .fv__h1 { font-size: clamp(40px, 12.4vw, 56px); }
  .fv--b .fv__h1 { font-size: clamp(27px, 8.2vw, 36px); }
  .fv__lead { font-size: 19px; margin-top: 18px; }
  .fv__sub { font-size: 15px; }
  .fv__ctas { margin-top: 24px; text-align: center; }
  .fv__vis { padding: 18px 14px 16px; border-radius: 16px; }
  .fv__flag { right: 12px; top: -20px; padding: 6px 12px; font-size: 13px; }
  .fv__flag b { font-size: 24px; }
  .fv__proof { flex-direction: column; align-items: center; gap: 10px; padding: 20px 16px 24px; }
  .fv__proof b { font-size: 26px; }
}

/* FVの小さなカレンダー（棒だけ） */
.mini { --lab: 64px; }
.mini__months { display: grid; grid-template-columns: var(--lab) repeat(12, 1fr); gap: 0; font-family: var(--en); font-weight: 500; font-size: 15px; text-align: center; color: var(--navy); margin-bottom: 6px; }
.mini__months::before { content: ""; }
.mini__months span { padding: 2px 0; border-radius: 6px; }
.mini__months span:nth-child(1) { background: var(--navy); color: #fff; }
.mini__months span:nth-child(2) { background: var(--pale-2); color: var(--blue); }
.mini .cal__lane { display: grid; grid-template-columns: var(--lab) 1fr; align-items: center; border-top: 1px solid var(--line); }
.mini .cal__name { font-size: 13px; font-weight: 700; line-height: 1.3; white-space: nowrap; letter-spacing: 0; }
.mini .cal__grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-flow: row dense; grid-auto-rows: 9px; gap: 5px 3px; padding: 12px 0; min-height: 58px; align-content: center;
  background-image: linear-gradient(to right, var(--line) 1px, transparent 1px); background-size: calc(100% / 12) 100%; }
.mini .ci { display: block; border-radius: 5px; background: var(--pale-2); transform-origin: left center; animation: grow .7s cubic-bezier(.2,.7,.2,1) both; animation-delay: calc(.35s + var(--i) * 70ms); position: relative; }
.mini .cal__lane--jinjib .ci { background: var(--blue); }
.mini .cal__lane--company .ci { background: var(--navy); }
.mini .cal__lane--school .ci { background: var(--sky); }
.mini .ci--key { background: var(--yellow-d) !important; }
.mini .ci--part { background: linear-gradient(to right, var(--blue) calc(var(--solid) * 100%), transparent 0) !important; }
.mini .ci--part::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; left: calc(var(--solid) * 100% + 2px); border-radius: 5px; background: repeating-linear-gradient(90deg, var(--blue-m) 0 5px, transparent 5px 8px); }
.mini .cal__lane--company .ci--part { background: linear-gradient(to right, var(--navy) calc(var(--solid) * 100%), transparent 0) !important; }
.mini__keys { display: flex; gap: 18px; justify-content: flex-end; margin-top: 10px; font-size: 12px; font-weight: 700; }
.mini__keys i { display: inline-block; width: 14px; height: 8px; border-radius: 3px; margin-right: 6px; vertical-align: 1px; }
.k-j { background: var(--blue); } .k-c { background: var(--navy); } .k-s { background: var(--sky); }
@keyframes grow { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } }
@media (max-width: 767px) {
  .mini { --lab: 62px; }
  .mini__months { font-size: 12px; }
  .mini .cal__name { font-size: 12px; white-space: nowrap; }
  .mini .cal__grid { grid-auto-rows: 7px; gap: 4px 2px; min-height: 48px; }
  .mini__keys { justify-content: center; }
}

/* ===== 比較チャート（パターンB） ===== */
.cmp { --lab: 64px; color: var(--navy); }
.cmp__hd { display: grid; grid-template-columns: var(--lab) 1fr; }
.cmp__ms { display: grid; grid-template-columns: repeat(12, 1fr); text-align: center; font-family: var(--en); font-size: 15px; }
.cmp__ms small { font-family: var(--ff); font-size: 12px; }
.cmp__grp { border-top: 1px solid var(--line); padding: 10px 0; }
.cmp__gn { font-size: 14px; font-weight: 900; margin-bottom: 6px; }
.cmp__grp--dai .cmp__gn { color: var(--navy); }
.cmp__grp--ko .cmp__gn { color: var(--blue); }
.cmp__row { display: grid; grid-template-columns: var(--lab) 1fr; align-items: center; margin-bottom: 6px; }
.cmp__rn { font-size: 13px; font-weight: 700; }
.cmp__g { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 3px; min-height: 18px;
  background-image: linear-gradient(to right, var(--line) 1px, transparent 1px); background-size: calc(100% / 12) 100%; }
.cmp__b { grid-row: 1; height: 18px; border-radius: 6px; transform-origin: left center; animation: grow .8s cubic-bezier(.2,.7,.2,1) both; }
.cmp__grp--dai .cmp__row:nth-child(2) .cmp__b { animation-delay: .3s; }
.cmp__grp--dai .cmp__row:nth-child(3) .cmp__b { animation-delay: .45s; }
.cmp__grp--dai .cmp__row:nth-child(4) .cmp__b { animation-delay: .6s; }
.cmp__grp--ko .cmp__b { animation-delay: .9s; }
.cmp__b--d { background: var(--navy); }
.cmp__b--3 { background: var(--blue); }
.cmp__b--2 { background: var(--blue-m); }
.cmp__b--1 { background: var(--pale-2); }
.cmp--full { --lab: 80px; }
.cmp--full .cmp__ms { font-size: 18px; }
.cmp--full .cmp__g { min-height: 40px; }
.cmp--full .cmp__b { height: 40px; display: flex; align-items: center; padding: 0 12px; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; }
.cmp--full .cmp__b--1 { color: var(--navy); }
.cmp--full .cmp__rn { font-size: 15px; }
.cmp--full .cmp__gn { font-size: 16px; }
.cmp__sp { display: none; }
.cmp__lg { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: flex-end; margin-top: 12px; font-size: 13px; font-weight: 700; }
.cmp__lg i { display: inline-block; width: 16px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: 0; }
.cmp__lg--3 { background: var(--blue); } .cmp__lg--2 { background: var(--blue-m); } .cmp__lg--1 { background: var(--pale-2); }
@media (max-width: 767px) {
  .cmp { --lab: 46px; }
  .cmp__ms { font-size: 11px; }
  .cmp__ms small { display: none; }
  .cmp__rn { font-size: 12px; }
  .cmp--full { --lab: 48px; }
  .cmp--full .cmp__ms { font-size: 12px; }
  .cmp--full .cmp__g { min-height: 22px; }
  .cmp--full .cmp__b { height: 22px; padding: 0; }
  .cmp--full .cmp__b span { display: none; }
  .cmp--full .cmp__rn { font-size: 12px; line-height: 1.3; }
  .cmp__sp { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
  .cmp__sp li { background: var(--pale); border-radius: 10px; padding: 10px 12px; font-size: 14px; font-weight: 700; line-height: 1.5; }
  .cmp__sp b { display: block; color: var(--blue); font-size: 13px; }
  .cmp__lg { justify-content: center; }
}

/* ===== セクション共通 ===== */
.sec { padding: 104px 0; position: relative; }
.sec--pale { background: var(--pale); }
.sec--navy { background: var(--navy); color: #fff; }
.sh { text-align: center; margin-bottom: 56px; }
.sh__en { font-family: var(--en); font-weight: 500; font-size: 15px; letter-spacing: .24em; color: var(--blue); margin-bottom: 10px; }
.sh__h { font-size: clamp(30px, 3.2vw, 44px); font-weight: 900; line-height: 1.45; color: var(--navy); letter-spacing: .03em; }
.sh__lead { margin: 20px auto 0; max-width: 40em; font-size: 17px; line-height: 1.9; }
.sec--navy .sh__h, .sh--on .sh__h { color: #fff; }
.sec--navy .sh__en, .sh--on .sh__en { color: var(--sky); }
.sec--navy .sh__lead { color: rgba(255,255,255,.9); }
@media (max-width: 767px) {
  .sec { padding: 72px 0; }
  .sh { margin-bottom: 36px; }
  .sh__en { font-size: 13px; }
  .sh__h { font-size: clamp(21px, 6.1vw, 28px); }
  .sh__lead { font-size: 15px; text-align: left; margin-top: 16px; }
}

/* 表示の動き */
.js.rv-ready .rv:not(.is-in) { opacity: 0; transform: translateY(18px); }
.rv { transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
@media (prefers-reduced-motion: reduce) {
  .rv { transition: none; }
  .mini .ci, .cmp__b { animation: none; }
}

/* ===== パターンB：大卒採用の現状・比較・高卒の強み ===== */
.now { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.now__c { background: #fff; border-radius: 18px; padding: 32px 28px; text-align: center; display: flex; flex-direction: column; }
.sec:not(.sec--pale) .now__c { background: var(--pale); }
.now__h { font-size: 20px; font-weight: 900; color: var(--navy); line-height: 1.55; }
.now__fig { margin: 18px 0 6px; font-family: var(--en); font-weight: 600; color: var(--blue); line-height: 1; }
.now__fig .num { font-size: 84px; }
.now__fig small { font-family: var(--ff); font-size: 18px; font-weight: 900; margin-left: 4px; color: var(--navy); }
.now__t { margin-top: 14px; font-size: 15px; line-height: 1.85; text-align: left; }
.gen { margin: 20px 0 4px; display: grid; gap: 8px; }
.gen li { display: grid; grid-template-columns: 72px 1fr; align-items: center; background: var(--navy); color: #fff; border-radius: 10px; padding: 9px 14px; text-align: left; }
.gen b { font-family: var(--en); font-weight: 600; font-size: 22px; line-height: 1; }
.gen b span { font-family: inherit; }
.gen li span { font-size: 15px; font-weight: 700; }
.cmpbox { background: #fff; border-radius: 22px; padding: 36px 40px 28px; }
.sec--pale .cmpbox { background: #fff; }
.sec:not(.sec--pale) .cmpbox { background: var(--pale); }
.sec:not(.sec--pale) .cmpbox .cmp__b--1 { background: #fff; }
.cmpbox__note { margin-top: 14px; font-size: 12px; line-height: 1.7; color: #3C4A60; }
.statement { margin-top: 56px; text-align: center; font-size: clamp(20px, 2.2vw, 28px); font-weight: 900; line-height: 1.75; color: var(--navy); }
.str { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.str__c { background: #fff; border-radius: 18px; padding: 36px 36px 34px; text-align: center; }
.sec:not(.sec--pale) .str__c { background: var(--pale); }
.str__no { font-family: var(--en); font-weight: 600; font-size: 40px; line-height: 1; color: var(--blue); }
.str__h { margin-top: 14px; font-size: 24px; font-weight: 900; line-height: 1.55; color: var(--navy); }
.str__t { margin-top: 14px; font-size: 16px; line-height: 1.9; text-align: left; }
@media (max-width: 900px) {
  .now { grid-template-columns: 1fr; gap: 14px; }
  .now__c { padding: 26px 20px; }
  .now__h { font-size: 18px; }
  .now__fig .num { font-size: 64px; }
  .cmpbox { padding: 22px 14px 18px; border-radius: 16px; }
  .statement { margin-top: 36px; font-size: 20px; }
  .cmpbox .cmp__sp li { background: #fff; }
  .sec--pale .cmpbox .cmp__sp li { background: var(--pale); }
  .str { grid-template-columns: 1fr; gap: 14px; }
  .str__c { padding: 26px 20px; }
  .str__no { font-size: 32px; }
  .str__h { font-size: 19px; }
  .str__t { font-size: 15px; }
}

/* ===== お悩み ===== */
.worry { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.worry__c { background: #fff; border-radius: 18px; padding: 32px 28px 30px; text-align: center; }
.worry__no { display: block; font-family: var(--en); font-weight: 600; font-size: 40px; line-height: 1; color: var(--blue); margin-bottom: 16px; }
.worry__c p { font-size: 19px; font-weight: 700; line-height: 1.7; color: var(--navy); }
.bridge { margin-top: 48px; text-align: center; font-size: 19px; font-weight: 700; line-height: 1.8; color: var(--navy); }
@media (max-width: 900px) { .worry { grid-template-columns: 1fr; gap: 14px; } .worry__c { padding: 24px 20px; } .worry__no { font-size: 32px; margin-bottom: 10px; } .worry__c p { font-size: 16px; } }
@media (max-width: 767px) { .bridge { font-size: 16px; margin-top: 32px; } }

/* ===== カレンダー ===== */
.caltabs { display: none; }
.calp + .calp { margin-top: 72px; }
.calp__hd { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 18px; }
.calp__h { font-size: 24px; font-weight: 900; color: var(--navy); line-height: 1.5; display: flex; align-items: center; gap: 14px; }
.calp__tag { flex: none; font-family: var(--ff); font-size: 14px; font-weight: 900; padding: 4px 14px; border-radius: 8px; background: var(--pale-2); color: var(--navy); }
.calp__tag--after { background: var(--blue); color: #fff; }
.calp__note { font-size: 14px; line-height: 1.8; }
.lg { display: inline-block; font-size: 12px; font-weight: 900; padding: 1px 8px; border-radius: 6px; margin: 0 2px; line-height: 1.7; }
.lg--warn { background: var(--red); color: #fff; }
.lg--dash { border: 2px dashed var(--blue); color: var(--blue); }
.calp__go { display: none; }

.cal { border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: #fff; --lab: 116px; }
.cal__head { display: grid; grid-template-columns: var(--lab) repeat(12, 1fr); background: #fff; border-bottom: 1px solid var(--line); }
.cal__m { text-align: center; padding: 12px 2px 10px; font-size: 13px; font-weight: 700; color: var(--navy); line-height: 1.2; position: relative; }
.cal__m b { font-family: var(--en); font-weight: 600; font-size: 24px; margin-right: 1px; }
.cal__m em { display: block; margin: 6px auto 0; width: max-content; font-style: normal; font-size: 12px; font-weight: 900; padding: 1px 8px; border-radius: 6px; background: var(--navy); color: #fff; }
.cal__m em.is-kick { background: var(--blue); }
.cal__m:nth-child(2) { background: var(--pale); }
.cal__lane { display: grid; grid-template-columns: var(--lab) 1fr; border-top: 1px solid var(--line); }
.cal__lane:first-of-type { border-top: 0; }
.cal__name { padding: 16px 14px; display: flex; flex-direction: column; justify-content: center; gap: 2px; border-right: 1px solid var(--line); }
.cal__name b { font-size: 16px; font-weight: 900; color: var(--navy); }
.cal__name small { font-size: 12px; line-height: 1.5; color: #3C4A60; }
.cal__lane--school { background: #F5F9FE; }
.cal__lane--jinjib { background: #EEF5FC; }
.cal__lane--jinjib .cal__name b { color: var(--blue); }
.cal__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: row dense; gap: 6px 0; padding: 12px 0; align-content: start; align-items: start;
  background-image: linear-gradient(to right, var(--line) 1px, transparent 1px); background-size: calc(100% / 12) 100%; background-position: -1px 0; }
.ci { margin: 0 4px; padding: 7px 9px; border-radius: 9px; font-size: 13px; font-weight: 700; line-height: 1.5; position: relative; min-width: 0; letter-spacing: .02em; }
.phr main .ci { word-break: normal; line-break: strict; overflow-wrap: anywhere; }
.ci__t { display: block; }
.cal__lane--school .ci { background: var(--pale-2); color: var(--navy); }
.cal__lane--company .ci { background: #fff; color: var(--navy); box-shadow: inset 0 0 0 1.5px #9DB7D3; }
.cal__lane--jinjib .ci { background: var(--blue); color: #fff; }
.ci--key { background: var(--navy) !important; color: #fff !important; box-shadow: none !important; }
.ci--warn { background: #fff !important; box-shadow: inset 0 0 0 2px var(--red) !important; color: var(--navy) !important; }
.ci__flag { display: inline-block; font-size: 12px; font-weight: 900; line-height: 1.6; padding: 0 7px; border-radius: 5px; background: var(--red); color: #fff; margin-bottom: 4px; }
.ci__w { display: block; margin-top: 4px; font-size: 12px; line-height: 1.55; font-weight: 700; color: #B42323; }
.ci__late { display: block; margin-top: 4px; font-size: 12px; font-weight: 900; line-height: 1.5; opacity: .85; }
.ci__late::before { content: "※"; }
.ci--part { padding-top: 16px; background: #E3EEF9 !important; color: var(--navy) !important; box-shadow: none !important; }
.ci--part::before, .ci--part::after { content: ""; position: absolute; top: 6px; height: 5px; border-radius: 3px; }
.ci--part::before { left: 9px; width: calc((100% - 18px) * var(--solid)); background: var(--blue); }
.ci--part::after { right: 9px; left: calc(9px + (100% - 18px) * var(--solid) + 4px); background: repeating-linear-gradient(90deg, var(--blue) 0 6px, transparent 6px 10px); }
.cal__lane--company .ci--part::before { background: var(--navy); }
.cal__lane--company .ci--part::after { background: repeating-linear-gradient(90deg, var(--navy) 0 6px, transparent 6px 10px); }
.ci--cont { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: 0; }
.ci--more { border-top-right-radius: 0; border-bottom-right-radius: 0; margin-right: 0; }
.cal-tall { display: none; }

.ctaband { margin-top: 64px; background: var(--navy); color: #fff; border-radius: 22px; padding: 40px 40px; display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; }
.ctaband__t { font-size: 19px; font-weight: 700; line-height: 1.8; flex: 1 1 400px; }

@media (max-width: 1280px) {
  .cal { --lab: 96px; }
  .ci { font-size: 12px; padding: 6px 7px; margin: 0 3px; }
  .cal__m b { font-size: 21px; }
}
@media (max-width: 1024px) {
  .caltabs { display: grid; grid-template-columns: 1fr 1fr; gap: 0; position: sticky; top: 8px; z-index: 5; background: #fff; border-radius: 14px; padding: 4px; box-shadow: 0 0 0 1px var(--line), 0 6px 18px rgba(6,42,85,.08); margin-bottom: 24px; }
  .caltabs button { border: 0; border-radius: 10px; padding: 10px 6px; font-size: 15px; font-weight: 900; line-height: 1.4; color: var(--navy); background: transparent; cursor: pointer; }
  .caltabs button[aria-selected="true"] { background: var(--navy); color: #fff; }
  .sec--cal[data-view="before"] .calp--after, .sec--cal[data-view="after"] .calp--before { display: none; }
  .calp + .calp { margin-top: 0; }
  .cal { display: none; }
  .cal-tall { display: block; }
  .calp__h { font-size: 19px; gap: 10px; align-items: flex-start; }
  .calp__tag { font-size: 13px; padding: 2px 10px; margin-top: 3px; }
  .calp__go { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; margin-top: 20px; padding: 14px 14px 14px 22px; border-radius: 999px; border: 2px solid var(--navy); background: #fff; color: var(--navy); font-weight: 900; font-size: 16px; cursor: pointer; }
  .ctaband { flex-direction: column; text-align: center; padding: 30px 12px 12px; margin-top: 40px; }
  .ctaband .cta { letter-spacing: 0; font-size: 15px; }
  .ctaband__t { font-size: 16px; flex: none; }
}

/* スマホの縦型カレンダー */
.calv { border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--line); }
.calv__m { display: grid; grid-template-columns: 70px 1fr; border-top: 1px solid var(--line); }
.calv__m:first-child { border-top: 0; }
.calv__label { padding: 14px 4px; text-align: center; background: #F5F9FE; border-right: 1px solid var(--line); color: var(--navy); line-height: 1.1; }
.calv__label b { font-family: var(--en); font-weight: 600; font-size: 28px; display: block; }
.calv__label span { font-size: 12px; font-weight: 700; }
.calv__label em { display: block; margin: 6px auto 0; width: max-content; font-style: normal; font-size: 12px; font-weight: 900; line-height: 1.35; padding: 2px 5px; letter-spacing: 0; border-radius: 5px; background: var(--navy); color: #fff; }
.calv__label em.is-kick { background: var(--blue); }
.calv__items { padding: 10px; display: grid; gap: 8px; }
.calv__none { padding: 14px 12px; font-size: 13px; color: #55637A; align-self: center; }
.cv { display: grid; grid-template-columns: 58px 1fr; gap: 10px; align-items: start; padding: 9px 10px; border-radius: 10px; }
.cv__lane { font-size: 12px; font-weight: 900; text-align: center; border-radius: 6px; padding: 1px 0; line-height: 1.7; }
.cv__body { min-width: 0; }
.cv__t { display: block; font-size: 14px; font-weight: 700; line-height: 1.6; color: var(--navy); }
.cv__t small { display: inline-block; margin-left: 6px; font-size: 12px; color: var(--blue); font-weight: 900; }
.cv--school { background: #EEF4FB; }
.cv--school .cv__lane { background: var(--sky); color: var(--navy); }
.cv--company { background: #fff; box-shadow: inset 0 0 0 1.5px #B4C9E0; }
.cv--company .cv__lane { background: var(--navy); color: #fff; }
.cv--jinjib { background: var(--blue); }
.cv--jinjib .cv__lane { background: #fff; color: var(--blue); }
.cv--jinjib .cv__t, .cv--jinjib .cv__t small { color: #fff; }
.cv--key.cv--school, .cv--key.cv--company { background: var(--navy); box-shadow: none; }
.cv--key.cv--school .cv__t, .cv--key.cv--company .cv__t, .cv--key .cv__t small { color: #fff; }
.cv--key.cv--company .cv__lane { background: #fff; color: var(--navy); }
.cv--key.cv--jinjib { background: var(--navy); }
.cv--warn { background: #fff; box-shadow: inset 0 0 0 2px var(--red); }
.cv--part.cv--jinjib { background: #E3EEF9; }
.cv--part.cv--jinjib .cv__t { color: var(--navy); }
.cv--part.cv--jinjib .cv__t small { color: var(--blue); }
.cv--part.cv--jinjib .cv__lane { background: var(--blue); color: #fff; }

@media (max-width: 374px) {
  .cta { font-size: 14px; letter-spacing: 0; }
  .ctaband { margin-left: -16px; margin-right: -16px; border-radius: 0; padding: 28px 16px; }
  .ctaband .cta { font-size: 14px; }
  .stick .cta--stick { font-size: 13px; letter-spacing: 0; }
}

/* ===== 差分 ===== */
.diff { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.diff__c { background: #fff; border-radius: 18px; padding: 32px 30px; }
.sec--pale .diff__c { background: #fff; }
.sec:not(.sec--pale) .diff__c { background: var(--pale); }
.diff__no { font-family: var(--en); font-weight: 600; font-size: 40px; line-height: 1; color: var(--blue); }
.diff__h { margin-top: 14px; font-size: 22px; font-weight: 900; color: var(--navy); }
.diff__t { margin-top: 12px; font-size: 16px; line-height: 1.9; }
@media (max-width: 900px) { .diff { grid-template-columns: 1fr; gap: 14px; } .diff__c { padding: 24px 20px; text-align: center; } .diff__no { font-size: 32px; } .diff__h { font-size: 19px; margin-top: 8px; } .diff__t { font-size: 15px; text-align: left; } }

/* ===== 2次募集 ===== */
.sec2 { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; align-items: center; }
.sec2__k { font-size: 18px; font-weight: 700; line-height: 1.7; color: rgba(255,255,255,.92); }
.sec2__n { font-family: var(--en); font-weight: 600; font-size: 150px; line-height: 1; color: #fff; margin: 12px 0 8px; }
.sec2__n .num { font-size: 1.25em; color: var(--sky); }
.sec2__n small { font-family: var(--ff); font-size: 44px; font-weight: 900; margin-left: 4px; }
.sec2__n:first-letter { font-size: .38em; }
.sec2__s { font-size: 17px; font-weight: 700; }
.sec2__note { margin-top: 10px; font-size: 12px; line-height: 1.7; color: rgba(255,255,255,.75); }
.sec2__h { font-size: clamp(28px, 3vw, 40px); font-weight: 900; line-height: 1.45; }
.sec2__pts { margin-top: 28px; display: grid; gap: 14px; }
.sec2__pts li { background: rgba(255,255,255,.08); border-radius: 14px; padding: 18px 22px; }
.sec2__pts h3 { font-size: 18px; font-weight: 900; color: var(--sky); line-height: 1.6; }
.sec2__pts p { margin-top: 6px; font-size: 15px; line-height: 1.85; color: rgba(255,255,255,.92); }
@media (max-width: 900px) {
  .sec2 { grid-template-columns: 1fr; gap: 32px; }
  .sec2__fig { text-align: center; }
  .sec2__n { font-size: 110px; }
  .sec2__note { text-align: left; }
  .sec2__h { text-align: center; font-size: 26px; }
  .sec2__pts li { padding: 16px 18px; }
  .sec2__pts h3 { font-size: 16px; }
}

/* ===== カウントダウン ===== */
.cd { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px; align-items: center; background: #fff; border-radius: 22px; padding: 48px 52px; }
.sec:not(.sec--pale) .cd { background: var(--pale); }
.cd__lab { font-size: 16px; font-weight: 700; color: var(--navy); line-height: 1.6; }
.cd__big { font-size: 26px; font-weight: 900; color: var(--navy); line-height: 1; margin-top: 12px; white-space: nowrap; }
.cd__n { font-family: var(--en); font-weight: 600; font-size: 132px; color: var(--blue); margin: 0 8px; letter-spacing: 0; vertical-align: -.08em; }
.cd__steps { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0; margin-bottom: 24px; }
.cd__steps li { position: relative; padding: 14px 8px; text-align: center; background: var(--pale-2); color: var(--navy); line-height: 1.4; }
.sec:not(.sec--pale) .cd__steps li { background: #fff; }
.cd__steps li:first-child { border-radius: 12px 0 0 12px; }
.cd__steps li:last-child { border-radius: 0 12px 12px 0; }
.cd__steps li + li { margin-left: 3px; }
.cd__steps b { display: block; font-size: 18px; font-weight: 900; }
.cd__steps span { font-size: 13px; font-weight: 700; }
.cd__steps li.is-goal { background: var(--navy) !important; color: #fff; }
.cd__t { font-size: 16px; line-height: 1.95; }
@media (max-width: 900px) {
  .cd { grid-template-columns: 1fr; gap: 24px; padding: 32px 18px; text-align: center; }
  .cd__lab { font-size: 15px; }
  .cd__big { font-size: 20px; }
  .cd__n { font-size: 96px; }
  .cd__steps b { font-size: 15px; }
  .cd__steps span { font-size: 12px; }
  .cd__t { text-align: left; font-size: 15px; }
}

/* ===== イベント ===== */
.evwrap { display: grid; gap: 32px; }
.ev { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: #fff; border-radius: 22px; overflow: hidden; }
.sec:not(.sec--pale) .ev { background: var(--pale); }
.ev__media { min-height: 100%; background: var(--navy); }
.ev__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3 / 2; }
.ev__big { height: 100%; min-height: 300px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 40px; font-weight: 900; }
.ev__big b { font-family: var(--en); font-weight: 600; font-size: 200px; line-height: 1; margin-right: 8px; }
.ev__body { padding: 40px 44px; }
.ev__when { font-size: 16px; font-weight: 900; color: var(--blue); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.ev__badge { font-size: 13px; color: var(--red); box-shadow: inset 0 0 0 1.5px var(--red); border-radius: 6px; padding: 0 10px; line-height: 1.9; }
.ev__h { margin-top: 8px; font-size: 28px; font-weight: 900; color: var(--navy); line-height: 1.45; }
.ev__t { margin-top: 14px; font-size: 16px; line-height: 1.9; }
.ev__facts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.ev__facts li { background: var(--pale); border-radius: 12px; padding: 12px 18px; text-align: center; }
.sec:not(.sec--pale) .ev__facts li { background: #fff; }
.ev__facts b { display: block; font-size: 22px; font-weight: 900; color: var(--blue); line-height: 1.3; }
.ev__facts span { font-size: 12px; font-weight: 700; }
.ev__dl { margin-top: 20px; font-size: 17px; font-weight: 900; color: var(--navy); }
.ev__note { margin-top: 4px; font-size: 12px; line-height: 1.7; color: #3C4A60; }
.cta--ev { margin-top: 24px; font-size: 16px; min-height: 56px; }
@media (max-width: 900px) {
  .ev { grid-template-columns: 1fr; }
  .ev__big { min-height: 180px; font-size: 28px; }
  .ev__big b { font-size: 120px; }
  .ev__body { padding: 26px 20px 28px; }
  .ev__when { justify-content: center; }
  .ev__h { font-size: 22px; text-align: center; }
  .ev__t { font-size: 15px; }
  .ev__facts { justify-content: center; }
  .ev__dl { text-align: center; font-size: 16px; }
}

/* ===== 支援内容 ===== */
.sup { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sup__c { background: #fff; border-radius: 18px; padding: 28px 26px 30px; }
.sec:not(.sec--pale) .sup__c { background: var(--pale); }
.sup__when { display: inline-block; font-size: 13px; font-weight: 900; color: var(--blue); background: var(--pale); border-radius: 6px; padding: 1px 10px; }
.sec:not(.sec--pale) .sup__when { background: #fff; }
.sup__h { margin-top: 12px; font-size: 20px; font-weight: 900; color: var(--navy); line-height: 1.5; }
.sup__t { margin-top: 10px; font-size: 15px; line-height: 1.85; }
.sup__more { margin-top: 32px; text-align: center; font-size: 16px; font-weight: 700; color: var(--navy); }
@media (max-width: 900px) { .sup { grid-template-columns: 1fr; gap: 12px; } .sup__c { padding: 22px 20px; text-align: center; } .sup__h { font-size: 18px; } .sup__t { text-align: left; } .sup__more { text-align: left; font-size: 15px; } }
@media (min-width: 901px) and (max-width: 1100px) { .sup { grid-template-columns: repeat(2, 1fr); } }

/* ===== 事例 ===== */
.case { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.case__c { background: #fff; border-radius: 18px; padding: 30px 28px; display: flex; flex-direction: column; }
.sec:not(.sec--pale) .case__c { background: var(--pale); }
.case__tag { align-self: flex-start; font-size: 13px; font-weight: 900; color: #fff; background: var(--blue); border-radius: 6px; padding: 1px 10px; }
.case__h { margin-top: 14px; font-size: 20px; font-weight: 900; line-height: 1.6; color: var(--navy); }
.case__who { margin-top: 8px; font-size: 13px; font-weight: 700; color: #3C4A60; }
.case__tl { margin-top: 18px; display: grid; gap: 8px; }
.case__tl li { display: grid; grid-template-columns: 76px 1fr; gap: 10px; align-items: baseline; font-size: 14px; line-height: 1.6; }
.case__tl b { font-size: 13px; font-weight: 900; color: var(--blue); }
.case__note { margin-top: 20px; font-size: 12px; text-align: center; color: #3C4A60; }
@media (max-width: 900px) { .case { grid-template-columns: 1fr; gap: 14px; } .case__c { padding: 24px 20px; } .case__tag { align-self: center; } .case__h { text-align: center; font-size: 18px; } .case__who { text-align: center; } }

/* ===== 相談の流れ ===== */
.flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.flow__s { background: #fff; border-radius: 18px; padding: 28px 26px; position: relative; text-align: center; }
.sec:not(.sec--pale) .flow__s { background: var(--pale); }
.flow__s + .flow__s::before { content: ""; position: absolute; left: -30px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--blue);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9.5 4.5 13 8l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9.5 4.5 13 8l-3.5 3.5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.flow__no { font-family: var(--en); font-weight: 500; font-size: 15px; letter-spacing: .16em; color: var(--blue); }
.flow__h { margin-top: 6px; font-size: 20px; font-weight: 900; color: var(--navy); }
.flow__t { margin-top: 10px; font-size: 15px; line-height: 1.85; text-align: left; }
.know { margin-top: 40px; background: var(--navy); color: #fff; border-radius: 22px; padding: 36px 40px; }
.know__h { font-size: 22px; font-weight: 900; text-align: center; }
.know__l { margin-top: 20px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.know__l li { background: rgba(255,255,255,.08); border-radius: 14px; padding: 18px 20px; font-size: 14px; line-height: 1.8; color: rgba(255,255,255,.9); }
.know__l b { display: block; font-size: 17px; color: var(--sky); margin-bottom: 4px; line-height: 1.55; }
@media (max-width: 900px) {
  .flow { grid-template-columns: 1fr; gap: 34px; }
  .flow__s + .flow__s::before { left: 50%; top: -30px; margin: 0 0 0 -12px; transform: rotate(90deg); }
  .flow__s { padding: 22px 20px; }
  .flow__h { font-size: 18px; }
  .know { padding: 28px 18px; }
  .know__h { font-size: 19px; }
  .know__l { grid-template-columns: 1fr; gap: 10px; }
  .know__l li { padding: 16px; }
  .know__l b { text-align: center; }
}

/* ===== FAQ ===== */
.faq { display: grid; gap: 12px; }
.faq__i { background: #fff; border-radius: 14px; }
.sec:not(.sec--pale) .faq__i { background: var(--pale); }
.faq__i summary { list-style: none; cursor: pointer; padding: 20px 56px 20px 24px; font-size: 17px; font-weight: 900; color: var(--navy); line-height: 1.6; position: relative; }
.faq__i summary::-webkit-details-marker { display: none; }
.faq__i summary::before { content: "Q"; font-family: var(--en); color: var(--blue); margin-right: 12px; font-size: 19px; }
.faq__i summary::after { content: ""; position: absolute; right: 24px; top: 50%; width: 12px; height: 12px; margin-top: -9px; border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: rotate(45deg); transition: transform .2s; }
.faq__i[open] summary::after { transform: rotate(-135deg); margin-top: -3px; }
.faq__a { padding: 0 24px 22px 55px; font-size: 15px; line-height: 1.9; }
.faq__note { margin-top: 6px; font-size: 12px; line-height: 1.7; color: #3C4A60; }
@media (max-width: 767px) { .faq__i summary { font-size: 15px; padding: 16px 44px 16px 16px; } .faq__i summary::after { right: 18px; } .faq__a { padding: 0 16px 18px 16px; font-size: 14px; } }

/* ===== フォーム ===== */
.form { background: #fff; color: var(--ink); border-radius: 22px; padding: 40px 44px; display: grid; gap: 18px; }
.form__pv { background: var(--pale); color: var(--navy); border-radius: 10px; padding: 10px 14px; font-size: 13px; font-weight: 700; }
.fl label { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 900; color: var(--navy); margin-bottom: 6px; }
.fl label em { font-style: normal; font-size: 12px; font-weight: 900; color: #fff; background: var(--red); border-radius: 5px; padding: 0 7px; line-height: 1.7; }
.fl input, .fl select { width: 100%; font: inherit; font-size: 16px; padding: 13px 14px; border-radius: 10px; border: 1.5px solid #B9CCE0; background: #fff; color: var(--ink); }
.fl input:focus, .fl select:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,81,160,.15); }
.fl--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.fl--2 .fl__err { grid-column: 1 / -1; }
.fl__err { display: none; margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--red); }
.fl.is-err .fl__err { display: block; }
.fl.is-err input { border-color: var(--red); }
.form__pp { font-size: 13px; color: #3C4A60; text-align: center; }
.cta--submit { width: 100%; justify-content: center; }
.cta--submit .cta__t { flex: 0 1 auto; }
.done { background: #fff; color: var(--navy); border-radius: 22px; padding: 48px 32px; text-align: center; }
.done__h { font-size: 24px; font-weight: 900; }
.done__t { margin-top: 10px; font-size: 16px; }
@media (max-width: 767px) { .form { padding: 26px 18px; } .fl--2 { grid-template-columns: 1fr; gap: 14px; } }

/* ===== 出典・フッター ===== */
.refs { background: #F5F9FE; padding: 32px 0; }
.refs__h { font-size: 13px; font-weight: 900; color: var(--navy); margin-bottom: 6px; }
.refs__l li { font-size: 12px; line-height: 1.8; color: #3C4A60; }
.ft { background: var(--navy-d); color: #fff; padding: 48px 0 40px; text-align: center; }
.ft__in { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.ft__logo { width: 150px; margin: 0 auto; }
.ft__co { margin-top: 12px; font-size: 14px; font-weight: 700; }
.ft__nav { margin-top: 14px; display: flex; justify-content: center; gap: 24px; font-size: 13px; }
.ft__nav a { text-decoration: none; color: rgba(255,255,255,.85); }
.ft__copy { margin-top: 18px; font-size: 12px; color: rgba(255,255,255,.6); }

/* ===== スマホの追従ボタン ===== */
.stick { display: none; }
@media (max-width: 1024px) {
  .stick { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(6,42,85,.96); transform: translateY(110%); transition: transform .35s ease; }
  .stick.is-on { transform: none; }
  .cta--stick { width: 100%; display: flex; min-height: 56px; font-size: 15px; line-height: 1.4; padding: 8px 10px 8px 18px; }
  .ft { padding-bottom: 120px; }
}
