/* ============================================================
   ELEGANCE TRAVEL — warm-luxe editorial design system
   ============================================================ */

:root {
  /* Warm neutral base */
  --ivory:        #F8F3EA;
  --ivory-2:      #F1E9DA;
  --paper:        #FCFAF5;
  --sand:         #E7DCC7;
  --line:         #DDD0B8;

  /* Ink */
  --ink:          #1C1A15;
  --ink-soft:     #4A463C;
  --ink-mute:     #847C6B;

  /* Signature accents */
  --emerald:      #143C30;
  --emerald-2:    #0E2C23;
  --emerald-soft: #2A5645;
  --gold:         #B0894C;
  --gold-soft:    #C7A668;
  --gold-pale:    #E4D2A8;
  --terra:        #B5663C;

  /* Effects */
  --shadow-sm: 0 2px 14px rgba(28,26,21,.06);
  --shadow-md: 0 18px 50px -24px rgba(28,26,21,.30);
  --shadow-lg: 0 40px 90px -40px rgba(14,44,35,.55);

  --ease: cubic-bezier(.22,.61,.36,1);
  --maxw: 1280px;

  --serif: "Cormorant Garamond", Georgia, serif;
  --sans:  "Jost", system-ui, sans-serif;

  /* Type weights — tuned 2026-06 so EN stops reading Jost-thin.
     AR (Cairo, denser glyphs) overrides --w-body/--w-head in the RTL block. */
  --w-body:  400;   /* body copy · paragraphs · card meta — was 300 light */
  --w-label: 600;   /* eyebrows · nav · buttons · footer labels · kickers — was 500 */
  --w-head:  500;   /* Cormorant headings — weight unchanged, tokenised for AR override */
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--sans);
  background: var(--ivory);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
ul { list-style: none; }

::selection { background: var(--gold); color: #fff; }

/* ---- Typography helpers ---- */
.serif { font-family: var(--serif); }
.eyebrow {
  font-family: var(--sans);
  font-weight: var(--w-label);
  font-size: 11px;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  gap: .85em;
}
.eyebrow::before {
  content: "";
  width: 30px; height: 1px;
  background: var(--gold);
  opacity: .7;
}
.eyebrow.center::after {
  content: "";
  width: 30px; height: 1px;
  background: var(--gold);
  opacity: .7;
}
.eyebrow.center { justify-content: center; }

.section { padding: clamp(72px, 9vw, 140px) 0; }
.wrap { width: min(var(--maxw), 100% - 64px); margin-inline: auto; }
.wrap-narrow { width: min(960px, 100% - 64px); margin-inline: auto; }

h1,h2,h3,h4 { font-family: var(--serif); font-weight: var(--w-head); line-height: 1.04; letter-spacing: -0.01em; }

.h-display {
  font-size: clamp(44px, 7.4vw, 104px);
  font-weight: var(--w-head);
  line-height: .98;
  letter-spacing: -0.015em;
}
.h-section {
  font-size: clamp(34px, 4.8vw, 62px);
  line-height: 1.02;
}
.lead {
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.7;
  color: var(--ink-soft);
  font-weight: var(--w-body);
}

/* ---- Buttons ---- */
.btn {
  display: inline-flex; align-items: center; gap: .7em;
  font-family: var(--sans); font-weight: var(--w-label);
  font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase;
  padding: 16px 30px;
  transition: all .45s var(--ease);
  position: relative;
  white-space: nowrap;
}
.btn svg { width: 16px; height: 16px; }
.btn-gold { background: var(--gold); color: #fff; }
.btn-gold:hover { background: var(--ink); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-emerald { background: var(--emerald); color: var(--ivory); }
.btn-emerald:hover { background: var(--emerald-2); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-ghost { border: 1px solid var(--line); color: var(--ink); }
.btn-ghost:hover { border-color: var(--ink); background: var(--ink); color: var(--ivory); }
.btn-ghost-light { border: 1px solid rgba(255,255,255,.4); color: #fff; }
.btn-ghost-light:hover { background: #fff; color: var(--ink); border-color: #fff; }

.btn-text {
  font-family: var(--sans); font-weight: var(--w-label);
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: .7em;
  color: var(--gold);
  position: relative;
}
.btn-text .arrow { transition: transform .4s var(--ease); }
.btn-text:hover .arrow { transform: translateX(6px); }
.btn-text::after {
  content:""; position:absolute; left:0; bottom:-6px; height:2px; width:100%;
  background: linear-gradient(90deg, var(--gold-soft), var(--gold) 50%, var(--gold-soft));
  transform: scaleX(1); transform-origin: left; opacity:1;
  box-shadow: 0 1px 8px rgba(176,137,76,.45);
  transition: box-shadow .4s var(--ease);
}
.btn-text:hover::after { box-shadow: 0 1px 14px rgba(176,137,76,.75); }

/* WhatsApp pill */
.wa {
  display:inline-flex; align-items:center; gap:.6em;
  font-family: var(--sans); font-weight:var(--w-label); font-size:12.5px; letter-spacing:.1em;
  padding: 13px 22px; border-radius: 999px;
  background: var(--emerald); color: var(--ivory);
  transition: all .4s var(--ease);
}
.wa:hover { background: var(--emerald-2); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.wa svg { width:17px; height:17px; }

/* ===== Floating WhatsApp ===== */
.wa-float {
  position: fixed; right: 26px; bottom: 26px; z-index: 200;
  width: 60px; height: 60px; border-radius: 50%;
  background: #1f8c52; color:#fff;
  display:grid; place-items:center;
  box-shadow: 0 16px 36px -10px rgba(31,140,82,.6);
  transition: transform .4s var(--ease);
}
.wa-float:hover { transform: scale(1.08) translateY(-2px); }
.wa-float svg { width: 28px; height:28px; }
.wa-float::after {
  content:""; position:absolute; inset:0; border-radius:50%;
  border: 2px solid #1f8c52; animation: waPulse 2.6s var(--ease) infinite;
}
@keyframes waPulse { 0%{opacity:.6; transform:scale(1)} 100%{opacity:0; transform:scale(1.7)} }

/* ============================================================
   TOP UTILITY BAR
   ============================================================ */
/* Topbar wrapper: fixed over hero, solidifies on scroll */
.topbar { position: fixed; top:0; left:0; right:0; z-index: 100; transition: transform .5s var(--ease); }
.topbar .utility { overflow: hidden; transition: max-height .5s var(--ease), opacity .4s var(--ease); max-height: 42px; }
.topbar.scrolled .utility { max-height: 0; opacity: 0; }

.utility {
  background: var(--emerald-2);
  color: var(--ivory);
  font-family: var(--sans); font-weight: var(--w-body);
  font-size: 12.5px; letter-spacing: .04em;
}
.utility .wrap { display:flex; align-items:center; justify-content:space-between; height: 42px; }
.utility-l { display:flex; align-items:center; gap: 26px; }
.utility a { display:inline-flex; align-items:center; gap:.5em; transition: color .3s; opacity:.85; }
.utility a:hover { color: var(--gold-soft); opacity:1; }
.utility svg { width:14px; height:14px; opacity:.8; }
.utility-r { display:flex; align-items:center; gap: 18px; }
.lang { display:flex; gap: 4px; font-size:11px; letter-spacing:.14em; }
.lang button { padding: 4px 9px; border-radius: 3px; opacity:.6; transition: all .3s; }
.lang button.on { background: rgba(255,255,255,.12); opacity:1; color: var(--gold-soft); }
.lang button:hover { opacity: 1; }
@media (max-width: 880px){ .utility-l .u-hide { display:none; } }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.header {
  transition: background .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
  border-bottom: 1px solid transparent;
  background: transparent;
}
.topbar.scrolled .header {
  background: rgba(248,243,234,.94);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow-sm);
  border-bottom-color: var(--line);
}
.header-inner { display:flex; align-items:center; justify-content:space-between; height: 84px; }
.topbar.scrolled .header-inner { height: 72px; }
.bg-fallback-label { position:absolute; inset:0; display:grid; place-items:center; font-family:var(--serif); font-style:italic; font-size:24px; color:rgba(255,255,255,.55); letter-spacing:.04em; }

/* Wordmark */
.brand { display:flex; align-items:center; line-height:1; user-select:none; }
.brand-logo {
  height: 52px; width:auto; display:block; border-radius: 6px;
  transition: height .5s var(--ease);
}
.topbar.scrolled .brand-logo { height: 46px; }
/* On the dark hero the logo's cream panel reads as a tidy plaque */
.brand.on-dark .brand-logo {
  padding: 6px 10px; background: rgba(248,243,234,.96);
  box-shadow: 0 6px 20px rgba(0,0,0,.18);
}
.footer .brand-logo { height: 46px; padding: 6px 10px; background: rgba(248,243,234,.96); border-radius: 6px; }
.brand .mark {
  font-family: var(--serif); font-weight: 600;
  font-size: 27px; letter-spacing: .14em; text-transform: uppercase;
  display:flex; align-items:center; gap:.42em;
}
.brand .mark .dot { color: var(--gold); }
.brand .sub {
  font-family: var(--sans); font-weight: 400;
  font-size: 9.5px; letter-spacing: .58em; text-transform: uppercase;
  margin-top: 6px; margin-left: 2px;
  color: var(--gold);
}
.brand.on-dark .mark { color: #fff; }
.brand.on-dark .sub { color: var(--gold-soft); }

.nav { display:flex; align-items:center; gap: 34px; }
.nav-link {
  font-family: var(--sans); font-weight: var(--w-label); font-size: 13px;
  letter-spacing: .08em; position: relative; padding: 6px 0;
  transition: color .3s;
}
.nav-link::after {
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background: var(--gold); transform: scaleX(0); transform-origin: left;
  transition: transform .4s var(--ease);
}
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }
.topbar:not(.scrolled) .nav-link { color: rgba(255,255,255,.92); }
.topbar:not(.scrolled) .nav-link:hover { color:#fff; }
.topbar:not(.scrolled) .menu-btn { color:#fff; }

.nav-right { display:flex; align-items:center; gap: 22px; }

.menu-btn { display:none; width:42px; height:42px; align-items:center; justify-content:center; }
.menu-btn span { display:block; width:24px; height:1.5px; background: currentColor; position:relative; transition:.3s; }
.menu-btn span::before, .menu-btn span::after { content:""; position:absolute; left:0; width:24px; height:1.5px; background:currentColor; transition:.3s; }
.menu-btn span::before { top:-7px; } .menu-btn span::after { top:7px; }

@media (max-width: 1080px){
  .nav { display:none; }
  .nav-right .btn { display:none; }
  .menu-btn { display:flex; }
}

/* mobile drawer */
.drawer {
  position: fixed; inset: 0; z-index: 150;
  background: var(--emerald-2); color: var(--ivory);
  padding: 110px 40px 40px;
  transform: translateX(100%); transition: transform .5s var(--ease);
  display:flex; flex-direction:column; gap: 6px;
}
.drawer.open { transform: translateX(0); }
.drawer a { font-family: var(--serif); font-size: 30px; padding: 12px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.drawer-close { position:absolute; top:30px; right:30px; font-size:30px; }

/* ============================================================
   HERO
   ============================================================ */
.hero { position: relative; min-height: 100vh; display:flex; align-items:flex-end; overflow:hidden; color:#fff; background: linear-gradient(135deg, #1d4a3b 0%, #143c30 55%, #0e2c23 100%); }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg .slide {
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transform: scale(1.08); transition: opacity 1.6s var(--ease), transform 7s linear;
}
.hero-bg .slide.on { opacity:1; transform: scale(1); }
.hero::after {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(to right, rgba(10,26,20,.55) 0%, rgba(10,26,20,.12) 45%, transparent 70%),
    linear-gradient(to top, rgba(10,26,20,.90) 0%, rgba(10,26,20,.34) 44%, rgba(10,26,20,.16) 70%, rgba(10,26,20,.40) 100%);
}
.hero-content { position: relative; z-index:2; width:100%; padding-bottom: clamp(56px, 7vw, 96px); }
.hero h1 { color:#fff; max-width: 16ch; }
.hero h1 em { font-style: italic; color: var(--gold-pale); }
.hero .lead { color: rgba(255,255,255,.85); max-width: 50ch; margin-top: 26px; }
.hero-cta { display:flex; gap: 16px; margin-top: 40px; flex-wrap:wrap; }

.hero-meta {
  position:absolute; z-index:2; right: 0; top: 0; bottom: 0;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-end;
  gap: 22px; padding-right: 4px; text-align:right;
}
.hero-dots { display:flex; flex-direction:column; gap:12px; }
.hero-dots button { width:9px; height:9px; border-radius:50%; border:1px solid rgba(255,255,255,.6); transition:.3s; }
.hero-dots button.on { background: var(--gold); border-color: var(--gold); transform: scale(1.25); }
@media (max-width: 760px){ .hero-meta { display:none; } }

.hero-scroll {
  position:absolute; left:50%; bottom: 26px; transform:translateX(-50%); z-index:2;
  font-family:var(--sans); font-size:10px; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(255,255,255,.7); display:flex; flex-direction:column; align-items:center; gap:10px;
}
.hero-scroll .ln { width:1px; height:46px; background:linear-gradient(rgba(255,255,255,.7), transparent); animation: scrollLn 2.4s var(--ease) infinite; }
@keyframes scrollLn { 0%{transform:scaleY(0); transform-origin:top} 40%{transform:scaleY(1); transform-origin:top} 60%{transform:scaleY(1); transform-origin:bottom} 100%{transform:scaleY(0); transform-origin:bottom} }

/* ============================================================
   INQUIRY / PLAN BAR (floating over hero seam)
   ============================================================ */
.plan {
  position: relative; z-index: 5; margin-top: -54px;
}
.plan-card {
  background: var(--paper);
  box-shadow: var(--shadow-lg);
  border-top: 3px solid var(--gold);
  padding: 30px clamp(24px, 3vw, 44px);
  display:grid; grid-template-columns: repeat(4, 1fr) auto; gap: 0;
  align-items: end;
}
.plan-field { padding: 6px 26px; border-right: 1px solid var(--line); }
.plan-field:first-child { padding-left: 0; }
.plan-field label { display:block; font-family:var(--sans); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold); margin-bottom: 9px; }
.plan-field .val { font-family: var(--serif); font-size: 21px; color: var(--ink); display:flex; align-items:center; justify-content:space-between; gap:10px; }
.plan-field select, .plan-field input {
  font-family: var(--serif); font-size: 21px; color: var(--ink);
  border:none; background:transparent; width:100%; outline:none; cursor:pointer;
  -webkit-appearance:none; appearance:none;
}
.plan-field .chev { color: var(--ink-mute); }
.plan-submit { padding-left: 26px; }
@media (max-width: 980px){
  .plan-card { grid-template-columns: 1fr 1fr; gap: 18px 0; }
  .plan-field { border-right:none; border-bottom:1px solid var(--line); padding: 14px 0; }
  .plan-field:nth-child(odd){ padding-right: 20px; }
  .plan-field:nth-child(even){ padding-left: 20px; border-left:1px solid var(--line); }
  .plan-submit { grid-column: 1/-1; padding-left:0; }
  .plan-submit .btn { width:100%; justify-content:center; }
}

/* ============================================================
   TRUST STRIP
   ============================================================ */
.trust { background: var(--paper); }
.trust .wrap { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap: clamp(28px, 5vw, 70px); padding: 30px 32px; }
.trust-item { display:flex; align-items:center; gap: 12px; font-family:var(--sans); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color: var(--ink-soft); }
.trust-item svg { width:20px; height:20px; color: var(--gold); flex:none; }

/* ============================================================
   SECTION HEADER
   ============================================================ */
.sec-head { max-width: 720px; }
.sec-head.center { margin-inline:auto; text-align:center; }
.sec-head .eyebrow { margin-bottom: 22px; }
.sec-head h2 { margin-bottom: 20px; }
.sec-head .lead { max-width: 60ch; }
.sec-top { display:flex; align-items:flex-end; justify-content:space-between; gap: 40px; flex-wrap:wrap; margin-bottom: clamp(40px, 5vw, 68px); }

/* ============================================================
   SERVICES
   ============================================================ */
.services { background: var(--ivory); }
.svc-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border:1px solid var(--line); }
.svc {
  background: var(--paper); padding: 44px 38px 40px;
  position:relative; overflow:hidden; transition: background .5s var(--ease);
  min-height: 320px; display:flex; flex-direction:column;
}
.svc::before {
  content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background: var(--gold); transform: scaleX(0); transform-origin:left; transition: transform .5s var(--ease);
}
.svc:hover { background: var(--emerald); color: var(--ivory); }
.svc:hover::before { transform: scaleX(1); }
.svc-ic { width: 46px; height:46px; color: var(--gold); margin-bottom: 28px; transition: color .5s, transform .6s var(--ease); }
.svc:hover .svc-ic { color: var(--gold-soft); transform: translateY(-4px); }
.svc h3 { font-size: 28px; margin-bottom: 14px; }
.svc p { font-size: 14.5px; line-height:1.6; color: var(--ink-soft); font-weight:var(--w-body); flex:1; transition: color .5s; }
.svc:hover p { color: rgba(255,255,255,.78); }
.svc .svc-link { margin-top: 22px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold); display:inline-flex; gap:.6em; align-items:center; transition: color .5s, gap .4s; }
.svc:hover .svc-link { color:#fff; }
.svc:hover .svc-link { gap: 1.1em; }
.svc-num { position:absolute; top: 30px; right: 34px; font-family:var(--serif); font-style:italic; font-size:18px; color: var(--line); transition: color .5s; }
.svc:hover .svc-num { color: rgba(255,255,255,.4); }
@media (max-width: 980px){ .svc-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .svc-grid { grid-template-columns: 1fr; } }

/* ============================================================
   DESTINATIONS (editorial)
   ============================================================ */
.dest { background: var(--emerald-2); color: var(--ivory); }
.dest .eyebrow { color: var(--gold-soft); }
.dest .eyebrow::before, .dest .eyebrow.center::after { background: var(--gold-soft); }
.dest h2 { color: var(--ivory); }
.dest .lead { color: rgba(255,255,255,.7); }
.dest-filter { display:flex; gap: 8px; flex-wrap:wrap; }
.chip {
  font-family:var(--sans); font-size:12px; letter-spacing:.1em;
  padding: 9px 18px; border-radius:999px; border:1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.7); transition: all .35s var(--ease);
}
.chip:hover { border-color: var(--gold-soft); color:#fff; }
.chip.on { background: var(--gold); border-color: var(--gold); color:#fff; }

.dest-grid { display:grid; grid-template-columns: repeat(12, 1fr); gap: 18px; margin-top: 14px; }
.dcard { position:relative; overflow:hidden; cursor:pointer; min-height: 300px; background: var(--emerald); }
.dcard.tall { grid-row: span 2; min-height: 0; }
.dcard .img { position:absolute; inset:0; background-size:cover; background-position:center; transition: transform 1.1s var(--ease); }
.dcard:hover .img { transform: scale(1.07); }
.dcard::after { content:""; position:absolute; inset:0; background: linear-gradient(to top, rgba(10,24,19,.85) 0%, rgba(10,24,19,.12) 55%, rgba(10,24,19,.28) 100%); transition: background .5s; }
.dcard:hover::after { background: linear-gradient(to top, rgba(10,24,19,.9) 0%, rgba(10,24,19,.25) 60%, rgba(20,60,48,.35) 100%); }
.dcard-body { position:absolute; left:0; right:0; bottom:0; z-index:2; padding: 30px 30px 28px; }
.dcard .region { font-family:var(--sans); font-size:10.5px; letter-spacing:.28em; text-transform:uppercase; color: var(--gold-soft); margin-bottom: 8px; }
.dcard h3 { font-size: clamp(26px,2.4vw,34px); color:#fff; line-height:1; }
.dcard .meta { display:flex; align-items:center; gap:14px; margin-top: 0; max-height:0; opacity:0; overflow:hidden; transition: max-height .5s var(--ease), opacity .4s var(--ease), margin-top .5s; }
.dcard:hover .meta { max-height: 60px; opacity:1; margin-top: 14px; }
.dcard .meta .price { font-family:var(--serif); font-size:19px; color: var(--gold-pale); }
.dcard .meta .nights { font-family:var(--sans); font-size:11.5px; letter-spacing:.1em; color:rgba(255,255,255,.7); }
.dcard .arrow-c { position:absolute; top:24px; right:24px; z-index:2; width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.4); display:grid; place-items:center; opacity:0; transform: transl(-6px) rotate(-30deg); transition:.5s var(--ease); }
.dcard:hover .arrow-c { opacity:1; transform: rotate(0); }
.dcard .arrow-c svg { width:16px; height:16px; color:#fff; }
@media (max-width: 900px){
  .dest-grid { grid-template-columns: repeat(2,1fr); }
  .dcard, .dcard.tall { grid-row: auto; min-height: 260px; }
}
@media (max-width: 560px){ .dest-grid { grid-template-columns: 1fr; } }

/* ============================================================
   PACKAGES CAROUSEL
   ============================================================ */
.pkg { background: var(--ivory); overflow:hidden; }
.pkg-track-wrap { overflow:hidden; }
.pkg-track { display:flex; gap: 26px; transition: transform .7s var(--ease); }
.pcard { flex: 0 0 auto; width: 380px; background: var(--paper); box-shadow: var(--shadow-sm); display:flex; flex-direction:column; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.pcard:hover { transform: translateY(-8px); box-shadow: var(--shadow-md); }
.pcard .img { height: 250px; background-size:cover; background-position:center; position:relative; }
.pcard .img::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(14,30,24,.5), transparent 50%); }
.pcard .tag { position:absolute; top:18px; left:18px; z-index:2; background: var(--gold); color:#fff; font-family:var(--sans); font-size:10px; letter-spacing:.18em; text-transform:uppercase; padding:6px 12px; }
.pcard .flag { position:absolute; bottom:16px; left:18px; z-index:2; font-family:var(--sans); font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#fff; }
.pcard-body { padding: 26px 26px 28px; display:flex; flex-direction:column; flex:1; }
.pcard h3 { font-size: 27px; line-height:1.05; margin-bottom: 10px; }
.pcard .desc { font-size: 13.5px; color: var(--ink-soft); font-weight:500; line-height:1.55; margin-bottom: 20px; flex:1; }
.pcard .pfoot { display:flex; align-items:flex-end; justify-content:space-between; border-top:2px solid var(--gold); border-image:linear-gradient(90deg, var(--gold-soft), var(--gold) 50%, var(--gold-soft)) 1; padding-top: 18px; }
.pcard .pfrom { font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold); }
.pcard .pprice { font-family:var(--serif); font-weight:700; font-size:30px; color: var(--gold); line-height:1; }
.pcard .pprice small { font-size:13px; color: var(--gold); font-family:var(--sans); font-weight:600; letter-spacing:.06em; }
.pcard .pnights { font-family:var(--sans); font-size:11.5px; letter-spacing:.08em; color: var(--ink-soft); display:flex; align-items:center; gap:6px; }
.pcard .pnights svg { width:14px; height:14px; color: var(--gold); }

.carousel-ctrl { display:flex; align-items:center; gap: 12px; }
.car-btn { width:50px; height:50px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; transition: all .4s var(--ease); color: var(--ink); }
.car-btn:hover:not(:disabled) { background: var(--emerald); border-color: var(--emerald); color: var(--ivory); }
.car-btn:disabled { opacity:.3; cursor: not-allowed; }
.car-btn svg { width:18px; height:18px; }
.car-progress { height:2px; width: 120px; background: var(--line); position:relative; margin-left: 6px; }
.car-progress span { position:absolute; left:0; top:0; height:100%; background: var(--gold); transition: width .6s var(--ease); }

/* ============================================================
   HAJJ & UMRAH feature
   ============================================================ */
.hajj { position:relative; color:#fff; overflow:hidden; }
.hajj-bg { position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
.hajj::after { content:""; position:absolute; inset:0; z-index:1; background: linear-gradient(105deg, rgba(8,26,20,.96) 0%, rgba(8,26,20,.86) 40%, rgba(8,26,20,.62) 100%); }
.hajj .wrap { position:relative; z-index:2; }
.hajj-grid { display:grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items:center; }
.hajj .eyebrow { color: var(--gold-soft); }
.hajj .eyebrow::before { background: var(--gold-soft); }
.hajj h2 { color:#fff; margin: 20px 0; }
.hajj .lead { color: rgba(255,255,255,.82); }
.hajj-tiers { display:flex; flex-direction:column; gap: 0; margin-top: 8px; }
.tier { display:flex; align-items:center; justify-content:space-between; gap: 20px; padding: 22px 4px; border-bottom:1px solid rgba(255,255,255,.16); transition: padding-left .4s var(--ease); cursor:pointer; }
.tier:hover { padding-left: 16px; }
.tier:first-child { border-top:1px solid rgba(255,255,255,.16); }
.tier-l { display:flex; align-items:baseline; gap: 16px; }
.tier .tname { font-family:var(--serif); font-size: 27px; }
.tier .tdesc { font-family:var(--sans); font-size:12.5px; color: rgba(255,255,255,.6); letter-spacing:.04em; }
.tier .tprice { font-family:var(--serif); font-size: 24px; color: var(--gold-soft); white-space:nowrap; }
@media (max-width: 900px){ .hajj-grid { grid-template-columns: 1fr; gap: 40px; } }

/* ============================================================
   CORPORATE / MICE
   ============================================================ */
.corp { background: var(--paper); }
.corp-grid { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 90px); align-items:center; }
.corp-visual { position:relative; }
.corp-visual .main { aspect-ratio: 4/5; background-size:cover; background-position:center; box-shadow: var(--shadow-md); }
.corp-visual .badge {
  position:absolute; bottom: -28px; left: -28px; background: var(--emerald); color: var(--ivory);
  padding: 26px 30px; box-shadow: var(--shadow-md); max-width: 230px;
}
.corp-visual .badge .num { font-family:var(--serif); font-size: 44px; color: var(--gold-soft); line-height:1; }
.corp-visual .badge .lbl { font-family:var(--sans); font-size:12px; letter-spacing:.08em; color:rgba(255,255,255,.8); margin-top:8px; line-height:1.4; }
.corp-caps { display:grid; grid-template-columns: 1fr 1fr; gap: 14px 26px; margin: 30px 0 36px; }
.cap { display:flex; align-items:flex-start; gap: 12px; font-size: 14px; color: var(--ink-soft); font-weight:var(--w-body); }
.cap svg { width:18px; height:18px; color: var(--gold); flex:none; margin-top: 2px; }
@media (max-width: 860px){ .corp-grid { grid-template-columns: 1fr; } .corp-visual { order:-1; } .corp-visual .badge{ left:0; } }
@media (max-width: 520px){ .corp-caps { grid-template-columns: 1fr; } }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testi { background: var(--ivory); }
.testi-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.tcard { background: var(--paper); padding: 38px 34px; border:1px solid var(--line); display:flex; flex-direction:column; }
.tcard .quote-mark { font-family:var(--serif); font-size: 70px; line-height:.6; color: var(--gold-pale); height: 40px; }
.tcard .stars { display:flex; gap:3px; margin-bottom: 18px; }
.tcard .stars svg { width:15px; height:15px; color: var(--gold); }
.tcard p { font-family:var(--serif); font-size: 21px; line-height: 1.4; color: var(--ink); font-weight:var(--w-body); flex:1; }
.tcard .who { display:flex; align-items:center; gap: 14px; margin-top: 28px; }
.tcard .av { width: 46px; height:46px; border-radius:50%; background-size:cover; background-position:center; background-color: var(--sand); }
.tcard .who .nm { font-family:var(--sans); font-weight:var(--w-label); font-size:14px; }
.tcard .who .rl { font-family:var(--sans); font-size:11.5px; color: var(--ink-mute); letter-spacing:.04em; }
@media (max-width: 880px){ .testi-grid { grid-template-columns: 1fr; max-width: 520px; margin-inline:auto; } }

/* ============================================================
   CONTACT / CTA
   ============================================================ */
.cta { background: var(--emerald); color:#fff; position:relative; overflow:hidden; }
.cta::before { content:""; position:absolute; right:-160px; top:-160px; width:520px; height:520px; border-radius:50%; border:1px solid rgba(255,255,255,.08); }
.cta::after { content:""; position:absolute; right:-60px; bottom:-220px; width:520px; height:520px; border-radius:50%; border:1px solid rgba(255,255,255,.06); }
.cta .wrap { position:relative; z-index:2; text-align:center; }
.cta .eyebrow { color: var(--gold-soft); }
.cta .eyebrow.center::before, .cta .eyebrow.center::after { background: var(--gold-soft); }
.cta h2 { color:#fff; margin: 22px 0; }
.cta .lead { color: rgba(255,255,255,.82); margin-inline:auto; max-width: 54ch; }
.cta-actions { display:flex; gap:16px; justify-content:center; margin-top: 40px; flex-wrap:wrap; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background: var(--emerald-2); color: rgba(255,255,255,.7); padding: 80px 0 0; }
.footer .wrap { }
.foot-top { display:grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 50px; padding-bottom: 60px; border-bottom:1px solid rgba(255,255,255,.12); }
.footer .brand .mark { color:#fff; }
.foot-about { font-family:var(--sans); font-weight:var(--w-body); font-size:14px; line-height:1.7; margin: 24px 0; max-width: 34ch; }
.foot-soc { display:flex; gap: 12px; }
.foot-soc a { width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:grid; place-items:center; transition: all .4s var(--ease); }
.foot-soc a:hover { background: var(--gold); border-color: var(--gold); color:#fff; transform: translateY(-3px); }
.foot-soc svg { width:17px; height:17px; }
.foot-col h4 { font-family:var(--sans); font-weight:var(--w-label); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color: var(--gold-soft); margin-bottom: 22px; }
.foot-col ul { display:flex; flex-direction:column; gap: 13px; }
.foot-col a { font-size: 14px; font-weight:var(--w-body); transition: color .3s, padding-left .3s; }
.foot-col a:hover { color:#fff; padding-left: 5px; }
.foot-contact li { display:flex; gap:12px; align-items:flex-start; font-size:14px; font-weight:var(--w-body); margin-bottom:15px; }
.foot-contact svg { width:17px; height:17px; color: var(--gold-soft); flex:none; margin-top:2px; }
.foot-bottom { display:flex; align-items:center; justify-content:space-between; padding: 26px 0; flex-wrap:wrap; gap:14px; font-size:12.5px; font-weight:var(--w-body); }
.foot-bottom .credits { display:flex; gap: 24px; flex-wrap:wrap; }
@media (max-width: 900px){ .foot-top { grid-template-columns: 1fr 1fr; gap:40px; } }
@media (max-width: 520px){ .foot-top { grid-template-columns: 1fr; } }

/* ---- Tweakable photo treatment (driven by --img-filter on :root) ---- */
.hero-bg .slide,
.dcard .img,
.pcard .img,
.hajj-bg,
.corp-visual .main,
.tcard .av { filter: var(--img-filter, none); }

/* ---- reveal on scroll ---- */
.reveal { opacity:0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in { opacity:1; transform: none; }
.reveal.d1 { transition-delay: .08s; }
.reveal.d2 { transition-delay: .16s; }
.reveal.d3 { transition-delay: .24s; }
.reveal.d4 { transition-delay: .32s; }

/* ============================================================
   ELEGANCE 2026 — bilingual (EN/AR) + RTL layer
   Added on port to Eleventy. Mirrors the site-wide data-lang
   pattern: EN shown by default, Arabic shown when html[dir=rtl].
   ============================================================ */

/* ---- Language visibility (matches legacy setLang mechanism) ---- */
[data-lang="ar"] { display: none; }
html[dir="rtl"] [data-lang="en"] { display: none; }
html[dir="rtl"] [data-lang="ar"] { display: inline; }
html[dir="rtl"] [data-lang="ar"].block { display: block; }

/* ---- Arabic typography ----
   EN pairs Cormorant (serif headings) + Jost (sans body). Mirror that split:
   Amiri (classical Naskh) for AR display/headings, Cairo for AR body/labels —
   so Arabic gets the same elegant-headline / clean-body contrast as English.
   Cairo also reads denser than Latin, so a touch more weight matches the
   bolder EN scale without looking heavy. */
html[dir="rtl"] {
  --w-body: 500;   /* AR body — was inheriting 400 */
  --w-head: 700;   /* AR headings — Amiri bold (Cairo couldn't even supply 500) */
  /* --w-label stays 600 (loaded in Cairo) */
}
/* Body + sans-role text → Cairo. Labels/buttons listed explicitly because
   their var(--sans)=Jost carries no Arabic glyphs. */
html[dir="rtl"] body,
html[dir="rtl"] .btn, html[dir="rtl"] .btn-text, html[dir="rtl"] .wa,
html[dir="rtl"] .eyebrow, html[dir="rtl"] .nav-link, html[dir="rtl"] .chip,
html[dir="rtl"] .svc-link, html[dir="rtl"] .kicker, html[dir="rtl"] .foot-col h4,
html[dir="rtl"] .trust-item, html[dir="rtl"] .dcard .region {
  font-family: "Cairo", system-ui, sans-serif;
}
/* Display / headings → Amiri */
html[dir="rtl"] .serif,
html[dir="rtl"] h1, html[dir="rtl"] h2, html[dir="rtl"] h3, html[dir="rtl"] h4,
html[dir="rtl"] .h-display, html[dir="rtl"] .h-section,
html[dir="rtl"] .plan-field .val, html[dir="rtl"] .plan-field select,
html[dir="rtl"] .tcard p, html[dir="rtl"] .tier .tname, html[dir="rtl"] .pprice {
  font-family: "Amiri", "Cairo", Georgia, serif;
}
/* Arabic needs more leading than Latin (ascenders + tashkeel crowd at Latin
   line-heights), and positive letter-spacing breaks its cursive joins. Both
   are script requirements, not design choices — hence the scoped !important. */
html[dir="rtl"] body { line-height: 1.85; }
html[dir="rtl"] p, html[dir="rtl"] .lead, html[dir="rtl"] li { line-height: 1.9 !important; }
html[dir="rtl"] * { letter-spacing: 0 !important; }
/* Amiri runs visually smaller than Cormorant — nudge the big display sizes up */
html[dir="rtl"] .h-display { font-size: clamp(46px, 7.7vw, 110px); }
html[dir="rtl"] .h-section { font-size: clamp(36px, 5vw, 66px); }
html[dir="rtl"] .h-display em { font-style: normal; }

/* ---- RTL: flip the design's explicit left/right offsets ---- */
html[dir="rtl"] .hero-meta { right: auto; left: 0; align-items: flex-start; text-align: left; }
html[dir="rtl"] .svc-num { right: auto; left: 34px; }
html[dir="rtl"] .dcard .arrow-c { right: auto; left: 24px; transform: rotate(180deg); }
html[dir="rtl"] .dcard:hover .arrow-c { transform: rotate(180deg); }
html[dir="rtl"] .pcard .tag,
html[dir="rtl"] .pcard .flag { left: auto; right: 18px; }
html[dir="rtl"] .plan-field { border-right: none; border-left: 1px solid var(--line); }
html[dir="rtl"] .plan-field:first-child { padding-left: 26px; padding-right: 0; border-left: 1px solid var(--line); }
html[dir="rtl"] .plan-field:last-of-type { border-left: none; }
html[dir="rtl"] .plan-submit { padding-left: 0; padding-right: 26px; }
html[dir="rtl"] .corp-visual .badge { left: auto; right: -28px; }
html[dir="rtl"] .cta::before { right: auto; left: -160px; }
html[dir="rtl"] .cta::after { right: auto; left: -60px; }
html[dir="rtl"] .foot-col a:hover { padding-left: 0; padding-right: 5px; }
html[dir="rtl"] .btn-text:hover .arrow { transform: translateX(-6px) rotate(180deg); }
html[dir="rtl"] .btn-text .arrow,
html[dir="rtl"] .btn-gold .arrow, html[dir="rtl"] .btn .arrow { transform: rotate(180deg); }

/* ---- Language toggle: reuse legacy .lang-toggle + .active markup ---- */
.utility .lang-toggle { display: flex; gap: 4px; }
.utility .lang-toggle button {
  padding: 4px 9px; border-radius: 3px; opacity: .6; transition: all .3s;
  font-size: 11px; letter-spacing: .14em; color: var(--ivory); background: none;
}
.utility .lang-toggle button.active { background: rgba(255,255,255,.12); opacity: 1; color: var(--gold-soft); }
.utility .lang-toggle button:hover { opacity: 1; }

/* ---- Reveal: never hide content without JS / when motion-reduced ---- */
.no-js .reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero-bg .slide { transition: opacity .4s ease !important; transform: none !important; }
}

/* ---- Gentle default photo treatment (Tweaks panel dropped in prod) ---- */
:root { --img-filter: saturate(1.06) contrast(1.02); }

/* ---- Skip link (a11y) — clip method, RTL-safe (no off-canvas offset) ---- */
.skip-link { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; padding:0; z-index:300; background:var(--emerald); color:#fff; }
.skip-link:focus { width:auto; height:auto; clip:auto; padding:12px 18px; left:12px; top:12px; }

/* ---- RTL-safe overflow + drawer side flip ---- */
html { overflow-x: hidden; }
html[dir="rtl"] .drawer { transform: translateX(-100%); }
html[dir="rtl"] .drawer.open { transform: translateX(0); }

/* ---- Eleventy port adjustments ---- */
.dest-grid .dcard { grid-column: span 4; }
@media (max-width: 900px){ .dest-grid .dcard, .dest-grid .dcard.tall { grid-column: span 1; } }
.pcard .img { display: block; }
.pcard .img:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* ============================================================
   PACKAGE DETAIL PAGE (generated per campaign package)
   ============================================================ */
.pkg-hero { position:relative; background-size:cover; background-position:center; color:#fff; padding: clamp(120px,15vw,190px) 0 clamp(48px,6vw,82px); }
.pkg-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(10,26,20,.93) 0%, rgba(10,26,20,.45) 60%, rgba(10,26,20,.55) 100%); }
.pkg-hero .wrap { position:relative; z-index:2; }
.pkg-hero h1 { color:#fff; margin:14px 0; max-width:18ch; }
.pkg-hero .lead { color:rgba(255,255,255,.86); max-width:60ch; }
.pkg-back { display:inline-flex; align-items:center; gap:.5em; color:rgba(255,255,255,.85); font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; margin-bottom:22px; transition:gap .3s; }
.pkg-back:hover { gap:.9em; color:#fff; }
.pkg-back svg { width:16px; height:16px; }
html[dir="rtl"] .pkg-back svg { transform: rotate(180deg); }
.pkg-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:30px; }
.pkg-body { padding: clamp(40px,6vw,80px) 0; }
.pkg-doc { background:var(--paper); box-shadow:var(--shadow-md); border-top:3px solid var(--gold); }
.pkg-doc object { width:100%; height:88vh; min-height:560px; display:block; border:0; }
.pkg-doc-fallback { padding:64px 30px; text-align:center; }
.pkg-doc-fallback p { margin-bottom:18px; color:var(--ink-soft); font-size:15px; }

/* ============================================================
   INNER CONTENT COMPONENTS (destination + shared inner pages)
   ============================================================ */
.info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.info-card { background:var(--paper); padding:34px 30px; }
.info-card h3 { font-size:24px; margin-bottom:12px; }
.info-card p { font-size:14px; line-height:1.65; color:var(--ink-mute); font-weight:var(--w-body); }
@media (max-width:980px){ .info-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .info-grid { grid-template-columns:1fr; } }

.note-card { max-width:880px; }
.note-card .lead { white-space:pre-line; }

.itin-list { list-style:none; max-width:880px; display:flex; flex-direction:column; gap:4px; }
.itin-item { display:flex; gap:22px; padding:22px 0; border-bottom:1px solid var(--line); }
.itin-item:first-child { border-top:1px solid var(--line); }
.itin-marker { flex:none; width:42px; height:42px; border-radius:50%; border:1px solid var(--gold); color:var(--gold); display:grid; place-items:center; font-family:var(--serif); font-size:18px; }
.itin-item p { font-size:15px; line-height:1.6; color:var(--ink-soft); font-weight:var(--w-body); }

.gal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gal-tile { aspect-ratio:4/3; background-size:cover; background-position:center; box-shadow:var(--shadow-sm); }
@media (max-width:780px){ .gal-grid { grid-template-columns:repeat(2,1fr); } }

.rel-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:780px){ .rel-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .rel-grid { grid-template-columns:1fr; } }

/* ============================================================
   INNER PAGES (visa + corporate) — reskin of legacy classes
   ============================================================ */
.container { width: min(var(--maxw), 100% - 64px); margin-inline: auto; }
.icon { width: 18px; height: 18px; fill: currentColor; }

/* Shared kickers → eyebrow look */
.corp-kicker, .visa-kicker, .kicker {
  display:inline-block; font-family:var(--sans); font-weight:var(--w-label); font-size:11px;
  letter-spacing:.42em; text-transform:uppercase; color:var(--gold); margin-bottom:14px;
}
html[dir="rtl"] .corp-kicker, html[dir="rtl"] .visa-kicker, html[dir="rtl"] .kicker { letter-spacing:0; }

/* Hero banners (corp + visa) */
.corp-hero, .visa-hero {
  position:relative; background:linear-gradient(135deg,#1d4a3b 0%,#143c30 55%,#0e2c23 100%);
  color:#fff; padding: clamp(120px,15vw,180px) 0 clamp(48px,6vw,80px);
}
.corp-hero h1, .visa-hero h1 { color:#fff; font-family:var(--serif); font-weight:var(--w-head); font-size:clamp(34px,5.2vw,66px); line-height:1.02; margin:14px 0; }
.corp-hero h1 em, .visa-hero h1 em { color:var(--gold-pale); font-style:italic; }
.corp-hero p, .visa-hero p { color:rgba(255,255,255,.84); font-weight:var(--w-body); font-size:clamp(15px,1.2vw,17px); line-height:1.7; max-width:72ch; }
.corp-hero p strong, .visa-hero p strong { color:var(--gold-soft); font-weight:600; }
.corp-breadcrumbs, .visa-breadcrumbs { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.65); margin-bottom:18px; }
.corp-breadcrumbs a, .visa-breadcrumbs a { color:var(--gold-soft); }
.corp-hero-tag { display:inline-block; color:var(--gold-soft); font-size:12px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:8px; }
.corp-hero-stats { display:flex; gap:44px; flex-wrap:wrap; margin-top:36px; }
.corp-hero-num { display:block; font-family:var(--serif); font-size:40px; color:var(--gold-soft); line-height:1; }
.corp-hero-label { font-size:12px; letter-spacing:.06em; color:rgba(255,255,255,.75); }

/* Section heads */
.corp-section-head, .visa-section-head { max-width:760px; margin-bottom:clamp(36px,5vw,56px); }
.corp-section-head h2, .visa-section-head h2 { font-family:var(--serif); font-weight:var(--w-head); font-size:clamp(30px,4vw,52px); line-height:1.04; margin-bottom:14px; letter-spacing:-.01em; }
.corp-section-head p, .visa-section-head p { color:var(--ink-soft); font-weight:var(--w-body); line-height:1.7; }

/* Grids */
.corp-mice-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.corp-cap-grid, .corp-process-grid, .corp-why-grid, .visa-cat-grid, .visa-process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.corp-process-grid { grid-template-columns:repeat(3,1fr); }
@media (max-width:980px){ .corp-mice-grid, .corp-cap-grid, .corp-why-grid, .visa-cat-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .corp-process-grid, .visa-process-grid { grid-template-columns:1fr; } }
@media (max-width:620px){ .corp-mice-grid, .corp-cap-grid, .corp-why-grid, .visa-cat-grid { grid-template-columns:1fr; } }

/* Cards (corp) */
.corp-mice-card { background:var(--paper); padding:32px 26px; }
.corp-mice-letter { font-family:var(--serif); font-size:42px; color:var(--gold); display:block; line-height:1; margin-bottom:10px; }
.corp-cap-card, .corp-process-card, .corp-why-card { background:var(--paper); border:1px solid var(--line); padding:30px 26px; }
.corp-cap-head { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px; }
.corp-cap-num, .corp-process-num { flex:none; width:38px; height:38px; border-radius:50%; border:1px solid var(--gold); color:var(--gold); display:grid; place-items:center; font-family:var(--serif); font-size:17px; }
.corp-cap-card h3, .corp-mice-card h3, .corp-process-card h3, .corp-why-card h3 { font-family:var(--serif); font-weight:var(--w-head); font-size:21px; line-height:1.15; }
.corp-cap-sub { color:var(--ink-mute); font-size:13.5px; font-weight:var(--w-body); margin:6px 0 14px; }
.corp-cap-list { list-style:none; display:flex; flex-direction:column; gap:8px; }
.corp-cap-list li { font-size:12.5px; color:var(--ink-soft); padding-left:16px; position:relative; line-height:1.4; }
html[dir="rtl"] .corp-cap-list li { padding-left:0; padding-right:16px; }
.corp-cap-list li::before { content:"·"; position:absolute; left:4px; color:var(--gold); font-weight:700; }
html[dir="rtl"] .corp-cap-list li::before { left:auto; right:4px; }
.corp-mice-card p, .corp-process-card p, .corp-why-card p { color:var(--ink-mute); font-weight:var(--w-body); font-size:14px; line-height:1.6; margin-top:8px; }
.corp-process-card h3 { margin-top:10px; }
.corp-dmc-note { background:var(--ivory-2); border-left:3px solid var(--gold); padding:24px 26px; margin-top:26px; font-size:14.5px; line-height:1.7; color:var(--ink-soft); }
html[dir="rtl"] .corp-dmc-note { border-left:none; border-right:3px solid var(--gold); }

/* RFP form */
.corp-rfp { background:var(--emerald-2); color:#fff; }
.corp-rfp-wrap { max-width:760px; margin-inline:auto; }
.corp-rfp h2 { color:#fff; font-family:var(--serif); font-weight:var(--w-head); font-size:clamp(28px,3.5vw,46px); }
.corp-rfp-intro { color:rgba(255,255,255,.8); font-weight:var(--w-body); margin:14px 0 28px; line-height:1.7; }
.corp-rfp-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
@media (max-width:680px){ .corp-rfp-row { grid-template-columns:1fr; } }
.corp-rfp-field { display:flex; flex-direction:column; gap:6px; }
.corp-rfp-field label { font-size:11.5px; letter-spacing:.1em; color:var(--gold-soft); text-transform:uppercase; }
.corp-rfp-field input, .corp-rfp-field select, .corp-rfp-field textarea {
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); color:#fff;
  padding:12px 14px; font-family:var(--sans); font-size:14px; border-radius:4px; width:100%;
}
.corp-rfp-field textarea { min-height:120px; resize:vertical; }
.corp-rfp-field input::placeholder, .corp-rfp-field textarea::placeholder { color:rgba(255,255,255,.4); }
.corp-rfp-field--full { margin-top:6px; }
.corp-form-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.corp-rfp-submit { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:26px; }
.corp-rfp-btn { background:var(--gold); color:#fff; border:none; padding:15px 32px; font-family:var(--sans); font-weight:var(--w-label); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; cursor:pointer; transition:all .4s var(--ease); }
.corp-rfp-btn:hover { background:#fff; color:var(--ink); transform:translateY(-2px); }
.corp-rfp-or { color:rgba(255,255,255,.55); font-size:13px; }
.corp-rfp-wa { display:inline-flex; align-items:center; gap:.6em; background:#1f8c52; color:#fff; padding:13px 22px; border-radius:999px; font-size:12.5px; letter-spacing:.06em; }
.corp-rfp-wa:hover { background:#1a7445; }
.corp-rfp-msg { margin-top:18px; font-size:14px; }
.corp-rfp-msg.ok { color:#8fe3b0; } .corp-rfp-msg.err { color:#f6b8b8; }

/* Visa checker widget */
.checker-card { background:var(--paper); border:1px solid var(--line); border-top:3px solid var(--gold); box-shadow:var(--shadow-sm); padding:34px clamp(24px,3vw,40px); max-width:900px; }
.checker-inputs { display:grid; grid-template-columns:1fr 1fr auto; gap:18px; align-items:end; }
@media (max-width:680px){ .checker-inputs { grid-template-columns:1fr; } }
.checker-field { display:flex; flex-direction:column; gap:7px; }
.checker-field label { font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.checker-field select { font-family:var(--serif); font-size:19px; color:var(--ink); border:none; border-bottom:1px solid var(--line); background:transparent; padding:8px 0; outline:none; cursor:pointer; }
.checker-btn { background:var(--emerald); color:var(--ivory); border:none; padding:15px 30px; font-family:var(--sans); font-weight:var(--w-label); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; cursor:pointer; transition:all .4s var(--ease); white-space:nowrap; }
.checker-btn:hover { background:var(--emerald-2); transform:translateY(-2px); }
.checker-result { margin-top:22px; font-size:15px; line-height:1.6; color:var(--ink-soft); }
.checker-result:empty { display:none; }

/* Visa category cards */
.vc-card { background:var(--paper); border:1px solid var(--line); padding:30px 26px; display:flex; flex-direction:column; }
.vc-flag { font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.vc-card h3 { font-family:var(--serif); font-weight:var(--w-head); font-size:23px; line-height:1.1; }
.vc-desc { color:var(--ink-mute); font-size:14px; font-weight:var(--w-body); line-height:1.55; margin:8px 0 16px; }
.vc-meta { display:flex; gap:20px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:14px; }
.vc-meta div { display:flex; flex-direction:column; gap:2px; }
.vc-meta strong { font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:600; }
.vc-meta span { font-family:var(--serif); font-size:16px; color:var(--ink); }
.vc-list { list-style:none; display:flex; flex-direction:column; gap:7px; margin-top:auto; }
.vc-list li { font-size:12.5px; color:var(--ink-soft); padding-left:16px; position:relative; line-height:1.4; }
html[dir="rtl"] .vc-list li { padding-left:0; padding-right:16px; }
.vc-list li::before { content:"·"; position:absolute; left:4px; color:var(--gold); font-weight:700; }
html[dir="rtl"] .vc-list li::before { left:auto; right:4px; }

/* Visa process steps */
.visa-step { background:var(--paper); border:1px solid var(--line); padding:28px 24px; }
.visa-step-num { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; border:1px solid var(--gold); color:var(--gold); font-family:var(--serif); font-size:18px; margin-bottom:16px; }
.visa-step h3 { font-family:var(--serif); font-weight:var(--w-head); font-size:21px; margin-bottom:8px; }
.visa-step p { color:var(--ink-mute); font-weight:var(--w-body); font-size:14px; line-height:1.6; }

/* Visa CTA band */
.visa-cta { background:var(--emerald); color:#fff; text-align:center; }
.visa-cta h2 { color:#fff; font-family:var(--serif); font-weight:var(--w-head); font-size:clamp(28px,3.6vw,48px); margin-bottom:16px; }
.visa-cta p { color:rgba(255,255,255,.82); font-weight:var(--w-body); max-width:54ch; margin:0 auto 30px; line-height:1.7; }
.visa-cta-actions { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.visa-cta-btn { display:inline-flex; align-items:center; gap:.6em; padding:15px 30px; font-family:var(--sans); font-weight:var(--w-label); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; transition:all .4s var(--ease); }
.visa-cta-btn--primary { background:var(--gold); color:#fff; }
.visa-cta-btn--primary:hover { background:#fff; color:var(--ink); transform:translateY(-2px); }
.visa-cta-btn--ghost { border:1px solid rgba(255,255,255,.4); color:#fff; }
.visa-cta-btn--ghost:hover { background:#fff; color:var(--ink); }

/* Package detail hero price */
.pkg-price { margin-top:22px; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.pkg-price .pkg-price-from { font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); }
.pkg-price strong { font-family:var(--serif); font-weight:var(--w-head); font-size:36px; color:#fff; line-height:1; }
.pkg-price .pkg-price-pp { font-family:var(--sans); font-size:12px; color:rgba(255,255,255,.7); letter-spacing:.06em; }
