/* air16 — page extras */

/* FAQ */
.faq-item { border:1px solid var(--line); border-radius: 10px; margin-bottom: 12px; background:#fff; overflow:hidden; }
.faq-q { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:16px 20px; cursor:pointer; font-weight:600; color:var(--ink); font-size:15px; }
.faq-q .sign { color:var(--orange); font-size:20px; transition:.2s; flex:none; }
.faq-item.open .faq-q .sign { transform: rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:.25s; padding:0 20px; color:var(--muted); font-size:14.5px; }
.faq-item.open .faq-a { max-height:240px; padding:0 20px 18px; }

/* tinted hero band for some inner pages */
.hero-tint { background: linear-gradient(180deg, var(--orange-tint) 0%, #fff 70%); }
.hero-navy { background: var(--navy); color:#fff; }
.hero-navy h1, .hero-navy h3 { color:#fff; }
.hero-navy .lead { color: rgba(255,255,255,.85); }

/* form */
.contact-form .row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.contact-form input, .contact-form textarea, .contact-form select {
  width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:10px;
  font-family:var(--ff); font-size:15px; color:var(--ink); background:#fff;
}
.contact-form textarea { min-height:130px; resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus { outline:none; border-color:var(--orange); }
.form-note { font-size:13px; color:var(--muted); margin-top:10px; }

/* info card list (contact) */
.info-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow-sm); }
.info-row { display:flex; gap:14px; margin-bottom:22px; }
.info-row .ico { width:46px; height:46px; flex:none; border-radius:12px; background:var(--orange-tint); color:var(--orange); display:grid; place-items:center; font-size:20px; }
.info-row .t { font-weight:700; color:var(--ink); font-size:15px; }
.info-row .d { color:var(--muted); font-size:14px; }

/* office cards */
.office-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; text-align:center; }
.office-card .ico { font-size:34px; color:var(--orange); margin-bottom:10px; }
.office-card h4 { font-size:16px; color:var(--ink); letter-spacing:0; text-transform:none; margin-bottom:8px; }
.office-card p { font-size:13.5px; color:var(--muted); }

/* legal page */
.legal { max-width: 980px; margin: 0 auto; }
.legal-block { display:flex; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
.legal-block:last-child { border-bottom:0; }
.legal-block .ico { width:60px; height:60px; flex:none; border-radius:50%; background:var(--orange-tint); color:var(--orange); display:grid; place-items:center; font-size:24px; }
.legal-block h3 { font-size:18px; margin-bottom:10px; }
.legal-block p { font-size:15px; margin-bottom:8px; }
.legal-block ul { margin:8px 0 0; }
.legal-block ul li { position:relative; padding-left:20px; margin-bottom:8px; font-size:14.5px; }
.legal-block ul li::before { content:"•"; color:var(--orange); position:absolute; left:4px; font-weight:700; }
.effective { text-align:center; background:var(--bg-soft); border-radius:10px; padding:16px; margin-top:24px; font-weight:600; color:var(--ink); }
.effective span { color:var(--orange); }

/* gallery */
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.gallery-grid .ph { aspect-ratio: 4/3; }
@media (max-width:900px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} .contact-form .row{grid-template-columns:1fr;} }

/* two-col hero with image bg block right */
.split-2 { display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center; }
@media (max-width:820px){ .split-2{grid-template-columns:1fr;} }

/* segment promo cards (home) */
.seg-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.seg-card .seg-body { padding:22px; }
.seg-card h3 { font-size:20px; margin-bottom:12px; }
.seg-card ul li { font-size:14.5px; color:var(--text); padding:5px 0; display:flex; gap:8px; }
.seg-card ul li::before { content:"›"; color:var(--orange); font-weight:700; }

/* world/route map block */
.map-block { background:var(--navy); border-radius:var(--radius-lg); padding:30px; color:#fff; }
.map-block h3 { color:#fff; }

/* brand logo lockup (header) */
.brand-lockup { display:inline-flex; flex-direction:column; line-height:1; }
.brand-lockup .logo-img { height:34px; width:auto; }
.brand-lockup .logo-sub { font-size:9px; letter-spacing:.14em; color:var(--orange); font-weight:700; margin-top:3px; }
.footer-logo-img { height:42px; width:auto; display:block; }

/* ===== Daily Tours carousel: 16:9 cards, 4 in a row, scrollable ===== */
.tour-carousel{ position:relative; }
.tour-track{ display:flex; gap:20px; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x mandatory; -ms-overflow-style:none; scrollbar-width:none; padding:4px 2px; }
.tour-track::-webkit-scrollbar{ display:none; }
.tour-track > .tour-card{ flex:0 0 calc((100% - 40px)/3); scroll-snap-align:start; }
.tour-card .ph.tour-img{ aspect-ratio:16/9; height:auto; min-height:0; background-size:cover; background-position:center; position:relative; }
.tour-arrow{ position:absolute; top:34%; transform:translateY(-50%); z-index:5; width:44px; height:44px; border-radius:50%; border:none; background:#fff; color:var(--navy,#0B2545); box-shadow:0 6px 20px rgba(11,37,69,.18); cursor:pointer; display:grid; place-items:center; font-size:16px; transition:background .2s,color .2s,opacity .2s; }
.tour-arrow:hover{ background:var(--orange,#FF6E02); color:#fff; }
.tour-arrow.prev{ left:-12px; }
.tour-arrow.next{ right:-12px; }
.tour-arrow[disabled]{ opacity:0; pointer-events:none; }
@media(max-width:980px){ .tour-track > .tour-card{ flex:0 0 calc((100% - 20px)/2); } }
@media(max-width:680px){ .tour-track > .tour-card{ flex:0 0 calc((100% - 20px)/2); } .tour-arrow{ display:none; } }
@media(max-width:460px){ .tour-track > .tour-card{ flex:0 0 82%; } }

/* ensure 16:9 for tour cards in carousel even without bg image (city-tours) */
.tour-track .tour-card .ph{ aspect-ratio:16/9 !important; height:auto !important; min-height:0 !important; }

/* Top Destinations tiles in carousel */
.td-tile{ position:relative; display:flex; align-items:flex-end; justify-content:flex-start; background:linear-gradient(135deg,#0E2D57,#0B2545); background-size:cover; background-position:center; border-radius:14px; overflow:hidden; padding:14px 16px; }
.td-label{ position:relative; z-index:1; color:#fff; font-weight:700; font-size:15px; letter-spacing:.3px; background:rgba(11,37,69,.78); padding:7px 16px; border-radius:30px; backdrop-filter:blur(2px); }
.td-card .card-body{ display:none; }

/* Tour carousel: equal-height cards, buttons aligned to bottom */
.tour-track{ align-items:stretch; }
.tour-track > .tour-card{ display:flex; flex-direction:column; }
.tour-card .card-body{ display:flex; flex-direction:column; flex:1; }
.tour-card .card-body .btn-block{ margin-top:auto; }
                                                  
/* Daily Tours: navy stats strip straddles hero + next section.
   .stat-bar is ~92px tall -> pull up half its height so it sits centered on the seam. */
.dt-stats-wrap{ position:relative; z-index:5; margin-top:-46px; margin-bottom:46px; }
.dt-stats-wrap .stat-bar{ box-shadow:0 18px 44px rgba(11,37,69,.20); }
@media(max-width:768px){ .dt-stats-wrap{ margin-top:-36px; margin-bottom:36px; } }
@media(max-width:560px){ .dt-stats-wrap{ margin-top:0; margin-bottom:0; } }

/* Gallery tiles: always visible (don't depend on scroll-reveal), keep 4:3 with image */
.gallery-grid > .ph{ opacity:1 !important; transform:none !important; animation:none !important; min-height:160px; background-color:#0E2D57; background-size:cover; background-position:center; border-radius:14px; }
