/*========================================
  共通カラー
========================================*/
:root {
    --color-red: #D61619;
    --color-red-dark: #b21a1a;
    --color-black: #151515;
    --color-white: #FFFFFF;
    --color-base: #F2F2F2;
    --color-orange: #d8861a;
    --color-green: #5d7a4f;
    font-size:16px;
    letter-spacing: -0.03em;
}

/*========================================
  フォント指定
========================================*/
body {
    font-family: "Oswald", "Noto Sans JP", sans-serif;
    background-color: #F2F2F2;
}

/*========================================
  共通
========================================*/
.bold-text {
    font-weight: bold;
}

.h2title {
    font-size: 48px;
    font-weight: bold;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    /* 垂直中心 */
}

.h2title:after {
    content: "";
    height: 3px;
    flex-grow: 1;
    background-color: #666;
    margin-right: 1em;
    /* 線の右隣 */
    margin-left: 1em;
    /* 線の左隣 */
}

.c-section {
    padding: 50px 0;
}

/*========================================
    ヘッダーセクション
  ========================================*/
.header__navbar {
    background: #fff;
    padding: 10px 20px;
}

.header__brand {
    display: flex;
    align-items: center;
    padding: 0;
}

.header__brand-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    margin-top: -5px;
}

.header__logo {
    height: 80px;
    margin-right: 16px;
}

.header__festival-text {
    font-size: 14px;
    line-height: 1.4;
}

.header__title {
    font-size: 16px;
    font-weight: bold;
}

.h2subtitle {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 25px;
}

/*========================================
    Menuボタンセクション
  ========================================*/
.menu {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999;
}

.menu__link {
    display: inline-flex;
    background-color: var(--color-black);
    text-decoration: none;
    border: 1px solid var(--color-black);
    margin-top: 0;
    width:80px;
    height:95px;
    align-items:center;
    justify-content:center;
}

.menu__icon {
    width: 20px;
    height: 20px;
    margin-right: 5px;
}

.menu__text {
    font-size: 14px;
    color: var(--color-white);
}

/*========================================
    モーダルセクション
  ========================================*/
.menu__overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    z-index: 9998;
    overflow-y: scroll;
}

.menu__overlay.is-active {
    display: block;
}

.menu__modal {
    background-color: #fff;
    margin-top: 30px;
    padding: 20px;
    border-radius: 4px;
    position: relative;
}

.menu__modal-content {
    margin-top: 20px;
}

.menu__modal-logo {
    display: block;
    width: 20%;
    margin-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
}

.menu__modal-logo-gibier {
    display: block;
    width: 100%;
    margin-top: 5px;
    margin-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
}

.menu__modal-festival-name {
    font-size: 14px;
    font-weight: bold;
    margin: 5px 0;
    text-align: center;
}

.menu__modal-festival-date {
    font-size: 14px;
    margin-bottom: 15px;
    text-align: center;
}

.menu__modal-btn {
    display: block;
    margin-bottom: 10px;
}

.menu__modal-list {
    margin: 0;
    padding: 0;
}

.menu__modal-item {
    margin-bottom: 10px;
    border-bottom: 1px solid var(--color-black);
    padding-top: 15px;
    padding-bottom: 15px;
}

.menu__modal-item a {
    display: flex;
    color: #333;
    text-decoration: none;
    font-size: 16px;
    justify-content: space-between;
}

.menu__modal-bottom {
    margin-top: 30px;
}

.menu__modal-banner {
    text-align: center;
    margin-bottom: 20px;
}

.menu__modal-banner p {
    margin-bottom: 10px;
}

/*-------------------------------------
  ボタン共通スタイル (Block: "button")
--------------------------------------*/
.button {
    border: none;
    display: inline-flex;
    align-items: center;
    padding: 0px;
    font-size: 16px;
    cursor: pointer;
    width: 100%;
    margin-top: 5px;
}

/* ボタンの中のアイコン要素 (Element: "button__icon") */
.button__icon {
    margin-right: 10px;
    width: 30px;
    height: 30px;
}

/* ボタンの中のテキスト要素 (Element: "button__text") */
.button__text {
    text-align: center;
}

/*-------------------------------------
    ボタンバリエーション (Modifier)
  --------------------------------------*/

/* ボランティア用ボタン (Modifier: "--volunteer") */
.button--volunteer {
    padding:0;
    padding-bottom: 10px;
}

/* ボタンとテキストの間の縦線 */
.button__vline--volunteer {}

/* スポンサー用ボタン (Modifier: "--sponsor") */
.button--sponsor {
    padding:0;
    padding-bottom: 10px;
}

/* ボタンとテキストの間の縦線 */
.button__vline--sponsor {}

/*========================================
    固定要素（ボランティアボタン）
  ========================================*/
.volunteer--fixed {
    position: fixed;
    bottom: 5px;
    padding: 0px;
    z-index: 1000;
    margin-bottom: 0px;
}

.button_fixed {
    border: none;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    padding: 0px;
    font-size: 16px;
    cursor: pointer;
    right: 0;
}

/*========================================
    Topボタン・グリッドメニューセクション
  ========================================*/
.top-buttons-left{
    padding: 0px 20px;
}
.grid-menu-section {
    margin-top: 20px;
}
.grid-menu table {
    margin: auto;
}
.grid-menu__item {
    padding: 5px !important;
    border-top: 0 !important;
    border-style:none !important;
}
.grid-menu__button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 90px;
    background-color: var(--color-white);
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    text-align: center;
    font-family: Arial, sans-serif;
}

.grid-menu__button img {
    width: 28px;
    height: 28px;
    margin-bottom: 8px;
}

.grid-menu__button p {
    margin: 0;
    font-size: 12px;
    font-weight: bold;
    color: var(--color-black);
}

/*========================================
    ボタン（黒）のカスタムスタイル
  ========================================*/
.button--black {
    background-color: var(--color-black);
    color: var(--color-white);
    padding: 10px 20px;
    border: none;
    font-size: 14px;
    border-radius: 0px;
}

.button--contact {
    width: 100%;
    padding: 20px;
}

.button--black:hover {
    background-color: #333;
}

.social-links-section {
    margin: 15px 30px;
}
.social-links-section img{
    width: 30px;
}
.gallary__pretext{
    display: inline-block;
    /* border: 1px solid #888; */
    padding: 5px 10px;
    text-decoration: underline;
    margin: 10px 0;
    font-size: 12px;
    color: #000;
 }
/*========================================
    NEWSセクション
  ========================================*/
.news-section {}

.news-section__title {
    font-size: 42px;
    font-weight: bold;
    margin-bottom: 10px;
}

.news-section__subtitle {
    font-size: 16px;
    color: #666;
}

.news-section__list {
    list-style: none;
    padding: 0;
    column-count: 2;
}

.news-section__item {
    border-bottom: 1px solid #ddd;
    padding: 10px 0;
}

.news-section__date {
    font-size: 14px;
    color: #666;
    margin-right: 10px;
}

.news-section__tag {
    background-color: #ddd;
    padding: 3px 6px;
    font-size: 12px;
    border-radius: 3px;
}

.news-section__text {
    font-weight: bold;
    margin-top: 5px;
}

/*========================================
    フェスティバルセクション
  ========================================*/
.festival {
    text-align: center;
}

.festival__img {
    width: 100%;
    height: auto;
}

.festival__logo {
    position: absolute;
    bottom: 10px;
    right: 10px;
    width: 100px;
}

.festival__content {
    padding: 0 40px;
}

.festival__title {
    margin-top: 13px;
    margin-bottom: 30px;
    font-size: 36px;
    font-weight: bold;
    line-height: 1.2;
}

.festival__title--highlight {
    color: var(--color-red);
}

.festival__title--year {
    font-size: 30px;
}

.festival__subtitle {
    font-size: 18px;
    color: #666;
}

.festival__info {
    margin-left:20px;
    margin: 4px auto;
    background-color: var(--color-black);
    color: var(--color-white);
    padding: 2px;
    display: inline-block;
    border-radius: 2px;
}

.festival__date {
    font-size: 24px;
    font-weight: bold;
}

.festival__date--small {
    font-size: 14px;
    vertical-align: super;
}

.festival__location {
    font-size: 16px;
    margin-top: 5px;
}

/*========================================
    ABOUT USセクション
  ========================================*/
.about-section {}

.about__content {}

.about__title {}

.about__subtitle {}

.about__text {
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 15px;
}

.about__highlight {
    color: var(--color-red);
    font-weight: bold;
}

.about__button {
    display: inline-block;
    background-color: var(--color-black);
    color: var(--color-white);
    padding: 10px 15px;
    font-size: 16px;
    text-decoration: none;
    margin: 20px 0;
    border-radius: 5px;
}

.about__button:hover {
    background-color: #333;
}

.about__image img {
    border-radius: 5px;
}

/*========================================
    INFORMATIONセクション
  ========================================*/
.info-section {
    background-color: #111;
    color: #fff;
}

.info__title {}

.info__subtitle {}

.info__box {
    background-color: #222;
    text-align: center;
    padding: 15px;
    border: 1px solid #fff;
    height: 180px;
    margin-bottom: 20px;
}

.info__icon {
    width: 40px;
    height: auto;
    margin: 10px;
}

.info__box-title {
    font-size: 18px;
    font-weight: bold;
    margin: auto;
}

.info__box-subtitle {
    font-size: 14px;
    margin: auto;
}

.info__banner {
    text-align: center;
}

.info__banner-img {
    width: 100%;
    height: 180px;
}

/*========================================
    ACCESSセクション
  ========================================*/
.access-section {
    background-color: #f8f8f8;
}

.access__title {}

.access__subtitle {}

.access__divider {
    border-top: 2px solid #000;
    margin-bottom: 20px;
}

.access__map iframe {
    width: 100%;
    height: 450px;
    border: 0;
}

.access__buttons {
    display: flex;
    flex-wrap: wrap;
}

.access__button {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--color-black);
    color: var(--color-white);
    padding: 15px;
    margin: 20px 0;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
}

.access__button:hover {
    background-color: #333;
}

.access__button .glyphicon {
    margin-left: 10px;
}

/*========================================
    GOODSセクション
  ========================================*/
.goods-section {}

.goods__title {}

.goods__subtitle {}

.goods__description {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 15px;
    margin-top: 30px;
}

.goods__images {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.goods__image {
    width: 100%;
}

.goods__button {
    text-align: center;
    font-weight: bold;
    margin-top: 30px;
}

/*========================================
    GALLERYセクション
  ========================================*/
.gallary-section {
    background-color: rgba(0,0,0,0.5);
    background-image: url(../img/top/bgimg_gallery.png);
    background-blend-mode: darken;
    background-size: cover;
    color: #fff;
}

.gallary__title {
    font-size: 48px;
    font-weight: bold;
    margin-bottom: 10px;
}

.gallary__subtitle {
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 25px;
}

.gallary__button {
    display: inline-block;
    align-items: center;
    border: 1px solid #fff;
    color: var(--color-white);
    padding: 15px 30px;
    text-decoration: none;
    margin: 20px 0;
    font-size: 16px;
    width: 50%;
}

.gallary__button:hover {
    background-color: #333;
}

.gallary__button .glyphicon {
    margin-left: 10px;
}

.gallary__all {
    color: var(--color-white);
    text-decoration: underline;
}

/*========================================
    フッターセクション
  ========================================*/
.footer a {
    color: var(--color-white);
}

.sponsor-section {
    padding: 50px 15px;
    background-color: #CCCCCC;
}
.sponsor-section > div{
    padding: 5px 0px;
}

.sponsor-section img {
    width: 100%;
    max-width: 250px;
    height: auto;
    padding: 10px 0;
}
.banner-section h3{
    color: var(--color-white);
    font-size: 20px;
}

.footer__content {
    padding: 20px 0;
}

.footer__info {
    text-align: left;
    margin-bottom: 50px;
}

.footer__fes {
    display: flex;
}

.footer__logo {
    width: 12%;
    margin: 10px;
}

.footer__fes div {
    margin-top: 30px;
}

.footer__menu {
    margin-bottom: 150px;
}

.footer__small-text {
    padding: 15px;
}

.footer__small-text p {
    font-size: 12px;
    display: inline;
    margin: 0 3px;
}

.footer__small-text a {
    color: var(--color-black);
}

.footer__small-text a:hover {
    text-decoration: underline;
}

.footer__links {
    list-style: none;
    padding: 0;
}

.footer__link-item {
    margin-bottom: 5px;
}

.footer__link-item a {
    color: var(--color-black);
    /* 白文字に */
    text-decoration: none;
    /* 下線を消す */
}

.footer__link-item a:hover {
    text-decoration: underline;
}

.footer__ad-banner {
    width: 100%;
    max-width: 200px;
}

.footer__copylight {
    font-size: 12px;
    color: var(--color-black);
}

/*--------------------------------------
  SNSセクション (Block: sns-section)
---------------------------------------*/
.sns-section {
    background-color: #000;
    /* 背景色：黒 */
    padding: 20px 0;
    /* 上下余白 */
}

.sns-section__item {
    border: 1px solid #fff;
    /* 枠線：白 */
    text-align: center;
    /* 中央寄せ */
    padding: 20px;
    /* 余白 */
    margin-bottom: 20px;
    /* カード同士の間隔 */
    display: flex;
    /* 横並びに配置 */
    align-items: center;
    /* 垂直方向の中央揃え */
    height: 80px;
    margin-left: 15px;
    margin-right: 15px;
}

.sns-section__icon {
    display: block;
    margin: 0 auto 10px;
    /* 画像を中央寄せ、下に余白 */
    max-width: 100%;
    /* アイコンサイズを調整 */
}

.sns-section__text {
    color: #fff;
    /* テキストカラー：白 */
    font-size: 16px;
    margin: 0;
    /* p要素のデフォルト余白をリセット */
}

/*--------------------------------------
    バナーセクション (Block: banner-section)
  ---------------------------------------*/
.banner-section {
    background-color: #000;
    /* 背景色：黒 */
    padding: 20px 0;
    /* 上下余白 */
}

.banner-section__image {
    display: block;
    margin: 0 auto;
    /* 画像を中央寄せ */
    max-width: 100%;
    /* 親要素に合わせて縮小 */
    margin: 15px;
}

/*========================================
  フェスティバルセクション (Festival Section)
========================================*/
.festival {
    position: relative;
    text-align: center;
}

/* スライドショー用の Carousel カスタムスタイル */
/* Carousel 全体 */
.festival__carousel {
    margin:15px 40px;
}

/* インジケーターの位置調整（必要に応じて変更） */
.festival__carousel-indicators {
    bottom: 10px;
}

/* スライドごとの画像 */
.festival__carousel-inner .festival__carousel-item {
    /* 高さやオーバーフローはお好みで */
}

.festival__img {
    width: 100%;
    height: auto;
}


/******************************************************************************************************************************/
@media screen and (max-width: 640px) {
    .h2title {
        font-size: 40px;
        font-weight: bold;
        margin-bottom: 10px;
    }

    .h2title:after {
        height: 0px;
    }

    .h2subtitle {
        font-size: 16px;
        font-weight: bold;
        margin-bottom: 25px;
    }

    .info__box--event {
        height: 80px;
        margin: 15px 0;
        display: flex;
    }

    .info__box--event .info__box-title {
        width: 50%;
    }

    .info__box--event .info__box-subtitle {
        font-size: 12px;
        width: 50%;
    }

    .gallary__button {
        width: 80%;
    }

    #twitter {
        padding-right: 25px;
    }

    .festival__carousel {
        margin:5px 0px;
    }
    .festival__content {
        padding: 0 0px;
    }
    .news-section__list {
        column-count: 1;
    }
}

/* =================================
   下層ページタイトルセクション
   ================================= */
.subpage__title--section {
    text-align: left;
    margin: 30px 0;
    padding: 20px 0;
}

.subpage__title {
    font-size: 48px;
    font-weight: bold;
    margin: 0;
    text-align: left;
}

.subpage__subtitle {
    font-size: 18px;
    margin-top: 10px;
    color: #555;
}

/* =================================
     ナビゲーションセクション
     ================================= */
.volunteer-nav {
    margin: 20px 0;
    text-align: left;
    /* 必要に応じて調整 */
}

/* タイトル（"参加までの流れ"） */
.volunteer-nav__title {
    font-size: 18px;
    color: #333;
    font-weight: bold;
    margin-bottom: 0;
    display: inline-block;
    /* 矢印アイコンを右側に配置するため */
    position: relative;
}

/* 矢印アイコン (CSSで▼を再現) */
.volunteer-nav__icon {
    display: inline-block;
    margin-left: 5px;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #333;
    /* ▼の色 */
    vertical-align: middle;
}

/* 下線 */
.volunteer-nav__divider {
    margin-top: 5px;
    border-color: #333;
    /* 線の色 */
}

.menu__modal-item {
    margin-bottom: 10px;
    border-bottom: 1px solid var(--color-black);
    padding-top: 15px;
    padding-bottom: 15px;
}

.menu__modal-item a {
    display: flex;
    color: #333;
    text-decoration: none;
    font-size: 16px;
    justify-content: space-between;
}

.menu__modal-item span {
    margin-top: auto;
    margin-bottom: auto;
}

.menu__modal-list {
    margin: 0;
    padding: 0;
}

/* =================================
   バナーセクション (画像不使用)
   ================================= */
/* =================================
   バナーセクション (画像不使用・背景はコンテナ内に限定)
   ================================= */
.volunteer-banner {
    /* セクション自体は全幅でもOK、背景色は付けずコンテナの幅に合わせる */
    margin-bottom: 40px;
}

.volunteer-banner__wrap {
    background-color: #ddd;
    /* 背景色はコンテナ内の要素に適用 */
    text-align: center;
    padding: 20px 0;
    /* 上下の余白 */
    /* 必要に応じて左右のパディングも追加可能 */
}

.volunteer-banner__title {
    font-size: 16px;
    font-weight: normal;
    display: inline-block;
    position: relative;
    margin: 0;
}

/* →アイコン */
.volunteer-banner__icon {
    display: inline-block;
    margin-left: 5px;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 5px solid #333;
    /* →の色 */
    vertical-align: middle;
}

/* =================================
   ボランティア情報セクション
   ================================= */
.volunteer-info {
    margin: 40px 0;
    /* 全体の文字行間などを調整したい場合 */
    /* line-height: 1.8; */
}

/* レイアウト全体 */
.volunteer-info__content {
    /* rowに対しての追加設定があれば記述 */
}

/* 左側テキスト */
.volunteer-info__text p {
    margin-bottom: 20px;
}

/* 右側の仮画像領域 */
.volunteer-info__image-wrap {
    /* 必要に応じて調整 */
    text-align: center;
}

/* 右側の画像領域 */
.volunteer-info__image-wrap {
    text-align: center;
    /* 必要に応じて余白等調整 */
}

/****************************************************************************
 * activity-section
 * 活動内容セクションに関するスタイル
 ****************************************************************************/
.activity-section {
    padding: 40px 0;
}

.activity-section__container {
    /* Bootstrapの.containerを利用 */
}

.activity-section__title {
    margin-bottom: 20px;
    font-size: 24px;
    font-weight: bold;
    text-align: left;
}

/* 活動内容グループ全体 */
.activity-section__group {
    background-color: #f8f8f8;
    /* 枠線 */
    padding: 20px;
    text-align: left;
}

/* 活動内容(Step)のテキスト */
.activity-section__step {
    font-size: 13px;
    margin: 0;
    font-weight: bold;
}

/* 活動内容のテキスト */
.activity-section__text {
    font-size: 16px;
    margin: 0;
    font-weight: bold;
}

.activity-detail {
    margin-top: 20px;
}

/* volunteer__container: Bootstrap .container を拡張する場合 */
.volunteer__container {
    /* 追加でレイアウト調整が必要であれば記述 */
}

/* =========================================
     アコーディオン全体
  ========================================= */
.volunteer__accordion {
    /* パネルグループ全体のマージンなどを調整する場合に使用 */
}

/* =========================================
     アコーディオン内のパネル
  ========================================= */
.volunteer__accordion-panel {
    /* パネル全体のスタイルを追加する場合に使用 */
    margin-bottom: 10px;
    /* パネル間の間隔 */
    background-color: #fff;
    /* 背景色を白に設定 */
}

/* パネルのヘッダ部分 */
.volunteer__accordion-panel-heading {
    /* 見出し部分の背景色や余白などを調整したい場合に使用 */
}

/* パネルタイトル（見出しテキスト） */
.volunteer__accordion-panel-title {
    /* タイトルテキストのスタイル */
    margin: 0;
}

/* パネルボディ部分 */
.volunteer__accordion-panel-body {
    /* コンテンツ部分の余白や文字スタイルなどを調整 */
    padding: 15px;
}

/* イメージ */
.volunteer__image {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 10px auto;
}

/* =========================================
     プラス／マイナスアイコンの制御
     Bootstrap の collapse で、.collapsed が付くかどうかで
     開閉状態を判定できる
  ========================================= */

/* 全てのリンクにデフォルトでプラスを表示 */
.volunteer__accordion-panel-title a::after {
    content: "+";
    float: right;
    font-size: 20px;
    line-height: 20px;
    /* 必要に応じて余白や色などを調整 */
}

/* パネルが開いている場合（.collapsed が付かない状態）はマイナスに切り替え */
.volunteer__accordion-panel-title a:not(.collapsed)::after {
    content: "-";
}

/* 矢印ラップ（Glyphicon用） */
.p-volunteerFlow__arrowWrap {
    margin-top: 5px;
    margin-bottom: 5px;
    text-align: center;
}

/* Glyphiconによる矢印スタイル */
.p-volunteerFlow__arrow {
    font-size: 24px;
    /* 矢印アイコンのサイズ調整 */
    color: #333;
    /* 必要に応じて色を調整 */
}

.font-color_red {
    color: #C30A0A;
    text-decoration: underline;
}

.calendar-section__title {
    margin-bottom: 20px;
    font-size: 20px;
    font-weight: bold;
    text-align: left;
}

/********************************
 * 当日の案内セクション (Block)
 ********************************/
/* Block本体 */
.p-dayInfo {
    margin-bottom: 15px;
    /* セクション間の余白調整 */
}

/* タイトル（h1） */
.p-dayInfo__title {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 20px;
}

/* 太字のテキスト */
.p-dayInfo__bold {
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 20px;
    font-weight: bold;
}

/* リストのテキスト */
.p-dayInfo__list {
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 5px;
    font-weight: bold;
}

/* 通常のテキスト */
.p-dayInfo__text {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 10px;
}

/* リンク本体 */
.p-dayInfo__link {
    font-size: 16px;
    /* 例: リンクのフォントサイズ */
    text-decoration: none;
    color: #333;
    vertical-align: middle;
    text-decoration: underline;
    /* テキストと画像を同じ縦位置に */
}

.p-dayInfo__link:hover,
.p-dayInfo__link:focus {
    text-decoration: underline;
    color: #0a00c0;
}

/********************************
   * サブセクション (Element)
   ********************************/
.p-dayInfo__section {
    margin-bottom: 30px;
    /* セクション間の余白 */
}

/* サブタイトル（h2） */
.p-dayInfo__subTitle {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 20px;
    border-left: 2px solid #333;
    padding: 0.1em 0 0.1em 0.7em;
}

/********************************
 * リンクとアイコンの調整
 ********************************/

/* アイコン画像 */
.p-dayInfo__icon {
    height: 1.4em;
    /* リンクのフォントサイズに合わせる */
    width: auto;
    /* 幅は自動調整 */
    vertical-align: middle;
    /* テキストと同じ縦位置に揃える */
    margin-left: 5px;
    /* リンクと画像の間に余白を追加 */
}

/********************************
 * Googleカレンダーレスポンシブ対応
 ********************************/
.googleCalendar iframe {
    width: 100%;
    height: 400px;
}

@media all and (min-width: 768px) {
    .googleCalendar iframe {
        height: 600px;
    }
}
/********************************
 * サブページ共通
 ********************************/
.subpage__main--section{
}
.subpage__main--section h2{
}
.subpage__main--section h3{
    border-bottom: 2px solid #000;
    padding-bottom: 10px;
}
.subpage__part--section{
    margin-top: 20px;
    margin-bottom: 50px;
}
.subpage__part--section a img{
    margin-top: 5px;
    margin-bottom: 10px;
}

/********************************
 * ENTRY
 ********************************/
/* 通常のテキスト */
.p-normal__text {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 10px;
}

/**
 * table
 */
/* メイン */
.defTbl-main {
    width: 100%;
    border-collapse: separate;
    border-spacing: 2px;
}

.defTbl-main th {
    padding: 8px;
    text-align: left;
    font-weight: normal;
    vertical-align: top;
    width: 20%;
}

.defTbl-main td {
    padding: 8px;
}

/* 同意 */
.defTbl-consent {
    width: 100%;
    border-collapse: separate;
    border-spacing: 2px;
    margin-top: 10px;
}

.defTbl-consent td {
    padding: 8px;
}

/* 注意事項 */
.defTbl-caution {
    width: 100%;
    border-collapse: separate;
    border-spacing: 2px;
    margin-top: 10px;
}

.defTbl-caution td {
    padding: 8px;
}

.required__column {
    width: 10%;
    vertical-align: top;
}

.vform__note {
    margin-top: 10px;
}

.vform_radio {
    vertical-align: top;
}

.vform__spam {
    margin-top: 30px;
    margin-bottom: 100px;
}

.vform_submit {
    margin-top: 10px;
    text-align: center;
}

.vform_submit-btn {
    background-color: var(--color-red);
    color: var(--color-white);
    border: none;
    padding: 24px 24px;
    /* 高さ・横幅は適宜調整 */
    font-size: 16px;
    cursor: pointer;
    font-weight: bold;
    width: 340px;
    height: 70px;
    /* ホバー時のフィルター変化をスムーズに */
    transition: filter 0.2s ease;
}

.vform_submit-btn:hover {
    background-color: var(--color-red-dark);
}

#privacy {
    height: 20em;
    overflow: auto;
    padding: 5px;
    border: 1px solid #ccc;
}

#pages article p {
    margin-bottom: 1.5em;
}

/**
 * table
 */
.defTbl {
    width: 100%;
    border-collapse: separate;
    border-spacing: 2px;
}

.defTbl th {
    padding: 8px;
    background: #f9e8e8;
    text-align: left;
    font-weight: normal;
    vertical-align: top;
    width: 50%;
}

.defTbl td {
    padding: 0px;
}


/********************************
 * SPONSOR
 ********************************/
.sponsor__title {
    margin-bottom: 20px;
    font-size: 24px;
    font-weight: bold;
    text-align: left;
}

.sponsor__subtitle {
    margin-bottom: 20px;
    font-size: 20px;
    font-weight: bold;
    text-align: left;
}

/* 太字のテキスト */
.sponsor__bold {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 20px;
    font-weight: bold;
}

/* リストのテキスト */
.sponsor__list {
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 5px;
    font-weight: bold;
}

/* 通常のテキスト */
.sponsor__text {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 10px;
}

/* PC 表示時は固定幅 300px */
.sponsor__button {
    display: block;
    /* ブロック要素にして余白コントロールしやすく */
    width: 300px;
    max-width: 100%;
    /* 画面幅が狭いときはそれ以下に縮む */
}

/* スマホ（画面幅 300px 以下）の場合は幅 100% */
@media (max-width: 640px) {
    .sponsor__button {
        width: 100%;
    }
}

.sponsor__group {
    background-color: #f8f8f8;
    /* 枠線 */
    padding: 30px;
    text-align: left;
    margin-top: 30px;
}

/* sponsor-personal ブロック全体 */
.sponsor-personal {
    margin-bottom: 30px;
}

/* ヘッダー：タイトルと価格を同じ行に */
.sponsor-personal__header {
    align-items: center;
    /* row の要素を上下中央揃え */
    margin-bottom: 10px;
    margin-top: 40px;
    display: flex;
}

/* タイトル */
.sponsor-personal__title {
    font-weight: bold;
    font-size: 16px;
}

/* 価格バッジ */
.sponsor-personal__price {
    background-color: #000;
    color: #fff;
    font-size: 16px;
    padding: 6px 15px;
    display: inline-block;
    text-align: center;
    font-weight: bold;
    width: auto;
    margin-left: 20px;
}

/* 区切り線 */
.sponsor-personal__divider {
    border: none;
    border-top: 2px solid #333;
    margin: 0 0 15px;
}

/* 説明文 */
.sponsor-personal__desc {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 15px;
}

/* 注釈テキスト */
.sponsor-personal__note {
    font-size: 14px;
    margin-bottom: 20px;
    font-weight: bold;
}

.sponsor__listgroup {
    padding: 20px;
    text-align: left;
    margin-top: 30px;
    margin-bottom: 30px;
    border: 1px solid #C8C8C8;
}

.sponsor__listgroup-title {
    font-size: 14px;
    font-weight: bold;
}

.sponsor__listgroup-list {
    color: #C8C8C8;
    padding-left: 20px
}

.sponsor__listgroup-list span {
    color: var(--color-black);
    font-weight: bold;
    font-size: 14px;
}

/* PC 表示時は固定幅 300px */
.sponsor__photo {
    display: block;
    /* ブロック要素にして余白コントロールしやすく */
    width: 500px;
    max-width: 100%;
    /* 画面幅が狭いときはそれ以下に縮む */
}

/* PC 表示時は固定幅 300px */
.sponsor__photo2 {
    display: block;
    /* ブロック要素にして余白コントロールしやすく */
    width: 800px;
    max-width: 100%;
    /* 画面幅が狭いときはそれ以下に縮む */
}

.sponsor__photo-col {
    margin-top: 10px;
}

/* スマホ（画面幅 300px 以下）の場合は幅 100% */
@media (max-width: 640px) {

    .sponsor__photo {
        width: 100%;
    }

    .sponsor__photo2 {
        width: 100%;
    }
}

/********************************
 * オクトーバージビエ
 ********************************/
.font-color_orange {
    color: var(--color-orange);
}

.font-color_green {
    color: var(--color-green);
}

.border-color-orange {
    border: 4px solid var(--color-orange);
}

.border-color-green {
    border: 4px solid var(--color-green);
}

.fes_summary {
    min-height: 280px;
    margin: 0 3px;
}
.food-shopname{
    font-size: large;
    font-weight: bold;
    margin-bottom: 1px;
}
.food-shopname-sub{
    font-size: x-small;
    flood-color: #919191;
}
.food-onecoin{
    min-height: 65px;
    padding: 10px;
}
.food-info{
    padding: 5px;
    font-size: small;
    min-height: 165px;
}
/**
 * Common design
 */
.pc {
    display: block;
}

.sp {
    display: none;
}

img.pc {
    display: inline;
}

@media screen and (max-width: 640px) {

    .pc,
    img.pc {
        display: none !important;
    }

    .sp {
        display: block;
    }
}

/********************************
 * 共通ー使いまわし
 ********************************/
.redback{
  background-color: #d60000;
  color: white;
  padding: 15px;
  text-align: center;
  margin: 15px 0;
}
.linebox{
  padding: 20px;
  margin: 15px auto;
  border: 1px solid #ccc;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.title-underbar {
    border-bottom: 2px solid black;
    padding-bottom: 10px;
}
.mt-05 {
    margin-top: 5px;
}

.mt-10 {
    margin-top: 10px;
}

