/* Beyond Journey custom styles, carried over from the original site. WordPress additions are at the end. */

html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body { font-family: Inter, system-ui, -apple-system, sans-serif; color: #1A1A2E; background: #fff; overflow-x: clip; -webkit-font-smoothing: antialiased; }
::selection { background: #1B7FBF; color: #fff; }

:focus-visible { outline: 2px solid #F47B20; outline-offset: 3px; border-radius: 4px; }

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; }
.skip-link:focus { left: 1rem; top: 1rem; padding: .75rem 1.25rem; background: #fff; color: #1A6DA8; border-radius: .5rem; box-shadow: 0 10px 30px rgb(0 0 0 / .15); }

/* Scroll reveal */
.aos-hidden { opacity: 0; transform: translateY(24px); transition: opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1); }
.aos-visible { opacity: 1; transform: translateY(0); }

/* Accent rules */
.section-accent, .section-accent-center { display: block; width: 3rem; height: 3px; border-radius: 2px; background: linear-gradient(90deg, #1B7FBF, #F47B20); }
.section-accent { margin-top: .875rem; }
.section-accent-center { margin: .875rem auto 0; }
.section-accent-on-blue { background: linear-gradient(90deg, #ffffff, #F9A05C); }

/* Hero text entrance */
@keyframes hero-fade-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.hero-animate-1 { animation: hero-fade-in .8s .15s cubic-bezier(.22,1,.36,1) both; }
.hero-animate-2 { animation: hero-fade-in .8s .30s cubic-bezier(.22,1,.36,1) both; }
.hero-animate-3 { animation: hero-fade-in .8s .45s cubic-bezier(.22,1,.36,1) both; }
.hero-animate-4 { animation: hero-fade-in .8s .60s cubic-bezier(.22,1,.36,1) both; }

/* Hero carousel — index driven by JS, CSS does the crossfade + Ken Burns */
.hero-slide { opacity: 0; transition: opacity 1100ms cubic-bezier(.4,0,.2,1); }
.hero-slide[data-active="true"] { opacity: 1; }
.hero-slide[data-active="true"] .hero-img { animation: hero-kenburns 7200ms ease-out forwards; }
@keyframes hero-kenburns { from { transform: scale(1); } to { transform: scale(1.045); } }

/* Per-slide cropping — subjects stay centre-right, clear of the headline column */
.hero-img { width: 100%; height: 100%; object-fit: cover; }
.hero-img-1 { object-position: 58% center; }
.hero-img-2 { object-position: 64% 58%; }
.hero-img-4 { object-position: 64% 45%; }
.hero-img-5 { object-position: 52% 55%; }
.hero-img-6 { object-position: 56% 52%; }
.hero-img-7 { object-position: 38% 45%; }
.hero-img-8 { object-position: 55% 60%; }
.hero-img-9 { object-position: 52% 55%; }
.hero-img-10 { object-position: 55% 55%; }
@media (max-width: 1023px) {
  .hero-img-1 { object-position: 55% center; }
  .hero-img-2 { object-position: 60% 58%; }
  .hero-img-4 { object-position: 58% 48%; }
  .hero-img-5 { object-position: 52% 55%; }
  .hero-img-6 { object-position: 54% 50%; }
  .hero-img-7 { object-position: 36% 45%; }
}
@media (max-width: 639px) {
  .hero-img-1 { object-position: 52% 45%; }
  .hero-img-2 { object-position: 56% 62%; }
  .hero-img-4 { object-position: 54% 55%; }
  .hero-img-5 { object-position: 50% 55%; }
  .hero-img-6 { object-position: 52% 50%; }
  .hero-img-7 { object-position: 34% 45%; }
}

/* Overlay: strongest on the text side, near-clear on the right */
.hero-overlay-h { background: linear-gradient(100deg, rgb(12 42 68 / .82) 0%, rgb(14 46 74 / .66) 28%, rgb(18 52 80 / .38) 55%, rgb(22 58 88 / .16) 100%); }
.hero-overlay-v { background: linear-gradient(180deg, rgb(10 32 52 / .5) 0%, rgb(10 32 52 / .08) 30%, rgb(10 32 52 / .12) 70%, rgb(10 32 52 / .55) 100%); }
@media (max-width: 639px) {
  .hero-overlay-h { background: linear-gradient(160deg, rgb(12 42 68 / .72) 0%, rgb(14 46 74 / .58) 55%, rgb(18 52 80 / .45) 100%); }
}

/* Destination carousel */
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
.scrollbar-hide::-webkit-scrollbar { display: none; }
.dest-scroller { scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scroll-padding-left: 1rem; }
@media (min-width: 640px) { .dest-scroller { scroll-padding-left: 1.5rem; } }
@media (min-width: 1024px) { .dest-scroller { scroll-padding-left: 2rem; } }
.dest-card { scroll-snap-align: start; transition: transform .5s cubic-bezier(.22,1,.36,1), opacity .5s cubic-bezier(.22,1,.36,1); }
.dest-card[data-active="false"] { transform: scale(.94); opacity: .72; }

/* Destinations page: three cards per row, centred */
.dest-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; max-width: 1200px; margin: 0 auto; }
.dest-grid > * { flex: 0 1 100%; max-width: 360px; }
@media (min-width: 640px) { .dest-grid > * { flex-basis: calc((100% - 1.25rem) / 2); } }
/* Four per row on desktop: 11 destinations sit 4, 4, 3 with the last row centred */
@media (min-width: 1024px) { .dest-grid > * { flex-basis: calc((100% - 3.75rem) / 4); } }
/* Destinations page region cards: compact, all eight in one row on desktop. Dashed outline
   on top, solid accent colour rising from the bottom corners, centred icon, title and list */
.region-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.region-grid > * { flex: 0 1 calc((100% - .75rem) / 2); max-width: 220px; }
@media (min-width: 768px) { .region-grid > * { flex-basis: calc((100% - 2.25rem) / 4); } }
@media (min-width: 1024px) { .region-grid > * { flex-basis: calc((100% - 5.25rem) / 8); } }
.region-card { position: relative; height: 100%; padding: 1rem .6rem .9rem; text-align: center; background: #fff; border: 1.5px dashed rgba(27,127,191,.28); border-radius: 1rem; box-shadow: 0 10px 24px -20px rgba(23,82,125,.55); transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease; }
.region-card::after { content: ""; position: absolute; inset: -1.5px; border: 2px solid var(--rc); border-radius: inherit; pointer-events: none; -webkit-mask: linear-gradient(to bottom, transparent 40%, #000 72%); mask: linear-gradient(to bottom, transparent 40%, #000 72%); }
.region-card:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -22px rgba(23,82,125,.6); }
.region-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; margin-bottom: .5rem; border-radius: 999px; color: var(--rc); background: color-mix(in srgb, var(--rc) 12%, #fff); }
.region-icon svg { width: 1.1rem; height: 1.1rem; }
.region-title { margin-bottom: .35rem; font-size: .7rem; line-height: 1.3; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1A6DA8; }
.region-list { display: flex; flex-wrap: wrap; justify-content: center; gap: .1rem .75rem; font-size: .75rem; line-height: 1.4; color: #5A6472; }
.region-list li { position: relative; }
.region-list li + li::before { content: ""; position: absolute; left: -.45rem; top: 50%; width: 3px; height: 3px; margin-top: -1.5px; border-radius: 50%; background: var(--rc); }

/* DMC page "What We Handle": pastel icon tiles with title and services underneath,
   staggered on desktop so alternate cards sit lower */
.handle-grid { display: grid; gap: 1.5rem; max-width: 1100px; margin: 0 auto; }
@media (min-width: 640px) { .handle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .handle-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; } .handle-grid > :nth-child(even) { margin-top: 2.5rem; } }
.handle-card { height: 100%; padding: .75rem .75rem 1.1rem; background: #fff; border: 1.5px solid color-mix(in srgb, var(--ink) 35%, #fff); border-radius: 1.4rem; transition: border-color .35s ease, box-shadow .35s ease; }
.handle-card:hover { border-color: var(--ink); box-shadow: 0 18px 36px -26px color-mix(in srgb, var(--ink) 80%, transparent); }
.handle-tile { display: flex; align-items: center; justify-content: center; width: 4.5rem; height: 4.5rem; margin: .5rem auto 0; border-radius: 1rem; background: var(--tint); color: var(--ink); transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease; }
.handle-tile svg { width: 2.25rem; height: 2.25rem; filter: drop-shadow(0 10px 12px color-mix(in srgb, var(--ink) 30%, transparent)); transition: transform .45s cubic-bezier(.22,1,.36,1); }
.handle-card:hover .handle-tile { transform: translateY(-4px); box-shadow: 0 22px 40px -26px color-mix(in srgb, var(--ink) 70%, transparent); }
.handle-card:hover .handle-tile svg { transform: scale(1.08) rotate(-4deg); }
.handle-title { margin-top: .9rem; padding: 0 .35rem; font-size: 1.05rem; font-weight: 700; color: #1A1A2E; }
.handle-count { margin-top: .15rem; padding: 0 .35rem; font-size: .75rem; color: #8A93A0; }
.handle-list { margin-top: .7rem; padding: 0 .35rem; display: grid; gap: .35rem; font-size: .85rem; line-height: 1.4; color: #5A6472; }
.handle-list li { position: relative; padding-left: .85rem; }
.handle-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: 5px; height: 5px; border-radius: 50%; background: var(--ink); }

/* Services page: each group is a heading above a row of service cards */
.svc-group { height: 100%; }
.svc-group-head { margin-bottom: 1.1rem; text-align: left; }
.svc-group-head h3 { font-size: 1.15rem; font-weight: 700; color: #1A6DA8; }
.svc-group-head p { margin-top: .2rem; font-size: .8rem; color: #8A93A0; }
.svc-pair { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .svc-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Services: a gallery of rounded photo cards in staggered heights, text over a soft fade */
.svc-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 1rem; }
@media (min-width: 1024px) { .svc-row { display: flex; gap: 1.25rem; } .svc-row > * { flex: 1 1 0; min-width: 0; } }
.svc-card { position: relative; display: block; height: 15rem; overflow: hidden; border-radius: 1.5rem; background: #DCE8F1; box-shadow: 0 16px 34px -20px rgba(8,40,66,.55); -webkit-tap-highlight-color: transparent; transition: transform .4s ease, box-shadow .4s ease; }
.svc-row > :nth-child(even) .svc-card { height: 19rem; }
@media (min-width: 1024px) { .svc-card { height: 17rem; } .svc-row > :nth-child(even) .svc-card { height: 22rem; } }
.svc-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22,1,.36,1); }
.svc-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,30,50,.92) 0%, rgba(8,30,50,.62) 45%, rgba(8,30,50,.1) 80%, rgba(8,30,50,0) 100%); }
.svc-card-body { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; padding: 1rem 1.1rem 1.1rem; color: #fff; }
.svc-card-body h3 { font-size: 1rem; font-weight: 700; line-height: 1.25; }
#main .svc-card-body p, .svc-card-body p { margin-top: .3rem; font-size: .74rem; line-height: 1.45; color: rgba(255,255,255,.85); text-align: left; text-align-last: auto; }
.svc-card-cta { display: inline-flex; max-height: 0; margin-top: 0; align-items: center; gap: .35rem; overflow: hidden; font-size: .75rem; font-weight: 700; color: #F9A15A; opacity: 0; transition: max-height .35s ease, margin-top .35s ease, opacity .35s ease; }
.svc-card:hover, .svc-card:focus-visible { transform: translateY(-4px); box-shadow: 0 24px 44px -22px rgba(8,40,66,.6); }
.svc-card:hover img, .svc-card:focus-visible img { transform: scale(1.07); }
.svc-card:hover .svc-card-cta, .svc-card:focus-visible .svc-card-cta { max-height: 1.5rem; margin-top: .45rem; opacity: 1; }
@media (max-width: 639px) { .svc-card-body p { display: none; } }



/* Tap bloom: a soft blue glow that swells out from the card before opening it */
.bloom-card > a { position: relative; }
.bloom-card > a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; background: radial-gradient(circle at var(--bx, 50%) var(--by, 50%), rgba(255,255,255,.75), rgba(27,127,191,.25) 45%, transparent 70%); }
.bloom-card.is-blooming > a { animation: dest-bloom .55s cubic-bezier(.22,1,.36,1); }
.bloom-card.is-blooming > a::after { animation: dest-bloom-glow .55s ease-out; }
@keyframes dest-bloom { 0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(27,127,191,.5); } 40% { transform: scale(1.04); } 100% { transform: scale(1); box-shadow: 0 0 0 26px rgba(27,127,191,0); } }
@keyframes dest-bloom-glow { 0% { opacity: 0; transform: scale(.6); } 35% { opacity: 1; } 100% { opacity: 0; transform: scale(1.2); } }
.dest-card[data-active="true"] { transform: scale(1); opacity: 1; }

.clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Decorative travel routes */
@keyframes route-dash { to { stroke-dashoffset: -200; } }
.route-dash { animation: route-dash 24s linear infinite; }
/* Contact: card pops into view, compact short form, details pop in one by one */
.contact-wrap { max-width: 80rem; }
.pop.aos-hidden { opacity: 0; transform: scale(.9) translateY(18px); transition: opacity .5s ease, transform .7s cubic-bezier(.34,1.56,.64,1); }
.pop.aos-visible { opacity: 1; transform: none; }
.contact-card { transition: box-shadow .3s ease, transform .3s ease; }
.contact-card.aos-visible:hover { transform: translateY(-4px); box-shadow: 0 28px 60px -30px rgba(23,82,125,.7); }
.contact-list li { opacity: 0; transform: scale(.85); }
.contact-card.aos-visible .contact-list li { animation: contact-pop .5s cubic-bezier(.34,1.56,.64,1) forwards; }
.contact-card.aos-visible .contact-list li:nth-child(2) { animation-delay: .1s; }
.contact-card.aos-visible .contact-list li:nth-child(3) { animation-delay: .2s; }
.contact-card.aos-visible .contact-list li:nth-child(4) { animation-delay: .3s; }
.contact-card.aos-visible .contact-list li:nth-child(5) { animation-delay: .4s; }
@keyframes contact-pop { to { opacity: 1; transform: none; } }
.flight-bg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

/* Glass buttons on photos turn brand dark blue on hover and pulse when tapped */
.btn-tap { -webkit-tap-highlight-color: transparent; transition: background-color .25s ease, transform .15s ease, box-shadow .25s ease; }
.btn-tap:hover, .btn-tap:focus-visible { background-color: rgba(20,95,143,.9); }
.btn-tap:active { background-color: #145F8F; transform: scale(.96); animation: btn-tap-pulse .5s ease-out; }
@keyframes btn-tap-pulse { from { box-shadow: 0 0 0 0 rgba(20,95,143,.6); } to { box-shadow: 0 0 0 14px rgba(20,95,143,0); } }

@media (prefers-reduced-motion: reduce) {
  html, .dest-scroller { scroll-behavior: auto; }
  .hero-slide { transition: none; }
  .hero-slide[data-active="true"] .hero-img { animation: none; }
  .hero-animate-1, .hero-animate-2, .hero-animate-3, .hero-animate-4 { animation: none; }
  .aos-hidden { opacity: 1; transform: none; transition: none; }
  .route-dash { animation: none; }
  .contact-list li { opacity: 1; transform: none; }
  .route-plane { display: none; }
  .dest-card { transition: none; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ---------- WordPress additions ---------- */

/* Keep the fixed header below the admin bar for logged-in users. */
.admin-bar #site-header { top: 32px; }
.admin-bar #mobile-nav { top: calc(5.6rem + 32px); max-height: calc(100vh - 6.35rem - 32px); }
html:has(body.admin-bar) { scroll-padding-top: calc(5rem + 32px); }
@media screen and (max-width: 782px) {
  .admin-bar #site-header { top: 46px; }
  .admin-bar #mobile-nav { top: calc(5.6rem + 46px); max-height: calc(100vh - 6.35rem - 46px); }
  html:has(body.admin-bar) { scroll-padding-top: calc(5rem + 46px); }
}
@media screen and (max-width: 600px) {
  #wpadminbar { position: fixed; }
}

.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { clip-path: none; height: auto; width: auto; left: 1rem; top: 1rem; z-index: 100; padding: .75rem 1.25rem; background: #fff; color: #1A6DA8; border-radius: .5rem; }

/* Content written in the editor (regular pages and posts) */
.bj-content { color: #5A6472; line-height: 1.75; }
.bj-content > * + * { margin-top: 1.25em; }
.bj-content h1, .bj-content h2, .bj-content h3, .bj-content h4, .bj-content h5, .bj-content h6 { color: #1A6DA8; font-weight: 700; line-height: 1.25; margin-top: 1.8em; }
.bj-content > :first-child { margin-top: 0; }
.bj-content h2 { font-size: 1.75rem; }
.bj-content h3 { font-size: 1.375rem; }
.bj-content h4 { font-size: 1.125rem; }
.bj-content a { color: #1B7FBF; text-decoration: underline; text-underline-offset: 2px; }
.bj-content a:hover { color: #145F8F; }
.bj-content strong { color: #1A1A2E; }
.bj-content ul { list-style: disc; padding-left: 1.5em; }
.bj-content ol { list-style: decimal; padding-left: 1.5em; }
.bj-content li + li { margin-top: .4em; }
.bj-content blockquote { border-left: 3px solid #F47B20; padding-left: 1em; font-style: italic; color: #2D2D3F; }
.bj-content img, .bj-content video, .bj-content iframe { max-width: 100%; height: auto; border-radius: .75rem; }
.bj-content figcaption { margin-top: .5em; font-size: .875rem; color: #8A93A1; text-align: center; }
.bj-content table { width: 100%; border-collapse: collapse; }
.bj-content th, .bj-content td { border: 1px solid #E5E7EB; padding: .5em .75em; text-align: left; }
.bj-content hr { border-top: 1px solid rgb(27 127 191 / .15); }
.bj-content .wp-block-button__link { display: inline-block; border-radius: .5rem; background: #F47B20; padding: .75em 1.5em; font-weight: 600; color: #fff; text-decoration: none; }
.aligncenter { margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }

/* Post list pagination */
.bj-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.bj-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .75rem; border: 1px solid rgb(27 127 191 / .2); border-radius: .5rem; font-weight: 600; color: #1A6DA8; }
.bj-pagination .page-numbers.current, .bj-pagination a.page-numbers:hover { border-color: #1B7FBF; background: #1B7FBF; color: #fff; }

/* Elementor pages: Elementor resets every image to height:auto, which would shrink the full-size section photos. */
.elementor [class*="elementor-widget-bj-"] img.h-full,
.elementor [class*="elementor-widget-bj-"] img.hero-img { height: 100%; }

/* Header: see-through over the banner photo, then a white floating rounded bar once the page is scrolled (or the phone menu is open) */
#site-header { background: transparent; transition: padding .3s ease; }
#site-header.bj-scrolled { padding-top: .75rem; }
.nav-shell { height: 5rem; border-radius: 1.25rem; transition: height .3s ease, padding .3s ease, background-color .3s ease, box-shadow .3s ease; }
.bj-scrolled .nav-shell { height: 4.25rem; padding: 0 .75rem 0 1rem; background: #fff; box-shadow: 0 14px 36px -16px rgba(8,40,66,.35); }
.bj-scrolled .brand-logo-box, .bj-scrolled .brand-logo-img { height: 3rem; }
.nav-links { display: flex; align-items: center; gap: .125rem; }
.bj-nav-link { display: inline-flex; align-items: center; color: rgb(255 255 255 / .9); }
.bj-nav-link[aria-current="page"] { color: #fff; }
.bj-nav-link:not([aria-current="page"]):hover { color: #fff; background-color: rgb(255 255 255 / .1); }
.bj-scrolled .bj-nav-link { color: #1A2B3C; }
.bj-scrolled .bj-nav-link[aria-current="page"] { color: #1B7FBF; }
.bj-scrolled .bj-nav-link:not([aria-current="page"]):hover { color: #1B7FBF; background-color: #F2F8FC; }

/* Dropdowns: dark glass panel, every link with its own icon and a short line */
.nav-item { position: relative; }
.nav-caret { width: .8rem; height: .8rem; margin-left: .3rem; opacity: .75; transition: transform .25s ease; }
.has-drop:hover .nav-caret, .has-drop:focus-within .nav-caret { transform: rotate(180deg); }
.nav-drop { position: absolute; top: 100%; left: 50%; z-index: 60; padding-top: 1.1rem; opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.has-drop:hover .nav-drop, .has-drop:focus-within .nav-drop { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav-drop-inner { position: relative; width: 21rem; padding: .5rem; border: 1px solid rgba(255,255,255,.1); border-radius: 1.1rem; background: rgba(10,36,61,.97); box-shadow: 0 28px 60px -20px rgba(0,0,0,.6); }
.nav-drop-inner::before { content: ""; position: absolute; top: -6px; left: 50%; width: 12px; height: 12px; margin-left: -6px; border-top: 1px solid rgba(255,255,255,.1); border-left: 1px solid rgba(255,255,255,.1); background: rgb(10,36,61); transform: rotate(45deg); }
.nav-drop-wide .nav-drop-inner { width: 36rem; }
.nav-drop-links { display: grid; gap: .15rem; }
.nav-drop-wide .nav-drop-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nav-drop-link { display: flex; align-items: flex-start; gap: .75rem; padding: .65rem .7rem; border-radius: .8rem; transition: background-color .2s ease; }
.nav-drop-link:hover, .nav-drop-link:focus-visible { background: rgba(255,255,255,.07); }
.nav-drop-ico { display: flex; width: 2.25rem; height: 2.25rem; flex: none; align-items: center; justify-content: center; border-radius: .7rem; background: color-mix(in srgb, var(--c, #6FC3FF) 18%, transparent); color: var(--c, #6FC3FF); transition: transform .25s ease; }
.nav-drop-link:hover .nav-drop-ico { transform: scale(1.08); }
.nav-drop-ico svg { width: 1.15rem; height: 1.15rem; }
.nav-drop-name { display: block; font-size: .85rem; font-weight: 600; line-height: 1.3; color: #fff; }
.nav-drop-desc { display: block; margin-top: .15rem; font-size: .72rem; line-height: 1.35; color: rgba(255,255,255,.6); }
.nav-drop-link[aria-current="page"] .nav-drop-name { color: #F9A15A; }

/* Right side: Plan Your Journey pill */
.nav-cta { display: inline-flex; align-items: center; gap: .6rem; margin-left: 1rem; padding: .35rem 1.15rem .35rem .35rem; border-radius: 999px; background: #1B7FBF; font-size: .875rem; font-weight: 600; color: #fff; box-shadow: 0 10px 22px -12px rgba(27,127,191,.8); transition: background-color .25s ease, transform .25s ease; }
.nav-cta:hover { background: #145F8F; transform: translateY(-1px); }
.nav-cta-icon { display: flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.2); }
.nav-cta-icon svg { width: 1rem; height: 1rem; }

/* Phone menu button and panel */
.nav-menu-btn { display: flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; transition: background-color .25s ease, border-color .25s ease; }
.bj-scrolled .nav-menu-btn { border-color: #1B7FBF; background: #1B7FBF; }
@media (min-width: 1024px) { .nav-menu-btn { display: none; } }
.mobile-nav-panel { position: fixed; top: 5.6rem; left: .75rem; right: .75rem; z-index: 40; max-height: calc(100vh - 6.35rem); max-height: calc(100dvh - 6.35rem); overflow-y: auto; border-radius: 1.25rem; background: #fff; box-shadow: 0 26px 60px -20px rgba(8,40,66,.45); }
.m-link { display: flex; flex: 1 1 auto; align-items: center; gap: .5rem; padding: .8rem 1rem; border-radius: .8rem; font-size: 1.05rem; font-weight: 500; color: #1A2B3C; transition: background-color .2s ease, color .2s ease; }
.m-link:hover { background: #F2F8FC; color: #1B7FBF; }
.m-link[aria-current="page"] { background: #EAF4FB; color: #1B7FBF; }
.m-row { display: flex; align-items: center; gap: .25rem; }
.m-toggle { display: flex; width: 2.75rem; height: 2.75rem; flex: none; align-items: center; justify-content: center; border-radius: .8rem; color: #1B7FBF; transition: background-color .2s ease; }
.m-toggle:hover { background: #F2F8FC; }
.m-toggle svg { width: 1.1rem; height: 1.1rem; transition: transform .25s ease; }
.m-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.m-sub { margin: .1rem 0 .4rem 1rem; padding-left: .75rem; border-left: 2px solid #E3EDF4; }
.m-sub-link { display: block; padding: .55rem .75rem; border-radius: .6rem; font-size: .92rem; color: #4A5663; }
.m-sub-link:hover, .m-sub-link[aria-current="page"] { background: #F2F8FC; color: #1B7FBF; }
.m-cta { display: flex; margin-top: 1rem; align-items: center; justify-content: center; gap: .6rem; padding: .95rem 1.5rem; border-radius: 999px; background: #1B7FBF; font-weight: 600; color: #fff; }
.m-cta svg { width: 1.1rem; height: 1.1rem; }
.m-quick { display: grid; margin-top: .6rem; grid-template-columns: 1fr 1fr; gap: .6rem; }
.m-quick a { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .8rem 1rem; border-radius: 999px; font-size: .9rem; font-weight: 600; }
.m-quick svg { width: 1.1rem; height: 1.1rem; }
.m-call { background: #EAF4FB; color: #1B7FBF; }
.m-wa { background: #25D366; color: #fff; }

/* Logo sizes: header wordmark and footer logo */
.brand-logo-box, .brand-logo-img { height: 3rem; }
@media (min-width: 640px) { .brand-logo-box, .brand-logo-img { height: 3.75rem; } }
.footer-logo-img { height: 3.5rem; }

/* Contact: on desktop the form box stretches to the height of the details panel; the message box takes the extra space */
@media (min-width: 1024px) {
  .contact-form-col { display: flex; flex-direction: column; }
  .contact-form-box { display: flex; flex: 1 1 auto; flex-direction: column; }
  .contact-form-box form:not(.hidden) { display: flex; flex: 1 1 auto; flex-direction: column; }
  .contact-msg { display: flex; flex: 1 1 auto; flex-direction: column; }
  .contact-msg textarea { flex: 1 1 auto; min-height: 4.5rem; }
  .contact-form-box > [id^="enquiry-done"]:not(.hidden) { margin: auto 0; }
}

/* Contact: the enquiry popup's airport photo behind the details panel, with a navy wash and white text */
.contact-photo-bg { position: relative; isolation: isolate; overflow: hidden; }
.contact-photo-bg > .cf-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 38% center; }
.contact-photo-bg > .cf-veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, rgba(11,42,68,.88), rgba(11,42,68,.62)); }
.contact-photo-bg h2, .contact-photo-bg p:not([class*="text-brand-orange"]), .contact-photo-bg .contact-list, .contact-photo-bg .contact-list a { color: #fff; }
.contact-photo-bg h2 span { color: #9FD2F2; }
.contact-photo-bg .contact-list { border-color: rgba(255,255,255,.2); }
.contact-photo-bg .contact-list a:hover { color: #9FD2F2; }
.contact-photo-bg .contact-list svg.text-brand-blue { color: #9FD2F2; }
.contact-photo-bg .contact-list svg.text-green-600 { color: #4ADE80; }

/* Body paragraphs are justified so both edges line up; centred paragraphs keep a centred last line */
#main p { text-align: justify; -webkit-hyphens: manual; hyphens: manual; }
#main .text-center p, #main p.text-center { text-align-last: center; }
/* Hero and page banners keep their own alignment (centred on phones, left on desktop) */
#main [aria-roledescription="carousel"] p, #main section[class="relative overflow-hidden pt-20"] p { text-align: inherit; text-align-last: auto; }
/* Contact details panel: slightly bolder description and contact lines */
.contact-photo-bg p.mt-5, .contact-photo-bg .contact-list { font-weight: 500; }

/* Premium hotel stays: cards on the left, text panel on the right (panel first on phones) */
.hotels-panel { display: grid; gap: 2rem; padding: 1.5rem; border-radius: 2rem; background: linear-gradient(135deg, #F5FBFD, #E8F3FA); border: 1px solid rgba(27,127,191,.12); }
@media (min-width: 640px) { .hotels-panel { padding: 2rem; } }
@media (min-width: 1024px) { .hotels-panel { grid-template-columns: minmax(0, 1fr) 20rem; align-items: center; gap: 2.5rem; padding: 2.5rem; } .hotels-track { order: -1; } }
.hotels-actions { display: flex; margin-top: 1.75rem; flex-wrap: wrap; align-items: center; gap: 1rem; }
.hotels-arrows { display: flex; gap: .5rem; }
.hotels-arrows button { display: flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border-radius: 50%; background: #fff; color: #1A6DA8; box-shadow: 0 4px 14px -6px rgba(23,82,125,.45); transition: background-color .25s ease, color .25s ease; }
.hotels-arrows button:hover { background: #F47B20; color: #fff; }
.hotels-arrows svg { width: 1.1rem; height: 1.1rem; }
.hotels-track { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: .25rem 0 1rem; }
.hotel-card { display: flex; flex: 0 0 80%; flex-direction: column; overflow: hidden; scroll-snap-align: start; border-radius: 1.25rem; background: #fff; box-shadow: 0 8px 26px -14px rgba(23,82,125,.4); transition: transform .4s ease, box-shadow .4s ease; }
@media (min-width: 640px) { .hotel-card { flex-basis: calc((100% - 1rem) / 2); } }
@media (min-width: 1024px) { .hotel-card { flex-basis: calc((100% - 2rem) / 3); } }
.hotel-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px -18px rgba(23,82,125,.55); }
.hotel-card-img { aspect-ratio: 1.3 / 1; overflow: hidden; }
.hotel-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.hotel-card:hover .hotel-card-img img { transform: scale(1.06); }
.hotel-card-body { display: flex; flex: 1 1 auto; flex-direction: column; padding: .9rem 1rem 1.1rem; }
.hotel-card-meta { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.hotel-card-loc { display: inline-flex; align-items: center; gap: .3rem; font-size: .72rem; font-weight: 500; color: #5A6472; }
.hotel-card-loc svg { width: .9rem; height: .9rem; color: #F47B20; }
.hotel-card-stars { display: inline-flex; gap: 1px; color: #F5A524; }
.hotel-card-stars svg { width: .8rem; height: .8rem; }
.hotel-card-name { margin-top: .45rem; font-size: 1rem; font-weight: 700; line-height: 1.3; color: #1A1A2E; }
.hotel-card-features { display: flex; margin-top: auto; padding-top: .8rem; flex-wrap: wrap; gap: .4rem; }
.hotel-card-features li { display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .55rem; border-radius: 999px; background: #F0F6FA; font-size: .68rem; font-weight: 500; color: #1A6DA8; }
.hotel-card-features svg { width: .85rem; height: .85rem; }

/* Why Beyond Journey: five centred cards in a row, circle icon, dotted corner, blue bottom edge */
.why-grid { display: grid; gap: 1.1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .why-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.why-card { position: relative; display: flex; height: 100%; flex-direction: column; align-items: center; padding: 2.25rem 1.25rem 2rem; overflow: hidden; border: 1px solid #E3EDF4; border-bottom: 4px solid #1B7FBF; border-radius: 1.25rem; background: #fff; text-align: center; box-shadow: 0 10px 30px -16px rgba(8,40,66,.45); transition: transform .35s ease, box-shadow .35s ease; }
.why-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px -18px rgba(8,40,66,.55); }
.why-card-dots { position: absolute; top: 1.1rem; right: 1.1rem; width: 1.75rem; height: 1.75rem; background-image: radial-gradient(circle, rgba(27,127,191,.45) 1.3px, transparent 1.6px); background-size: .58rem .58rem; pointer-events: none; }
.why-card-icon { display: flex; width: 3.75rem; height: 3.75rem; align-items: center; justify-content: center; border: 1.5px solid #1B7FBF; border-radius: 50%; background: #F2F8FC; color: #1B7FBF; transition: background-color .35s ease, color .35s ease; }
.why-card:hover .why-card-icon { background: #1B7FBF; color: #fff; }
.why-card-icon svg { width: 1.6rem; height: 1.6rem; }
.why-card-title { margin-top: 1.6rem; font-size: 1.1rem; font-weight: 700; line-height: 1.3; color: #1A1A2E; }
.why-card-line { display: block; width: 2.25rem; height: 2px; margin: 1.1rem auto; border-radius: 2px; background: #1B7FBF; }
#main .why-card-text, .why-card-text { font-size: .875rem; line-height: 1.6; color: #5A6472; text-align: center; text-align-last: center; }

/* Contact form (Contact section only): icon header, labels above taller rounded fields, arrow button */
.cf-v2 { border-radius: 1.25rem; box-shadow: 0 14px 40px -24px rgba(23,82,125,.45); }
.cf-head { display: flex; align-items: center; gap: .85rem; padding-bottom: 1.1rem; margin-bottom: 1.25rem; border-bottom: 1px solid rgba(27,127,191,.15); }
.cf-head-icon { display: flex; width: 2.9rem; height: 2.9rem; flex-shrink: 0; align-items: center; justify-content: center; border-radius: .9rem; background: linear-gradient(135deg, #1B7FBF, #145F8F); color: #fff; box-shadow: 0 8px 18px -8px rgba(27,127,191,.6); }
.cf-head-icon svg { width: 1.35rem; height: 1.35rem; }
.cf-head-title { font-size: 1.2rem; font-weight: 700; line-height: 1.2; color: #1A1A2E; }
#main .cf-head-sub, .cf-head-sub { margin-top: .2rem; font-size: .8rem; line-height: 1.4; color: #5A6472; text-align: left; text-align-last: auto; }
.cf-v2 label { margin-bottom: .4rem; font-size: .8rem; font-weight: 600; }
.cf-v2 input:not([type=hidden]), .cf-v2 textarea { padding: .8rem 1rem; border-radius: .75rem; border-color: #DCE6EE; background: #F7FAFC; font-size: .875rem; }
.cf-v2 input:not([type=hidden]) { height: 3rem; }
.cf-v2 input:focus, .cf-v2 textarea:focus { background: #fff; }
.cf-v2 .contact-msg textarea { min-height: 6rem; }
.cf-v2 form > * + * { margin-top: .95rem; }
.cf-btn { display: flex; width: 100%; align-items: center; justify-content: center; gap: .75rem; min-height: 3.25rem; margin-top: 1.25rem; padding: .7rem 1.5rem; border-radius: .75rem; background: #F47B20; color: #fff; font-size: .95rem; font-weight: 600; transition: background-color .3s ease, box-shadow .3s ease; }
.cf-btn:hover { background: #D9661A; box-shadow: 0 12px 24px -12px rgba(244,123,32,.7); }
.cf-btn:disabled { cursor: wait; opacity: .6; }
.cf-btn-arrow { display: flex; width: 1.8rem; height: 1.8rem; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.25); transition: transform .3s ease; }
.cf-btn:hover .cf-btn-arrow { transform: translateX(3px); }
.cf-btn-arrow svg { width: 1rem; height: 1rem; }

/* About photo: runs to the right edge of the page, with a wavy left side and wavy bottom */
.about-sec { overflow-x: clip; }
.about-bleed { margin-right: -1rem; }
@media (min-width: 640px) { .about-bleed { margin-right: -1.5rem; } }
@media (min-width: 1024px) { .about-bleed { align-self: stretch; margin-top: 3rem; margin-right: calc((100vw - min(100vw, 80rem)) / -2 - 2rem); } }
.about-wave-wrap { height: 100%; filter: drop-shadow(0 22px 28px rgba(23,82,125,.28)); }
.about-wave { height: 100%; min-height: 18rem; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1' preserveAspectRatio='none'%3E%3Cpath d='M0.06,0 H1 V0.92 C0.92,0.88 0.84,0.97 0.74,0.97 C0.64,0.97 0.6,0.9 0.5,0.92 C0.4,0.94 0.34,1 0.27,0.98 C0.2,0.96 0.2,0.86 0.15,0.78 C0.1,0.7 0.04,0.66 0.04,0.55 C0.04,0.42 0.08,0.34 0.05,0.24 C0.02,0.14 0,0.06 0.06,0 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1' preserveAspectRatio='none'%3E%3Cpath d='M0.06,0 H1 V0.92 C0.92,0.88 0.84,0.97 0.74,0.97 C0.64,0.97 0.6,0.9 0.5,0.92 C0.4,0.94 0.34,1 0.27,0.98 C0.2,0.96 0.2,0.86 0.15,0.78 C0.1,0.7 0.04,0.66 0.04,0.55 C0.04,0.42 0.08,0.34 0.05,0.24 C0.02,0.14 0,0.06 0.06,0 Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
@media (min-width: 1024px) { .about-wave { min-height: 30rem; } }
.about-wave img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* DMC photo: a cut-out traveller leaping from a phone, over a soft blue glow */
.dmc-cutout { position: relative; }
.dmc-cutout::before { content: ""; position: absolute; inset: 10% 6% 4% 10%; z-index: 0; border-radius: 50%; background: radial-gradient(closest-side, rgba(27,127,191,.2), rgba(27,127,191,0)); }
.dmc-cutout img { position: relative; z-index: 1; display: block; width: 100%; height: auto; filter: drop-shadow(0 26px 30px rgba(8,40,66,.22)); }
.dmc-cutout .dmc-badge { z-index: 2; right: auto; left: 0; bottom: -.5rem; }

/* Scroll motion: --p runs 0 to 1 as a section passes through the screen (set by the scroll script) */
[data-motion="about"] img { transform: translateY(calc((var(--p, .5) - .5) * -48px)) scale(calc(1.2 - var(--p, .5) * .1)); transform-origin: 60% 50%; will-change: transform; }
[data-motion="leap"] img { transform: translate(calc((.5 - var(--p, .5)) * 110px), calc((var(--p, .5) - .5) * -36px)) rotate(calc((.5 - var(--p, .5)) * 5deg)); will-change: transform; }
[data-motion="leap"]::before { transform: scale(calc(.85 + var(--p, .5) * .3)); }
@media (prefers-reduced-motion: reduce) { [data-motion] img, [data-motion]::before { transform: none !important; } }

/* Inner page banners: brand-blue tint over the photos (the home banner keeps its own overlay) */
.hero-blue { background: linear-gradient(105deg, rgba(12,64,120,.9) 0%, rgba(27,127,191,.74) 42%, rgba(38,150,214,.5) 100%); }
.hero-shade { background: linear-gradient(180deg, rgba(8,30,55,.38) 0%, rgba(8,30,55,0) 40%, rgba(8,30,55,0) 80%, rgba(8,30,55,.25) 100%); }

/* Home banner height: ends just below the text (about three-quarters of the screen) */
.hero-home { min-height: max(72svh, 30rem); }
@media (min-width: 1024px) { .hero-home { min-height: max(74svh, 34rem); } }

/* Quick services bar: a soft light-blue bar overlapping the bottom of the home banner; the services glide past in a loop */
.quick-bar { position: relative; z-index: 20; margin-top: -2.5rem; }
.quick-bar-card { overflow: hidden; padding: .5rem 0; border: 1px solid #D6E8F5; border-radius: 1.1rem; background: #EAF4FB; box-shadow: 0 20px 40px -24px rgba(8,40,66,.45); }
.quick-viewport { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.quick-track { display: flex; width: max-content; animation: quickGlide 32s linear infinite; }
@keyframes quickGlide { to { transform: translateX(-50%); } }
.quick-item { position: relative; display: flex; flex: 0 0 auto; align-items: center; gap: .65rem; padding: .95rem 2.4rem; white-space: nowrap; }
.quick-item + .quick-item::before { content: ""; position: absolute; top: 28%; bottom: 28%; left: 0; width: 1px; background: #CFE3F1; }
.quick-ico { display: flex; width: 2.2rem; height: 2.2rem; flex: none; align-items: center; justify-content: center; border-radius: .65rem; background: #fff; color: #1B7FBF; box-shadow: 0 4px 10px -6px rgba(27,127,191,.5); }
.quick-ico svg { width: 1.15rem; height: 1.15rem; }
.quick-label { font-size: .85rem; font-weight: 600; line-height: 1.2; color: #0F4C7A; }
@media (prefers-reduced-motion: reduce) { .quick-track { animation: none; } .quick-viewport { overflow-x: auto; -webkit-mask-image: none; mask-image: none; } }

/* Footer: four columns with thin dividers on a deep blue gradient; faint Dubai skyline with two planes above it along the bottom */
.site-footer { position: relative; color: #fff; }
.footer-sil { position: relative; z-index: 0; margin-top: -3rem; color: rgba(150,200,240,.13); pointer-events: none; }
@media (min-width: 1024px) { .footer-sil { margin-top: -6.5rem; } }
.footer-sil svg { display: block; width: 100%; height: auto; }
.footer-body { position: relative; overflow: hidden; background: linear-gradient(180deg, #0F4C7A 0%, #0C3F68 55%, #0A3356 100%); }
.footer-body::before { content: ""; position: absolute; top: -8rem; right: -10rem; width: 26rem; height: 26rem; border-radius: 50%; background: radial-gradient(closest-side, rgba(244,123,32,.14), rgba(244,123,32,0)); pointer-events: none; }
.footer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem 1.5rem; }
.footer-grid > :first-child, .footer-grid > :last-child { grid-column: 1 / -1; }
@media (min-width: 1024px) {
  .footer-grid { grid-template-columns: 1.35fr 1fr 1.1fr 1.3fr; gap: 0; }
  .footer-grid > * { grid-column: auto !important; padding: 0 2rem; }
  .footer-grid > :first-child { padding-left: 0; }
  .footer-grid > :last-child { padding-right: 0; }
  .footer-grid > * + * { border-left: 1px solid rgba(255,255,255,.12); }
}
.footer-inner { padding-top: 3rem; padding-bottom: 1.5rem; }
@media (min-width: 1024px) { .footer-inner { padding-top: 3.75rem; padding-bottom: 2rem; } }
.footer-h { font-size: 1.05rem; font-weight: 700; color: #fff; }
.footer-h::after { content: ""; display: block; width: 2.25rem; height: 3px; margin-top: .6rem; border-radius: 3px; background: #F47B20; }
.footer-about { max-width: 21rem; margin-top: 1rem; font-size: .875rem; line-height: 1.65; color: rgba(255,255,255,.8); }
.footer-social { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.footer-social a { display: flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: transparent; color: #fff; box-shadow: none; transition: background-color .25s ease, border-color .25s ease; }
.footer-social a:hover, .footer-social a:focus-visible { border-color: #F47B20; background: #F47B20; color: #fff; }
.footer-social svg { width: 1rem; height: 1rem; }
.footer-list { display: grid; gap: .55rem; margin-top: 1.1rem; }
.footer-contact { display: grid; gap: .75rem; margin-top: 1.1rem; }
.footer-contact a, .footer-contact .footer-row { display: flex; align-items: center; gap: .8rem; font-size: .875rem; color: rgba(255,255,255,.88); transition: color .2s ease; }
.footer-contact a:hover, .footer-contact a:focus-visible { color: #fff; }
.footer-ci { display: flex; width: 2.4rem; height: 2.4rem; flex: none; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; transition: border-color .25s ease, background-color .25s ease; }
.footer-contact a:hover .footer-ci { border-color: #F47B20; background: #F47B20; }
.footer-ci svg { width: 1rem; height: 1rem; }
.footer-bottom { position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.12); }
.footer-bottom a { transition: color .2s ease; }
.footer-bottom a:hover { color: #F9A15A; }

/* Inbound slides in from the left and Outbound from the right as the section scrolls into view */
.inbound-sec { overflow-x: clip; }
.slide-left.aos-hidden, .slide-right.aos-hidden { transition: opacity .8s ease, transform .9s cubic-bezier(.22,1,.36,1); }
.slide-left.aos-hidden { transform: translateX(-90px); }
.slide-right.aos-hidden { transform: translateX(90px); }
.slide-left.aos-visible, .slide-right.aos-visible { transform: none; }
@media (prefers-reduced-motion: reduce) { .slide-left.aos-hidden, .slide-right.aos-hidden { transform: none; } }

/* Construction-style reveal: photos build in strip by strip, section headings rise up from behind a line */
.build-strips { position: absolute; inset: 0; z-index: 5; display: flex; pointer-events: none; }
.build-strips i { flex: 1 1 0; margin-right: -1px; background: var(--build-bg, #fff); transform-origin: top; transition: transform .75s cubic-bezier(.7,0,.25,1); transition-delay: calc(var(--i, 0) * 75ms + 80ms); }
.is-built > .build-strips i { transform: scaleY(0); }
.aos > h2 { transition: clip-path .9s cubic-bezier(.7,0,.25,1) .1s, transform .9s cubic-bezier(.22,1,.36,1) .1s; }
.aos-hidden > h2 { clip-path: inset(0 -5% 100% -5%); transform: translateY(45%); }
.aos-visible > h2 { clip-path: inset(-15% -5% -25% -5%); transform: none; }
@media (prefers-reduced-motion: reduce) { .build-strips { display: none; } .aos-hidden > h2 { clip-path: none; transform: none; } }

/* Minimal footer: same content, lighter look (no dividers, accent lines or icon circles; smaller type, tighter spacing) */
.footer-body::before { display: none; }
.footer-inner { padding-top: 2.75rem; padding-bottom: 1.25rem; }
@media (min-width: 1024px) {
  .footer-inner { padding-top: 3rem; padding-bottom: 1.5rem; }
  .footer-grid { gap: 2.5rem; }
  .footer-grid > * { padding: 0; }
  .footer-grid > * + * { border-left: 0; }
}
.footer-logo-img { height: 2.75rem; }
.footer-about { margin-top: .75rem; font-size: .8rem; line-height: 1.6; color: rgba(255,255,255,.7); }
.footer-h { font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.95); }
.footer-h::after { display: none; }
.footer-list { gap: .4rem; margin-top: .9rem; }
.footer-list a { font-size: .82rem; color: rgba(255,255,255,.72); }
.footer-list a:hover { color: #fff; }
.footer-contact { gap: .55rem; margin-top: .9rem; }
.footer-contact a, .footer-contact .footer-row { gap: .55rem; font-size: .82rem; color: rgba(255,255,255,.72); }
.footer-ci { width: auto; height: auto; border: 0; border-radius: 0; color: rgba(255,255,255,.55); }
.footer-contact a:hover .footer-ci { border: 0; background: none; color: #F9A15A; }
.footer-ci svg { width: .95rem; height: .95rem; }
.footer-social { gap: .45rem; margin-top: 1rem; }
.footer-social a { width: 2rem; height: 2rem; border-color: rgba(255,255,255,.2); }
.footer-social svg { width: .85rem; height: .85rem; }
.footer-sil { position: absolute; right: 0; bottom: 3.2rem; left: 0; margin: 0; color: rgba(150,200,240,.1); }
.footer-list a svg { display: none; }
.footer-inner { padding-bottom: 2.5rem; }
.footer-bottom p { font-size: .72rem; }

/* DMC page partner card: two matching rows, each with an icon tile, title and left-aligned text */
.pcard { overflow: hidden; border-radius: 1.25rem; background: #fff; box-shadow: 0 14px 36px -20px rgba(23,82,125,.5); border: 1px solid rgba(27,127,191,.15); }
.pcard-row { display: flex; align-items: flex-start; gap: 1rem; padding: 1.4rem 1.5rem; }
.pcard-row + .pcard-row { border-top: 1px solid #E6EEF4; }
.pcard-ico { display: flex; width: 2.75rem; height: 2.75rem; flex: none; align-items: center; justify-content: center; border-radius: .8rem; background: #EAF4FB; color: #1B7FBF; }
.pcard-row:nth-child(2) .pcard-ico { background: #FEEEE2; color: #E0691A; }
.pcard-ico svg { width: 1.35rem; height: 1.35rem; }
.pcard-title { font-size: 1rem; font-weight: 700; line-height: 1.3; color: #1A1A2E; }
#main .pcard-text, .pcard-text { margin-top: .35rem; font-size: .875rem; line-height: 1.6; color: #5A6472; text-align: left; text-align-last: auto; hyphens: manual; }

/* Inbound & Outbound cards: simple (tag, title, one line, link), shorter, left-aligned text */
.inb-body { min-height: 18rem; }
@media (min-width: 640px) { .inb-body { min-height: 20rem; } }
@media (min-width: 1024px) { .inb-body { min-height: 21rem; } }
#main .inb-text, .inb-text { text-align: left; text-align-last: auto; }
/* Same description height in both cards so tags, titles, text and links line up side by side */
@media (min-width: 768px) { .inb-text { min-height: 4.875em; } }
