@charset "UTF-8";
/* 九大進学ゼミ オンライン校冬期講座 専用CSS
 * #ow-winter の内側だけに作用するため、共通ヘッダー・フッターを変更しません。
 * 企業サイトの master.css より後に読み込んでください。
 */
/* ==============================================================
   FVと共通ヘッダーの重なり対策（PC・SP共通）
   --ow-header-clearance はページ末尾のJSが実際の重なり量を設定。
   共通ヘッダーが通常の文書フローにある場合は 0px になるため、
   不要な空白を作りません。FV自体の縦横サイズは変更しません。
   ============================================================== */
#ow-winter {
  display: block;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding-top: var(--ow-header-clearance, 0px);
  background-color: #cbeaff;
}
#ow-winter, #ow-winter * { box-sizing:border-box; }
#ow-winter section[id] { scroll-margin-top:90px; }
#ow-winter { --navy:#17365f;--navy2:#102947;--blue:#0878b6;--cyan:#d9f4ff;--light:#f0f8fc;--orange:#ef7934;--ink:#20344a;--muted:#5e7285;--line:#d7e7f0;--radius:20px;--shadow:0 14px 38px rgba(18,67,106,.10) }
#ow-winter *, #ow-winter *::before, #ow-winter *::after { box-sizing:border-box }
#ow-winter { margin:0;color:var(--ink);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased }
#ow-winter a { color:inherit;text-decoration:none }
#ow-winter button, #ow-winter a, #ow-winter summary { -webkit-tap-highlight-color:transparent }
#ow-winter a:focus-visible, #ow-winter summary:focus-visible, #ow-winter .schedule-scroll:focus-visible { outline:3px solid #f59b51;outline-offset:3px }
#ow-winter img { max-width:100%;display:block }
#ow-winter h1, #ow-winter h2, #ow-winter h3, #ow-winter h4, #ow-winter p { margin-top:0 }
#ow-winter h1, #ow-winter h2, #ow-winter h3, #ow-winter h4 { line-height:1.45 }
#ow-winter ul { padding-left:1.35em }
#ow-winter li+li { margin-top:.35em }
#ow-winter .ow-container { width:min(1120px,calc(100% - 44px));margin-inline:auto }
#ow-winter .sp-only { display:none }
#ow-winter .hero { height:min(35.4167vw,680px);min-height:570px;position:relative;overflow:hidden;background:#cbeaff }
#ow-winter .hero-visual { position:absolute;inset:0;display:block }
#ow-winter .hero-visual img { width:100%;height:100%;object-fit:cover;object-position:center }
#ow-winter .hero::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(228,247,255,.48),rgba(228,247,255,0) 64%);pointer-events:none }
#ow-winter .hero-inner { position:relative;z-index:1;width:min(1250px,calc(100% - 70px));height:100%;margin:auto;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding-bottom:12px }
#ow-winter .eyebrow { font-size:14px;font-weight:900;letter-spacing:.22em;color:#116c9f;margin:0 0 14px }
#ow-winter .spark { color:#f49b31 }
#ow-winter .hero h1 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif;color:var(--navy2);font-weight:900;font-size:clamp(48px,4.4vw,84px);line-height:1.25;letter-spacing:.025em;margin:0 0 14px;text-shadow:0 2px 0 rgba(255,255,255,.7) }
#ow-winter .hero h1 em { font-style:normal;color:#ed762c }
#ow-winter .hero-sub { display:flex;align-items:baseline;gap:13px;font-size:20px;color:var(--navy);font-weight:700;margin:0 0 8px }
#ow-winter .hero-sub b { font-size:28px }
#ow-winter .hero-grade { background:var(--blue);color:#fff;border-radius:100px;padding:4px 21px;font-size:14px;font-weight:800;letter-spacing:.08em }
#ow-winter .hero-caption { margin:16px 0 22px;font-size:17px;font-weight:750;line-height:1.6 }
#ow-winter .hero-actions { display:flex;gap:11px }
#ow-winter .ow-btn { display:inline-flex;align-items:center;justify-content:center;gap:24px;border-radius:100px;font-size:15px;font-weight:900;line-height:1.3;min-height:54px;padding:15px 28px;box-shadow:0 5px 15px rgba(15,48,71,.12);transition:transform .2s,filter .2s }
#ow-winter .ow-btn:hover { transform:translateY(-2px);filter:brightness(1.05) }
#ow-winter .ow-btn-orange { background:linear-gradient(120deg,#f68f3f,#e96430);color:white }
#ow-winter .ow-btn-white { background:white;color:var(--navy);border:1px solid #c1dded }
#ow-winter .ow-btn-navy { background:var(--navy);color:white }
#ow-winter .ow-btn.big { font-size:19px;padding:20px 44px;min-height:68px }
#ow-winter .quick-links { background:var(--navy);color:#fff }
#ow-winter .quick-links-inner { display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 0 }
#ow-winter .quick-links span { font-size:13px;font-weight:750;opacity:.75 }
#ow-winter .quick-links a { border:1px solid rgba(255,255,255,.4);padding:8px 19px;border-radius:100px;font-size:13px;font-weight:800 }
#ow-winter .quick-links a:hover { background:#fff;color:var(--navy) }
#ow-winter .section { padding:100px 0 }
#ow-winter .section-white { background:#fff }
#ow-winter .section-pale { background:var(--light) }
#ow-winter .section-kicker { font-size:13px;text-align:center;letter-spacing:.22em;font-weight:900;color:var(--blue);margin:0 0 14px }
#ow-winter .section-title { text-align:center;font-size:clamp(27px,3.1vw,41px);letter-spacing:.035em;margin:0 0 20px;color:var(--navy) }
#ow-winter .section-lead { text-align:center;color:var(--muted);margin:0 auto 44px;max-width:750px;font-size:17px }
#ow-winter .text-blue { color:var(--blue) }
#ow-winter .align-left { text-align:left }
#ow-winter .fit-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:17px;margin-top:40px }
#ow-winter .fit-item { display:flex;align-items:center;gap:22px;padding:24px 27px;background:#f8fcff;border:1px solid var(--line);border-radius:14px }
#ow-winter .fit-item span { font-weight:900;color:#8bbcd9;font-size:29px;letter-spacing:-.05em }
#ow-winter .fit-item p { margin:0;font-size:17px }
#ow-winter .fit-item b { color:#0e72af }
#ow-winter .support-note { display:flex;gap:22px;margin-top:28px;background:#e9f7fb;border-radius:18px;padding:29px 34px;border-left:6px solid #68b1d3 }
#ow-winter .support-icon { flex:none;font-size:37px;line-height:1;color:#49a0bc }
#ow-winter .support-note h3 { color:var(--navy);margin:0 0 6px;font-size:21px }
#ow-winter .support-note p { margin:0 }
#ow-winter .strength-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:45px }
#ow-winter .strength-card { background:#fff;border-radius:var(--radius);padding:29px 26px 32px;text-align:center;box-shadow:var(--shadow) }
#ow-winter .strength-visual { position:relative;background:linear-gradient(140deg,#e4f7ff,#bfdff5);width:118px;height:118px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1177aa;font-size:55px;margin:0 auto 26px;font-weight:800 }
#ow-winter .strength-visual small { position:absolute;bottom:-11px;background:#127eb5;color:white;border-radius:20px;font-size:10px;letter-spacing:.16em;padding:4px 12px }
#ow-winter .strength-card h3 { font-size:23px;color:var(--navy);margin-bottom:16px }
#ow-winter .strength-card p { margin:0;text-align:left;font-size:15px }
#ow-winter .results-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:42px }
#ow-winter .result { text-align:center;border-radius:18px;border:2px solid #c4e2f3;padding:26px 12px;background:linear-gradient(180deg,#fff,#f4fbff) }
#ow-winter .result>span { font-size:15px;color:var(--navy);font-weight:900 }
#ow-winter .result strong { display:block;font-size:60px;color:#ed7635;line-height:1.4;letter-spacing:-.04em }
#ow-winter .result strong small { font-size:21px;letter-spacing:0 }
#ow-winter .result p { margin:0;font-size:13px;color:var(--muted) }
#ow-winter .pass-strip { display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;background:var(--navy);border-radius:14px;color:#fff;padding:24px;margin-top:22px }
#ow-winter .pass-strip span { font-weight:700;font-size:14px;opacity:.8 }
#ow-winter .pass-strip b { font-size:19px }
#ow-winter .fineprint { font-size:12px;color:#637888;margin:12px 0 0 }
#ow-winter .trial-grid { display:grid;grid-template-columns:1.1fr .9fr;gap:55px;align-items:center }
#ow-winter .trial-grid .section-kicker { text-align:left }
#ow-winter .trial-grid p { font-size:16px }
#ow-winter .trial-deadline { background:#fff;border-left:5px solid var(--orange);padding:14px 20px;border-radius:4px;margin:23px 0 }
#ow-winter .trial-deadline b { color:#cf5e25 }
#ow-winter .trial-panel { border-radius:25px;background:#d9f0ff;min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px }
#ow-winter .chat-bubble { align-self:flex-start;background:#fff;color:var(--blue);border-radius:18px 18px 18px 0;padding:13px 22px;font-size:17px;font-weight:900;line-height:1.45;margin:0 0 15px }
#ow-winter .trial-screen { width:75%;height:178px;border:9px solid var(--navy);border-bottom-width:19px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative }
#ow-winter .teacher-head { font-size:65px;color:var(--blue);line-height:1.1 }
#ow-winter .board-line { width:47%;height:7px;border-radius:5px;background:#baddec;margin:6px }
#ow-winter .board-line.short { width:32% }
#ow-winter .mini-tiles { position:absolute;right:-10px;bottom:-17px;display:flex;gap:4px }
#ow-winter .mini-tiles span { background:#f1b84b;color:#fff;border:3px solid #fff;border-radius:6px;width:31px;height:31px;display:grid;place-items:center;font-weight:900 }
#ow-winter .trial-panel>p { text-align:center;margin:21px 0 0;font-size:14px }
#ow-winter .legend { display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;margin:30px 0 23px;font-size:13px;font-weight:700 }
#ow-winter .legend-dot { display:inline-block;width:13px;height:13px;border-radius:4px;margin-right:6px;vertical-align:-1px }
#ow-winter .legend-dot.thinking, #ow-winter .thinking { background:#fff1d7!important;color:#a96d0c!important }
#ow-winter .legend-dot.english, #ow-winter .english { background:#fce5d7!important;color:#ba5d2c!important }
#ow-winter .legend-dot.lesson, #ow-winter .lesson { background:#d9f2ee!important;color:#14866f!important }
#ow-winter .legend-dot.special, #ow-winter .special { background:#dce6ff!important;color:#234f9c!important }
#ow-winter .schedule-scroll { overflow-x:auto;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 26px rgba(20,64,106,.08) }
#ow-winter .schedule-table { border-collapse:separate;border-spacing:0;width:100%;min-width:1140px;text-align:center;font-size:12px;line-height:1.3 }
#ow-winter .schedule-table th, #ow-winter .schedule-table td { border-right:1px solid #e3edf3;border-bottom:1px solid #e3edf3;padding:13px 3px;min-width:46px }
#ow-winter .schedule-table thead tr:first-child th { background:var(--blue);color:#fff;font-size:17px;padding:11px }
#ow-winter .schedule-table thead tr:nth-child(2) th { background:#e7f3fa;color:var(--navy);font-weight:900 }
#ow-winter .schedule-table .row-label { min-width:150px;width:150px;position:sticky;left:0;z-index:2;background:#fff;text-align:left;padding-left:15px;box-shadow:3px 0 6px rgba(22,63,98,.05) }
#ow-winter .schedule-table thead tr:first-child .row-label { background:var(--navy);font-size:12px;text-align:center;padding-left:0 }
#ow-winter .schedule-table thead tr:nth-child(2) .row-label { background:#d3e8f5 }
#ow-winter .schedule-table tbody .row-label { color:var(--navy);font-size:14px;font-weight:900 }
#ow-winter .schedule-table .row-label small { display:block;font-size:11px;margin-top:4px;color:var(--muted) }
#ow-winter .schedule-table .off { color:#a5afb8;background:#f4f6f8;font-size:10px }
#ow-winter .schedule-table .thinking, #ow-winter .schedule-table .english, #ow-winter .schedule-table .lesson, #ow-winter .schedule-table .special { font-weight:900;font-size:17px }
#ow-winter .scroll-hint { text-align:center;color:#7794a6;font-size:12px;margin-top:9px }
#ow-winter .schedule-notes { border-radius:13px;background:#f3f8fb;padding:18px 26px;margin-top:23px;font-size:14px }
#ow-winter .schedule-notes p { margin:0 }
#ow-winter .schedule-notes p+p { margin-top:5px }
#ow-winter .course-card { background:#fff;border-radius:24px;box-shadow:var(--shadow);overflow:hidden;margin-top:30px }
#ow-winter .course-head { display:grid;grid-template-columns:1fr auto;gap:25px;align-items:center;padding:34px 38px;background:linear-gradient(105deg,#e0f4ff,#fff) }
#ow-winter .course-head h3 { font-size:27px;color:var(--navy);margin:13px 0 9px }
#ow-winter .course-head p { margin:0;font-size:15px;max-width:650px }
#ow-winter .course-tag { display:inline-block;font-size:13px;font-weight:900;background:#187db7;color:white;padding:4px 17px;border-radius:50px }
#ow-winter .course-tag.green { background:#439377 }
#ow-winter .course-tag.amber { background:#ed873a }
#ow-winter .price { text-align:center;background:#fff;border:2px solid #b5dbe9;border-radius:16px;padding:14px 22px;min-width:245px }
#ow-winter .price small { font-size:12px;display:block;color:var(--muted);line-height:1.5 }
#ow-winter .price strong { display:block;color:#e97330;font-size:43px;line-height:1.4;white-space:nowrap }
#ow-winter .price strong span { font-size:19px }
#ow-winter .course-points { display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:30px 35px }
#ow-winter .course-points>div { border-right:1px solid var(--line);padding:0 12px }
#ow-winter .course-points>div:last-child { border-right:0 }
#ow-winter .course-points span { font-size:12px;font-weight:900;color:var(--blue) }
#ow-winter .course-points h4 { font-size:18px;color:var(--navy);margin:6px 0 }
#ow-winter .course-points p { font-size:13px;margin:0 }
#ow-winter .special-box { margin:0 35px 35px;padding:28px;background:#f3f8fc;border:1px solid #dcebf4;border-radius:14px }
#ow-winter .special-heading { display:flex;align-items:center;gap:14px }
#ow-winter .special-heading span { background:#ec7634;color:#fff;border-radius:4px;padding:5px 11px;font-weight:800;font-size:12px }
#ow-winter .special-heading h4 { color:var(--navy);font-size:23px;margin:0 }
#ow-winter .special-columns { display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:23px 0 }
#ow-winter .special-columns>div { border-left:3px solid #60b2d5;padding-left:14px }
#ow-winter .special-columns b { color:var(--navy) }
#ow-winter .special-columns p { margin:6px 0 0;font-size:13px }
#ow-winter .special-box details { border-top:1px solid #c9dfea }
#ow-winter .special-box summary { cursor:pointer;padding:12px 4px;font-weight:800;color:#176d9e }
#ow-winter .detail-content { padding:4px 12px 13px;font-size:14px }
#ow-winter .detail-content p:last-child { margin-bottom:0 }
#ow-winter .junior12 .course-head { background:linear-gradient(105deg,#e2f5eb,#fff) }
#ow-winter .pill-row { display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:30px 36px }
#ow-winter .pill-row span { background:#e9f8f1;padding:13px;border-radius:10px;text-align:center;font-size:14px;font-weight:800;color:#32795d }
#ow-winter .elementary-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:41px }
#ow-winter .elementary-card { position:relative;border:2px solid #e0ebf1;background:#fff;border-radius:21px;padding:36px;box-shadow:var(--shadow) }
#ow-winter .elementary-icon { background:#e3f3ff;border-radius:20px;width:74px;height:74px;display:grid;place-items:center;color:#1c8fbe;font-size:42px;font-weight:900;margin-bottom:20px }
#ow-winter .elementary-icon.orange { background:#fff0df;color:#e97833 }
#ow-winter .elementary-icon span { font-size:20px;margin-left:-15px }
#ow-winter .elementary-card h3 { font-size:27px;color:var(--navy);margin:13px 0 }
#ow-winter .elementary-card>p { font-size:15px }
#ow-winter .elementary-card ul { margin:25px 0;padding:0;list-style:none }
#ow-winter .elementary-card li { padding:10px 0 10px 26px;position:relative;border-bottom:1px dashed #d7e6ec;font-size:15px }
#ow-winter .elementary-card li::before { content:"✓";position:absolute;left:0;color:#ef8a36;font-weight:900 }
#ow-winter .elementary-price { border-top:2px solid #e4edf2;padding-top:19px;display:flex;align-items:baseline;justify-content:space-between;font-weight:800;font-size:13px }
#ow-winter .elementary-price b { font-size:36px;color:#e97833;line-height:1.2 }
#ow-winter .elementary-price b span { font-size:13px }
#ow-winter .choice-note { font-size:14px;color:#597187;text-align:center;margin-top:24px }
#ow-winter .steps { counter-reset:s;display:grid;grid-template-columns:repeat(2,1fr);gap:19px;list-style:none;padding:0;margin:42px 0 0 }
#ow-winter .steps li { display:flex;gap:20px;padding:28px;background:white;border-radius:16px;margin:0;border:1px solid var(--line) }
#ow-winter .steps li>span { align-self:flex-start;flex:none;color:var(--blue);font-weight:900;letter-spacing:.05em;font-size:13px }
#ow-winter .steps h3 { font-size:20px;color:var(--navy);margin:0 0 8px }
#ow-winter .steps p { margin:0;font-size:14px }
#ow-winter .requirements { display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:45px }
#ow-winter .requirements>div { border:1px solid #d8e8f1;padding:27px 21px;border-radius:15px;background:#f8fcff }
#ow-winter .requirements span { font-size:11px;color:#1085bd;font-weight:900;letter-spacing:.07em }
#ow-winter .requirements h3 { color:var(--navy);font-size:18px;margin:11px 0 }
#ow-winter .requirements p { font-size:13px;margin-bottom:5px }
#ow-winter .requirements strong { font-size:13px;color:#d45f2c }
#ow-winter .faq-wrap { max-width:900px }
#ow-winter .faq-item { background:white;border:1px solid #d9e9f1;border-radius:11px;margin-top:12px;overflow:hidden }
#ow-winter .faq-item summary { position:relative;cursor:pointer;list-style:none;font-weight:800;color:var(--navy);padding:21px 52px 21px 25px }
#ow-winter .faq-item summary::-webkit-details-marker { display:none }
#ow-winter .faq-item summary::before { content:"Q";display:inline-grid;place-items:center;background:var(--blue);color:white;width:30px;height:30px;border-radius:50%;margin-right:12px;font-size:14px }
#ow-winter .faq-item summary::after { content:"+";position:absolute;right:24px;top:18px;font-size:25px;color:var(--blue) }
#ow-winter .faq-item[open] summary::after { content:"−" }
#ow-winter .faq-item p { padding:5px 29px 23px 68px;margin:0;font-size:15px }
#ow-winter .apply-section { background:linear-gradient(135deg,#164574,#0c78aa);padding:85px 0;text-align:center;color:white }
#ow-winter .apply-section .section-kicker { color:#a3e4ff }
#ow-winter .apply-section h2 { font-size:clamp(30px,4vw,49px);margin:0 0 18px }
#ow-winter .apply-section p { font-size:17px }
#ow-winter .apply-section .ow-btn { margin-top:17px }
#ow-winter .apply-section .apply-disclaimer { font-size:12px;opacity:.8;margin:20px 0 0 }
@media (max-width:1100px) {
#ow-winter .hero { min-height:550px }
#ow-winter .hero-inner { padding-left:10px }
#ow-winter .hero h1 { font-size:58px }
#ow-winter .requirements { grid-template-columns:repeat(2,1fr) }
}
@media (max-width:767px) {
#ow-winter { font-size:15px;line-height:1.8 }
#ow-winter .ow-container { width:min(100% - 32px,560px) }
#ow-winter .sp-only { display:initial }
#ow-winter .hero { height:auto;min-height:0;aspect-ratio:750/940 }
#ow-winter .hero-visual img { object-fit:cover;object-position:center }
#ow-winter .hero::after { background:linear-gradient(180deg,rgba(235,249,255,.12),rgba(235,249,255,.06) 60%) }
#ow-winter .hero-inner { width:calc(100% - 46px);padding:24px 0 0;display:block }
#ow-winter .eyebrow { font-size:10px;letter-spacing:.14em;margin:0 0 10px }
#ow-winter .hero h1 { font-size:clamp(43px,9.8vw,76px);line-height:1.23;margin-bottom:10px }
/* 1行目「この冬、」の直後の改行はスマホでも維持する */
#ow-winter .hero h1 br:first-child { display:inline }
/* 2行目「「できる」を」が途中で折り返さないようにする */
#ow-winter .hero h1 { white-space:nowrap }
#ow-winter .hero-sub { display:block;font-size:14px;margin:0 0 7px }
#ow-winter .hero-sub b { display:block;font-size:clamp(21px,5.1vw,35px);margin-top:3px }
#ow-winter .hero-grade { font-size:11px;padding:4px 13px }
#ow-winter .hero-caption { font-size:13px;line-height:1.6;margin:13px 0 15px }
#ow-winter .hero-actions { gap:9px;flex-wrap:wrap }
#ow-winter .hero-actions .ow-btn { min-height:41px;padding:10px 15px;font-size:11px;gap:8px }
#ow-winter .quick-links-inner { padding:12px 0;gap:7px;flex-wrap:wrap }
#ow-winter .quick-links-inner span { width:100%;text-align:center;font-size:11px }
#ow-winter .quick-links a { font-size:10px;padding:6px 10px }
#ow-winter .section { padding:65px 0 }
#ow-winter .section-kicker { font-size:11px;margin-bottom:12px }
#ow-winter .section-title { font-size:clamp(26px,6vw,33px);line-height:1.45;margin-bottom:16px }
#ow-winter .section-lead { font-size:14px;margin-bottom:25px }
#ow-winter .fit-grid, #ow-winter .strength-grid, #ow-winter .results-grid, #ow-winter .trial-grid, #ow-winter .elementary-grid, #ow-winter .steps { grid-template-columns:1fr }
#ow-winter .fit-grid { gap:10px;margin-top:28px }
#ow-winter .fit-item { gap:15px;padding:17px 19px }
#ow-winter .fit-item span { font-size:24px }
#ow-winter .fit-item p { font-size:14px }
#ow-winter .support-note { padding:20px;gap:14px;margin-top:18px }
#ow-winter .support-icon { font-size:24px }
#ow-winter .support-note h3 { font-size:17px }
#ow-winter .support-note p { font-size:13px }
#ow-winter .strength-grid { gap:14px;margin-top:30px }
#ow-winter .strength-card { padding:21px 24px;display:grid;grid-template-columns:80px 1fr;column-gap:18px;text-align:left }
#ow-winter .strength-visual { width:76px;height:76px;font-size:37px;grid-row:span 2;margin:0 }
#ow-winter .strength-visual small { font-size:7px;letter-spacing:.08em;padding:2px 6px }
#ow-winter .strength-card h3 { font-size:19px;margin:0 0 7px }
#ow-winter .strength-card p { font-size:13px }
#ow-winter .results-grid { gap:11px;margin-top:26px }
#ow-winter .result { padding:14px }
#ow-winter .result strong { font-size:45px }
#ow-winter .result strong small { font-size:16px }
#ow-winter .pass-strip { gap:9px;padding:18px }
#ow-winter .pass-strip span { width:100%;text-align:center }
#ow-winter .pass-strip b { font-size:16px }
#ow-winter .trial-grid { gap:23px }
#ow-winter .trial-grid .section-kicker { text-align:center }
#ow-winter .trial-grid .section-title { text-align:center }
#ow-winter .trial-grid p { font-size:14px }
#ow-winter .trial-deadline { padding:12px 14px }
#ow-winter .trial-panel { min-height:265px }
#ow-winter .chat-bubble { font-size:14px }
#ow-winter .trial-screen { height:132px }
#ow-winter .teacher-head { font-size:44px }
#ow-winter .legend { gap:8px 13px;justify-content:flex-start;font-size:11px }
#ow-winter .schedule-table { min-width:1010px }
#ow-winter .schedule-table th, #ow-winter .schedule-table td { min-width:41px;padding:10px 2px }
#ow-winter .schedule-table .row-label { min-width:115px;width:115px;padding-left:9px }
#ow-winter .schedule-table tbody .row-label { font-size:12px }
#ow-winter .schedule-table .row-label small { font-size:9px }
#ow-winter .schedule-notes { font-size:12px;padding:14px }
#ow-winter .course-card { margin-top:18px;border-radius:17px }
#ow-winter .course-head { grid-template-columns:1fr;padding:23px;gap:18px }
#ow-winter .course-head h3 { font-size:22px }
#ow-winter .course-head p { font-size:14px }
#ow-winter .price { min-width:0;width:100% }
#ow-winter .price strong { font-size:36px }
#ow-winter .course-points { grid-template-columns:repeat(2,1fr);gap:17px 10px;padding:22px }
#ow-winter .course-points>div { padding:0 8px;border-right:0;border-left:2px solid #c7e1f0 }
#ow-winter .course-points h4 { font-size:15px }
#ow-winter .course-points p { font-size:12px }
#ow-winter .special-box { margin:0 17px 18px;padding:19px }
#ow-winter .special-heading { flex-direction:column;align-items:flex-start;gap:8px }
#ow-winter .special-heading h4 { font-size:20px }
#ow-winter .special-columns { grid-template-columns:1fr;gap:14px }
#ow-winter .special-columns p { font-size:12px }
#ow-winter .pill-row { grid-template-columns:1fr 1fr;padding:20px;gap:9px }
#ow-winter .pill-row span { font-size:12px;padding:11px 8px }
#ow-winter .elementary-grid { gap:16px;margin-top:26px }
#ow-winter .elementary-card { padding:25px }
#ow-winter .elementary-card h3 { font-size:23px }
#ow-winter .elementary-card p, #ow-winter .elementary-card li { font-size:14px }
#ow-winter .elementary-price b { font-size:28px }
#ow-winter .steps { gap:11px;margin-top:28px }
#ow-winter .steps li { padding:19px;gap:15px }
#ow-winter .steps h3 { font-size:17px }
#ow-winter .steps p { font-size:13px }
#ow-winter .requirements { grid-template-columns:1fr 1fr;gap:10px;margin-top:29px }
#ow-winter .requirements>div { padding:18px 14px }
#ow-winter .requirements h3 { font-size:15px }
#ow-winter .requirements p { font-size:12px }
#ow-winter .requirements strong { font-size:11px }
#ow-winter .faq-item summary { font-size:13px;padding:17px 39px 17px 12px;line-height:1.55 }
#ow-winter .faq-item summary::before { width:25px;height:25px;margin-right:7px }
#ow-winter .faq-item summary::after { right:13px;top:14px }
#ow-winter .faq-item p { font-size:13px;padding:4px 18px 19px }
#ow-winter .apply-section { padding:66px 0 }
#ow-winter .apply-section h2 { font-size:28px }
#ow-winter .apply-section p { font-size:14px }
#ow-winter .ow-btn.big { font-size:14px;padding:17px 26px;min-height:56px }
}
@media (max-width:390px) {
#ow-winter .hero-inner { width:calc(100% - 32px);padding-top:17px }
#ow-winter .hero h1 { font-size:40px }
#ow-winter .hero-caption { font-size:11px;margin:9px 0 12px }
#ow-winter .hero-actions .ow-btn { font-size:10px;padding:9px 12px }
#ow-winter .requirements { grid-template-columns:1fr }
#ow-winter .strength-card { grid-template-columns:65px 1fr }
#ow-winter .strength-visual { width:61px;height:61px;font-size:29px }
}
@media (prefers-reduced-motion:reduce) {
#ow-winter .ow-btn { transition:none }
}

/* ============================================================
   共通ヘッダー：スマートフォン表示補正（冬期講座ページ用）
   ・PCヘッダーは変更しない
   ・ロゴ + MENUの横並びに固定する
   ・PC用の横並びナビゲーションはSPでは非表示
   ・既存のチェックボックス式MENUをそのまま利用する
   ※ 企業サイトの master.css の後に読み込むこと
   ============================================================ */
@media screen and (max-width: 767px) {
  body > header {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    box-sizing: border-box !important;
    z-index: 1000;
  }

  body > header > hr {
    display: none !important;
  }

  body > header > .container.header-area {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    overflow: visible !important;
    float: none !important;
    box-sizing: border-box !important;
  }

  body > header #header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 70px !important;
    min-height: 70px !important;
    margin: 0 !important;
    padding: 0 12px 0 16px !important;
    float: none !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    background: #fff !important;
    position: relative;
  }

  body > header #header .header-area-in {
    display: flex !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 70px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    overflow: visible !important;
    position: static !important;
    transform: none !important;
    box-sizing: border-box !important;
  }

  /* スマートフォンでロゴを確実に表示 */
  body > header #header .header-main {
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    transform: none !important;
  }

  body > header #header .header-main .logo,
  body > header #header .header-main .logo a {
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body > header #header .header-main .logo img {
    display: block !important;
    width: min(170px, calc(100vw - 110px)) !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    object-fit: contain;
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* PC用の横並びナビと区切り線はSPで使用しない */
  body > header #header .header-sub,
  body > header #header .header-area-in > hr,
  body > header > .container.header-area > hr {
    display: none !important;
  }

  /* 既存のハンバーガーメニューを右端に配置 */
  body > header #header .header__sp-menu {
    display: block !important;
    position: relative !important;
    flex: 0 0 58px !important;
    width: 58px !important;
    min-width: 58px !important;
    height: 66px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 1001;
  }

  body > header #header .header-sp-menu__state-check {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    overflow: hidden !important;
  }

  body > header #header .header-sp-menu-btn {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }

  body > header #header .header-sp-menu-btn__label {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer;
    color: #07569a !important;
    background: #fff !important;
    border: 0 !important;
    box-sizing: border-box !important;
  }

  body > header #header .header-sp-menu-btn__bar {
    display: block !important;
    position: static !important;
    width: 24px !important;
    height: 2px !important;
    min-height: 2px !important;
    margin: 3px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: #07569a !important;
    border-radius: 2px !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body > header #header .header-sp-menu-btn__txt {
    display: block !important;
    position: static !important;
    margin: 3px 0 0 !important;
    padding: 0 !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    color: #07569a !important;
    opacity: 1 !important;
  }

  body > header #header .header-sp-menu-btn-txt--on {
    display: none !important;
  }

  body > header #header .header-sp-menu__state-check:checked ~ .header-sp-menu-btn .header-sp-menu-btn__txt:not(.header-sp-menu-btn-txt--on) {
    display: none !important;
  }

  body > header #header .header-sp-menu__state-check:checked ~ .header-sp-menu-btn .header-sp-menu-btn-txt--on {
    display: block !important;
  }

  /* 共通CSSと干渉しても開閉可能なドロワー */
  body > header #header .header-sp-drawer__wrapper {
    display: block !important;
    position: fixed !important;
    top: 70px !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(340px, 90vw) !important;
    max-width: 100vw !important;
    height: calc(100dvh - 70px) !important;
    margin: 0 !important;
    padding: 18px 18px 34px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: #fff !important;
    box-shadow: -8px 0 24px rgba(0, 30, 70, .15) !important;
    transform: translateX(110%) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 3001 !important;
    transition: transform .22s ease, opacity .22s ease, visibility .22s ease;
    box-sizing: border-box !important;
  }

  body > header #header .header-sp-menu__state-check:checked ~ .header-sp-drawer__wrapper {
    transform: translateX(0) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body > header #header .header-sp-menu__cover {
    display: none !important;
    position: fixed !important;
    inset: 70px 0 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    background: rgba(12, 32, 55, .38) !important;
    z-index: 3000 !important;
  }

  body > header #header .header-sp-menu__state-check:checked ~ .header-sp-menu__cover {
    display: block !important;
  }

  body > header #header .header-sp-nav__lists {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  body > header #header .header-sp-nav__list {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #e0eaf3 !important;
  }

  body > header #header .header-sp-nav__link {
    display: block !important;
    padding: 14px 8px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #17365f !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
  }

  body > header #header .header-sp-button__wrap {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    padding: 20px 0 !important;
  }

  body > header #header .header-sp-button {
    display: block !important;
    padding: 12px 8px !important;
    text-align: center !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #fff !important;
    background: #126eb0 !important;
    border-radius: 5px !important;
    text-decoration: none !important;
  }

}
@charset "UTF-8";
/*
 * オンライン校冬期講座 CTA 最適化・追加CSS
 * 既存の style.css と共通ヘッダー/フッターの master.css は変更しません。
 * 冬期講座専用画面のみに作用します。
 */

/* 本ページの既存3ボタン固定リンクを専用2ボタンCTAに置き換える */
body.ow-cta-page .floating-link__wrapper {
  display: none !important;
}

#ow-winter .ow-cv-btn {
  align-items: center;
  justify-content: center;
  gap: 0.85em;
  display: inline-flex;
  min-height: 52px;
  padding: 13px 22px;
  text-align: center;
  border-radius: 999px;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 850;
  letter-spacing: .01em;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  border: 1px solid transparent;
  box-shadow: 0 5px 16px rgba(9, 42, 78, .12);
}
#ow-winter .ow-cv-btn:hover { transform: translateY(-2px); filter: brightness(1.035); }
#ow-winter .ow-cv-btn:focus-visible { outline: 3px solid #f29b44; outline-offset: 3px; }
#ow-winter .ow-cv-btn span { font-size: 1.18em; line-height: 1; }
#ow-winter .ow-cv-btn--primary {
  color: #fff;
  background: linear-gradient(125deg, #fa923e, #e96b2b);
}
#ow-winter .ow-cv-btn--light {
  color: #143f6b;
  background: #fff;
  border-color: #c1dce9;
}
#ow-winter .ow-cv-btn--secondary {
  color: #17365f;
  background: #e9f5fd;
  border-color: #b6d7e8;
}
#ow-winter .ow-cv-btn--text {
  color: #136c9d;
  box-shadow: none;
  background: transparent;
  border-color: transparent;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* セクション内の文脈別CTA */
#ow-winter .ow-cv-box {
  background: #fff;
  border: 1px solid #d1e6f2;
  border-radius: 18px;
  margin: 38px auto 0;
  padding: 23px 26px;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  max-width: 1120px;
  box-shadow: 0 8px 30px rgba(18, 67, 106, .06);
}
#ow-winter .ow-cv-box--soft {
  background: #eff8fd;
}
#ow-winter .ow-cv-box__copy { flex: 1 1 480px; min-width: 0; }
#ow-winter .ow-cv-box__eyebrow {
  color: #167aaf;
  font-size: 12px;
  letter-spacing: .08em;
  font-weight: 850;
  margin: 0 0 4px;
}
#ow-winter .ow-cv-box__title {
  color: #17365f;
  font-size: clamp(17px, 2vw, 22px);
  line-height: 1.55;
  font-weight: 850;
  margin: 0 0 6px;
}
#ow-winter .ow-cv-box__lead {
  color: #547084;
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}
#ow-winter .ow-cv-box__actions {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  min-width: 248px;
}
#ow-winter .ow-cv-box__actions .ow-cv-btn--text {
  min-height: 38px;
  padding: 5px;
  font-size: 13px;
}
#ow-winter .course-card .ow-cv-box {
  margin: 0 35px 32px;
  max-width: none;
  box-shadow: none;
}
#ow-winter .ow-cv-card-action { margin-top: 22px; }
#ow-winter .ow-cv-card-action .ow-cv-btn { width: 100%; }
#ow-winter .ow-cv-note { color: #496b7e; font-size: 13px; margin: 10px 0 0; }

/* FV：主CTAはスクリーン内で分かりやすく */
#ow-winter .hero-actions .ow-cv-btn { min-height: 54px; }
#ow-winter .hero-actions .ow-cv-btn--primary { box-shadow: 0 7px 19px rgba(209, 94, 42, .20); }

/* 最下部は2つの選択肢に整理 */
#ow-winter .ow-cv-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 30px;
}
#ow-winter .ow-cv-final-actions .ow-cv-btn {
  min-width: min(100%, 260px);
  min-height: 60px;
}
#ow-winter .apply-section .ow-cv-btn--light { color: #174773; }

/* スクロール後だけ現れる追従CTA */
#ow-winter .ow-cv-dock {
  position: fixed;
  bottom: 24px;
  right: 18px;
  z-index: 120;
  width: 205px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  background: rgba(255, 255, 255, .96);
  border-radius: 15px;
  box-shadow: 0 10px 34px rgba(6, 36, 64, .22);
  border: 1px solid #d8e8f0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(15px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
#ow-winter .ow-cv-dock.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
#ow-winter .ow-cv-dock .ow-cv-btn {
  padding: 9px 12px;
  min-height: 47px;
  font-size: 12px;
  gap: 4px;
  width: 100%;
  box-shadow: none;
}

@media (max-width: 1150px) and (min-width: 768px) {
  /* 狭いPC画面では本文に重ならないよう追従CTAは非表示 */
  #ow-winter .ow-cv-dock { display: none; }
}
@media (max-width: 767px) {
  body.ow-cta-page { padding-bottom: 70px; }
  #ow-winter .hero-actions .ow-cv-btn {
    min-height: 42px;
    font-size: 11px;
    padding: 9px 13px;
    gap: 6px;
  }
  #ow-winter .ow-cv-box {
    display: block;
    margin-top: 24px;
    padding: 20px 17px;
    border-radius: 14px;
  }
  #ow-winter .ow-cv-box__title { font-size: 17px; }
  #ow-winter .ow-cv-box__lead { font-size: 12px; }
  #ow-winter .ow-cv-box__actions { min-width: 0; margin-top: 14px; }
  #ow-winter .ow-cv-box__actions .ow-cv-btn { width: 100%; }
  #ow-winter .course-card .ow-cv-box { margin: 5px 15px 22px; }
  #ow-winter .ow-cv-card-action { margin-top: 17px; }
  #ow-winter .ow-cv-final-actions { flex-direction: column; }
  #ow-winter .ow-cv-final-actions .ow-cv-btn { width: 100%; }
  /* スマホは画面下の横2分割バー。safe-area対応。 */
  #ow-winter .ow-cv-dock {
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    border: 0;
    border-top: 1px solid #cbdde8;
    border-radius: 0;
    display: grid;
    grid-template-columns: 1.12fr 1fr;
    gap: 8px;
    box-shadow: 0 -6px 25px rgba(6, 36, 64, .16);
  }
  #ow-winter .ow-cv-dock .ow-cv-btn {
    border-radius: 10px;
    min-height: 45px;
    padding: 9px 6px;
    font-size: 11px;
    white-space: nowrap;
  }
}
@media (prefers-reduced-motion: reduce) {
  #ow-winter .ow-cv-btn,
  #ow-winter .ow-cv-dock { transition: none; }
}
/* 4:3に近いPC画面のFV調整 */
@media screen and (min-width: 1024px)
  and (max-width: 1440px) {

  #ow-winter .hero {
    height: clamp(380px, 35.4167vw, 510px);
    min-height: 0;
  }

  /* 写真の右側を優先して表示 */
  #ow-winter .hero-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
  }

  /* キャッチコピーを内側に配置 */
  #ow-winter .hero-inner {
    width: min(1120px, calc(100% - 140px));
    margin-inline: auto;
    padding: 10px 0;
    justify-content: center;
  }

  /* 文字サイズと行間を調整 */
  #ow-winter .hero h1 {
    font-size: clamp(38px, 3.7vw, 53px);
    line-height: 1.17;
    margin-bottom: 10px;
  }
}

/* 4:3に近いPC画面のみ適用 */
@media screen and (min-width: 1024px)
  and (max-width: 1440px) {

  /* CTAボタン下の余白 */
  #ow-winter .hero-actions {
    margin-bottom: 30px;
  }

  /* 追加した余白を収めるためFVも高くする */
  #ow-winter .hero {
    height: calc(35.4167vw + 30px);
    min-height: 0;
  }
}