@font-face {
  font-family: 'Fraunces';
  src: url('fonts/Fraunces-Variable.woff2') format('woff2-variations');
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Fraunces';
  src: url('fonts/Fraunces-Italic-Variable.woff2') format('woff2-variations');
  font-weight: 300 900;
  font-style: italic;
  font-display: swap;
}
:root{
  --ink: #1C1C1E;
  --ink-2: #262628;
  --ink-soft: #5A5A5D;
  --gold: #2E9E6C;
  --gold-light: #4CBE8B;
  --gold-deep: #217A52;
  --paper: #FAFAF9;
  --paper-2: #F0F0EF;
  --white: #FFFFFF;
  --line: rgba(28,28,30,0.13);
  --line-light: rgba(255,255,255,0.18);
  --shadow-soft: 0 18px 40px -22px rgba(28,28,30,0.35);
  --serif: 'Fraunces', 'Georgia', serif;
  --sans: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  --urdu: 'Noto Nastaliq Urdu', serif;
  --maxw: 1180px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.043 0 0 0 0 0.086 0 0 0 0 0.208 0 0 0 0.02 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");

  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family: var(--serif); margin:0; font-weight:600; line-height:1.15; }
p{ margin:0; }
.urdu{ font-family: var(--urdu); direction: rtl; line-height:2; text-align: right; }
.wrap{ max-width: var(--maxw); margin:0 auto; padding:0 28px; }
.eyebrow-line{ display:flex; align-items:center; gap:14px; }
.eyebrow-line .rule{ width:40px; height:16px; display:block; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16'%3E%3Cpath d='M2 13.5C2 13.5 9 3 20 3C31 3 38 13.5 38 13.5' stroke='%23A9743E' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3Cline x1='6' y1='13.5' x2='6' y2='9' stroke='%23A9743E' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='34' y1='13.5' x2='34' y2='9' stroke='%23A9743E' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:center left; }
.eyebrow-line .rule-light{ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16'%3E%3Cpath d='M2 13.5C2 13.5 9 3 20 3C31 3 38 13.5 38 13.5' stroke='%23D6A75C' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3Cline x1='6' y1='13.5' x2='6' y2='9' stroke='%23D6A75C' stroke-width='2' stroke-linecap='round'/%3E%3Cline x1='34' y1='13.5' x2='34' y2='9' stroke='%23D6A75C' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.eyebrow-line span:not(.rule){ font-size:0.92rem; letter-spacing:0.01em; color: var(--ink-soft); font-weight:500;}

section{ padding: 96px 0; }
@media (max-width: 720px){ section{ padding: 64px 0; } }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 15px 30px; font-family: var(--sans);
  font-weight:600; font-size:1rem; cursor:pointer; border:1.5px solid transparent;
  transition: transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease, clip-path .15s ease;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
  position:relative;
}
.btn:active{ transform: translateY(1px); }
.btn-gold{ background: var(--gold); color: var(--white); }
.btn-gold:hover{ background: var(--gold-deep); clip-path: polygon(0 0, 100% 0, 100% 100%, 12px 100%, 0 calc(100% - 12px)); }
.btn-outline{ background: var(--ink); border-color: var(--ink); color: var(--white); }
.btn-outline:hover{ background: var(--ink-2); border-color: var(--ink-2); }
.btn-outline-light{ background: var(--paper); border-color: var(--paper); color: var(--ink); }
.btn-outline-light:hover{ background: var(--white); border-color: var(--white); }

/* ---------- Header ---------- */
header{
  position: sticky; top:0; z-index: 50;
  background: rgba(246,242,233,0.92); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; padding: 16px 0; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:40px; width:auto; }
.brand-text{ font-family: var(--serif); font-size:1.28rem; font-weight:600; color: var(--ink); }
.brand-text small{ display:block; font-family: var(--sans); font-size:0.6rem; letter-spacing:0.16em; color: var(--gold); font-weight:600; margin-top:1px; }
nav.links{ display:flex; align-items:center; gap:20px; }
nav.links a{ font-size:0.9rem; font-weight:500; color: var(--ink-soft); transition: color .2s; white-space:nowrap; }
nav.links a:hover{ color: var(--ink); }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-cta .btn{ padding:12px 20px; font-size:0.9rem; white-space:nowrap; }
.nav-phone{ font-weight:600; font-size:0.88rem; display:flex; align-items:center; gap:6px; white-space:nowrap; }
.nav-phone svg{ width:16px; height:16px; flex:none; }
.menu-btn{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.menu-btn span{ display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; }

@media (max-width: 1180px){
  nav.links{ position:fixed; top:73px; left:0; right:0; background: var(--paper); flex-direction:column; align-items:flex-start; gap:0; border-bottom:1px solid var(--line); max-height:0; overflow:hidden; transition: max-height .3s ease; max-height:0 !important; overflow-y:auto; }
  nav.links.open{ max-height:70vh !important; }
  nav.links a{ width:100%; padding:16px 28px; border-top:1px solid var(--line); }
  .nav-cta .btn-outline{ display:none; }
  .menu-btn{ display:block; }
}

/* ---------- Hero ---------- */
.hero{ position:relative; padding:0; overflow:hidden; min-height: 92vh; display:flex; align-items:center; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg{ position:absolute; inset:0; z-index:0; background: var(--ink); overflow:hidden; }
.hero-slide{ position:absolute; inset:0; background-size:cover; background-position:center 20%; opacity:0; transition: opacity 1.4s ease; }
.hero-slide.is-active{ opacity:1; }
.hero-scrim{ position:absolute; inset:0; background: linear-gradient(105deg, rgba(14,14,15,0.94) 0%, rgba(18,18,19,0.86) 38%, rgba(22,22,23,0.62) 70%, rgba(28,28,30,0.38) 100%); }
.hero-textbg{ display:inline-block; max-width: 46ch; }
.hero-sub{ margin-top:22px; font-size:1.12rem; color: var(--ink-soft); max-width: 46ch; line-height:1.65; }
.hero-sub-light{ color: rgba(255,255,255,0.94); text-shadow: 0 1px 12px rgba(0,0,0,0.45); }
.hero-inner{ position:relative; z-index:1; padding-top: 120px; padding-bottom: 100px; }
.hero-eyebrow{ color: rgba(246,242,233,0.85); }
.hero-rotator-light .hr-line{ color: var(--white); text-shadow: 0 2px 18px rgba(0,0,0,0.4); }
.hero-trust-light{ color: rgba(246,242,233,0.85); text-shadow: 0 1px 10px rgba(0,0,0,0.4); }
.hero h1{ font-size: clamp(2.3rem, 4.2vw, 3.55rem); color: var(--ink); letter-spacing:-0.01em; }
.hero-rotator{ position:relative; display:block; min-height: 5.2em; }
@media (min-width: 640px){ .hero-rotator{ min-height: 2.5em; } }
.hr-line{ position:absolute; top:0; left:0; right:0; width:100%; opacity:0; transform: translateY(10px); transition: opacity .55s ease, transform .55s ease; font-family: var(--serif); font-size: clamp(2.3rem, 4.2vw, 3.55rem); color: var(--ink); letter-spacing:-0.01em; line-height:1.15; max-width:15ch; }
.hr-line.is-active{ position:relative; opacity:1; transform:none; }
.hero-actions{ margin-top:34px; display:flex; gap:16px; flex-wrap:wrap; }
.hero-trust{ margin-top:30px; display:flex; align-items:center; gap:10px; font-size:0.92rem; color: var(--ink-soft); }
.hero-trust svg{ width:18px; height:18px; color: var(--gold); flex:none; }

@media (max-width: 720px){
  .hero{ min-height: 82vh; }
  .hr-line{ max-width:none; }
}

/* ---------- Services ---------- */
.section-head{ max-width: 640px; margin-bottom:56px; }
.section-head h2{ font-size: clamp(1.9rem, 3vw, 2.5rem); margin-top:14px; }
.section-head p{ margin-top:16px; color: var(--ink-soft); font-size:1.05rem; }

.svc-row{ display:grid; grid-template-columns: 240px 1fr; gap:48px; align-items:center; padding: 40px 0; border-top:1px solid var(--line); }
.svc-row:last-child{ border-bottom:1px solid var(--line); }
.svc-row.rev{ grid-template-columns: 1fr 240px; }
.svc-row.rev .svc-icon{ order:2; }
.svc-icon{ width:112px; height:112px; border-radius:50%; background: var(--ink); display:flex; align-items:center; justify-content:center; }
.svc-icon svg{ width:52px; height:52px; color: var(--gold-light); }
.svc-text h3{ font-size:1.5rem; color:var(--ink); }
.svc-text p{ margin-top:12px; color: var(--ink-soft); font-size:1.02rem; max-width:56ch; }
.svc-text .urdu{ margin-top:8px; color: var(--ink-soft); font-size:1.15rem; }

@media (max-width: 720px){
  .svc-row, .svc-row.rev{ grid-template-columns: 1fr; text-align:left; }
  .svc-row.rev .svc-icon{ order:0; }
  .svc-icon{ width:84px; height:84px; }
  .svc-icon svg{ width:40px; height:40px; }
}

/* ---------- Destinations ---------- */
.destinations{ background: var(--paper-2); }
.country-grid-3{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; margin-top:8px; }
.country-feature{ position:relative; aspect-ratio: 16/11; clip-path: polygon(0 0, 100% 0, 100% 100%, 22px 100%, 0 calc(100% - 22px)); overflow:hidden; background-size:cover; background-position:center; display:flex; flex-direction:column; justify-content:flex-end; padding:26px 24px; isolation:isolate; }
.country-scrim{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(28,28,30,0.05) 0%, rgba(28,28,30,0.20) 45%, rgba(14,14,15,0.90) 100%); z-index:0; }
.country-body{ position:relative; z-index:1; }
.country-body h4{ font-family: var(--serif); color: var(--white); font-size:1.45rem; }
.country-body span{ display:block; margin-top:8px; font-size:0.86rem; color: rgba(246,242,233,0.9); line-height:1.5; }
.flag-grid{ display:grid; grid-template-columns: repeat(5,1fr); gap:14px; margin-top:8px; }
.flag-tile{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:20px 10px; border:1px solid var(--line); border-radius:10px; background:var(--white); text-align:center; text-decoration:none; transition: border-color .15s, box-shadow .15s; }
.flag-tile:hover{ border-color: var(--gold); box-shadow: var(--shadow-soft); }
.flag-tile img{ width:56px; height:40px; object-fit:cover; border-radius:4px; box-shadow:0 0 0 1px rgba(0,0,0,0.08); }
.flag-tile span{ font-family: var(--serif); font-size:0.92rem; color: var(--ink); font-weight:600; }
@media (max-width: 900px){ .flag-grid{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 560px){ .flag-grid{ grid-template-columns: repeat(2,1fr); } }

.dest-subhead{ margin-top:64px; margin-bottom:24px; }
.dest-subhead h3{ font-family: var(--serif); font-size:1.35rem; color: var(--ink); }

@media (max-width: 880px){
  .country-grid-3{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px){
  .country-grid-3{ grid-template-columns: 1fr; }
  .country-feature{ aspect-ratio: 16/10; }
}

.dest-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; margin-top:12px; }
.dest-card h4{ font-family: var(--serif); font-size:1.12rem; color: var(--ink); font-weight:600; }
.dest-card span{ display:block; margin-top:6px; font-size:0.88rem; color: var(--ink-soft); }
@media (max-width: 880px){ .dest-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .dest-grid{ grid-template-columns: 1fr; } }

/* ---------- Why (dark) ---------- */
.why{ background: var(--ink); color: var(--paper); }
.why .section-head p{ color: rgba(246,242,233,0.72); }
.why .eyebrow-line span{ color: var(--gold-light); }
.why-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:44px; margin-top:20px; }
.why-item{ border-top: 2px solid var(--gold); padding-top:22px; }
.why-item h4{ font-family: var(--sans); font-size:1.08rem; font-weight:600; color: var(--paper); }
.why-item p{ margin-top:10px; color: rgba(246,242,233,0.68); font-size:0.98rem; line-height:1.6; }
.why-quote{ margin-top:64px; border-top:1px solid var(--line-light); padding-top:44px; }
.why-quote p{ font-family: var(--serif); font-style:italic; font-size:clamp(1.3rem,2.4vw,1.7rem); max-width:820px; color: var(--paper); line-height:1.5; }
.why-quote span{ display:block; margin-top:18px; font-family: var(--sans); font-style:normal; font-size:0.92rem; color: var(--gold-light); }

@media (max-width: 780px){ .why-grid{ grid-template-columns: 1fr; gap:30px; } }

/* ---------- Process ---------- */
.process-strip{ display:grid; grid-template-columns: repeat(4,1fr); margin-top:20px; }
.step{ padding: 30px 26px 0 0; border-top: 2px solid var(--line); position:relative; }
.step-num{ font-family: var(--serif); font-size:1.6rem; color: var(--gold); }
.step h4{ font-family: var(--sans); font-size:1.05rem; font-weight:600; margin-top:14px; color: var(--ink); }
.step p{ margin-top:10px; color: var(--ink-soft); font-size:0.95rem; }

@media (max-width: 880px){
  .process-strip{ grid-template-columns: 1fr 1fr; row-gap:36px; column-gap:28px; }
}
@media (max-width: 520px){ .process-strip{ grid-template-columns: 1fr; } }

.process-strip-3{ grid-template-columns: repeat(3,1fr); row-gap:32px; }
@media (max-width: 880px){ .process-strip-3{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .process-strip-3{ grid-template-columns: 1fr; } }

.country-ref-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:14px; margin-top:8px; }
.country-ref-card{ display:flex; align-items:center; gap:12px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:var(--white); text-decoration:none; transition: border-color .15s, box-shadow .15s; }
.country-ref-card:hover{ border-color: var(--gold); box-shadow: var(--shadow-soft); }
.country-ref-card img{ width:34px; height:24px; object-fit:cover; border-radius:3px; box-shadow:0 0 0 1px rgba(0,0,0,0.08); flex-shrink:0; }
.country-ref-card h4{ font-family: var(--serif); font-size:0.92rem; color: var(--ink); font-weight:600; line-height:1.3; }
.country-ref-card span{ display:block; font-size:0.76rem; color: var(--ink-soft); margin-top:2px; }
@media (max-width: 900px){ .country-ref-grid{ grid-template-columns: repeat(2,1fr); } }

/* ---------- About ---------- */
.about{ background: var(--paper-2); }
.about-inner{ display:grid; grid-template-columns: 320px 1fr; gap:64px; align-items:start; }
.about-photo{ clip-path: polygon(0 0, 100% 0, 100% 100%, 26px 100%, 0 calc(100% - 26px)); overflow:hidden; box-shadow: var(--shadow-soft); }
.about-name{ font-size:1.55rem; margin-top:26px; }
.about-role{ color: var(--gold); font-weight:600; font-size:0.92rem; margin-top:4px; }
.about-text p{ color: var(--ink-soft); font-size:1.04rem; margin-top:18px; line-height:1.7; }
.about-badges{ margin-top:28px; display:flex; gap:14px; flex-wrap:wrap; }
.badge{ display:flex; align-items:center; gap:9px; border:1px solid var(--line); padding:10px 16px; clip-path: polygon(0 0, 100% 0, 100% 100%, 10px 100%, 0 calc(100% - 10px)); font-size:0.88rem; font-weight:500; background: var(--paper); }
.badge svg{ width:16px; height:16px; color:var(--gold); flex:none; }

@media (max-width: 820px){ .about-inner{ grid-template-columns: 1fr; } .about-photo{ max-width:280px; } }

/* ---------- Proprietors (two-person) ---------- */
.proprietors{ display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:start; margin-top:8px; }
.proprietor-primary .about-photo, .proprietor-primary .about-name{ }
.proprietor-primary{ }
.proprietor-secondary{ padding-top:18px; border-top:1px solid var(--line); }
@media (min-width: 821px){ .proprietor-secondary{ border-top:none; border-left:1px solid var(--line); padding-top:0; padding-left:40px; } }
.proprietor-photo{ width:100%; max-width:260px; aspect-ratio: 700/900; clip-path: polygon(0 0, 100% 0, 100% 100%, 22px 100%, 0 calc(100% - 22px)); overflow:hidden; box-shadow: var(--shadow-soft); }
.proprietor-secondary .proprietor-photo{ max-width:170px; }
.proprietor-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.proprietor-name-lg{ font-size:1.7rem; margin-top:22px; }
.proprietor-name-sm{ font-size:1.12rem; margin-top:18px; color: var(--ink); }
.proprietor-role{ color: var(--gold); font-weight:600; font-size:0.9rem; margin-top:4px; }
.proprietor-role-sm{ color: var(--ink-soft); font-weight:500; font-size:0.82rem; margin-top:3px; }
.proprietor-actions{ margin-top:20px; display:flex; gap:12px; flex-wrap:wrap; }
.proprietor-actions .btn{ padding:11px 20px; font-size:0.88rem; }
.proprietor-secondary .proprietor-actions .btn{ padding:9px 16px; font-size:0.82rem; }
.proprietors .about-badges{ margin-top:18px; }
.proprietor-secondary .badge{ font-size:0.8rem; padding:8px 13px; }
@media (max-width: 820px){ .proprietors{ grid-template-columns:1fr; gap:36px; } .proprietor-secondary{ border-left:none; padding-left:0; padding-top:28px; border-top:1px solid var(--line); } }

/* ---------- Contact ---------- */
.contact-inner{ display:grid; grid-template-columns: 1fr 1fr; gap:64px; }
.contact-item{ display:flex; gap:16px; padding: 22px 0; border-top:1px solid var(--line); }
.contact-item:last-child{ border-bottom:1px solid var(--line); }
.contact-item svg{ width:22px; height:22px; color:var(--gold); flex:none; margin-top:3px; }
.contact-item h4{ font-family: var(--sans); font-weight:600; font-size:1rem; }
.contact-item p{ color: var(--ink-soft); margin-top:6px; font-size:0.98rem; line-height:1.6; }
.contact-item .urdu{ margin-top:8px; font-size:1.05rem; color: var(--ink-soft); }
.contact-actions{ margin-top:8px; display:flex; gap:14px; flex-wrap:wrap; }
.map-frame{ width:100%; height:100%; min-height:340px; border-radius:16px; overflow:hidden; border:3px solid var(--gold); box-shadow: var(--shadow-soft); filter: grayscale(0.15) contrast(1.02); }
.map-frame iframe{ width:100%; height:100%; min-height:340px; border:0; display:block; }

@media (max-width: 880px){ .contact-inner{ grid-template-columns:1fr; } }

/* ---------- Footer ---------- */
footer{ background: var(--ink); color: rgba(246,242,233,0.65); padding: 56px 0 34px; }
.foot-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap; padding-bottom:38px; border-bottom:1px solid var(--line-light); }
.foot-brand{ display:flex; align-items:center; gap:12px; }
.foot-brand img{ height:34px; }
.foot-brand-text{ font-family: var(--serif); color: var(--paper); font-size:1.1rem; font-weight:600; }
.foot-tag{ margin-top:10px; font-size:0.92rem; max-width:320px; }
.foot-links{ display:flex; gap:56px; flex-wrap:wrap; }
.foot-col h5{ color: var(--paper); font-size:0.85rem; letter-spacing:0.02em; font-weight:600; margin-bottom:14px; }
.foot-col a, .foot-col p{ display:block; font-size:0.92rem; margin-bottom:9px; color: rgba(246,242,233,0.65); }
.foot-col a:hover{ color: var(--gold-light); }
.foot-bottom{ display:flex; justify-content:space-between; padding-top:26px; font-size:0.84rem; flex-wrap:wrap; gap:10px; }

@media (max-width: 640px){ .foot-top{ flex-direction:column; } }

.reveal{ opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ============================================================
   MULTI-PAGE SITE ADDITIONS
   ============================================================ */

/* ---------- Dropdown nav ---------- */
@media (min-width: 1181px){ nav.links{ position:static; } }
.has-drop{ position:relative; }
.has-drop > a{ display:flex; align-items:center; gap:5px; cursor:pointer; }
.has-drop > a svg{ width:11px; height:11px; transition: transform .2s; }
.has-drop:hover > a svg{ transform: rotate(180deg); }
.dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  background: var(--white); border:1px solid var(--line); box-shadow: var(--shadow-soft);
  padding:14px; display:grid; grid-template-columns:repeat(2,180px); gap:2px;
  opacity:0; pointer-events:none; transition: opacity .18s ease, transform .18s ease;
  z-index:60; clip-path: polygon(0 0, 100% 0, 100% 100%, 16px 100%, 0 calc(100% - 16px));
}
.dropdown.single-col{ grid-template-columns: 240px; }
.dropdown a{ white-space: normal; }
.has-drop:hover .dropdown{ opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.dropdown a{ display:block; padding:9px 12px; font-size:0.9rem; color: var(--ink-soft); border-radius:2px; }
.dropdown a:hover{ background: var(--paper); color: var(--ink); }
.dropdown-tag{ display:inline-block; font-size:0.62rem; letter-spacing:0.06em; background:var(--paper-2); color:var(--ink-soft); padding:2px 6px; margin-left:6px; border-radius:2px; vertical-align:middle; }

@media (max-width: 1180px){
  .dropdown{ position:static; transform:none; box-shadow:none; border:none; opacity:1; pointer-events:auto; display:none; grid-template-columns:1fr; padding:0 0 0 14px; background:transparent; clip-path:none; }
  .has-drop.open .dropdown{ display:grid; }
  .has-drop > a{ justify-content:space-between; }
  .has-drop:hover .dropdown{ opacity:0; pointer-events:none; transform:none; }
  .has-drop.open .dropdown{ opacity:1; pointer-events:auto; transform:none; }
}

/* ---------- Page hero banner (interior pages) ---------- */
.page-banner{ position:relative; padding: 84px 0 64px; overflow:hidden; }
.page-banner-bg{ position:absolute; inset:0; background-size:cover; background-position:center 20%; }
.page-banner-scrim{ position:absolute; inset:0; background: linear-gradient(100deg, rgba(14,14,15,0.90) 0%, rgba(18,18,19,0.78) 45%, rgba(22,22,23,0.55) 100%); }
.page-banner .wrap{ position:relative; z-index:1; }
.page-banner h1{ font-size: clamp(2rem, 3.6vw, 3rem); color: var(--white); text-shadow: 0 2px 18px rgba(0,0,0,0.4); }
.page-banner p{ margin-top:16px; font-size:1.08rem; color: rgba(255,255,255,0.9); max-width:56ch; text-shadow: 0 1px 12px rgba(0,0,0,0.4); }
.breadcrumb{ font-size:0.85rem; color: rgba(255,255,255,0.7); margin-bottom:18px; }
.breadcrumb a{ color: rgba(255,255,255,0.85); }
.breadcrumb a:hover{ color: var(--gold-light); }
.page-banner-plain{ background: var(--ink); padding: 84px 0 56px; }
.page-banner-plain h1{ color: var(--white); font-size: clamp(2rem, 3.6vw, 3rem); }
.page-banner-plain p{ margin-top:16px; font-size:1.08rem; color: rgba(246,242,233,0.82); max-width:60ch; }

/* ---------- Course finder widget ---------- */
.finder{ background: var(--white); border:1px solid var(--line); clip-path: polygon(0 0, 100% 0, 100% 100%, 24px 100%, 0 calc(100% - 24px)); box-shadow: var(--shadow-soft); padding:8px; margin-top: -64px; position:relative; z-index:5; }
.finder-tabs{ display:flex; gap:4px; padding:8px 8px 0; }
.finder-tab{ padding:12px 20px; font-size:0.92rem; font-weight:600; color: var(--ink-soft); cursor:pointer; border-bottom:2px solid transparent; }
.finder-tab.active{ color: var(--ink); border-bottom-color: var(--gold); }
.finder-panel{ display:none; padding:22px 20px 26px; }
.finder-panel.active{ display:block; }
.finder-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.finder-item{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:14px 8px; border:1px solid var(--line); cursor:pointer; transition: border-color .15s, background .15s; text-align:center; font-size:0.82rem; font-weight:500; color:var(--ink-soft); }
.finder-item:hover{ border-color: var(--gold); background: var(--paper); color:var(--ink); }
.finder-item .fi-emoji{ font-size:1.6rem; }
.finder-item .fi-flag{ width:36px; height:26px; object-fit:cover; border-radius:3px; box-shadow:0 0 0 1px rgba(0,0,0,0.08); }
.dest-card{ position:relative; }
.dest-photo-wrap{ position:relative; }
.dest-photo-wrap img:first-child{ width:100%; height:170px; object-fit:cover; display:block; clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 0 100%); }
.dest-photo-wrap .dest-badge-flag{ position:absolute; bottom:-14px; left:16px; width:40px; height:28px; object-fit:cover; border-radius:4px; box-shadow:0 0 0 3px var(--white), 0 6px 16px -4px rgba(28,28,30,0.4); display:block; }
@media (max-width: 780px){ .finder-grid{ grid-template-columns:repeat(3,1fr); } .finder{ margin-top:-40px; } }
@media (max-width: 480px){ .finder-grid{ grid-template-columns:repeat(2,1fr); } .finder-tabs{ overflow-x:auto; } }

/* ---------- Popup chat widget ---------- */
.chat-bubble{ position:fixed; bottom:24px; right:24px; z-index:200; width:60px; height:60px; border-radius:50%; background: var(--gold); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 28px -8px rgba(28,28,30,0.5); cursor:pointer; border:none; }
.chat-bubble svg{ width:26px; height:26px; color:var(--white); }
.chat-panel{ position:fixed; bottom:96px; right:24px; z-index:200; width:340px; max-width:calc(100vw - 32px); background:var(--white); box-shadow:0 24px 60px -20px rgba(28,28,30,0.55); clip-path: polygon(0 0, 100% 0, 100% 100%, 18px 100%, 0 calc(100% - 18px)); display:none; overflow:hidden; }
.chat-panel.open{ display:block; }
.chat-head{ background: var(--ink); color:var(--white); padding:18px 20px; }
.chat-head strong{ font-family: var(--serif); font-size:1.05rem; display:block; }
.chat-head span{ font-size:0.8rem; color: rgba(246,242,233,0.7); display:block; margin-top:3px; }
.chat-body{ padding:18px 20px; max-height:60vh; overflow-y:auto; }
.chat-body p{ font-size:0.88rem; color:var(--ink-soft); margin-bottom:14px; line-height:1.5; }
.chat-field{ margin-bottom:12px; }
.chat-field label{ display:block; font-size:0.78rem; font-weight:600; color:var(--ink); margin-bottom:5px; }
.chat-field input, .chat-field select{ width:100%; padding:10px 12px; border:1px solid var(--line); font-family:var(--sans); font-size:0.88rem; background:var(--paper); color:var(--ink); }
.chat-submit{ width:100%; margin-top:6px; }
.chat-close{ position:absolute; top:14px; right:16px; background:none; border:none; color:rgba(246,242,233,0.7); cursor:pointer; font-size:1.2rem; line-height:1; }

/* ---------- Card grids (destinations hub, services hub, offices) ---------- */
.grid-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:8px; }
.grid-card{ background: var(--white); border:1px solid var(--line); overflow:hidden; clip-path: polygon(0 0, 100% 0, 100% 100%, 18px 100%, 0 calc(100% - 18px)); transition: box-shadow .2s ease; }
.grid-card:hover{ box-shadow: var(--shadow-soft); }
.grid-card img{ width:100%; height:170px; object-fit:cover; display:block; }
.grid-card-body{ padding:20px 22px 24px; }
.grid-card-body h3{ font-size:1.2rem; }
.grid-card-body p{ margin-top:10px; font-size:0.92rem; color: var(--ink-soft); line-height:1.55; }
.grid-card-tag{ display:inline-block; font-size:0.68rem; font-weight:600; letter-spacing:0.03em; padding:4px 10px; margin-bottom:12px; }
.tag-active{ background: var(--gold); color:var(--white); }
.tag-info{ background: var(--paper-2); color: var(--ink-soft); }
.grid-card-link{ margin-top:14px; display:inline-block; font-size:0.88rem; font-weight:600; color:var(--gold-deep); }
@media (max-width: 980px){ .grid-cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 620px){ .grid-cards{ grid-template-columns:1fr; } }

/* ---------- Office cards ---------- */
.office-card{ background: var(--white); border:1px solid var(--line); padding:26px 24px; clip-path: polygon(0 0, 100% 0, 100% 100%, 16px 100%, 0 calc(100% - 16px)); }
.office-card h3{ font-size:1.15rem; }
.office-card .office-status{ display:inline-block; font-size:0.68rem; font-weight:600; padding:3px 9px; margin:8px 0 12px; }
.office-card p{ font-size:0.9rem; color:var(--ink-soft); line-height:1.6; margin-top:4px; }

/* ---------- Simple content sections for interior pages ---------- */
.content-block{ max-width:760px; }
.content-block h2{ font-size:1.7rem; margin-top:44px; }
.content-block h2:first-child{ margin-top:0; }
.content-block p{ margin-top:16px; color:var(--ink-soft); font-size:1.02rem; line-height:1.7; }
.content-block ul{ margin:16px 0 0; padding-left:20px; }
.content-block li{ color:var(--ink-soft); font-size:1.02rem; line-height:1.7; margin-bottom:6px; }
.disclaimer-box{ margin-top:32px; padding:18px 20px; background: var(--paper-2); border-left:3px solid var(--gold); font-size:0.9rem; color:var(--ink-soft); line-height:1.6; }

.mini-cta{ background: var(--ink); padding:56px 0; text-align:center; }
.mini-cta h3{ color:var(--white); font-size:1.7rem; }
.mini-cta p{ color: rgba(246,242,233,0.75); margin-top:10px; font-size:1rem; }
.mini-cta .hero-actions{ justify-content:center; margin-top:26px; }
