/* =====================================================
   1. 基本設定
===================================================== */
:root {
    --azuki: #96514d;
    --wakakusa: #abc900;
    --bg-cream: #fdfaf5;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: var(--bg-cream);
    font-family: 'Zen Maru Gothic', sans-serif;
    color: #443333;
    overflow-x: hidden;
	
    background: 
        url("images/bg-paper.jpg") repeat,
        var(--bg-cream);
}


img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* PC / SP 表示制御 */
.pc-only { display: block; }
.sp-only { display: none; }

@media (max-width : 471px ){
    .pc-only { display: none !important; }
    .sp-only { display: flex !important; }
}

/* =====================================================
   2. ヘッダー
===================================================== */
/* ===============================
   ヘッダー全体
=============================== */
.main-header {
  background: #fff;
  border-bottom: 4px solid var(--wakakusa);
}

/* 内側ラッパー */
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between; /* ← これが正解 */
  max-width: 1450px;
  margin: 0 auto;
  padding: 0 40px;
  height: 120px;
}

/* ===============================
   ロゴ
=============================== */
.header-logo img {
  height: 120px;
  border: 2px solid var(--azuki);
  padding: 5px;
}

/* ===============================
   右側まとめ（PC）
=============================== */
.header-right {
  display: flex;
  align-items: center;
  gap: 40px; /* ← 距離は gap で管理 */
}

/* ===============================
   お問い合わせボタン（PC）
=============================== */
.contact-stack {
  display: flex;
  flex-direction: column; /* ← 元に戻す */
  gap: 8px;
}

.contact-stack a {
  width: 210px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 4px;
  text-decoration: none;
}

.btn-mail {
  background: var(--azuki);
}

.btn-x {
  background: #000;
}

/* ===============================
   電話情報（PC）
=============================== */
.info-group {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* 電話番号ブロック */
.tel-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.tel-label {
  font-size: 0.7rem;
  color: #555;
}

.tel-number {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--azuki);
  line-height: 1.1;
}

/* 受付時間 */
.time-block {
  background: #fdf2e9;
  padding: 10px 15px;
  border-radius: 6px;
  border: 1px solid #e6d5d5;
  font-size: 0.8rem;
  line-height: 1.4;
  white-space: nowrap;
}

/* =====================================================
   3. PCナビ
===================================================== */
.main-nav {
    background: var(--azuki);
    position: sticky;
    top: 0;
    z-index: 1000;
}

/* PCグローバルナビ */
.nav-list {
    display: flex;              /* ← これが最重要 */
    justify-content: center;
    max-width: 1450px;
    margin: 0 auto;
    padding: 0;                 /* 念のため */
    list-style: none;           /* 中黒を消す */
}

.nav-item a {
    width: 180px;
    height: 75px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    transition: 0.3s;
}

.nav-item a:hover {
    background: rgba(255,255,255,0.15);
    color: var(--wakakusa);
}
/* 現在ページ（active / current） */
.nav-item.active a,
.nav-item.current a {
    background: #fff;
    color: var(--azuki);
    position: relative;
}

/* 下線アクセント（おすすめ） */
.nav-item.active a::after,
.nav-item.current a::after {
    content: "";
    position: absolute;
    bottom: 10px;
    width: 40px;
    height: 3px;
    background: var(--wakakusa);
    border-radius: 2px;
}
@media screen and (max-width : 471px ){

    /* スマホメニュー内：現在ページ（安全） */
    #sp-menu .nav-item.active a,
    #sp-menu .nav-item.current a {
        color: var(--azuki);
        font-weight: bold;
        position: relative;
        background: none;
    }

    /* 下線アクセント（高さ非干渉） */
    #sp-menu .nav-item.active a::after,
    #sp-menu .nav-item.current a::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: 6px;
        transform: translateX(-50%);
        width: 32px;
        height: 3px;
        background: var(--wakakusa);
        border-radius: 2px;
        pointer-events: none;
    }

}


/* =====================================================
   4. カルーセル（Swiper）
===================================================== */
.hero-section {
    background: #e8e2d8;
    padding: 60px 0;
    overflow: hidden;
}

.mySwiper {
    width: 100%;
    overflow: visible;
}

.swiper-wrapper {
    align-items: center;
}

.swiper-slide {
    width: 420px !important;
    opacity: 0.35;
    transform: scale(0.85);
    transition: 0.6s;
}

.swiper-slide-active {
    opacity: 1 !important;
    transform: scale(1.1) !important;
    z-index: 10;
}

.swiper-slide img {
    background: #fff;
    padding: 10px;
    border: 1px solid var(--azuki);
}
@media screen and (max-width : 471px ){

    /* カルーセル全体の余白調整 */
    .hero-section {
        padding: 30px 0;
    }

    /* スライド幅を少し小さくしてチラ見せ */
    .swiper-slide {
        width: 280px !important;   /* PC:420px → SP:280px */
        opacity: 0.4;
        transform: scale(0.9);
    }

    /* アクティブスライド */
    .swiper-slide-active {
        transform: scale(1);
        opacity: 1;
    }
/* スライド同士の間隔をあける */
    .swiper-slide {
        margin: 0 15px;   /* ← ここがポイント */
    }
}
/* =====================================================
   5. コンセプト
===================================================== */
.concept {
    max-width: 1000px;
    margin: 40px auto;
    text-align: center;
    padding: 0 20px;
}

.concept-text {
    background: #fff;
    padding: 40px;
    border-radius: 15px;
    border: 1px solid #e6d5d5;
    line-height: 2.2;
}

.txt-azuki {
    color: var(--azuki);
    font-weight: bold;
}
/* セクションタイトル：2段構成 */
.section-title {
    text-align: center;
    line-height: 1.2;
	margin: 40px 0 30px;  /* 上下に余白 */
}

.section-title span {
    display: block;          /* 2段目にする */
    margin-top: 6px;
    font-size: 0.7em;        /* 英字を少し小さく */
    letter-spacing: 0.15em;  /* 英字らしさ */
    font-weight: normal;
    color: var(--wakakusa);
}
@media screen and (max-width : 471px ){

    /* コンセプト全体を読みやすく */
    .concept-text {
        padding: 28px 22px;
        line-height: 1.9;
    }

    /* 段落ごとの余白を整理 */
    .concept-text p {
        margin-bottom: 1.4em;
    }

    /* スマホでは強制改行を無効化 */
    .concept-text br {
        display: none;
    }

    /* 強調文は少し締める */
    .concept-text .highlight {
        padding: 18px;
        line-height: 1.8;
    }

    /* リード文 */
    .concept-text .lead {
        font-size: 1.05rem;
    }

    /* 最後の注意文 */
    .concept-text .note {
        margin-top: 16px;
        font-size: 0.85rem;
    }
}
/* 注意文（最強版・上品） */
.concept-text .note {
    display: inline-block;
    margin-top: 28px;
    padding: 14px 26px;
    border: 3px solid var(--azuki);   /* 枠を太く */
    border-radius: 999px;
    font-weight: 900;                 /* 最大太字 */
    font-size: 1.05rem;               /* 少し大きく */
    color: #fff;
    background: var(--azuki);         /* 反転 */
    letter-spacing: 0.08em;           /* 視認性UP */
    box-shadow: 0 4px 12px rgba(150,81,77,0.35);
}

.concept-image {
    max-width: 1000px;
    margin: 40px auto 0;
    padding: 0 20px;
    text-align: center;
}

.concept-image img {
    width: 100%;
    height: auto;
    border-radius: 15px;
}

/* =====================================================
   6. CGIエリア
===================================================== */
.cgi-area-wrapper {
    max-width: 1200px;
    margin: 60px auto;
    padding: 0 20px;
}

.flex-cgi-area {
  display: flex;
  align-items: flex-start; /* ← これが重要 */
  gap: 24px;
}

.flex-cgi-area section {
  margin: 0;
  padding: 0;
}

.flex-cgi-area h3 {
  margin: 0 0 16px;
  padding: 0;
  text-align: center;
}


.news,
.today-cast {
    flex: 1;
    background: #fff;
    padding: 20px;
    border-radius: 15px;
    border-top: 6px solid var(--wakakusa);
}

.cgi-container,
.today-cast-frame {
  margin-top: 0;
}


.cgi-iframe {
    width: 100%;
    height: 100%;
    border: none;
}
/* 新着情報エリア */
.news {
  width: 100%;
}

/* iframe ラッパー */
.cgi-container {
  width: 100%;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

/* iframe 本体 */
.cgi-container iframe {
  width: 100%;
  height: 320px;   /* ← 中身に合わせて調整 */
  border: none;
  display: block;
}
/* CGIエリア全体のレスポンシブ設定 */
@media screen and (max-width : 471px ){
    /* 2つ並んでいるセクションを縦に並べ、幅を100%にする */
    .flex-cgi-area {
        display: block !important;
        width: 100% !important;
    }

    .news, .today-cast {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-bottom: 30px; /* セクション間の隙間 */
    }

    /* iframeを囲むコンテナの幅を統一 */
    .cgi-container, 
    .today-cast-frame {
        width: 100% !important;
        padding: 0 !important;
        overflow: hidden;
    }

    /* iframe自体の横幅を画面いっぱいに広げる */
    .cgi-container iframe,
    .today-cast-frame iframe {
        width: 100% !important;
        min-width: 100% !important;
        border: none;
        /* 高さが足りない場合は、中身に合わせて調整してください */
        min-height: 400px; 
    }
}
/* =====================================================
   7. フッター
===================================================== */
.main-footer {
    background: var(--azuki);
    color: #fff;
    text-align: center;
    padding: 10px 0;
}

/* =====================================================
   8. ページトップ
===================================================== */
.page-top-btn {
    position: fixed;
    right: 20px;
    bottom: 100px;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: 0.5s;
}

.page-top-btn.active {
    opacity: 1;
    visibility: visible;
}

#page-top-btn a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    background: var(--azuki);
    color: #fff;
    border-radius: 50%;
    text-decoration: none;
    text-align: center;
    line-height: 1.1;
    font-size: 12px;
}

/* =====================================================
   9. スマホ対応
===================================================== */
@media (max-width : 471px ){

    .header-inner {
        height: 70px;
        padding: 0 15px;
    }

    /* ロゴを少し大きく */
    .header-logo img {
        height: 58px;   /* 50px → 58px */
		margin-left: 15px;
    }


    /* ハンバーガー */
    .menu-btn {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 50px;
        height: 50px;
        cursor: pointer;
		margin-right: 25px;
    }

    .hamburger-icon {
        width: 25px;
        height: 18px;
        position: relative;
        margin-bottom: 4px;
    }

    .hamburger-icon span {
        position: absolute;
        width: 100%;
        height: 2px;
        background: var(--azuki);
        left: 0;
    }

    .hamburger-icon span:nth-child(1) { top: 0; }
    .hamburger-icon span:nth-child(2) { top: 8px; }
    .hamburger-icon span:nth-child(3) { top: 16px; }

    .menu-label {
        font-size: 10px;
        font-weight: bold;
        color: var(--azuki);
    }

    /* スマホナビ */
    #sp-nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 70%;
        height: 100vh;
        background: #fff;
        z-index: 2000;
        transition: right 0.4s ease;
        box-shadow: -4px 0 10px rgba(0,0,0,0.1);
    }

    #sp-nav.active {
        right: 0;
    }

    .sp-nav-list {
        list-style: none;
        padding: 60px 20px;
    }

    .sp-nav-list li {
        margin-bottom: 20px;
    }

    .sp-nav-list a {
        font-size: 1.1rem;
        color: var(--azuki);
        font-weight: bold;
        text-decoration: none;
    }

    /* CGI SP縦並び */
    .flex-cgi-area {
        flex-direction: column;
    }
}
/* ===== ページトップボタン 強制固定（最終保険） ===== */
#page-top-btn {
    position: fixed !important;
    right: 20px !important;
    bottom: 100px !important;
    z-index: 9999 !important;
}
/* ===== 注意事項 ===== */

.notice {
    max-width: 1000px;
    margin: 80px auto;
    padding: 0 20px;
}

.notice-title {
    text-align: center;
    font-size: 1.6rem;
    margin-bottom: 30px;
}

.notice-box {
    background: #fff;
    border: 2px solid var(--azuki);
    border-radius: 16px;
    padding: 30px;
    line-height: 1.9;
}

.notice-lead {
    font-weight: bold;
    margin-bottom: 20px;
}

.notice-sub {
    margin: 30px 0 10px;
    color: var(--azuki);
    font-size: 1.1rem;
}

.notice-list {
    margin: 15px 0 20px;
    padding-left: 1.2em;
}

.notice-list li {
    margin-bottom: 8px;
}

.notice-list.danger li {
    color: #b00000;
    font-weight: bold;
}

.notice-final {
    margin-top: 30px;
    font-weight: bold;
}

.notice-law {
    margin-top: 20px;
    font-size: 0.9rem;
    color: #555;
}
.page-title {
    margin: 30px 0;
    text-align: center;
}

.confirm-table {
    width: 100%;
    max-width: 700px;
    margin: 0 auto 30px;
    border-collapse: collapse;
}

.confirm-table th,
.confirm-table td {
    border: 1px solid #ccc;
    padding: 10px;
    vertical-align: top;
}

.confirm-table th {
    width: 30%;
    background: #f5f5f5;
}

.button-area {
    display: flex;
    justify-content: space-between;
    max-width: 700px;
    margin: 0 auto;
}

.button-area.center {
    justify-content: center;
}

.btn-back,
.btn-submit {
    padding: 10px 20px;
    text-decoration: none;
}
/* 見出し＋訂正ボタン */
.confirm-header {
    position: relative;
    max-width: 700px;
    margin: 30px auto;
    text-align: center;
}

.confirm-header .btn-edit {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #0073aa;
    cursor: pointer;
    font-size: 14px;
}
/* スマホ表示用の修正（画面幅768px以下の場合） */
@media screen and (max-width : 471px ){
    
    /* 以前設定した100pxのマージンをリセットして中央へ */
    .contact-stack, 
    .info-group {
        margin-left: 0 !important;
        padding-left: 15px;
        padding-right: 15px;
        width: 100% !important;
        box-sizing: border-box;
    }

    /* フォームや確認画面のコンテナ幅を自動調整 */
    .form-container, 
    form, 
    table {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* テーブル（確認画面）の項目と内容を縦並びにする */
    table th, 
    table td {
        display: block;
        width: 100% !important;
        text-align: left !important;
        box-sizing: border-box;
    }
    
    table th {
        background: #f8f8f8; /* 項目名を見やすく */
        padding: 5px 10px;
    }
}
/* ボタンエリア */
.button-area {
    display: flex;
    gap: 15px;
    max-width: 700px;
    margin: 30px auto;
}

/* PC：横並び */
@media screen and (min-width: 769px) {
    .button-area {
        justify-content: space-between;
    }
}

/* スマホ：縦並び */
@media screen and (max-width : 471px ){
    .button-area {
        flex-direction: column;
    }
}
.form-row,
.form-content {
    overflow: visible;
}
/* 本日の出勤表 全体 */
.today-cast {
  max-width: 1000px;
  margin: 40px auto;
  padding: 0 16px;
}

.today-cast h3 {
  font-size: 20px;
  text-align: center;
  margin-bottom: 16px;
}

/* iframe ラッパー */
.today-cast-frame {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

/* iframe 本体 */
.today-cast-frame iframe {
  width: 100%;
  height: 900px; /* ← 中身に合わせて調整 */
  border: none;
  display: block;
}
@media (max-width : 471px ){
  .today-cast-frame iframe {
    height: 1200px; /* スマホは縦が長くなりがち */
  }
}
/* PC表示の時、お問い合わせボタンと電話番号ブロックの間に100pxの隙間を作る */
.contact-stack {
    margin-left: 100px !important;
}

.info-group {
    margin-left: 100px !important;
}

/* ナビ下の各セクションの余白を一律に揃える */
section.system,
section.cast,
section.schedule {
    padding-top: 10px;    /* 任意：ナビからの距離（内側） */
    margin-bottom: 20px;  /* 任意：セクション間の距離 */
}

/* モバイル表示の時は少し余白を詰める */
@media (max-width : 471px ){
    section.system,
    section.cast,
    section.schedule {
        padding-top: 40px;
    }
}

/* ナビゲーション下の余白を全ページ一律で詰める設定 */
.system-page,
.cast-page,
.schedule-page,
.recruit-container,
.contact-confirm-container {
    margin-top: 20px !important; /* ここの数値（20px）を調整して好きな隙間にしてください */
    padding-top: 0 !important;
}

/* 各セクションのタイトルとナビの間の隙間もリセット */
.system-page section,
.cast-page section,
.schedule-page section {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* タイトル自体の上の余白も揃える */
.section-title, 
.recruit-title, 
.contact-confirm-title {
    margin-top: 0 !important;
    padding-top: 10px; /* タイトルの上の少しのゆとり */
}

/* スマホ版ヘッダーの崩れを修正 */
@media screen and (max-width : 471px ){
    /* コンテナの余白がヘッダーに干渉するのを防ぐ */
    .recruit-container {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    /* ヘッダー内部の要素を中央に揃え直す */
    .main-header .header-inner {
        padding: 10px 15px !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }

    /* 記憶にあるマージン設定をスマホではリセット（はみ出し防止） */
    .contact-stack, 
    .info-group {
        margin-left: 0 !important;
    }
    
    /* ロゴのサイズ調整 */
    .header-logo img {
        height: 50px !important; /* ロゴが大きすぎる場合はここで調整 */
        width: auto !important;
    }
}

/* common.css の一番下に追記 */
@media screen and (max-width : 471px ){
    /* スマホの時はメール・Xボタンの塊を完全に消す */
    .contact-stack.pc-only {
        display: none !important;
    }
}

/* スマホメニュー内のメール・Xリンク専用スタイル */
.sp-contact-item {
    border-top: 1px solid #eee; /* 上に区切り線を入れる */
    margin-top: 10px;
}

.sp-contact-item a {
    color: #96514d !important; /* あずき色にする */
    font-weight: bold !important;
    font-size: 0.95rem;
    padding: 15px 20px !important;
    display: block;
}

/* Xのリンクだけ色を変える場合（お好みで） */
.sp-contact-item a[href*="x.com"] {
    color: #000 !important; /* Xロゴに合わせて黒 */
}
