:root {
    --ink: #4F2400;
    --paper: #FFFAED;
    --soft: #efefef;
    --line: #d9d9d9;
    --side: #fffdf9;
    --max-sp: 400px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--side);
    font-family: noto-sans-cjk-jp, sans-serif;
}

button,
a {
    font: inherit;
}

button {
    color: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

.page-shell {
    min-height: 100vh;
}

.site-main {
    width: min(100%, var(--max-sp));
    margin: 0 auto;
    background: var(--paper);
    rgba(0, 0, 0, .12);
    border-left: 3px solid #a7917f;
    border-right: 3px solid #a7917f;
}

.desktop-side {
    display: none;
}

.hero {
    padding: 46px 20px 20px;
    text-align: center;
    background-image: url(img/hed_bg.png);
    background-position: top center;
    background-repeat: no-repeat;
}

.event-mark {
    position: relative;
    width: 100%;
    max-width: 375px;
    height: 528px;
    margin: 0 auto 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.event-mark img {
    display: block;
    width: 375px;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}


/*.event-mark::before, .event-mark::after { content:""; position:absolute; bottom:-10px; width:3px; height:70px; background:var(--ink); transform:rotate(17deg); }
.event-mark::before { left:18px; } .event-mark::after { right:18px; transform:rotate(-17deg); }
.event-mark small { font-size: 8px; letter-spacing: .18em; margin-bottom: 5px; }
.event-mark span { font-size: 11px; font-weight: 700; }
.event-mark strong { font-size: 31px; line-height: .98; margin-top: 5px; }
.event-mark em { margin-top: 7px; font-size: 13px; font-style: normal; font-weight: 700; }*/


/*.event-dates {
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

.event-dates p {
  margin: 0;
}

.event-year {
  margin-bottom: 4px !important;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

.event-date {
font-weight: 700;
font-style: Bold;
font-size: 32px;
leading-trim: NONE;
line-height: 100%;
letter-spacing: 0%;
  white-space: nowrap;
}

.event-date span {
font-size: 24px;
}
.event-date small {
  display: inline-block;
  margin-left: 2px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  vertical-align: 0.25em;
}
.event-time, .event-place { width: 245px; margin: 12px auto 0; padding: 8px 0; 
font-weight: 700;
font-style: Bold;
font-size: 16px;
leading-trim: NONE;
line-height: 100%;
letter-spacing: 0%;
text-align: center;
 border-top: 1px dotted #999; }
.event-place { margin-top: 0; border-bottom: 1px dotted #999; 
font-weight: 700;
font-style: Bold;
font-size: 16px;
leading-trim: NONE;
line-height: 100%;
letter-spacing: 0%;
text-align: center;
 }*/


/* ========================================
   EVENT INFO
======================================== */

.event-info {
    position: relative;
    width: 100%;
    max-width: 275px;
    margin: 0 auto 28px;
    padding: 12px 7px 15px;
    background: #fff;
    border: 1px solid #ead7a4;
    border-radius: 20px;
    color: var(--ink);
    text-align: center;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}


/* 上部の吹き出し三角 */

.event-info::before {
    content: "";
    position: absolute;
    top: -9px;
    left: 50%;
    width: 16px;
    height: 16px;
    background: #fff;
    border-top: 1px solid #ead7a4;
    border-left: 1px solid #ead7a4;
    transform: translateX(-50%) rotate(45deg);
}

.event-year {
    margin: 0 0 5px;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
}


/* 日程 */

.event-schedule {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.event-schedule__row {
    display: flex;
    align-items: center;
    /*justify-content: center;*/
    gap: 3px;
}


/* 第1弾・第2弾 */

.event-badge {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
}


/* 日付 */

.event-date {
    margin: 0;
    font-size: 32px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.event-date span {
    font-size: 24px;
    margin-left: -2px;
    margin-right: -1px;
}

.event-date small {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-left: 0px;
    margin-right: 1px;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    vertical-align: .18em;
}


/* 下部 */

.event-info__bottom {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 3px dotted #ead7a4;
}

.event-time {
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 700;
}

.event-note {
    margin: 6px 0 0;
    color: var(--ink);
    font-size: 12px;
    line-height: 1.4;
    font-weight: 600;
}


/*.primary-button { display: inline-flex; justify-content: center; align-items: center; min-width: 224px; margin-top: 20px; padding: 13px 24px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 16px; font-weight: 700; letter-spacing: .08em; }*/

.primary-button {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 225px;
    margin-top: 14px;
    padding: 13px 28px;
    background: #fff;
    color: var(--ink);
    font-family: fot-tsukubrdgothic-std, sans-serif;
    border: 2px solid var(--ink);
    border-radius: 999px;
    font-size: 20px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .05em;
    /* 下側の厚み */
    box-shadow: 0 7px 0 var(--ink);
    transition: transform .12s ease, box-shadow .12s ease;
    cursor: pointer;
}


/* ▼ */

.primary-button::after {
    content: "";
    display: block;
    width: 18px;
    height: 14px;
    margin-left: 4px;
    background: url("img/arrow_down.svg") center / contain no-repeat;
}


/* 押した瞬間 */

.primary-button:active {
    transform: translateY(7px);
    box-shadow: 0 0 0 var(--ink);
}

.section {
    padding: 20px 18px;
    text-align: center;
}

.section-en {
    margin: 0 0 4px;
    font-size: 11px;
    letter-spacing: .08em;
}

.section h2 {
    margin: 0 0 14px;
    font-size: 22px;
}

.section-lead {
    margin: 0 auto 20px;
    font-size: 12px;
    line-height: 1.9;
    font-weight: 600;
}

.empty-message {
    font-size: 12px;
}

.instagram {
    padding: 20px 18px 30px;
}

.instagram-icon img {
    width: 48px;
}

.instagram h2 {
    margin-top: 0;
    font-size: 24px;
    font-weight: 700;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}

.instagram .section-lead {
    margin: 0 auto 20px;
    font-size: 16px;
    line-height: 1.6;
    font-weight: 500;
}

.instagram-dummy {
    display: grid;
    grid-template-columns: repeat(3, minmax(130px, 1fr));
    gap: 10px;
    overflow-x: auto;
    padding: 4px 4px 10px;
    scroll-snap-type: x mandatory;
}

.instagram-dummy div {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1/1.15;
    background: #ddd;
    color: #888;
    font-size: 10px;
    border-radius: 4px;
    scroll-snap-align: start;
}

.modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: flex-end;
    justify-content: center;
}

.modal.is-open {
    display: flex;
}

.modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .65);
}

.modal-dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 430px);
    max-height: 88vh;
    overflow-y: auto;
    padding: 20px 20px 34px;
    background: #fff;
    border-radius: 18px 18px 0 0;
    text-align: left;
    animation: modalIn .22s ease-out;
}

@keyframes modalIn {
    from {
        transform: translateY(24px);
        opacity: 0;
    }
}

.modal-close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
    font-size: 27px;
    cursor: pointer;
}

.modal-image {
    aspect-ratio: 16/10;
    border-radius: 10px;
    background: #ddd;
}

.modal-category {
    display: inline-block;
    margin: 16px 0 8px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #eee;
    font-size: 10px;
}

.modal-dialog h2 {
    margin: 0;
    font-size: 22px;
}

.modal-dialog h3 {
    margin: 10px 0 4px;
    font-size: 17px;
}

.modal-price {
    margin: 0;
    font-weight: 700;
    font-style: Bold;
    font-size: 40px;
    leading-trim: NONE;
    line-height: 40px;
    letter-spacing: 8%;
    text-align: center;
}

.modal-description {
    margin: 18px 0 0;
    font-size: 13px;
    line-height: 1.8;
}

body.modal-open {
    overflow: hidden;
}


/* ========================================
   HAMBURGER MENU
======================================== */

.hero {
    position: relative;
}


/* ハンバーガーボタン */

.menu-toggle {
    position: fixed;
    top: 8px;
    /* 400px幅のサイト右端に合わせる */
    right: max(18px, calc((100vw - var(--max-sp)) / 2 + 18px));
    /* 修正 */
    z-index: 10001;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .04);
}

.menu-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--ink);
    border-radius: 10px;
    transition: transform .3s ease, opacity .3s ease;
}


/* -----------------------------
   メニュー
----------------------------- */


/* -----------------------------
   メニュー
----------------------------- */

.global-menu {
    position: fixed;
    top: 0;
    left: 50%;
    width: min(100%, var(--max-sp));
    height: 100vh;
    /* 修正 */
    z-index: 10000;
    background: #fffaf0;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(-20px);
    transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
}

.global-menu.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}


/* メニュー内部 */

.global-menu__inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 30px;
}

.global-menu__inner a {
    position: relative;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--ink);
}

.global-menu__inner a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 0;
    height: 2px;
    background: var(--ink);
    transform: translateX(-50%);
    transition: width .25s ease;
}

.global-menu__inner a:hover::after {
    width: 100%;
}


/* -----------------------------
   OPEN時 → ×
----------------------------- */

.menu-toggle.is-open span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2) {
    opacity: 0;
}

.menu-toggle.is-open span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}


/* メニューOPEN時スクロール停止 */

body.menu-open {
    overflow: hidden;
}


/* ========================================
   中止のお知らせ
======================================== */

.cancel-notice {
    width: calc(100% + 40px);
    margin: 30px -20px 30px;
    padding: 18px 25px 18px;
    background: #C73A1D;
    color: #fff;
    text-align: center;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}

.cancel-notice h2 {
    margin: 0 0 15px;
    color: #fff;
    font-size: 20px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: .12em;
}

.cancel-notice p {
    margin: 0;
    color: #fff;
    font-size: 14px;
    line-height: 1.55;
    font-weight: 700;
    letter-spacing: .05em;
}


/* ========================================
   ABOUT / 開催概要
======================================== */

.about {
    overflow: hidden;
    color: var(--ink);
}


/* 見出し */

.about-heading {
    /* margin-bottom: 20px;*/
    font-family: fot-tsukubrdgothic-std, sans-serif;
}

.about-heading__en {
    margin: 0 0 5px;
    color: #D23918;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .15em;
}


/* ========================================
   開催概要 見出し
======================================== */

.about-heading h2 {
    display: table;
    margin: 8px auto 0;
    padding: 5px 12px 7px;
    background: #542400;
    color: #fff;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: .08em;
    text-align: center;
    border-radius: :5px;
}


/* 導入文 */

.about-lead {
    margin: 0 auto;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.65;
    font-weight: 500;
    letter-spacing: .03em;
}


/* ========================================
   各ブロック
======================================== */

.about-item {
    position: relative;
    margin-bottom: 15px;
}

.about-item:last-child {
    margin-bottom: 0;
}


/* 写真エリア */

.about-item__visual {
    position: relative;
    width: calc(100% + 36px);
    margin-left: -18px;
}


/* 共通 */

.about-item__photo {
    display: block;
    height: auto;
    object-fit: contain;
}

.about-item__photo--01 {
    width: 294px;
    margin-left: auto;
    margin-right: 0;
}

.about-item__photo--02 {
    width: 312px;
    margin-left: 0;
    margin-right: auto;
}


/* ========================================
   人物イラスト
======================================== */

.about-item__chara {
    position: absolute;
    z-index: 2;
    display: block;
    height: auto;
    pointer-events: none;
}


/* 1人目：左 */

.about-item__chara--01 {
    width: 128px;
    left: 10px;
    top: 50px;
}


/* 2人目：右 */

.about-item__chara--02 {
    width: 150px;
    right: 7px;
    top: 0;
}


/* ========================================
   白い説明BOX
======================================== */

.about-item__box__01 {
    position: relative;
    z-index: 3;
    width: calc(100% - 12px);
    margin: -130px auto 0;
    padding: 10px 15px;
    background: #fff;
    border: 1px solid #ead7a4;
    border-radius: 16px;
    text-align: center;
}

.about-item__box__02 {
    position: relative;
    z-index: 3;
    width: calc(100% - 12px);
    margin: -50px auto 0;
    padding: 10px 15px;
    background: #fff;
    border: 1px solid #ead7a4;
    border-radius: 16px;
    text-align: center;
}

.about-item__box__01 .mb-10,
.about-item__box__02 .mb-10 {
    margin-bottom: 20px;
}


/* タイトル */

.about-item__box__01 h3,
.about-item__box__02 h3 {
    position: absolute;
    top: 0;
    left: 50%;
    margin: 0;
    padding: 0 15px;
    background: #fff;
    color: var(--ink);
    font-size: 20px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: .04em;
    white-space: nowrap;
    transform: translate(-50%, -55%);
    border-radius: 100px;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}

.about-item__box__01 h3 small,
.about-item__box__02 h3 small {
    font-size: 16px;
}


/* 説明文 */

.about-item__box__01 p,
.about-item__box__02 p {
    margin: 0;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.65;
    font-weight: 500;
    letter-spacing: .03em;
    font-family: zen-kaku-gothic-new, sans-serif;
}


/* ========================================
   楽天 WEB物産展
======================================== */

.rakuten-section {
    padding: 50px 20px 55px;
    background: #fffcf5;
    color: var(--ink);
}

.rakuten-section__inner {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    text-align: center;
}


/* ========================================
   上下の赤い2本線
======================================== */

.rakuten-section__line_top {
    position: relative;
    width: 100%;
    height: 10px;
    margin: 0 auto;
    border-top: 4px solid #c90016;
    border-bottom: 2px solid #c90016;
}

.rakuten-section__line_bottom {
    position: relative;
    width: 100%;
    height: 10px;
    margin: 0 auto;
    border-top: 2px solid #c90016;
    border-bottom: 4px solid #c90016;
}


/* ========================================
   Rakuten ロゴ
======================================== */

.rakuten-section__logo {
    margin: 32px auto 30px;
}

.rakuten-section__logo img {
    display: block;
    width: 200px;
    max-width: 60%;
    height: auto;
    margin: 0 auto;
}


/* ========================================
   タイトル
======================================== */

.rakuten-section__title {
    margin: 0;
    color: var(--ink);
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .05em;
}


/* ========================================
   開催期間
======================================== */

.rakuten-section__date {
    width: 70%;
    margin: 10px auto 10px;
    padding: 4px 0;
    border-top: 1px solid #d8c9ba;
    border-bottom: 1px solid #d8c9ba;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .08em;
}

.rakuten-section__date span {
    font-size: 18px;
}


/* ========================================
   説明文
======================================== */

.rakuten-section__text {
    margin: 0;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .04em;
}


/* ========================================
   注意書き
======================================== */

.rakuten-section__note {
    margin: 12px 0 15px;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .03em;
}


/* ========================================
   ボタン
======================================== */

.rakuten-section__button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 300px;
    min-height: 72px;
    margin: 0 auto 38px;
    padding: 10px 5px;
    border: 2px solid var(--ink);
    border-radius: 50px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .05em;
    /* 押し込み風 */
    box-shadow: 0 7px 0 var(--ink);
    transition: transform .15s ease, box-shadow .15s ease;
}

.rakuten-section__button:hover {
    transform: translateY(3px);
    box-shadow: 0 4px 0 var(--ink);
}

.rakuten-section__button:active {
    transform: translateY(7px);
    box-shadow: 0 0 0 var(--ink);
}

.rakuten-section__button_non {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 300px;
    min-height: 72px;
    margin: 0 auto 5px;
    padding: 10px 5px;
    border: 2px solid var(--ink);
    border-radius: 50px;
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .05em;
    /* 押し込み風 */
    box-shadow: 0 7px 0 var(--ink);
    transition: transform .15s ease, box-shadow .15s ease;
}

.bot_tex {
    margin: 10px 0 20px;
    color: var(--ink);
    font-size: 14px;
    line-height: 1.65;
    font-weight: 500;
    letter-spacing: .03em;
    font-family: zen-kaku-gothic-new, sans-serif;
}


/* ========================================
   スマホ
======================================== */

@media (max-width: 979px) {
    .rakuten-section {
        padding: 40px 18px 45px;
    }
    .rakuten-section__inner {
        max-width: 100%;
    }
    .rakuten-section__logo {
        margin: 28px auto 26px;
    }
    .rakuten-section__logo img {
        width: 190px;
    }
    .rakuten-section__title {
        font-size: 22px;
    }
    .rakuten-section__date {
        font-size: 18px;
    }
    .rakuten-section__text {
        font-size: 15px;
    }
    .rakuten-section__note {
        font-size: 14px;
    }
    .rakuten-section__button {
        width: calc(100% - 20px);
        max-width: 350px;
        min-height: 76px;
        font-size: 18px;
    }
}


/* ========================================
   ねば〜る君 ＆ スタンプラリー
======================================== */

.nebaaru-event {
    position: relative;
    z-index: 2;
    overflow: hidden;
    /* 下を少し確保しつつ、ACCESSと連結 */
    padding: 38px 24px 80px;
    background: url("img/nebaaru-bg.png") center top / cover repeat-y;
    color: #fff;
    font-family: fot-tsukuardgothic-std, sans-serif;
}


/* ========================================
   ねば〜る君
======================================== */

.nebaaru-event__character {
    position: relative;
    min-height: 310px;
}

.nebaaru-event__character-text {
    position: relative;
    z-index: 2;
    width: 72%;
}

.nebaaru-event__sub {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    letter-spacing: 0.08em;
}


/* 名前 */

.nebaaru-event__name {
    margin: 0 0 18px;
    text-align: center;
    line-height: 1;
}

.nebaaru-event__name span {
    display: inline-block;
    padding: 5px 12px 7px;
    background: #fff;
    color: #c59500;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: 0.08em;
    border-radius: 5px;
}

.nebaaru-event__name small {
    display: block;
    margin-top: 6px;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.08em;
}


/* ========================================
   ねば〜る君
   タイトル部分だけ中央
======================================== */

.nebaaru-event__heading {
    position: relative;
    width: calc(100% / 0.72);
    text-align: center;
    background-image: url("img/nebaru_misc_01.png"), url("img/nebaru_misc_01-1.png"), url("img/nebaru_misc_02.png");
    background-position: top 15px left 50px, top 26px right 55px, right 128px bottom;
    background-repeat: no-repeat;
}

.nebaaru-event__sub {
    text-align: center;
}

.nebaaru-event__name {
    text-align: center;
}


/* 日付 */

.nebaaru-event__date {
    margin: 0 0 6px;
    white-space: nowrap;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

.nebaaru-event__date span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 2px;
    font-size: 12px;
    background-color: #fff;
    color: #c09b0f;
    padding: 2px 5px;
    border-radius: 100px;
}


/* 出番 */

.nebaaru-event__time {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    font-size: 16px;
    font-weight: 700;
}

.nebaaru-event__time strong {
    display: inline-block;
    padding: 2px 6px;
    border: 1px solid #fff;
    font-size: 14px;
    line-height: 1.3;
}


/* ========================================
   撮影会 吹き出し
======================================== */

.nebaaru-photo {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 255px;
    margin-top: 18px;
    padding: 14px 15px 14px;
    border-radius: 12px;
    background: #fff;
    color: #c59500;
}


/* ----------------------------------------
   吹き出しの三角
---------------------------------------- */

.nebaaru-photo::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -12px;
    width: 0;
    height: 0;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-left: 13px solid #fff;
    transform: translateY(-50%);
}


/* ========================================
   撮影会もあるよ
======================================== */

.nebaaru-photo__title {
    display: flex;
    align-items: center;
    gap: 0px;
    margin: 0 0 8px;
    color: #c59500;
    line-height: 1;
    white-space: nowrap;
}


/* カメラ画像 */

.nebaaru-photo__camera {
    display: block;
    width: 27px;
    height: auto;
    flex-shrink: 0;
}


/* 「撮影会」 */

.nebaaru-photo__title strong {
    font-size: 21px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.03em;
    padding: 0 0 0 8px;
}


/* 「もあるよ」 */

.nebaaru-photo__title span {
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
}


/* ========================================
   整理券配布・時間
======================================== */

.nebaaru-photo__time {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: #c59500;
    line-height: 1;
    white-space: nowrap;
}


/* 整理券配布 */

.nebaaru-photo__time>span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 4px;
    border: 1px solid #c59500;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}


/* 時間 */

.nebaaru-photo__time>strong {
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
}


/* ========================================
   各回先着50名
======================================== */

.nebaaru-photo__limit {
    position: absolute;
    z-index: 5;
    top: -25px;
    right: -4px;
    width: 66px;
}

.nebaaru-photo__limit img {
    display: block;
    width: 100%;
    height: auto;
}


/* ========================================
   ねば〜る君画像
======================================== */

.nebaaru-event__character-image {
    position: absolute;
    z-index: 1;
    top: 60px;
    right: -15px;
    width: 118px;
}

.nebaaru-event__character-image img {
    display: block;
    width: 100%;
    height: auto;
}


/* ========================================
   スタンプラリー
======================================== */

.stamp-rally {
    position: relative;
    z-index: 3;
    margin-top: 16px;
    padding-top: 32px;
    text-align: center;
}


/* 上の点線 */

.stamp-rally::before {
    content: "";
    position: absolute;
    top: 0;
    left: 4%;
    width: 92%;
    border-top: 2px dashed rgba(255, 255, 255, 0.7);
}


/* ========================================
   スタンプラリー 見出し
======================================== */

.stamp-rally__heading {
    position: relative;
    width: 100%;
    margin: 0 auto 15px;
    text-align: center;
}

.stamp-rally__heading h2 {
    margin: 0;
}


/* スタンプラリー白背景 */

.stamp-rally__heading h2>span {
    position: relative;
    display: inline-block;
    padding: 5px 10px 6px;
    background: #fff;
    border-radius: 2px;
    color: #c59500;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08em;
    border-radius: 5px;
}


/* 開催 */

.stamp-rally__heading h2>small {
    display: block;
    margin-top: 8px;
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08em;
}


/* ========================================
   タイトル左上の装飾
======================================== */

.stamp-rally__heading-deco {
    position: absolute;
    z-index: 2;
    /* Figmaのように白背景の左上へ配置 */
    top: -18px;
    left: 30px;
    width: 26px;
    height: auto;
    pointer-events: none;
}


/* 説明 */

.stamp-rally__lead {
    margin: 0 0 14px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.05em;
}


/* ========================================
   3つ集める
======================================== */

.stamp-rally__step {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 28px;
    padding-left: 62px;
}

.stamp-rally__step p {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.65;
    text-align: center;
    letter-spacing: 0.04em;
}

.stamp-rally__step strong {
    margin: 0 3px;
    font-size: 26px;
    line-height: 1;
}


/* 薄いマーカー下線 */

.stamp-rally__marker {
    display: inline;
    padding: 0 2px;
    background: linear-gradient( transparent 68%, rgba(255, 255, 255, 0.22) 68%, rgba(255, 255, 255, 0.22) 92%, transparent 92%);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}


/* 先着100名画像 */

.stamp-rally__limit {
    position: absolute;
    left: -10px;
    top: 50%;
    width: 66px;
    transform: translateY(-50%);
}

.stamp-rally__limit img {
    display: block;
    width: 100%;
    height: auto;
}


/* ========================================
   プレゼント
======================================== */

.stamp-rally__gift {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    margin: 0 auto;
}

.stamp-rally__gift-text {
    position: relative;
    width: 195px;
    padding: 10px 10px;
    border-radius: 10px;
    background: #fff;
    color: #c59500;
}

.stamp-rally__gift-text::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -12px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-left: 13px solid #fff;
}

.stamp-rally__gift-text p {
    margin: 0 0 3px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
}

.stamp-rally__gift-text strong {
    display: block;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0.06em;
}


/* トートバッグ */

.stamp-rally__gift-image {
    width: 105px;
}

.stamp-rally__gift-image img {
    display: block;
    width: 100%;
    height: auto;
}


/* ========================================
   スタンプラリー 矢印装飾
======================================== */

.stamp-rally__arrow {
    position: absolute;
    z-index: 3;
    display: block;
    height: auto;
    pointer-events: none;
}


/* ----------------------------------------
   説明文右側の矢印
---------------------------------------- */

.stamp-rally__step {
    position: relative;
}

.stamp-rally__arrow--step {
    width: 50px;
    top: -25px;
    right: -35px;
}


/* ----------------------------------------
   トートバッグへ向かう矢印
---------------------------------------- */

.stamp-rally__gift {
    position: relative;
}

.stamp-rally__arrow--gift {
    width: 80px;
    top: -30px;
    right: 80px;
    transform: translateX(-10%);
}


/* ========================================
   PC
======================================== */

@media (min-width: 768px) {
    .nebaaru-event {
        padding-right: 15px;
        padding-left: 15px;
    }
}


/* ========================================
   ACCESS
======================================== */

.access {
    position: relative;
    z-index: 3;
    /* 波の高さ分だけ上側を確保 */
    padding: 70px 15px 60px;
    color: #fff;
    /* ベージュ背景は削除 */
    background-color: transparent;
    background-image: url("img/access_wave-01.svg");
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;
    overflow: visible;
    /* 25pxの隙間をなくす */
    margin-top: -45px;
}


/* コンテンツ */

.access-inner {
    position: relative;
    z-index: 2;
}


/* ========================================
   人物
======================================== */

.access-chara {
    position: absolute;
    top: -13px;
    left: 0;
    z-index: 3;
    width: 75px;
    height: auto;
    pointer-events: none;
}


/* ========================================
   見出し
======================================== */

.access-heading {
    position: relative;
    z-index: 4;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}

.access .section-en {
    margin: 0 0 3px;
    color: #fff;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .12em;
}

.access h2 {
    margin: 0 0 17px;
    color: #fff;
    font-size: 32px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: .08em;
}

.access h2 span {
    display: inline-block;
    padding: 5px 12px 7px;
    background: #fffaed;
    color: #4f2400;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: 0.08em;
    border-radius: 5px;
    margin-top: 5px;
}

.access .section-lead {
    margin: 0 auto 25px;
    color: #fff;
    font-size: 16px;
    line-height: 1.6;
    font-weight: 500;
}


/* ========================================
   ROUTE TABS
======================================== */

.route-tabs {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    margin: 0;
}


/* 共通 */


/* ========================================
   ACCESS ルートタブ
======================================== */

.route-tab {
    border: none;
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease;
    font-family: zen-kaku-gothic-new, sans-serif;
    border-radius: 6px 6px 0 0;
    padding: 7px 0;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 500;
}


/* ========================================
   ACCESS ルートタブ 選択状態
======================================== */


/* 東京：未選択時 */

.route-tab.route-tab--tokyo:not(.is-active) {
    background-color: #4f2400;
    color: #fffaed;
}


/* 選択中：全タブ共通 */

.route-tab.is-active {
    background-color: #fffaed;
    color: #4f2400;
}


/* smallも親の文字色を引き継ぐ */

.route-tab small {
    color: inherit;
    font-size: 12px;
    line-height: 1;
    font-weight: 500;
    margin-top: 3px;
}


/* 各タブ */

.route-tab--tokyo {
    background: #fffaed;
    color: var(--ink);
}


/* 福島 */

.route-tab--fukushima {
    background-color: #649325;
    /*  background-image:
    linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px);*/
    background-size: 9px 9px;
}


/* 埼玉・栃木 */

.route-tab--saitama {
    background-color: #c09b0f;
    /*  background-image:
    linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px);*/
    background-size: 9px 9px;
}


/* ひたちなか */

.route-tab--hitachinaka {
    background-color: #d94c3d;
    /*  background-image:
    linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px);*/
    background-size: 9px 9px;
}


/* 選択中 */

.route-tab.is-active {
    opacity: 1;
    transform: translateY(4px);
}


/* ========================================
   ROUTE PANEL
======================================== */

.route-panel {
    margin: 0;
    padding: 30px 12px 10px;
    background: #fffaed;
    color: var(--ink);
    /*border-radius: 0 0 7px 7px;*/
    text-align: center;
}

.route-main {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    font-weight: 500;
}

.route-main span {
    display: inline-block;
    margin: 0 4px;
    font-size: 8px;
    line-height: 1;
    vertical-align: 0.3em;
}


/* 目安 */

.route-estimate {
    margin-top: 30px;
    text-align: center;
}

.route-estimate strong {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin: 0 0 8px;
    color: var(--ink);
    font-size: 20px;
    line-height: 1;
    font-weight: 700;
}


/* 左右のドットライン */

.route-estimate strong::before,
.route-estimate strong::after {
    content: "";
    flex: 1;
    border-top: 3px dotted #ead7a4;
}

.route-estimate p {
    margin: 0;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.5;
    font-weight: 500;
}

.route-estimate p {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 500;
}


/* ========================================
   MAP CARD
======================================== */

.map-card {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 10px;
    background: #fffaed;
    border: 0;
    border-radius: 0 0 7px 7px;
    color: var(--ink);
}


/* Google Map */

.map-card iframe {
    display: block;
    width: 100% !important;
    height: 320px !important;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
}


/* 地図下の住所 */

.map-card__body {
    padding: 20px 0 15px;
    text-align: center;
    color: var(--ink);
}

.map-card__body h3 {
    margin: 0 0 3px;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 700;
}

.map-card__body p {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 500;
}


/* ========================================
   ACCESS → SHOP LIST
======================================== */

.access-shop-transition {
    position: relative;
    z-index: 2;
    width: 100%;
    margin: 0;
    line-height: 0;
    overflow: hidden;
    background-image: url("img/shop_wave-02.png");
    background-position: top center;
    background-repeat: no-repeat;
    background-size: 400px auto;
}

.access-shop-transition img {
    display: block;
    width: 400px;
    height: 60px;
    margin: 0;
}


/* ========================================
   SHOP LIST
======================================== */

.shops {
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 0;
    padding: 0px 14px 70px;
    background-color: #fffaed;
    background-image: url("img/shop_wave-02.png");
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: 400px auto;
    color: #fff;
    overflow: hidden;
}

.shops-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    margin: 0 auto;
    text-align: center;
}


/* ========================================
   見出し
======================================== */

.shops-heading {
    margin-bottom: 15px;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}

.shops .section-en {
    margin: 0 0 4px;
    color: #fff;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .08em;
}

.shops h2 {
    margin: 0;
    color: #fff;
    font-size: 32px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: .06em;
}

.shops h2 span {
    display: inline-block;
    padding: 5px 12px 7px;
    background: #fffaed;
    color: #649325;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: 0.08em;
    border-radius: 5px;
    margin-top: 5px;
}

.shops .section-lead {
    margin: 0 0 18px;
    color: #fff;
    font-size: 16px;
    line-height: 1.8;
    font-weight: 500;
}


/* ========================================
   SHOP LIST 見出し＋キャラクター
======================================== */

.shops-intro {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 210px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: visible;
}


/* 中央テキスト */

.shops-intro__content {
    position: relative;
    z-index: 2;
    width: 100%;
    text-align: center;
}


/* ========================================
   SHOP LIST キャラクター
   ACCESS側へはみ出させる
======================================== */

.shops {
    position: relative;
    z-index: 3;
    /* キャラクターを上にはみ出させるため */
    overflow: visible;
}

.shops-intro {
    position: relative;
    z-index: 3;
    /* はみ出したキャラクターを表示 */
    overflow: visible;
}


/* キャラクター共通 */

.shops-character {
    position: absolute;
    z-index: 10;
    display: block;
    height: auto;
    pointer-events: none;
}


/* ----------------------------------------
   キャラクター
---------------------------------------- */

.shops-character--left {
    width: 91px;
    left: -14px;
    top: -35px;
}

.shops-character--right {
    width: 110px;
    right: -14px;
    top: -60px;
}


/* ========================================
   WEEK
======================================== */

.week-content {
    display: none;
}

.week-content.is-active {
    display: block;
}


/* ========================================
   WEEK TAB
======================================== */

.week-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: calc(100% - 0px);
    margin: 2px auto 0;
    gap: 8px;
    position: relative;
    z-index: 2;
}

.week-tab {
    appearance: none;
    border: 0;
    min-height: 55px;
    padding: 15px 5px 0;
    background: var(--ink);
    color: #fff;
    border-radius: 8px 8px 0 0;
    font-family: inherit;
    cursor: pointer;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 3px;
    transition: transform .2s ease, background-color .2s ease, color .2s ease;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}

.week-tab span {
    font-size: 24px;
    line-height: 1;
    font-weight: 700;
}


/* 選択中 */

.week-tab.is-active {
    background: #fff;
    color: var(--ink);
}


/* ========================================
   CATEGORY
======================================== */

.category-filter {
    position: relative;
    width: calc(100% - 28px);
    margin: 0 auto 20px;
    padding: 18px 18px 20px;
    background: #fff;
    text-align: center;
}

.category-filter__buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px 7px;
    margin: 0 35px 12px;
}


/* カテゴリーボタン */

.category-filter button {
    appearance: none;
    min-width: 0;
    height: 38px;
    padding: 0 5px;
    background: #fff;
    border: 2px solid var(--ink);
    border-radius: 20px;
    color: var(--ink);
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 2px;
    cursor: pointer;
    transition: transform .15s ease, background-color .15s ease;
}

.category-filter button:active {
    transform: translateY(2px);
}


/* --------------------
   カテゴリー別カラー
-------------------- */

.category-filter .category-agriculture {
    border-color: #669532;
}

.category-filter .category-sweets {
    border-color: #b23a90;
}

.category-filter .category-side {
    border-color: #d86f18;
}

.category-filter .category-noodles {
    border-color: #c99b00;
}

.category-filter .category-meat {
    border-color: #dc3e3e;
}

.category-filter .category-drink {
    border-color: #2584c7;
}


/* 選択時 */

.category-filter button.is-active:not(.filter-all) {
    background: #fff8e8;
}


/* ========================================
   ALL BUTTON
======================================== */

.category-filter .filter-all {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 185px;
    height: 40px;
    padding: 0 20px;
    border: 2px solid var(--ink);
    border-radius: 22px;
    background: #fff;
    color: var(--ink);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    box-shadow: 0 3px 0 var(--ink);
}

.category-filter .filter-all:active,
.category-filter .filter-all.is-active {
    transform: translateY(2px);
    box-shadow: 0 1px 0 var(--ink);
}

/* ========================================
   SHOP CARD
======================================== */

.shop-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 10px;
    align-items: start;
}


/* カード */

.shop-card {
    width: 100%;
    padding: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #a99887;
    border-radius: 6px;
    color: #4b2408;
    text-align: center;
    cursor: pointer;
}


/* ========================================
   サムネイル
======================================== */

.shop-image {
    width: 100%;
    aspect-ratio: 1.28 / 1;
    overflow: hidden;
}

.shop-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* ========================================
   カード本文
======================================== */

.shop-card-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 8px 7px 6px;
    font-family: fot-tsukubrdgothic-std, sans-serif;
}


/* 店舗名 */

.shop-name {
    width: 100%;
    min-height: 1.5em;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    color: #4b2408;
}


/* ドットライン */

.shop-card-line {
    width: 82%;
    height: 1px;
    margin: 5px auto 7px;
    border-top: 1px dotted #a99887;
}


/* 商品名 */

.shop-product {
    width: 100%;
    min-height: 3em;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    color: #4b2408;
}


/* 個数・内容量・価格 */

.shop-price {
    margin: 5px 0 12px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    color: #4b2408;
    font-family: noto-sans-cjk-jp, sans-serif;
}

.shop-price span {
    display: inline-block;
    margin: 0 2px;
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1;
}

.shop-modal__price strong {
    font-size: 1.3em;
    font-weight: 700;
    line-height: 1;
}


/* ========================================
   商工会名
======================================== */

.shop-association {
    width: 100%;
    margin: auto 0 0;
    padding: 4px 3px;
    background: #f2e8dd;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.25;
    color: #6a5545;
    font-family: noto-sans-cjk-jp, sans-serif;
}


/* ========================================
   モーダル 商工会名
======================================== */

.shop-modal__association {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 34px;
    margin: 14px 0 0 !important;
    padding: 6px 20px !important;
    background: #EFE2D2;
    border-radius: 999px;
    color: #3f342d;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    box-sizing: border-box;
}


/* ========================================
   画像未支給の仮置き
======================================== */

.shop-image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1.28 / 1;
    background: #eee9e4;
    color: #9b8b7e;
    font-size: 10px;
}

.shop-image--placeholder::before {
    content: "NO IMAGE";
}


/* ========================================
   EMPTY
======================================== */

.empty-message {
    margin: 25px 0;
    color: #fff;
    font-size: 13px;
    text-align: center;
}

.empty-message[hidden] {
    display: none !important;
}


/* ========================================
   絞り込み時の非表示
======================================== */

.shop-card[hidden] {
    display: none !important;
}

.empty-message[hidden] {
    display: none !important;
}


/* ========================================
   SHOP LIST 白背景エリア
======================================== */

.shops-white-area {
    width: calc(100% - 0px);
    margin: 0 auto;
    padding: 18px 14px 28px;
    background: #fff;
    box-sizing: border-box;
}


/* ========================================
   カテゴリー
======================================== */

.shops-white-area .category-filter {
    width: 100%;
    margin: 0 0 20px;
    padding: 0;
    background: transparent;
}


/* ========================================
   店舗一覧
======================================== */

.shops-white-area .shop-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin: 0;
    padding: 0;
    gap: 14px;
    box-sizing: border-box;
}


/* ========================================
   店舗カード
======================================== */

.shops-white-area .shop-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}


/* 絞り込みで非表示 */

.shop-card[hidden] {
    display: none !important;
}


/* ========================================
   該当店舗なし
======================================== */

.shops-white-area .empty-message {
    margin: 20px 0 0;
    color: var(--ink);
    font-size: 13px;
    text-align: center;
}

.empty-message[hidden] {
    display: none !important;
}


/* ========================================
   カテゴリボタン 押し込みアニメーション
======================================== */

.category-filter__buttons button {
    position: relative;
    cursor: pointer;
    /* 押し込み用 */
    transform: translateY(0);
    transition: transform 0.08s ease, box-shadow 0.08s ease, background-color 0.15s ease;
}


/* 農産物 */

.category-agriculture {
    box-shadow: 0 4px 0 #5f8f22;
}


/* 菓子 */

.category-sweets {
    box-shadow: 0 4px 0 #b52d80;
}


/* 惣菜 */

.category-side {
    box-shadow: 0 4px 0 #d86f12;
}


/* 麺類 */

.category-noodles {
    box-shadow: 0 4px 0 #c99a00;
}


/* 肉類 */

.category-meat {
    box-shadow: 0 4px 0 #e34132;
}


/* 飲料 */

.category-drink {
    box-shadow: 0 4px 0 #1479c9;
}


/* 押した瞬間 */

.category-filter__buttons button:active {
    transform: translateY(4px);
    box-shadow: 0 0 0 transparent;
}


/* ========================================
   FOOTER
======================================== */

.site-footer {
    width: 100%;
    padding: 30px 15px 30px;
    background: var(--ink);
    color: #fff;
    text-align: center;
}

.site-footer__inner {
    width: 100%;
    margin: 0 auto;
}


/* 茨城グルメ物産展＠道の駅かさま */

.site-footer__title {
    margin: 0 0 15px;
    font-size: 20px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.08em;
}


/* copyright */

.site-footer__copyright {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: 0.08em;
}


/* ========================================
   店舗詳細モーダル
======================================== */

.shop-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s ease, visibility .3s ease;
}


/* 表示時 */

.shop-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* ========================================
   背景
======================================== */

.shop-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 249, 235, .96);
}


/* ========================================
   本体
======================================== */

.shop-modal__content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 370px;
    /* 外にはみ出した×を表示 */
    overflow: visible;
    background: #fff;
    border: 2px solid var(--ink);
    border-radius: 16px;
    color: var(--ink);
}


/* モーダル本体：閉じている状態 */

.shop-modal__content {
    transform: translateY(20px);
    opacity: 0;
    transition: transform .35s ease, opacity .35s ease;
}


/* モーダル本体：開いた状態 */

.shop-modal.is-open .shop-modal__content {
    transform: translateY(0);
    opacity: 1;
}


/* ========================================
   商品画像
======================================== */

.shop-modal__image {
    width: 100%;
    /*aspect-ratio: 1 / .88;*/
    overflow: hidden;
}

.shop-modal__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* ========================================
   内容
======================================== */

.shop-modal__body {
    padding: 20px 15px 20px;
}


/* 店舗名 */

.shop-modal__name {
    margin: 0;
    padding: 0 0 16px;
    border-bottom: 2px dotted #d8c8bb;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    text-align: center;
}


/* ========================================
   商品名・価格
======================================== */

.shop-modal__product-area {
    padding: 15px 0 5px;
    text-align: center;
}

.shop-modal__product {
    margin: 15px 0 7px;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    text-align: center;
}

.shop-modal__product small {
    font-size: 18px;
}

.shop-modal__price {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}

.shop-modal__price small {
    margin-left: 2px;
    font-size: 16px;
    font-weight: 700;
}


/* ========================================
   商品説明
======================================== */

.shop-modal__description {
    margin: 17px 0 20px;
    font-size: 16px;
    line-height: 1.7;
    text-align: left;
}


/* ========================================
   店舗情報
======================================== */

.shop-modal__info {
    padding-top: 18px;
    border-top: 1px solid #ddd2c8;
}


.shop-modal__info p {
    display: flex;
    gap: 10px;
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 1.6;
}

.shop-modal__info p:last-child {
    margin-bottom: 0;
}

.shop-modal__info p>span:first-child {
    flex: 0 0 auto;
    font-weight: 500;
}


/* ========================================
   閉じるボタン
======================================== */

.shop-modal__close {
    position: absolute;
    top: -18px;
    right: -12px;
    z-index: 10;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--ink);
    cursor: pointer;
}


/* × */

.shop-modal__close span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 2px;
    background: #fff;
}

.shop-modal__close span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
}

.shop-modal__close span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
}


/* ========================================
   店舗モーダル：スクロール修正版
======================================== */

.shop-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    /* モーダル全体をスクロール領域にする */
    overflow-y: auto;
    overflow-x: hidden;
    /* 上下に必ず余白を作る */
    padding: 50px 15px;
    box-sizing: border-box;
    /* 中身を中央へ */
    display: flex;
    justify-content: center;
    /* ここ重要：centerにしない */
    align-items: flex-start;
}


/* 背景 */

.shop-modal__overlay {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 249, 235, .96);
    z-index: 0;
}


/* ポップアップ本体 */

.shop-modal__content {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 100%;
    max-width: 370px;
    /* 上下30pxは.shop-modal側で確保 */
    margin: auto 0;
    overflow: visible;
    max-height: none;
}


/* 横スクロールを完全に防ぐ */

.shop-modal__image,
.shop-modal__body {
    max-width: 100%;
}


/* モーダル画像 */

.shop-modal__image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: 14px 14px 0 0;
}


/* ========================================
   楽天ショップボタン
======================================== */

.shop-modal__rakuten {
    margin-top: 14px;
    text-align: center;
}

.shop-modal__rakuten a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 50px;
    padding: 8px 18px;
    background: #fff;
    border: 2px solid #4F2400;
    border-radius: 18px;
    color: #6b2d00;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-decoration: none;
    /* 押し込みボタン */
    box-shadow: 0 4px 0 #4F2400;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    width: 100%;
}

.shop-modal__rakuten .non {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 50px;
    padding: 8px 18px;
    background: #fff;
    border: 2px solid #4F2400;
    border-radius: 18px;
    color: #6b2d00;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-decoration: none;
    /* 押し込みボタン */
    box-shadow: 0 4px 0 #4F2400;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    width: 100%;
}


/* 矢印 */

.shop-modal__rakuten a span {
    font-size: 17px;
    line-height: 1;
}


/* PC：マウスを乗せた時 */

@media (hover: hover) {
    .shop-modal__rakuten a:hover {
        transform: translateY(2px);
        box-shadow: 0 2px 0 #4F2400;
    }
}


/* クリックした時 */

.shop-modal__rakuten a:active {
    transform: translateY(4px);
    box-shadow: 0 0 0 #4F2400;
}


/* ========================================
   試食BAR アサクサ
======================================== */

.shop-modal__bar {
    margin-top: 18px;
    border: 1px solid #4F2400;
    border-radius: 15px 15px 0 0;
    overflow: hidden;
    background: #fff;
}


/* 見出し */

.shop-modal__bar-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    background: #4F2400;
    color: #fff;
    font-family: fot-tsukubrdgothic-std, sans-serif;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
}


/* ▼ */

.shop-modal__bar-arrow {
    flex-shrink: 0;
    margin-left: 5px;
    font-size: 12px;
    transition: transform .3s ease;
}


/* ========================================
   開閉部分
======================================== */

.shop-modal__bar-content {
    display: none;
    padding: 10px;
}

.shop-modal__bar.is-open .shop-modal__bar-content {
    display: block;
}


/* 開いたら矢印反転 */

.shop-modal__bar.is-open .shop-modal__bar-arrow {
    transform: rotate(180deg);
}


/* ========================================
   写真
======================================== */

.shop-modal__bar-image {
    width: 100%;
    margin-bottom: 10px;
    overflow: hidden;
    border-radius: 5px;
}

.shop-modal__bar-image img {
    display: block;
    width: 100%;
    height: auto;
}


/* ========================================
   タイトル
======================================== */

.shop-modal__bar-title {
    margin: 10px 0;
    color: #6b2d00;
    font-size: 20px;
    font-weight: 700;
    text-align: center;
}


/* ========================================
   説明
======================================== */

.shop-modal__bar-text {
    margin: 0 0 14px;
    color: #6b2d00;
    font-size: 16px;
    line-height: 1.55;
    text-align: left;
}


/* ========================================
   住所・アクセス
======================================== */

.shop-modal__bar-address {
    color: #6b2d00;
    font-size: 16px;
    line-height: 1.55;
    text-align: left;
}

.shop-modal__bar-address p {
    margin: 0 0 12px;
}

.shop-modal__bar-access-title {
    margin-bottom: 2px !important;
    font-weight: 500;
}

.shop-modal__bar-address ul {
    margin: 0;
    padding-left: 18px;
}


/* ========================================
   試食BAR 公式サイトボタン
======================================== */

.shop-modal__bar-link {
    margin: 15px 0;
    text-align: center;
}

.shop-modal__bar-link a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    padding: 10px 20px;
    background: #fff;
    border: 2px solid #6b2d00;
    border-radius: 16px;
    color: #6b2d00;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    /* 下側を濃くして押し込みボタンに */
    box-shadow: 0 5px 0 #6b2d00;
    transform: translateY(0);
    transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.2s ease;
}


/* hover */

.shop-modal__bar-link a:hover {
    background: #fff8f0;
}


/* 押した瞬間 */

.shop-modal__bar-link a:active {
    transform: translateY(5px);
    box-shadow: 0 0 0 #6b2d00;
}


/* ========================================
   試食BAR アサクサ 常時表示
======================================== */


/* アコーディオンの中身を常に表示 */

.shop-modal__bar-content {
    display: block !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
}


/* 見出し部分はクリックできない見た目に */

.shop-modal__bar-toggle {
    cursor: default;
    pointer-events: none;
}


/* ========================================
   スマホ
======================================== */

@media (max-width: 767px) {
    .shop-modal {
        padding: 30px 18px;
    }
    .shop-modal__content {
        max-width: 360px;
        max-height: calc(100dvh - 60px);
    }
    .shop-modal__body {
        padding: 18px 20px 22px;
    }
    .shop-modal__name {
        font-size: 18px;
    }
    .shop-modal__product {
        font-size: 18px;
    }
    .shop-modal__description,
    .shop-modal__info p {
        font-size: 13px;
    }
}


/* ========================================
   HEADER MENU
   PCでは非表示
======================================== */

@media (min-width: 980px) {
    .header-menu {
        display: none !important;
    }
    /* ========================================
     PC LAYOUT
  ======================================== */
    .page-shell {
        display: grid;
        grid-template-columns: minmax(260px, 1fr) var(--max-sp) minmax(300px, 1fr);
    }
    /* ========================================
     PC SIDE 共通
  ======================================== */
    .desktop-side {
        display: block;
        position: sticky;
        top: 0;
        height: 100vh;
        background: #fffdf9;
        color: var(--ink);
    }
    /* ========================================
     LEFT SIDE
  ======================================== */
    .desktop-side--left .side-inner {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        height: 100vh;
        padding: 115px 20px 30px;
    }
    /* ========================================
     LOGO
  ======================================== */
    .desktop-side--left .side-logo {
        display: block;
        width: 210px;
        max-width: 70%;
        margin: 0 auto;
        line-height: 0;
    }
    .desktop-side--left .side-logo img {
        display: block;
        width: 100%;
        height: auto;
    }
    /* ========================================
     SIDE NAV
  ======================================== */
    .desktop-side--left .side-nav {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 24px;
        margin-top: 40px;
    }
    /* ボタン */
    .desktop-side--left .side-nav__link {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 145px;
        height: 44px;
        padding: 4px 22px;
        background: #fff;
        border: 2px solid #8c715c;
        border-radius: 999px;
        color: var(--ink);
        font-size: 20px;
        line-height: 1;
        font-weight: 700;
        letter-spacing: .05em;
        font-family: fot-tsukubrdgothic-std, sans-serif;
        /* 通常時は薄く */
        opacity: .45;
        transition: opacity .25s ease, transform .25s ease, border-color .25s ease;
    }
    /* ========================================
     左アイコン
  ======================================== */
    .desktop-side--left .side-nav__icon {
        position: absolute;
        left: -5px;
        top: 50%;
        width: 8px;
        height: 8px;
        object-fit: contain;
        /* 通常時は非表示 */
        opacity: 0;
        transform: translate(-6px, -50%);
        transition: opacity .2s ease, transform .25s ease;
        pointer-events: none;
    }
    /* ========================================
     HOVER
  ======================================== */
    .desktop-side--left .side-nav__link:hover {
        opacity: 1;
        transform: translateX(4px);
    }
    .desktop-side--left .side-nav__link:hover .side-nav__icon {
        opacity: 1;
        transform: translate(0, -50%);
    }
    /* ========================================
     MAP
  ======================================== */
    .desktop-side--left .side-map {
        position: relative;
        display: block;
        width: 100%;
        max-width: calc(100% - 20px);
        margin: 30px auto 0;
        padding: 7px;
        background: transparent;
        border: none;
        border-radius: 15px;
        line-height: 0;
        transition: opacity .2s ease;
    }
    /* 破線の枠 */
    .desktop-side--left .side-map::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: 15px;
        pointer-events: none;
        background: /* 上 */
        repeating-linear-gradient( 90deg, var(--ink) 0 12px, transparent 12px 26px) top / 100% 2px no-repeat, /* 下 */
        repeating-linear-gradient( 90deg, var(--ink) 0 12px, transparent 12px 26px) bottom / 100% 2px no-repeat, /* 左 */
        repeating-linear-gradient( 0deg, var(--ink) 0 12px, transparent 12px 26px) left / 2px 100% no-repeat, /* 右 */
        repeating-linear-gradient( 0deg, var(--ink) 0 12px, transparent 12px 26px) right / 2px 100% no-repeat;
    }
    /* Googleマップ */
    .desktop-side--left .side-map iframe {
        display: block;
        width: 100%;
        height: 200px;
        border: 0;
        border-radius: 15px;
    }
    /* ========================================
     RIGHT SIDE
  ======================================== */
    .desktop-side--right {
        overflow: hidden;
    }
    .desktop-side--right .side-inner {
        width: 100%;
        height: 100vh;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        /* 右は0にして右端へ付ける */
        padding: 176px 0 40px 30px;
    }
    /* ========================================
     Instagram 外枠
  ======================================== */
    .side-instagram-box {
        width: 100%;
        /* max-width: 650px; ← 削除 */
        padding: 35px 35px 40px;
        background: #fff;
        /* 上・下・左だけborder */
        border: 2px solid #f2e4bb;
        border-right: 0;
        /* 右側は角丸なし */
        border-radius: 16px 0 0 16px;
        text-align: center;
    }
    /* ========================================
   ICON
======================================== */
    .side-instagram-icon {
        margin-bottom: 15px;
        line-height: 0;
    }
    .side-instagram-icon img {
        display: block;
        width: 48px;
        height: auto;
        margin: 0 auto;
    }
    /* ========================================
   TEXT
======================================== */
    .desktop-side--right h2 {
        margin: 0 0 15px;
        color: var(--ink);
        font-family: fot-tsukubrdgothic-std, sans-serif;
        font-size: 24px;
        line-height: 1.4;
        font-weight: 700;
        letter-spacing: .05em;
    }
    .desktop-side--right p {
        margin: 0;
        color: var(--ink);
        font-size: 16px;
        line-height: 1.7;
        font-weight: 500;
    }
    /* ========================================
   SLIDER
======================================== */
    .side-instagram-slider {
        position: relative;
        width: 100%;
        margin-top: 25px;
    }
    /* 表示領域 */
    .side-instagram-viewport {
        width: 100%;
        overflow: hidden;
    }
    /* 横並び */
    .side-instagram-track {
        display: flex;
        gap: 14px;
        transition: transform .4s ease;
    }
    /* 1投稿 */
    .side-instagram-slide {
        flex: 0 0 calc((100% - 14px) / 2);
        aspect-ratio: 1 / 1;
        overflow: hidden;
        background: #eee;
        border-radius: 8px;
    }
    /* Instagram埋め込み対策 */
    .side-instagram-slide iframe,
    .side-instagram-slide blockquote {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }
    /* ========================================
   矢印
======================================== */
    .side-instagram-arrow {
        position: absolute;
        top: 50%;
        z-index: 5;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 25px;
        height: 25px;
        /* 矢印文字だけ少し上へ */
        padding: 0 0 9px;
        border: 0;
        border-radius: 0 3px 3px 0;
        /* 白背景 80% */
        background: rgba(255, 255, 255, .8);
        box-shadow: none;
        color: #737373;
        font-size: 30px;
        font-weight: 100;
        line-height: 1;
        cursor: pointer;
        transform: translateY(-50%);
        transition: background .2s ease, opacity .2s ease;
    }
    /* 左 */
    .side-instagram-arrow--prev {
        left: 0;
        border-radius: 0 3px 3px 0;
    }
    /* 右 */
    .side-instagram-arrow--next {
        right: 0;
        border-radius: 3px 0 0 3px;
    }
    /* hover */
    .side-instagram-arrow:hover {
        background: rgba(255, 255, 255, .95);
    }
    .site-main {
        rgba(0,
        0,
        0,
        .18);
    }
}


/* ========================================
   SHOP LIST
   価格＋商工会名をカード下部に固定
======================================== */


/* 同じ段のカード高さを揃える */

.shop-grid {
    align-items: stretch;
}


/* カード自体を縦Flexにする */

.shop-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}


/* 画像は伸縮させない */

.shop-image {
    flex: 0 0 auto;
}


/* 画像より下を残りいっぱいまで伸ばす */

.shop-card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    box-sizing: border-box;
}


/* 店舗名 */

.shop-name {
    flex: 0 0 auto;
}


/* 点線 */

.shop-card-line {
    flex: 0 0 auto;
}


/* 商品名 */

.shop-product {
    flex: 0 0 auto;
}


/* =========================
   価格を下部へ押し込む
========================= */

.shop-price {
    flex: 0 0 auto;
    /* これが重要 */
    margin-top: auto;
    margin-bottom: 7px;
}


/* =========================
   商工会名は価格の直下
========================= */

.shop-association {
    flex: 0 0 auto;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
    box-sizing: border-box;
}


/* ========================================
   SHOP LIST
   第1弾・全商品表示時のみ
   最後のリッツカフェを中央配置
======================================== */


/* 通常は特殊配置しない */

.week-content[data-week-content="week1"] .shop-card:last-child {
    grid-column: auto;
    width: 100%;
    justify-self: stretch;
}


/* 「すべての商品を見る」が選択中のときだけ中央 */

.week-content[data-week-content="week1"] .category-filter:has(.filter-all.is-active)~.shop-grid .shop-card:last-child {
    grid-column: 1 / -1;
    width: calc((100% - 14px) / 2);
    justify-self: center;
}

.shop-product--column {
    flex-direction: column;
}

.shop-product-small {
    display: block;
    font-size: 0.7em;
    font-weight: 700;
    line-height: 1.3;
}

.shop-product-mid {
    display: block;
    font-size: 0.8em;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
}


/* ========================================
   PAGE TOP
======================================== */

.page-top {
    position: fixed;
    right: max(18px, calc((100vw - var(--max-sp)) / 2 + 18px));
    bottom: 20px;
    z-index: 90;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 2px solid #542400;
    border-radius: 50%;
    background: #fff;
    color: #542400;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
}


/* スクロールしたら表示 */

.page-top.is-show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}


/* PCでマウスを乗せた時 */

@media (hover: hover) {
    .page-top:hover {
        background: #542400;
        color: #fff;
    }
}


/* ========================================
   高さが低いPC用
   1280 × 720 など
======================================== */

@media (min-width: 980px) and (max-height: 800px) {
    .desktop-side--left {
        padding-top: 15px;
        padding-bottom: 15px;
    }
    /* ロゴ */
    .desktop-side--left .side-logo {
        width: 180px;
    }
    /* ナビ */
    .desktop-side--left .side-nav {
        margin-top: 35px;
        gap: 18px;
    }
    .desktop-side--left .side-nav__link {
        height: 38px;
        font-size: 17px;
    }
    /* マップ */
    .desktop-side--left .side-map {
        margin-top: 20px;
    }
    .desktop-side--left .side-map iframe {
        height: 190px;
    }
}


/* =========================================================
   SP / TABLET
   中央コンテンツを画面幅100%にする
========================================================= */

@media (max-width: 979px) {
    /* ========================================
     全体
  ======================================== */
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
    .page-shell {
        display: block;
        width: 100%;
        max-width: none;
        min-height: 100vh;
        margin: 0;
        padding: 0;
    }
    /* ========================================
     メイン
  ======================================== */
    .site-main {
        width: 100%;
        max-width: none;
        margin: 0;
        /* PC中央カラム用の枠を消す */
        border-left: 0;
        border-right: 0;
        background: var(--paper);
    }
    /* ========================================
     PCサイドは非表示
  ======================================== */
    .desktop-side {
        display: none !important;
    }
    /* ========================================
     ハンバーガー
     画面右端を基準にする
  ======================================== */
    .menu-toggle {
        right: 18px;
    }
    /* ========================================
     ハンバーガーメニュー
     画面いっぱい
  ======================================== */
    .global-menu {
        left: 0;
        width: 100%;
        max-width: none;
        transform: translateY(-20px);
    }
    .global-menu.is-open {
        transform: translateY(0);
    }
    /* ========================================
     HERO
  ======================================== */
    .hero {
        width: 100%;
        background-size: 100% auto;
    }
    /* メインロゴ */
    .event-mark {
        width: 100%;
        max-width: 375px;
    }
    .event-mark img {
        width: 100%;
        max-width: 375px;
        height: auto;
    }
    /* ========================================
     ACCESS 背景
  ======================================== */
    .access {
        width: 100%;
        /*
      400px固定だった背景を
      スマホ幅に合わせる
    */
        background-size: 100% auto;
    }
    /* ========================================
     ACCESS → SHOP 切り替え画像
  ======================================== */
    .access-shop-transition {
        width: 100%;
    }
    .access-shop-transition img {
        display: block;
        width: 100%;
        height: auto;
        margin: 0;
    }
    /* ========================================
     SHOP LIST
  ======================================== */
    .shops {
        width: 100%;
        background-size: 100% auto;
    }
    /* ========================================
     INSTAGRAM
  ======================================== */
    .instagram {
        width: 100%;
    }
    /* ========================================
     FOOTER
  ======================================== */
    .site-footer {
        width: 100%;
    }
}


/* ========================================
   TABLET PC LAYOUT
   980px ～ 1200px
======================================== */

@media (min-width: 980px) and (max-width: 1200px) {
    /* ========================================
     RIGHT INSTAGRAM
     上へ詰める
  ======================================== */
    .desktop-side--right .side-inner {
        align-items: flex-start;
        padding-top: 100px;
        padding-left: 20px;
        padding-bottom: 20px;
    }
    /* Instagram BOX */
    .side-instagram-box {
        padding: 30px 24px 30px;
    }
    /* ========================================
     Instagram 1件表示
  ======================================== */
    .side-instagram-slide {
        flex: 0 0 100%;
    }
}


/* ========================================
   モーダル内ボタン スマホ調整
======================================== */

@media (max-width: 767px) {
    /* 楽天ショップ */
    .shop-modal__rakuten {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .shop-modal__rakuten a {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding: 10px 12px;
        box-sizing: border-box;
        font-size: 16px;
        white-space: nowrap;
    }
    /* 試食BAR */
    .shop-modal__bar {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    /* 試食BARの見出しボタン */
    .shop-modal__bar-toggle {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding-left: 12px;
        padding-right: 12px;
        box-sizing: border-box;
        font-size: 16px;
        white-space: nowrap;
    }
    /* 開いた中身 */
    .shop-modal__bar-content {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    /* 公式サイトボタン */
    .shop-modal__bar-link {
        width: 100%;
        max-width: 100%;
        padding: 0 16px;
        box-sizing: border-box;
    }
    .shop-modal__bar-link a {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
}


/* =========================================================
   SMALL SP
   375px以下のスマホ調整
========================================================= */

@media (max-width: 375px) {
    /* ========================================
     全体
  ======================================== */
    .site-main {
        width: 100%;
    }
    img,
    iframe {
        max-width: 100%;
    }
    /* ========================================
     HERO / 開催日
  ======================================== */
    .hero {
        padding-left: 15px;
        padding-right: 15px;
    }
    .event-mark {
        height: auto;
        min-height: 480px;
    }
    .event-date {
        font-size: 29px;
    }
    .event-date span {
        font-size: 21px;
    }
    .event-date small {
        width: 20px;
        height: 20px;
        font-size: 11px;
    }
    /* ========================================
     ABOUT
  ======================================== */
    .about-item__photo--01 {
        width: 82%;
    }
    .about-item__photo--02 {
        width: 87%;
    }
    .about-item__chara--01 {
        width: 115px;
        left: 0;
    }
    .about-item__chara--02 {
        width: 135px;
        right: -5px;
    }
    .about-item__box__01 h3,
    .about-item__box__02 h3 {
        font-size: 18px;
    }
    .about-item__box__01 h3 small,
    .about-item__box__02 h3 small {
        font-size: 14px;
    }
    /* ========================================
     ACCESS
  ======================================== */
    .access {
        padding-left: 10px;
        padding-right: 10px;
    }
    .route-tabs {
        gap: 2px;
    }
    .route-tab {
        min-width: 0;
        padding-left: 1px;
        padding-right: 1px;
        font-size: 14px;
    }
    .route-tab small {
        font-size: 10px;
    }
    .route-main {
        font-size: 14px;
    }
    .route-estimate p {
        font-size: 14px;
    }
    .map-card__body p {
        font-size: 14px;
        overflow-wrap: anywhere;
    }
    /* ========================================
     SHOP LIST
  ======================================== */
    .shops {
        padding-left: 10px;
        padding-right: 10px;
    }
    .shops-character--left {
        width: 80px;
    }
    .shops-character--right {
        width: 100px;
    }
    .week-tabs {
        gap: 5px;
    }
    .week-tab {
        font-size: 14px;
        padding-left: 2px;
        padding-right: 2px;
    }
    .week-tab span {
        font-size: 21px;
    }
    /* カテゴリー */
    .category-filter {
        width: calc(100% - 16px);
        padding-left: 10px;
        padding-right: 10px;
    }
    .category-filter__buttons {
        gap: 6px 4px;
    }
    .category-filter button {
        min-width: 0;
        padding-left: 3px;
        padding-right: 3px;
    }
    /* ========================================
     店舗カード
  ======================================== */
    .shop-card {
        min-width: 0;
    }
    .shop-card-body {
        min-width: 0;
    }
    .shop-name,
    .shop-product,
    .shop-price {
        overflow-wrap: anywhere;
        word-break: normal;
    }
    .shop-price {
        line-height: 1.4;
    }
    /* ========================================
     モーダル
  ======================================== */
    .shop-modal__content {
        width: calc(100% - 20px);
        max-width: calc(100% - 20px);
    }
    .shop-modal__body {
        padding-left: 14px;
        padding-right: 14px;
    }
    .shop-modal__name,
    .shop-modal__product,
    .shop-modal__description {
        overflow-wrap: anywhere;
    }
    .shop-modal__info p {
        min-width: 0;
    }
    .shop-modal__info p span {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    /* 楽天 */
    .shop-modal__rakuten {
        padding-left: 8px;
        padding-right: 8px;
    }
    .shop-modal__rakuten a {
        font-size: 15px;
        padding-left: 8px;
        padding-right: 8px;
        white-space: normal;
    }
    /* 試食BAR */
    .shop-modal__bar-toggle {
        font-size: 15px;
        padding-left: 10px;
        padding-right: 10px;
        white-space: normal;
    }
    .shop-modal__bar-toggle>span:first-child {
        min-width: 0;
    }
    .shop-modal__bar-text,
    .shop-modal__bar-address {
        overflow-wrap: anywhere;
    }
    .shop-modal__bar-link {
        padding-left: 8px;
        padding-right: 8px;
    }
}


/* =========================================================
   VERY SMALL SP
   340px以下
========================================================= */

@media (max-width: 340px) {
    /* 開催日 */
    .event-date {
        font-size: 26px;
    }
    .event-date span {
        font-size: 19px;
    }
    /* ACCESS 4タブ */
    .route-tab {
        font-size: 12px;
    }
    .route-tab small {
        font-size: 9px;
    }
    /* 店舗切替 */
    .week-tab {
        font-size: 13px;
    }
    .week-tab span {
        font-size: 19px;
    }
    /* モーダルボタン */
    .shop-modal__rakuten a,
    .shop-modal__bar-toggle {
        font-size: 14px;
    }
}

@media (max-width: 979px) {
    .shop-modal {
        overflow-y: auto;
        align-items: flex-start;
        padding: 30px 0;
    }
    .shop-modal__content {
        height: auto;
        max-height: none;
        overflow: visible;
    }
    .shop-modal__bar,
    .shop-modal__bar-content {
        height: auto;
    }
    .shop-modal__bar.is-open .shop-modal__bar-content {
        height: auto;
        max-height: none;
        overflow: visible;
    }
    .nebaaru-event__character-image {
        right: -24px;
    }
}

/* ========================================
   INSTAGRAM LINK
======================================== */

.instagram-flyer {
  width: 100%;
  max-width: 220px;
  margin: 10px auto 0;
}

.instagram-flyer img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: 0 4px 12px rgba(79, 36, 0, .15);
}

/* PC右サイドバー：高さ基準で収める */
.side-instagram-box .instagram-flyer {
  width: auto;
  max-width: none;
  margin: 15px 0 0;
  text-align: center;
}

.side-instagram-box .instagram-flyer img {
  display: inline-block;
  width: auto;
  max-width: 100%;
  max-height: 28vh;
}

.instagram-link-area {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 20px 15px 30px;
}

.instagram-link-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  max-width: 280px;
  min-height: 58px;
  padding: 10px 25px;

  background: #fff;
  border: 2px solid #4F2400;
  border-radius: 999px;

  color: #4F2400;
  font-family: fot-tsukubrdgothic-std, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .05em;
  text-decoration: none;

  box-shadow: 0 5px 0 #4F2400;

  transition:
    transform .15s ease,
    box-shadow .15s ease;
}

.instagram-link-button:hover {
  transform: translateY(2px);
  box-shadow: 0 3px 0 #4F2400;
}

.instagram-link-button:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 #4F2400;
}
/* ========================================
   EVENT INFO IMAGE
======================================== */

.event-info-image {
  width: 100%;
  max-width: 275px;
  margin: 0 auto 28px;
}

.event-info-image img {
  display: block;
  width: 100%;
  height: auto;
}
/* ========================================
   INSTAGRAM INFO IMAGE
======================================== */

.side-instagram-info-image {
  width: 100%;
  margin: 0 auto 20px;
  text-align: center;
}

.side-instagram-info-image img {
  display: block;
  width: 100%;
  max-width: 320px;
  height: auto;
  margin: 0 auto;
}

.tb_hc_contant_wrapper  {
    display: none !important;
}

.tb_hc_image_wrap_  {
    padding-bottom: 125% !important;
}