* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
a, button, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 3px solid rgba(34, 211, 238, .75); outline-offset: 3px; }

.glass { background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(16px); }
.hero-bg { background-image: linear-gradient(120deg, rgba(2, 44, 64, 0.88), rgba(0, 151, 178, 0.58)), var(--hero-image, url("/assets/images/hero.webp")); background-size: cover; background-position: center center; }
.site-header { min-height: 60px; }
.header-inner { min-height: 60px; gap: .75rem; }
.header-actions { flex-shrink: 0; }
.site-logo { height: 34px; width: auto; max-width: 128px; object-fit: contain; }
.nav-link { transition: color .2s ease; white-space: nowrap; }
.nav-link:hover, .nav-link:focus-visible { color: #a5f3fc; outline: none; }
.lang-btn { min-height: 38px; border-radius: 9999px; border: 1px solid rgba(255,255,255,.3); padding: .35rem .7rem; font-size: .82rem; font-weight: 800; line-height: 1; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.lang-btn:hover, .lang-btn:focus-visible, .lang-active { background: #fff; color: #020617; border-color: #fff; outline: none; }
.mobile-cta { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; border-radius: 9999px; background: #10b981; padding: .45rem .85rem; color: #fff; font-size: .82rem; font-weight: 900; line-height: 1; box-shadow: 0 12px 26px rgba(6, 78, 59, .28); transition: transform .2s ease, background .2s ease; }
.mobile-cta:hover, .mobile-cta:focus-visible { background: #34d399; transform: translateY(-1px); }

.section-padding { padding-top: 4rem; padding-bottom: 4rem; }
.hero-section { min-height: auto; padding-top: 4.75rem; }
.hero-inner { width: 100%; padding-top: 3rem; padding-bottom: 3.5rem; }
.hero-copy, .price-panel, .list-card, .info-card, .schedule-card, .requirement-card, .faq-item { min-width: 0; overflow-wrap: anywhere; }
.hero-copy h1 { font-size: clamp(2.05rem, 9vw, 3.75rem); line-height: 1.03; letter-spacing: 0; }
.hero-copy p { overflow-wrap: anywhere; }
.hero-actions a, .btn-whatsapp, .btn-light, .section-padding a[data-whatsapp-link]:not(.floating-whatsapp) { width: 100%; min-height: 48px; justify-content: center; }
.btn-whatsapp { display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; background: #10b981; padding: 1rem 1.35rem; text-align: center; font-weight: 800; color: #fff; box-shadow: 0 18px 35px rgba(6, 78, 59, .3); transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.btn-whatsapp:hover, .btn-whatsapp:focus-visible { background: #34d399; transform: translateY(-1px); outline: none; box-shadow: 0 22px 40px rgba(6, 78, 59, .35); }
.btn-light { display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; background: #fff; padding: 1rem 1.35rem; text-align: center; font-weight: 800; color: #020617; transition: transform .2s ease, background .2s ease; }
.btn-light:hover, .btn-light:focus-visible { background: #ecfeff; transform: translateY(-1px); outline: none; }

.price-panel { border-radius: 1.35rem; }
.price-card { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1rem; border-radius: 1rem; border: 1px solid #cffafe; background: #fff; padding: 1rem; box-shadow: 0 1px 3px rgba(15, 23, 42, .06); }
.price-card .text-right { text-align: left; }
.info-card { border-radius: 1.1rem; background: #ecfeff; padding: 1.25rem; }
.list-card { border-radius: 1.1rem; background: #fff; padding: 1.25rem; box-shadow: 0 1px 3px rgba(15, 23, 42, .06); border: 1px solid #f1f5f9; }
.schedule-card { display: flex; gap: 1rem; border-radius: 1rem; background: rgba(255,255,255,.1); padding: 1.1rem; }
.requirement-card { border-radius: 1rem; background: #fff; padding: 1.1rem; }
.payment-card { border-radius: 1rem; background: rgba(255,255,255,.1); padding: 1rem; font-weight: 800; transition: background .2s ease, transform .2s ease; overflow-wrap: anywhere; }
.payment-card:hover { background: rgba(255,255,255,.16); transform: translateY(-1px); }
.faq-item { border-radius: 1rem; background: #fff; padding: 1.25rem; box-shadow: 0 1px 3px rgba(15, 23, 42, .06); border: 1px solid #f1f5f9; }
.faq-item summary { cursor: pointer; font-weight: 800; }
.faq-item summary:focus-visible { outline: 2px solid #0891b2; outline-offset: 4px; border-radius: .5rem; }

[data-cards="highlights"], [data-list="includes"], .split-grid, .bring-grid, .payments-grid { grid-template-columns: minmax(0, 1fr) !important; }
.payments-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

.floating-whatsapp { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 50; display: flex; height: 3.1rem; width: 3.1rem; align-items: center; justify-content: center; border-radius: 9999px; background: #10b981; color: #fff; font-size: .86rem; font-weight: 900; box-shadow: 0 20px 35px rgba(6, 78, 59, .35); transition: transform .2s ease, background .2s ease; }
.floating-whatsapp:hover, .floating-whatsapp:focus-visible { background: #34d399; transform: translateY(-2px) scale(1.03); outline: 3px solid rgba(167, 243, 208, .7); outline-offset: 3px; }

@media (max-width: 359px) {
  .header-inner { padding-left: .75rem; padding-right: .75rem; gap: .45rem; }
  .site-logo { height: 30px; max-width: 96px; }
  .header-actions { gap: .35rem; }
  .lang-btn { min-height: 34px; padding: .3rem .55rem; font-size: .75rem; }
  .mobile-cta { min-height: 34px; padding: .35rem .58rem; font-size: .74rem; }
  .hero-copy h1 { font-size: 1.9rem; }
  .price-panel, #schedule, #requirements, .bring-grid > section { padding: 1.25rem !important; }
  .payments-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (min-width: 480px) {
  .site-logo { height: 38px; max-width: 160px; }
  .hero-actions a, .btn-whatsapp, .btn-light, .section-padding a[data-whatsapp-link]:not(.floating-whatsapp) { width: auto; min-width: 12rem; }
  .price-card { flex-direction: row; align-items: flex-start; padding: 1.25rem; }
  .price-card .text-right { text-align: right; }
}

@media (min-width: 768px) {
  .site-header, .header-inner { min-height: 72px; }
  .site-logo { height: 48px; max-width: 210px; }
  .mobile-cta { display: none; }
  .section-padding { padding-top: 5rem; padding-bottom: 5rem; }
  .hero-section { min-height: 100vh; padding-top: 5.25rem; }
  .hero-inner { padding-top: 5rem; padding-bottom: 5rem; }
  .hero-copy h1 { font-size: clamp(3.25rem, 6vw, 4.65rem); }
  [data-cards="highlights"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  [data-list="includes"], .bring-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .payments-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .floating-whatsapp { height: 3.5rem; width: 3.5rem; right: 1.25rem; bottom: 1.25rem; font-size: .95rem; }
}

@media (min-width: 1024px) {
  .hero-bg { background-position: center center; }
  .hero-inner { align-items: center; }
  [data-cards="highlights"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  [data-list="includes"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .split-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (min-width: 1440px) {
  .hero-inner, .header-inner, .section-padding > div { max-width: 80rem; }
  .hero-copy h1 { font-size: 4.75rem; }
}

.why-book-section { background: linear-gradient(180deg, #ffffff 0%, #ecfeff 100%); }
.why-book-grid { grid-template-columns: minmax(0, 1fr) !important; }
.why-book-card { min-width: 0; border-radius: 1.1rem; border: 1px solid rgba(14, 165, 233, .14); background: rgba(255, 255, 255, .92); padding: 1.35rem; box-shadow: 0 10px 28px rgba(15, 23, 42, .06); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; overflow-wrap: anywhere; }
.why-book-card:hover { transform: translateY(-2px); border-color: rgba(8, 145, 178, .32); box-shadow: 0 18px 38px rgba(15, 23, 42, .1); }
.why-book-icon { display: inline-flex; height: 2.75rem; width: 2.75rem; align-items: center; justify-content: center; border-radius: 9999px; background: #cffafe; font-size: 1.35rem; }
.why-book-card h3 { margin-top: 1rem; font-size: 1.05rem; font-weight: 900; color: #0f172a; }
.why-book-card p { margin-top: .6rem; color: #475569; line-height: 1.65; }

@media (min-width: 768px) {
  .why-book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (min-width: 1024px) {
  .why-book-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .site-header nav { gap: 1rem; }
}

@media (min-width: 1280px) {
  .site-header nav { gap: 1.5rem; }
}

.gallery-section { background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%); }
.gallery-grid { grid-template-columns: minmax(0, 1fr) !important; }
.gallery-card { min-width: 0; overflow: hidden; border-radius: 1.15rem; background: #e2e8f0; box-shadow: 0 12px 32px rgba(15, 23, 42, .09); aspect-ratio: 4 / 3; transition: transform .2s ease, box-shadow .2s ease; }
.gallery-card[hidden] { display: none !important; }
.gallery-image { height: 100%; width: 100%; object-fit: cover; transition: transform .35s ease; }
.gallery-card:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(15, 23, 42, .13); }
.gallery-card:hover .gallery-image { transform: scale(1.04); }

@media (min-width: 768px) {
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (min-width: 1024px) {
  .gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}

.children-policy-section { background: linear-gradient(180deg, #ffffff 0%, #ecfeff 100%); }
.children-policy-grid { grid-template-columns: minmax(0, 1fr) !important; }
.children-policy-card { min-width: 0; border-radius: 1.1rem; border: 1px solid rgba(14, 165, 233, .16); background: rgba(255, 255, 255, .94); padding: 1.25rem; box-shadow: 0 10px 28px rgba(15, 23, 42, .06); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; overflow-wrap: anywhere; }
.children-policy-card:hover { transform: translateY(-2px); border-color: rgba(8, 145, 178, .34); box-shadow: 0 18px 38px rgba(15, 23, 42, .1); }
.children-policy-icon { display: inline-flex; height: 2.75rem; width: 2.75rem; align-items: center; justify-content: center; border-radius: 9999px; background: #cffafe; font-size: 1.3rem; }
.children-policy-card h3 { margin-top: 1rem; font-size: 1.05rem; font-weight: 900; color: #0f172a; }
.children-policy-card p { margin-top: .6rem; color: #475569; line-height: 1.65; }

@media (min-width: 768px) {
  .children-policy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (min-width: 1024px) {
  .children-policy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

.airport-transfer-compact { background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%); }
.airport-transfer-compact-card { min-width: 0; display: grid; gap: 1.5rem; border-radius: 1.25rem; border: 1px solid rgba(14, 165, 233, .16); background: rgba(255, 255, 255, .96); padding: 1.5rem; box-shadow: 0 18px 45px rgba(15, 23, 42, .08); overflow-wrap: anywhere; }
.airport-transfer-compact-actions { display: flex; flex-direction: column; gap: .75rem; }
.airport-transfer-view-rates { border: 1px solid #bae6fd; }
.airport-transfer-page { min-height: 100vh; }
.airport-transfer-hero { padding-top: 8rem; padding-bottom: 4.5rem; background-image: linear-gradient(120deg, rgba(2, 44, 64, 0.95), rgba(0, 151, 178, 0.72)), var(--airport-transfer-hero-image, url("/assets/images/hero.webp")); background-position: center; background-size: cover; color: #fff; }
.airport-transfer-section { background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%); }
.airport-transfer-note { border-radius: 1rem; border: 1px solid rgba(14, 165, 233, .18); background: #ecfeff; padding: 1rem 1.25rem; color: #155e75; font-weight: 700; line-height: 1.65; }
.airport-transfer-grid { grid-template-columns: minmax(0, 1fr) !important; }
.airport-transfer-card { min-width: 0; overflow: hidden; border-radius: 1.1rem; border: 1px solid rgba(14, 165, 233, .16); background: rgba(255, 255, 255, .96); padding: 1.25rem; box-shadow: 0 10px 28px rgba(15, 23, 42, .06); }
.airport-transfer-card h2, .airport-transfer-card h3 { color: #0f172a; font-size: 1.12rem; font-weight: 900; }
.airport-transfer-table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: .9rem; border: 1px solid #e2e8f0; }
.airport-transfer-table { width: 100%; min-width: 34rem; border-collapse: collapse; background: #fff; font-size: .92rem; }
.airport-transfer-table-wide { min-width: 46rem; }
.airport-transfer-table th, .airport-transfer-table td { padding: .8rem .9rem; text-align: left; border-bottom: 1px solid #e2e8f0; white-space: nowrap; }
.airport-transfer-table th { background: #f0fdfa; color: #0f766e; font-weight: 900; }
.airport-transfer-table td:first-child { color: #0f172a; font-weight: 800; }
.airport-transfer-table tr:last-child td { border-bottom: 0; }
.airport-transfer-age-policy { border-radius: 1.25rem; border: 1px solid rgba(14, 165, 233, .16); background: rgba(255, 255, 255, .96); padding: 1.25rem; box-shadow: 0 10px 28px rgba(15, 23, 42, .06); }
.airport-transfer-age-grid { grid-template-columns: minmax(0, 1fr) !important; }
.airport-transfer-age-card { min-width: 0; border-radius: 1rem; background: #f8fafc; padding: 1.1rem; overflow-wrap: anywhere; }
.airport-transfer-age-card h3 { margin-top: .9rem; color: #0f172a; font-weight: 900; }
.airport-transfer-age-card p { margin-top: .45rem; color: #475569; line-height: 1.58; }
.airport-transfer-form { border-radius: 1.25rem; border: 1px solid rgba(14, 165, 233, .16); background: rgba(255, 255, 255, .96); padding: 1.25rem; box-shadow: 0 18px 45px rgba(15, 23, 42, .08); }
.airport-transfer-form-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.airport-transfer-error { margin-top: 1rem; border-radius: .9rem; background: #fef3c7; padding: .85rem 1rem; color: #92400e; font-weight: 800; }
.airport-transfer-submit { margin-top: 1.25rem; display: inline-flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; border-radius: 9999px; background: #10b981; padding: 1rem 1.35rem; color: #fff; font-weight: 900; box-shadow: 0 16px 32px rgba(6, 78, 59, .26); transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.airport-transfer-submit:hover, .airport-transfer-submit:focus-visible { background: #34d399; transform: translateY(-1px); box-shadow: 0 20px 38px rgba(6, 78, 59, .32); outline: none; }

@media (min-width: 768px) {
  .airport-transfer-compact-card { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 2rem; }
  .airport-transfer-compact-actions { align-items: flex-end; }
  .airport-transfer-age-policy { padding: 1.5rem; }
  .airport-transfer-age-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .airport-transfer-form { padding: 1.5rem; }
  .airport-transfer-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .airport-transfer-submit { width: auto; min-width: 18rem; }
}

@media (min-width: 1024px) {
  .airport-transfer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .airport-transfer-card-wide { grid-column: 1 / -1; }
}

.booking-section { background: linear-gradient(180deg, #ecfeff 0%, #ffffff 100%); }
.booking-card { border-radius: 1.25rem; border: 1px solid rgba(14, 165, 233, .16); background: rgba(255, 255, 255, .94); padding: 1.25rem; box-shadow: 0 18px 45px rgba(15, 23, 42, .08); }
.booking-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.booking-field { min-width: 0; }
.booking-field-full { grid-column: 1 / -1; }
.booking-label { display: block; margin-bottom: .45rem; color: #0f172a; font-size: .94rem; font-weight: 850; }
.booking-input, .booking-textarea { width: 100%; min-height: 48px; border-radius: .9rem; border: 1px solid #cbd5e1; background: #fff; padding: .85rem 1rem; color: #0f172a; font: inherit; transition: border-color .2s ease, box-shadow .2s ease; }
.booking-textarea { min-height: 7rem; resize: vertical; }
.booking-input:focus, .booking-textarea:focus { border-color: #0891b2; box-shadow: 0 0 0 4px rgba(8, 145, 178, .16); outline: none; }
.booking-help { margin-top: .45rem; color: #64748b; font-size: .86rem; line-height: 1.45; }
.booking-total-field { border-radius: .9rem; border: 1px solid #bae6fd; background: #ecfeff; padding: .85rem 1rem; }
.booking-calculated-total { display: block; color: #0e7490; font-size: 2rem; font-weight: 950; line-height: 1; }
.booking-error { margin-top: 1rem; border-radius: .9rem; background: #fef3c7; padding: .85rem 1rem; color: #92400e; font-weight: 800; }
.booking-submit { margin-top: 1.25rem; display: inline-flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; border-radius: 9999px; background: #10b981; padding: 1rem 1.35rem; color: #fff; font-weight: 900; box-shadow: 0 16px 32px rgba(6, 78, 59, .26); transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.booking-submit:hover, .booking-submit:focus-visible { background: #34d399; transform: translateY(-1px); box-shadow: 0 20px 38px rgba(6, 78, 59, .32); outline: none; }

@media (min-width: 768px) {
  .booking-card { padding: 1.5rem; }
  .booking-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-submit { width: auto; min-width: 16rem; }
}

.booking-notes-section { background: linear-gradient(180deg, #ffffff 0%, #fffbeb 100%); }
.booking-notes-grid { grid-template-columns: minmax(0, 1fr) !important; }
.booking-note-card { min-width: 0; display: flex; gap: 1rem; border-radius: 1.1rem; border: 1px solid rgba(217, 119, 6, .18); background: rgba(255, 255, 255, .94); padding: 1.25rem; box-shadow: 0 10px 28px rgba(15, 23, 42, .06); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; overflow-wrap: anywhere; }
.booking-note-card:hover { transform: translateY(-2px); border-color: rgba(217, 119, 6, .34); box-shadow: 0 18px 38px rgba(15, 23, 42, .1); }
.booking-note-icon { flex: 0 0 auto; display: inline-flex; height: 2.75rem; width: 2.75rem; align-items: center; justify-content: center; border-radius: 9999px; background: #fef3c7; font-size: 1.3rem; }
.booking-note-card h3 { font-size: 1.03rem; font-weight: 900; color: #0f172a; }
.booking-note-card p { margin-top: .45rem; color: #475569; line-height: 1.62; }

@media (min-width: 768px) {
  .booking-notes-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (min-width: 1024px) {
  .booking-notes-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
