
/* 特別講習ページ専用 */
.page-special .main{padding-top:18px;padding-bottom:28px}
.special-hero{position:relative;overflow:hidden;background:#fff;border:1px solid #e3edf6;border-radius:16px;padding:34px 34px 30px;margin-bottom:22px;box-shadow:0 8px 24px rgba(0,77,128,.05)}
.special-hero::after{display:none}
.special-hero>*:not(.special-hero__mascot){position:relative;z-index:2}
.special-hero__mascot{position:absolute;z-index:1;right:26px;bottom:-8px;height:82%;width:auto;max-width:31%;object-fit:contain;opacity:.105;pointer-events:none;user-select:none}
.special-kicker{margin:0 0 4px;color:#2d71ad;font-size:.78rem;font-weight:800;letter-spacing:.24em}
.special-hero h1{margin:0;color:var(--primary);font-size:clamp(2rem,5vw,3rem);letter-spacing:.05em}
.special-hero__lead{margin:8px 0 0;color:#345;line-height:1.85;font-size:1.04rem;max-width:720px}
.special-section{margin:28px 0 8px}
.special-section__head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.special-section__head h2{margin:0;padding-left:14px;border-left:5px solid #2d7bc0;color:#153f68;font-size:1.55rem}
.special-section__head p{margin:0;color:var(--muted);font-size:.94rem}
.special-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.special-card{position:relative;display:flex;flex-direction:column;min-height:270px;background:#fff;border:1px solid #e2e8ee;border-radius:14px;overflow:hidden;box-shadow:0 6px 18px rgba(22,53,80,.06);transition:transform .18s ease,box-shadow .18s ease}
.special-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(22,53,80,.10)}
.special-card__visual{height:92px;position:relative;overflow:hidden;border-bottom:1px solid #eef2f6}
.special-card__visual::before,.special-card__visual::after{content:"";position:absolute;border-radius:50%}
.special-card__visual::before{width:150px;height:150px;right:-42px;top:-68px;background:rgba(255,255,255,.55)}
.special-card__visual::after{width:95px;height:95px;left:-24px;bottom:-55px;background:rgba(255,255,255,.36)}
.special-card--spring .special-card__visual{background:linear-gradient(135deg,#fbe5eb,#f3cfd9)}
.special-card--summer .special-card__visual{background:linear-gradient(135deg,#fff0d5,#f5d39a)}
.special-card--winter .special-card__visual{background:linear-gradient(135deg,#e8f3fc,#cfe2f4)}
.special-card--saturday .special-card__visual{background:linear-gradient(135deg,#dceefe,#b9d8f4)}
.special-card--yearend .special-card__visual{background:linear-gradient(135deg,#e2f5ee,#bfe4d5)}
.special-card--final .special-card__visual{background:linear-gradient(135deg,#fbe6e8,#f1c8ce)}
.special-card__mark{position:absolute;left:20px;bottom:14px;font-size:1.6rem;font-weight:900;letter-spacing:.08em;color:rgba(11,79,138,.30)}
.special-card__icon{position:absolute;right:20px;bottom:14px;font-size:1.55rem;line-height:1;color:currentColor;opacity:.72;font-weight:700}

.special-card--spring{--card-accent:#c96a82;--card-soft:#fff6f8}
.special-card--summer{--card-accent:#bf7a17;--card-soft:#fff9ef}
.special-card--winter{--card-accent:#4c83b8;--card-soft:#f4f9fd}
.special-card--saturday{--card-accent:#4c89c6;--card-soft:#f2f8fd}
.special-card--yearend{--card-accent:#4f987f;--card-soft:#f3faf7}
.special-card--final{--card-accent:#c8717d;--card-soft:#fdf5f6}
.special-card--spring .special-card__mark,.special-card--spring .special-card__icon{color:rgba(201,106,130,.62)}
.special-card--summer .special-card__mark,.special-card--summer .special-card__icon{color:rgba(191,122,23,.62)}
.special-card--winter .special-card__mark,.special-card--winter .special-card__icon{color:rgba(76,131,184,.62)}
.special-card--saturday .special-card__mark,.special-card--saturday .special-card__icon{color:rgba(76,137,198,.72)}
.special-card--yearend .special-card__mark,.special-card--yearend .special-card__icon{color:rgba(79,152,127,.72)}
.special-card--final .special-card__mark,.special-card--final .special-card__icon{color:rgba(200,113,125,.72)}

.special-card__body{padding:20px 20px 18px;display:flex;flex-direction:column;flex:1}
.special-card h3{margin:0 0 8px;color:#176aa8;font-size:1.23rem;border-bottom:1px solid #eaf0f5;padding-bottom:10px}
.special-card p{margin:0 0 16px;color:#4b5965;line-height:1.75;font-size:.96rem}
.special-card .btn{margin-top:auto;align-self:flex-start;padding:9px 18px}
.special-card .btn{background:#fff;color:var(--card-accent);border:1.5px solid var(--card-accent);box-shadow:none;font-weight:800}
.special-card .btn:hover{background:var(--card-soft);color:var(--card-accent);border-color:var(--card-accent);opacity:1}
.special-cta{margin-top:22px;background:#fff;border:1px solid #e0ebf4;border-radius:14px;padding:22px 24px;display:flex;gap:20px;justify-content:space-between;align-items:center;box-shadow:0 6px 18px rgba(22,53,80,.04)}
.special-cta h2{margin:0 0 5px;color:#174d79;font-size:1.25rem;border:0;padding:0}.special-cta p{margin:0;color:var(--muted)}
.special-note{margin-top:10px;padding:14px 16px;border-radius:12px;background:#f8fafc;border:1px solid #e6ebef;color:#5d6871;font-size:.91rem;line-height:1.75}
.special-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.special-nav a{display:inline-block;padding:8px 13px;border:1px solid #cddce8;border-radius:999px;background:#fff;font-weight:700;font-size:.9rem;color:#286594}.special-nav a:hover{opacity:1;background:#edf5fb}
.special-detail-card{background:#fff;border:1px solid #e2e8ee;border-radius:14px;padding:24px;margin:16px 0;box-shadow:0 4px 14px rgba(22,53,80,.045)}
.special-detail-card h2{margin:0 0 12px;color:#155987;font-size:1.4rem;border-bottom:2px solid #edf2f5;padding-bottom:10px}
.special-detail-card h3{margin:20px 0 8px;color:#244e6d;font-size:1.08rem}
.special-detail-card p{line-height:1.8}.special-detail-card ul{margin:10px 0 0;padding-left:1.3em}.special-detail-card li{margin:5px 0}
.special-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.special-meta__item{background:#f8fafc;border:1px solid #e6ebef;border-radius:10px;padding:12px 14px}.special-meta__label{display:block;color:#637485;font-size:.82rem;font-weight:800;margin-bottom:2px}.special-meta__value{display:block;color:#2e3942;font-weight:700;line-height:1.6}
.special-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0}.special-table{min-width:620px;background:#fff;border:1px solid #e2e8ee}.special-table th,.special-table td{padding:10px 12px;border-bottom:1px solid #e7edf2;border-right:1px solid #eef2f5;vertical-align:top;text-align:left}.special-table th{background:#f1f6fa;color:#174d79;white-space:nowrap}.special-table td:last-child,.special-table th:last-child{border-right:0}
.special-price{font-size:1.07rem;font-weight:800;color:#174d79}.special-source-note{font-size:.85rem;color:#6e7880;margin-top:18px;padding-top:12px;border-top:1px dashed #dfe5ea}
.special-back{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
@media(max-width:820px){.special-hero__mascot{height:68%;max-width:34%;right:8px;bottom:-3px;opacity:.085}.special-grid{grid-template-columns:1fr}.special-card{min-height:0}.special-card__visual{height:72px}.special-hero{padding:26px 22px}.special-meta{grid-template-columns:1fr}.special-cta{align-items:flex-start;flex-direction:column}.special-section__head{gap:7px}.special-section__head p{width:100%}}


/* ===== 個別講習ページのカラーテーマ ===== */
.page-special--detail{
  --theme-accent:#4c83b8;
  --theme-accent-dark:#2f6698;
  --theme-soft:#f4f9fd;
  --theme-soft-strong:#e8f3fc;
  --theme-border:#cfe2f4;
}
.page-special--spring{--theme-accent:#c96a82;--theme-accent-dark:#a94f68;--theme-soft:#fff6f8;--theme-soft-strong:#fbe5eb;--theme-border:#f0c9d4}
.page-special--summer{--theme-accent:#bf7a17;--theme-accent-dark:#9e620d;--theme-soft:#fff9ef;--theme-soft-strong:#fff0d5;--theme-border:#efd6a9}
.page-special--winter{--theme-accent:#4c83b8;--theme-accent-dark:#356b9d;--theme-soft:#f4f9fd;--theme-soft-strong:#e8f3fc;--theme-border:#cfe2f4}
.page-special--saturday{--theme-accent:#4c89c6;--theme-accent-dark:#326fa9;--theme-soft:#f2f8fd;--theme-soft-strong:#dceefe;--theme-border:#bfd9ef}
.page-special--yearend{--theme-accent:#4f987f;--theme-accent-dark:#377c66;--theme-soft:#f3faf7;--theme-soft-strong:#e2f5ee;--theme-border:#c7e6da}
.page-special--final{--theme-accent:#c8717d;--theme-accent-dark:#a95663;--theme-soft:#fdf5f6;--theme-soft-strong:#fbe6e8;--theme-border:#efcdd2}

.page-special--detail .special-hero{
  background:linear-gradient(135deg,var(--theme-soft-strong) 0%,#fff 74%);
  border-color:var(--theme-border);
  box-shadow:0 8px 24px rgba(22,53,80,.045);
}
.page-special--detail .special-hero::after{
  display:block;
  content:"";
  position:absolute;
  right:-72px;top:-92px;
  width:250px;height:250px;
  border-radius:50%;
  background:var(--theme-soft);
}
.page-special--detail .special-kicker{color:var(--theme-accent)}
.page-special--detail .special-hero h1{color:var(--theme-accent-dark)}
.page-special--detail .special-nav a{border-color:var(--theme-border);color:var(--theme-accent-dark)}
.page-special--detail .special-nav a:hover{background:var(--theme-soft);color:var(--theme-accent-dark)}
.page-special--detail .special-detail-card{border-color:var(--theme-border)}
.page-special--detail .special-detail-card h2{color:var(--theme-accent-dark);border-bottom-color:var(--theme-border)}
.page-special--detail .special-detail-card h3{color:var(--theme-accent-dark)}
.page-special--detail .special-meta__item{background:var(--theme-soft);border-color:var(--theme-border)}
.page-special--detail .special-meta__label{color:var(--theme-accent-dark)}
.page-special--detail .special-table{border-color:var(--theme-border)}
.page-special--detail .special-table th{background:var(--theme-soft-strong);color:var(--theme-accent-dark)}
.page-special--detail .special-price{color:var(--theme-accent-dark)}
.page-special--detail .special-source-note{border-top-color:var(--theme-border)}
.page-special--detail .special-back .btn-outline{background:#fff;color:var(--theme-accent-dark);border-color:var(--theme-accent)}
.page-special--detail .special-back .btn-outline:hover{background:var(--theme-soft);color:var(--theme-accent-dark);opacity:1}
.page-special--detail .special-back .js-contact{background:var(--theme-accent);border-color:var(--theme-accent);color:#fff}
.page-special--detail .special-back .js-contact:hover{background:var(--theme-accent-dark);border-color:var(--theme-accent-dark);opacity:1}
