/* ==========================================================
   居酒屋どんとこい PWA スタイルシート
   配色・構成は公式サイト(https://izakaya-dontokoi.com/)のスマホ表示を基準にしている。
   ========================================================== */
:root{
  --cream:#f4ead2;
  --cream-2:#ece0bf;
  --dark:#251710;
  --dark-2:#2f1e14;
  --dark-3:#3c2818;
  --red:#b6392a;
  --red-dark:#8c2f1d;
  --gold:#dba233;
  --gold-soft:#e8bd66;
  --text-cream:#f7efdc;
  --text-cream-soft:rgba(247,239,220,0.68);
  --text-dark:#241509;
  --text-dark-soft:#6f5b45;
  --paper:#fbf6e9;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  background:var(--cream);
  color:var(--text-dark);
  font-family:'Noto Sans JP', sans-serif;
  min-height:100vh;
  overflow-x:hidden;
  -webkit-tap-highlight-color:transparent;
}
.hidden{display:none !important;}
[hidden]{display:none !important;}
img{max-width:100%;}
button{font-family:inherit;}

/* ---- splash ---- */
.splash{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 20% -10%, rgba(219,162,51,0.18), transparent 45%), var(--dark);
  transition:opacity .6s ease;
}
.splash.hide{opacity:0;pointer-events:none;}
.splash-logo{width:min(64vw, 280px);height:auto;object-fit:contain;}

/* ---- header ----
   ロゴを左端・ハンバーガーボタンを右端に固定する。中間の電話番号リンクの
   表示・非表示に関わらず両端が動かないよう、margin-left:autoではなく
   コンテナ自体をjustify-content:space-betweenにして構造で保証する。
   safe-area-inset-top/right/leftでノッチ・Dynamic Island・ステータスバーを避ける。 */
.site-header{
  position:sticky;top:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-top:calc(env(safe-area-inset-top) + 10px);
  padding-right:calc(env(safe-area-inset-right) + 16px);
  padding-bottom:10px;
  padding-left:calc(env(safe-area-inset-left) + 16px);
  background:var(--cream);
  border-bottom:1px solid rgba(140,47,29,0.18);
}
.brand-link{display:flex;align-items:center;text-decoration:none;flex-shrink:0;}
.brand-logo{height:36px;width:auto;display:block;}
.header-tel{text-align:right;text-decoration:none;color:var(--text-dark);display:none;flex-shrink:0;}
.header-tel-label{display:block;font-size:9px;color:var(--text-dark-soft);}
.header-tel-number{display:block;font-size:13px;font-weight:700;}
.hamburger-btn{
  /* justify-content:space-betweenで右端に固定。margin-leftには依存しない。 */
  width:42px;height:42px;border:0;background:var(--dark);border-radius:8px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  cursor:pointer;flex-shrink:0;
}
.hamburger-btn span{display:block;width:20px;height:2px;background:var(--text-cream);transition:transform .25s ease, opacity .25s ease;}
.hamburger-btn.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger-btn.active span:nth-child(2){opacity:0;}
.hamburger-btn.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(min-width:400px){ .header-tel{display:block;} }

/* ---- nav drawer ---- */
.nav-scrim{
  position:fixed;inset:0;z-index:89;background:rgba(20,12,8,0);transition:background .25s ease;
}
.nav-scrim.open{background:rgba(20,12,8,0.55);}
.nav-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:90;
  width:min(78vw, 320px);
  background:var(--dark);color:var(--text-cream);
  padding:80px 24px 24px;
  transform:translateX(100%);
  transition:transform .28s ease;
  overflow-y:auto;
}
.nav-drawer.open{transform:translateX(0);}
.nav-drawer ul{list-style:none;margin:0;padding:0;}
.nav-drawer li{border-bottom:1px solid rgba(247,239,220,0.12);}
.nav-link{
  display:flex;align-items:center;gap:8px;
  padding:16px 4px;color:var(--text-cream);text-decoration:none;
  font-size:15px;font-weight:700;letter-spacing:.03em;
}
.nav-link-accent{color:var(--gold-soft);}

/* ---- hero ---- */
.hero-section{width:100%;}
.hero-media{
  position:relative;
  aspect-ratio:4/3;
  width:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;
  padding:24px;
  text-align:center;
  background:
    repeating-linear-gradient(135deg, rgba(219,162,51,0.06) 0 2px, transparent 2px 18px),
    radial-gradient(ellipse at 30% 0%, rgba(182,57,42,0.55), transparent 55%),
    radial-gradient(ellipse at 80% 100%, rgba(219,162,51,0.25), transparent 55%),
    var(--dark);
}
.hero-logo-row{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(6px,2.4vw,16px);
  width:100%;
  max-width:420px;
}
.hero-logo{
  width:clamp(140px,44vw,220px);
  flex:0 1 auto;
  height:auto;object-fit:contain;
  min-width:0;
}
.hero-face{
  width:clamp(40px,13vw,72px);
  aspect-ratio:1/1;
  flex:0 0 auto;
  object-fit:contain;
  display:block;
}
.hero-tagline{
  margin:0;color:var(--text-cream);
  font-size:clamp(13px,3.6vw,15px);
  line-height:1.8;letter-spacing:.02em;
  max-width:320px;
}

/* ---- generic page section ---- */
.page-section{padding:44px 20px 40px;position:relative;}
.dark-section{background:var(--dark);color:var(--text-cream);}
.cream-section{background:var(--cream);color:var(--text-dark);}
.section-kicker{
  font-family:'Dela Gothic One', sans-serif;
  font-size:13px;letter-spacing:.12em;
  color:var(--gold-soft);
  text-align:center;margin-bottom:6px;
}
.accent-on-cream{color:var(--red);}
.accent-gold{color:var(--gold-soft);}
.section-heading{
  font-family:'Dela Gothic One', sans-serif;
  font-size:clamp(26px,7.5vw,32px);
  text-align:center;
  margin:0 0 22px;
  line-height:1.3;
  color:var(--text-cream);
}
.section-heading.dark-text{color:var(--text-dark);}
.section-heading.serif-heading{font-family:'Dela Gothic One', sans-serif;}
.section-lead{font-size:13px;line-height:1.8;text-align:center;color:var(--text-cream-soft);max-width:320px;margin:0 auto 24px;}
.section-lead.dark{color:var(--text-dark-soft);}
.section-sub{font-size:12px;color:var(--text-cream-soft);margin:22px 0 10px;letter-spacing:.05em;}
.section-sub.light{color:var(--text-dark-soft);}
.dark-section .section-sub{color:var(--text-cream-soft);}
.empty-hint{text-align:center;color:var(--text-cream-soft);padding:36px 16px;font-size:13px;line-height:1.8;}
.cream-section .empty-hint{color:var(--text-dark-soft);}

/* ---- concept ---- */
.concept-media{
  aspect-ratio:16/9;width:100%;border-radius:14px;margin-bottom:20px;
  overflow:hidden;
  background:var(--cream-2);
}
.concept-media img{width:100%;height:100%;object-fit:cover;display:block;}
.concept-text{font-size:14px;line-height:2;color:var(--text-dark-soft);text-align:center;max-width:420px;margin:0 auto;}

/* ---- member / points ---- */
.customer-account{border:1px solid rgba(219,162,51,.45);background:var(--dark-2);border-radius:16px;padding:20px;margin-bottom:20px;}
.customer-account h2{font-size:17px;line-height:1.8;margin:0 0 16px;text-align:center;color:var(--text-cream);font-family:'Noto Serif JP',serif;}
.customer-account small{display:block;margin-top:6px;color:var(--text-cream-soft);}
.customer-account p{font-size:13px;line-height:1.8;overflow-wrap:anywhere;}
#customerSessionStatus:empty,#customerMemberStatus:empty{display:none;}
#customerMemberDetails{font-size:13px;margin-top:12px;}
#customerMemberDetails summary{cursor:pointer;min-height:44px;padding:12px 0;color:var(--text-cream-soft);}
#memberPoints[hidden]{display:none!important;}
#pointsStatus{font-size:14px;line-height:1.8;overflow-wrap:anywhere;}
#pointsStatus:empty{display:none;}

.points-card{
  background:linear-gradient(135deg, rgba(182,57,42,0.4), rgba(219,162,51,0.18));
  border:1px solid rgba(219,162,51,0.45);
  border-radius:18px;padding:24px;text-align:center;margin-bottom:18px;
}
.points-card .lab{font-size:12px;color:var(--text-cream-soft);letter-spacing:.08em;}
.points-card .num{font-family:'Dela Gothic One', sans-serif;font-size:38px;color:var(--gold-soft);margin:8px 0;}

.history-row{
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(247,239,220,0.06);border:1px solid rgba(247,239,220,0.14);
  border-radius:12px;padding:12px 14px;margin-bottom:8px;font-size:12px;
}
.history-row.expired{opacity:0.4;}
.history-row .left .date{font-weight:700;font-size:13px;}
.history-row .left .expiry{color:var(--text-cream-soft);margin-top:2px;}
.history-row .pt{font-weight:900;color:var(--gold-soft);font-size:14px;flex-shrink:0;margin-left:12px;}
.history-row.expired .pt{color:rgba(247,239,220,0.4);}
.history-row.redemption-history .pt{color:#ffb3a5;}
#pointsHistoryList .left{min-width:0;overflow-wrap:anywhere;}

/* ---- buttons ---- */
.btn{border:none;border-radius:14px;font-weight:900;cursor:pointer;letter-spacing:.03em;}
.btn-primary{background:var(--red);color:#fff;padding:16px 22px;font-size:16px;min-height:56px;width:100%;box-shadow:0 8px 20px rgba(140,47,29,0.35);}
.btn-primary:disabled{background:rgba(247,239,220,0.15);color:rgba(247,239,220,0.4);box-shadow:none;cursor:default;}
.btn-ghost{background:transparent;border:1px solid rgba(247,239,220,0.35);color:var(--text-cream);padding:12px 18px;font-size:13px;min-height:44px;width:100%;margin-top:10px;}
.cream-section .btn-ghost{border-color:rgba(36,21,9,0.3);color:var(--text-dark);}
.use-points-cta{margin-top:14px;background:var(--gold);color:var(--text-dark);}
.push-btn{margin-bottom:14px;}
.scan-status{font-size:13px;color:var(--gold-soft);font-weight:700;margin-top:4px;min-height:18px;text-align:center;}

/* ---- announcements ---- */
.announce-item{
  background:rgba(247,239,220,0.06);border:1px solid rgba(247,239,220,0.14);
  border-radius:14px;padding:14px 16px;margin-bottom:10px;position:relative;cursor:pointer;
}
.announce-item .new-badge{position:absolute;top:-8px;right:12px;background:var(--red);color:#fff;font-size:10px;font-weight:900;padding:3px 8px;border-radius:999px;}
.announce-item .title{font-weight:700;font-size:14px;margin-bottom:4px;padding-right:40px;}
.announce-item .date{font-size:10px;color:var(--text-cream-soft);margin-bottom:8px;}
.announce-item .body{font-size:13px;color:var(--text-cream-soft);line-height:1.6;}

/* ---- menu (MENU section) ---- */
.menu-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px;}
.menu-teaser-card{background:var(--paper);border-radius:14px;padding:14px;box-shadow:0 3px 0 var(--cream-2), 0 6px 14px rgba(0,0,0,0.08);}
.teaser-media{aspect-ratio:1/1;border-radius:10px;margin-bottom:10px;overflow:hidden;background:var(--cream-2);}
.teaser-media img{width:100%;height:100%;object-fit:cover;display:block;}
.menu-teaser-card h3{font-size:14px;margin:0 0 6px;font-family:'Noto Serif JP',serif;color:var(--text-dark);}
.menu-teaser-card p{font-size:11px;line-height:1.6;color:var(--text-dark-soft);margin:0;}

.section-title{
  font-family:'Noto Serif JP', serif;font-size:15px;font-weight:700;
  margin:22px 4px 10px;padding-left:10px;border-left:4px solid var(--red);
}
.cream-section .section-title{color:var(--text-dark);}
.dark-section .section-title{color:var(--text-cream);border-left-color:var(--gold);}

.item-card{
  display:flex;gap:14px;background:var(--paper);color:var(--text-dark);
  border-radius:14px;padding:14px;margin-bottom:10px;
  box-shadow:0 3px 0 var(--cream-2), 0 6px 14px rgba(0,0,0,0.12);
}
.item-card .thumb,.item-card .menu-photo{flex:0 0 auto;width:64px;height:64px;border-radius:12px;background:var(--cream-2);}
.item-card .thumb{display:flex;align-items:center;justify-content:center;font-size:26px;}
.item-card .info{flex:1;min-width:0;}
.item-card .name{font-weight:700;font-size:15px;line-height:1.3;overflow-wrap:anywhere;}
.item-card .price{font-weight:900;font-size:14px;color:var(--red-dark);margin-top:4px;}
.item-card .desc{font-size:12px;color:var(--text-dark-soft);margin-top:4px;line-height:1.5;}
.item-card .menu-description{white-space:pre-wrap;overflow-wrap:anywhere;}
.item-card.menu-sold-out{background:#e9e0cd;}
.menu-sold-out-badge{display:inline-block;background:#6b5147;color:#fff;font-size:12px;font-weight:700;border-radius:5px;padding:3px 8px;margin-bottom:6px;}
.menu-hint{font-size:13px;line-height:1.7;padding:14px 8px;}
.dark-section .menu-hint{color:var(--text-cream-soft);}
.cream-section .menu-hint{color:var(--text-dark-soft);}
.item-card.has-menu-photo .thumb{display:none;}
.item-card .menu-photo{display:block;aspect-ratio:1/1;object-fit:cover;}
.item-card .menu-text-placeholder{padding:4px;text-align:center;font-size:11px;font-weight:900;line-height:1.35;letter-spacing:-.04em;color:var(--red-dark);border:1px solid rgba(140,47,29,.25);}
.item-card .placeholder-limited,.item-card .placeholder-weekday{font-size:10px;letter-spacing:.03em;color:var(--text-cream);background:var(--dark-3);border-color:var(--gold);}

/* CHECK section uses item-card on dark bg, adjust contrast */
#checkItems .item-card{box-shadow:0 3px 0 var(--cream-2), 0 10px 22px rgba(0,0,0,0.35);}

/* ---- gallery ---- */
.gallery-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;position:relative;border-radius:12px;}
.gallery-slide{flex:0 0 92%;aspect-ratio:16/9;scroll-snap-align:start;position:relative;border-radius:12px;overflow:hidden;background:var(--cream-2);}
.gallery-slide:last-child{scroll-snap-align:end;}
.gallery-slide:only-child{flex-basis:100%;}
.gallery-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery-image-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;font-size:13px;}
.gallery-controls{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;margin-top:12px;}
.gallery-controls>button{width:40px;height:40px;border:1px solid var(--red);border-radius:50%;background:transparent;color:var(--red-dark);font-size:24px;cursor:pointer;}
.gallery-controls>button:disabled{opacity:.3;cursor:default;}
.gallery-dots{display:flex;}
.gallery-dot{width:28px;height:40px;padding:0;border:0;background:transparent;cursor:pointer;}
.gallery-dot::before{content:'';display:block;width:9px;height:9px;border-radius:50%;margin:auto;background:#c7b998;}
.gallery-dot[aria-current=true]::before{background:var(--red);}
.gallery-count{width:100%;text-align:center;font-size:12px;color:var(--text-dark-soft);}
.default-gallery-track{margin-bottom:4px;}
.osusume-track{margin-bottom:32px;}

/* ---- access ---- */
#storeInfoStatus{font-size:13px;line-height:1.7;text-align:center;color:var(--text-cream-soft);}
.store-info-card{background:var(--paper);color:var(--text-dark);border-radius:14px;padding:18px;margin:16px 0;min-width:0;overflow-wrap:anywhere;}
.store-info-card h3{font-size:16px;margin:0 0 16px;font-family:'Noto Serif JP',serif;}
.store-info-card a{color:var(--red-dark);text-underline-offset:3px;}
.store-info-details{display:grid;grid-template-columns:5em minmax(0,1fr);gap:15px 12px;margin:0;font-size:14px;line-height:1.8;}
.store-info-details dt{font-weight:700;color:var(--text-dark-soft);}
.store-info-details dd{margin:0;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;}
.store-map{display:block;width:100%;height:230px;border:0;border-radius:10px;background:var(--cream-2);}
.store-link-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px;margin-top:14px;border:1px solid var(--red);border-radius:10px;text-decoration:none;font-size:14px;font-weight:700;text-align:center;overflow-wrap:anywhere;color:var(--red-dark);}
#reloadStoreInfoBtn{display:block;margin:14px auto 0;background:none;border:0;color:var(--text-cream-soft);text-decoration:underline;font:inherit;font-size:12px;min-height:44px;cursor:pointer;}

/* ---- instagram ---- */
.store-instagram-link{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none;color:var(--text-dark);}
.store-instagram-link svg{width:28px;height:28px;flex-shrink:0;color:var(--red);}
.store-instagram-link span{min-width:0;overflow-wrap:anywhere;font-weight:700;}
.store-instagram-link small{display:block;margin-top:4px;font-size:12px;color:var(--text-dark-soft);font-weight:400;}
.instagram-fallback-link{max-width:280px;margin:0 auto;}

/* ---- footer ---- */
.site-footer{
  background:var(--dark);color:var(--text-cream-soft);
  padding:40px 20px calc(120px + env(safe-area-inset-bottom));
  text-align:center;
}
.footer-logo-link{display:inline-block;margin-bottom:18px;}
.footer-logo{width:150px;height:auto;}
.footer-tel{display:block;color:var(--gold-soft);text-decoration:none;font-weight:700;font-size:14px;margin-bottom:20px;}
.footer-nav ul{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;}
.footer-nav a{color:var(--text-cream-soft);text-decoration:none;font-size:12px;}
.footer-copy{font-size:11px;color:rgba(247,239,220,0.45);margin:0;}

/* ---- reservation floating bar ---- */
.reserve-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  display:flex;align-items:center;justify-content:center;
  background:var(--gold);color:var(--text-dark);
  font-weight:900;font-size:14px;letter-spacing:.03em;
  padding:16px 12px calc(16px + env(safe-area-inset-bottom));
  text-decoration:none;
  box-shadow:0 -6px 16px rgba(0,0,0,0.2);
}

/* ---- overlays ---- */
.overlay{position:fixed;inset:0;background:rgba(15,9,6,0.88);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;z-index:120;}
.camera-wrap{position:relative;width:100%;max-width:340px;aspect-ratio:1/1;background:#000;border-radius:18px;overflow:hidden;margin-bottom:16px;}
.camera-wrap video{width:100%;height:100%;object-fit:cover;}
.scan-frame{position:absolute;inset:14%;border:3px solid var(--gold);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,0.4);}
.scan-hint{font-size:13px;color:var(--text-cream-soft);line-height:1.6;text-align:center;max-width:320px;}
.paper-card{background:var(--paper);color:var(--text-dark);border-radius:18px;padding:26px 22px;width:100%;max-width:340px;box-shadow:0 20px 50px rgba(0,0,0,0.5);text-align:center;}
.paper-card .big-icon{font-size:40px;margin-bottom:6px;}
.paper-card .msg{font-size:16px;font-weight:700;line-height:1.7;margin:6px 0 4px;}
.paper-card .sub-msg{font-size:12px;color:var(--text-dark-soft);margin-bottom:14px;}
.announce-detail .detail-title{font-family:'Noto Serif JP', serif;font-weight:900;font-size:17px;text-align:left;line-height:1.5;}
.announce-detail .detail-date{font-size:11px;color:var(--text-dark-soft);text-align:left;margin:6px 0 14px;}
.announce-detail .detail-body{font-size:14px;line-height:1.8;color:var(--text-dark);text-align:left;white-space:pre-wrap;margin-bottom:20px;}

/* ---- dialogs (customer auth / rewards / visit) ---- */
dialog{border:none;padding:0;}
.customer-auth-dialog,.rewards-dialog,.visit-dialog{
  width:calc(100% - 28px);max-width:440px;max-height:90dvh;overflow-y:auto;
  border:1px solid var(--gold);border-radius:16px;background:var(--dark-2);color:var(--text-cream);
}
.customer-auth-dialog{padding:22px;}
.customer-auth-dialog::backdrop,.rewards-dialog::backdrop,.visit-dialog::backdrop{background:rgba(10,6,4,.85);}
.customer-auth-dialog h2{font-size:20px;margin:0 0 20px;font-family:'Noto Serif JP',serif;}
.customer-auth-dialog label{display:block;line-height:1.8;font-size:16px;margin:12px 0;}
.customer-auth-dialog input{width:100%;min-width:0;padding:15px 12px;border:1px solid var(--gold);border-radius:10px;font:inherit;font-size:22px;background:var(--paper);color:var(--text-dark);}
.customer-auth-dialog .privacy-note{font-size:12px;line-height:1.8;color:var(--text-cream-soft);margin:14px 0 20px;}
#customerOtp{letter-spacing:.16em;text-align:center;}
#customerOtpDestination{font-size:14px;color:var(--text-cream-soft);}
#customerAuthMessage,#customerSendWait{font-size:14px;line-height:1.8;overflow-wrap:anywhere;}
#customerAuthMessage:empty,#customerSendWait:empty{display:none;}

.rewards-dialog{padding:0;box-sizing:border-box;}
.rewards-dialog[open]:not(.rewards-confirm){display:flex;flex-direction:column;}
.rewards-header{padding:16px 18px;border-bottom:1px solid rgba(219,162,51,.4);flex-shrink:0;}
.rewards-header h2{font-size:18px;margin:0 0 8px;font-family:'Noto Serif JP',serif;}
.rewards-header strong{font-size:22px;color:var(--gold-soft);}
.rewards-body{padding:0 16px 16px;overflow-y:auto;min-height:0;}
.rewards-footer{display:flex;gap:8px;padding:0 16px 14px;flex-shrink:0;}
.reward-card{background:var(--paper);color:var(--text-dark);padding:16px;margin:12px 0;border-radius:12px;}
.reward-card h3{font-size:16px;margin:0 0 8px;overflow-wrap:anywhere;font-family:'Noto Serif JP',serif;}
.reward-price{font-size:20px;font-weight:900;color:var(--red-dark);}
.reward-description{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;}
.reward-availability{font-size:13px;font-weight:700;}
.reward-card .btn:disabled{color:var(--text-dark-soft);background:#ddd4c4;box-shadow:none;}
.reward-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--paper);color:var(--text-dark);border-radius:12px;padding:18px;}
.reward-summary dd{margin:0;text-align:right;font-weight:900;}
.reward-staff-message{padding:14px;border:1px solid var(--gold);border-radius:10px;line-height:1.7;font-weight:700;}
.rewards-confirm{padding:22px;}
.rewards-confirm h2{font-size:18px;font-family:'Noto Serif JP',serif;}
#redeemConfirmText{white-space:pre-wrap;line-height:1.8;}
#confirmRedeemBtn{margin-top:20px;}
#rewardsStatus{font-size:13px;line-height:1.7;overflow-wrap:anywhere;}
#rewardCompleteView{text-align:center;}
.redeemed-stamp{font-size:34px;font-weight:900;color:var(--gold-soft);border:3px double var(--gold);border-radius:12px;padding:16px;margin:18px 0;}
.redemption-id{font-size:11px;overflow-wrap:anywhere;}

.visit-dialog{padding:24px 18px;text-align:center;}
.visit-dialog h2{font-size:22px;line-height:1.5;margin:0 0 20px;font-family:'Noto Serif JP',serif;}
.visit-dialog p{font-size:17px;line-height:1.8;overflow-wrap:anywhere;}
.visit-dialog .btn{font-size:17px;line-height:1.6;min-height:58px;white-space:normal;margin-top:14px;}
#visitResult{font-size:22px;font-weight:700;white-space:pre-line;color:var(--gold-soft);}
#visitResult:empty{display:none;}

/* ---- unread badge ---- */
.unread-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 4px;margin-left:6px;
  border-radius:999px;background:var(--red);color:#fff;
  font-family:Arial,sans-serif;font-size:10px;font-weight:700;line-height:1;white-space:nowrap;
}

/* ---- small screens (320px〜) ---- */
@media(max-width:359px){
  .page-section{padding:34px 14px 32px;}
  .store-info-card{padding:14px;}
  .store-info-details{grid-template-columns:4em minmax(0,1fr);gap:12px 8px;font-size:13px;}
  .store-map{height:200px;}
  .section-heading{font-size:24px;}
}

/* ---- larger phones (480px〜) keep content from stretching too wide ---- */
@media(min-width:480px){
  .app,.site-header,.site-footer{max-width:480px;margin-left:auto;margin-right:auto;}
  .nav-drawer{width:320px;}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .gallery-track{scroll-behavior:auto;}
}
