/*
Theme Name: SWELL Child - Smash English
Description: スマッシュイングリッシュ用SWELLカスタム子テーマ（Bootstrap不使用）
Template: swell
Version: 1.0.0
Author: Your Name
Text Domain: swell-child
*/

/* ============================================================
   Bootstrap 置換 リセット＆ベーススタイル
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

img { max-width: 100%; height: auto; }
figure { margin: 0; }
ul, ol { list-style: none; padding: 0; margin: 0; }

/* ============================================================
   全体フォント・リンク
   ============================================================ */
body {
    font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3",
                 "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: .93rem;
    line-height: 1.7;
    color: #212529;
}
a { color: #006eb2; }
a:hover { color: #006eb2; text-decoration: underline; }
em { font-style: normal; font-weight: bold; }
p { margin-top: 0; margin-bottom: 1em; }
small { font-size: 80%; }
sup  { font-size: 75%; vertical-align: super; }
h6   { font-size: 1rem; text-align: center; font-weight: bold; margin-bottom: .5em; }

/* ============================================================
   ユーティリティ（Bootstrapの.text-center等を独自定義）
   ============================================================ */
.text-center   { text-align: center !important; }
.text-secondary{ color: #6c757d !important; }
.mb-0  { margin-bottom: 0 !important; }
.mb-2  { margin-bottom: .5rem !important; }
.mb-3  { margin-bottom: 1rem !important; }
.mb-4  { margin-bottom: 1.5rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }
.clearfix::after { content: ""; display: block; clear: both; height: 0; }
.no-break { white-space: nowrap; }
.note       { padding-left: 1em; text-indent: -1em; }
.note-small { padding-left: 13px; text-indent: -7px; font-size: 13px; font-weight: bold; line-height: 1.5; }
.foot-note  { font-size: 11px; }
.marker     { background: linear-gradient(transparent 65%, #ffea3c 0); }
.list-ul, .list-ol { margin: 0 1em 1em 2em; padding: 0; counter-reset: my-counter; }
.list-ul li, .list-ol li { padding-left: 15px; position: relative; margin-bottom: .5em; }
.list-ul li::before { font-family: "Font Awesome 5 Free"; content: "\f105"; font-weight: 900; font-size: 80%; position: absolute; left: -5px; top: .1em; color: #e70012; }
.list-ol li::before { content: counter(my-counter)"."; counter-increment: my-counter; position: absolute; left: -5px; font-weight: bold; color: #ff9800; }

/* レスポンシブ切り替えクラス */
.pc-tiny    { display: block; }
.pc-tablet  { display: block; }
.tablet-sp  { display: none; }
.pc-only    { display: block; }
.sp-only    { display: none; }
.sp-inline  { display: none; }
.tiny-sp-only { display: none; }
@media (max-width: 767px) {
    .pc-only   { display: none; }
    .sp-only   { display: block; }
    .sp-inline { display: inline; }
    .list-ul, .list-ol { margin: 0 .5em 1em .5em; }
}
@media (max-width: 575px) {
    .pc-tablet { display: none; }
    .tablet-sp { display: block; }
}
@media (max-width: 480px) {
    .tiny-sp-only { display: block; }
    .pc-tiny      { display: none; }
}

/* ============================================================
   ボタン（Bootstrap .btn 互換）
   ============================================================ */
.btn {
    display: inline-block;
    font-weight: 400;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    padding: .375rem .75rem;
    font-size: .93rem;
    border-radius: .25rem;
    border: 1px solid transparent;
    line-height: 1.5;
    transition: background-color .15s, color .15s, border-color .15s;
}
.btn-primary         { background: #007bff; border-color: #007bff; color: #fff; }
.btn-primary:hover   { background: #0069d9; color: #fff; text-decoration: none; }
.btn-danger          { background: #dc3545; border-color: #dc3545; color: #fff; }
.btn-danger:hover    { background: #c82333; color: #fff; text-decoration: none; }
.btn-outline-primary { background: transparent; border-color: #007bff; color: #007bff; }
.btn-outline-primary:hover { background: #007bff; color: #fff; text-decoration: none; }
.btn-sm { padding: .25rem .5rem; font-size: .875rem; }

/* ============================================================
   SWELLのヘッダーを完全上書き → LP風ヘッダー
   ============================================================ */

/* SWELLデフォルトヘッダーを非表示にして独自ヘッダーだけ使う */
#header.l-header { display: none !important; }
#sp_menu         { display: none !important; }

/* 独自ヘッダー */
.se-header {
    position: relative;
    padding-top: 10px;
    padding-bottom: 0;
    background: #fff;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

/* ロゴエリア */
.se-header__logo {
    width: 20%;
    z-index: 5;
    line-height: 1;
    padding-left: 1rem;
}
.se-header__tagline {
    font-size: 80%;
    line-height: 1.5;
    margin: 0;
    color: #333;
}
.se-header__brand {
    display: block;
    max-width: 180px;
    padding-top: 2px;
    padding-bottom: 8px;
}
.se-header__brand img { width: 100%; display: block; }

/* ナビ全体 */
.se-gnav {
    flex: 1;
    display: flex;
    flex-direction: column-reverse; /* contact上→main下の順で flex-direction:column-reverse で逆転 */
    padding-right: 80px;
}

/* メインナビ */
.se-main-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    font-size: .85rem;
    font-weight: 700;
    padding-right: 0;
    margin-top: 3em;
}
.se-main-nav li { }
.se-main-nav a {
    display: block;
    padding: .5rem .75rem;
    color: #006eb2;
    text-decoration: none;
}
.se-main-nav a:hover { color: #01b4ee; }

/* コンタクトナビ */
.se-contact-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    font-size: .75rem;
}
.se-contact-nav a {
    display: block;
    padding: .2em .3em;
    font-weight: 700;
    text-decoration: none;
    color: #153d66;
    margin-top: .2em;
}
.se-contact-nav a:not(.btn):hover { color: #01b4ee; }
.se-contact-nav .btn {
    font-size: .75rem;
    padding: .2em .5em;
    border-radius: 3px;
    margin: .1em .3em;
}

/* 右端の縦型「無料体験」ボタン */
.se-tl-nav {
    position: absolute;
    right: 0;
    top: 0;
    width: 80px;
    height: 100%;
    z-index: 10;
}
.se-tl-btn,
.se-tl-btn:link,
.se-tl-btn:visited {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    text-align: center;
    font-size: .75rem;
    font-weight: bold;
    color: #fff;
    line-height: 1.4;
    background: #e70012;
    border-left: 2px solid #000;
    text-decoration: none;
}
.se-tl-btn::before {
    font-family: "Font Awesome 5 Free";
    content: "\f086";
    display: block;
    font-size: 2.5em;
    line-height: 1.6;
    font-weight: 900;
}
.se-tl-btn:hover { background: #ee4c59; color: #fff; text-decoration: none; }

/* ハンバーガー */
.se-nav-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    position: absolute;
    right: 80px;
    top: 10px;
    z-index: 20;
}
.se-nav-toggle span {
    display: block;
    width: 26px;
    height: 3px;
    background: #333;
    border-radius: 2px;
    transition: transform .3s, opacity .3s;
}
.se-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.se-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.se-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

@media (max-width: 767px) {
    .se-header { align-items: center; padding-bottom: .3em; }
    .se-header__logo { width: calc(100% - 130px); padding-left: .5rem; }
    .se-header__brand { width: 130px; }
    .se-nav-toggle { display: flex; }

    .se-gnav {
        display: none;
        flex-direction: column;
        width: 100%;
        padding-right: 0;
    }
    .se-gnav.is-open { display: flex; }

    .se-main-nav {
        flex-direction: column;
        border-top: 3px solid #01b4ee;
        margin-top: .5rem;
    }
    .se-main-nav li { border-bottom: 1px dotted #ccc; }
    .se-main-nav li:last-child { border-bottom: none; }
    .se-main-nav a { padding: 1.2em 1em .7em; }

    .se-contact-nav {
        flex-direction: column;
        align-items: stretch;
        margin-bottom: 2em;
        padding: 0 15px;
    }
    .se-contact-nav .btn {
        display: block;
        text-align: center;
        font-size: .85rem;
        padding: 1em .5em;
        margin: .4em 0;
    }
    .se-contact-nav a { margin-top: 1.2em; }
}

/* ============================================================
   メインビジュアル
   ============================================================ */
.se-mv {
    margin-bottom: 0;
    position: relative;
    z-index: 5;
    border-top: 2px solid black;
    border-bottom: 2px solid black;
}
.se-mv img { width: 100%; display: block; }

/* ============================================================
   SWELLデフォルトレイアウトを無効化（フロントページのみ）
   ============================================================ */
.home #content.l-content { max-width: none !important; padding: 0 !important; }
.home .l-mainContent      { max-width: none !important; padding: 0 !important; }

/* ============================================================
   共通コンテンツスタイル（addition.css相当）
   ============================================================ */

/* コンテナ */
.contents-section {
    width: 100%;
    max-width: 1210px;
    padding: 0 35px;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 767px) {
    .contents-section { padding: 0 20px; }
}

/* 背景 */
.bg-dots {
    border-top: 2px solid black;
    border-bottom: 2px solid black;
    background-image: url("images/bg_halftone_trans02.png"), url("images/bg_halftone_trans02.png");
    background-repeat: no-repeat;
    background-position: 530% -5%, -110% 110%;
    background-size: 110%, 130%;
    background-color: #fffbb7;
}
.bg-dots.orange {
    background-color: #abeaff;
    background-image: url("images/bg_halftone_trans.png"), url("images/bg_halftone_trans.png");
    background-size: 90%, 70%;
}

/* セクション */
.section-main { padding: 4rem 0; position: relative; }
.section-header { text-align: center; margin-bottom: 2rem; padding: 0 20px; }

.section-title {
    font-size: 2rem;
    letter-spacing: .08em;
    text-align: center;
    color: #01b4ee;
}
.section-title::before {
    content: '';
    display: block;
    width: 57px; height: 61px;
    background: url("images/h2_bk.png") no-repeat top center;
    background-size: contain;
    margin: 0 auto .5rem;
}
.section-title > span { position: relative; display: inline-block; }
.section-title small  { font-size: 70%; letter-spacing: 0; font-weight: 700; }
.section-title .eng   { display: block; text-transform: uppercase; font-size: .8rem; font-weight: 700; margin-top: .5em; color: #a0a0a0; }
.section-title-sub    { text-align: center; color: #e70012; font-weight: 700; font-size: 1.7rem; letter-spacing: .1em; margin-bottom: 1em; }

.title-subsection { font-size: 1.6rem; line-height: 1.4; text-align: center; margin-bottom: 2em; }
.title-subsection > span { display: inline-block; color: #006eb2; }
.title-subsection > span::before { font-family: "Font Awesome 5 Free"; content: '\f06a'; color: #01b4ee; font-size: 120%; margin-right: 5px; }

.sub-section { margin-bottom: 5em; }
.sub-section:last-of-type { margin-bottom: 0; }
.text-section { max-width: 1000px; margin: 0 auto; }
.lead-text { font-size: 1rem; margin-bottom: 3em; text-align: center; color: #000; }
.title-marker em { background: linear-gradient(transparent 65%, #ffeb3b 0); }
.typeset-tight { letter-spacing: -.05em; }

/* breakline */
.breakline { position: relative; }
.breakline::before {
    content: '';
    display: block;
    width: 95%; max-width: 800px; height: 75px;
    background: url("images/breakline.png") no-repeat top center;
    background-size: contain;
    margin: 0 auto 3em;
}
.breakline02::before {
    background-image: url("images/breakline_02.png");
    width: 80%; max-width: 650px;
}

/* カード */
.home-card {
    background: #fff;
    border-radius: 20px;
    border: 2px solid black;
    box-shadow: 2px 1px #000;
    display: block;
    overflow: hidden;
    height: 100%;
}

/* 吹き出し */
.balloon {
    display: inline-block !important;
    font-size: 15px;
    font-weight: bold;
    color: #fff;
    background: #e70012;
    padding: 10px 15px;
    border-radius: 8px;
    position: relative;
    margin-bottom: 15px;
    filter: drop-shadow(2px 2px 0px black);
}
.balloon::after {
    position: absolute;
    content: '';
    top: 100%; left: 43%;
    border: 10px solid transparent;
    border-top: 15px solid #e70012;
    width: 0; height: 0;
}

@media (max-width: 575px) {
    .section-title, .section-title-sub { font-size: 1.6rem; letter-spacing: .05em; padding: 30px 1em 25px; }
    .title-subsection { font-size: 1.4rem; padding: 0 20px; }
    .sub-section { margin-bottom: 3em; }
}

/* ============================================================
   intro-catch
   ============================================================ */
.intro-catch {
    padding: 5em 20px 3em;
    background: url(images/bg_halftone_trans.png) no-repeat -19% 35% #01b4ee;
    background-size: 60%;
    position: relative;
    border-bottom: 2px solid black;
    text-align: center;
}
.intro-catch .inner {
    display: inline-block;
    position: relative;
    margin-left: 10%;
    margin-right: 10%;
}
.intro-catch .inner::after {
    content: '';
    display: block;
    background: url(images/icon_hit_yellow.png) no-repeat right bottom;
    background-size: contain;
    position: absolute;
    left: 101%; bottom: 0;
    width: 13%;
    aspect-ratio: 3/5;
    max-width: 95px;
}
.intro-catch h2 { text-align: center; color: #fff100; margin-bottom: 1em; }
.slogan {
    text-align: center;
    font-family: "Quicksand", "M PLUS Rounded 1c", sans-serif;
    font-weight: 700;
    font-size: 1.4rem;
    line-height: 1.6;
}
@media (max-width: 768px) { .intro-catch { background-position: -350% center; background-size: 90%; } }
@media (max-width: 575px) { .intro-catch h2 { font-size: 5.1vw; } .slogan { font-size: 3.3vw; } }
@media (max-width: 480px) { .slogan { font-size: 1.1rem; } }

/* ============================================================
   poster-figure / 実績
   ============================================================ */
.poster-figure { padding-top: 5em; }
.poster-intro figure {
    width: 35%;
    float: right;
    margin-left: 20px;
    margin-top: 2em;
}
.poster-intro figure img { border: 2px solid #000; border-radius: 20px; box-shadow: 2px 1px #000; }
.poster-intro figure figcaption { text-align: center; font-size: 12px; font-weight: bold; margin-top: 12px; }
.poster-intro em { font-style: normal; font-weight: bold; color: #01b4ee; font-size: 120%; }
.reason-subtitle {
    font-size: 1.3rem;
    color: #006eb2;
    margin-bottom: 1.5em;
    border-bottom: 2px solid #000;
    display: inline-block;
    padding-bottom: .3rem;
}
.reason-subtitle em { color: #006eb2; font-size: 140%; display: block; margin-bottom: 5px; }
@media (max-width: 767px) { .poster-figure { padding-top: 2em; } .poster-intro figure { width: 45%; } }
@media (max-width: 479px) { .poster-intro figure { width: 80%; margin: 0 auto 30px; float: none; } }

/* ============================================================
   英検合格者の声
   ============================================================ */
.voice-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2em;
    margin-bottom: 2em;
}
.voice-card { height: 100%; max-width: 290px; margin: 0 auto; background: #fffbb7; }
.voice-description { padding: 1em 1em 0; }
.voice-title { color: #006eb2; text-align: center; font-size: 1.2rem; padding-bottom: 3px; }
.voice-title::before { font-family: "Font Awesome 5 Free"; content: '\f521'; color: #e70012; font-size: 110%; margin-right: 8px; font-weight: 900; }
.voice-title::after  { content: ""; display: block; width: 40%; height: 8px; border-bottom: 2px solid #000; margin: .2em auto; }
.voice-title small   { display: block; }
@media (max-width: 991px) { .voice-list { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) { .voice-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px) { .voice-list { grid-template-columns: 1fr; } }

/* ============================================================
   アンケート結果
   ============================================================ */
.survey-summary-flex { display: flex; flex-wrap: wrap; gap: 2em; align-items: flex-start; }
.survey-text-box     { flex: 1 1 60%; min-width: 280px; }
.survey-summary-figure { flex: 0 0 auto; padding: 2em 3% 0; }
.survey-summary-figure img { max-width: 260px; width: 100%; }
.survey-summary-figure figcaption { text-align: center; margin-top: 1em; font-weight: bold; font-size: 13px; }
.survey-summary-figure figcaption em { font-size: 120%; white-space: nowrap; }
.survey-summary p em { color: #01b4ee; font-size: 120%; }
.table-wrap { margin-bottom: 3em; overflow-x: auto; }
.survey-result-table { width: 100%; margin-bottom: .5em; border-collapse: collapse; }
.survey-result-table caption { caption-side: top; color: #343434; font-weight: bold; font-size: 1.1em; line-height: 1.4; padding-bottom: .25em; }
.answer-summary { display: inline-block; font-size: 1rem; color: #e70012; float: right; padding-left: 3.6em; position: relative; margin-top: .5em; }
.answer-summary::before { font-family: "Font Awesome 5 Free"; content: "\f0a4  \f0a4"; font-weight: 900; font-size: 140%; color: #fff100; position: absolute; left: 0; top: 0; }
.survey-result-table th,
.survey-result-table td { padding: 10px; border-right: 1px solid #fff; border-bottom: 1px solid #fff; text-align: center; vertical-align: middle; line-height: 1.5; }
.survey-result-table thead { background: #01b4ee; color: white; font-weight: bold; }
.survey-result-table tbody tr { background: #fff; }
.survey-result-table tbody tr:nth-child(even) { background: #d9f2f9; }
.survey-result-table thead th { width: 24%; }
.survey-result-table thead th:first-child { width: 28%; }
.survey-result-table td em { font-size: 120%; color: #006eb2; }
@media (max-width: 767px) { .survey-summary-flex { flex-direction: column; } .survey-summary-figure { max-width: 400px; margin: 0 auto; } }

/* ============================================================
   特長（features02）
   ============================================================ */
.features02 { border-top: 2px solid black; border-bottom: 2px solid black; background: #abeaff; }
.features-list { counter-reset: my-counter; margin-bottom: 4em; }
.features-list em, .features-list strong { color: #01b4ee; font-weight: bold; }
.features-item { position: relative; margin-bottom: 4em; padding: 3em 0; }
.features-item::before {
    content: '';
    display: block;
    width: 70%; height: 100%;
    background: url("images/bg_pattern_star_white.png");
    background-size: 40px;
    position: absolute; top: 0; left: 0;
}
.features-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    max-width: 1210px;
    margin: 0 auto;
    padding: 0 35px;
}
.features-list .pict-box { width: 50%; padding-right: 3em; }
.features-list .pict-box img { border-radius: 20px; border: 2px solid #000; box-shadow: 2px 1px #000; width: 100%; }
.features-list .text-box {
    width: 45%; position: relative; z-index: 5;
    background: #fff; left: 4em;
    padding: 2em 2em 1em 5em;
    border: 2px solid #000; border-radius: 20px; box-shadow: 2px 1px #000;
}
.features-item .text-box::before {
    content: counter(my-counter); counter-increment: my-counter;
    color: #fff100; font-weight: bold; font-size: 4em;
    display: block; position: absolute; left: 1rem; top: .5rem; z-index: -1;
}
.features-item h4 { text-align: center; margin-bottom: 1rem; color: #e70012; }
.features-item:nth-child(even) .features-row { flex-direction: row-reverse; }
.features-item:nth-child(even)::before { left: auto; right: 0; }
.features-item:nth-child(even) .pict-box { padding-right: 0; padding-left: 3em; }
.features-item:nth-child(even) .text-box { left: auto; right: 4em; }
@media (max-width: 991px) { .features-list .text-box { width: 50%; } }
@media (max-width: 767px) {
    .features02 { background: #e6f5ff; }
    .features-item { padding: 2em 0; margin-bottom: 0; }
    .features-item::before { content: none; }
    .features-row,
    .features-item:nth-child(even) .features-row { flex-direction: column-reverse; }
    .features-list .pict-box { width: 90%; padding: 0; }
    .features-list .text-box { width: 85%; left: 0; right: 0; margin-top: -12%; }
}
@media (max-width: 575px) {
    .features-item .text-box::before { font-size: 3.2em; position: static; text-align: center; line-height: 1; }
    .features-list .text-box { padding: 1.5em 2em 1em; }
    .features-item h4 { font-size: 1.4rem; }
}

/* ============================================================
   比較表
   ============================================================ */
.comparison-lead { max-width: 83%; margin: 0 auto; }
.comparison-table-wrap { margin-bottom: 2em; overflow-x: auto; }
.comparison-table {
    border-collapse: separate;
    border-spacing: 10px;
    table-layout: fixed;
    width: 100%;
    position: relative;
    z-index: 5;
}
.comparison-table th,
.comparison-table td { padding: 1em; text-align: center; }
.comparison-table th { color: #fff; background: #42403d; }
.comparison-logo { width: 50%; min-width: 100px; max-width: 140px; }
.comparison-table td { background: #fff; border: 2px solid #000; border-radius: 15px; box-shadow: 2px 1px #000; }
.comparison-table thead th:first-child,
.comparison-table thead th:last-child { width: 40%; color: #fff; background: #01b4ee; }
.comparison-table em { font-size: 120%; color: #01b4ee; }
.comparison-table::before {
    content: '';
    display: block;
    width: 101%; height: 99%;
    position: absolute;
    background: url("images/bg_pattern_halftone_dots_yllw.png");
    background-size: 30px;
    border-radius: 10px;
    top: 0; left: -3px; z-index: -1;
    transform: rotateZ(2deg);
}
@media (max-width: 767px) {
    .comparison-lead { max-width: 100%; }
    .comparison-table::before { transform: none; }
}
@media (max-width: 575px) {
    .comparison-table { font-size: .85rem; }
    .comparison-table thead { display: none; }
    .comparison-table tr { display: block; margin-bottom: 2em; }
    .comparison-table th[scope="row"],
    .comparison-table td { display: block; }
    .comparison-table td { text-align: left; padding-left: 2em; position: relative; }
    .comparison-table td::before { content: attr(data-label); margin-left: -1em; margin-bottom: .3em; font-weight: bold; color: #e70012; display: block; font-size: 110%; }
    .comparison-table tr td:first-child { border-radius: 15px 15px 0 0; border-bottom: none; }
    .comparison-table tr td:last-child  { border-radius: 0 0 15px 15px; border-top: none; }
    .comparison-table tr td:last-child::before { color: #8e8c8b; }
}
@media (max-width: 480px) { .comparison-table { border-spacing: 5px; } }

/* ============================================================
   コース紹介
   ============================================================ */
.course-list > li   { margin-bottom: 40px; position: relative; }
.course-special-list > li { margin-bottom: 4em; }
.course-list .balloon { margin-bottom: -10px; z-index: 5; }
.course-item { height: 100%; position: relative; }
.course-title { font-weight: bold; text-align: center; margin-bottom: 1em; font-size: 1.2rem; color: #e70012; }
.course-item-description { padding: 2em 20px 50px; background: #fff; }
.course-item-description em { color: #01b4ee; }
.course-item-suitable-for dt { background: #01b4ee; color: black; font-weight: bold; line-height: 2; padding: 2px .75em 0; display: inline-block; border-radius: 8px; margin-bottom: .5em; border: 1px solid black; box-shadow: 2px 1px #000; }
.course-item-suitable-for dd { padding-left: 1em; text-indent: -1em; margin-bottom: .2rem; color: #153d66; font-size: .9rem; }
.course-item-suitable-for dd::before { content: "・"; }
.course-item .btn { font-size: .8rem; font-weight: bold; position: absolute; right: 20px; bottom: 20px; border: 1px solid #000; box-shadow: 2px 1px #000; }
.course-item-plan { padding: 20px 20px 60px; background: #abeaff; }
/* course-special 横2列 */
.course-special { display: flex; justify-content: flex-end; background: url("images/course_intro_bg_11.jpg") no-repeat left top; background-size: contain; }
.course-special.item-06 { background-image: url("images/course_intro_bg_19.jpg"); background-position: -10% top; }
.course-special-pt { width: 35%; position: relative; min-width: 320px; }
.course-special .course-item-description { padding-bottom: 1.5em; }
.price-list.long > dt { float: none; width: 100%; }
.price-list.long > dd { padding-left: 1em; }
/* course-special02 3列グリッド */
.course-special-list02 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5em; margin-bottom: 3em; }
.course-special02 { background: #abeaff; }
.course-special-list02 .course-item-description { padding: 2em 20px 1em; }
/* 4列グリッド（目的別コース）*/
.course-grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5em; }
/* price-card */
.price-card { padding: 25px; }
.plan-intro-purpose .price-card { max-width: 700px; margin: 0 auto 3em; display: flex; flex-direction: column; align-items: center; }
.price-card h5 { text-align: center; font-size: 1.3rem; color: #00757f; margin-bottom: 1em; font-weight: bold; }
.price-list > dt { float: left; width: 9em; clear: both; }
.price-list > dd { margin-bottom: 0; float: left; }
.price-list em, .price-list strong { font-size: 180%; position: relative; bottom: -2px; margin: 0 2px; }
.price-list strong { color: #e70012; }
@media (max-width: 992px) {
    .course-special-list02 { grid-template-columns: 1fr; }
    .course-special-list02 > li { max-width: 500px; margin: 0 auto 4em; }
    .course-grid4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .course-list { padding: 0 20px; }
    .course-special { display: block; background: #e5f3fa; height: auto; }
    .course-special-pt { width: 100%; min-width: auto; }
    .course-special-list > li { max-width: 500px; margin: 0 auto 4em; }
    .course-grid4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
    .course-grid4 { grid-template-columns: 1fr; }
    .price-list > dt { width: 8em; }
    .price-list > dd { float: right; }
}

/* CTA */
.cta-links { margin-bottom: 2em; text-align: center; }
.cta-btn { text-align: center; }
.cta-btn .inner { filter: drop-shadow(4px 4px 0 rgba(66,64,61,.2)); }
.cta-btn a:link,
.cta-btn a:visited {
    text-decoration: none; color: white; font-weight: bold; font-size: 1.6rem;
    line-height: 80px; background: #e70012; display: block;
    padding: 0 1em; max-width: 450px; margin: 0 auto 1rem;
    white-space: nowrap; border-radius: 40px; border: 2px #000 solid; box-shadow: 2px 1px #000;
}
.cta-btn a:hover { transform: translateY(-4px); }
.cta-btn a.cta-flow     { background: #01b4ee; }
.cta-btn a.cta-teachers { background: #006eb2; color: #fff; }
.cta-links.mascot { display: flex; justify-content: center; align-items: center; }
@media (max-width: 575px) {
    .cta-links.mascot { flex-direction: column-reverse; }
    .cta-btn a:link, .cta-btn a:visited { font-size: 5vw; }
}

/* ============================================================
   講師紹介
   ============================================================ */
.teachers-lead { max-width: 83%; margin: 0 auto; }
.teachers-pict { margin-bottom: 5em; position: relative; z-index: 5; }
.teachers-pict-inner { position: relative; margin: 0 auto; width: calc(100% - 15px); max-width: 950px; }
.teachers-pict img { display: block; border-radius: 20px; border: 2px solid #000; box-shadow: 2px 1px #000; width: 100%; }
.teachers-pict-inner::after {
    content: ''; display: block; width: 100%; height: 103%;
    position: absolute; top: 0; left: 15px; z-index: -1;
    background: url("images/bg_pattern_halftone_dots_yllw.png"); background-size: 30px;
    border-radius: 20px; transform: rotateZ(2deg);
}
.teachers-list { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1em; margin-bottom: 3em; }
.teachers-list > li { padding: 0 12px; }
.teacher-card { padding-bottom: .5em; overflow: visible; }
.teacher-card img { display: block; border-radius: 15px; border: 2px solid #000; box-shadow: 2px 1px #000; width: 100%; }
.teacher-profile {
    text-align: center; display: inline-block; background: #01b4ee;
    border-radius: 8px; font-weight: 700; font-size: .9rem;
    padding: .2em .8em; position: relative; left: -10px; top: -15px;
    border: 1px solid black; box-shadow: 2px 1px #000; transform: rotateZ(-3deg);
}
.teacher-profile small { font-size: 70%; white-space: nowrap; }
.why-filipino {
    border: 2px solid #000; border-radius: 20px; padding: 2em 1em 1em; margin-bottom: 3em;
    background: url(images/bg_halftone_trans02.png) no-repeat 290% 45% #fffbb7;
    background-size: 80%; box-shadow: 2px 1px #000;
}
.why-filipino-list { font-weight: bold; }
.hiring-feature-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1em; }
.hiring-feature-item { text-align: center; font-weight: 700; font-size: 1.1rem; margin-bottom: 2em; }
.hiring-feature-item::before { font-family: "Font Awesome 5 Free"; content: "\f058"; font-weight: 900; font-size: 60px; color: #fff100; display: block; margin-bottom: .3em; }
.hiring-process-figure { margin: 0 auto 3em; max-width: 1000px; }
.hiring-process-figure img { width: 100%; }
@media (max-width: 767px) {
    .teachers-list { grid-template-columns: repeat(3, 1fr); }
    .hiring-feature-list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) { .teachers-list { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   受講の流れ
   ============================================================ */
.flow-lead { max-width: 83%; margin: 0 auto; }
.flow-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2em; padding-top: 2em; margin-bottom: 3em; }
.flow-list > li { position: relative; }
.flow-description { padding: 1em 1em 0; }
.flow-item-title { font-size: 1.1rem; text-align: center; font-weight: 700; margin: .5em 0 1em; color: #e70012; }
.flow-item-title::after { content: ""; display: block; width: 40%; height: 8px; border-bottom: 2px solid #000; margin: .2em auto; }
.flow-item .bullet {
    display: flex; width: 60px; height: 60px;
    justify-content: center; align-items: center; flex-direction: column;
    border-radius: 50%; font-weight: bold; color: #000; background: #01b4ee;
    position: absolute; top: -35px; left: 35px;
    line-height: 1; font-size: 1.8rem;
    border: 1px solid #000; box-shadow: 2px 1px #000;
}
.flow-item .bullet small { font-size: 8px; text-transform: uppercase; padding-top: 10px; }
@media (max-width: 767px) {
    .flow-list { grid-template-columns: 1fr; }
    .flow-list > li { max-width: 450px; margin: 0 auto 3em; }
}

/* ============================================================
   FAQ
   ============================================================ */
.faq {
    background: url("images/bg_pattern_star_white.png") #fff100;
    background-size: 90px;
    padding: 4em 0;
    border-bottom: 2px solid #000;
}
.faq-list { max-width: 1000px; margin: 0 auto; }
.faq-item { margin-bottom: 1em; filter: drop-shadow(2px 1px 0 #000); }
.faq-toggle {
    width: 100%; text-align: left;
    border: 2px solid #000; border-radius: 20px 20px 0 0;
    background: #fff; padding: 12px 12px 12px 70px;
    cursor: pointer; font-family: inherit; font-size: inherit;
    position: relative;
}
.faq-toggle::before {
    content: 'Q'; font-weight: 700;
    position: absolute; left: 15px; top: 13px;
    font-size: 24px; background: #e70012;
    width: 40px; line-height: 40px; text-align: center; color: white; border-radius: 50%;
    display: block;
}
.faq-question-text { font-size: 18px; line-height: 35px; color: #111; }
.faq-answer { display: none; border: 2px solid #000; border-radius: 0 0 20px 20px; border-top: none; background: #fff; padding: 16px 16px 20px 70px; position: relative; }
.faq-answer.is-open { display: block; }
.faq-answer::before {
    content: 'A'; font-weight: 700;
    position: absolute; left: 15px; top: 13px;
    font-size: 24px; background: #01b4ee;
    width: 40px; line-height: 40px; text-align: center; color: white; border-radius: 50%;
    display: block;
}
.faq-answer p:last-child { margin-bottom: 0; }
@media (max-width: 576px) { .faq-question-text { font-size: 16px; line-height: 1.5; } .faq-toggle::before { top: 7px; } }

/* ============================================================
   運営者情報
   ============================================================ */
.management { padding: 4em 0; margin-bottom: 2em; }
.management-profile { width: 100%; max-width: 960px; margin: 0 auto; }
.management-table { width: 100%; background: white; border-bottom: 3px solid #000; border-collapse: collapse; }
.management-table tr { border-top: 2px solid #000; }
.management-table th,
.management-table td { padding: .75rem; border: none; vertical-align: top; }
.table-dark { background: none; color: #01b4ee; font-weight: bold; }

/* ============================================================
   フッター（SWELLのl-footerを上書き）
   ============================================================ */
#footer.l-footer {
    background: url("images/bg_halftone_trans.png") no-repeat -11% -1.4em #01b4ee !important;
    background-size: 30% !important;
    border-top: 2px solid #000 !important;
    color: #fff !important;
}
/* SWELLデフォルトのフッター内コンテンツを非表示にして独自フッターのみ表示 */
#footer.l-footer .l-footer__inner { display: none; }
.se-footer-inner {
    max-width: 1140px;
    margin: 0 auto;
    padding: 3rem 15px;
    text-align: center;
}
.se-footer-inner p { margin-bottom: 0; font-size: .85rem; color: #fff; }
@media (max-width: 767px) {
    #footer.l-footer { background-position: -30% center !important; background-size: 58% !important; }
}

/* ============================================================
   TOPへ戻る
   ============================================================ */
#gototop { position: fixed; bottom: 20px; right: 20px; display: none; z-index: 9999; }
#gototop a { display: block; }
#gototop img { width: 50px; }

/* ============================================================
   下層ページ共通レイアウト調整
   （ブログ記事・固定ページ・アーカイブ）
   ============================================================ */

/* SWELLのl-contentをリセットして全幅にする */
#content.l-content.l-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* メインコンテンツ幅を制限してセンタリング */
.l-mainContent {
    width: 100% !important;
    max-width: none !important;
}

/* サイドバーあり時のレイアウトを上書き */
.-sidebar-on .l-content {
    display: block !important;
}

/* 記事・ページのコンテンツ幅 */
.l-mainContent__inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 2.5rem 35px 4rem;
}
@media (max-width: 767px) {
    .l-mainContent__inner { padding: 2rem 20px 3rem; }
}

/* サイドバーを非表示にする（LP風のフルレイアウト） */
#sidebar.l-sidebar { display: none !important; }

/* ============================================================
   下層ページ ページタイトルエリア
   ============================================================ */
.se-page-title-bar {
    background: url("images/bg_halftone_trans.png") no-repeat right center #01b4ee;
    background-size: 40%;
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    padding: 3rem 35px;
    text-align: center;
}
.se-page-title-bar h1,
.se-page-title-bar .page-title {
    font-size: 1.8rem;
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 1.4;
    text-shadow: 1px 1px 0 rgba(0,0,0,.15);
}
.se-page-title-bar .page-subtitle {
    font-size: .9rem;
    color: rgba(255,255,255,.85);
    margin-top: .5em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .1em;
}
@media (max-width: 575px) {
    .se-page-title-bar { padding: 2rem 20px; }
    .se-page-title-bar h1,
    .se-page-title-bar .page-title { font-size: 1.4rem; }
}

/* ============================================================
   SWELLのデフォルトページタイトル(p-articleHead)を非表示
   → 独自タイトルバーに置き換えるため
   ============================================================ */
.p-articleHead.c-postTitle {
    display: none !important;
}
/* ただし post_content 内の見出しはSWELLスタイルをそのまま使う */

/* ============================================================
   記事本文(post_content)のカラー・フォント調整
   ============================================================ */
.post_content {
    font-size: 1rem !important;
    line-height: 1.85 !important;
    color: #212529;
}

/* 見出しをLP配色に合わせる */
.post_content h2 {
    background: none !important;
    border-left: 5px solid #01b4ee;
    border-bottom: 2px solid #e8e8e8;
    padding: .4em .75em !important;
    margin: 2.5em 0 1.2em !important;
    font-size: 1.3rem !important;
    color: #153d66;
}
.post_content h3 {
    border-left: 4px solid #01b4ee;
    padding-left: .6em !important;
    margin: 2em 0 1em !important;
    font-size: 1.15rem !important;
    color: #153d66;
}
.post_content h4 {
    border-bottom: 2px dotted #01b4ee;
    padding-bottom: .2em !important;
    margin: 1.8em 0 .8em !important;
    font-size: 1.05rem !important;
    color: #153d66;
}

/* リンクカラー */
.post_content a {
    color: #006eb2;
    text-decoration: underline;
}
.post_content a:hover { color: #01b4ee; }

/* ============================================================
   アーカイブページ（記事一覧）
   ============================================================ */

/* 記事一覧グリッド */
.p-archiveContent {
    padding: 0;
}
/* SWELLのカードリストをLP風に */
.p-postList.-type-card .p-postList__item {
    padding: 0 .75em !important;
}

/* ============================================================
   パンくずリスト
   ============================================================ */
.p-breadcrumb {
    background: #f0f9ff !important;
    border-bottom: 1px solid #ddedf5;
    padding: .6em 35px !important;
}
.p-breadcrumb__list { font-size: 12px !important; }
.p-breadcrumb a { color: #006eb2 !important; }
@media (max-width: 767px) {
    .p-breadcrumb { padding: .6em 20px !important; }
}

/* ============================================================
   メタ情報（投稿日・更新日・カテゴリ）
   ============================================================ */
.p-articleMetas.-top {
    background: #f8fdff;
    border: 1px solid #ddedf5;
    border-radius: 8px;
    padding: .75em 1em;
    margin-bottom: 2em;
    font-size: .85rem;
}
.c-categoryList__link {
    background-color: #01b4ee !important;
}

/* ============================================================
   ページネーション
   ============================================================ */
.c-pagination [class*=page-numbers].current,
.c-pagination [class*=page-numbers]:hover {
    background-color: #01b4ee !important;
}

/* ============================================================
   前後記事リンク
   ============================================================ */
.p-prevNextLink__link {
    border-color: #01b4ee !important;
}
.p-prevNextLink__link:hover {
    background: #01b4ee !important;
    color: #fff !important;
}

/* ============================================================
   関連記事
   ============================================================ */
.p-relatedPosts__title {
    color: #01b4ee !important;
    border-color: #01b4ee !important;
}

/* ============================================================
   下層ページ下部CTA
   ============================================================ */
.se-inner-cta {
    background: linear-gradient(135deg, #01b4ee 0%, #006eb2 100%);
    border-radius: 16px;
    padding: 2.5rem 2rem;
    text-align: center;
    margin: 3rem 0 1rem;
    border: 2px solid #000;
    box-shadow: 2px 2px #000;
}
.se-inner-cta p {
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 1.2em;
}
.se-inner-cta a {
    display: inline-block;
    background: #e70012;
    color: #fff !important;
    font-weight: 800;
    font-size: 1.1rem;
    padding: 1em 2.5em;
    border-radius: 40px;
    text-decoration: none !important;
    border: 2px solid #000;
    box-shadow: 2px 2px #000;
    transition: transform .15s;
}
.se-inner-cta a:hover {
    transform: translateY(-3px);
    background: #ee4c59;
    color: #fff !important;
}
