/*
Theme Name: Nichibukai / KARATE KIDS
Theme URI: https://karateschool-hbahdggh.manus.space/
Author: Nichibukai
Description: 子ども向け空手スクール「Nichibukai / KARATE KIDS」公式サイト用クラシックテーマ。静的なブランド表現を保ちつつ、WordPress固定ページへ移植しやすい構成。
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: nichibukai
*/

:root{--red:#ff0000;--red-dark:#c90000;--green:#008000;--ink:#1a1a1a;--paper:#f8f4eb;--line:#dedbd3;--shell:1176px;--header:132px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:Inter,"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:16px;line-height:1.8}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button,input,textarea,select{font:inherit}.site-shell{width:min(var(--shell),calc(100% - 48px));margin-inline:auto}.site-header{position:fixed;z-index:50;top:24px;left:24px;right:24px;height:84px;border-radius:96px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 10px 32px rgba(0,0,0,.08)}.site-brand img{width:158px;height:auto}.site-nav{display:flex;gap:24px;align-items:center;font-size:13px;font-weight:700}.site-nav a:hover{color:var(--red)}.site-header-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:54px;padding:13px 24px;border-radius:999px;background:var(--red);color:#fff;font-weight:800;line-height:1.3}.site-header-cta{min-width:176px}.button:hover,.site-header-cta:hover{background:var(--red-dark);color:#fff}.button--white{background:#fff;color:var(--red)}.button--white:hover{background:#fff4f4;color:var(--red-dark)}.arrow{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:currentColor;color:#fff;font-size:22px;line-height:1}.button--white .arrow{background:var(--red)}.mobile-toggle{display:none;background:none;border:0;font-size:24px}.hero{position:relative;isolation:isolate;min-height:974px;display:flex;align-items:center;overflow:hidden;background:var(--red);color:#fff;padding:180px 0 120px}.hero-media,.hero-overlay{position:absolute;inset:0}.hero-media{width:100%;height:100%;object-fit:cover;z-index:-2;filter:grayscale(.25);opacity:.55}.hero-overlay{z-index:-1;background:rgba(255,0,0,.7)}.hero-content{position:relative}.hero-kicker{display:inline-block;background:#fff;color:var(--red);padding:6px 14px;border-radius:999px;font-weight:800;font-size:14px}.hero h1{max-width:780px;margin:48px 0 24px;font-size:clamp(58px,7.4vw,100px);line-height:1.1;letter-spacing:-.08em}.hero-lead{font-size:clamp(18px,2vw,22px);font-weight:700}.hero-cta{position:absolute;right:0;bottom:110px;width:290px;padding:20px 24px;border-radius:96px;background:#fff;color:var(--red);display:flex;align-items:center;gap:16px;font-weight:800;box-shadow:0 10px 22px rgba(0,0,0,.14)}.hero-cta .arrow{flex:none;background:var(--red)}.hero-cta small{display:block;font-size:15px;letter-spacing:.1em}.hero-cta strong{display:block;font-size:20px;line-height:1.35}.section{padding:112px 0}.section--paper{background:var(--paper)}.section--green{background:var(--green);color:#fff}.section--red{background:var(--red);color:#fff}.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.section h2{margin:22px 0;font-size:clamp(36px,4vw,56px);line-height:1.45;letter-spacing:-.05em}.section p{font-weight:500}.kicker{font-size:14px;font-weight:800;letter-spacing:.14em}.outline-word{font-size:clamp(64px,11vw,180px);font-weight:900;line-height:.9;letter-spacing:-.1em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.25)}.image-frame{position:relative;overflow:hidden;border:10px solid var(--green);background:#eee}.image-frame img{width:100%;height:100%;object-fit:cover}.image-frame--tall{height:650px}.trial-frame{height:560px;border:10px solid var(--green);position:relative}.trial-frame:before{content:"";position:absolute;left:-12px;top:-12px;width:88%;height:85%;background:var(--red)}.trial-frame img{position:relative;z-index:1;width:92%;height:100%;margin-left:auto;object-fit:cover;object-position:53% center;border:10px solid var(--green)}.trial-label{position:absolute;z-index:2;left:0;bottom:0;background:var(--red);color:#fff;padding:16px 22px;font-size:28px;font-weight:900;line-height:.85}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.course-card{position:relative}.course-card-image{height:420px;position:relative;overflow:hidden;border:7px solid var(--paper)}.course-card-image:before{content:"";position:absolute;left:0;top:-24px;width:86%;height:80%;background:var(--red)}.course-card:nth-child(2) .course-card-image:before{background:var(--green)}.course-card-image img{position:relative;width:100%;height:100%;object-fit:cover;object-position:53% center}.course-card-label{position:absolute;bottom:0;left:0;background:var(--ink);color:#fff;padding:12px 18px;font-size:24px;font-weight:900}.course-card h3{font-size:26px;line-height:1.4}.course-price{border-top:1px solid var(--ink);padding-top:12px;color:var(--red);font-size:23px;font-weight:900}.page-hero{padding:220px 0 100px;background:var(--red);color:#fff}.page-hero h1{font-size:clamp(42px,6vw,82px);line-height:1.1;letter-spacing:-.06em}.page-content{padding:100px 0}.info-list{border-top:1px solid currentColor}.info-row{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:20px 0}.form-grid{display:grid;gap:18px;max-width:720px}.form-grid label{display:grid;gap:7px;font-weight:700}.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:1px solid #bbb;padding:13px 14px;background:#fff}.form-grid textarea{min-height:160px}.site-footer{padding:70px 0;background:var(--red);color:#fff}.site-footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}.site-footer img{width:94px}.site-footer a{text-decoration:underline;text-underline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:820px){.site-header{top:12px;left:12px;right:12px;height:72px;padding:0 20px}.site-brand img{width:130px}.site-nav,.site-header-cta{display:none}.mobile-toggle{display:block}.site-shell{width:min(var(--shell),calc(100% - 40px))}.hero{min-height:812px;padding:150px 0 100px}.hero h1{font-size:clamp(48px,13vw,64px);margin-top:36px}.hero-cta{left:20px;right:auto;bottom:84px;width:290px}.section,.page-content{padding:76px 0}.section-grid{grid-template-columns:1fr;gap:44px}.image-frame--tall{height:460px}.trial-frame{height:460px}.course-grid{grid-template-columns:1fr;gap:48px}.course-card-image{height:390px}.site-footer-grid{grid-template-columns:1fr 1fr}.page-hero{padding:150px 0 64px}.page-hero h1{font-size:48px}.info-row{display:grid;gap:4px}.outline-word{font-size:74px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media{display:none}.course-card-image img{transition:none}}

.mobile-menu{display:none}.mobile-menu summary{list-style:none;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu-panel{position:absolute;top:84px;right:0;width:min(300px,calc(100vw - 24px));padding:22px;background:#fff;color:var(--ink);border-radius:20px;box-shadow:0 14px 32px rgba(0,0,0,.16)}.mobile-menu-panel a{display:block;padding:9px 0;font-weight:700}.mobile-menu-panel .site-header-cta{display:flex;color:#fff;margin-top:12px}.mobile-menu-panel .arrow{color:#fff;background:var(--red)}
@media(max-width:820px){.mobile-menu{display:block;position:relative}.mobile-menu-panel .site-header-cta{display:flex}.mobile-menu-panel .site-header-cta .arrow{display:inline-flex}.mobile-menu-panel .arrow{display:inline-flex}.site-header .mobile-menu-panel .site-nav{display:block}}

/* ==========================================================================
   追加・改修用スタイル（要件17, 18対応）
   ========================================================================== */

/* --- 追従ヘッダー調整（要件17） --- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.site-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 24px;
    max-width: 1200px;
    margin: 0 auto;
}

/* スマホ表示時のヘッダー高さを小さく */
@media (max-width: 768px) {
    .site-header-inner {
        padding: 8px 16px;
    }
    .site-logo-text {
        font-size: 0.95rem;
        font-weight: bold;
    }
}

/* 単語途中での不自然な改行を抑止 */
.no-wrap-text,
.site-footer p,
.hero-cta strong,
section h2 {
    word-break: keep-all;
    overflow-wrap: anywhere;
}

/* --- フッター構造（要件18） --- */
.site-footer {
    background-color: #222;
    color: #fff;
    padding: 60px 0 20px;
    font-size: 0.9rem;
}

.site-footer a {
    color: #ccc;
    text-decoration: none;
    transition: color 0.2s;
}

.site-footer a:hover {
    color: #fff;
}

.footer-inner {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
}

.footer-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.footer-col-title {
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    color: #888;
    margin-bottom: 12px;
    font-weight: bold;
}

.footer-col-sub {
    margin-top: 20px;
}

.footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-col li {
    margin-bottom: 10px;
}

.footer-bottom {
    border-top: 1px solid #333;
    margin-top: 40px;
    padding-top: 20px;
    text-align: center;
    font-size: 0.8rem;
    color: #777;
}

/* スマホ表示時のフッター（要件17：縦方向配置） */
@media (max-width: 768px) {
    .footer-inner {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .footer-cols {
        grid-template-columns: 1fr; /* MENU, CONTACT, LEGALを縦並びに */
        gap: 28px;
    }
}

/* 正方形ロゴ調整 */
.footer-logo-link {
    display: inline-block;
    margin-bottom: 12px;
}

.footer-logo-img {
    width: 68px;
    height: 68px;
    object-fit: contain;
}

