
:root {
  --lu-plum: #7A4A52;
  --lu-plum-dk: #5E3A42;
  --lu-plum-lt: #EFDEDE;
  --lu-rose: #D4837A;
  --lu-gold: #B08344;
  --lu-gold-lt: #EBDCB4;
  --lu-cta: #B85F66;
  --lu-cta-dk: #9E4B52;
  --lu-bg: #FDF5F5;
  --lu-bg-warm: #FBF3F0;
  --lu-text: #2E2024;

  
  --text: var(--lu-text);
  --blue: #A9636C;          
  --navy-blue: var(--lu-plum);
  --dark-blue: var(--lu-plum-dk);
  --deep-blue: var(--lu-plum);
  --clear-blue: var(--lu-cta);
  --light-blue: #D9A9A4;
  --pale-blue: var(--lu-bg-warm);
  --aqua: var(--lu-bg);
  --accent: var(--lu-plum);
  --bg: rgba(122, 74, 82, .08);
  --link: var(--lu-plum);
  --yellow: var(--lu-gold-lt);
  --orange: var(--lu-cta);
  --light-orange: var(--lu-cta);
  --pale-orange: var(--lu-gold);
  --pink: var(--lu-rose);
  --light-pink: var(--lu-rose);
  --gold: var(--lu-gold);
  --grean: var(--lu-gold);
  --green: var(--lu-gold);
  --lime-green: var(--lu-gold);
  --cream: #FBF7EF;
}

body, button, input, select, textarea {
  font-family: "Noto Sans JP", sans-serif;
  color: var(--lu-text);
}
body { background: #fff; }


a { color: inherit; }
.c-nav__btn { background: var(--lu-plum); }
.header__bar__main--simulation, .simulation { background-color: var(--lu-plum) !important; }
.header__bar__tagline__button--consultation, .consultation { background-color: var(--lu-cta) !important; }
.c-heading--pill--navy { background: var(--lu-plum); }
.top__trial_register__link { background: var(--lu-cta) !important; box-shadow: 0 6px 0 var(--lu-cta-dk) !important; }
.c-cta-area--2 .button, .cta-seminar { background: var(--lu-cta) !important; box-shadow: 0 5px 0 var(--lu-cta-dk); }
.btn--yellow { background: var(--lu-gold-lt) !important; color: var(--lu-plum-dk) !important; }
.c-information-session { background-color: var(--lu-plum) !important; }
.c-information-session__btn { background: var(--lu-cta) !important; }
.l-footer { background: var(--lu-plum-dk) !important; }
.c-footer--copyright { background: #4A2E34 !important; }
.c-sticky-menu__pc-only a { background: var(--lu-cta) !important; }
.home-reason__heading { color: var(--lu-plum); }
.u-bg--aqua { background: var(--lu-bg) !important; }
.home-local-nav__main a { color: var(--lu-plum); border-color: var(--lu-plum-lt); }
.c-box--border-blue { border-color: var(--lu-rose) !important; }
.home-tab-menu__controller .is-active { background: var(--lu-plum) !important; color: #fff; }
.home-tab-menu__label { background: var(--lu-gold) !important; }
.study-span-bg { background: var(--lu-bg) !important; }
.top-price-card .rec-label { background: var(--lu-gold) !important; }
.color-blue { color: var(--lu-plum) !important; }
.seminar-info span { background: var(--lu-plum) !important; }
.c-faq__title { border-color: var(--lu-plum-lt) !important; }

.home-schedule, .home-message__wrapper, .lead-area, .home-mainvisual { background-image: none !important; }

/* ---- 共通部品 ---- */
.sg-logo-link { display: contents; }
.header__logo img { width: 150px; height: auto; }
.sg-sample {
  display: inline-block; margin: 0 .3em; padding: 0 .5em; border: 1.5px dashed #C0392B; border-radius: 4px;
  background: #FFF4F2; color: #C0392B; font-size: 12px; font-weight: 500; line-height: 1.7; vertical-align: middle;
}
.sg-sample b { margin-right: .4em; font-weight: 700; letter-spacing: .05em; }
.sg-photo-tmp {
  display: flex; align-items: center; justify-content: center; text-align: center;
  border: 2px dashed #C0392B; background: repeating-linear-gradient(45deg, #FFF4F2, #FFF4F2 10px, #fff 10px, #fff 20px);
  color: #C0392B; font-size: 13px; font-weight: 700; min-height: 180px; border-radius: 8px;
}
.sg-photo-tmp--round { width: 136px; height: 136px; min-height: 0; border-radius: 50%; font-size: 12px; }
.sg-photo-tmp--wide { width: 100%; aspect-ratio: 16 / 9; }
.home-message__img.sg-photo-tmp { width: 228px; height: 213px; min-height: 0; margin: 16px auto; }

/* ---- FV（写真1枚＋テキスト＋実績バッジ。プログリット型） ---- */
.sg-fv { position: relative; overflow: hidden; background: #fff; }
.sg-fv__photo img { display: block; width: 100%; height: 640px; object-fit: cover; object-position: 60% 30%; }
.sg-fv::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.9) 36%, rgba(255,255,255,0) 62%);
  pointer-events: none;
}
.sg-fv__body {
  position: absolute; z-index: 2; top: 50%; left: max(40px, calc(50% - 600px)); transform: translateY(-50%);
  width: min(620px, 52%);
}
.sg-fv__eyebrow {
  display: inline-block; margin: 0 0 14px; padding: 4px 14px; border-radius: 999px;
  background: var(--lu-plum); color: #fff; font-size: 15px; font-weight: 700; letter-spacing: .06em;
}
.sg-fv__title { margin: 0 0 14px; color: var(--lu-plum-dk); font-size: 48px; font-weight: 900; line-height: 1.3; letter-spacing: .02em; }
.sg-fv__lead { margin: 0 0 22px; color: var(--lu-text); font-size: 16px; font-weight: 500; line-height: 1.8; }
.sg-fv__badges { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.sg-fv__badge {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  padding: 14px 6px 12px; border-radius: 12px; background: #fff;
  box-shadow: 0 2px 10px rgba(94,58,66,.14); border-top: 3px solid var(--lu-gold);
}
.sg-fv__badge::before, .sg-fv__badge::after { /* 月桂樹の代わりの小さな葉 */
  content: ""; position: absolute; top: 40%; width: 10px; height: 26px; border: 2px solid var(--lu-gold); border-radius: 50%; opacity: .55;
}
.sg-fv__badge::before { left: 5px; border-right: none; }
.sg-fv__badge::after { right: 5px; border-left: none; }
.sg-fv__badge-label { color: var(--lu-plum); font-size: 12px; font-weight: 700; line-height: 1.4; }
.sg-fv__badge-num { color: var(--lu-gold); font-size: 13px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.sg-fv__badge-num b { font-size: 32px; font-weight: 900; letter-spacing: -.01em; }
.sg-fv__badge-note { margin-top: 4px; color: #6F5A5F; font-size: 10.5px; line-height: 1.4; }
.sg-fv__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.sg-fv__btn {
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 300px; min-height: 64px; padding: 8px 28px; border-radius: 999px;
  background: var(--lu-cta); color: #fff !important; font-size: 20px; font-weight: 700; text-decoration: none; line-height: 1.3;
  box-shadow: 0 6px 0 var(--lu-cta-dk), 0 10px 22px rgba(184,95,102,.35);
  animation: sg-bounce 2.4s ease-in-out infinite; transition: transform .15s, box-shadow .15s;
}
.sg-fv__btn small { font-size: 12px; font-weight: 500; opacity: .95; }
.sg-fv__btn:hover { transform: translateY(3px); box-shadow: 0 3px 0 var(--lu-cta-dk), 0 6px 14px rgba(184,95,102,.3); animation-play-state: paused; }
.sg-fv__btn--ghost {
  display: inline-flex; align-items: center; min-height: 56px; padding: 0 22px; border: 2px solid var(--lu-plum); border-radius: 999px;
  background: #fff; color: var(--lu-plum) !important; font-size: 16px; font-weight: 700; text-decoration: none;
}
.sg-fv__note { margin: 14px 0 0; color: #6F5A5F; font-size: 12px; }
@keyframes sg-bounce { 0%, 70%, 100% { transform: translateY(0); } 80% { transform: translateY(-5px); } 90% { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .sg-fv__btn { animation: none; } }

@media (max-width: 840px) {
  .sg-fv::after { display: none; }
  .sg-fv__photo img { height: 240px; object-position: 50% 30%; }
  .sg-fv__body { position: static; transform: none; width: auto; padding: 18px 16px 22px; }
  .sg-fv__eyebrow { font-size: 13px; }
  .sg-fv__title { font-size: 30px; }
  .sg-fv__lead { font-size: 14.5px; }
  .sg-fv__badges { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .sg-fv__badge-num b { font-size: 28px; }
  .sg-fv__cta { flex-direction: column; align-items: stretch; gap: 10px; }
  .sg-fv__btn { min-width: 0; width: 100%; }
  .sg-fv__btn--ghost { justify-content: center; }
}


.sg-banner, .sg-bnr { position: relative; display: block; overflow: hidden; border-radius: 8px; }
.sg-banner img, .sg-bnr img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sg-banner__txt, .sg-bnr__txt {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px; color: #fff; line-height: 1.5;
  background: linear-gradient(0deg, rgba(74,46,52,.92) 0%, rgba(74,46,52,.6) 70%, rgba(74,46,52,0) 100%); font-size: 13px;
}
.sg-banner__txt em, .sg-bnr__txt em { display: inline-block; margin-bottom: 4px; padding: 0 8px; border-radius: 3px; background: var(--lu-gold); font-style: normal; font-size: 12px; font-weight: 700; }
.sg-banner__txt b { display: block; font-size: 30px; line-height: 1.25; margin-bottom: 4px; }
.sg-bnr__txt b { display: block; font-size: 20px; }
.home-carousel__list .sg-bnr { aspect-ratio: 16 / 9; }


.sg-schedule { display: block; margin: 0 auto 24px; padding: 20px 24px; border-radius: 12px; background: #fff; box-shadow: 0 2px 10px rgba(94,58,66,.1); max-width: 1000px; }
.sg-schedule__title { margin: 0 0 12px; color: var(--lu-plum); font-weight: 700; font-size: 18px; }
.sg-schedule__list { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin: 0; padding: 0; list-style: none; }
.sg-schedule--holiday .sg-schedule__list { grid-template-columns: repeat(4, 1fr); }
.sg-schedule__list li { padding: 10px; border-radius: 8px; background: var(--lu-bg); font-size: 12.5px; line-height: 1.6; }
.sg-schedule__list time { display: block; color: var(--lu-gold); font-weight: 900; font-size: 18px; }
.sg-schedule__list b { display: block; color: var(--lu-plum-dk); font-size: 14px; }
@media (max-width: 840px) {
  .sg-schedule { padding: 16px; }
  .sg-schedule__list, .sg-schedule--holiday .sg-schedule__list { grid-template-columns: 1fr; }
  .sg-schedule__list li { display: grid; grid-template-columns: 56px 1fr; column-gap: 8px; }
  .sg-schedule__list time { grid-row: span 2; font-size: 16px; }
}

/* ---- 選ばれる理由 ---- */
.sg-teacher-label { display: inline-block; padding: 4px 16px; border-radius: 999px; background: var(--lu-gold); color: #fff; font-size: 15px; font-weight: 700; }
.sg-teacher-text { color: var(--lu-plum-dk); font-size: 20px; font-weight: 700; line-height: 1.6; }
.sg-person { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 120px; margin: 0; padding: 14px 8px; border-radius: 16px; background: var(--lu-bg); color: var(--lu-text); font-size: 14px; line-height: 1.5; }
.sg-person b { color: var(--lu-plum); font-size: 16px; margin-bottom: 4px; }
.sg-facility-note { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 12px; border-radius: 12px; background: var(--lu-bg); color: var(--lu-plum); font-size: 18px; font-weight: 900; text-align: center; }
.sg-facility-note b { font-size: 13px; font-weight: 700; }
.sg-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0 0 16px; padding: 0; list-style: none; }
.sg-trust li { padding: 18px 14px; border-radius: 12px; background: var(--lu-bg); text-align: center; font-size: 13px; line-height: 1.6; }
.sg-trust b { display: block; margin-bottom: 4px; color: var(--lu-plum); font-size: 16px; }
@media (max-width: 840px) { .sg-trust { grid-template-columns: 1fr; } }


.sg-proof { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; max-width: 964px; margin: 0 auto; padding: 0; list-style: none; }
.sg-proof li { padding: 18px 10px; border: 1px solid var(--lu-plum-lt); border-radius: 12px; background: #fff; text-align: center; font-size: 13px; line-height: 1.6; }
.sg-proof b { display: block; color: var(--lu-gold); font-size: 30px; font-weight: 900; line-height: 1.2; }
.sg-proof b small { font-size: 14px; }
@media (max-width: 840px) { .sg-proof { grid-template-columns: repeat(2, 1fr); } }


.sg-textbnr { display: flex; flex-direction: column; justify-content: center; height: 80px; padding: 0 16px; border: 1px solid var(--lu-plum-lt); border-radius: 8px; background: var(--lu-bg); color: var(--lu-text); font-size: 12px; text-decoration: none; }
.sg-textbnr b { color: var(--lu-plum); font-size: 16px; }
.sg-textbnr--line b { color: #06A04A; }
.sg-related-name { display: block; color: var(--lu-plum); font-size: 16px; font-weight: 700; }


.lead-area { background: var(--lu-bg-warm) !important; }
.lead-area .banner .sg-banner { display: flex; align-items: stretch; max-width: 680px; height: 120px; margin: 0 auto; background: var(--lu-plum); box-shadow: 0 4px 14px rgba(94,58,66,.18); }
.lead-area .banner .sg-banner picture { flex: 0 0 190px; }
.lead-area .banner .sg-banner .sg-banner__txt { position: static; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; text-align: left; background: none; padding: 10px 20px; font-size: 12px; }
.lead-area .banner .sg-banner .sg-banner__txt b { font-size: 26px; }
.lead-area .banner .sg-banner .sg-banner__txt b br { display: none; }
@media (max-width: 840px) {
  .lead-area .banner .sg-banner { height: auto; min-height: 110px; margin: 0 16px; }
  .lead-area .banner .sg-banner picture { flex-basis: 110px; }
  .lead-area .banner .sg-banner .sg-banner__txt { padding: 10px 12px; font-size: 11px; }
  .lead-area .banner .sg-banner .sg-banner__txt b { font-size: 19px; }
}
.sg-schedule { box-sizing: border-box; width: auto !important; max-width: 1000px; }

.c-information-session { background: var(--lu-plum) !important; }
.c-information-session__heading p { color: var(--lu-gold-lt) !important; }
.home-experience__item { background: linear-gradient(to top, var(--lu-plum-lt) 40px, var(--lu-bg) 40px) !important; }
.home-experience__more { color: var(--lu-plum) !important; }
.home-link--blue::after { background-color: var(--lu-plum) !important; }
.home-link--blue { color: var(--lu-plum) !important; border-color: var(--lu-plum) !important; }
.home-movie .sg-photo-tmp--wide { max-width: 640px; margin: 0 auto; }

.ticker__main li { color: var(--lu-plum) !important; }
.ticker__main svg { fill: var(--lu-gold); color: var(--lu-gold); }
.sg-fv__badge-num b { font-size: 28px; }
.sg-fv__badge { padding-left: 14px; padding-right: 14px; }
.sg-banner, .sg-banner *, .sg-bnr, .sg-bnr * { text-decoration: none !important; }
@media (max-width: 840px) { .sg-pc { display: none; } }

/* ---------- 下層ページの見出し帯（R2a）：原本は水色の帯＋人物イラスト（他社キャラ）→ イラストを外しルシュの色に ---------- */
[class*="c-page-header--"] { background-color: var(--lu-plum) !important; background-image: linear-gradient(100deg, var(--lu-plum-dk), var(--lu-plum) 55%, #A9636C) !important; }
[class*="c-page-header--"] .c-page-header__inner { background-image: none !important; }

/* R3：フッター最下段のコピーライト＝濃いえんじ地に暗い文字で読めなかった（コントラスト約1.3）→白の75% */
footer .c-footer--copyright, footer .c-footer--copyright a { color: rgba(255,255,255,.78); }

/* R3：章末のバナー枠（原本は 236×60 の小さなバナー）に写真を入れると本文幅いっぱいに広がっていた → 原本のバナー幅に合わせる */
.articleBlock__bnrLine .articleBlock__img img { width: 236px; max-width: 100%; height: auto; }

/* =========================================================
   R4（2026-10-24 夜）色の取り残しと一行帯
   ・原本の直書きの青／紺／水色／緑／橙／ピンクは build.py の recolor_dist() がこのファイルのトークンの値へ置き換える
     （明度の段で：淡い面→#FDF5F5／淡い線→#EFDEDE・#E6D6D6／中間→#D9A9A4・#A9636C／濃い→#7A4A52・#5E3A42／橙・ピンク→#B85F66／黄・緑→#EBDCB4・#B08344）
   ・ここでは置き換えだけでは役割に合わないものを個別に決める
   ========================================================= */
/* 一行帯：PC で本文幅1080pxの箱に収まり、左端の文字がぼかしに食われて切れて見えた → 画面幅いっぱいに流し、ぼかしを画面端へ */
main div:has(>.ticker-container) { background: #fff; border-top: 1px solid var(--lu-plum-lt); border-bottom: 1px solid var(--lu-plum-lt); }
main .ticker-container { max-width: none; }
main .ticker-container::before { width: 48px; background: linear-gradient(to right, #fff 30%, rgba(255,255,255,0) 100%); }
main .ticker-container::after { width: 48px; background: linear-gradient(to left, #fff 30%, rgba(255,255,255,0) 100%); }
