:root {
  --rf-navy: #082b3a;
  --rf-navy-2: #0d4052;
  --rf-ocean: #16747d;
  --rf-lagoon: #8dd8d2;
  --rf-coral: #e8745d;
  --rf-gold: #e9b36b;
  --rf-canvas: #f4f7f5;
  --rf-paper: #ffffff;
  --rf-ink: #18333e;
  --rf-muted: #61747b;
  --rf-line: rgba(8,43,58,.14);
  --rf-shadow: 0 24px 64px rgba(8,43,58,.13);
  --rf-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --rf-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rf-shell: 1240px;
  --rf-radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.rf-theme { margin: 0; color: var(--rf-ink); background: var(--rf-canvas); font-family: var(--rf-sans); font-size: 17px; line-height: 1.72; -webkit-font-smoothing: antialiased; }
body.rf-theme img { max-width: 100%; }
body.rf-theme a { color: var(--rf-ocean); }
body.rf-theme h1,
body.rf-theme h2,
body.rf-theme h3,
body.rf-theme h4 { color: var(--rf-navy); font-family: var(--rf-serif); letter-spacing: -.025em; }
body.rf-theme h1 { font-size: clamp(3rem, 6.1vw, 5.9rem); line-height: .98; }
body.rf-theme h2 { font-size: clamp(2.25rem, 4.6vw, 4.25rem); line-height: 1.04; }
body.rf-theme h3 { font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.18; }
body.rf-theme p { color: var(--rf-muted); }
.rf-shell { width: min(calc(100% - 42px), var(--rf-shell)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; top: 10px; left: 10px; transform: translateY(-160%); padding: .75rem 1rem; color: #fff!important; background: var(--rf-navy); border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }

.rf-kicker { margin: 0 0 .75rem; color: var(--rf-coral)!important; font-size: .78rem!important; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.rf-kicker-light { color: var(--rf-lagoon)!important; }

/* Unified global header */
.rf-header { position: sticky; z-index: 1000; top: 0; color: var(--rf-navy); background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(8,43,58,.09); backdrop-filter: blur(18px); transition: box-shadow .2s ease, background .2s ease; }
.rf-header.is-scrolled { background: rgba(255,255,255,.98); box-shadow: 0 14px 38px rgba(8,43,58,.1); }
.rf-header-inner { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: 1.4rem; align-items: center; width: min(calc(100% - 40px), 1360px); min-height: 78px; margin-inline: auto; }
.rf-brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--rf-navy)!important; text-decoration: none; }
.rf-brand-mark { display: grid; width: 44px; height: 44px; place-items: center; color: var(--rf-ocean); }
.rf-brand-mark svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.25; }
.rf-brand-copy { display: grid; line-height: 1.1; }
.rf-brand-copy strong { font-size: 1.06rem; letter-spacing: -.02em; }
.rf-brand-copy small { margin-top: .25rem; color: var(--rf-muted); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase; }
.rf-nav { display: flex; justify-content: center; gap: clamp(.7rem,1.35vw,1.35rem); }
.rf-nav a { color: #31505b!important; font-size: .86rem; font-weight: 750; text-decoration: none; }
.rf-nav a:hover,
.rf-nav a:focus-visible { color: var(--rf-ocean)!important; }
.rf-header-cta,
.rf-mobile-cta { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .72rem 1.08rem; color: #fff!important; background: var(--rf-navy); border-radius: 10px; font-size: .86rem; font-weight: 850; text-decoration: none; }
.rf-menu-button { display: none; width: 45px; height: 45px; padding: 11px; border: 1px solid var(--rf-line); border-radius: 12px; background: #fff; }
.rf-menu-button > span:not(.sr-only) { display: block; width: 21px; height: 2px; margin: 4px auto; background: var(--rf-navy); }
.rf-mobile-nav { display: none; padding: .7rem 20px 1rem; background: #fff; border-top: 1px solid var(--rf-line); }
.rf-mobile-nav a { display: block; padding: .82rem .15rem; color: var(--rf-navy)!important; text-decoration: none; border-bottom: 1px solid var(--rf-line); }
.rf-mobile-nav[hidden] { display: none!important; }

.rf-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: .86rem 1.25rem; border-radius: 10px; font-size: .94rem; font-weight: 850; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.rf-button:hover { transform: translateY(-2px); }
.rf-button-primary { color: #fff!important; background: var(--rf-coral); box-shadow: 0 12px 28px rgba(232,116,93,.22); }
.rf-button-quiet { color: var(--rf-navy)!important; background: #fff; border: 1px solid var(--rf-line); }
.rf-button-dark { color: #fff!important; background: var(--rf-navy); }
.rf-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }

/* Homepage */
.rf-hero { position: relative; overflow: hidden; padding: clamp(4rem,7vw,7rem) 0 3.5rem; background: linear-gradient(145deg,#eef7f5 0%,#f8faf8 52%,#e8f2f1 100%); }
.rf-hero::before { position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .28; background-image: linear-gradient(rgba(8,43,58,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(8,43,58,.08) 1px,transparent 1px); background-size: 58px 58px; mask-image: linear-gradient(90deg,#000,transparent 65%); }
.rf-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.rf-hero-copy h1 { max-width: 760px; margin: 0 0 1.4rem; }
.rf-hero-lead { max-width: 700px; margin: 0 0 2rem; font-size: clamp(1.08rem,1.55vw,1.24rem); line-height: 1.75; }
.rf-hero-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; max-width: 660px; margin: 2.2rem 0 0; }
.rf-hero-proof div { padding-top: 1rem; border-top: 2px solid rgba(8,43,58,.12); }
.rf-hero-proof dt { color: var(--rf-navy); font-family: var(--rf-serif); font-size: 1.7rem; font-weight: 800; line-height: 1; }
.rf-hero-proof dd { margin: .35rem 0 0; color: var(--rf-muted); font-size: .78rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.rf-hero-visual { position: relative; min-height: 620px; }
.rf-hero-visual > img { width: 100%; height: 620px; object-fit: cover; border-radius: 30px 8px 30px 8px; box-shadow: var(--rf-shadow); }
.rf-route-card { position: absolute; right: -22px; bottom: 28px; width: min(310px,82%); padding: 1.2rem; color: #fff; background: rgba(8,43,58,.92); border: 1px solid rgba(255,255,255,.13); border-radius: 18px; box-shadow: 0 22px 48px rgba(8,43,58,.24); backdrop-filter: blur(12px); }
.rf-route-card > span { display: block; margin-bottom: .6rem; color: var(--rf-lagoon); font-size: .69rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.rf-route-card ol { margin: 0; padding: 0; list-style: none; }
.rf-route-card li { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: .65rem; align-items: center; padding: .48rem 0; border-top: 1px solid rgba(255,255,255,.12); }
.rf-route-card b { color: var(--rf-coral); font-size: .7rem; }
.rf-route-card strong { color: #fff; font-size: .88rem; }
.rf-connection-strip { color: #fff; background: var(--rf-navy); }
.rf-connection-strip .rf-shell { display: flex; min-height: 74px; align-items: center; justify-content: space-between; gap: 1rem; }
.rf-connection-strip span { font-size: .79rem; font-weight: 800; letter-spacing: .04em; }
.rf-connection-strip i { width: 32px; height: 1px; background: linear-gradient(90deg,var(--rf-lagoon),rgba(255,255,255,.18)); }
.rf-section { padding: clamp(5rem,8vw,8rem) 0; }
.rf-section-heading { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(280px,.65fr); gap: clamp(2rem,6vw,6rem); align-items: end; margin-bottom: 2.5rem; }
.rf-section-heading h2 { max-width: 780px; margin: 0; }
.rf-section-heading > p { max-width: 520px; margin: 0; font-size: 1.04rem; }
.rf-destination-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.1rem; }
.rf-destination-card { position: relative; overflow: hidden; min-height: 420px; color: #fff!important; border-radius: var(--rf-radius); text-decoration: none; box-shadow: 0 18px 48px rgba(8,43,58,.11); }
.rf-destination-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.rf-destination-card:hover img { transform: scale(1.035); }
.rf-destination-shade { position: absolute; inset: 0; background: linear-gradient(to top,rgba(5,27,38,.91),rgba(5,27,38,.07) 72%); }
.rf-destination-content { position: absolute; inset: auto 0 0; padding: clamp(1.5rem,3vw,2.4rem); }
.rf-destination-content small { display: block; margin-bottom: .45rem; color: var(--rf-lagoon); font-size: .74rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.rf-destination-content strong { display: block; color: #fff; font-family: var(--rf-serif); font-size: clamp(2.05rem,3.5vw,3.4rem); line-height: 1; }
.rf-destination-content p { max-width: 620px; margin: .7rem 0 .8rem; color: rgba(255,255,255,.81); font-size: .95rem; line-height: 1.6; }
.rf-destination-content em { color: #fff; font-size: .86rem; font-style: normal; font-weight: 850; }
.rf-route-method { padding: clamp(5rem,8vw,8rem) 0; color: #fff; background: radial-gradient(circle at 85% 10%,rgba(141,216,210,.18),transparent 32%),var(--rf-navy); }
.rf-route-method-grid { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: clamp(3rem,8vw,8rem); align-items: start; }
.rf-route-method h2 { margin: 0 0 1rem; color: #fff; }
.rf-route-method p { color: rgba(255,255,255,.68); }
.rf-method-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.14); }
.rf-method-list li { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 1rem; padding: 1.15rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.rf-method-list b { color: var(--rf-coral); font-family: var(--rf-serif); }
.rf-method-list strong { display: block; color: #fff; font-size: 1.08rem; }
.rf-method-list small { display: block; margin-top: .2rem; color: rgba(255,255,255,.62); font-size: .9rem; }
.rf-feature-section { background: #fff; }
.rf-feature-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 1.25rem; }
.rf-feature-story { position: relative; overflow: hidden; min-height: 600px; border-radius: var(--rf-radius); box-shadow: var(--rf-shadow); }
.rf-feature-story > img { width: 100%; height: 100%; object-fit: cover; }
.rf-feature-story::after { position: absolute; inset: 0; content: ""; background: linear-gradient(to top,rgba(5,27,38,.92),rgba(5,27,38,.02) 70%); }
.rf-feature-story > div { position: absolute; z-index: 1; inset: auto 0 0; padding: clamp(2rem,4vw,3.6rem); }
.rf-feature-story h2 { margin: 0 0 1rem; color: #fff; }
.rf-feature-story p { max-width: 720px; color: rgba(255,255,255,.76); }
.rf-feature-story a { color: #fff!important; font-weight: 850; text-decoration: none; }
.rf-tool-panel { display: flex; min-height: 600px; flex-direction: column; justify-content: center; padding: clamp(2.2rem,4vw,3.6rem); background: #eaf4f2; border-radius: var(--rf-radius); }
.rf-tool-panel h2 { margin: 0 0 1rem; }
.rf-tool-panel .rf-button { align-self: flex-start; margin: 1rem 0; }
.rf-tool-panel ul { margin: .8rem 0 0; padding-left: 1.2rem; color: var(--rf-muted); }
.rf-latest-section { background: var(--rf-canvas); }
.rf-latest-grid { display: grid; grid-template-columns: minmax(280px,.66fr) minmax(0,1.34fr); gap: clamp(3rem,7vw,7rem); }
.rf-latest-grid h2 { margin: 0 0 1rem; }
.rf-latest-list { border-top: 1px solid var(--rf-line); }
.rf-latest-list a { display: grid; grid-template-columns: 120px minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.25rem 0; color: var(--rf-ink)!important; text-decoration: none; border-bottom: 1px solid var(--rf-line); }
.rf-latest-list span { color: var(--rf-coral); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.rf-latest-list strong { font-family: var(--rf-serif); font-size: 1.2rem; line-height: 1.3; }
.rf-latest-list em { color: var(--rf-ocean); font-size: .82rem; font-style: normal; font-weight: 850; }
.rf-final-cta { padding: clamp(5rem,8vw,8rem) 0; color: #fff; background: linear-gradient(135deg,var(--rf-ocean),var(--rf-navy)); }
.rf-final-cta h2 { max-width: 900px; margin: 0 0 1.8rem; color: #fff; }

/* Guide library */
.rf-library-hero { padding: clamp(4rem,7vw,7rem) 0; background: #eef6f4; }
.rf-library-hero-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.rf-library-hero h1 { margin: .7rem 0 1rem; }
.rf-library-hero p { max-width: 760px; font-size: 1.08rem; }
.rf-library-hero img { width: 100%; height: 520px; object-fit: cover; border-radius: 28px 8px 28px 8px; box-shadow: var(--rf-shadow); }
.rf-search { position: relative; display: block; max-width: 680px; margin-top: 1.7rem; }
.rf-search input { width: 100%; min-height: 56px; padding: 0 3rem 0 1rem; color: var(--rf-ink); border: 1px solid var(--rf-line); border-radius: 12px; background: #fff; font-size: 1rem; box-shadow: 0 12px 30px rgba(8,43,58,.08); }
.rf-search b { position: absolute; top: 50%; right: 1rem; transform: translateY(-50%); color: var(--rf-ocean); }
.rf-search-status { min-height: 1.3em; font-size: .86rem!important; }
.rf-library-destinations .rf-destination-card { min-height: 360px; }
.rf-planning-section { color: #fff; background: var(--rf-navy); }
.rf-planning-grid { display: grid; grid-template-columns: minmax(280px,.65fr) minmax(0,1.35fr); gap: clamp(3rem,7vw,7rem); }
.rf-planning-section h2 { color: #fff; }
.rf-planning-links { border-top: 1px solid rgba(255,255,255,.14); }
.rf-planning-link { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.15rem 0; color: #fff!important; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.14); }
.rf-planning-link > span { color: var(--rf-coral); font-family: var(--rf-serif); }
.rf-planning-link strong { color: #fff; font-size: 1.04rem; }
.rf-planning-link p { margin: .2rem 0 0; color: rgba(255,255,255,.62); font-size: .9rem; }
.rf-planning-link em { color: var(--rf-lagoon); font-size: .82rem; font-style: normal; font-weight: 850; }
.rf-library-toolbar { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: end; justify-content: space-between; margin-bottom: 1.6rem; }
.rf-library-toolbar h2 { margin: 0; }
.rf-filter-row { display: flex; flex-wrap: wrap; gap: .45rem; }
.rf-filter-row button { min-height: 40px; padding: .6rem .85rem; color: var(--rf-navy); border: 1px solid var(--rf-line); border-radius: 9px; background: #fff; font-weight: 750; }
.rf-filter-row button.is-active { color: #fff; background: var(--rf-navy); }
.rf-library-group { margin-bottom: .75rem; border: 1px solid var(--rf-line); border-radius: 14px; background: #fff; overflow: hidden; }
.rf-library-group summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; color: var(--rf-navy); cursor: pointer; font-family: var(--rf-serif); font-size: 1.25rem; font-weight: 800; list-style: none; }
.rf-library-group summary::-webkit-details-marker { display: none; }
.rf-library-group summary b { color: var(--rf-muted); font-family: var(--rf-sans); font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; }
.rf-library-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--rf-line); }
.rf-library-item { display: flex; min-height: 220px; flex-direction: column; padding: 1.35rem; color: var(--rf-ink)!important; text-decoration: none; border-right: 1px solid var(--rf-line); border-bottom: 1px solid var(--rf-line); }
.rf-library-item:nth-child(2n) { border-right: 0; }
.rf-library-item span { color: var(--rf-coral); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.rf-library-item strong { margin-top: .55rem; font-family: var(--rf-serif); font-size: 1.27rem; line-height: 1.28; }
.rf-library-item p { margin: .55rem 0 1rem; font-size: .94rem; line-height: 1.58; }
.rf-library-item em { margin-top: auto; color: var(--rf-ocean); font-size: .82rem; font-style: normal; font-weight: 850; }
.rf-library-item[hidden] { display: none!important; }

/* Existing destination hubs and articles */
.rf-destination-hub .destination-photo-section { display: none!important; }
.rf-destination-hub main > .compliance-notice,
.rf-destination-hub main > .affiliate-notice { margin-top: 1rem; }
.rf-destination-hub .cluster-hero,
.rf-destination-hub .greek-hub-hero,
.rf-destination-hub .ocean-hub-hero,
.rf-destination-hub .caribbean-hub-hero,
.rf-guide-article .article-hero,
.rf-guide-article .greek-article-hero,
.rf-guide-article .ocean-article-hero,
.rf-guide-article .caribbean-article-hero { color: #fff; background: linear-gradient(135deg,var(--rf-navy),var(--rf-ocean))!important; }
.rf-destination-hub .cluster-hero h1,
.rf-destination-hub .greek-hub-hero h1,
.rf-destination-hub .ocean-hub-hero h1,
.rf-destination-hub .caribbean-hub-hero h1,
.rf-guide-article .article-hero h1,
.rf-guide-article .greek-article-hero h1,
.rf-guide-article .ocean-article-hero h1,
.rf-guide-article .caribbean-article-hero h1 { color: #fff!important; }
.rf-destination-hub .cluster-hero p,
.rf-destination-hub .greek-hub-hero p,
.rf-destination-hub .ocean-hub-hero p,
.rf-destination-hub .caribbean-hub-hero p,
.rf-guide-article .article-hero p,
.rf-guide-article .greek-article-hero p,
.rf-guide-article .ocean-article-hero p,
.rf-guide-article .caribbean-article-hero p { color: rgba(255,255,255,.78)!important; }
.rf-destination-hub .cluster-summary { gap: 1rem; }
.rf-destination-hub .cluster-summary > div { background: transparent!important; border: 0!important; border-top: 2px solid var(--rf-line)!important; border-radius: 0!important; box-shadow: none!important; }
.rf-destination-hub [class*="sequence"],
.rf-destination-hub [class*="route-sequence"] { box-shadow: none!important; }
.rf-destination-hub [class*="hub-card"],
.rf-destination-hub [class*="guide-card"],
.rf-guide-article [class*="sidebar-widget"],
.rf-commercial-page [class*="partner-card"],
.rf-commercial-page [class*="decision-card"] { border-color: var(--rf-line)!important; box-shadow: 0 12px 32px rgba(8,43,58,.06)!important; }
.rf-guide-article article p,
.rf-guide-article article li { font-size: 1.065rem; line-height: 1.78; }
.rf-guide-article article { max-width: 760px; }
.rf-guide-article .sticky-aside,
.rf-guide-article [class*="sticky"] { box-shadow: none!important; }
.rf-guide-article .toc { border-left: 4px solid var(--rf-lagoon); background: #edf6f4!important; box-shadow: none!important; }
.rf-guide-article table,
.rf-commercial-page table { background: #fff; border-collapse: collapse; }
.rf-guide-article th,
.rf-commercial-page th { color: #fff; background: var(--rf-navy); }
.rf-guide-article td,
.rf-guide-article th,
.rf-commercial-page td,
.rf-commercial-page th { padding: .85rem; border: 1px solid var(--rf-line); }
.rf-commercial-page main { background: var(--rf-canvas); }
.rf-commercial-page .page-hero,
.rf-commercial-page [class*="commercial-hero"] { background: #edf6f4!important; }
.rf-commercial-page .page-hero h1,
.rf-commercial-page [class*="commercial-hero"] h1 { color: var(--rf-navy)!important; }
.rf-commercial-page .decision-grid,
.rf-commercial-page .partner-grid,
.rf-commercial-page .provider-grid { gap: 1rem; }
.rf-information-page main,
.rf-tool-page main { background: var(--rf-canvas); }
.rf-information-page .policy-content,
.rf-information-page .content-narrow { max-width: 800px; }

/* Unified footer */
.rf-footer { color: #fff; background: var(--rf-navy); }
.rf-footer-main { display: grid; grid-template-columns: 1.25fr repeat(3,.75fr); gap: clamp(2rem,5vw,5rem); width: min(calc(100% - 42px),var(--rf-shell)); margin-inline: auto; padding: clamp(4rem,7vw,6rem) 0 3rem; }
.rf-footer .rf-brand { color: #fff!important; }
.rf-footer .rf-brand-mark { color: var(--rf-lagoon); }
.rf-footer .rf-brand-copy small { color: rgba(255,255,255,.56); }
.rf-footer-brand p { max-width: 410px; color: rgba(255,255,255,.64); font-size: .94rem; }
.rf-footer-column { display: flex; flex-direction: column; gap: .55rem; }
.rf-footer-column h2 { margin: 0 0 .45rem; color: var(--rf-lagoon); font-family: var(--rf-sans); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }
.rf-footer-column a { color: rgba(255,255,255,.76)!important; font-size: .9rem; text-decoration: none; }
.rf-footer-column a:hover { color: #fff!important; }
.rf-footer-bottom { display: flex; gap: 1rem; align-items: center; justify-content: space-between; width: min(calc(100% - 42px),var(--rf-shell)); margin-inline: auto; padding: 1.2rem 0 1.7rem; border-top: 1px solid rgba(255,255,255,.12); }
.rf-footer-bottom p { margin: 0; color: rgba(255,255,255,.52); font-size: .76rem; }
.rf-footer-bottom > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .7rem; }
.rf-footer-bottom a,
.rf-footer-bottom button { padding: 0; color: rgba(255,255,255,.62)!important; border: 0; background: transparent; font: inherit; font-size: .76rem; text-decoration: none; }

[data-rf-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
[data-rf-reveal].is-visible { opacity: 1; transform: none; }
.route-number-redundant { display: none!important; }

@media (max-width: 1120px) {
  .rf-nav { display: none; }
  .rf-menu-button { display: block; }
  .rf-header-inner { grid-template-columns: minmax(0,1fr) auto auto; }
  .rf-mobile-nav.is-open { display: block; }
  .rf-mobile-nav[hidden].is-open { display: block!important; }
  .rf-hero-grid,
  .rf-library-hero-grid { grid-template-columns: 1fr; }
  .rf-hero-visual { min-height: 540px; }
  .rf-hero-visual > img { height: 540px; }
  .rf-route-card { right: 22px; }
}

@media (max-width: 900px) {
  .rf-section-heading,
  .rf-route-method-grid,
  .rf-feature-grid,
  .rf-latest-grid,
  .rf-planning-grid { grid-template-columns: 1fr; }
  .rf-destination-grid { grid-template-columns: 1fr; }
  .rf-destination-card { min-height: 390px; }
  .rf-library-grid { grid-template-columns: 1fr; }
  .rf-library-item { border-right: 0; }
  .rf-footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rf-footer-brand { grid-column: span 2; }
  .rf-footer-bottom { align-items: flex-start; flex-direction: column; }
  .rf-footer-bottom > div { justify-content: flex-start; }
}

@media (max-width: 680px) {
  .rf-shell { width: min(calc(100% - 28px),var(--rf-shell)); }
  .rf-header-inner { width: min(calc(100% - 24px),1360px); min-height: 70px; }
  .rf-brand-copy small { display: none; }
  .rf-header-cta { display: none; }
  .rf-header-inner { grid-template-columns: minmax(0,1fr) auto; }
  body.rf-theme h1 { font-size: clamp(2.55rem,13vw,4rem); }
  body.rf-theme h2 { font-size: clamp(2rem,10vw,3rem); }
  .rf-hero { padding-top: 3.2rem; }
  .rf-hero-proof { grid-template-columns: 1fr; }
  .rf-hero-visual,
  .rf-hero-visual > img { min-height: 430px; height: 430px; }
  .rf-route-card { right: 12px; bottom: 12px; width: calc(100% - 24px); }
  .rf-connection-strip .rf-shell { overflow-x: auto; justify-content: flex-start; padding-block: 1rem; }
  .rf-connection-strip span { flex: 0 0 auto; }
  .rf-connection-strip i { flex: 0 0 28px; }
  .rf-destination-card { min-height: 350px; }
  .rf-destination-content p { display: none; }
  .rf-feature-story,
  .rf-tool-panel { min-height: 500px; }
  .rf-latest-list a { grid-template-columns: 1fr auto; }
  .rf-latest-list span { grid-column: 1 / -1; }
  .rf-planning-link { grid-template-columns: 34px minmax(0,1fr); }
  .rf-planning-link em { grid-column: 2; }
  .rf-library-toolbar { align-items: flex-start; flex-direction: column; }
  .rf-footer-main { grid-template-columns: 1fr; width: min(calc(100% - 28px),var(--rf-shell)); }
  .rf-footer-brand { grid-column: auto; }
  .rf-footer-bottom { width: min(calc(100% - 28px),var(--rf-shell)); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-rf-reveal] { opacity: 1; transform: none; transition: none; }
  .rf-destination-card img,
  .rf-button { transition: none; }
}

/* ITA_GUIDE_CSS_REPAIR_START */
/* Reset the legacy page-frame spacing that remained active under the
   route-first theme. It was narrowing every guide and causing mobile
   grid children to overflow the viewport. */
body.rf-theme {
  padding: 0 !important;
  overflow-x: clip;
}

body.rf-theme .container,
body.rf-theme .site-container {
  width: min(calc(100% - 40px), 1200px);
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

.rf-guide-article main,
.rf-guide-article main > *,
.rf-guide-article .content-grid,
.rf-guide-article .content-grid > *,
.rf-guide-article [class$="-article-layout"],
.rf-guide-article [class$="-article-layout"] > *,
.rf-guide-article [class$="-article-hero-grid"],
.rf-guide-article [class$="-article-hero-grid"] > * {
  min-width: 0;
}

/* Consistent guide heading scale. Page and homepage headings remain
   unchanged; only guide and hub typography is constrained. */
.rf-guide-article h1 {
  max-width: 900px;
  font-size: clamp(2.75rem, 5vw, 4.8rem) !important;
  line-height: 1.02 !important;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}

.rf-guide-article article h2,
.rf-guide-article .toc h2,
.rf-guide-article [class$="-article-content"] h2 {
  margin-top: clamp(2.4rem, 5vw, 3.8rem);
  font-size: clamp(1.85rem, 3.2vw, 2.65rem) !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}

.rf-guide-article article h3,
.rf-guide-article [class$="-article-content"] h3 {
  margin-top: 1.8rem;
  font-size: clamp(1.3rem, 2vw, 1.65rem) !important;
  line-height: 1.25 !important;
}

/* Generic/Bali article template. */
.rf-guide-article main.container {
  padding-block: clamp(1.8rem, 4vw, 3rem) clamp(4rem, 7vw, 7rem);
}

.rf-guide-article .content-grid {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(240px, 290px);
  justify-content: space-between;
  gap: clamp(2rem, 5vw, 4.5rem);
  width: 100%;
  align-items: start;
}

.rf-guide-article .content-grid > article {
  width: 100%;
  max-width: 760px;
  min-width: 0;
}

.rf-guide-article .content-grid > aside,
.rf-guide-article .sticky-aside {
  width: 100%;
  min-width: 0;
  align-self: start;
}

.rf-guide-article .sticky-aside {
  position: sticky;
  top: 102px;
  height: auto;
}

.rf-guide-article .page-header {
  width: 100%;
  max-width: 760px;
  margin-bottom: 1.6rem;
}

.rf-guide-article .page-header .excerpt {
  max-width: 720px;
  font-size: clamp(1.04rem, 1.7vw, 1.18rem);
  line-height: 1.7;
}

.rf-guide-article .breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .42rem;
  align-items: center;
  margin-bottom: 1rem;
  padding-top: 0;
  font-size: .78rem;
  line-height: 1.5;
}

.rf-guide-article .breadcrumbs span,
.rf-guide-article .breadcrumbs .sep {
  margin: 0;
  color: #87999f;
}

.rf-guide-article figure.article-hero {
  overflow: hidden;
  width: 100%;
  margin: 1.4rem 0 1rem;
  border: 0;
  border-radius: 20px;
  background: var(--rf-navy) !important;
  box-shadow: 0 20px 46px rgba(8, 43, 58, .12);
}

.rf-guide-article figure.article-hero img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
}

.rf-guide-article figure.article-hero figcaption {
  padding: .82rem 1rem .9rem;
  color: #d9e7e9 !important;
  font-size: .82rem;
  line-height: 1.5;
}

.rf-guide-article .review-bar,
.rf-guide-article [class$="-review-bar"] {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem 1.2rem;
  align-items: center;
  width: 100%;
  margin: 1rem 0 1.3rem;
  padding: .85rem 1rem;
  border: 1px solid var(--rf-line);
  border-radius: 12px;
  background: #edf6f4;
  color: var(--rf-ink);
  font-size: .84rem;
  line-height: 1.45;
}

.rf-guide-article .review-bar span,
.rf-guide-article [class$="-review-bar"] span {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .25rem;
}

.rf-guide-article .cluster-inline-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  width: 100%;
  margin: 1.1rem 0 1.5rem;
  padding: .9rem;
}

.rf-guide-article .cluster-inline-nav strong {
  flex: 0 0 100%;
  width: auto;
  margin-bottom: .1rem;
}

.rf-guide-article .cluster-inline-nav a,
.rf-guide-article .inline-links a,
.rf-guide-article .mini-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: .52rem .7rem;
  line-height: 1.25;
}

.rf-guide-article .quick-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  width: 100%;
  margin: 1.35rem 0;
}

.rf-guide-article .quick-facts > div {
  min-width: 0;
  padding: 1rem;
}

.rf-guide-article .quick-facts strong {
  display: block;
  overflow-wrap: anywhere;
}

.rf-guide-article .toc {
  width: 100%;
  margin: 1.4rem 0 2.2rem;
  padding: 1.15rem 1.25rem;
}

.rf-guide-article .toc h2,
.rf-guide-article .toc h4 {
  margin: 0 0 .7rem;
  font-family: var(--rf-sans) !important;
  font-size: .75rem !important;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.rf-guide-article .toc li {
  margin-bottom: .42rem;
  font-size: .92rem;
  line-height: 1.45;
}

.rf-guide-article .sidebar-widget {
  display: grid;
  gap: .62rem;
  width: 100%;
  min-width: 0;
  padding: 1.15rem;
}

.rf-guide-article .sidebar-widget h2,
.rf-guide-article .sidebar-widget h3,
.rf-guide-article .sidebar-widget h4 {
  margin: 0 0 .25rem;
  padding: 0 0 .65rem;
  border-bottom: 1px solid var(--rf-line);
  font-family: var(--rf-serif) !important;
  font-size: 1.28rem !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
  text-transform: none;
}

.rf-guide-article .sidebar-widget a {
  display: block;
  padding: .18rem 0;
  font-size: .88rem;
  font-weight: 720;
  line-height: 1.4;
}

.rf-guide-article .sidebar-widget small {
  display: block;
  margin-top: .35rem;
  font-size: .76rem;
  line-height: 1.55;
}

/* Destination-specific article families. */
.rf-guide-article .greek-article-layout,
.rf-guide-article .ocean-article-layout,
.rf-guide-article .caribbean-article-layout {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(240px, 300px);
  justify-content: space-between;
  width: min(calc(100% - 40px), 1120px);
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: 0;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.rf-guide-article .greek-article-content,
.rf-guide-article .ocean-article-content,
.rf-guide-article .caribbean-article-content {
  width: 100%;
  max-width: 760px;
  min-width: 0;
}

.rf-guide-article .greek-sticky-planner,
.rf-guide-article .ocean-sticky-planner,
.rf-guide-article .caribbean-sticky {
  width: 100%;
  min-width: 0;
  align-self: start;
}

.rf-guide-article .greek-article-hero,
.rf-guide-article .ocean-article-hero,
.rf-guide-article .caribbean-article-hero {
  width: 100%;
  margin: 0;
}

.rf-guide-article .greek-article-hero-grid,
.rf-guide-article .ocean-article-hero-grid,
.rf-guide-article .caribbean-article-hero-grid {
  width: min(calc(100% - 40px), 1200px);
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

.rf-guide-article .affiliate-notice,
.rf-guide-article .compliance-notice {
  width: 100%;
  margin: 1rem 0;
  padding: .9rem 1rem;
  border: 1px solid var(--rf-line);
  border-radius: 12px;
  background: #f8fbfa;
  font-size: .86rem;
  line-height: 1.55;
}

.rf-guide-article .affiliate-notice p,
.rf-guide-article .compliance-notice p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}

.rf-guide-article article,
.rf-guide-article article section,
.rf-guide-article article div,
.rf-guide-article aside,
.rf-guide-article table,
.rf-guide-article pre,
.rf-guide-article code {
  max-width: 100%;
}

.rf-guide-article article p,
.rf-guide-article article li,
.rf-guide-article [class$="-article-content"] p,
.rf-guide-article [class$="-article-content"] li {
  overflow-wrap: break-word;
  word-break: normal;
}

.rf-guide-article article > table,
.rf-guide-article [class$="-article-content"] > table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.rf-guide-article .table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

.rf-guide-article .inline-links,
.rf-guide-article .mini-actions,
.rf-guide-article .cta-stack,
.rf-guide-article .caribbean-related > div {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

@media (max-width: 980px) {
  .rf-guide-article .content-grid,
  .rf-guide-article .greek-article-layout,
  .rf-guide-article .ocean-article-layout,
  .rf-guide-article .caribbean-article-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .rf-guide-article .content-grid > article,
  .rf-guide-article .greek-article-content,
  .rf-guide-article .ocean-article-content,
  .rf-guide-article .caribbean-article-content {
    width: 100%;
    max-width: none;
  }

  .rf-guide-article .sticky-aside,
  .rf-guide-article .greek-sticky-planner,
  .rf-guide-article .ocean-sticky-planner,
  .rf-guide-article .caribbean-sticky {
    position: static !important;
    top: auto;
  }

  .rf-guide-article .quick-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  body.rf-theme .container,
  body.rf-theme .site-container,
  .rf-guide-article .greek-article-layout,
  .rf-guide-article .ocean-article-layout,
  .rf-guide-article .caribbean-article-layout,
  .rf-guide-article .greek-article-hero-grid,
  .rf-guide-article .ocean-article-hero-grid,
  .rf-guide-article .caribbean-article-hero-grid {
    width: min(calc(100% - 32px), 1200px);
  }

  .rf-guide-article main.container {
    padding-block: 1.4rem 4rem;
  }

  .rf-guide-article h1 {
    font-size: clamp(2.25rem, 11vw, 3.15rem) !important;
    line-height: 1.04 !important;
  }

  .rf-guide-article article h2,
  .rf-guide-article [class$="-article-content"] h2 {
    margin-top: 2.25rem;
    font-size: clamp(1.7rem, 8vw, 2.15rem) !important;
  }

  .rf-guide-article article h3,
  .rf-guide-article [class$="-article-content"] h3 {
    font-size: 1.35rem !important;
  }

  .rf-guide-article .page-header .excerpt {
    font-size: 1rem;
    line-height: 1.65;
  }

  .rf-guide-article figure.article-hero {
    border-radius: 14px;
  }

  .rf-guide-article figure.article-hero img {
    aspect-ratio: 4 / 3;
  }

  .rf-guide-article .review-bar,
  .rf-guide-article [class$="-review-bar"] {
    display: grid;
    gap: .45rem;
  }

  .rf-guide-article .cluster-inline-nav {
    padding: .75rem;
  }

  .rf-guide-article .cluster-inline-nav a {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
    text-align: center;
  }

  .rf-guide-article .quick-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
  }

  .rf-guide-article .quick-facts > div {
    padding: .85rem;
  }

  .rf-guide-article .toc {
    padding: 1rem;
  }

  .rf-guide-article .sidebar-widget {
    padding: 1rem;
  }

  .rf-guide-article .greek-article-hero,
  .rf-guide-article .ocean-article-hero,
  .rf-guide-article .caribbean-article-hero {
    padding-block: 2.25rem !important;
  }

  .rf-guide-article .greek-day-grid,
  .rf-guide-article .ocean-day-grid,
  .rf-guide-article .caribbean-day-grid,
  .rf-guide-article .greek-provider-grid,
  .rf-guide-article .ocean-provider-grid,
  .rf-guide-article .caribbean-provider-grid,
  .rf-guide-article .partner-choice-grid,
  .rf-guide-article .recommendation-grid,
  .rf-guide-article .scenario-grid,
  .rf-guide-article .season-strip {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
/* Review cards sit inside dark destination heroes but use pale surfaces. */
.rf-guide-article .greek-article-hero .greek-review-bar,
.rf-guide-article .ocean-article-hero .ocean-review-bar,
.rf-guide-article .caribbean-article-hero .caribbean-review-bar {
  color: var(--rf-ink) !important;
  background: #f3faf8 !important;
  border-color: rgba(8, 43, 58, .14) !important;
}

.rf-guide-article .greek-article-hero .greek-review-bar :where(span, strong, p),
.rf-guide-article .ocean-article-hero .ocean-review-bar :where(span, strong, p),
.rf-guide-article .caribbean-article-hero .caribbean-review-bar :where(span, strong, p) {
  color: var(--rf-ink) !important;
}

.rf-guide-article .greek-article-hero .greek-review-bar a,
.rf-guide-article .ocean-article-hero .ocean-review-bar a,
.rf-guide-article .caribbean-article-hero .caribbean-review-bar a {
  color: var(--rf-ocean) !important;
}
/* ITA_GUIDE_CSS_REPAIR_END */
