:root{
  --G:#7DC221;--GD:#4f8c0e;--GL:#a8d84a;--GP:#d6f090;--GBG:#f4fae2;
  --black:#1a1a1a;--white:#fff;--text:#1e1e1e;--tsub:#666;--border:#c8eeaa;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:'Zen Kaku Gothic New',sans-serif;color:var(--text);overflow-x:hidden;-webkit-text-size-adjust:100%;background:var(--white);}
img{max-width:100%;display:block;}
a{text-decoration:none;}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  background:var(--G);height:56px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;box-shadow:0 2px 16px rgba(0,0,0,0.18);
}
.nav-logo img{height:32px;width:auto;}
.nav-back{color:rgba(255,255,255,0.92);font-size:0.82rem;font-weight:700;letter-spacing:0.04em;display:flex;align-items:center;gap:5px;}
.nav-back:hover{color:white;}

/* PAGE HEADER */
.page-header{
  background:var(--G);padding:76px 20px 32px;text-align:center;
  position:relative;overflow:hidden;
}
.ph-circle{position:absolute;border-radius:50%;background:rgba(255,255,255,0.07);pointer-events:none;}
.ph1{width:360px;height:360px;top:-140px;right:-100px;}
.ph2{width:220px;height:220px;bottom:-70px;left:-50px;}
.page-header h1{
  font-family:'Noto Serif JP',serif;font-size:clamp(1.6rem,5vw,2.4rem);
  font-weight:700;color:white;position:relative;z-index:1;margin-bottom:4px;
}
.page-header p{font-size:0.75rem;color:rgba(255,255,255,0.62);letter-spacing:0.18em;position:relative;z-index:1;}

/* NOTICE */
.notice{
  background:white;border-left:4px solid var(--G);
  margin:20px 16px;padding:14px 16px;border-radius:0 10px 10px 0;
  font-size:0.86rem;line-height:1.9;color:var(--text);
}
.notice strong{color:var(--GD);}

/* SECTION */
.sec{padding:0 16px 100px;}
.lbl{display:inline-block;font-family:'Bebas Neue',sans-serif;font-size:0.72rem;letter-spacing:0.26em;color:var(--GD);background:var(--GP);padding:3px 12px;border-radius:20px;margin-bottom:10px;}
.sec-title{font-family:'Noto Serif JP',serif;font-size:1.45rem;font-weight:700;margin-bottom:18px;color:var(--text);}

/* TABS */
.tab-bar{
  display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;margin-bottom:18px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.tab-bar::-webkit-scrollbar{display:none;}
.tab-btn{
  flex-shrink:0;background:var(--GBG);color:var(--GD);
  border:2px solid var(--border);border-radius:50px;
  font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;
  font-size:0.78rem;padding:6px 14px;cursor:pointer;transition:all 0.18s;white-space:nowrap;
min-height:44px;}
.tab-btn.active{background:var(--G);color:white;border-color:var(--G);}
.tab-btn:hover:not(.active){background:var(--GP);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* MENU ROWS */
.menu-list{display:flex;flex-direction:column;}
.menu-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 10px;border-bottom:1px solid #efefef;gap:10px;
  border-radius:8px;transition:background 0.15s;
}
.menu-row:first-child{border-top:1px solid #efefef;}
.menu-row:hover{background:var(--GBG);}
.menu-row.in-cart{background:#edfcd4;}
.menu-row-left{flex:1;min-width:0;}
.menu-row-name{font-weight:700;font-size:0.9rem;margin-bottom:2px;line-height:1.4;}
.menu-row-desc{font-size:0.74rem;color:var(--tsub);line-height:1.5;}
.menu-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0;}
.price-block{display:flex;flex-direction:column;align-items:flex-end;gap:1px;}
.price-row{display:flex;align-items:baseline;gap:3px;}
.price-label{font-size:0.6rem;color:var(--tsub);}
.price-val{font-family:'Bebas Neue',sans-serif;font-size:1.05rem;color:var(--GD);letter-spacing:0.03em;}
.qty-wrap{display:flex;align-items:center;gap:6px;}
.qty-btn{
  width:26px;height:26px;border-radius:50%;border:2px solid var(--G);
  background:white;color:var(--GD);font-size:0.95rem;font-weight:700;
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.18s;
  -webkit-tap-highlight-color:transparent;
min-width:44px;min-height:44px;}
.qty-btn:hover,.qty-btn:active{background:var(--G);color:white;}
.qty-num{font-weight:900;font-size:0.95rem;min-width:16px;text-align:center;}

/* SET CHOOSER */
.set-chooser{
  display:none;flex-direction:column;gap:4px;
  margin-top:6px;padding:8px 10px;
  background:var(--GBG);border-radius:8px;border:1px solid var(--border);
}
.set-chooser.show{display:flex;}
.set-opt{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:0.76rem;padding:2px 0;}
.set-opt input{accent-color:var(--GD);width:14px;height:14px;flex-shrink:0;}

.menu-note{font-size:0.73rem;color:#aaa;margin-top:14px;line-height:1.85;}

/* FIXED BOTTOM CART */
.cart-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:300;
  background:var(--G);padding:12px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  box-shadow:0 -4px 20px rgba(0,0,0,0.15);
}
.cart-bar-info{color:white;}
.cart-bar-count{font-size:0.75rem;opacity:0.8;margin-bottom:2px;}
.cart-bar-total{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:0.04em;}
.cart-bar-btn{
  background:white;color:var(--GD);font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:900;font-size:0.9rem;padding:11px 22px;border-radius:50px;
  border:none;cursor:pointer;white-space:nowrap;transition:all 0.2s;flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
}
.cart-bar-btn:disabled{opacity:0.4;cursor:not-allowed;}

/* CART SHEET (bottom sheet) */
.cart-overlay{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:400;
}
.cart-overlay.open{display:block;}
.cart-sheet{
  position:fixed;bottom:0;left:0;right:0;z-index:500;
  background:var(--G);border-radius:24px 24px 0 0;
  padding:20px 16px 36px;
  max-height:90svh;overflow-y:auto;
  transform:translateY(100%);transition:transform 0.3s ease;
}
.cart-sheet.open{transform:translateY(0);}
.cart-sheet-handle{
  width:40px;height:4px;background:rgba(255,255,255,0.4);
  border-radius:2px;margin:0 auto 16px;
}
.cart-ttl{font-family:'Noto Serif JP',serif;font-size:1.15rem;font-weight:700;color:white;margin-bottom:4px;}
.cart-sub{font-size:0.76rem;color:rgba(255,255,255,0.7);margin-bottom:16px;line-height:1.6;}
.cart-empty{font-size:0.83rem;color:rgba(255,255,255,0.5);text-align:center;padding:12px 0;}
.cart-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.cart-row{display:flex;justify-content:space-between;align-items:flex-start;font-size:0.83rem;gap:8px;}
.cart-row-name{color:rgba(255,255,255,0.92);font-weight:700;line-height:1.5;flex:1;}
.cart-row-price{color:white;font-weight:900;font-family:'Bebas Neue',sans-serif;font-size:0.98rem;white-space:nowrap;}
.cart-divider{border:none;border-top:1px dashed rgba(255,255,255,0.28);margin:10px 0;}
.cart-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.cart-total-label{font-weight:900;font-size:0.9rem;color:white;}
.cart-total-price{font-family:'Bebas Neue',sans-serif;font-size:1.7rem;color:white;letter-spacing:0.04em;}

/* ORDER FORM inside sheet */
.order-form{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;}
.form-input{
  width:100%;padding:13px 14px;border:2px solid rgba(255,255,255,0.35);
  border-radius:10px;font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:0.93rem;color:var(--text);background:white;outline:none;
  transition:border-color 0.2s;
}
.form-input:focus{border-color:white;}
.form-input::placeholder{color:#bbb;}
.form-select{
  width:100%;padding:13px 14px;border:2px solid rgba(255,255,255,0.35);
  border-radius:10px;font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:0.93rem;color:var(--text);background:white;outline:none;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237DC221' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;
}
.btn-order{
  display:block;width:100%;background:white;color:var(--GD);
  font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:1rem;
  padding:15px;border-radius:50px;border:none;cursor:pointer;text-align:center;
  letter-spacing:0.05em;transition:all 0.2s;box-shadow:0 4px 16px rgba(0,0,0,0.14);
  -webkit-tap-highlight-color:transparent;
min-height:44px;}
.btn-order:hover,.btn-order:active{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,0.18);}
.btn-order:disabled{opacity:0.35;cursor:not-allowed;transform:none;}
.order-note{font-size:0.73rem;color:rgba(255,255,255,0.62);line-height:1.85;text-align:center;margin-top:8px;}

/* POPUP */
.popup-overlay{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);
  z-index:600;align-items:flex-end;justify-content:center;
}
.popup-overlay.open{display:flex;}
.popup-sheet{
  background:white;border-radius:24px 24px 0 0;
  width:100%;max-width:540px;
  padding:0 0 40px;
  max-height:85svh;overflow-y:auto;
  transform:translateY(100%);transition:transform 0.3s ease;
}
.popup-overlay.open .popup-sheet{transform:translateY(0);}
.popup-img{
  width:100%;aspect-ratio:4/3;
  background:var(--GBG);
  display:flex;align-items:center;justify-content:center;
  border-radius:24px 24px 0 0;overflow:hidden;
}
.popup-img img{width:100%;height:100%;object-fit:cover;display:block;}
.popup-img-ph{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:6px;
  color:var(--tsub);font-size:0.78rem;letter-spacing:0.08em;
}
.popup-body{padding:20px 22px 0;}
.popup-badge-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.popup-badge{
  background:var(--G);color:white;font-size:0.62rem;font-weight:900;
  padding:3px 10px;border-radius:20px;letter-spacing:0.08em;
}
.popup-name{
  font-family:'Noto Serif JP',serif;font-size:1.35rem;
  font-weight:700;margin-bottom:6px;line-height:1.3;
}
.popup-desc{
  font-size:0.88rem;color:var(--tsub);line-height:1.85;
  margin-bottom:16px;
}
.popup-prices{
  display:flex;gap:12px;margin-bottom:20px;
  background:var(--GBG);border-radius:12px;padding:12px 16px;
}
.popup-price-item{flex:1;text-align:center;}
.popup-price-label{font-size:0.68rem;color:var(--tsub);font-weight:700;letter-spacing:0.05em;display:block;margin-bottom:3px;}
.popup-price-val{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;color:var(--GD);letter-spacing:0.04em;}
.popup-close{
  display:block;width:calc(100% - 44px);margin:0 22px;
  background:var(--G);color:white;
  font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:0.97rem;
  padding:14px;border-radius:50px;border:none;cursor:pointer;text-align:center;
  letter-spacing:0.05em;transition:all 0.2s;
  box-shadow:0 4px 14px rgba(90,154,16,0.3);
}
.popup-close:hover{background:var(--GD);}
.popup-handle{width:36px;height:4px;background:#ddd;border-radius:2px;margin:12px auto 0;}

/* メニュー行をタップ可能に見せる */
.menu-row{cursor:pointer;}
.menu-row-name{color:var(--GD);}

/* LIMITED ITEM */
.limited-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 10px;border-bottom:1px solid #efefef;gap:10px;
  border-radius:8px;background:#fffbe8;border:2px solid #f5d020;
  margin-bottom:4px;
}
.limited-left{flex:1;min-width:0;}
.limited-badge{
  display:inline-block;background:var(--G);color:white;
  font-size:0.62rem;font-weight:900;padding:2px 10px;
  border-radius:20px;letter-spacing:0.1em;margin-bottom:4px;
}
.limited-name{font-weight:900;font-size:0.93rem;margin-bottom:2px;}
.limited-desc{font-size:0.74rem;color:var(--tsub);line-height:1.5;}
.limited-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0;}

/* SINGLE/SET CHOOSER (展開式) */
.type-chooser{
  display:none;flex-direction:column;gap:6px;
  margin-top:8px;padding:10px 12px;
  background:var(--GBG);border-radius:10px;border:1px solid var(--border);
}
.type-chooser.show{display:flex;}
.type-radio-row{
  display:flex;align-items:center;gap:8px;cursor:pointer;
  padding:6px 0;border-bottom:1px solid var(--border);
}
.type-radio-row:last-child{border-bottom:none;}
.type-radio-row input[type=radio]{accent-color:var(--G);width:16px;height:16px;flex-shrink:0;}
.type-radio-label{flex:1;font-weight:700;font-size:0.88rem;}
.type-radio-price{font-family:'Bebas Neue',sans-serif;font-size:1.05rem;color:var(--GD);letter-spacing:0.03em;}
.set-opts-wrap{
  display:none;flex-direction:column;gap:3px;
  margin-top:4px;padding:8px 10px;
  background:white;border-radius:8px;border:1px solid var(--border);
}
.set-opts-wrap.show{display:flex;}
.set-opt{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:0.76rem;padding:2px 0;}
.set-opt input{accent-color:var(--GD);width:14px;height:14px;flex-shrink:0;}

/* LINE DISCOUNT BOX */
.line-discount-box{
  background:rgba(255,255,255,0.12);border:2px solid rgba(255,255,255,0.35);
  border-radius:14px;padding:16px 16px 14px;margin-bottom:12px;
}
.ldb-title{
  font-family:'Noto Serif JP',serif;font-weight:700;font-size:1rem;
  color:white;margin-bottom:6px;
}
.ldb-pct{
  font-family:'Bebas Neue',sans-serif;font-size:1.5rem;
  color:var(--GP);letter-spacing:0.05em;
}
.ldb-desc{
  font-size:0.76rem;color:rgba(255,255,255,0.78);line-height:1.75;margin-bottom:12px;
}
.ldb-btn{
  display:block;background:white;color:var(--GD);text-align:center;
  font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:0.9rem;
  padding:11px;border-radius:50px;letter-spacing:0.04em;
  transition:all 0.2s;box-shadow:0 3px 12px rgba(0,0,0,0.12);margin-bottom:10px;
}
.ldb-btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(0,0,0,0.18);}
.ldb-btn.done{background:var(--GP);color:var(--GD);}
.ldb-check{
  display:flex;align-items:flex-start;gap:8px;cursor:pointer;
  font-size:0.76rem;color:rgba(255,255,255,0.85);line-height:1.6;
}
.ldb-check input{accent-color:var(--GP);width:16px;height:16px;flex-shrink:0;margin-top:2px;}



/* ロゴ */
img.site-logo { display:block; }
.nav-logo img.site-logo { height:36px; width:auto; }
.hero-logo { display:block; width:min(150px,38vw); height:auto; margin:0 auto 24px; }
.footer-logo { display:block; height:40px; width:auto; margin:0 auto 16px; }
.login-logo { display:block; height:56px; width:auto; margin:0 auto 28px; }

/* ━━━ 日本語タイポグラフィ改善 ━━━ */
/* 行間：本文1.8、見出し1.4に統一 */
/* 文字間：日本語は0でOK、英字ラベルのみ調整 */
/* 禁則処理：文頭・文末の約物を整える */
/* 1行の適切な文字数：スマホ20〜24文字 */

html {
  /* 禁則処理を有効化 */
  word-break: normal;
  overflow-wrap: break-word;
  -webkit-locale: "ja";
}

/* 本文の行間・文字間を最適化 */
p, .t-body, li, td, th {
  line-height: 1.85;
  word-break: normal;
  overflow-wrap: break-word;
  /* 和文の文字詰め */
  font-feature-settings: "palt" 1, "kern" 1;
  -webkit-font-smoothing: antialiased;
}

/* 見出しの行間 */
h1, h2, h3, .t-display, .t-heading {
  line-height: 1.3;
  word-break: keep-all;
  overflow-wrap: break-word;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
}

/* 本文最大幅（1行が長くなりすぎないように） */
.t-body {
  max-width: 40em; /* 約40文字 */
}

/* 見出しと本文のサイズ差を明確に */
.section .t-label {
  font-size: .72rem;
  letter-spacing: .24em;
  margin-bottom: 6px;
}
.section .t-heading {
  font-size: clamp(1.4rem, 4.5vw, 1.9rem);
  margin-bottom: 20px;
}

/* ナビの文字は折り返さない */
.nav-menu a {
  white-space: nowrap;
}

/* ボタンテキストは折り返さない */
.hero-btn, .btn-white, .btn-outline-w, .fixed-cta-btn,
.store-map-btn, .btn-submit {
  white-space: nowrap;
  word-break: keep-all;
}

/* フッターリンクは折り返さない */
.footer-links a {
  white-space: nowrap;
}

/* ===== 定休日（火曜）対応 ===== */
.closed-day-banner {
  background: #fdecec;
  border: 2px solid #e74c3c;
  border-radius: 12px;
  padding: 16px 20px;
  margin: 16px;
  text-align: center;
}
.closed-day-title {
  color: #c0392b;
  font-size: 1.1rem;
  font-weight: 900;
  margin-bottom: 4px;
}
.closed-day-sub {
  color: #c0392b;
  font-size: 0.85rem;
}

/* 入力エリア全体を覆う半透明オーバーレイ（定休日のみ表示） */
.order-closed-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.75);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  z-index: 5;
  pointer-events: auto; /* 下の入力欄へのクリックを確実に遮断する */
}
.order-closed-overlay span {
  color: #c0392b;
  font-weight: 700;
  font-size: 0.95rem;
  background: #fff;
  padding: 10px 16px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
