/* ==========================================================
   responsive-768.css
   タブレット縦（max-width: 768px）向けレスポンシブ上書き
   Figma座標の絶対配置をやめ、各セクションをFlexboxによる
   縦積みレイアウトに再構成する。フォントサイズもcqw比例をやめ
   固定remで可読性を確保する。
========================================================== */

@media (max-width: 768px) {

  /* ----------------------------------------------------------
     header / hero
  ---------------------------------------------------------- */

  .hero__content {
    aspect-ratio: 1920.46 / 2495.72;
  }

  .hero__title {
    top: 1.8823%;
    height: 38.2158%;
  }

  .hero__tagline {
    top: 3.5567%;
    height: 15.8766%;
  }

  .hero__date {
    top: 39.1157%;
  }

  .hero__place {
    top: 42.5769%;
  }

  .hero__banner--left,
  .hero__banner--right {
    left: 16%;
    width: 68%;
    height: auto;
  }

  .hero__banner--left {
    top: 44.6563%;
    aspect-ratio: 1234 / 552;
  }

  .hero__banner--right {
    top: 69.6658%;
    aspect-ratio: 1248 / 552;
  }

  /* nav（横並びバー＋背景）はFigmaにSP用フレームが無く768px以下では
     判読できないため非表示にし、ハンバーガーメニューに置き換える */
  .nav {
    display: none;
  }

  .nav-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1000;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: none;
    border-radius: 0.4rem;
    background: #004d60;
    cursor: pointer;
  }

  .nav-toggle__bar {
    display: block;
    width: 1.4rem;
    height: 2px;
    background: #fff;
  }

  .nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1) {
    transform: translateY(0.4rem) rotate(45deg);
  }

  .nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) {
    opacity: 0;
  }

  .nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3) {
    transform: translateY(-0.4rem) rotate(-45deg);
  }

  .mobile-nav {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: #004d60;
    overflow-y: auto;
  }

  .mobile-nav[aria-hidden="false"] {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .mobile-nav__list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    width: 100%;
    padding: 5rem 1.5rem 3rem;
    box-sizing: border-box;
  }

  .mobile-nav__link {
    position: relative;
    display: block;
    width: 12rem;
  }

  .mobile-nav__icon {
    width: 100%;
    height: auto;
  }

  .mobile-nav__label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 400;
    font-size: 0.95rem;
    line-height: 1.3;
    text-align: center;
  }

  body.nav-open {
    overflow: hidden;
  }

  /* ----------------------------------------------------------
     sec1: 趣旨文 + 連動プログラムロゴ
  ---------------------------------------------------------- */

  /* デスクトップでは本文が中央の狭い列に収まり、うさぎ・鳥はその外側に
     配置される設計だが、768px以下で本文が全幅になると重なる／不自然な
     余白が生じるため、このブレークポイントでは背景イラストを非表示にする */
  .sec1__bg {
    display: none;
  }

  /* cqw比例のフォントサイズだと768px以下で文字が小さくなりすぎるため、
     他セクション同様アスペクト比固定をやめてFlexboxの縦積みに変更し、
     固定remで可読性を確保する */
  .sec1__content {
    aspect-ratio: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    padding: 8% 6%;
    box-sizing: border-box;
  }

  .sec1__lead {
    position: static;
    width: 100%;
    font-size: 0.95rem;
    line-height: 1.8;
  }

  .sec1__badges {
    position: static;
    width: 100%;
    height: auto;
    flex-wrap: nowrap;
    gap: 1rem;
  }

  /* 3枚は画像自体の縦横比が異なる（562x454 / 491x454 / 543x454）ため、
     幅を均等にすると高さが揃わず中央だけ大きく見える。
     実画像の比率に合わせて幅配分し、高さが揃うようにする */
  .sec1__badges li:nth-child(1) {
    flex: 0 1 29.58%;
  }

  .sec1__badges li:nth-child(2) {
    flex: 0 1 25.84%;
  }

  .sec1__badges li:nth-child(3) {
    flex: 0 1 28.58%;
  }

  .sec1__badges img {
    width: 100%;
    height: auto;
  }

  /* ----------------------------------------------------------
     sec2: 開催概要
  ---------------------------------------------------------- */

  .sec2__line {
    top: 20px;
  }

  /* 影付きカードの装飾divは実カードに置き換えるため非表示 */
  .sec2__card-shadow,
  .sec2__card {
    display: none;
  }

  /* .sec2__contentを画面幅いっぱいの白背景にすると背後の.sec2__bg写真が
     完全に隠れるため、周囲に余白を持たせたカードとして中央配置する */
  .sec2__content {
    aspect-ratio: auto;
    width: 90%;
    margin: 10.42% auto 6%;
    padding: 6% 5%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  }

  .sec2__title,
  .sec2__about {
    position: static;
    width: 60%;
    height: auto;
  }

  .sec2__about {
    width: 40%;
    margin-bottom: 0.4rem;
  }

  .sec2 .sec2__label,
  .sec2 .sec2__value {
    position: static;
    width: auto;
    height: auto;
    white-space: nowrap;
  }

  .sec2 .sec2__label {
    font-size: 0.75rem;
    padding: 0.15rem 0.8rem;
    margin-top: 0.5rem;
    border-radius: 0.6rem;
  }

  .sec2 .sec2__value {
    text-align: center;
  }

  .sec2__num-lg { font-size: 1.5rem; }
  .sec2__num-sm { font-size: 1rem; }
  .sec2__num-md { font-size: 1.2rem; }
  .sec2__unit { font-size: 0.9rem; }

  .sec2__value--place,
  .sec2__value--fee {
    font-size: 1.1rem;
  }

  .sec2__value--addr,
  .sec2__value--org {
    font-size: 0.8rem;
  }

  .sec2__map-btn {
    position: static;
    width: auto;
    height: auto;
    min-height: 44px;
    padding: 0 1.2rem;
    font-size: 0.85rem;
    margin-top: 0.3rem;
  }

  /* ----------------------------------------------------------
     sec3: ステージコンテンツ
  ---------------------------------------------------------- */

  .sec3__grid {
    width: 94%;
  }

  .event-card:not(.event-card--wide) .event-card__title {
    font-size: 1.1rem;
  }

  .event-card:not(.event-card--wide) .event-card__subtitle {
    font-size: 0.75rem;
  }

  .event-card:not(.event-card--wide) .event-card__desc {
    font-size: 0.8rem;
    line-height: 1.5;
  }

  .event-card .event-card__num-lg { font-size: 1rem; }
  .event-card .event-card__num-sm { font-size: 0.75rem; }
  .event-card .event-card__num-md { font-size: 0.85rem; }
  .event-card .event-card__date-note { font-size: 0.75rem; line-height: 1.4; }

  /* フォントサイズをcqwから固定remに変えたため、日付ブロックの幅もcqw固定値だと
     文字より狭くなり時間側と重なる。幅は内容に合わせて可変にする
     （card5も縦積みレイアウトになったため対象に含める） */
  .event-card .event-card__date-day {
    width: auto;
    margin-right: 0.4rem;
  }

  /* card1〜4: 絶対配置のまま拡大すると間延びするため、通常カードも
     写真→タイトル→本文→日時の縦積みフローに変更する */
  .event-card:not(.event-card--wide) {
    aspect-ratio: auto;
    display: flex;
    flex-direction: column;
    padding: 5%;
    box-sizing: border-box;
  }

  .sec3 .event-card:not(.event-card--wide) .event-card__photo,
  .sec3 .event-card:not(.event-card--wide) .card6__namebox,
  .sec3 .event-card:not(.event-card--wide) .event-card__title,
  .sec3 .event-card:not(.event-card--wide) .event-card__subtitle,
  .sec3 .event-card:not(.event-card--wide) .event-card__desc,
  .sec3 .event-card:not(.event-card--wide) .event-card__date {
    position: static;
    width: auto;
    height: auto;
  }

  .sec3 .event-card:not(.event-card--wide) .event-card__photo,
  .sec3 .event-card:not(.event-card--wide) .card6__namebox {
    width: 100%;
    margin-bottom: 0.6rem;
  }

  .sec3 .event-card:not(.event-card--wide) .event-card__title { margin-bottom: 0.2rem; }
  .sec3 .event-card:not(.event-card--wide) .event-card__subtitle { margin-bottom: 0.5rem; }
  .sec3 .event-card:not(.event-card--wide) .event-card__desc { margin-bottom: 0.6rem; }
  .sec3 .event-card:not(.event-card--wide) .event-card__date { width: 100%; padding: 0.3rem 0.6rem; }
  .sec3 .event-card:not(.event-card--wide) .event-card__date:not(:last-child) { margin-bottom: 0.5rem; }

  .card1__photo { aspect-ratio: 1054 / 791; }
  .card2__photo { aspect-ratio: 1054 / 702; }
  .card3__photo { aspect-ratio: 1054 / 703; }
  .card4__photo { aspect-ratio: 1054 / 686; }
  .card6__namebox { aspect-ratio: 2115 / 1281; }

  /* card5（STVラジオ）はカード1〜4と同じく枠画像＋内側グラデーションdivを
     表示したまま、写真とテキストを上下積みにする（枠画像はobject-fit:cover
     により縦横比を保って表示される） */
  .event-card.event-card--wide {
    aspect-ratio: auto;
    display: flex;
    flex-direction: column;
    padding: 5% 5% 8%;
    box-sizing: border-box;
  }

  .card5__photo,
  .card5__label,
  .card5__subtitle,
  .card5__desc,
  .card5__personality,
  .card5__personality-role,
  .card5__personality-name,
  .card5__date,
  .card5__host-role,
  .card5__bio-name,
  .card5__bio-kana,
  .card5__bio-photo,
  .card5__bio-desc,
  .card5__guest-role,
  .card5__guest-photo,
  .card5__guest-org,
  .card5__guest-name {
    position: static;
    width: 100% !important;
  }

  .card5__photo,
  .card5__bio-photo,
  .card5__guest-photo {
    height: auto !important;
  }

  .card5__photo {
    width: 55% !important;
    aspect-ratio: 950 / 1292;
    margin: 1.2rem auto 0.6rem;
  }

  .card5__label { font-size: 1.1rem; margin-bottom: 0.1rem; }
  .card5__subtitle { font-size: 1.1rem; margin-bottom: 0.5rem; }
  .card5__desc { font-size: 0.8rem; line-height: 1.5; margin-bottom: 0.6rem; }

  .card5__personality { margin-bottom: 0.6rem; }
  .card5__personality-role { font-size: 0.85rem; }
  .card5__personality-name { font-size: 1rem; }

  .card5__date {
    width: auto !important;
    height: auto;
    padding: 0.3rem 0.6rem;
    margin-bottom: 0.8rem;
  }

  /* 司会・ゲスト講師の2ブロックを横並びにする */
  .card5__staff {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
  }

  .card5__host-block {
    display: flex;
    flex-direction: column;
    flex: 3;
    min-width: 0;
  }

  .card5__guest-block {
    display: flex;
    flex-direction: column;
    flex: 2;
    min-width: 0;
  }

  /* 司会（松本裕子）: PCでは写真の横にテキストが並ぶため、横並びの小カードとして再現する */
  .card5__host-role { font-size: 0.75rem; margin-bottom: 0.3rem; }

  .card5__bio-row {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin-bottom: 0.4rem;
  }

  .card5__bio-text {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
  }

  .card5__bio-name { font-size: 0.9rem; }
  .card5__bio-kana { font-size: 0.75rem; }
  .card5__bio-desc { font-size: 0.8rem; line-height: 1.5; }

  /* ゲスト講師（川村久恵）: 司会と同じ写真+テキスト横並びの小カードにする */
  .card5__guest-role { font-size: 0.75rem; margin-bottom: 0.3rem; }

  .card5__guest-row {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
  }

  .card5__guest-text {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
  }

  .card5__guest-org { font-size: 0.75rem; }
  .card5__guest-name { font-size: 0.9rem; }

  .card5__bio-photo,
  .card5__guest-photo {
    width: 5.5rem !important;
    height: auto;
    aspect-ratio: 3 / 4;
    flex-shrink: 0;
  }

  /* ----------------------------------------------------------
     sec4: アイヌ文化体験コーナー
  ---------------------------------------------------------- */

  .sec4__line {
    top: 37px;
  }

  .sec4__content {
    aspect-ratio: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 14% 0 4%;
  }

  .sec4__base {
    display: none;
  }

  .sec4__title {
    position: static;
    width: 70%;
    margin-top: 10px;
    margin-bottom: 50px;
  }

  .sec4-box {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 90%;
    box-sizing: border-box;
    background: #fff;
    border-radius: 1rem;
    padding: 5%;
    margin-bottom: 1rem;
  }

  /* .sec4-boxがposition:relativeになったことで、PC基準のleft/top（各box◯-box用の
     絶対座標）が相対オフセットとして効いてしまうため無効化する */
  .sec4__box1-box,
  .sec4__box2-box,
  .sec4__box3-box,
  .sec4__box4-box,
  .sec4__box5-box,
  .sec4__box6-box,
  .sec4__box7-box {
    left: auto;
    top: auto;
    height: auto;
  }

  /* 同様に各箱の.sec4__boxN-badgeにもPC基準のleftが残っており、
     .sec4-box__badgeで統一したright指定と競合して無効化されるため解除する */
  .sec4__box1-badge,
  .sec4__box2-badge,
  .sec4__box3-badge,
  .sec4__box4-badge,
  .sec4__box5-badge,
  .sec4__box6-badge,
  .sec4__box7-badge,
  .sec4__box8-badge {
    left: auto;
  }

  .sec4 .sec4-box__title,
  .sec4 .sec4-box__subtitle,
  .sec4 .sec4-box__photo,
  .sec4 .sec4-box__desc,
  .sec4 .sec4-box__date,
  .sec4 .sec4-box__badge,
  .sec4 .sec4-box__yoyaku {
    position: static;
    width: auto;
    height: auto;
  }

  .sec4 .sec4-box__title { font-size: 1.4rem; margin-bottom: 0.3rem; }
  .sec4 .sec4-box__subtitle { font-size: 1rem; margin-bottom: 0.7rem; }
  .sec4 .sec4-box__photo { width: 100%; margin-bottom: 0.6rem; }
  .sec4 .sec4-box__desc { font-size: 1rem; line-height: 1.6; margin-bottom: 0.6rem; }
  .sec4 .sec4-box__date { width: 100%; font-size: 0.9rem; padding: 0.4rem 0.8rem; margin-bottom: 0.4rem; }

  /* 日付・時間の数字（event-card__num-*）はsec3側の固定remとは別スコープなので、
     sec4専用にサイズと幅を調整する */
  .sec4 .event-card__date-day { width: auto; margin-right: 0.5rem; }
  .sec4 .event-card__num-lg { font-size: 1.2rem; }
  .sec4 .event-card__num-sm { font-size: 0.9rem; }
  .sec4 .event-card__num-md { font-size: 1.05rem; }
  .sec4 .sec4-box__badge { position: absolute; top: 10%; right: 2%; width: 3.4rem; height: 3.4rem; }
  .sec4 .sec4__box6-badge { top: 15%; right: 2%; }
  .sec4 .sec4-box__badge span { font-size: 0.95rem; }
  .sec4 .sec4-box__yoyaku { min-height: 44px; font-size: 0.95rem; padding: 0 0.8rem; }

  /* 写真枠の比率はPC版のFigma座標（width%÷height%）から算出した値を使う。
     object-fit:coverで実画像をこの比率にクロップして見せる設計のため、
     生の画像比率に合わせるとPC版と切り取られ方が変わってしまう */
  .sec4__box1-photo,
  .sec4__box2-photo,
  .sec4__box4-photo,
  .sec4__box6-photo,
  .sec4__box7-photo {
    aspect-ratio: 1.6544 / 1;
  }

  .sec4__box5-photo { aspect-ratio: 1.599 / 1; background: #b5b5b6; }

  /* box3: 2枚の写真は横並びのまま維持（PC座標では2枚とも同じ枠比率） */
  .sec4__box3-photo_a,
  .sec4__box3-photo_b {
    position: static;
    width: 48% !important;
    aspect-ratio: 0.819 / 1;
  }

  .sec4-box__photo.sec4__box3-photo_a,
  .sec4-box__photo.sec4__box3-photo_b {
    display: inline-block;
  }

  .sec4__box3-box {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .sec4__box3-box .sec4-box__title,
  .sec4__box3-box .sec4-box__subtitle,
  .sec4__box3-box .sec4-box__desc,
  .sec4__box3-box .sec4__box3-credit,
  .sec4__box3-box .sec4-box__date {
    width: 100% !important;
  }

  /* PC文面用の強制改行はこの幅では折返し位置がずれて不自然な段落ちになるため解除する */
  .sec4__box3-credit-br {
    display: none;
  }

  .sec4__box3-credit {
    position: static;
    font-size: 0.8rem;
    margin-bottom: 0.4rem;
  }

  /* box8: KAMUYGATE VR体験の案内box（専用マークアップ） */
  .sec4__box8-box {
    display: none;
  }

  .sec4__box8-box + .sec4-box {
    background: #c4e7eb;
  }

  .sec4__box8-line1,
  .sec4__box8-line2,
  .sec4__box8-line3,
  .sec4__box8-line3b,
  .sec4__box8-line4,
  .sec4__box8-vrlabel,
  .sec4__box8-photo,
  .sec4__box8-caption,
  .sec4__box8-date_sat,
  .sec4__box8-date_sun {
    position: static;
    width: auto;
    height: auto;
  }

  .sec4__box8-line1,
  .sec4__box8-line2,
  .sec4__box8-line4 { font-size: 1.1rem; }
  .sec4__box8-line3 { font-size: 1.5rem; }
  .sec4__box8-vrlabel {
    display: inline-flex;
    padding: 0.3rem 0.8rem;
    font-size: 0.85rem;
    margin: 0.4rem 0;
  }
  .sec4__box8-photo { width: 100%; aspect-ratio: 1.9464 / 1; margin-bottom: 0.6rem; }
  .sec4__box8-caption { font-size: 0.85rem; line-height: 1.6; margin-bottom: 0.6rem; }
  .sec4__box8-date_sat,
  .sec4__box8-date_sun {
    display: flex;
    align-self: flex-start;
    font-size: 0.8rem;
    padding: 0.3rem 0.6rem;
    margin-bottom: 0.3rem;
  }

  /* 焚き火コーナー（専用マークアップ） */
  .sec4__takibi {
    display: none;
  }

  .sec4__takibi + .sec4-box {
    background: #fef0df;
  }

  .sec4__takibi-title,
  .sec4__takibi-desc,
  .sec4__takibi-date,
  .sec4__takibi-note,
  .sec4__takibi-illust {
    position: static;
    width: auto;
    height: auto;
  }

  .sec4__takibi-title { font-size: 1.5rem; margin-bottom: 0.4rem; }
  .sec4__takibi-desc { font-size: 0.85rem; line-height: 1.6; margin-bottom: 0.6rem; }
  .sec4__takibi-date {
    display: flex;
    align-self: flex-start;
    font-size: 0.8rem;
    padding: 0.3rem 0.6rem;
    margin-bottom: 0.3rem;
  }
  .sec4__takibi-note { font-size: 0.75rem; margin-bottom: 0.6rem; }
  .sec4__takibi-illust { width: 60%; }

  /* ----------------------------------------------------------
     sec5: グルメ・お酒
  ---------------------------------------------------------- */

  /* sec4がコンテンツ量に応じて高さが変わるため、継ぎ目の吸収幅を広げて
     前セクションとの間に白い隙間線が出ないようにする */
  .sec5__bg {
    top: -3px;
    height: calc(100% + 6px);
  }

  /* 全幅要素（見出し・イントロ・日付・大将バー・ブロガー紹介）は
     grid-column:1/-1 で1列にまたがせ、gourmet-boxのみ2カラムで
     自動配置させる（flex-wrapの回り込み崩れを避けるためGridを使用） */
  .sec5__content {
    aspect-ratio: auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 4%;
    row-gap: 0.2rem;
    padding: 5% 3%;
    box-sizing: border-box;
  }

  .sec5__subtitle,
  .sec5__title,
  .sec5__intro,
  .sec5__date--sat,
  .sec5__date--sun,
  .sec5__osaka-title,
  .sec5__osaka-desc,
  .sec5__osaka-credit,
  .sec5__blogger-photo,
  .sec5__blogger-logo,
  .sec5__blogger-desc {
    position: static;
    grid-column: 1 / -1;
    width: 100% !important;
    height: auto;
  }

  .sec5__subtitle,
  .sec5__title {
    width: 45% !important;
    margin: 0 auto 0.4rem;
  }

  .sec5__intro {
    font-size: 0.85rem;
    margin-bottom: 0.6rem;
  }

  .sec5__date--sat,
  .sec5__date--sun {
    display: flex;
    width: auto !important;
    font-size: 0.8rem;
    padding: 0.3rem 0.6rem;
    margin-bottom: 0.3rem;
  }

  .sec5 .event-card__date-day { width: auto; margin-right: 0.5rem; }
  .sec5 .event-card__num-lg { font-size: 1.2rem; }
  .sec5 .event-card__num-sm { font-size: 0.9rem; }
  .sec5 .event-card__num-md { font-size: 1.05rem; }

  .gourmet-box {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 1rem;
    padding: 5%;
    box-sizing: border-box;
  }

  .sec5 .gourmet-box__card,
  .sec5 .gourmet-box__photo,
  .sec5 .gourmet-box__title,
  .sec5 .gourmet-box__subtitle {
    position: static;
    width: auto;
    height: auto;
  }

  .sec5 .gourmet-box__card {
    display: none;
  }

  .sec5 .gourmet-box__photo {
    width: 100%;
    aspect-ratio: 710 / 700;
    margin-bottom: 0.4rem;
  }

  .sec5 .gourmet-box__title {
    font-size: 0.95rem;
    margin-bottom: 0.2rem;
  }

  .sec5 .gourmet-box__subtitle {
    font-size: 0.75rem;
    line-height: 1.5;
  }

  /* osaka-barは実際の見出し・説明文とは別の装飾用空divのため非表示にし、
     代わりに.sec5__osaka-groupで見出し・説明文・クレジットをまとめて
     PC版と同じ白枠線の中に収める */
  .sec5__osaka-bar {
    display: none;
  }

  .sec5__osaka-group {
    display: block;
    grid-column: 1 / -1;
    border: 2px solid #fff;
    border-radius: 1rem;
    padding: 0.8rem 1rem;
    margin-top: 0.4rem;
    text-align: center;
  }

  .sec5__osaka-title {
    grid-column: auto;
    width: auto !important;
    font-size: 1rem;
  }
  .sec5__osaka-desc { grid-column: auto; width: auto !important; font-size: 0.85rem; margin-top: 0.2rem; }
  .sec5__osaka-credit { grid-column: auto; width: auto !important; font-size: 0.75rem; margin-top: 0.4rem; }

  .sec5__blogger-photo,
  .sec5__blogger-logo {
    width: 40% !important;
    margin: 0.4rem auto;
  }

  .sec5__blogger-desc {
    font-size: 0.85rem;
    line-height: 1.6;
    text-align: center;
  }

  /* ----------------------------------------------------------
     sec6: イベントスケジュール
  ---------------------------------------------------------- */

  .sec6__bg {
    top: -3px;
    height: calc(100% + 6px);
  }

  .sec6__line {
    top: 58px;
    z-index: 1;
  }

  .sec6__content {
    aspect-ratio: auto;
    padding: 20% 3% 4%;
    box-sizing: border-box;
  }

  .sec6__title {
    position: static;
    width: 70%;
    margin: 0 auto 1rem;
  }

  .sec6__date {
    position: static;
    display: inline-block;
    margin-bottom: 0.15rem;
  }

  .sec6__num-lg { font-size: 1.5rem; }
  .sec6__num-sm { font-size: 1rem; }

  .sec6__time {
    display: block;
    margin-left: 0;
    margin-top: 0.2rem;
    font-size: 1.15rem;
    font-weight: 700;
  }

  /* sat/sunの2表を横並びから縦積みに変更 */
  .sec6__schedule {
    position: static;
    width: 100%;
    flex-direction: column;
  }

  .sec6__schedule-img {
    width: 100%;
    height: auto;
    margin-bottom: 0.6rem;
  }

  .sec6__caution {
    position: static;
    display: block;
    white-space: normal;
    font-size: 0.75rem;
    margin-bottom: 0.3rem;
  }

  /* ----------------------------------------------------------
     footer
  ---------------------------------------------------------- */

  .footer__content {
    aspect-ratio: auto;
    padding-bottom: 4%;
  }

  .footer__map {
    position: relative;
    width: 100%;
    height: 50vw;
    margin-bottom: 30px;
  }

  .footer__contact-place,
  .footer__contact-addr {
    position: static;
    width: 90% !important;
    margin: 0 auto;
    white-space: normal;
  }

  .footer__contact-place,
  .footer__contact-addr { font-size: 0.85rem; }

  /* お問い合わせ文章とSNSアイコンを横並びにする */
  .footer__contact-group {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.8rem;
    width: 90%;
    margin: 0 auto;
  }

  .footer__contact-text {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
  }

  .footer__contact-heading,
  .footer__contact-org,
  .footer__contact-tel,
  .footer__contact-mail,
  .footer__contact-note {
    position: static;
    width: auto !important;
    white-space: normal;
  }

  .footer__contact-heading { font-size: 1.1rem; margin-top: 0.8rem; }
  .footer__contact-org,
  .footer__contact-tel,
  .footer__contact-mail { font-size: 0.85rem; }
  .footer__contact-note { font-size: 0.7rem; }

  .footer__line {
    position: static;
    display: block;
    width: 90%;
    margin: 0.8rem auto;
  }

  .footer__contact-icons {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    margin-top: 0.8rem;
  }

  .footer__contact-facebook,
  .footer__contact-insta {
    position: static;
    display: inline-block;
    width: 2.5rem !important;
    height: 2.5rem !important;
    margin: 0.3rem 0;
  }

  .footer__renkei-title {
    position: static;
    width: 90%;
    margin: 0.6rem auto 0.4rem;
    font-size: 1rem;
  }

  .footer__renkei-banner {
    position: static;
    width: 90% !important;
    height: auto;
    aspect-ratio: 1302 / 712;
    margin: 0 auto 0.6rem;
  }

  .footer__other-bg {
    display: none;
  }

  .footer__other-title {
    position: static;
    width: 90%;
    margin: 0 auto 0.6rem;
    font-size: 1rem;
    text-align: center;
  }

  .footer__other-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    background: #f7f8f8;
    padding: 4% 0;
    box-sizing: border-box;
  }

  .footer__other-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    width: 90%;
  }

  .footer__other-jhlogo,
  .footer__other-kamuylogo {
    position: static;
    width: 3rem !important;
    height: auto !important;
    flex-shrink: 0;
  }

  .footer__other-text {
    position: static;
    width: auto !important;
    margin: 0;
    font-size: 0.85rem;
    white-space: normal;
    text-align: center;
  }

  .footer__divider {
    position: static;
    width: 90%;
    margin: 1rem auto;
  }

  .footer__copyright {
    position: static;
    width: 40%;
    margin: 0 auto;
  }
}
