/* =========================================================
   チケット（/tickets・/tickets/{種類}/{ID}。発注書 S21）
   LINE の画面（/app/reserve）と同じカード・札を公開サイトのデザイン（生成り・藍・紙のカード）で。
   チケットのページだけ読み込む（layouts/public.blade.php の @stack('head')）。
   ========================================================= */

.tkp .wrap{ max-width:1080px; }

/* 種類のチップ */
.tkp-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 8px; }
.tkp-chip{ display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:6px 18px; border-radius:var(--radius-pill); background:var(--c-paper); color:var(--c-ai); font-size:var(--t-body); font-weight:700; text-decoration:none; box-shadow:inset 0 0 0 2px rgba(62,68,120,.25); }
.tkp-chip:hover{ box-shadow:inset 0 0 0 2px var(--c-ai); }
.tkp-chip.is-on{ background:var(--c-ai); color:#fff; box-shadow:none; }
.tkp-chip__count{ min-width:26px; padding:0 7px; border-radius:var(--radius-pill); background:var(--c-fuji-pale); color:var(--c-ai); font-size:var(--t-body); line-height:1.6; text-align:center; font-family:var(--ff-en); }
.tkp-chip.is-on .tkp-chip__count{ background:rgba(255,255,255,.22); color:#fff; }

.tkp-h2{ display:flex; align-items:center; gap:12px; margin:32px 0 14px; font-size:calc(clamp(18px, 1.98vw, 21.5px) * var(--fs)); color:var(--c-ai); }
.tkp-h2::before{ content:""; flex:none; width:9px; height:9px; border-radius:50%; background:var(--c-ayame); } /* 発注書 S24：左の太い縦線をやめて小さな丸 */
.tkp-h2 .sec-en{ font-size:22px; margin:0; }
.tkp-pickup .tkp-h2::before{ display:none; }

/* ピックアップ（横スライダー） */
.tkp-slider{ display:grid; grid-auto-flow:column; grid-auto-columns:min(78%, 420px); gap:16px; margin:0 calc(var(--gutter) * -1); padding:4px var(--gutter) 18px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:0 var(--gutter); list-style:none; scrollbar-width:thin; }
.tkp-slider > li{ display:flex; scroll-snap-align:start; }

/* カードの並び（SP 2 列・PC 3〜4 列） */
.tkp-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; margin:0; padding:0; list-style:none; }
.tkp-grid > li{ display:flex; }
@media (min-width:768px){ .tkp-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; } }
@media (min-width:1280px){ .tkp-grid{ grid-template-columns:repeat(4, minmax(0,1fr)); } }

/* カード */
.tkc{ display:flex; flex-direction:column; width:100%; overflow:hidden; border-radius:var(--radius-m); background:var(--c-paper); color:var(--c-ink); text-decoration:none; box-shadow:var(--shadow-card); transition:transform .2s; }
.tkc:hover{ transform:translateY(-3px); }
.tkc__photo{ position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--c-base-deep); }
.tkc--wide .tkc__photo{ aspect-ratio:16/10; }
.tkc__photo img{ width:100%; height:100%; object-fit:cover; }
.tkc__photo.is-illust{ background:radial-gradient(70% 60% at 50% 60%, #fff 0 45%, transparent 70%), var(--c-fuji-pale); }
.tkc__photo.is-illust img{ padding:10% 12% 4%; object-fit:contain; }
.tkc__date{ position:absolute; top:8px; left:8px; display:inline-flex; align-items:baseline; flex-wrap:wrap; gap:0 4px; max-width:calc(100% - 16px); padding:3px 10px; border-radius:10px; background:rgba(255,253,248,.95); color:var(--c-ai); line-height:1.3; box-shadow:0 2px 6px rgba(42,37,48,.15); font-family:var(--ff-en); }
.tkc__date b{ font-size:calc(17px * var(--fs)); }
.tkc__date small{ font-size:var(--t-body); font-weight:700; font-family:var(--ff-body); }
.tkc__date-extra{ color:var(--c-ink-sub); }
.tkc__status{ display:inline-flex; align-items:center; padding:1px 10px; border-radius:var(--radius-pill); font-size:var(--t-body); font-weight:700; line-height:1.6; white-space:nowrap; }
.tkc__photo .tkc__status{ position:absolute; left:8px; bottom:8px; box-shadow:0 2px 6px rgba(42,37,48,.18); }
.tkc__status--on_sale,.tkc__status--reserve{ background:#2e7650; color:#fff; }
.tkc__status--few{ background:var(--c-ayame); color:#fff; }
.tkc__status--before{ background:var(--c-paper); color:var(--c-ai); box-shadow:inset 0 0 0 1.5px var(--c-ai); }
.tkc__status--request{ background:var(--c-ai); color:#fff; }
.tkc__status--sold_out{ background:#4a4550; color:#fff; }
.tkc__status--ended,.tkc__status--preparing{ background:#e9e4d8; color:#57515d; }
.tkc__status--guide{ background:var(--c-paper); color:#2e7650; box-shadow:inset 0 0 0 1.5px #2e7650; }
.tkc__body{ display:grid; gap:2px; align-content:start; padding:10px 14px 16px; }
.tkc__cat{ font-size:var(--t-body); font-weight:700; color:var(--c-ayame); line-height:1.5; }
.tkc--admission .tkc__cat{ color:#2e7650; }
.tkc--experience .tkc__cat{ color:var(--c-ai); }
.tkc__title{ display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:calc(16px * var(--fs)); font-weight:700; line-height:1.5; }
.tkc--wide .tkc__title{ font-size:calc(18px * var(--fs)); }
.tkc__lead{ display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:var(--t-body); color:var(--c-ink-sub); line-height:1.7; }
.tkc__venue{ display:flex; align-items:center; gap:4px; font-size:var(--t-body); color:var(--c-ink-sub); line-height:1.5; }
.tkc__venue .i{ flex:none; color:var(--c-ai); }
.tkc__venue span{ min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.tkc__price{ margin-top:4px; font-size:calc(17px * var(--fs)); font-weight:700; color:var(--c-ai); font-family:var(--ff-en); }

.tkp-line-note{ display:flex; align-items:center; gap:8px; margin:28px 0 0; font-size:var(--t-body); color:var(--c-ink-sub); }
.tkp-line-note .i{ color:var(--c-line); }

/* 詳細 */
.tkd-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:8px 0 0; }
.tkd-cat{ padding:1px 12px; border-radius:var(--radius-pill); background:var(--c-fuji-pale); color:var(--c-ai); font-size:var(--t-body); font-weight:700; }
.tkd{ display:grid; gap:20px; }
@media (min-width:960px){
  .tkd{ grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr); align-items:start; gap:28px; }
  .tkd__wide{ grid-column:1 / -1; }
}
.tkd__photos{ display:grid; grid-auto-flow:column; grid-auto-columns:100%; overflow-x:auto; scroll-snap-type:x mandatory; border-radius:var(--radius-l); box-shadow:var(--shadow-card); background:var(--c-paper); scrollbar-width:thin; }
.tkd__photo{ margin:0; aspect-ratio:4/3; scroll-snap-align:start; overflow:hidden; }
.tkd__photo img{ width:100%; height:100%; object-fit:cover; }
.tkd__photo.is-illust{ background:radial-gradient(60% 60% at 50% 58%, #fff 0 45%, transparent 72%), var(--c-fuji-pale); }
.tkd__photo.is-illust img{ padding:8% 14% 2%; object-fit:contain; }
.tkd__info{ display:grid; gap:16px; }
.tkd-venue{ display:flex; align-items:center; gap:8px; min-height:52px; padding:8px 16px; border-radius:var(--radius-m); background:var(--c-paper); color:var(--c-ink); font-size:calc(16px * var(--fs)); font-weight:500; text-decoration:none; box-shadow:var(--shadow-card); }
.tkd-venue .i{ color:var(--c-ayame); }
.tkd-venue span:nth-of-type(1){ flex:1 1 auto; }
.tkd-venue__map{ color:var(--c-ai); font-weight:700; font-size:var(--t-body); white-space:nowrap; }
.tkd-card.pcard{ padding:clamp(18px, 2.4vw, 28px); }
.tkd-card + .tkd-card{ margin-top:0; }
.tkd-card--notes{ background:#fffaf0; }
.tkd-h2{ margin:0 0 10px; font-size:calc(18px * var(--fs)); color:var(--c-ai); }
.tkd-h3{ margin:18px 0 8px; font-size:calc(17px * var(--fs)); }
.tkd-text{ margin:0 0 8px; font-size:calc(16px * var(--fs)); }
.tkd-dl{ margin:0; }
.tkd-dl > div{ display:grid; grid-template-columns:6.5em minmax(0,1fr); gap:10px; padding:10px 0; border-bottom:1.5px dashed var(--rule); }
.tkd-dl > div:last-child{ border-bottom:0; }
.tkd-dl dt{ font-size:var(--t-body); font-weight:700; color:var(--c-ink-sub); }
.tkd-dl dd{ margin:0; font-size:calc(16px * var(--fs)); }
.tkd-sessions{ display:grid; gap:8px; margin:0; padding:0; list-style:none; font-size:calc(16px * var(--fs)); }
.tkd-sessions li{ padding:10px 14px; border-radius:14px; background:var(--c-base); }
.tkd-sessions b{ color:var(--c-ai); }
.tkd-sessions li.is-off{ opacity:.6; }
.tkd-sessions__note{ display:block; font-size:var(--t-body); color:var(--c-ink-sub); }
.tkd-sessions__state{ margin-left:8px; color:var(--c-ayame); font-weight:700; font-size:var(--t-body); }
.tkd-sale{ margin:10px 0 0; font-size:var(--t-body); color:var(--c-ink-sub); }
.tkd-prices{ width:100%; border-collapse:collapse; }
.tkd-prices th,.tkd-prices td{ padding:12px 0; border-bottom:1.5px dashed var(--rule); text-align:left; vertical-align:top; }
.tkd-prices tr:last-child th,.tkd-prices tr:last-child td{ border-bottom:0; }
.tkd-prices th{ font-size:calc(16px * var(--fs)); font-weight:500; }
.tkd-prices th small{ display:block; font-size:var(--t-body); font-weight:400; color:var(--c-ink-sub); }
.tkd-prices td{ padding-left:12px; font-size:calc(18px * var(--fs)); font-weight:700; color:var(--c-ai); text-align:right; white-space:nowrap; font-family:var(--ff-en); }
.tkd-note{ margin:8px 0 0; font-size:var(--t-body); color:var(--c-ink-sub); }
.tkd-cta .btn-line{ width:100%; justify-content:center; min-height:56px; font-size:calc(17px * var(--fs)); }
.tkd-reason{ margin:0; padding:14px 16px; border-radius:var(--radius-m); background:#e9e4d8; color:#4a4550; font-size:calc(16px * var(--fs)); font-weight:700; text-align:center; }
.tkd-flowers{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.tkd-flowers li{ display:flex; }
.tkd-flowers a{ flex:1 1 auto; display:grid; align-content:start; justify-items:center; gap:2px; padding:10px 6px 12px; border-radius:14px; background:var(--c-base); text-align:center; text-decoration:none; }
.tkd-flowers img{ width:80px; height:80px; object-fit:contain; }
.tkd-flowers__name{ font-size:var(--t-body); font-weight:700; color:var(--c-ai); text-decoration:underline; text-underline-offset:.2em; }
.tkd-flowers__when{ font-size:var(--t-body); color:var(--c-ink-sub); line-height:1.4; }
.tkd-list{ display:grid; gap:6px; margin:0; padding:0 0 0 1.2em; font-size:calc(16px * var(--fs)); line-height:1.8; }
