@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@500;600;700&display=swap');

:root {
    --primary: #4a4117;
    --primary-light: #6b621e;
    --primary-dark: #352f12;
    --primary-container: rgba(74, 65, 23, 0.12);

    --secondary: #c9a227;
    --tertiary: #0ea5e9;
    --tertiary-container: rgba(14, 165, 233, 0.14);

    --background: #fdf8f1;
    --surface: #ffffff;
    --surface-container: #ebe4d4;
    --surface-container-high: #e8e0d0;
    --surface-container-low: #f5efe4;
    --surface-container-highest: #ffffff;

    --on-surface: #2c2610;
    --on-surface-variant: #5c5338;
    --white: #ffffff;

    --bloom-faq-bg: #4a4117;
    --bloom-cta-yellow: #eab308;
    --bloom-studio-dark: #2e2a1f;

    --font-sans: 'Noto Sans JP', 'Inter', sans-serif;
    --font-headline: 'Noto Serif JP', 'Noto Sans JP', serif;

    --container-max-width: 1320px;
    --container-gutter: 2rem;
    --section-padding: 6.5rem;
    --hero-min-height: 88vh;
    --hero-content-max-width: 720px;
    --card-padding: 2.25rem;
    --card-hover-y: -6px;
    --card-shadow: 0 12px 32px rgba(44, 38, 16, 0.06);
    --card-shadow-hover: 0 18px 40px rgba(44, 38, 16, 0.12);
    --navbar-scrolled-bg: rgba(253, 248, 241, 0.92);
    --navbar-scrolled-blur: 16px;
    --button-shadow: 0 6px 18px rgba(74, 65, 23, 0.28);
    --button-shadow-hover: 0 10px 26px rgba(74, 65, 23, 0.36);
    --site-bg-image: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, rgba(253, 248, 241, 1) 28%);
    --radius-md: 18px;
    --radius-lg: 28px;
}

body.theme-bloom .splash-hero__shade {
    background: linear-gradient(105deg, rgba(253, 248, 241, 0.94) 0%, rgba(253, 248, 241, 0.82) 40%, rgba(253, 248, 241, 0.15) 100%);
}

body.theme-bloom .splash-hero__badge {
    background: var(--secondary);
    color: var(--primary-dark);
    letter-spacing: 0.12em;
}

body.theme-bloom .splash-hero h1 {
    letter-spacing: -0.02em;
    line-height: 1.2;
}

body.theme-bloom .card {
    border: 1px solid rgba(74, 65, 23, 0.08);
    border-radius: var(--radius-lg);
    box-shadow: var(--card-shadow);
}

body.theme-bloom .btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
}

body.theme-bloom .nav-cta.btn-primary {
    background: linear-gradient(135deg, var(--secondary), #d4b84a);
    color: var(--primary-dark);
    box-shadow: 0 4px 14px rgba(201, 162, 39, 0.35);
}

body.theme-bloom .nav-cta.btn-primary:hover {
    color: var(--primary-dark);
}

body.theme-bloom .btn-outline {
    border-color: var(--primary);
    color: var(--primary);
}

body.theme-bloom .teacher-avatar {
    border: 3px solid var(--secondary);
}

/* LP 専用セクション（index/bloom.php） */
body.theme-bloom .bloom-about__media img {
    border-radius: var(--radius-lg);
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    box-shadow: var(--card-shadow);
}

body.theme-bloom .bloom-audience-card {
    padding: 0;
    text-align: center;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

body.theme-bloom .bloom-audience-card:hover {
    transform: translateY(var(--card-hover-y));
    box-shadow: var(--card-shadow-hover);
}

body.theme-bloom .bloom-audience-card__cover {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

body.theme-bloom .bloom-audience-card__cover-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.theme-bloom .course-list--collapsed .course-list__item--extra {
    display: none;
}

body.theme-bloom .course-list__more-wrap {
    text-align: center;
    margin-top: 2.5rem;
}

body.theme-bloom .bloom-audience-card__body {
    padding: var(--card-padding);
}

body.theme-bloom .bloom-studio-band {
    background: var(--bloom-studio-dark);
    color: var(--white);
}

body.theme-bloom .bloom-studio-band h2,
body.theme-bloom .bloom-studio-band h3 {
    color: var(--white);
}

body.theme-bloom .bloom-studio-band .text-on-surface-variant {
    color: rgba(255, 255, 255, 0.78);
}

body.theme-bloom .bloom-studio-band .btn-primary {
    background: linear-gradient(135deg, var(--tertiary), #38bdf8);
    box-shadow: 0 6px 20px rgba(14, 165, 233, 0.35);
}

body.theme-bloom .bloom-faq-band {
    background: var(--bloom-faq-bg);
    color: var(--white);
}

body.theme-bloom .bloom-faq-band h2 {
    color: var(--white);
}

body.theme-bloom .bloom-faq-band .faq-item {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
}

body.theme-bloom .bloom-faq-band .faq-question {
    color: var(--white);
}

body.theme-bloom .bloom-faq-band .faq-answer,
body.theme-bloom .bloom-faq-band .text-on-surface-variant {
    color: rgba(255, 255, 255, 0.82);
}

body.theme-bloom .bloom-faq-band a {
    color: var(--secondary);
}

body.theme-bloom .bloom-final-cta {
    background: var(--bloom-cta-yellow);
    border-radius: 0;
}

body.theme-bloom .bloom-final-cta h2 {
    color: var(--primary-dark);
}

body.theme-bloom .bloom-final-cta .text-on-surface-variant {
    color: var(--on-surface-variant);
}

body.theme-bloom .bloom-final-cta .btn-outline {
    background: var(--white);
    border-color: var(--primary);
}

body.theme-bloom .footer {
    background: var(--surface-container-high);
}
