.ticket-detail-hero{margin-top:94px;position:relative;background:#1a2233;overflow:hidden}
.ticket-detail-hero-bg{position:absolute;inset:0;background-image:var(--ticket-hero-image);background-size:cover;background-position:center;filter:blur(18px) brightness(.38) saturate(.8);transform:scale(1.06)}
.ticket-detail-hero-inner{position:relative;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:2rem;padding:2.5rem 1rem;align-items:stretch}
.ticket-gallery{display:flex;flex-direction:column;gap:.75rem;height:100%}
.ticket-gallery-main{width:100%;aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;background:#2a3448;position:relative}
.ticket-gallery-main img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ticket-gallery-main:hover img{transform:scale(1.02)}
.ticket-gallery-placeholder{display:block;width:100%;height:100%;background:var(--sky)}
.ticket-off-badge{position:absolute;top:1rem;left:1rem;background:var(--coral);color:white;font-family:'Nunito',sans-serif;font-size:1rem;font-weight:900;padding:.3rem .8rem;border-radius:var(--radius-sm);display:flex;align-items:baseline;gap:.15rem;line-height:1}
.ticket-off-badge strong{font-size:1.5rem}
.ticket-gallery-actions{position:absolute;top:1rem;right:1rem;display:flex;gap:.4rem}
.ticket-icon-btn{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.92);border:0;cursor:pointer;font-size:.92rem;display:flex;align-items:center;justify-content:center;color:var(--text);transition:background .15s,color .15s}
.ticket-icon-btn:hover,.ticket-icon-btn.is-liked{background:white;color:var(--coral)}
.ticket-purchase-card{background:white;border-radius:var(--radius);padding:1.4rem;box-shadow:0 8px 32px rgba(0,0,0,.15);position:sticky;top:108px;align-self:start;height:calc(min(1100px, 100vw) - 4rem - 360px);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.ticket-mini-meta,.ticket-title-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem;flex-wrap:wrap}
.ticket-mini-meta span,.ticket-title-meta span{font-size:.72rem;font-weight:800;background:#ebf4ff;color:var(--blue);padding:.22rem .6rem;border-radius:6px}
.ticket-mini-meta small,.ticket-title-meta small{font-size:.72rem;color:var(--text2);font-weight:700}
.ticket-purchase-card h2{font-family:'Nunito','Noto Sans KR',sans-serif;font-size:1.24rem;font-weight:900;color:var(--text);line-height:1.28;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}
.ticket-seller{display:none}
.ticket-options-label{font-size:.8rem;font-weight:800;color:var(--text);margin-bottom:.6rem}
.ticket-options{flex:1;min-height:0;overflow-y:auto;padding-right:2px}
.ticket-options::-webkit-scrollbar{width:3px}
.ticket-options::-webkit-scrollbar-track{background:var(--border);border-radius:2px}
.ticket-options::-webkit-scrollbar-thumb{background:var(--blue);border-radius:2px}
.ticket-option-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem;padding:.7rem .75rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);margin-bottom:.45rem;background:white;transition:border-color .15s,background .15s}
.ticket-option-row.has-qty{border-color:var(--blue);background:var(--sky)}
.ticket-option-name{font-size:.83rem;font-weight:800;color:var(--text);margin-bottom:.12rem}
.ticket-option-price-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.ticket-option-price-row del{font-size:.7rem;color:#b0bccf;text-decoration:line-through}
.ticket-option-price-row em{font-style:normal;font-size:.67rem;font-weight:800;background:var(--coral-light);color:var(--coral);padding:.1rem .35rem;border-radius:4px}
.ticket-option-price-row strong{font-family:'Nunito',sans-serif;font-size:.95rem;font-weight:900;color:var(--coral)}
.ticket-qty{display:flex;align-items:center;border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:white;flex-shrink:0}
.ticket-qty button{width:30px;height:30px;background:var(--bg);border:0;cursor:pointer;font-size:1rem;font-weight:800;color:var(--text2);line-height:1}
.ticket-qty button:hover{background:var(--sky);color:var(--blue)}
.ticket-qty span{width:32px;text-align:center;font-family:'Nunito',sans-serif;font-size:.88rem;font-weight:800;color:var(--text)}
.ticket-purchase-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
.ticket-total-box{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border-radius:var(--radius-sm);padding:.75rem .9rem;margin-bottom:.85rem;gap:1rem}
.ticket-total-box>span{font-size:.8rem;font-weight:800;color:var(--text2)}
.ticket-total-box div{text-align:right}
.ticket-total-box strong{display:block;font-family:'Nunito',sans-serif;font-size:1.25rem;font-weight:900;color:var(--coral)}
.ticket-total-box em{display:inline-block;font-style:normal;font-size:.68rem;font-weight:800;color:var(--mint-dark);background:#e6fbf5;padding:.12rem .38rem;border-radius:5px}
.ticket-total-box small{display:block;font-size:.7rem;color:var(--text2);margin-top:.15rem}
.ticket-buy-main{width:100%;padding:.85rem;border-radius:var(--radius-sm);font-family:'Noto Sans KR',sans-serif;font-size:.92rem;font-weight:800;cursor:pointer;border:0;background:var(--coral);color:white;transition:background .15s}
.ticket-buy-main:hover:not(:disabled){background:#e5512f}
.ticket-buy-main:disabled{background:#c8c8d0;cursor:not-allowed}
.ticket-purchase-footer p{font-size:.7rem;color:var(--text2);text-align:center;margin-top:.6rem;line-height:1.6}
.ticket-detail-wrap{max-width:1100px;margin:0 auto;padding:2rem 1rem 4rem}
.ticket-breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text2);margin-bottom:1.5rem;flex-wrap:wrap}
.ticket-breadcrumb a{color:var(--text2)}
.ticket-breadcrumb a:hover{color:var(--blue)}
.ticket-breadcrumb span{color:#9aa7ba;font-weight:800}
.ticket-breadcrumb strong{color:var(--blue);font-weight:800}
.ticket-title-block{padding-bottom:1.5rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}
.ticket-title-block h1{font-family:'Nunito','Noto Sans KR',sans-serif;font-size:1.9rem;font-weight:900;color:var(--text);line-height:1.18;letter-spacing:-.02em;margin-bottom:.45rem}
.ticket-title-block p{font-size:.92rem;color:var(--text2);line-height:1.6;margin-bottom:1rem}
.ticket-detail-meta-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.ticket-detail-meta-row span,.ticket-detail-meta-row a{display:flex;align-items:center;gap:.3rem;font-size:.82rem;color:var(--text2)}
.ticket-detail-meta-row span i,.ticket-detail-meta-row a i{color:var(--blue)}
.ticket-detail-meta-row a:hover{color:var(--blue)}
.ticket-detail-meta-row strong{color:var(--text);font-weight:800}
.ticket-detail-meta-row button{display:flex;align-items:center;gap:.35rem;background:none;border:1.5px solid var(--border);border-radius:20px;padding:.35rem .85rem;font-size:.82rem;font-weight:800;color:var(--text2);cursor:pointer;font-family:'Noto Sans KR',sans-serif}
.ticket-detail-meta-row button:hover,.ticket-detail-meta-row button.is-liked{background:var(--coral-light);border-color:var(--coral);color:var(--coral)}
.ticket-detail-section{margin-bottom:2rem;scroll-margin-top:150px}
.ticket-section-card{background:white;border-radius:var(--radius);border:1.5px solid var(--border);padding:1.75rem;margin-bottom:1.25rem}
.ticket-section-card h2{font-family:'Nunito','Noto Sans KR',sans-serif;font-size:1.05rem;font-weight:900;color:var(--text);margin-bottom:1.25rem;display:flex;align-items:center;gap:.4rem}
.ticket-section-card h2 i{color:var(--blue)}
.ticket-info-grid{display:grid;grid-template-columns:auto 1fr;gap:.65rem 1.2rem;align-items:start}
.ticket-info-grid span{font-size:.8rem;font-weight:800;color:var(--text2);white-space:nowrap}
.ticket-info-grid strong{font-size:.83rem;color:var(--text);line-height:1.65}
.ticket-info-grid strong:nth-child(n+4){padding-top:.65rem;border-top:1px solid var(--border)}
.ticket-info-grid span:nth-child(n+3){padding-top:.65rem;border-top:1px solid var(--border)}
.ticket-desc-body{font-size:.88rem;line-height:1.9;color:var(--text2)}
.ticket-desc-body h3{font-size:.93rem;font-weight:800;color:var(--text);margin:1.25rem 0 .5rem}
.ticket-desc-body h3:first-child{margin-top:0}
.ticket-desc-body p{margin-bottom:.7rem}
.ticket-desc-body ul{padding-left:1.2rem;margin-bottom:.75rem}
.ticket-desc-body li{margin-bottom:.3rem}
.ticket-api-image-stack{display:flex;flex-direction:column;gap:1rem;margin-top:1.25rem}
.ticket-api-image-stack img{display:block;width:100%;height:auto;border-radius:var(--radius-sm);background:var(--sky)}
.ticket-warning,.ticket-notice-box{background:#fff8ec;border:1.5px solid var(--yellow);border-radius:var(--radius-sm);padding:1rem 1.1rem;margin-top:1.1rem;color:#8b6914}
.ticket-notice-box strong{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:800;color:#b8860b;margin-bottom:.35rem}
.ticket-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.ticket-photo-grid a{aspect-ratio:1/1;border-radius:var(--radius-sm);background-size:cover;background-position:center;transition:opacity .15s;background-color:var(--sky)}
.ticket-photo-grid a:hover{opacity:.85}
.ticket-review-summary{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.ticket-review-summary strong{font-family:'Nunito',sans-serif;font-size:2.8rem;font-weight:900;color:var(--text);line-height:1}
.ticket-review-summary span{color:var(--yellow)}
.ticket-review-summary small{font-size:.78rem;color:var(--text2)}
.ticket-empty-text{font-size:.85rem;color:var(--text2);background:var(--bg);border-radius:var(--radius-sm);padding:1rem}
.ticket-detail-wrap .place-bottom-section{max-width:none;margin:0 0 2rem;padding:0;scroll-margin-top:150px}
.ticket-review-card{background:var(--bg);border-radius:var(--radius-sm);padding:1.1rem;margin-bottom:.65rem;border:1px solid var(--border)}
.ticket-review-card div{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem;gap:1rem}
.ticket-review-card strong{font-size:.83rem;color:var(--text)}
.ticket-review-card span{font-size:.7rem;color:var(--text2)}
.ticket-review-card p{font-size:.82rem;color:var(--text2);line-height:1.7}
.ticket-review-card p a{color:var(--blue);font-weight:800;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.ticket-review-card p a:hover{color:var(--blue-dark)}
.ticket-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.ticket-related-card{border-radius:var(--radius-sm);border:1.5px solid var(--border);overflow:hidden;background:var(--bg);transition:transform .2s,box-shadow .2s}
.ticket-related-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(255,107,74,.1)}
.ticket-related-image{display:block;width:100%;aspect-ratio:1/1;background:var(--sky);background-size:cover;background-position:center;position:relative}
.ticket-related-image em{position:absolute;top:0;left:0;background:var(--coral);color:white;font-family:'Nunito',sans-serif;font-size:.78rem;font-style:normal;font-weight:900;padding:.2rem .5rem;border-radius:0 0 6px 0}
.ticket-related-body{display:block;padding:.75rem}
.ticket-related-body small{display:block;font-size:.67rem;color:var(--text2);margin-bottom:.2rem;font-weight:700}
.ticket-related-body strong{display:block;font-size:.82rem;font-weight:800;color:var(--text);line-height:1.3;margin-bottom:.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticket-related-body b{font-family:'Nunito',sans-serif;font-size:.95rem;font-weight:900;color:var(--coral)}
.ticket-mobile-buy{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:white;border-top:1px solid rgba(209,222,236,.85);border-radius:18px 18px 0 0;padding:.35rem .85rem calc(.5rem + env(safe-area-inset-bottom));flex-direction:column;gap:.4rem;box-shadow:0 -14px 36px rgba(26,34,51,.12)}
.ticket-mobile-toggle{position:relative;z-index:1;width:100%;height:28px;border:0;background:transparent;border-radius:0;font-family:'Noto Sans KR',sans-serif;font-size:.78rem;font-weight:800;color:var(--text);display:flex;align-items:center;justify-content:center;gap:.35rem;cursor:pointer;padding:0;text-align:center}
.ticket-mobile-toggle [data-mobile-toggle-label]{white-space:nowrap}
.ticket-mobile-handle{display:none}
.ticket-mobile-toggle i{font-size:.7rem;color:var(--blue);transition:transform .2s}
.ticket-mobile-buy.is-open .ticket-mobile-toggle i{transform:rotate(180deg)}
.ticket-mobile-option-panel{display:none;max-height:45vh;overflow:hidden;border-bottom:1px solid var(--border);padding-bottom:.5rem;position:relative}
.ticket-mobile-buy.is-open .ticket-mobile-option-panel{display:block}
.ticket-mobile-buy .ticket-options{max-height:calc(45vh - 30px);overflow-y:auto}
.ticket-mobile-buy [data-ticket-mobile-buy]{width:100%;padding:.82rem .8rem;border-radius:var(--radius-sm);font-family:'Noto Sans KR',sans-serif;font-size:.92rem;font-weight:800;cursor:pointer;border:0;background:var(--coral);color:white}
.ticket-mobile-buy [data-ticket-mobile-buy]:disabled{background:#c8c8d0;cursor:not-allowed}
.ticket-detail-empty{max-width:720px;margin:160px auto 80px;padding:3rem 1rem;text-align:center}
.ticket-detail-empty strong{display:block;font-size:1.4rem;font-weight:900;color:var(--text);margin-bottom:.5rem}
.ticket-detail-empty p{font-size:.9rem;color:var(--text2);margin-bottom:1.25rem}
.ticket-detail-empty a{display:inline-flex;background:var(--blue);color:white;border-radius:999px;padding:.8rem 1.4rem;font-weight:800}
@media(max-width:900px){
  .ticket-detail-hero{margin-top:60px;background:white}
  .ticket-detail-hero-bg{display:none}
  .ticket-detail-hero-inner{max-width:none;grid-template-columns:1fr;gap:0;padding:0}
  .ticket-gallery-main{border-radius:0}
  .ticket-purchase-card{display:none}
  .ticket-mobile-buy{display:flex}
  .ticket-related-grid{grid-template-columns:repeat(2,1fr)}
  .ticket-photo-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:600px){
  .ticket-detail-hero-inner{padding:0}
  .ticket-detail-wrap{padding:1.25rem 1rem 5rem}
  .ticket-title-block h1{font-size:1.45rem}
  .ticket-photo-grid{grid-template-columns:repeat(2,1fr)}
  .ticket-related-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}
  .ticket-section-card{padding:1.25rem}
}
