@charset "UTF-8";
/* Party course menu (/party) and the booking shop chooser. Web version of the Claude Design
   "Party Course Menu v2". Add-on to ganesh.css; design-system tokens only. */

.pt-wrap{ max-width:960px; margin:0 auto; padding:clamp(20px,3vw,36px) var(--pad-x) var(--pad-section); display:flex; flex-direction:column; gap:clamp(28px,4vw,44px); }
.pt-en{ display:block; font:var(--weight-medium) var(--text-xs)/1.45 var(--font-latin-display); color:var(--text-muted); }
.pt-lead{ font:var(--type-body); color:var(--text-body); }

/* ---------- Header ---------- */
.pt-head{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; }
.pt-kicker{ font:var(--weight-bold) var(--text-sm)/1 var(--font-latin-display); letter-spacing:0.14em; text-transform:uppercase; color:var(--ganesh-orange-700); }
.pt-title{ font:var(--weight-black) clamp(32px,6vw,52px)/1.1 var(--font-display); letter-spacing:-0.01em; color:var(--text-heading); }
.pt-sub{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; font:var(--weight-heavy) clamp(18px,2.6vw,24px)/1.2 var(--font-display); color:var(--ganesh-orange-700); }
.pt-sub::before,.pt-sub::after{ content:""; width:clamp(24px,6vw,64px); height:2px; background:var(--ganesh-yellow-600); }
.pt-pill{ order:2; display:inline-flex; padding:4px 14px; border-radius:var(--radius-pill); background:var(--ganesh-brown-700); color:var(--ganesh-paper); font-size:var(--text-sm); }
.pt-sub::after{ order:3; }
.pt-head__en{ font:var(--weight-medium) var(--text-sm)/1.4 var(--font-latin-display); color:var(--text-muted); }
.pt-photo{ margin:0; border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-md); background:var(--surface-sunken); }
.pt-photo img{ display:block; width:100%; height:auto; max-height:520px; object-fit:cover; object-position:50% 30%; }

/* ---------- Plans ---------- */
.pt-plans{ display:flex; flex-direction:column; gap:14px; }
.pt-hero{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px 24px; padding:18px 4px; border-top:3px solid var(--ganesh-brown-700); border-bottom:3px solid var(--ganesh-brown-700); }
.pt-hero__text{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.pt-hero__name{ font:var(--weight-black) clamp(26px,4.4vw,38px)/1.1 var(--font-display); color:var(--text-heading); }
.pt-hero__sub{ font:var(--weight-bold) var(--text-md)/1.35 var(--font-display); color:var(--text-heading); }
.pt-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.pt-tag{ display:inline-flex; padding:3px 12px; border-radius:var(--radius-pill); border:2px solid var(--ganesh-orange-700); color:var(--ganesh-orange-700); font:var(--weight-bold) var(--text-sm)/1.3 var(--font-display); }
.pt-tag--solid{ background:var(--action-primary-bg); border-color:var(--action-primary-bg); color:var(--ganesh-paper); }
.pt-price{ display:flex; align-items:baseline; gap:2px; color:var(--text-price); white-space:nowrap; }
.pt-price__y{ font:var(--weight-bold) 32px/1 var(--font-latin-display); }
.pt-price__v{ font:var(--weight-bold) clamp(34px,5vw,44px)/1 var(--font-latin-display); letter-spacing:-0.02em; }
.pt-price--hero .pt-price__v{ font-size:clamp(56px,10vw,96px); line-height:0.9; }
.pt-price__n{ font:var(--weight-bold) var(--text-sm)/1.2 var(--font-display); color:var(--text-heading); margin-left:4px; }
.pt-plans__row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pt-plan{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 18px; border-radius:var(--radius-lg); border:2px solid var(--ganesh-yellow-400); background:var(--surface-card); }
.pt-plan__text{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.pt-plan__name{ font:var(--weight-heavy) var(--text-lg)/1.25 var(--font-display); color:var(--text-heading); }
.pt-plan__en{ font:var(--weight-medium) var(--text-xs)/1.4 var(--font-latin-display); color:var(--text-muted); }
.pt-plan__note{ font:var(--type-small); color:var(--text-body); margin-top:4px; }
.pt-plan .pt-price{ flex-direction:column; align-items:flex-end; }
.pt-ribbon{ display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:4px 8px; padding:12px 18px; border-radius:var(--radius-md); background:var(--ganesh-yellow-400); color:var(--ganesh-brown-700); text-align:center; font:var(--weight-bold) var(--text-sm)/1.4 var(--font-display); }
.pt-ribbon strong{ font:var(--weight-black) var(--text-lg)/1.3 var(--font-display); }
.pt-time{ text-align:center; font:var(--weight-bold) var(--text-base)/1.5 var(--font-display); color:var(--text-heading); }
.pt-cta{ display:flex; justify-content:center; }
@media (max-width:640px){
  .pt-hero{ grid-template-columns:1fr; }
  .pt-price--hero{ justify-self:end; }
  .pt-plans__row{ grid-template-columns:1fr; }
}

/* ---------- Section headings ---------- */
.pt-section{ display:flex; flex-direction:column; gap:12px; }
.pt-h2{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; font:var(--weight-black) clamp(24px,3.6vw,32px)/1.15 var(--font-display); color:var(--text-heading); padding-bottom:8px; border-bottom:2px solid var(--ganesh-yellow-600); }
.pt-h2__en{ font:600 var(--text-sm)/1 var(--font-latin-display); color:var(--text-muted); }
.pt-h3{ font:var(--weight-heavy) var(--text-base)/1.3 var(--font-display); color:var(--ganesh-green-700); margin-bottom:8px; }

/* ---------- Course ---------- */
.pt-course{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 40px; }
.pt-items{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.pt-item{ display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; align-items:start; }
.pt-item__n{ width:34px; height:34px; border-radius:50%; border:2px solid var(--ganesh-orange-700); color:var(--ganesh-orange-700); display:grid; place-items:center; font:var(--weight-bold) var(--text-base)/1 var(--font-latin-display); }
.pt-item__name{ font:var(--weight-heavy) var(--text-md)/1.3 var(--font-display); color:var(--text-heading); }
.pt-item__desc{ font:var(--type-small); color:var(--text-body); margin-top:2px; }
.pt-badge{ display:inline-flex; vertical-align:middle; padding:1px 10px; border-radius:var(--radius-pill); border:2px solid var(--ganesh-orange-700); color:var(--ganesh-orange-700); font:var(--weight-bold) var(--text-2xs)/1.4 var(--font-display); white-space:nowrap; }
.pt-badge--green{ border-color:var(--ganesh-green-600); color:var(--ganesh-green-700); }
.pt-option{ position:relative; margin:4px 0 14px 46px; padding:12px 16px; border:2px dashed var(--ganesh-orange-500); border-radius:var(--radius-md); background:var(--surface-card); }
.pt-option__plus{ position:absolute; left:-44px; top:50%; margin-top:-16px; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--ganesh-yellow-400); color:var(--ganesh-brown-700); font:900 18px/1 var(--font-display); }
.pt-option__name{ font:var(--weight-heavy) var(--text-base)/1.35 var(--font-display); color:var(--text-heading); }
.pt-option__price{ font:var(--weight-bold) var(--text-lg)/1 var(--font-latin-display); color:var(--text-price); margin-left:6px; }
@media (max-width:720px){ .pt-course{ grid-template-columns:1fr; } }

/* ---------- Drinks ---------- */
.pt-drinks{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:start; }
.pt-drinks__cat{ border:2px solid var(--ganesh-yellow-400); border-radius:var(--radius-lg); background:var(--surface-card); padding:16px 18px 18px; display:flex; flex-direction:column; gap:12px; }
.pt-drinks__head{ display:flex; align-items:center; gap:10px; padding-bottom:8px; border-bottom:1px solid var(--ganesh-yellow-600); font:var(--weight-heavy) var(--text-lg)/1.2 var(--font-display); color:var(--text-heading); }
.pt-drinks__icon{ flex:none; width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--ganesh-orange-050); color:var(--ganesh-orange-700); }
.pt-drinks__icon .g-icon{ width:24px; height:24px; }
.pt-drinks__ribbon{ align-self:flex-start; }
.pt-drinks__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.pt-drinks__list li{ position:relative; padding-left:16px; font:var(--weight-medium) var(--text-base)/1.35 var(--font-body); color:var(--text-heading); }
.pt-drinks__list li::before{ content:""; position:absolute; left:0; top:0.55em; width:7px; height:7px; background:var(--ganesh-teal-500); }
@media (max-width:860px){ .pt-drinks{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:540px){ .pt-drinks{ grid-template-columns:1fr; } }

/* ---------- Rules, shops ---------- */
.pt-rules{ list-style:none; margin:0; padding:16px 0 0; border-top:1px solid var(--ganesh-yellow-600); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 32px; }
.pt-rules li{ position:relative; padding-left:1.2em; font:var(--type-small); color:var(--text-body); }
.pt-rules li::before{ content:"※"; position:absolute; left:0; }
@media (max-width:640px){ .pt-rules{ grid-template-columns:1fr; } }
.pt-book{ scroll-margin-top:calc(var(--to-top,120px) + 16px); }
.pt-shops,.pt-phones{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr)); gap:10px; }
