/* IslandTravelAtlas flight-planning pillar */
.rf-flight-page { background: #fbfcfa; }
.rf-flight-page main { overflow: hidden; }
.rf-flight-page :where(.rf-flight-hero-grid,.rf-flight-split,.rf-flight-two-column,.rf-flight-baggage-grid,.rf-flight-faq-section) > * { min-width: 0; }
.rf-flight-hero { padding: clamp(3.5rem,7vw,7rem) 0; background: linear-gradient(135deg,#eef8f6 0%,#fff 52%,#f4eee3 100%); }
.rf-flight-hero-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr); gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.rf-flight-hero-copy h1 { max-width:13ch; margin:.55rem 0 1.15rem; font-size:clamp(2.7rem,5.8vw,5.7rem); line-height:.95; letter-spacing:-.055em; }
.rf-flight-lede { max-width:64ch; font-size:clamp(1rem,1.5vw,1.18rem); line-height:1.75; color:var(--rf-muted); }
.rf-flight-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin:1.7rem 0 .8rem; }
.rf-affiliate-note { max-width:68ch; font-size:.76rem; line-height:1.55; color:var(--rf-muted); }
.rf-flight-hero-visual { position:relative; margin:0; min-height:470px; border-radius:32px; overflow:hidden; box-shadow:0 30px 70px rgba(8,43,58,.18); }
.rf-flight-hero-visual img { width:100%; height:100%; min-height:470px; object-fit:cover; }
.rf-flight-hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(4,28,38,.86)); }
.rf-flight-hero-visual figcaption { position:absolute; z-index:1; left:1rem; right:1rem; bottom:1rem; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.55rem; padding:.85rem 1rem; border:1px solid rgba(255,255,255,.25); border-radius:18px; color:#eef8f7; background:rgba(4,34,45,.78); backdrop-filter:blur(12px); font-size:.72rem; font-weight:700; letter-spacing:.045em; text-transform:uppercase; }
.rf-flight-hero-visual figcaption b { color:#7bd6cf; }
.rf-flight-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top:2.2rem; background:rgba(8,43,58,.14); border:1px solid rgba(8,43,58,.14); border-radius:24px; overflow:hidden; }
.rf-flight-steps article { padding:clamp(1.35rem,2.4vw,2rem); background:#fff; }
.rf-flight-steps span { display:block; margin-bottom:1.5rem; color:var(--rf-coral); font-size:.74rem; font-weight:800; letter-spacing:.12em; }
.rf-flight-steps h3 { margin:0 0 .65rem; font-size:clamp(1.15rem,1.8vw,1.45rem); line-height:1.15; }
.rf-flight-steps p { margin:0; color:var(--rf-muted); font-size:.91rem; line-height:1.65; }
.rf-flight-dark-section { background:#082b3a; color:#e5eff1; }
.rf-flight-split { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(2.5rem,6vw,6rem); }
.rf-flight-dark-section h2 { color:#fff!important; max-width:12ch; }
.rf-flight-dark-section p { color:#c6d5d9!important; }
.rf-flight-gateway-list { display:grid; gap:1px; border:1px solid rgba(255,255,255,.15); border-radius:24px; overflow:hidden; background:rgba(255,255,255,.15); }
.rf-flight-gateway-list article { padding:1.25rem 1.4rem; background:#103d4d; }
.rf-flight-gateway-list strong { color:#fff; font-size:1.05rem; }
.rf-flight-gateway-list p { margin:.35rem 0 .55rem; font-size:.9rem; }
.rf-flight-gateway-list a { color:#bdf2ed!important; font-size:.82rem; font-weight:750; }
.rf-flight-two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.rf-flight-content-card { padding:clamp(1.5rem,3vw,2.6rem); border:1px solid rgba(8,43,58,.13); border-radius:24px; background:#fff; box-shadow:0 16px 35px rgba(8,43,58,.06); }
.rf-flight-content-card h2 { max-width:18ch; font-size:clamp(1.8rem,3vw,3rem); }
.rf-check-list { display:grid; gap:.6rem; padding:0; margin:1.2rem 0; list-style:none; }
.rf-check-list li { position:relative; padding-left:1.45rem; color:var(--rf-muted); line-height:1.55; }
.rf-check-list li::before { content:"✓"; position:absolute; left:0; color:var(--rf-lagoon); font-weight:900; }
.rf-flight-route-types { display:grid; gap:.65rem; margin:1.2rem 0; }
.rf-flight-route-types div { padding:.9rem 1rem; border-radius:14px; background:#f1f7f5; }
.rf-flight-route-types strong,.rf-flight-route-types span { display:block; }
.rf-flight-route-types span { margin-top:.2rem; color:var(--rf-muted); font-size:.86rem; }
.rf-text-link { color:var(--rf-ocean); font-weight:800; text-decoration:none; }
.rf-flight-table-section { background:#f1f6f4; }
.rf-flight-table { min-width:760px; background:#fff; }
.rf-flight-table th { background:#0d4052; color:#fff; }
.rf-flight-table td:first-child { font-weight:800; color:var(--rf-ink); }
.rf-flight-baggage-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.rf-flight-baggage-grid h2 { max-width:17ch; }
.rf-flight-check-card { padding:clamp(1.4rem,3vw,2.3rem); border-radius:24px; background:#fff4ed; border:1px solid rgba(184,76,57,.16); }
.rf-flight-check-card > strong { font-size:1.15rem; }
.rf-flight-destination-section { background:#edf6f4; }
.rf-flight-destination-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.rf-flight-destination-grid a { display:flex; min-height:230px; flex-direction:column; justify-content:flex-end; padding:1.35rem; border-radius:22px; color:#fff; text-decoration:none; background:linear-gradient(145deg,#0d4052,#16726f); box-shadow:0 15px 30px rgba(8,43,58,.12); transition:transform .2s ease; }
.rf-flight-destination-grid a:nth-child(2) { background:linear-gradient(145deg,#183d67,#2d73a3); }
.rf-flight-destination-grid a:nth-child(3) { background:linear-gradient(145deg,#0b5967,#54a9a4); }
.rf-flight-destination-grid a:nth-child(4) { background:linear-gradient(145deg,#123c55,#d16d58); }
.rf-flight-destination-grid a:hover { transform:translateY(-4px); }
.rf-flight-destination-grid span { font-size:.72rem; line-height:1.4; text-transform:uppercase; letter-spacing:.08em; opacity:.84; }
.rf-flight-destination-grid strong { margin:.45rem 0 .75rem; color:#fff; font-family:var(--rf-serif); font-size:clamp(1.35rem,2vw,2rem); line-height:1.05; }
.rf-flight-destination-grid em { margin-top:auto; color:#fff; font-style:normal; font-size:.82rem; font-weight:800; }
.rf-flight-booking-section { background:#fff; }
.rf-flight-booking-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.38fr); gap:2rem; align-items:center; padding:clamp(1.7rem,4vw,3.5rem); border-radius:28px; background:#082b3a; color:#e5eff1; }
.rf-flight-booking-card h2 { max-width:19ch; color:#fff!important; }
.rf-flight-booking-card p,.rf-flight-booking-card li,.rf-flight-booking-card small { color:#c6d5d9!important; }
.rf-flight-booking-card ul { columns:2; padding-left:1.1rem; }
.rf-flight-booking-card > div:last-child { display:grid; gap:.8rem; justify-items:start; }
.rf-flight-faq-section { display:grid; grid-template-columns:minmax(240px,.6fr) minmax(0,1.4fr); gap:clamp(2rem,6vw,6rem); }
.rf-flight-faq { border-top:1px solid rgba(8,43,58,.16); }
.rf-flight-faq:last-child { border-bottom:1px solid rgba(8,43,58,.16); }
.rf-flight-faq summary { cursor:pointer; padding:1.1rem 2.3rem 1.1rem 0; font-weight:800; color:var(--rf-ink); }
.rf-flight-faq p { margin:0 0 1.2rem; color:var(--rf-muted); }
.rf-flight-notice-section { padding-top:0; }
.rf-flight-notice-section .rf-shell { padding:1.25rem 1.4rem; border-left:4px solid var(--rf-lagoon); background:#eef6f4; }
.rf-flight-notice-section h2 { margin:0 0 .4rem; font-family:var(--rf-sans); font-size:1rem; }
.rf-flight-notice-section p { margin:0; color:var(--rf-muted); font-size:.84rem; line-height:1.6; }
.rf-flight-page .rf-nav { gap:clamp(.65rem,1.4vw,1.2rem); }
@media (max-width:1050px) {
  .rf-flight-hero-grid,.rf-flight-split { grid-template-columns:1fr; }
  .rf-flight-hero-visual { min-height:390px; }
  .rf-flight-hero-visual img { min-height:390px; }
  .rf-flight-steps,.rf-flight-destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .rf-flight-two-column,.rf-flight-baggage-grid,.rf-flight-booking-card,.rf-flight-faq-section { grid-template-columns:1fr; }
  .rf-flight-booking-card ul { columns:1; }
}
@media (max-width:560px) {
  .rf-flight-hero { padding-top:2.5rem; }
  .rf-flight-hero-copy h1 { font-size:clamp(2.45rem,13vw,3.75rem); }
  .rf-flight-hero-visual,.rf-flight-hero-visual img { min-height:320px; }
  .rf-flight-hero-visual figcaption { justify-content:flex-start; }
  .rf-flight-steps,.rf-flight-destination-grid { grid-template-columns:1fr; }
  .rf-flight-actions .rf-button { width:100%; text-align:center; }
}

.rf-flight-library-pillar { padding-top: 0; }
.rf-flight-library-card { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:clamp(1.35rem,3vw,2.25rem); border:1px solid rgba(8,43,58,.14); border-radius:24px; background:linear-gradient(110deg,#eef8f6,#fff7ef); }
.rf-flight-library-card h2 { margin:.25rem 0 .45rem; font-size:clamp(1.65rem,3vw,2.6rem); }
.rf-flight-library-card p { margin:0; color:var(--rf-muted); }
@media (max-width:680px){.rf-flight-library-card{align-items:flex-start;flex-direction:column}.rf-flight-library-card .rf-button{width:100%;text-align:center}}
