/* Reservation flow styles */
.reserve-hero{position:relative;overflow:hidden;margin:0 0 28px;background:#0f0f12;color:#fff}
.reserve-hero .inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:48px 20px 36px}
.reserve-hero .title{font-size:36px;font-weight:800;margin:0 0 6px;letter-spacing:-0.02em;color:#fff}
.reserve-hero .product-title{margin-top:6px;color:#e5e7eb;font-weight:600}
.reserve-hero .product-price{margin-top:4px;color:#93c5fd;font-weight:700}
.reserve-hero .bg{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.35),rgba(0,0,0,.35))}
.reserve-hero .overlay{position:absolute;inset:auto 0 0 0;height:6px;background:linear-gradient(90deg,#d52e2e,#e38d2f,#307CE5)}
.reserve-hero .deco{position:absolute;top:0;left:0;opacity:.15;width:100%;height:100%;object-fit:cover}
.reserve-hero .steps{list-style:none;display:flex;gap:8px;padding:10px 0 0;margin:12px 0 0}
.reserve-hero .step{background:rgba(255,255,255,.08);color:#e5e7eb;border:1px solid rgba(255,255,255,.14);padding:6px 10px;border-radius:999px;font-size:12px}
.reserve-hero .step.on{background:#fff;color:#111827;border-color:#fff}

.reserve-body .inner { max-width:1200px; margin:0 auto; padding:0 16px; }
.reserve-body .cols { display:grid; grid-template-columns: minmax(0,1fr) 360px; gap:24px; align-items:start; }
@media (max-width: 980px){ .reserve-body .cols { grid-template-columns:1fr; } }

.sec-title { margin:18px 0 10px; font-size:18px; color:#0f172a; }

/* Depart list */
.depart-list { list-style:none; padding:0; margin:8px 0 16px; display:grid; gap:12px; }
.depart-item label { display:block; cursor:pointer; }
.depart-item input[type=radio]{ display:none; }
.depart-item .card { display:grid; grid-template-columns: 1.2fr 1fr 100px; gap:12px; align-items:center; background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:16px 18px; box-shadow:0 3px 10px rgba(0,0,0,.04); transition:transform .15s ease, box-shadow .15s ease; }
.depart-item .card:hover { transform: translateY(-1px); box-shadow:0 8px 20px rgba(0,0,0,.08); }
.depart-item.sold .card { opacity:.6; }
.depart-item .dt { font-weight:700; color:#111827; }
.depart-item .place { color:#374151; }
.depart-item .seat { text-align:right; font-weight:700; color:#2563eb; }
.depart-item.sold .seat { color:#9ca3af; }
.depart-item input[type=radio]:checked + .card { outline:2px solid #2a62f4; }

.empty { color:#6b7280; background:#f9fafb; border:1px dashed #e5e7eb; padding:16px; border-radius:8px; }

/* Summary side */
.summary { position:sticky; top:20px; background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.summary .label { color:#64748b; font-size:13px; }
.summary .price { color:#1e40af; font-size:22px; font-weight:800; margin-top:6px; }
.summary .note { color:#64748b; font-size:12px; margin-top:6px; }
.summary .depart { margin-top:10px; color:#374151; }

.info-box { margin-top:16px; background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:14px; }
.info-box .bullets { margin:6px 0 0; padding-left:18px; color:#334155; }

/* Form grids */
.grid { display:grid; gap:12px; margin:10px 0 14px; }
.grid.two { grid-template-columns: 1fr 1fr; }
.grid.three { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 980px){ .grid.two, .grid.three { grid-template-columns:1fr; } }

label { color:#111827; font-weight:600; display:flex; flex-direction:column; gap:6px; }
input[type=text], input[type=email] { height:42px; padding:0 12px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:#111; }
input[type=text]:focus, input[type=email]:focus { outline:2px solid #2a62f4; border-color:#2a62f4; }
.radios { display:flex; gap:14px; align-items:center; font-weight:400; }

/* Gender segmented tabs */
.gender-tabs { display:grid; grid-template-columns:1fr 1fr; background:#f1f5f9; border:1px solid #cbd5e1; border-radius:10px; overflow:hidden; }
.gender-tabs input { display:none; }
.gender-tabs .tab { display:block; text-align:center; padding:10px 0; font-weight:700; color:#475569; cursor:pointer; user-select:none; border-left:1px solid #e2e8f0; }
.gender-tabs .tab:first-of-type { border-left:0; }
.gender-tabs input:checked + .tab { background:#2a62f4; color:#fff; border-left-color:transparent; box-shadow: inset 0 0 0 1px #2a62f4; }
.gender-tabs input:focus-visible + .tab { outline:2px solid #2a62f4; outline-offset:-2px; }

/* Terms */
.terms details { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:12px 14px; margin:10px 0; }
.terms summary { cursor:pointer; font-weight:700; color:#111827; }
.terms .term-body { color:#374151; margin:8px 0; line-height:1.6; }
.terms .term-agree { color:#111827; }
.terms .term-all { background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:10px 12px; margin:4px 0 12px; }

/* Custom checkboxes from login modal */
.terms .terms-list{display:flex;flex-direction:column;gap:10px;margin:8px 0 10px}
.terms .t-row label{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:10px 14px;cursor:pointer;border:1px solid #e5e7eb;flex-direction: row;}
.terms .t-row.t-all label{background: #f3f8ff;border-color:#efefef;padding:14px;flex-direction: row;}
.terms .t-inp{display:none}
.terms .t-check{width:22px;height:22px;display:inline-block;background:url('/img/check_off.png') center/contain no-repeat}
.terms .t-inp:checked+label .t-check{background-image:url('/img/check_on.png')}
.terms .t-text{flex:1;font-weight:700;color:#111}
.terms .term-notes details{margin-top:6px}

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; height:42px; padding:0 16px; border-radius:10px; background:#f1f3f5; color:#222; text-decoration:none; border:0; cursor:pointer; font-weight:700; transition: transform .05s ease, box-shadow .15s ease; }
.btn:hover { transform: translateY(-1px); box-shadow:0 6px 14px rgba(0,0,0,.08); }
.btn.primary { background:#2a62f4; color:#fff; box-shadow: 0 3px 8px rgba(42,98,244,.35); }
.btn.small { height:32px; padding:0 12px; font-size:13px; }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.actions { display:flex; gap:10px; justify-content:flex-end; margin:18px 0 6px; }
.actions.center { justify-content:center; }

/* Success */
.success-box { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:18px; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.success-box h2 { margin:0 0 8px; }
.success-box .no { color:#1f2937; }
.success-box .kv { list-style:none; padding:0; margin:10px 0; display:grid; gap:6px; }
.success-box .kv .k { display:inline-block; min-width:64px; color:#6b7280; }
.success-box .kv .v { color:#0f172a; font-weight:600; }

/* People counter & pax list */
.people-box{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
.person-row{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px}
.person-row .label{font-weight:700;color:#111827}
.person-row .ctrl{display:flex;align-items:center;gap:10px}
.qty-btn{width:34px;height:34px;border-radius:8px;border:1px solid #d1d5db;background:#f9fafb;cursor:pointer;font-weight:800}
.qty{min-width:16px;text-align:center;font-weight:800;color:#111827}
.pax-list{display:flex;flex-direction:column;gap:14px}
.pax{border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:12px}
.pax legend{font-weight:800;color:#111827;padding:0 6px}
.pax .passport{margin-top:8px;padding-top:8px;border-top:1px dashed #e5e7eb}
.pax-list.is-passport-deferred .passport{display:none}
.passport-toggle{margin:8px 0 14px;color:#374151;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.passport-toggle .label{font-weight:800;color:#111827}
.passport-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:10px;overflow:hidden}
.passport-tabs input{display:none}
.passport-tabs .tab{display:block;text-align:center;padding:10px 14px;font-weight:700;color:#475569;cursor:pointer;user-select:none;border-left:1px solid #e2e8f0}
.passport-tabs .tab:first-of-type{border-left:0}
.passport-tabs input:checked + .tab{background:#2a62f4;color:#fff;border-left-color:transparent;box-shadow:inset 0 0 0 1px #2a62f4}
.passport-tabs input:focus-visible + .tab{outline:2px solid #2a62f4;outline-offset:-2px}

/* Summary people list */
.sum-people{list-style:none;padding:8px 0 0;margin:6px 0 0;color:#334155;display:flex;flex-direction:column;gap:4px}
.reserve-body{
    margin: 80px auto
}