/* ==========================================================
   Buddha Angkor Travel -- public site styles
   House style: one rule per line.
   Colours: the original site blues (#3B79C9 logo blue, #184C91,
   #01213C) + Nepal crimson (flag / rhododendron) as the accent,
   and the five prayer-flag colours as a decorative stripe.
   Spacing: 8px scale; sections 104 / 72 / 56px.
   ========================================================== */

/* TOKENS */
:root { --brand:#3B79C9; --brand-d:#184C91; --brand-l:#60B0F8; --brand-soft:#EAF2FC; --navy:#01213C; --navy-2:#0B2F52; --ink:#14263A; --muted:#5E6B7A; --line:#E4E9F0; --bg:#FFFFFF; --bg-2:#F5F8FC; --sand:#FBF7F1; --red:#C8102E; --red-d:#A50D25; --gold:#F2B33D; --ok:#1F9D63; --err:#D64545; --radius:22px; --radius-sm:14px; --shadow:0 24px 60px -24px rgba(1,33,60,.35); --shadow-sm:0 10px 30px -14px rgba(1,33,60,.25); --ease:cubic-bezier(.2,.7,.2,1); --serif:"Playfair Display", Georgia, serif; --sans:"Poppins", system-ui, -apple-system, "Segoe UI", sans-serif; --head:"Montserrat", var(--sans); --sec:104px; --gut:24px; }

/* BASE */
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; overflow-x:clip; }
/* No pinch / double-tap zoom (site owner's choice). Scrolling still works. */
html, body { touch-action:pan-x pan-y; }
body { margin:0; font-family:var(--sans); font-size:16px; line-height:1.75; color:var(--ink); background:var(--bg); overflow-x:clip; }
@supports not (overflow:clip) { html, body { overflow-x:hidden; } }
iframe, video, embed, object, table { max-width:100%; }
body.menu-open { overflow:hidden; }
img { display:block; max-width:100%; height:auto; }
picture { display:contents; }
a { color:var(--brand-d); text-decoration:none; transition:color .25s; }
a:hover { color:var(--brand); }
h1, h2, h3, h4 { margin:0 0 .5em; line-height:1.18; color:var(--navy); font-family:var(--head); font-weight:700; letter-spacing:-.01em; }
p { margin:0 0 1em; }
ul { margin:0; padding:0; list-style:none; }
button { font:inherit; color:inherit; }
:focus-visible { outline:3px solid var(--brand-l); outline-offset:3px; border-radius:6px; }
[hidden] { display:none !important; }
section[id] { scroll-margin-top:90px; }
.container { width:100%; max-width:1240px; margin:0 auto; padding:0 var(--gut); }
.center { text-align:center; margin-top:48px; }
.ic { width:1.15em; height:1.15em; flex:none; vertical-align:-.2em; }
.skip-link { position:absolute; left:-999px; top:8px; z-index:300; background:var(--navy); color:#fff; padding:10px 16px; border-radius:8px; }
.skip-link:focus { left:12px; color:#fff; }
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* PRAYER-FLAG STRIPE (blue, white, red, green, yellow) */
.flags { display:flex; height:5px; }
.flags span { flex:1; }
.flags span:nth-child(5n+1) { background:#1F5FBF; }
.flags span:nth-child(5n+2) { background:#F4F4F4; }
.flags span:nth-child(5n+3) { background:#C8102E; }
.flags span:nth-child(5n+4) { background:#1E9E5A; }
.flags span:nth-child(5n+5) { background:#F2B33D; }

/* TYPE HELPERS */
.kicker { display:inline-flex; align-items:center; gap:10px; margin:0 0 14px; font-family:var(--head); font-size:12.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--red); }
.kicker::before { content:""; width:26px; height:2px; background:currentColor; border-radius:2px; }
.kicker-light { color:var(--gold); }
.title { font-family:var(--serif); font-weight:700; font-size:clamp(30px, 4vw, 48px); letter-spacing:-.015em; }
.lead { font-size:17px; color:var(--muted); }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:0 28px; border:2px solid transparent; border-radius:999px; font-family:var(--head); font-weight:700; font-size:14.5px; letter-spacing:.01em; cursor:pointer; transition:transform .3s var(--ease), background .3s, color .3s, box-shadow .3s, border-color .3s; white-space:nowrap; text-align:center; }
.btn .ic { transition:transform .3s var(--ease); }
.btn:hover .ic { transform:translateX(3px); }
.btn:active { transform:scale(.97); }
.btn-lg { min-height:58px; padding:0 34px; font-size:15.5px; }
.btn-block { width:100%; }
.btn-primary { background:var(--brand); color:#fff; box-shadow:0 12px 26px -12px rgba(59,121,201,.8); }
.btn-primary:hover { background:var(--brand-d); color:#fff; transform:translateY(-2px); }
.btn-red { background:var(--red); color:#fff; box-shadow:0 12px 26px -12px rgba(200,16,46,.75); }
.btn-red:hover { background:var(--red-d); color:#fff; transform:translateY(-2px); }
.btn-outline { border-color:var(--navy); color:var(--navy); background:transparent; }
.btn-outline:hover { background:var(--navy); color:#fff; }
.btn-glass { border-color:rgba(255,255,255,.55); color:#fff; background:rgba(255,255,255,.1); }
.btn-glass:hover { background:#fff; color:var(--navy); border-color:#fff; }
.btn-white { background:#fff; color:var(--navy); }
.btn-white:hover { background:var(--brand-soft); color:var(--navy); transform:translateY(-2px); }
.btn[disabled], .is-loading .btn[type=submit] { opacity:.7; pointer-events:none; }
.link-arrow { display:inline-flex; align-items:center; gap:6px; font-family:var(--head); font-weight:700; font-size:14px; color:var(--brand-d); }
.link-arrow .ic { transition:transform .3s var(--ease); }
.link-arrow:hover .ic { transform:translateX(4px); }

/* ==========================================================
   HEADER
   Note: no transform / filter / backdrop-filter on .site-header,
   so nothing inside it gets trapped (that broke the old menu).
   ========================================================== */
.site-header { position:fixed; inset:0 0 auto; z-index:100; color:#fff; transition:background .35s, box-shadow .35s, color .35s; }
.topbar { background:rgba(1,33,60,.55); font-size:13px; transition:margin-top .35s var(--ease); }
.topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; height:40px; }
.topbar p { margin:0; display:flex; align-items:center; gap:8px; opacity:.85; }
.topbar-links { display:flex; align-items:center; gap:22px; }
.topbar a { color:#fff; display:inline-flex; align-items:center; gap:7px; opacity:.88; }
.topbar a:hover { opacity:1; color:var(--gold); }
.nav-bar { display:flex; align-items:center; gap:28px; height:104px; transition:height .35s var(--ease); }
/* Logo sized by HEIGHT so any uploaded logo shape fits; width follows. */
.brand { position:relative; flex:none; display:block; line-height:0; }
.brand img { height:68px; width:auto; max-width:300px; object-fit:contain; transition:opacity .3s, height .35s var(--ease); }
.brand-dark { position:absolute; left:0; top:0; opacity:0; }
.main-nav { margin-left:auto; display:flex; align-items:center; gap:2px; }
.main-nav > a, .nav-drop > a { position:relative; display:block; padding:10px 14px; color:inherit; font-family:var(--head); font-weight:600; font-size:14.5px; }
.main-nav > a::after, .nav-drop > a::after { content:""; position:absolute; left:14px; right:14px; bottom:3px; height:2px; background:var(--red); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.main-nav > a:hover::after, .main-nav > a[aria-current]::after, .nav-drop:hover > a::after, .nav-drop > a[aria-current]::after { transform:scaleX(1); }
.main-nav a:hover { color:inherit; }
.nav-drop { position:relative; }
.nav-drop > a { padding-right:30px; }
.nav-drop > a .ic { position:absolute; right:10px; top:50%; width:15px; height:15px; margin-top:-7px; transition:transform .3s; }
.nav-drop:hover > a .ic { transform:rotate(180deg); }
.drop { position:absolute; top:100%; left:0; min-width:240px; padding:12px; background:#fff; border-radius:18px; box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(12px); transition:all .3s var(--ease); }
.nav-drop:hover .drop, .nav-drop:focus-within .drop { opacity:1; visibility:visible; transform:translateY(4px); }
.drop a { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 14px; border-radius:10px; color:var(--ink); font-size:14.5px; font-weight:500; }
.drop a:hover { background:var(--brand-soft); color:var(--brand-d); }
.drop .drop-all { margin-top:6px; border-top:1px solid var(--line); border-radius:0 0 10px 10px; padding-top:12px; font-weight:700; color:var(--brand-d); }
.nav-actions { display:flex; align-items:center; gap:12px; }
.nav-cta { min-height:46px; padding:0 24px; }
.icon-btn { display:none; place-items:center; width:46px; height:46px; border:0; border-radius:50%; background:rgba(255,255,255,.14); color:inherit; cursor:pointer; }
.icon-btn .ic { width:21px; height:21px; }
.site-header.is-solid { background:#fff; color:var(--ink); box-shadow:0 10px 30px -18px rgba(1,33,60,.45); }
.site-header.is-solid .topbar { margin-top:-40px; }
.site-header.is-solid .nav-bar { height:80px; }
.site-header.is-solid .brand img { height:54px; }
.site-header.is-solid .brand-light { opacity:0; }
.site-header.is-solid .brand-dark { opacity:1; }
.site-header.is-solid .icon-btn { background:var(--brand-soft); color:var(--brand-d); }

/* SCROLL PROGRESS (fills while scrolling down, empties going up) */
.scroll-progress { position:absolute; left:0; right:0; top:100%; height:4px; pointer-events:none; }
.scroll-progress span { display:block; height:100%; background:linear-gradient(90deg, #1F5FBF 0 20%, #F4F4F4 20% 40%, #C8102E 40% 60%, #1E9E5A 60% 80%, #F2B33D 80% 100%); clip-path:inset(0 calc(100% - var(--p, 0%)) 0 0); transition:clip-path .12s linear; }

/* MOBILE MENU (full screen, outside the header) */
.mnav { position:fixed; inset:0; z-index:200; display:flex; flex-direction:column; background:var(--navy); color:#fff; visibility:hidden; opacity:0; transform:translateY(-12px); transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s; overflow-y:auto; overscroll-behavior:contain; }
.menu-open .mnav { visibility:visible; opacity:1; transform:none; }
.mnav-top { display:flex; align-items:center; justify-content:space-between; padding:16px var(--gut); border-bottom:1px solid rgba(255,255,255,.1); }
.mnav-top img { height:46px; width:auto; max-width:220px; }
.mnav-close { display:grid; place-items:center; width:46px; height:46px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; cursor:pointer; }
.mnav-close .ic { width:22px; height:22px; }
.mnav-links { flex:1; padding:10px var(--gut) 20px; }
.mnav-links > a, .mnav-links summary { display:flex; align-items:center; justify-content:space-between; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.1); color:#fff; font-family:var(--head); font-size:19px; font-weight:600; cursor:pointer; list-style:none; }
.mnav-links summary::-webkit-details-marker { display:none; }
.mnav-links summary .ic { transition:transform .3s; }
.mnav-links details[open] summary .ic { transform:rotate(180deg); }
.mnav-links details div { display:grid; gap:2px; padding:8px 0 14px 14px; border-bottom:1px solid rgba(255,255,255,.1); }
.mnav-links details a { padding:8px 0; color:rgba(255,255,255,.78); font-size:16px; }
.mnav-links a[aria-current] { color:var(--gold); }
.mnav-foot { display:grid; gap:12px; padding:20px var(--gut) 28px; background:rgba(255,255,255,.04); }
.mnav-foot .btn { width:100%; }
.mnav-foot p { margin:4px 0 0; font-size:13px; color:rgba(255,255,255,.65); text-align:center; }

/* FLASH */
.flash { position:fixed; top:100px; left:50%; z-index:250; transform:translateX(-50%); width:min(560px, calc(100% - 32px)); animation:flashIn .5s var(--ease); }
.flash .container { display:flex; align-items:center; gap:12px; padding:16px 20px; border-radius:16px; color:#fff; box-shadow:var(--shadow); font-weight:500; }
.flash-success .container { background:var(--ok); }
.flash-error .container { background:var(--err); }
.flash.hide { opacity:0; transform:translate(-50%, -20px); transition:.4s; }
@keyframes flashIn { from { opacity:0; transform:translate(-50%, -20px); } }

/* ==========================================================
   HERO (home)
   ========================================================== */
.hero { position:relative; display:flex; align-items:center; min-height:100vh; min-height:100svh; max-height:980px; color:#fff; overflow:hidden; background:var(--navy); }
.hero-slides, .hero-slide, .hero-shade { position:absolute; inset:0; }
.hero-slide { opacity:0; transition:opacity 1.6s ease; }
.hero-slide.is-active { opacity:1; }
.hero-slide img { width:100%; height:100%; object-fit:cover; transform:scale(1.12); }
.hero-slide.is-active img { animation:kenburns 9s ease-out forwards; }
@keyframes kenburns { from { transform:scale(1.12); } to { transform:scale(1); } }
.hero-shade { background:linear-gradient(95deg, rgba(1,25,46,.9) 0%, rgba(1,25,46,.6) 42%, rgba(1,25,46,.12) 100%), linear-gradient(0deg, rgba(1,25,46,.7), transparent 45%); }
.hero-inner { position:relative; width:100%; padding-top:190px; padding-bottom:190px; }
.hero h1 { color:#fff; font-family:var(--serif); font-size:clamp(40px, 6.4vw, 82px); line-height:1.06; max-width:780px; margin-bottom:24px; }
.hero h1 em { font-style:italic; color:var(--gold); }
.hero-text { max-width:580px; font-size:clamp(16px, 1.5vw, 18.5px); color:rgba(255,255,255,.88); margin-bottom:36px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; }
.hero-badges { display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:44px; font-size:14px; color:rgba(255,255,255,.85); }
.hero-badges span { display:inline-flex; align-items:center; gap:8px; }
.hero-badges .ic { color:var(--gold); }
.hero-anim { opacity:0; transform:translateY(28px); animation:rise .9s var(--ease) forwards; }
.hero-anim:nth-child(2) { animation-delay:.12s; }
.hero-anim:nth-child(3) { animation-delay:.24s; }
.hero-anim:nth-child(4) { animation-delay:.36s; }
.hero-anim:nth-child(5) { animation-delay:.48s; }
@keyframes rise { to { opacity:1; transform:none; } }
.hero-dots { position:absolute; right:var(--gut); bottom:140px; display:flex; flex-direction:column; gap:10px; }
.hero-dots button { width:10px; height:10px; padding:0; border:0; border-radius:10px; background:rgba(255,255,255,.45); cursor:pointer; transition:height .35s var(--ease), background .35s; }
.hero-dots button.is-active { height:30px; background:var(--gold); }
.hero-place { position:absolute; right:calc(var(--gut) + 30px); bottom:132px; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.75); writing-mode:vertical-rl; transform:rotate(180deg); }

/* SEARCH CARD */
.search-wrap { position:relative; z-index:5; margin-top:-104px; }
.search-card { background:#fff; border-radius:26px; box-shadow:var(--shadow); padding:8px 28px 28px; }
.search-tabs { display:flex; gap:6px; border-bottom:1px solid var(--line); margin:0 0 24px; }
.search-tabs button { display:inline-flex; align-items:center; gap:9px; padding:18px 18px 16px; background:none; border:0; border-bottom:3px solid transparent; margin-bottom:-1px; color:var(--muted); font-family:var(--head); font-weight:700; font-size:14.5px; cursor:pointer; transition:.25s; }
.search-tabs button[aria-selected=true] { color:var(--navy); border-color:var(--red); }
.search-form { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)) auto; gap:16px; align-items:end; }
.search-form .btn { min-height:56px; padding:0 34px; }
.tripcom-fallback { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)) auto; gap:16px; align-items:end; }
.tripcom-fallback .btn { min-height:56px; }
.search-note, .affiliate-note { margin:14px 0 0; font-size:13px; color:var(--muted); }
.tripcom-box { min-height:120px; max-width:100%; overflow:hidden; }
.tripcom-box * { max-width:100%; }

/* FORMS */
.field { display:block; min-width:0; }
.field > span { display:flex; align-items:center; gap:7px; margin-bottom:8px; font-family:var(--head); font-size:12.5px; font-weight:700; letter-spacing:.02em; color:var(--navy); }
.field > span .ic { color:var(--red); }
.field input, .field select, .field textarea { width:100%; min-height:54px; padding:12px 16px; border:1.5px solid var(--line); border-radius:14px; background:var(--bg-2); font:inherit; font-size:16px; min-width:0; max-width:100%; color:var(--ink); transition:border-color .25s, box-shadow .25s, background .25s; -webkit-appearance:none; appearance:none; }
.field select { padding-right:42px; background:var(--bg-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235e6b7a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 18px; }
.field textarea { min-height:130px; resize:vertical; }
.field input[type=date] { display:block; min-height:54px; line-height:1.4; }
.field input::-webkit-date-and-time-value { text-align:left; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--brand); background:#fff; box-shadow:0 0 0 4px rgba(59,121,201,.15); }
.form { display:grid; gap:18px; }
.form-row { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
.form-row-3 { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.form-note { margin:0; font-size:13px; color:var(--muted); }
.hp-field { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.radio-row { display:flex; flex-wrap:wrap; gap:10px; }
.radio-row label { position:relative; }
.radio-row input { position:absolute; opacity:0; }
.radio-row span { display:inline-block; padding:10px 20px; border:1.5px solid var(--line); border-radius:999px; cursor:pointer; font-size:14px; font-weight:500; transition:.2s; }
.radio-row input:checked + span { border-color:var(--brand); background:var(--brand-soft); color:var(--brand-d); font-weight:700; }
.radio-row input:focus-visible + span { outline:3px solid var(--brand-l); outline-offset:2px; }

/* SECTIONS */
.section { padding:var(--sec) 0; }
.section-tint { background:var(--bg-2); }
.section-sand { background:var(--sand); }
.section-head { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr); gap:48px; align-items:end; margin-bottom:56px; }
.section-head > p, .section-head > div + p { margin:0; color:var(--muted); }
.section-head .title { margin:0; }
.section-head-center { display:block; text-align:center; max-width:740px; margin-left:auto; margin-right:auto; }
.section-head-center .kicker { justify-content:center; }
.section-head-center .title { margin-bottom:16px; }
.section-head-center p { color:var(--muted); margin:0; }

/* SERVICES */
.services { padding-top:88px; padding-bottom:24px; }
.services-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:24px; }
.service { position:relative; padding:32px 28px; border-radius:var(--radius); border:1px solid var(--line); background:#fff; overflow:hidden; transition:transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.service::after { content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:linear-gradient(90deg, #1F5FBF 0 20%, #F4F4F4 20% 40%, #C8102E 40% 60%, #1E9E5A 60% 80%, #F2B33D 80%); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.service:hover { transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.service:hover::after { transform:scaleX(1); }
.service-icon { display:inline-grid; place-items:center; width:60px; height:60px; margin-bottom:20px; border-radius:18px; background:var(--brand-soft); color:var(--brand-d); transition:background .4s, color .4s, transform .4s var(--ease); }
.service-icon .ic { width:27px; height:27px; }
.service:hover .service-icon { background:var(--brand); color:#fff; transform:rotate(-6deg); }
.service h3 { font-size:18px; }
.service p { margin:0; color:var(--muted); font-size:15px; }

/* SPLIT / ABOUT */
.split { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:88px; align-items:center; }
.split-media { position:relative; padding:0 0 40px 40px; }
.about-frame { position:relative; z-index:1; border-radius:24px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4 / 4.6; }
.about-frame img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.about-frame:hover img { transform:scale(1.05); }
.about-small { position:absolute; z-index:2; left:0; bottom:0; width:46%; border-radius:20px; overflow:hidden; border:6px solid #fff; box-shadow:var(--shadow); aspect-ratio:1; }
.about-small img { width:100%; height:100%; object-fit:cover; }
.about-dots { position:absolute; z-index:0; right:-24px; top:-24px; width:160px; height:160px; background-image:radial-gradient(var(--brand) 1.6px, transparent 1.6px); background-size:16px 16px; opacity:.35; }
.about-badge { position:absolute; z-index:3; right:-18px; bottom:70px; display:flex; align-items:center; gap:14px; padding:16px 22px 16px 16px; background:#fff; border-radius:18px; box-shadow:var(--shadow); animation:float 6s ease-in-out infinite; }
.about-badge strong { display:block; color:var(--navy); font-family:var(--head); }
.about-badge span { font-size:13px; color:var(--muted); line-height:1.4; }
.about-badge-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:var(--red); color:#fff !important; }
@keyframes float { 50% { transform:translateY(-10px); } }
.tick-list { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px 24px; margin:28px 0 32px; }
.tick-list li { display:flex; gap:12px; align-items:flex-start; font-weight:500; font-size:15px; }
.tick-list .ic { color:#fff; background:var(--brand); border-radius:50%; padding:4px; width:22px; height:22px; margin-top:2px; }
.stats { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; margin:0 0 36px; padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stats strong { display:block; font-family:var(--serif); font-size:42px; color:var(--brand-d); line-height:1.1; }
.stats span { font-size:12.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-weight:600; }

/* DESTINATIONS */
.dest-mosaic { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); grid-auto-rows:260px; gap:20px; }
.dest-mosaic .dest-card:nth-child(1) { grid-column:span 2; grid-row:span 2; }
.dest-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); grid-auto-rows:360px; gap:24px; }
.dest-card { position:relative; display:block; border-radius:var(--radius); overflow:hidden; color:#fff; isolation:isolate; background:var(--navy); }
.dest-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.dest-card:hover { color:#fff; }
.dest-card:hover img { transform:scale(1.08); }
.dest-shade { position:absolute; inset:0; background:linear-gradient(180deg, rgba(1,25,46,0) 40%, rgba(1,25,46,.9)); transition:background .5s; }
.dest-card:hover .dest-shade { background:linear-gradient(180deg, rgba(1,25,46,.2) 0%, rgba(1,25,46,.94)); }
.dest-info { position:absolute; left:0; right:0; bottom:0; padding:26px; display:flex; flex-direction:column; gap:4px; }
.dest-country { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.dest-info strong { font-family:var(--serif); font-size:28px; line-height:1.15; font-weight:700; }
.dest-tag { font-size:14px; line-height:1.55; color:rgba(255,255,255,.88); max-height:0; opacity:0; overflow:hidden; transition:opacity .5s, max-height .6s var(--ease); }
.dest-card:hover .dest-tag, .dest-card:focus-visible .dest-tag { opacity:1; max-height:90px; }
.dest-more { display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:13px; font-weight:700; }
.dest-more .ic { transition:transform .3s; }
.dest-card:hover .dest-more .ic { transform:translateX(5px); }

/* PACKAGES */
.pkg-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:28px; }
.pkg-card { display:flex; flex-direction:column; min-width:0; background:#fff; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); transition:transform .45s var(--ease), box-shadow .45s, border-color .45s; }
.pkg-card:hover { transform:translateY(-8px); box-shadow:var(--shadow); border-color:transparent; }
.pkg-media { position:relative; display:block; aspect-ratio:4 / 3; overflow:hidden; background:var(--bg-2); }
.pkg-media img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.pkg-card:hover .pkg-media img { transform:scale(1.07); }
.chip { position:absolute; top:16px; padding:6px 14px; border-radius:999px; font-size:12px; font-weight:700; letter-spacing:.03em; font-family:var(--head); }
.chip-glass { left:16px; background:rgba(255,255,255,.92); color:var(--navy); }
.chip-gold { right:16px; background:var(--red); color:#fff; }
.pkg-body { display:flex; flex-direction:column; flex:1; padding:24px 26px 26px; }
.pkg-loc { display:flex; align-items:center; gap:6px; margin:0 0 8px; font-size:13px; font-weight:600; color:var(--red); }
.pkg-body h3 { font-size:19px; margin-bottom:10px; }
.pkg-body h3 a { color:var(--navy); }
.pkg-body h3 a:hover { color:var(--brand); }
.pkg-summary { font-size:14.5px; color:var(--muted); line-height:1.65; }
.pkg-meta { display:flex; flex-wrap:wrap; gap:8px 16px; margin:auto 0 18px; padding-top:6px; font-size:13px; color:var(--muted); }
.pkg-meta li { display:inline-flex; align-items:center; gap:6px; }
.pkg-meta .ic { color:var(--brand); }
.pkg-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:18px; border-top:1px dashed var(--line); }
.price { margin:0; font-size:13px; color:var(--muted); line-height:1.3; }
.price strong { font-family:var(--head); font-size:23px; color:var(--navy); font-weight:800; }
.price del { color:#9aa7b4; font-size:14px; }
.price .price-request { font-size:16px; }

/* MARQUEE */
.marquee { overflow:hidden; padding:28px 0; background:var(--navy); color:#fff; }
.marquee-track { display:flex; align-items:center; gap:36px; width:max-content; animation:marquee 50s linear infinite; }
.marquee span { font-family:var(--serif); font-size:clamp(24px, 3.2vw, 38px); white-space:nowrap; }
.marquee span:nth-child(4n+1) { -webkit-text-stroke:1px rgba(255,255,255,.7); color:transparent; }
.marquee-dot { color:var(--red); font-size:20px !important; }
.marquee:hover .marquee-track { animation-play-state:paused; }
@keyframes marquee { to { transform:translateX(-50%); } }

/* WHY */
.why-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:24px; }
.why-card { position:relative; padding:36px 28px; border-radius:var(--radius); background:var(--bg-2); overflow:hidden; transition:background .45s, color .45s, transform .45s var(--ease); }
.why-card:hover { background:var(--navy); color:#fff; transform:translateY(-6px); }
.why-card:hover h3 { color:#fff; }
.why-card:hover p { color:rgba(255,255,255,.75); }
.why-num { position:absolute; right:22px; top:14px; font-family:var(--serif); font-size:58px; line-height:1; color:rgba(1,33,60,.07); transition:color .45s; }
.why-card:hover .why-num { color:rgba(255,255,255,.1); }
.why-icon { display:grid; place-items:center; width:56px; height:56px; margin-bottom:22px; border-radius:50%; background:#fff; color:var(--red); box-shadow:var(--shadow-sm); }
.why-card h3 { font-size:18px; }
.why-card p { margin:0; color:var(--muted); font-size:15px; transition:color .45s; }

/* PHOTO BAND (parallax quote) */
.photo-band { position:relative; padding:150px 0; color:#fff; text-align:center; overflow:hidden; background:var(--navy); }
.photo-band img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.about-small picture, .about-small img { width:100%; height:100%; object-fit:cover; }
.photo-band::after { content:""; position:absolute; inset:0; background:rgba(1,25,46,.62); }
.photo-band .container { position:relative; z-index:1; max-width:860px; }
.photo-band h2 { color:#fff; font-family:var(--serif); font-size:clamp(28px, 4.4vw, 52px); }
.photo-band p { color:rgba(255,255,255,.85); font-size:18px; margin-bottom:34px; }

/* TESTIMONIALS */
.testimonials { background:var(--bg-2); }
.slider { position:relative; }
.slider-track { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; padding:6px 2px 12px; }
.slider-track::-webkit-scrollbar { display:none; }
.slider.is-few .slider-track { justify-content:center; }
.slider.is-few .slider-nav { display:none; }
.quote-card { flex:0 0 calc((100% - 48px) / 3); min-width:280px; scroll-snap-align:start; margin:0; padding:36px 32px; border-radius:var(--radius); background:#fff; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:transform .4s var(--ease), box-shadow .4s; }
.quote-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.quote-mark { color:var(--brand-l); }
.quote-mark .ic { width:36px; height:36px; }
.stars { color:var(--gold); letter-spacing:3px; font-size:15px; }
.quote-card blockquote { margin:16px 0 28px; font-size:16.5px; line-height:1.8; flex:1; color:var(--ink); }
.quote-card figcaption { display:flex; align-items:center; gap:14px; padding-top:20px; border-top:1px solid var(--line); }
.quote-card strong { display:block; font-family:var(--head); color:var(--navy); }
.quote-card small { display:block; color:var(--muted); }
.avatar { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; overflow:hidden; flex:none; background:var(--brand); color:#fff; font-family:var(--head); font-weight:700; font-size:18px; }
.avatar img { width:100%; height:100%; object-fit:cover; }
.slider-nav { display:flex; justify-content:center; gap:12px; margin-top:36px; }
.slider-nav button { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; border:1.5px solid var(--line); background:#fff; color:var(--navy); cursor:pointer; transition:.3s; }
.slider-nav button:hover { background:var(--navy); border-color:var(--navy); color:#fff; }

/* GALLERY + LIGHTBOX */
.gallery { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); grid-auto-rows:230px; gap:16px; }
.gallery-item { position:relative; display:block; border-radius:18px; overflow:hidden; background:var(--bg-2); }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.gallery-item::after { content:"+"; position:absolute; inset:0; display:grid; place-items:center; font-size:46px; font-weight:300; color:#fff; background:rgba(1,33,60,.45); opacity:0; transition:opacity .4s; }
.gallery-item:hover img { transform:scale(1.08); }
.gallery-item:hover::after { opacity:1; }
.g-big { grid-column:span 2; grid-row:span 2; }
.lightbox { position:fixed; inset:0; z-index:300; display:grid; place-items:center; padding:24px; background:rgba(1,15,28,.94); opacity:0; animation:fadeIn .3s forwards; }
.lightbox img { max-width:min(1200px, 100%); max-height:82vh; width:auto; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lightbox p { color:#fff; text-align:center; margin:14px 0 0; }
.lightbox button { position:absolute; display:grid; place-items:center; width:50px; height:50px; border:0; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; font-size:22px; cursor:pointer; }
.lightbox button:hover { background:#fff; color:var(--navy); }
.lb-close { top:20px; right:20px; }
.lb-prev { left:20px; top:50%; }
.lb-next { right:20px; top:50%; }
@keyframes fadeIn { to { opacity:1; } }

/* FLIGHT CTA */
.flight-cta { position:relative; overflow:hidden; padding:var(--sec) 0; background:linear-gradient(120deg, var(--brand-d), var(--brand) 60%, var(--brand-l)); color:#fff; }
.flight-cta .title { color:#fff; }
.flight-cta p { max-width:560px; color:rgba(255,255,255,.9); margin-bottom:32px; }
.flight-cta-inner { position:relative; display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr); gap:40px; align-items:center; }
.cloud { position:absolute; background:#fff; border-radius:999px; opacity:.13; animation:drift linear infinite; }
.cloud::before { content:""; position:absolute; background:inherit; border-radius:50%; }
.c1 { width:220px; height:60px; top:18%; animation-duration:38s; }
.c1::before { width:100px; height:100px; top:-50px; left:40px; }
.c2 { width:300px; height:80px; top:62%; animation-duration:55s; animation-delay:-20s; }
.c2::before { width:140px; height:140px; top:-70px; left:70px; }
.c3 { width:160px; height:44px; top:38%; animation-duration:30s; animation-delay:-12s; }
.c3::before { width:70px; height:70px; top:-34px; left:30px; }
@keyframes drift { from { transform:translateX(-340px); } to { transform:translateX(110vw); } }
.plane-art { position:relative; height:260px; }
.plane-path { position:absolute; inset:20px 10px; border:2px dashed rgba(255,255,255,.5); border-radius:50%; border-left-color:transparent; border-bottom-color:transparent; transform:rotate(-20deg); }
.plane-icon { position:absolute; right:12%; top:6%; display:grid; place-items:center; width:116px; height:116px; border-radius:50%; background:#fff; color:var(--brand-d); box-shadow:0 30px 60px -20px rgba(0,0,0,.4); animation:float 5s ease-in-out infinite; }
.plane-icon .ic { width:54px; height:54px; }

/* ==========================================================
   FOOTER
   ========================================================== */
.footer-cta { padding:0 0 0; background:linear-gradient(180deg, var(--bg) 50%, var(--navy) 50%); }
.footer-cta-inner { position:relative; display:flex; align-items:center; justify-content:space-between; gap:40px; padding:56px 60px; border-radius:28px; overflow:hidden; color:#fff; background:var(--red); box-shadow:var(--shadow); isolation:isolate; }
.footer-cta-inner::before { content:""; position:absolute; z-index:-1; right:-60px; top:-80px; width:320px; height:320px; border-radius:50%; background:rgba(255,255,255,.08); }
.footer-cta-inner::after { content:""; position:absolute; z-index:-1; right:140px; bottom:-120px; width:240px; height:240px; border-radius:50%; background:rgba(255,255,255,.06); }
.footer-cta h2 { color:#fff; font-family:var(--serif); font-size:clamp(26px, 3.2vw, 40px); margin-bottom:8px; }
.footer-cta p { margin:0; color:rgba(255,255,255,.88); }
.footer-cta-actions { display:flex; flex-wrap:wrap; gap:14px; flex:none; }
.site-footer { position:relative; background:var(--navy); color:rgba(255,255,255,.7); font-size:15px; }
.footer-mtn { display:block; width:100%; height:90px; margin-top:-1px; color:var(--navy-2); opacity:.9; }
.site-footer a { color:rgba(255,255,255,.78); }
.site-footer a:hover { color:#fff; }
.footer-grid { display:grid; grid-template-columns:minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.4fr); gap:48px; padding-top:40px; padding-bottom:64px; }
.footer-brand img { height:64px; width:auto; max-width:100%; margin-bottom:20px; }
.footer-brand p { max-width:340px; }
.site-footer h3 { position:relative; color:#fff; font-size:16px; margin-bottom:24px; padding-bottom:12px; }
.site-footer h3::after { content:""; position:absolute; left:0; bottom:0; width:32px; height:3px; border-radius:3px; background:var(--red); }
.site-footer ul { display:grid; gap:11px; }
.footer-links a { display:inline-flex; align-items:center; gap:8px; transition:color .25s, transform .25s; }
.footer-links a:hover { transform:translateX(4px); }
.footer-contact li { display:flex; gap:12px; align-items:flex-start; }
.footer-contact .ic { color:var(--brand-l); margin-top:4px; }
.social { display:flex; gap:10px; margin-top:22px; }
.social a { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.08); transition:.3s; }
.social a:hover { background:var(--brand); color:#fff; transform:translateY(-3px); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08); font-size:14px; }
.footer-bottom-inner { display:flex; justify-content:space-between; gap:12px 20px; flex-wrap:wrap; padding-top:22px; padding-bottom:22px; }
.footer-bottom p { margin:0; }
.footer-bottom a + a { margin-left:22px; }
.wa-float { position:fixed; left:22px; bottom:22px; z-index:90; display:grid; place-items:center; width:58px; height:58px; border-radius:50%; background:#25d366; color:#fff; box-shadow:0 12px 30px -8px rgba(37,211,102,.7); transition:transform .3s var(--ease); }
.wa-float .ic { width:30px; height:30px; }
.wa-float::before { content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #25d366; animation:ping 2.2s infinite; }
.wa-float:hover { transform:scale(1.08); color:#fff; }
@keyframes ping { from { transform:scale(1); opacity:.8; } to { transform:scale(1.7); opacity:0; } }
.to-top { position:fixed; right:22px; bottom:22px; z-index:90; display:grid; place-items:center; width:50px; height:50px; border:0; border-radius:50%; background:var(--brand); color:#fff; cursor:pointer; box-shadow:var(--shadow-sm); opacity:0; visibility:hidden; transform:translateY(16px); transition:.35s var(--ease); }
.to-top .ic { transform:rotate(180deg); }
.to-top.show { opacity:1; visibility:visible; transform:none; }

/* ==========================================================
   INNER PAGES
   ========================================================== */
.page-banner { position:relative; display:flex; align-items:flex-end; min-height:480px; padding:200px 0 72px; color:#fff; overflow:hidden; background:var(--navy); }
.page-banner-media { position:absolute; inset:0; }
.page-banner-media img { width:100%; height:100%; object-fit:cover; animation:kenburns 14s ease-out both; }
.page-banner::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(1,25,46,.55), rgba(1,25,46,.88)); }
.page-banner .flags { position:absolute; left:0; right:0; bottom:0; z-index:2; }
.page-banner-inner { position:relative; z-index:1; }
.page-banner h1 { color:#fff; font-family:var(--serif); font-size:clamp(34px, 5vw, 62px); margin-bottom:12px; animation:rise .9s var(--ease) both; }
.page-banner p { max-width:640px; color:rgba(255,255,255,.88); margin:0; font-size:17px; animation:rise .9s .12s var(--ease) both; }
.crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:18px; font-size:13.5px; font-weight:500; animation:rise .9s var(--ease) both; }
.crumbs a { color:rgba(255,255,255,.8); }
.crumbs a:hover { color:#fff; }
.crumbs [aria-current] { color:var(--gold); }

/* LISTING (packages page) */
.listing { display:grid; grid-template-columns:300px minmax(0, 1fr); gap:44px; align-items:start; }
.filters { position:sticky; top:100px; padding:28px; border-radius:var(--radius); background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.filters h2 { font-size:18px; display:flex; align-items:center; gap:8px; margin-bottom:20px; }
.filters form { display:grid; gap:18px; }
.filters .field input, .filters .field select { min-height:50px; }
.filter-reset { text-align:center; font-size:14px; font-weight:600; }
.listing-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:28px; flex-wrap:wrap; }
.listing-bar p { margin:0; color:var(--muted); }
.listing-bar strong { color:var(--navy); }
.listing-bar .field select { min-height:46px; min-width:210px; }
.listing .pkg-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:48px; }
.pagination a, .pagination span { display:grid; place-items:center; min-width:46px; height:46px; padding:0 8px; border-radius:12px; border:1px solid var(--line); color:var(--ink); font-weight:600; }
.pagination a:hover { border-color:var(--brand); color:var(--brand-d); }
.pagination [aria-current] { background:var(--navy); color:#fff; border-color:var(--navy); }
.filters-toggle { display:none; }
.empty-state { text-align:center; padding:64px 24px; border:2px dashed var(--line); border-radius:var(--radius); background:#fff; }
.empty-state .btn { margin:6px; }
.empty-icon { display:inline-grid; place-items:center; width:74px; height:74px; margin-bottom:18px; border-radius:50%; background:var(--brand-soft); color:var(--brand-d); }
.empty-icon .ic { width:32px; height:32px; }
.empty-state p { color:var(--muted); }

/* PACKAGE DETAIL */
.detail { display:grid; grid-template-columns:minmax(0, 1fr) 380px; gap:52px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:210px 210px; gap:12px; margin-bottom:40px; }
.detail-gallery a { position:relative; display:block; border-radius:18px; overflow:hidden; background:var(--bg-2); }
.detail-gallery a:first-child { grid-row:span 2; }
.detail-gallery img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.detail-gallery a:hover img { transform:scale(1.05); }
.more-photos { position:absolute; inset:0; display:grid; place-items:center; background:rgba(1,33,60,.55); color:#fff; font-weight:700; }
.facts { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:14px; margin-bottom:48px; }
.fact { display:flex; gap:12px; align-items:center; padding:16px; border-radius:16px; background:var(--bg-2); min-width:0; }
.fact-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:#fff; color:var(--brand-d); flex:none; box-shadow:var(--shadow-sm); }
.fact small { display:block; font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-weight:600; }
.fact strong { font-size:14.5px; color:var(--navy); font-weight:700; line-height:1.3; display:block; }
.detail-block { margin-bottom:52px; }
.detail-block h2 { font-family:var(--serif); font-size:30px; margin-bottom:20px; }
.prose { color:#3A4B5E; }
.prose h2, .prose h3 { margin-top:1.3em; }
.prose ul { list-style:disc; padding-left:1.3em; margin-bottom:1em; }
.prose a { text-decoration:underline; }
.hl-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.hl-grid li { display:flex; gap:12px; align-items:flex-start; padding:16px 18px; border-radius:14px; border:1px solid var(--line); background:#fff; }
.hl-grid .ic { color:var(--gold); margin-top:3px; }
.inc-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:22px; }
.inc-box { padding:26px; border-radius:var(--radius); background:var(--bg-2); }
.inc-box h3 { font-size:17px; display:flex; align-items:center; gap:10px; }
.inc-box ul { display:grid; gap:11px; }
.inc-box li { display:flex; gap:10px; font-size:15px; }
.inc-box li .ic { margin-top:4px; }
.inc-yes .ic { color:var(--ok); }
.inc-no .ic { color:var(--err); }
.itinerary { position:relative; display:grid; gap:12px; }
.itinerary::before { content:""; position:absolute; left:23px; top:24px; bottom:24px; width:2px; background:repeating-linear-gradient(to bottom, var(--line) 0 6px, transparent 6px 12px); }
.itin { position:relative; padding-left:64px; }
.itin-dot { position:absolute; left:7px; top:13px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--brand); color:#fff; font-size:12px; font-weight:700; z-index:1; box-shadow:0 0 0 5px #fff; }
.itin details { border:1px solid var(--line); border-radius:16px; background:#fff; transition:box-shadow .3s; }
.itin details[open] { box-shadow:var(--shadow-sm); }
.itin summary { display:flex; align-items:center; gap:12px; padding:17px 20px; cursor:pointer; list-style:none; font-weight:700; font-family:var(--head); color:var(--navy); }
.itin summary::-webkit-details-marker { display:none; }
.itin summary small { color:var(--red); font-weight:700; flex:none; }
.itin summary .ic { margin-left:auto; transition:transform .3s; }
.itin details[open] summary .ic { transform:rotate(180deg); }
.itin details p { margin:0; padding:0 20px 18px; color:var(--muted); }
.map-embed { border-radius:var(--radius); overflow:hidden; aspect-ratio:16 / 9; background:var(--bg-2); }
.map-embed iframe { width:100%; height:100%; border:0; }
.side-card { position:sticky; top:100px; border-radius:24px; background:#fff; box-shadow:var(--shadow); overflow:hidden; }
.side-price { padding:28px 30px; background:var(--navy); color:#fff; }
.side-price small { color:rgba(255,255,255,.72); }
.side-price strong { display:block; font-family:var(--serif); font-size:40px; line-height:1.15; }
.side-price del { color:rgba(255,255,255,.55); margin-left:8px; font-size:16px; }
.side-body { padding:28px 30px 30px; }
.side-body h3 { font-size:19px; }
.side-body .field input, .side-body .field select, .side-body .field textarea { min-height:48px; }
.side-body .form-row { grid-template-columns:1fr; gap:18px; }
.help-box { display:flex; align-items:center; gap:14px; margin-top:22px; padding:18px 20px; border-radius:18px; background:#E9F9EF; color:#11643B; }
.help-box .ic { width:34px; height:34px; color:#25D366; }
.help-box a { color:#11643B; font-weight:700; }

/* ABOUT PAGE */
.mv-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:28px; }
.mv-card { position:relative; padding:44px 40px; border-radius:24px; background:#fff; border:1px solid var(--line); overflow:hidden; transition:transform .4s var(--ease), box-shadow .4s; }
.mv-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.mv-card::after { content:""; position:absolute; right:-60px; bottom:-60px; width:180px; height:180px; border-radius:50%; background:var(--brand-soft); }
.mv-card > * { position:relative; z-index:1; }
.mv-card .service-icon { background:var(--navy); color:var(--gold); }
.mv-card h2 { font-family:var(--serif); font-size:30px; }
.team-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 280px)); justify-content:center; gap:32px; }
.team-card { text-align:center; padding:36px 24px; border-radius:var(--radius); background:#fff; border:1px solid var(--line); transition:transform .4s var(--ease), box-shadow .4s; }
.team-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.team-photo { position:relative; display:grid; place-items:center; width:160px; aspect-ratio:1; border-radius:50%; overflow:hidden; margin:0 auto 22px; background:linear-gradient(135deg, var(--brand), var(--brand-d)); color:#fff; font-family:var(--head); font-size:46px; font-weight:700; box-shadow:0 0 0 6px var(--brand-soft); }
.team-photo img { width:100%; height:100%; object-fit:cover; }
.team-card h3 { font-size:19px; margin-bottom:4px; }
.team-card p { color:var(--red); font-weight:600; font-size:14px; margin:0; }
.team-card .team-bio { color:var(--muted); font-weight:400; margin-top:12px; }
.reach { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.reach span { display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:999px; background:var(--brand-soft); color:var(--brand-d); font-weight:700; font-size:14px; }

/* CONTACT */
.contact-grid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.2fr); gap:52px; align-items:start; }
.contact-cards { display:grid; gap:16px; margin-top:30px; }
.contact-card { display:flex; gap:18px; align-items:flex-start; padding:24px; border-radius:20px; background:#fff; border:1px solid var(--line); transition:transform .35s var(--ease), box-shadow .35s; min-width:0; }
.contact-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-sm); }
.contact-card .service-icon { margin:0; flex:none; }
.contact-card h3 { font-size:16px; margin-bottom:4px; }
.contact-card p, .contact-card a { margin:0; display:block; color:var(--muted); overflow-wrap:anywhere; }
.contact-card a:hover { color:var(--brand-d); }
.form-card { padding:44px; border-radius:26px; background:#fff; box-shadow:var(--shadow); min-width:0; }
.form-card h2 { font-family:var(--serif); font-size:32px; margin-bottom:8px; }

/* LEGAL / TEXT PAGES */
.text-page { max-width:820px; margin:0 auto; }
.text-page h2 { font-size:24px; margin-top:1.5em; }

/* 404 */
.error-page { text-align:center; padding:40px 0 20px; }
.error-code { font-family:var(--serif); font-size:clamp(90px, 18vw, 170px); line-height:1; margin:0 0 10px; color:var(--brand-soft); -webkit-text-stroke:2px var(--brand); }

/* REVEAL ANIMATIONS (enabled by a tiny inline script when motion is allowed) */
.js-anim .reveal { opacity:0; transform:translateY(36px); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:var(--d, 0ms); }
.js-anim .reveal.in { opacity:1; transform:none; }

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width: 1180px) {
:root { --sec:88px; }
.main-nav > a, .nav-drop > a { padding:10px 10px; font-size:14px; }
.nav-drop > a { padding-right:26px; }
.services-grid, .why-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.footer-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.detail { grid-template-columns:minmax(0, 1fr) 340px; gap:36px; }
.facts { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.split { gap:60px; }
}
@media (max-width: 991px) {
:root { --sec:72px; }
.topbar, .main-nav, .nav-cta { display:none; }
.nav-bar { height:84px; }
.brand img { height:54px; }
.icon-btn { display:grid; }
.nav-actions { margin-left:auto; gap:10px; }
.site-header.is-solid .nav-bar { height:72px; }
.site-header.is-solid .brand img { height:46px; }
.hero-inner { padding-top:140px; padding-bottom:170px; }
.hero-dots, .hero-place { display:none; }
.section-head { grid-template-columns:1fr; gap:14px; margin-bottom:40px; }
.split, .contact-grid, .flight-cta-inner { grid-template-columns:1fr; gap:56px; }
.split-media { max-width:560px; }
.about-badge { right:0; }
.search-form, .tripcom-fallback { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.search-form .btn, .tripcom-fallback .btn { grid-column:1 / -1; }
.pkg-grid, .dest-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.dest-mosaic { grid-template-columns:repeat(2, minmax(0, 1fr)); grid-auto-rows:240px; }
.dest-mosaic .dest-card:nth-child(1) { grid-column:span 2; grid-row:span 1; }
.quote-card { flex-basis:calc((100% - 24px) / 2); }
.gallery { grid-template-columns:repeat(3, minmax(0, 1fr)); grid-auto-rows:190px; }
.plane-art { display:none; }
.footer-cta-inner { flex-direction:column; align-items:flex-start; padding:44px 36px; }
.listing { grid-template-columns:1fr; }
.filters { position:static; display:none; }
.filters.open { display:block; }
.filters-toggle { display:inline-flex; }
.detail { grid-template-columns:1fr; }
.side-card { position:static; }
.page-banner { min-height:400px; padding-top:150px; }
}
@media (max-width: 640px) {
:root { --sec:56px; --gut:18px; }
body { font-size:15.5px; }
.brand img { height:42px; max-width:190px; }
.nav-bar { height:74px; }
.site-header.is-solid .brand img { height:38px; }
.site-header.is-solid .nav-bar { height:66px; }
.footer-brand img { height:54px; }
.icon-btn { width:42px; height:42px; }
.hero { min-height:auto; max-height:none; }
.hero-inner { padding-top:118px; padding-bottom:140px; }
.hero h1 { font-size:clamp(34px, 10vw, 44px); }
.hero-actions .btn { flex:1 1 100%; }
.hero-badges { gap:8px 18px; margin-top:30px; font-size:13px; }
.search-wrap { margin-top:-86px; }
.search-card { padding:4px 16px 20px; border-radius:20px; }
.search-tabs button { flex:1; justify-content:center; padding:15px 6px 13px; font-size:13.5px; }
.search-form, .tripcom-fallback, .form-row, .form-row-3 { grid-template-columns:1fr; }
.services { padding-top:60px; padding-bottom:8px; }
.services-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.service { padding:22px 16px; }
.service-icon { width:48px; height:48px; margin-bottom:14px; border-radius:14px; }
.service h3 { font-size:15px; }
.service p { font-size:13px; }
.why-grid, .pkg-grid, .dest-grid, .listing .pkg-grid, .mv-grid, .inc-grid, .hl-grid, .tick-list { grid-template-columns:1fr; }
.split { gap:44px; }
.split-media { padding:0 0 28px 22px; }
.about-badge { right:-4px; bottom:40px; padding:12px 16px 12px 12px; }
.about-dots { right:-8px; }
.dest-mosaic, .dest-grid { grid-template-columns:1fr; grid-auto-rows:250px; }
.dest-mosaic .dest-card:nth-child(1) { grid-column:span 1; }
.dest-tag { opacity:1; max-height:90px; }
.stats { gap:8px; }
.stats strong { font-size:32px; }
.stats span { font-size:11px; letter-spacing:.06em; }
.quote-card { flex-basis:88%; min-width:0; padding:28px 24px; }
.gallery { grid-template-columns:repeat(2, minmax(0, 1fr)); grid-auto-rows:150px; gap:10px; }
.photo-band { padding:96px 0; }
.footer-cta-inner { padding:36px 24px; border-radius:22px; }
.footer-cta-actions, .footer-cta-actions .btn { width:100%; }
.footer-grid { grid-template-columns:1fr; gap:36px; padding-top:24px; }
.footer-mtn { height:56px; }
.footer-bottom-inner { justify-content:center; text-align:center; }
.footer-bottom a + a { margin-left:14px; }
.detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:220px 110px; }
.detail-gallery a:first-child { grid-column:span 2; grid-row:span 1; }
.facts { grid-template-columns:1fr 1fr; gap:10px; }
.fact { padding:12px; gap:10px; }
.fact-icon { width:38px; height:38px; }
.form-card { padding:28px 20px; border-radius:22px; }
.page-banner { min-height:340px; padding:128px 0 48px; }
.mv-card { padding:32px 24px; }
.listing-bar .field select { min-width:0; }
.wa-float { left:14px; bottom:14px; width:54px; height:54px; }
.to-top { right:14px; bottom:14px; }
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
.hero-anim { opacity:1; transform:none; }
}
