/* --- 基本設定 --- */
body {
    margin: 0;
    font-family: "Noto Sans JP", sans-serif;
    color: #333;
    background-color: #fff;
    overflow-x: hidden;
}
.flex { display: flex; }
.flex-j-between { justify-content: space-between; }
.clr-wht { color: #fff; }
.font-en { font-family: sans-serif; letter-spacing: 0.1em; }
.spacer-section {
    height: 50vh;
    background-color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 共通セクションタイトル */
.section-title {
    font-size: 1.4rem;
    text-align: center;
    margin-bottom: 60px;
    font-weight: 400;
    position: relative;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    padding: 0 55px;
}
.section-title:before,
.section-title:after {
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 45px;
    height: 1px;
    background-color: #333;
}
.section-title:before { left: 0; }
.section-title:after { right: 0; }

.sans-serif-font {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* --- プロフィールセクション --- */
.profile-section {
    background-color: #ffffff;
    color: #333;
    padding: 50px 20px;
}
.profile-container {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    gap: 25px;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.profile-avatar img {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 4px solid #fff;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1);
    object-fit: cover;
}
.profile-info { flex-grow: 1; }
.profile-name { font-size: 1.2rem; font-weight: 400; margin: 0 0 5px 0; }
.profile-handle { font-size: 1rem; color: #555; margin: 0 0 20px 0; }
.profile-bio { font-size: 1rem; line-height: 1.7; margin: 0; color: #333; text-align: left; }

/* --- レッスン一覧セクション --- */
.lesson-section {
    background-color: #ffffff;
    color: #333;
    padding: 60px 20px;
}
.lesson-container { max-width: 1000px; margin: 0 auto; }
.lesson-list { list-style: none; padding: 0; margin: 0; }

.lesson-item {
    margin-bottom: 0;
    padding: 50px 0 120px;
    position: relative;
    transform: none !important;
}
.lesson-item:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    width: 10%;
    height: 1px;
    background-color: #000;
}
.lesson-list .lesson-item:last-child { padding-bottom: 40px; }

.lesson-layout {
    display: grid;
    grid-template-columns: minmax(0, 48%) minmax(0, 52%);
    gap: 48px;
    align-items: flex-start;
}
.lesson-media { position: sticky; top: 120px; }

.lesson-swiper {
    width: 100%;
    aspect-ratio: 3 / 4;
    margin-bottom: 16px;
    overflow: hidden;
}
.lesson-swiper .swiper-wrapper { width: 100%; height: 100%; }
.lesson-swiper .swiper-slide { overflow: hidden; position: relative; }
.lesson-swiper-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.lesson-swiper-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.lesson-thumbs {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}
.lesson-thumb {
    width: 100%;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.3s ease, transform 0.3s ease;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.lesson-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lesson-thumb.is-active { opacity: 1; transform: scale(1.03); }

@media (max-width: 767px) {
    .lesson-thumbs { gap: 6px; }
    .lesson-layout { display: block; }
    .lesson-media { position: static; margin-bottom: 24px; }
}

.lesson-text { font-size: 1rem; line-height: 1.8; color: #444; }
.lesson-title { font-size: 1.2rem; font-weight: 400; margin: 0 0 20px; }
.lesson-details { font-size: 1rem; line-height: 1.8; color: #444; }
.lesson-details p { margin: 0 0 15px 0; }
.lesson-details h3 { font-size: 1.2rem; font-weight: 400; margin: 0 0 20px 0; line-height: 1.4; }

/* --- お教室場所セクション --- */
.location-section {
    background-color: #ffffff;
    color: #333;
    padding: 100px 0 100px 0;
}
.location-map-wrap { width: 100%; height: 300px; margin-bottom: 60px; background-color: #f0f0f0; }
#map-container { width: 100%; height: 100%; }
.location-container { max-width: 800px; margin: 0 auto; padding: 0 20px; margin-top: 40px; }
.location-columns { display: flex; justify-content: space-between; gap: 40px; }
.location-column { width: 50%; }
.location-column h3 { font-size: 1.2rem; font-weight: 400; margin: 0 0 20px 0; }
.location-column p { font-size: 1rem; line-height: 1.8; color: #444; margin: 0 0 15px 0; }
@media (max-width: 767px) {
    .location-columns { flex-direction: column; }
    .location-column { width: 100%; }
}

/* --- 認定校制度セクション --- */
.certified-school-section {
    background-color: #ffffff;
    color: #333;
    padding: 50px 20px;
}
.certified-school-container { max-width: 800px; margin: 0 auto; }
.certified-intro {
    font-size: 1.1rem;
    line-height: 1.8;
    text-align: center;
    margin-bottom: 60px;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 8px;
}
.certified-flow h3 {
    font-size: 1.2rem;
    margin: 0 0 25px 0;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
    font-weight: 400;
}
.flow-list { list-style: none; padding-left: 0; counter-reset: list-item; }
.flow-list li { margin-bottom: 10px; padding-left: 35px; position: relative; }
.flow-list h4 { font-size: 1rem; font-weight: 400; margin: 0 0 10px 0; }
.flow-list p, .flow-list ul { font-size: 1rem; line-height: 1.7; color: #444; margin: 0 0 15px 0; }
.flow-list .price { font-weight: bold; color: #d9534f; font-size: 1.1rem; }
.flow-list .sub-details { padding-left: 20px; list-style-type: disc; }
.flow-list .sub-details li { margin-bottom: 10px; padding-left: 0px; position: relative; }
.certified-list { margin-top: 60px; }
.certified-list h3 {
    font-size: 1.2rem;
    margin: 0 0 25px 0;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
    font-weight: 400;
}
.school-links { list-style: none; padding-left: 0; }
.school-links li { border-bottom: 1px solid #f0f0f0; }
.school-links a {
    font-size: 14px;
    color: #333;
    text-decoration: none;
    display: block;
    padding: 5px 5px;
}
.school-links a:hover { color: #000; }
.certified-subtitle {
    font-size: 14px;
    font-weight: 400;
    margin: 40px 0 0 0;
    padding-bottom: 6px;
    border-bottom: 1px solid #eee;
    color: #333;
}
.certified-list > h3 { border-top: none; }
.certified-list > h3::before, .certified-list > h3::after { display: none; }
.school-links.no-top-border { border-top: none; }
.certified-intro p { margin: 0 0 14px; line-height: 1.9; text-align: left; }
.certified-support-list { margin: 0; padding-left: 1.2em; list-style: disc; }
.certified-support-list li { margin: 0 0 8px; line-height: 1.9; text-align: left; }
@media (max-width: 767px) {
    .certified-intro { padding-left: 10px; }
    .certified-support-list li { margin-bottom: 6px; }
    .certified-list .school-links { margin-left: 1.2em; }
}

/* --- お問い合わせフォーム --- */
.contact-section {
    background-color: #ffffff;
    color: #333;
    padding: 50px 20px;
}
.contact-container { max-width: 800px; margin: 0 auto; }
.contact-form { width: 100%; }
.form-row { display: flex; gap: 20px; margin-bottom: 20px; }
.form-group { flex: 1; min-width: 200px; }
.form-group.full-width { flex-basis: 100%; }
.form-input, .form-textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 1rem;
}
.form-textarea { height: 200px; resize: vertical; }
.form-submit { text-align: center; margin-top: 30px; }
.submit-btn {
    background-color: #888;
    color: white;
    border: none;
    padding: 12px 30px;
    font-size: 1rem;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: background-color 0.2s;
}
.submit-btn:hover { background-color: #000; }
@media (max-width: 767px) {
    .form-row { flex-direction: column; gap: 20px; }
    .btn-apply { display: block; width: 100%; box-sizing: border-box; }
}
.btn-apply {
    display: inline-block;
    min-width: 100px;
    padding: 10px 16px;
    border: 2px solid #444;
    background-color: transparent;
    color: #444;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    line-height: 1.5;
    transition: all 0.3s ease;
    cursor: pointer;
    margin-top: 30px;
}
.btn-apply:hover { opacity: 0.5; }

/* --- フッターセクション --- */
.footer-section {
    background-color: #000000;
    color: #ffffff;
    padding: 60px 20px 20px 20px;
}
.footer-container {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    padding-bottom: 40px;
    border-bottom: 1px solid #333;
}
.footer-left { flex: 1; }
.footer-left h4 { font-size: 1.2rem; margin: 0 0 15px 0; color: #aaa; }
.footer-left p { font-size: 0.9rem; line-height: 1.6; margin: 0; color: #ccc; }
.footer-center { flex: 1; text-align: center; }
.footer-center h4 { font-size: 1.2rem; margin: 0 0 15px 0; color: #aaa; }
.footer-center ul { list-style: none; padding: 0; margin: 0; }
.footer-center li { margin-bottom: 10px; }
.footer-center a { color: #ccc; text-decoration: none; font-size: 0.9rem; transition: color 0.2s; }
.footer-center a:hover { color: #fff; }
.footer-right { flex: 1; display: flex; flex-direction: column; align-items: flex-end; gap: 20px; }
.footer-contact-link { margin-bottom: 20px; font-size: 0.9rem; }
.footer-contact-link a { color: #ccc; text-decoration: none; transition: opacity 0.3s; }
.footer-contact-link a:hover { color: #fff; }
.footer-icon-wrap { display: flex; gap: 20px; }
.footer-icon a {
    display: block;
    width: 44px;
    height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-decoration: none;
    transition: background-color 0.2s, border-color 0.2s;
}
.footer-icon a:hover { background-color: #fff; color: #000; }
.footer-icon svg { width: 20px; height: 20px; fill: currentColor; }
.footer-copyright {
    max-width: 800px;
    margin: 20px auto 0 auto;
    text-align: center;
    font-size: 0.8rem;
    color: #777;
}
@media (max-width: 767px) {
    .footer-container { flex-direction: column; align-items: center; text-align: center; gap: 50px; }
    .footer-left, .footer-center, .footer-right { width: 100%; align-items: center; text-align: center; }
    .footer-center { text-align: center; }
    .footer-right { margin-top: 0; }
    .footer-icon-wrap { justify-content: center; }
}

.page-top-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 1000;
    width: 30px;
    height: 30px;
    background-color: #000;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease, background-color 0.3s ease;
}
.page-top-btn:hover { background-color: #888; }
.page-top-btn.is-visible { opacity: 1; visibility: visible; }
.page-top-btn svg { width: 18px; height: 18px; }

/* --- メインビジュアル --- */
.home_appeal { background-color: #fff; color: #fff; padding-bottom: 100px; }
.home_appeal--toparea { height: 300vh; position: relative; }
.home_appeal--toparea--inner { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; justify-content: center; align-items: center; }
.home_appeal--mv_wrap { 
    width: 100%; 
    height: 100%; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    clip-path: polygon(33% 33%, 67% 33%, 67% 67%, 33% 67%);
    background-color: #fff;
}
@media (max-width: 767px) {
    .home_appeal--mv_wrap { clip-path: polygon(28% 33%, 72% 33%, 72% 67%, 28% 67%); }
}
.home_appeal--mv { position: relative; width: 100%; height: 100%; }
.home_appeal--mv img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.2); }
.home_appeal--mv-catch { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    list-style: none; 
    padding: 0; 
    margin: 0; 
    text-align: center; 
    width: 100%; 
    z-index: 2; 
    color: #333;
}
.home_appeal--mv-catch li { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; opacity: 0; visibility: hidden; transition: opacity 0.5s, visibility 0.5s; }
.home_appeal--mv-catch li.active { opacity: 1; visibility: visible; }
.home_appeal--mv-catch .ttl {
  font-size: clamp(1.36rem, 2.55vw, 2.55rem); 
  font-weight: 400;
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  line-height: 1.8;
  font-style: normal;
}
.home_appeal--mv-catch .ttl .kv-ttl-logo{
  height: 0.5em;
  width: auto;
  display: inline-block;
  vertical-align: middle;
}
@media (min-width: 768px) {
  .home_appeal--mv-catch .ttl { font-size: clamp(1.85rem, 2.3vw, 2.3rem) !important; }
  .home_appeal--mv-catch .ttl .kv-ttl-logo{ height: 0.575em; }
}
@media (max-width: 767px) {
  .home_appeal--mv-catch .ttl { font-size: clamp(0.85rem, 4.25vw, 0.85rem); }
}

/* --- ABOUTエリア (修正済み) --- */
.home_appeal--btmarea { position: relative; max-width: 1200px; margin: 0 auto; padding: 100px 20px; z-index: 2; }

@media (min-width: 768px) {
    .home_appeal--btmarea { 
        display: grid; 
        grid-template-columns: 45% 45%; 
        justify-content: space-between; 
        align-items: flex-start; 
    }
    
    .home_appeal--slider_wrap { 
        grid-column: 1 / 2; 
        grid-row: 1; 
        height: 64vh; 
        overflow: hidden; 
        z-index: 2; 
        /* position: sticky は削除済み */
    }

    /* GSAP Pinning時のレイアウト崩れ防止 */
    .home_appeal--btmarea .pin-spacer {
        grid-column: 1 / 2 !important;
        grid-row: 1 !important;
        /* Grid内でPinningする際の重要設定 */
        height: 64vh !important; 
        padding-bottom: 0 !important;
    }

    /* スライダーリストのスタイル */
    .home_appeal--slider { 
        list-style: none; 
        padding: 0; 
        margin: 0; 
        width: 100%; 
        height: auto; 
        display: block; 
        overflow: visible; 
        will-change: transform; 
    }

    /* 各スライドのスタイル */
    .home_appeal--slide { 
        width: 100%;
        height: 64vh; /* 初期値として高さを指定 */
        display: block;
        margin: 0;
        padding: 0;
    }

    /* 画像の強制表示設定 */
    .home_appeal--slide img,
    .home_appeal--slide .home_appeal--item_image,
    .home_appeal--slide .home_appeal--item_image img { 
        width: 100% !important; 
        height: 100% !important; 
        object-fit: cover !important; 
        display: block !important; 
        opacity: 1 !important;
        visibility: visible !important;
    }
    
    .home_appeal--contents { 
        grid-column: 2 / 3; 
        grid-row: 1; 
        width: 100%; 
        z-index: 2; 
    }
    
    .home_appeal--content { height: 80vh; display: flex; align-items: center; opacity: 0.2; transition: opacity 0.5s; }
    .home_appeal--content.active { opacity: 1; }
    .home_appeal--item { display: none; }
}

@media (max-width: 767px) {
    .home_appeal--slider_wrap, .home_appeal--contents { display: none; }
    .home_appeal--item { display: flex; flex-direction: column; margin-bottom: 60px; }
    .home_appeal--item_image { width: 100%; margin-bottom: 20px; }
    .home_appeal--item_image img { width: 100%; height: auto; object-fit: cover; }
    .home_appeal--item_text { width: 100%; }
}

.home_appeal--content--ttl { font-size: clamp(1.4rem, 4vw, 1.4rem); margin-bottom: 1rem; font-weight: 400; }
.home_appeal--content--ttl_en { font-size: 1rem; opacity: 0.7; margin-bottom: 2rem; }
.home_appeal--content--txt { font-size: clamp(0.9rem, 2.5vw, 0.9rem); line-height: 2; }

/* 背景画像 */
#btmarea-backgrounds { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 1; opacity: 0; visibility: hidden; transition: opacity 0.5s ease-in-out, visibility 0.5s; }
#btmarea-backgrounds.is-visible { opacity: 1; visibility: visible; }
.btmarea-bg-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 0.8s ease-in-out; }
.btmarea-bg-slide.active { opacity: 1; }
.btmarea-bg-slide img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    filter: blur(10px) brightness(0.5); 
    transform: scale(1.05);
}

/* ヘッダー設定 (共通) */
.ct-layout-a a, .ct-layout-b a { transition: opacity 0.3s ease; }
.ct-layout-a a:hover, .ct-layout-b a:hover, .ct-layout-a a:focus, .ct-layout-b a:focus { opacity: 0.5; }

.ct-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1001;
    background-color: transparent;
    transition: background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
    color: #333;
    font-family: sans-serif;
    font-size: 16px;
    line-height: 1.5;
}
.ct-header.scrolled { background-color: white; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); color: #333; }
.ct-header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    height: 90px;
}
.ct-header a, .ct-header a:hover, .ct-header a:focus { color: inherit; text-decoration: none; }
.ct-header-logo-area { display: flex; align-items: center; }
.ct-logo-image { width: 50px; height: 50px; display: block; }
.ct-header-nav ul { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
.ct-header-nav li { margin: 0 15px; }
.ct-header-icon-area { display: flex; align-items: center; }
.ct-header-icon-area a { margin-left: 15px; }
.ct-header-icon { width: 26px; height: 26px; color: currentColor; transition: color 0.3s ease; }
.ct-hamburger-menu {
    display: none;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    width: 30px;
    height: 24px;
    position: relative;
    z-index: 101; 
    transition: opacity 0.3s ease;
}
.ct-hamburger-menu:hover { opacity: 0.5; }
.ct-hamburger-menu span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: currentColor;
    position: absolute;
    left: 0;
    transition: all 0.3s ease;
}
.ct-hamburger-menu span:nth-child(1) { top: 0; }
.ct-hamburger-menu span:nth-child(2) { top: 11px; }
.ct-hamburger-menu span:nth-child(3) { bottom: 0; }
.ct-hamburger-menu.is-active span:nth-child(1) { top: 11px; transform: rotate(45deg); }
.ct-hamburger-menu.is-active span:nth-child(2) { opacity: 0; }
.ct-hamburger-menu.is-active span:nth-child(3) { top: 11px; transform: rotate(-45deg); }
.ct-layout-b .ct-logo-image { width: 113px; height: 50px; }

@media (max-width: 768px) {
    .ct-header { background-color: white; }
    .ct-header-nav { display: none; }
    .ct-header-nav li:last-child::before { content: ''; }
    .ct-hamburger-menu { display: block; margin-left: 20px; }
    .ct-header-logo-area { flex-grow: 1; }
    .ct-header-nav.is-active {
        display: block;
        position: fixed;
        top: 90px;
        left: 0;
        width: 100%;
        background-color: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(5px);
        color: #333;
        z-index: 1000;
    }
    .ct-header-nav.is-active ul { flex-direction: column; }
    .ct-header-nav.is-active li { margin: 0; text-align: center; border-top: none; }
    .ct-header-nav.is-active li:last-child { border-top: 1px solid #eee; }
    .ct-header-nav.is-active li a { display: block; padding: 20px; }
}

p, .profile-bio, .lesson-text, .lesson-details p, .location-column p, .flow-list p, .flow-list ul, .certified-intro, .footer-left p, .footer-contact-link, .home_appeal--content--txt {
    font-size: 14px !important;
    line-height: 1.8;
}

/* =========================================
   FIX: school-links（no-top-border含む）先祖返り防止の最終上書き
   ※ style.css の一番下に追記
========================================= */

/* リストの基本（古い定義を上書き） */
.school-links{
  list-style: none;
  padding-left: 0;
  margin: 0; /* 余計な隙間を作らない */
  border-top: 1px solid rgba(0,0,0,0.1);
}

/* 指定ブロックのみ：上の罫線なし（既存仕様維持） */
.school-links.no-top-border{
  border-top: none;
}

/* 行（li）を“行全体クリック風”の見た目に */
.school-links li{
  margin: 0;                 /* 隙間を作らない */
  padding: 18px 14px;        /* 行の上下間隔（以前の倍） */
  font-size: 14px;
  line-height: 1.8;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  transition: background-color 0.3s ease;
}

/* 行ホバー：罫線〜罫線の間を全面で色変更 */
.school-links li:hover{
  background-color: rgba(0,0,0,0.05);
}

/* URL（a）は“URLだけ小さく”＋余白はli側に寄せる */
.school-links li a{
  display: block;
  padding: 0;                /* ← 先祖返り原因の padding を殺す */
  margin-top: 1px;            /* テキストとURLを近づける */
  min-height: 18px;           /* URL有無でも行の高さを揃える */
  font-size: 12px;
  opacity: 0.7;
  color: inherit;
  text-decoration: none;
  word-break: break-all;
  transition: opacity 0.3s ease;
}

.school-links li:hover a{
  opacity: 1;
  text-decoration: underline;
}

/* SP微調整 */
@media (max-width: 767px){
  .school-links li{
    padding: 16px 12px;
  }
}
.lesson-title-en{
  margin: -10px 0 28px;
  color: #777;
  font-size: 0.95rem;
  font-weight: 400;
}
/* ===============================
   location-columns：全体枠線
================================ */

.location-columns {
  border: 1px solid rgba(0, 0, 0, 0.12); /* 薄いグレー */
  padding: 40px;                         /* 枠線と中身の余白（既存と違和感出ない値） */
  box-sizing: border-box;
}

/* SP時 微調整（余白だけ少し縮小） */
@media (max-width: 767px) {
  .location-columns {
    padding: 24px;
  }
}
/* ===============================
   Footer (image-like simple layout)
================================ */

.footer-section{
  background:#000;
  color:#fff;
  padding: 90px 20px 40px;
}

.footer-container--simple{
  max-width: 1200px;
  margin: 0 auto;
  display:flex;
  justify-content: space-between;
  align-items:flex-start;
  gap: 60px;
  padding-bottom: 60px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
}

.footer-col{
  min-width: 0;
}

.footer-menu{
  list-style:none;
  margin:0;
  padding:0;
  text-align: left;
}

.footer-menu li{
  margin: 0 0 10px 0;
}

.footer-menu a{
  color: rgba(255,255,255,0.6);
  text-decoration:none;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  transition: color .2s ease, opacity .2s ease;
}

.footer-menu a:hover{
  color: rgba(255,255,255,0.95);
}

.footer-menu--right{
  text-align:right;
}

.footer-copyright--simple{
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 26px;
  text-align:center;
  color: rgba(255,255,255,0.35);
  font-size: 14px;
  letter-spacing: 0.06em;
}

/* SP */
@media (max-width: 767px){
  .footer-section{
    padding: 60px 20px 30px;
  }

  .footer-container--simple{
    flex-direction: column;
    gap: 40px;
    padding-bottom: 40px;
  }

  .footer-menu a{
    font-size: 18px;
  }

  .footer-menu--right{
    text-align:left;
  }
}
/* Footer font size fix */
.footer-section,
.footer-section a,
.footer-section p,
.footer-section li {
  font-size: 12px;
}
/* ===============================
   Company Page
================================ */

body.company-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.company-main {
  flex: 1;
  display: flex;
  align-items: center;   /* 縦中央 */
  justify-content: center; /* 横中央 */
  padding: 80px 20px;
}

.company-card {
  text-align: center;
  line-height: 2;
}

/* SP微調整 */
@media (max-width: 767px) {
  .company-main {
    padding: 60px 16px;
  }
  .company-card {
    line-height: 1.9;
  }
}
