/* Levantades Booking — scoped styles */
.lvb {
    --lvb-ink: #10202f;        /* deep sea navy */
    --lvb-paper: #faf7f0;      /* sailcloth */
    --lvb-line: #e3dccb;
    --lvb-brass: #a8894f;      /* brass fittings */
    --lvb-mahogany: #7c3a2d;   /* hull accent */
    --lvb-muted: #6d6455;

    max-width: 920px;
    margin: 0 auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--lvb-ink);
}
.lvb * { box-sizing: border-box; }

/* ── Head ── */
.lvb-head { text-align: center; margin-bottom: 34px; }
.lvb-eyebrow {
    display: inline-block;
    font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
    color: var(--lvb-brass); margin-bottom: 10px;
}
.lvb-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 600; font-size: 34px; line-height: 1.15;
    margin: 0 0 8px; color: var(--lvb-ink);
}
.lvb-sub {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 24px; font-weight: 500;
    color: var(--lvb-ink); margin: 0;
}

/* ── Layout ── */
.lvb-grid {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 26px;
    align-items: start;
}
.lvb-panel {
    background: var(--lvb-paper);
    border: 1px solid var(--lvb-line);
    border-radius: 6px;
    padding: 26px;
}

/* ── Steps ── */
.lvb-step {
    display: flex; align-items: center; gap: 10px;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 19px; font-weight: 600;
    margin: 0 0 16px;
}
.lvb-step + .lvb-step { margin-top: 26px; }
.lvb-step span {
    width: 26px; height: 26px; flex-shrink: 0;
    border: 1px solid var(--lvb-brass);
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 600;
    color: var(--lvb-brass);
}

/* ── Calendar ── */
.lvb-cal-nav {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px;
}
.lvb-cal-month {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 20px; font-weight: 600;
}
.lvb-cal-prev, .lvb-cal-next {
    background: none; border: 1px solid var(--lvb-line);
    border-radius: 4px; width: 34px; height: 34px;
    cursor: pointer; color: var(--lvb-ink); font-size: 15px;
    transition: border-color .15s;
}
.lvb-cal-prev:hover, .lvb-cal-next:hover { border-color: var(--lvb-brass); }
.lvb-cal-prev:disabled { opacity: .3; cursor: default; }

.lvb-cal-week {
    display: grid; grid-template-columns: repeat(7, 1fr);
    text-align: center; font-size: 10px; letter-spacing: .08em;
    text-transform: uppercase; color: var(--lvb-muted);
    margin-bottom: 6px;
}
.lvb-cal-days {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
}
.lvb-day {
    aspect-ratio: 1;
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; border-radius: 4px;
    border: 1px solid transparent;
    background: #fff;
    cursor: pointer; user-select: none;
    transition: all .12s;
}
.lvb-day.lvb-empty { background: transparent; cursor: default; }
.lvb-day.lvb-off {
    background: transparent; color: #c4bcab;
    text-decoration: line-through; cursor: default;
}
.lvb-day:not(.lvb-off):not(.lvb-empty):hover { border-color: var(--lvb-brass); }
.lvb-day.lvb-selected {
    background: var(--lvb-ink); color: #fff; border-color: var(--lvb-ink);
    font-weight: 600;
}
.lvb-cal-legend {
    margin-top: 14px; font-size: 12px; color: var(--lvb-muted);
    display: flex; align-items: center; gap: 6px;
}
.lvb-lg {
    width: 12px; height: 12px; border-radius: 3px; display: inline-block;
}
.lvb-lg-free { background: #fff; border: 1px solid var(--lvb-line); }
.lvb-lg-busy { background: transparent; border: 1px solid var(--lvb-line); position: relative; margin-left: 14px; }
.lvb-lg-busy::after {
    content: ""; position: absolute; left: 1px; right: 1px; top: 50%;
    border-top: 1px solid #c4bcab;
}
.lvb-chosen {
    margin-top: 16px; padding: 12px 14px;
    background: #fff; border: 1px solid var(--lvb-brass);
    border-radius: 4px; font-size: 14px;
}


/* ── Fields ── */
.lvb-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lvb-field { grid-column: span 2; }
.lvb-field-half { grid-column: span 1; }
.lvb-field label {
    display: block; font-size: 12px; font-weight: 600;
    letter-spacing: .04em; margin-bottom: 5px; color: var(--lvb-ink);
}
.lvb-field label em { font-weight: 400; color: var(--lvb-muted); font-style: normal; }
.lvb-field input, .lvb-field select, .lvb-field textarea {
    width: 100%; padding: 11px 12px;
    border: 1px solid var(--lvb-line); border-radius: 4px;
    background: #fff; font-family: inherit; font-size: 14px;
    color: var(--lvb-ink); transition: border-color .15s;
}
.lvb-field input:focus, .lvb-field select:focus, .lvb-field textarea:focus {
    outline: none; border-color: var(--lvb-brass);
    box-shadow: 0 0 0 3px rgba(168, 137, 79, .12);
}
.lvb-field textarea { resize: vertical; }

/* ── Payment ── */
.lvb-pay-note { font-size: 13px; color: var(--lvb-muted); margin: 16px 0 12px; }
.lvb-card-el {
    background: #fff; border: 1px solid var(--lvb-line);
    border-radius: 4px; padding: 13px 12px;
}
.lvb-card-el.StripeElement--focus {
    border-color: var(--lvb-brass);
    box-shadow: 0 0 0 3px rgba(168, 137, 79, .12);
}
.lvb-error {
    color: #a13326; font-size: 13px; margin-top: 10px; min-height: 0;
}

/* ── Button ── */
.lvb-btn {
    width: 100%; margin-top: 18px;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    background: var(--lvb-ink); color: #fff;
    border: none; border-radius: 4px;
    padding: 15px 20px;
    font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600;
    letter-spacing: .06em; text-transform: uppercase;
    cursor: pointer; transition: background .15s;
}
.lvb-btn:hover { background: #1c3a55; }
.lvb-btn:disabled { opacity: .55; cursor: default; }
.lvb-secure {
    text-align: center; font-size: 12px; color: var(--lvb-muted); margin-top: 10px;
}

@keyframes lvb-spin { to { transform: rotate(360deg); } }
.lvb-spinner {
    width: 16px; height: 16px;
    border: 2px solid rgba(255,255,255,.35); border-top-color: #fff;
    border-radius: 50%; animation: lvb-spin .7s linear infinite;
}

/* ── Success ── */
.lvb-success {
    text-align: center;
    background: var(--lvb-paper); border: 1px solid var(--lvb-brass);
    border-radius: 6px; padding: 48px 30px;
}
.lvb-success-mark { font-size: 40px; margin-bottom: 10px; }
.lvb-success h3 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 28px; font-weight: 600; margin: 0 0 12px;
}
.lvb-success p { font-size: 15px; color: var(--lvb-muted); line-height: 1.7; margin: 0; }

/* ── Mobile ── */
@media (max-width: 768px) {
    .lvb-grid { grid-template-columns: 1fr; gap: 18px; }
    .lvb-panel { padding: 18px; }
    .lvb-title { font-size: 27px; }
    .lvb-field-half { grid-column: span 2; }
}

/* ── Trip dropdown ── */
.lvb-trip-select { margin-bottom: 16px; }
.lvb-trip-select label {
    display: block; font-size: 12px; font-weight: 600;
    letter-spacing: .04em; margin-bottom: 5px; color: var(--lvb-ink);
}
.lvb-trip-select select {
    width: 100%; padding: 11px 12px;
    border: 1px solid var(--lvb-line); border-radius: 4px;
    background: #fff; font-family: inherit; font-size: 14px;
    color: var(--lvb-ink); cursor: pointer; transition: border-color .15s;
}
.lvb-trip-select select:focus {
    outline: none; border-color: var(--lvb-brass);
    box-shadow: 0 0 0 3px rgba(168, 137, 79, .12);
}

/* ── Price under calendar ── */
.lvb-price {
    margin-top: 18px; padding: 16px;
    background: #fff; border: 1px solid var(--lvb-line);
    border-radius: 4px; text-align: center;
}
.lvb-price-amount {
    display: block;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 40px; font-weight: 600; line-height: 1;
    color: var(--lvb-ink);
}
.lvb-price-label {
    display: block; margin-top: 6px;
    font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase;
    color: var(--lvb-muted);
}

/* ── BOOK NOW button + expandable panel ── */
.lvb-booknow-wrap { text-align: center; }
.lvb-booknow {
    display: inline-block;
    background: #10202f; color: #fff;
    border: 1px solid #10202f; border-radius: 4px;
    padding: 16px 44px;
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 14px; font-weight: 600;
    letter-spacing: .14em; text-transform: uppercase;
    cursor: pointer; transition: all .15s;
}
.lvb-booknow:hover {
    background: #a8894f; border-color: #a8894f; color: #fff;
}
.lvb-booknow-panel { margin-top: 34px; padding-bottom: 30px; text-align: left; }
.lvb-booknow-panel .lvb-sub { color: #c9a45e; }
.lvb-booknow-panel .lvb-eyebrow { color: #c9a45e; }

/* BOOK NOW unutar hero plate-a */
.lv-hero__plate .lvb-booknow {
    display: block;
    margin-top: 14px;
    padding: 13px 24px;
    width: 55%;
    margin-left: auto;
    margin-right: auto;
    background: #a8894f;
    border-color: #a8894f;
    color: #fff;
}
.lv-hero__plate .lvb-booknow:hover {
    background: #10202f;
    border-color: #10202f;
    color: #fff;
}

/* ── Coupon ── */
.lvb-coupon { margin-top: 16px; }
.lvb-coupon label {
    display: block; font-size: 12px; font-weight: 600;
    letter-spacing: .04em; margin-bottom: 5px; color: var(--lvb-ink);
}
.lvb-coupon label em { font-weight: 400; color: var(--lvb-muted); font-style: normal; }
.lvb-coupon-row { display: flex; gap: 8px; }
.lvb-coupon-row input {
    flex: 1; padding: 11px 12px;
    border: 1px solid var(--lvb-line); border-radius: 4px;
    background: #fff; font-family: inherit; font-size: 14px;
    color: var(--lvb-ink); transition: border-color .15s;
}
.lvb-coupon-row input:focus {
    outline: none; border-color: var(--lvb-brass);
    box-shadow: 0 0 0 3px rgba(168, 137, 79, .12);
}
.lvb-coupon-row input:disabled { background: var(--lvb-paper); color: var(--lvb-muted); }
.lvb-coupon-btn {
    padding: 0 20px;
    background: #fff; color: var(--lvb-ink);
    border: 1px solid var(--lvb-ink); border-radius: 4px;
    font-family: 'Inter', sans-serif; font-size: 12.5px; font-weight: 600;
    letter-spacing: .06em; text-transform: uppercase;
    cursor: pointer; transition: all .15s;
}
.lvb-coupon-btn:hover { background: var(--lvb-ink); color: #fff; }
.lvb-coupon-btn:disabled { opacity: .55; cursor: default; }
.lvb-coupon-msg { font-size: 13px; margin-top: 7px; min-height: 0; }
