/* Homepage booking teaser + the modal that hosts the real reservation flow.
   The flow itself is styled by prodex-reservation.css. */

/* ---------- teaser ---------- */
.hb-teaser{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:stretch}
.hb-teaser-empty{
    display:block;padding:44px;border:1px solid rgba(120,190,165,.16);border-radius:22px;
    background:rgba(6,34,26,.7);color:#aecbc1;text-align:center;font-size:14px;
}

.hb-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hb-card{
    position:relative;isolation:isolate;overflow:hidden;
    display:flex;flex-direction:column;justify-content:flex-end;gap:10px;
    min-height:232px;padding:22px;
    border:1px solid rgba(255,255,255,.08);border-radius:20px;
    color:#f2faf7;text-align:right;cursor:pointer;transition:.24s ease;
}
.hb-card::before{
    content:"";position:absolute;inset:0;z-index:-2;
    background-image:var(--space-img);background-size:cover;background-position:center;
    transition:transform .5s ease;
}
.hb-card::after{
    content:"";position:absolute;inset:0;z-index:-1;
    background:linear-gradient(0deg,rgba(2,20,16,.96) 16%,rgba(2,20,16,.6) 58%,rgba(2,20,16,.22));
    transition:.24s ease;
}
.hb-card:hover{transform:translateY(-4px);border-color:rgba(25,214,155,.45);box-shadow:0 22px 48px rgba(1,14,22,.4)}
.hb-card:hover::before{transform:scale(1.06)}
.hb-card:hover::after{background:linear-gradient(0deg,rgba(3,32,25,.96) 16%,rgba(10,120,92,.4) 76%,rgba(25,214,155,.2))}
.hb-card:focus-visible{outline:2px solid #19d69b;outline-offset:3px}
.hb-card.is-wide{grid-column:1/-1;min-height:190px}

.hb-card-tag{
    position:absolute;top:18px;right:18px;
    padding:6px 12px;border-radius:999px;
    border:1px solid rgba(120,190,165,.32);background:rgba(2,20,16,.62);
    color:#8fe6c6;font-size:11.5px;font-weight:700;
}
.hb-card-body{display:flex;flex-direction:column;gap:7px}
.hb-card-body strong{font-size:19px;font-weight:800}
.hb-card-body em{color:#cfe6dd;font-size:13px;font-style:normal;line-height:1.85}
.hb-card-foot{
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    padding-top:14px;border-top:1px solid rgba(255,255,255,.14);
}
.hb-card-price{color:#63e3b7;font-size:13px;font-weight:700}
.hb-card-price b{font-size:20px;font-weight:900}
.hb-card-price small{color:#8aa9a0;font-size:12px;font-weight:600}
.hb-card-go{
    display:inline-flex;align-items:center;gap:8px;
    color:#f2faf7;font-size:13px;font-weight:800;
}
.hb-card-go i{transition:transform .24s ease}
.hb-card:hover .hb-card-go i{transform:translateX(-4px)}

.hb-callout{
    display:flex;flex-direction:column;gap:22px;justify-content:space-between;
    padding:28px;border:1px solid rgba(120,190,165,.2);border-radius:22px;
    background:linear-gradient(165deg,rgba(18,63,112,.32),rgba(4,28,21,.9));
}
.hb-callout-copy{display:flex;flex-direction:column;gap:12px}
.hb-callout-kicker{
    display:inline-flex;align-items:center;gap:8px;
    color:#63e3b7;font-size:12.5px;font-weight:800;
}
.hb-callout-copy strong{color:#f4fbf8;font-size:21px;font-weight:800;line-height:1.75}
.hb-callout-copy p{margin:0;color:#a2bfb6;font-size:13.5px;line-height:2.05}
.hb-callout-points{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.hb-callout-points li{display:flex;align-items:center;gap:9px;color:#c3dbd3;font-size:13px}
.hb-callout-points i{color:#19d69b;font-size:11px}
.hb-callout-cta{
    display:flex;align-items:center;justify-content:center;gap:11px;
    width:100%;min-height:58px;border:0;border-radius:16px;
    background:linear-gradient(135deg,#19d69b,#0aa47f);
    color:#032119;font-size:15px;font-weight:800;cursor:pointer;
    box-shadow:0 14px 32px rgba(25,214,155,.22);transition:.2s;
}
.hb-callout-cta:hover{filter:brightness(1.06);transform:translateY(-1px)}
.hb-callout-cta:focus-visible{outline:2px solid #19d69b;outline-offset:3px}

@media(max-width:1100px){
    .hb-teaser{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:767px){
    .hb-cards{grid-template-columns:1fr}
    .hb-card,.hb-card.is-wide{min-height:200px;padding:18px}
    .hb-card-body strong{font-size:17px}
    .hb-callout{padding:22px 18px}
    .hb-callout-copy strong{font-size:18px}
}

/* ---------- modal ---------- */
.rsv-modal{
    position:fixed;inset:0;z-index:100000;
    display:flex;align-items:center;justify-content:center;
    padding:20px;direction:rtl;
}
.rsv-modal[hidden]{display:none}
.rsv-modal-backdrop{position:absolute;inset:0;background:rgba(1,12,18,.82);backdrop-filter:blur(9px)}
.rsv-modal-dialog{
    position:relative;z-index:1;
    display:flex;flex-direction:column;
    width:min(1260px,96vw);height:min(940px,92vh);
    overflow:hidden;
    /* .rsv also lands here for the design tokens, so undo its page-level sizing. */
    min-height:0;padding:0;
    border:1px solid rgba(25,214,155,.28);border-radius:26px;
    background:#021d17;
    box-shadow:0 40px 110px rgba(0,0,0,.6);
    animation:rsvModalIn .28s ease;
}
@keyframes rsvModalIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.rsv-modal-dialog{animation:none}}

.rsv-modal-head{
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    flex:0 0 auto;min-height:76px;padding:16px 24px;
    border-bottom:1px solid rgba(120,190,165,.16);
    background:linear-gradient(90deg,rgba(4,39,30,.98),rgba(7,29,46,.96));
}
.rsv-modal-head div{display:flex;flex-direction:column;gap:4px}
.rsv-modal-head span{color:#f2faf7;font-size:17px;font-weight:800}
.rsv-modal-head small{color:#8eaea4;font-size:12.5px}
.rsv-modal-close{
    display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;
    border:1px solid rgba(255,255,255,.14);border-radius:50%;
    background:rgba(255,255,255,.06);color:#e5f3ee;font-size:15px;cursor:pointer;transition:.2s;
}
.rsv-modal-close:hover{border-color:#ff8f8f;color:#ff8f8f}
.rsv-modal-close:focus-visible{outline:2px solid #19d69b;outline-offset:2px}

.rsv-modal-body{
    flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;
    padding:24px;background:#021d17;
}
.rsv-modal-body .rsv-shell{max-width:100%}
/* The modal already provides the sticky footer affordance via its own layout. */
.rsv-modal .rsv-bar{position:sticky;inset:auto;margin-top:18px;border-radius:16px}

body.rsv-modal-open{overflow:hidden}

@media(max-width:820px){
    .rsv-modal{padding:0}
    .rsv-modal-dialog{width:100vw;height:100dvh;border:0;border-radius:0}
    .rsv-modal-head{min-height:64px;padding:12px 16px}
    .rsv-modal-head span{font-size:15px}
    .rsv-modal-head small{display:none}
    .rsv-modal-body{padding:14px}
    .rsv-modal .rsv-bar{margin-top:14px}
}
