:root { --navy:#122252; --blue:#1a3473; --bright:#3154a2; --red:#cd0934; --red-dark:#aa062a; --paper:#f7f8fc; --ink:#122252; --muted:#62708c; --line:#dce1ed; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button,input,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
.hidden { display:none !important; }
.honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.status-message { padding:14px 16px; border-radius:12px; background:#eef4ff; color:#445a7c; font-size:13px; }
.status-message.error { color:#b42318; background:#fff0ef; border:1px solid #ffc9c5; }
.topbar { height:88px; display:flex; align-items:center; justify-content:space-between; padding:0 max(24px,calc((100vw - 1160px)/2)); background:white; border-bottom:3px solid var(--red); position:relative; z-index:4; }
.brand { display:flex; gap:12px; align-items:center; color:var(--navy); text-decoration:none; }
.brand-logo { width:62px; height:62px; object-fit:contain; filter:drop-shadow(0 4px 8px rgba(18,34,82,.12)); }
.brand strong,.brand small { display:block; }.brand strong { font-size:17px; }.brand small { color:#6b7890; font-size:10px; margin-top:2px; }
.secure-label { color:#49607c; font-size:13px; font-weight:650; }.secure-label span { display:inline-grid; place-items:center; width:22px; height:22px; background:#e7f5ec; color:#12833b; border-radius:50%; margin-right:6px; }
.hero { min-height:475px; background:radial-gradient(circle at 82% 24%,rgba(205,9,52,.24),transparent 28%),linear-gradient(118deg,#0a1637 5%,var(--navy) 58%,#1a3473); color:white; display:grid; grid-template-columns:1.25fr .75fr; gap:72px; align-items:center; padding:74px max(24px,calc((100vw - 1160px)/2)) 106px; position:relative; overflow:hidden; }
.hero:after { content:""; position:absolute; width:420px; height:420px; border:80px solid rgba(205,9,52,.09); border-radius:50%; right:-130px; bottom:-250px; }
.eyebrow { display:inline-flex; color:#ff7895; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.16em; }
.hero h1 { max-width:720px; font-size:clamp(42px,5.2vw,72px); line-height:.99; letter-spacing:-.055em; margin:16px 0 22px; }
.hero-copy>p { max-width:650px; color:#cbd9f4; line-height:1.7; font-size:18px; }
.trust-row { display:flex; gap:26px; flex-wrap:wrap; margin-top:32px; color:#e6edfb; font-size:13px; }.trust-row span { display:flex; align-items:center; gap:8px; }.trust-row i { width:25px;height:25px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:50%;font-style:normal;font-size:11px; }
.hero-card { position:relative; z-index:1; padding:30px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.2); border-radius:24px; backdrop-filter:blur(9px); box-shadow:0 25px 70px rgba(0,0,0,.18); }.hero-logo-wrap { width:128px; height:128px; display:grid; place-items:center; background:white; border-radius:50%; padding:7px; margin:0 0 34px; box-shadow:0 16px 36px rgba(0,0,0,.2),0 0 0 5px rgba(205,9,52,.2); transform:rotate(-3deg); }.hero-logo-wrap img { width:100%; height:100%; object-fit:contain; }.hero-card strong { font-size:21px; }.hero-card p { color:#cbd9f4; line-height:1.6; font-size:14px; margin:10px 0 0; }
.booking-shell { width:min(1060px,calc(100% - 32px)); margin:-44px auto 64px; position:relative; z-index:3; background:white; border-radius:28px; padding:42px; box-shadow:0 24px 80px rgba(16,41,92,.14); }
.section-heading { display:flex; align-items:center; gap:16px; margin-bottom:24px; }.section-heading.compact { margin-top:4px; }.step-number { width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#fbe8ed;color:var(--red);font-size:13px;font-weight:900; }.section-heading p { color:var(--red); margin:0 0 4px; font-size:11px; text-transform:uppercase; font-weight:850; letter-spacing:.13em; }.section-heading h2 { margin:0; font-size:27px; letter-spacing:-.035em; }
.category-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; }.category-card { border:1px solid var(--line); border-radius:16px; padding:17px; text-align:left; background:#fff; cursor:pointer; transition:.2s ease; position:relative; }.category-card span,.category-card small { display:block; }.category-card span { color:var(--navy); font-weight:850; font-size:17px; }.category-card small { color:var(--muted); margin-top:3px; font-size:12px; }.category-card b { position:absolute; right:14px; top:20px; color:#aab5c5; }.category-card:hover { border-color:#90ace1; transform:translateY(-2px); }.category-card.selected { background:var(--navy); border-color:var(--navy); box-shadow:0 10px 25px rgba(11,31,81,.18); }.category-card.selected span,.category-card.selected small,.category-card.selected b { color:white; }
.schedule-panel { display:none; margin-top:42px; border-top:1px solid #edf0f5; padding-top:34px; }.schedule-panel.visible { display:block; animation:appear .35s ease; }.loading-text { color:var(--muted); font-size:13px; }.date-strip { display:flex; gap:9px; overflow-x:auto; padding:4px 2px 12px; scrollbar-width:thin; }.date-strip button { flex:0 0 82px; display:grid; place-items:center; min-height:92px; border:1px solid var(--line); border-radius:15px; background:white; cursor:pointer; color:#52617a; }.date-strip span,.date-strip small { text-transform:capitalize; font-size:11px; }.date-strip strong { color:var(--navy); font-size:23px; }.date-strip button.selected { background:var(--navy); color:white; border-color:var(--navy); box-shadow:inset 0 -4px 0 var(--red); }.date-strip button.selected strong { color:white; }
.time-list { margin-top:18px; padding:22px; background:#f6f8fc; border-radius:18px; }.time-list>p { margin:0 0 14px; color:#50607a; font-size:13px; text-transform:capitalize; }.time-list>div { display:flex; gap:10px; flex-wrap:wrap; }.time-list button { min-width:130px; border:1px solid #d7dfec; background:white; border-radius:12px; padding:13px 16px; cursor:pointer; text-align:left; }.time-list button strong,.time-list button small { display:block; }.time-list button strong { color:var(--navy); font-size:17px; }.time-list button small { color:#6b7890; margin-top:3px; font-size:11px; }.time-list button.selected { background:#eaf1ff; border-color:var(--bright); box-shadow:0 0 0 2px rgba(30,94,208,.12); }.time-list button:disabled,.category-card:disabled,.date-strip button:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.details-form { margin-top:42px; border-top:1px solid #edf0f5; padding-top:34px; animation:appear .35s ease; }.selected-summary { display:flex;gap:12px;align-items:center;background:#eef4ff;border:1px solid #d7e5ff;border-radius:15px;padding:14px 18px;margin-bottom:22px; }.selected-summary>span { font-size:25px; }.selected-summary strong,.selected-summary small { display:block; }.selected-summary strong { color:var(--navy); }.selected-summary small { color:#58709b; text-transform:capitalize; margin-top:2px; font-size:12px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.form-grid label { display:grid;gap:8px;color:#2b3b57;font-weight:750;font-size:13px; }.form-grid label span { color:#8a95a8; font-weight:500; }.form-grid .full { grid-column:1/-1; }.form-grid input,.form-grid textarea { width:100%; border:1px solid #d8e0ec; border-radius:12px; background:white; padding:13px 14px; color:var(--ink); outline:none; font-weight:500; resize:vertical; }.form-grid input:focus,.form-grid textarea:focus { border-color:var(--bright); box-shadow:0 0 0 3px rgba(49,84,162,.12); }.consent { display:flex; gap:10px; align-items:flex-start; color:#59677c;font-size:12px;line-height:1.5;margin:20px 0; }.consent input { accent-color:var(--red); margin-top:2px; }.submit-button { width:100%; border:0; border-radius:14px; padding:17px 21px; display:flex; justify-content:space-between; background:var(--red); color:white; font-weight:850; cursor:pointer; box-shadow:0 12px 28px rgba(205,9,52,.25); }.submit-button:hover { background:var(--red-dark); }.submit-button:disabled { opacity:.65;cursor:wait; }.privacy-note { text-align:center;color:#8a95a8;font-size:11px; }.error-message { color:#b42318; background:#fff0ef; border:1px solid #ffc9c5; padding:12px 14px; border-radius:10px; font-size:13px; }
.confirmation { text-align:center; margin-top:40px; border-top:1px solid #edf0f5; padding:42px 16px 10px; animation:appear .4s ease; }.confirmation-icon { display:grid; place-items:center; width:68px;height:68px;border-radius:50%;background:#dff5e5;color:#16833d;font-weight:900;font-size:30px;margin:0 auto 20px; }.confirmation h2 { font-size:32px;letter-spacing:-.035em;margin:10px 0; }.confirmation>p { color:#61708c; }.confirmation-ticket { width:min(480px,100%); margin:24px auto; display:grid;grid-template-columns:1fr 2fr .7fr;align-items:center;background:var(--navy);color:white;border-radius:16px;padding:18px;gap:10px;text-transform:capitalize; }.confirmation-ticket span { font-size:12px; }.confirmation-ticket strong { font-size:15px; }.confirmation-ticket b { font-size:22px; }.arrival-note { width:min(580px,100%); margin:0 auto 22px; }.whatsapp-button { display:inline-flex;background:#159f56;color:white;text-decoration:none;font-weight:800;padding:14px 20px;border-radius:12px; }
.info-band { width:min(1060px,calc(100% - 32px)); margin:0 auto 64px; display:grid;grid-template-columns:repeat(3,1fr);gap:18px; }.info-band>div { display:flex;gap:12px;align-items:center;padding:19px 20px;background:white;border:1px solid #e2e7ef;border-radius:16px; }.info-band span { display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e5f5ea;color:#11823b;font-weight:800; }.info-band p,.info-band strong { display:block;margin:0; }.info-band p { color:#718097;font-size:11px;line-height:1.5; }.info-band strong { color:var(--navy);font-size:13px; }
footer { display:flex;align-items:center;gap:16px;padding:30px max(24px,calc((100vw - 1160px)/2));background:#0a1637;border-top:4px solid var(--red);color:white; }footer img { width:48px;height:48px;object-fit:contain; }footer strong { font-size:17px; }footer span,footer small { color:#a8b5cf;font-size:12px; }footer small { margin-left:auto; }
@keyframes appear { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:none; } }
@media (max-width:850px) { .hero { grid-template-columns:1fr;gap:36px;padding-top:58px; }.hero-card { display:none; }.category-grid { grid-template-columns:repeat(3,1fr); }.booking-shell { padding:28px; }.info-band { grid-template-columns:1fr; } }
@media (max-width:600px) { .topbar { height:78px;padding:0 16px; }.brand-logo { width:54px;height:54px; }.brand small,.secure-label { display:none; }.hero { min-height:430px;padding:54px 20px 86px; }.hero h1 { font-size:43px; }.hero-copy>p { font-size:16px; }.trust-row { gap:11px;align-items:flex-start;flex-direction:column; }.booking-shell { width:calc(100% - 20px);padding:24px 18px;margin-top:-38px;border-radius:22px; }.section-heading h2 { font-size:23px; }.step-number { width:43px;height:43px; }.category-grid { grid-template-columns:1fr 1fr; }.form-grid { grid-template-columns:1fr; }.form-grid .full { grid-column:auto; }.date-strip button { flex-basis:72px; }.confirmation { padding-left:0;padding-right:0; }.confirmation h2 { font-size:27px; }.confirmation-ticket { grid-template-columns:1fr;gap:4px; }.info-band { margin-bottom:36px; }footer { flex-wrap:wrap; }footer small { width:100%;margin-left:0; } }
