*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bg:        #faf8f4;
  --bg-alt:    #f2ede3;
  --bg-dark:   #eee8da;
  --navy:      #1c1208;
  --navy-mid:  #261a0a;
  --gold:      #b8921f;
  --gold-lt:   #d4aa50;
  --gold-pale: #f0e4c0;
  --text:      #1a2535;
  --text-mid:  #3d4f62;
  --gray:      #7a8ea8;
  --border:    rgba(26,37,53,.12);
  --border-hi: rgba(184,146,31,.45);
  --border-gold: rgba(184,146,31,.2);
  --white:     #ffffff;
  --shadow:    0 4px 32px rgba(26,37,53,.08);
  --shadow-lg: 0 12px 60px rgba(26,37,53,.13);
}
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
  cursor: none;
}

/* ─── CURSOR ─── */
.cur { width:8px;height:8px;background:var(--gold);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .25s,height .25s; }
.cur-ring { width:32px;height:32px;border:1px solid rgba(184,146,31,.45);border-radius:50%;position:fixed;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .3s,height .3s; }

/* ─── NAV ─── */
nav {
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 64px;
  transition:all .4s ease;
}
nav.scrolled {
  background:rgba(250,248,244,.96);
  backdrop-filter:blur(20px);
  padding:14px 64px;
  border-bottom:1px solid rgba(26,37,53,.1);
  box-shadow:var(--shadow);
}
/* Service pages: always show solid nav from the top */
nav.nav-solid {
  background:rgba(250,248,244,.98);
  backdrop-filter:blur(20px);
  padding:14px 64px;
  border-bottom:1px solid rgba(26,37,53,.1);
  box-shadow:var(--shadow);
}
@media(max-width:900px){
  nav.nav-solid { padding:11px 22px; }
}
.nav-logo-text {
  font-family:'Cormorant Garamond',serif;
  font-size:1.15rem;font-weight:600;letter-spacing:.1em;
  color:var(--navy);text-decoration:none;
  display:flex;align-items:center;gap:2px;
}
.nav-logo-text span { color:var(--gold); }
.logo-placeholder-hero {
  display:inline-flex;align-items:center;gap:16px;
  padding:20px 36px;
  border:1.5px dashed rgba(184,146,31,.4);
  background:rgba(184,146,31,.04);
  border-radius:6px;
}
.lp-oz {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3rem,8vw,6.5rem);font-weight:600;line-height:1;
  background:linear-gradient(135deg,#c0476a,#b8921f,#6b4fa0);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.lp-sub {
  font-family:'Jost',sans-serif;font-size:clamp(.65rem,1.4vw,.9rem);
  font-weight:300;letter-spacing:.45em;text-transform:uppercase;
  color:var(--text-mid);line-height:1.7;
}
.nav-links { display:flex;gap:40px;list-style:none; }
.nav-links a {
  font-size:.69rem;font-weight:400;letter-spacing:.2em;
  text-transform:uppercase;color:var(--text-mid);text-decoration:none;
  transition:color .3s;position:relative;
}
.nav-links a::after {
  content:'';position:absolute;bottom:-3px;left:0;
  width:0;height:1px;background:var(--gold);transition:width .3s;
}
.nav-links a:hover { color:var(--gold); }
.nav-links a:hover::after { width:100%; }
.nav-cta {
  padding:10px 26px;background:var(--navy);
  color:#fff;font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;text-decoration:none;transition:all .3s;
}
.nav-cta:hover { background:var(--gold);color:#fff; }

/* ─── HAMBURGER (mobile) ─── */
.hamburger {
  display:none;flex-direction:column;gap:5px;cursor:pointer;
  background:none;border:none;padding:4px;
}
.hamburger span {
  width:24px;height:1.5px;background:var(--navy);
  display:block;transition:all .3s;
}
.mobile-menu {
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;
  background:var(--bg);z-index:190;
  flex-direction:column;align-items:center;justify-content:center;gap:36px;
}
.mobile-menu.open { display:flex; }
.mobile-menu a {
  font-family:'Cormorant Garamond',serif;
  font-size:2.4rem;font-weight:300;color:var(--navy);
  text-decoration:none;letter-spacing:.05em;
  transition:color .3s;
}
.mobile-menu a:hover { color:var(--gold); }
.mobile-close {
  position:absolute;top:28px;right:32px;
  font-size:1.8rem;background:none;border:none;
  color:var(--text-mid);cursor:pointer;line-height:1;
}

/* ─── HERO ─── */
.hero {
  min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;position:relative;overflow:hidden;
  padding:120px 40px 100px;
  background:linear-gradient(160deg, var(--bg) 0%, var(--bg-alt) 100%);
}
.hero-pattern {
  position:absolute;inset:0;opacity:.035;
  background-image:
    linear-gradient(var(--gold) 1px, transparent 1px),
    linear-gradient(90deg, var(--gold) 1px, transparent 1px);
  background-size:60px 60px;
}
.hero-content { position:relative;z-index:2;display:flex;flex-direction:column;align-items:center; }
.hero-eyebrow {
  font-size:.68rem;letter-spacing:.35em;text-transform:uppercase;
  color:var(--gold);margin-bottom:32px;
  display:flex;align-items:center;gap:14px;
  opacity:0;animation:fadeUp .7s ease .2s forwards;
}
.hero-eyebrow::before,.hero-eyebrow::after { content:'';width:36px;height:1px;background:var(--gold); }
.hero-logo-wrap {
  opacity:0;transform:translateY(-12px) scale(.95);
  animation:fadeScale .9s cubic-bezier(.16,1,.3,1) .4s forwards;
  margin-bottom:36px;
}
.hero-rule {
  width:1px;height:50px;
  background:linear-gradient(to bottom, var(--gold), transparent);
  margin:0 auto 36px;
  opacity:0;animation:fadeUp .7s ease .9s forwards;
}
.hero-headline {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.6rem,5.5vw,5rem);
  font-weight:300;line-height:1.08;color:var(--navy);
  max-width:820px;
  opacity:0;animation:fadeUp .85s ease 1s forwards;
}
.hero-headline em { font-style:italic;color:var(--gold); }
.hero-sub {
  font-size:.92rem;line-height:1.95;color:var(--text-mid);
  max-width:520px;margin-top:22px;
  opacity:0;animation:fadeUp .85s ease 1.2s forwards;
}
.hero-ctas {
  display:flex;gap:16px;margin-top:44px;flex-wrap:wrap;justify-content:center;
  opacity:0;animation:fadeUp .85s ease 1.4s forwards;
}
.btn-primary {
  padding:15px 40px;background:var(--navy);color:#fff;
  font-size:.7rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;text-decoration:none;transition:all .3s;
  display:inline-block;
}
.btn-primary:hover { background:var(--gold);transform:translateY(-2px); }
.btn-outline {
  padding:15px 40px;border:1.5px solid var(--navy);
  color:var(--navy);font-size:.7rem;font-weight:400;letter-spacing:.18em;
  text-transform:uppercase;text-decoration:none;transition:all .3s;
  display:inline-block;
}
.btn-outline:hover { border-color:var(--gold);color:var(--gold); }
.hero-scroll {
  position:absolute;bottom:32px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gray);z-index:10;
  opacity:0;animation:fadeUp .8s ease 1.8s forwards;
}
.scroll-line {
  width:1px;height:44px;
  background:linear-gradient(to bottom, var(--gold), transparent);
  animation:scrollPulse 2.2s ease-in-out 2s infinite;
}

/* ─── MARQUEE ─── */
.marquee-wrap {
  border-top:1px solid rgba(212,170,80,.25);border-bottom:1px solid rgba(212,170,80,.25);
  padding:14px 0;overflow:hidden;background:var(--navy);
}
.marquee-track {
  display:flex;gap:52px;
  animation:marquee 28s linear infinite;width:max-content;
}
.marquee-item {
  font-family:'Cormorant Garamond',serif;font-size:1.05rem;
  font-style:italic;color:var(--gold-lt);white-space:nowrap;
  display:flex;align-items:center;gap:52px;
}
.marquee-item::after { content:'◆';font-size:.42rem;color:rgba(212,170,80,.35); }

/* ─── SECTIONS ─── */
.sec { padding:120px 80px; }
.sec-alt { background:var(--bg-alt); }
.sec-navy { background:var(--navy); }
.sec-label {
  font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold);margin-bottom:16px;
  display:flex;align-items:center;gap:14px;
}
.sec-label::before { content:'';width:28px;height:1px;background:var(--gold); }
.sec-label.light { color:var(--gold-lt); }
.sec-label.light::before { background:var(--gold-lt); }.sec-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,3.8vw,3.8rem);
  font-weight:300;line-height:1.1;color:var(--navy);margin-bottom:26px;
}
.sec-title em { font-style:italic;color:var(--gold); }
.sec-title.light { color:#fff; }
.sec-title.light em { color:var(--gold-lt); }
.body-txt { font-size:.89rem;line-height:1.95;color:var(--text-mid);margin-bottom:14px; }
.body-txt.light { color:rgba(255,255,255,.65); }
.gold-rule { width:44px;height:1px;background:var(--gold);margin:26px 0; }

/* ─── ABOUT ─── */
.about-grid { display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:center; }
.img-stack { position:relative;height:560px; }
.img-main {
  position:absolute;top:0;left:0;width:76%;height:83%;z-index:1;
  object-fit:cover;box-shadow:var(--shadow-lg);
}
.img-accent {
  position:absolute;bottom:0;right:0;width:55%;height:56%;z-index:2;
  object-fit:cover;border:5px solid var(--bg);
  box-shadow:var(--shadow-lg);
}
.img-badge {
  position:absolute;top:46%;left:56%;transform:translate(-50%,-50%);
  width:104px;height:104px;border-radius:50%;
  background:linear-gradient(135deg,#c0476a,#6b4fa0);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;z-index:4;box-shadow:0 8px 32px rgba(192,71,106,.4);
}
.badge-n { font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:600;color:#fff;line-height:1; }
.badge-l { font-size:.46rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78);margin-top:3px; }
.stats-row { display:flex;gap:40px;margin-top:44px;flex-wrap:wrap; }
.stat { display:flex;flex-direction:column;gap:5px; }
.stat-n { font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;color:var(--navy);line-height:1; }
.stat-n span { color:var(--gold); }
.stat-l { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gray); }

/* ─── SERVICES ─── */
.services-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:60px; }
.svc-card {
  position:relative;height:520px;overflow:hidden;cursor:pointer;
}
.svc-card img {
  width:100%;height:100%;object-fit:cover;
  filter:brightness(.42) saturate(.75);
  transform:scale(1.04);
  transition:transform .7s ease,filter .5s ease;
}
.svc-card:hover img { transform:scale(1.1);filter:brightness(.32) saturate(.65); }
.svc-num {
  position:absolute;top:28px;right:30px;
  font-family:'Cormorant Garamond',serif;
  font-size:5rem;font-weight:300;
  color:rgba(255,255,255,.07);line-height:1;
  transition:color .4s;
}
.svc-card:hover .svc-num { color:rgba(212,170,80,.2); }
.svc-body {
  position:absolute;bottom:0;left:0;right:0;padding:40px 38px;
  background:linear-gradient(to top,rgba(28,18,8,.98) 0%,rgba(28,18,8,.5) 65%,transparent 100%);
  transform:translateY(18px);transition:transform .4s ease;
}
.svc-card:hover .svc-body { transform:translateY(0); }
.svc-tag { font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:8px; }
.svc-name { font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;color:#fff;margin-bottom:10px; }
.svc-desc {
  font-size:.82rem;line-height:1.75;color:rgba(255,255,255,.6);
  opacity:0;transform:translateY(10px);
  transition:opacity .35s .1s,transform .35s .1s;
}
.svc-card:hover .svc-desc { opacity:1;transform:translateY(0); }
.svc-link {
  display:inline-flex;align-items:center;gap:8px;margin-top:18px;
  font-size:.67rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-lt);text-decoration:none;
  opacity:0;transform:translateY(8px);
  transition:opacity .35s .15s,transform .35s .15s;
}
.svc-card:hover .svc-link { opacity:1;transform:translateY(0); }
.svc-arrow { transition:transform .3s;display:inline-block; }
.svc-link:hover .svc-arrow { transform:translateX(5px); }

/* ─── WHY ─── */
.why-grid { display:grid;grid-template-columns:1fr 1.6fr;gap:100px;align-items:start; }
.why-sticky { position:sticky;top:120px; }
.why-list { display:flex;flex-direction:column; }
.why-item {
  padding:32px 0;border-bottom:1px solid rgba(26,37,53,.1);
  display:grid;grid-template-columns:50px 1fr;gap:24px;align-items:start;
  transition:padding-left .3s;
}
.why-item:first-child { border-top:1px solid rgba(26,37,53,.1); }
.why-item:hover { padding-left:8px; }
.why-icon { font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:300;color:var(--gold);margin-top:2px; }
.why-t { font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:400;color:var(--navy);margin-bottom:8px; }
.why-p { font-size:.83rem;line-height:1.85;color:var(--text-mid); }

/* ─── EGYPT → USA MAP ─── */
.map-section {
  padding:100px 80px;
  background:var(--navy);
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr);
  gap:72px;
  align-items:stretch;
}
.map-section > div:first-child {
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.map-svg-wrap {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top:24px;
}
.route-nodes { display:none; }
.r-node { display:flex;align-items:flex-start;gap:14px; }
.r-dot {
  width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:5px;
  background:var(--gold-lt);box-shadow:0 0 14px rgba(212,170,80,.6);
  animation:pulse 2.4s ease-in-out infinite;
}
.r-node:nth-child(2) .r-dot { background:#c0476a;box-shadow:0 0 14px rgba(192,71,106,.6);animation-delay:.8s; }
.r-lbl { font-size:.85rem;line-height:1.5;color:rgba(255,255,255,.55); }
.r-lbl strong { color:#fff;font-weight:400;display:block;margin-bottom:2px;font-size:.95rem; }

/* ─── CONTACT ─── */
.contact-grid { display:grid;grid-template-columns:1fr 1.1fr;gap:90px; }
.contact-details { display:flex;flex-direction:column;gap:28px;margin-top:48px; }
.c-item { display:flex;flex-direction:column;gap:6px; }
.c-label { font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold); }
.c-val { font-size:.92rem;color:var(--text);font-weight:300; }
.c-phone {
  font-family:'Cormorant Garamond',serif;
  font-size:1.55rem;font-weight:300;color:var(--navy);
  text-decoration:none;display:block;margin-top:2px;transition:color .3s;
}
.c-phone:hover { color:var(--gold); }
.map-embed {
  width:100%;height:220px;border:none;
  filter:grayscale(20%) contrast(1.05);
  margin-top:16px;
  box-shadow:var(--shadow);
}
.contact-form { padding-top:68px;display:flex;flex-direction:column;gap:22px; }
.f-row { display:grid;grid-template-columns:1fr 1fr;gap:20px; }
.f-group { display:flex;flex-direction:column;gap:8px; }
.f-label { font-size:.59rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gray); }
.f-input,.f-ta {
  background:transparent;border:none;
  border-bottom:1.5px solid rgba(26,37,53,.2);
  padding:12px 0 12px 4px;color:var(--text);
  font-family:'Jost',sans-serif;font-size:.87rem;font-weight:300;
  outline:none;transition:border-color .3s;width:100%;
}
.f-input::placeholder,.f-ta::placeholder { color:rgba(122,142,168,.45); }
.f-input:focus,.f-ta:focus { border-bottom-color:var(--gold); }
.f-ta { resize:none;min-height:88px; }

/* ─── CONTACT FEEDBACK (inline text, no modal) ─── */
.form-feedback {
  margin-top:16px;padding:14px 16px;font-size:.85rem;line-height:1.55;
  font-family:'Jost',sans-serif;font-weight:400;
  border-left:3px solid var(--gold);background:rgba(255,255,255,.85);
  color:var(--navy);white-space:pre-wrap;
}
.form-feedback.form-feedback--ok {
  border-left-color:#2d6a4f;background:rgba(45,106,79,.08);color:var(--text);
}
.form-feedback.form-feedback--err {
  border-left-color:#9b2226;background:rgba(155,34,38,.07);color:var(--text);
}

/* ─── FOOTER ─── */
footer {
  background:var(--navy);border-top:1px solid rgba(255,255,255,.08);
  padding:44px 80px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;
}
.footer-logo-txt {
  font-family:'Cormorant Garamond',serif;
  font-size:1.1rem;font-weight:600;letter-spacing:.1em;
  color:#fff;text-decoration:none;
}
.footer-logo-txt span { color:var(--gold-lt); }
.footer-copy { font-size:.68rem;color:rgba(255,255,255,.35); }
.footer-links { display:flex;gap:28px; }
.footer-links a {
  font-size:.67rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.4);text-decoration:none;transition:color .3s;
}
.footer-links a:hover { color:var(--gold-lt); }

/* ─── KEYFRAMES ─── */
@keyframes fadeScale { to { opacity:1;transform:translateY(0) scale(1); } }
@keyframes fadeUp    { to { opacity:1;transform:translateY(0); } }
@keyframes marquee   { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes pulse     { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.72)} }
@keyframes scrollPulse { 0%{opacity:1;transform:scaleY(1)} 100%{opacity:0;transform:scaleY(.2)} }

/* ─── REVEAL ─── */
.reveal { opacity:0;transform:translateY(32px);transition:opacity .75s ease,transform .75s ease; }
.reveal.in { opacity:1;transform:translateY(0); }
.d1{transition-delay:.14s}.d2{transition-delay:.28s}.d3{transition-delay:.42s}.d4{transition-delay:.56s}

/* ─── MOBILE ─── */
@media(max-width:900px){
  nav { padding:16px 22px; }
  nav.scrolled { padding:11px 22px; }
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; }

  .hero { padding:100px 24px 80px; }
  .hero-headline { font-size:clamp(2.2rem,8vw,3.2rem); }

  .sec { padding:72px 24px; }
  .about-grid { grid-template-columns:1fr;gap:52px; }
  .img-stack { height:340px; }

  .services-grid { grid-template-columns:1fr;gap:3px; }
  .svc-card { height:400px; }
  /* Always show desc on mobile */
  .svc-body { transform:translateY(0); }
  .svc-desc { opacity:1;transform:translateY(0); }
  .svc-link { opacity:1;transform:translateY(0); }

  .why-grid { grid-template-columns:1fr;gap:52px; }
  .why-sticky { position:static; }

  .map-section {
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:40px 20px;
    gap:16px;
    text-align:center;
  }
  .map-section > div:first-child {
    width:100%;
    max-width:420px;
    align-items:center;
  }
  .map-svg-wrap {
    padding-top:0;
    margin-top:8px;
    max-width:420px;
    width:100%;
    justify-content:center;
  }
  .map-svg-wrap svg {
    max-height:260px;
    margin:0 auto;
    display:block;
  }

  .contact-grid { grid-template-columns:1fr;gap:52px; }
  .contact-form { padding-top:0; }
  .f-row { grid-template-columns:1fr; }

  footer { padding:36px 24px;flex-direction:column;text-align:center;gap:16px; }
  .footer-links { justify-content:center; }

  .hero-ctas { flex-direction:column;align-items:center; }
  .btn-primary,.btn-outline { width:100%;text-align:center;max-width:300px; }

  .stats-row { gap:28px; }
}
@media(max-width:480px){
  .logo-placeholder-hero { padding:14px 22px;gap:10px; }
  .lp-oz { font-size:clamp(2.5rem,14vw,4rem); }
}

  /* ── LOGO ── */
  .nav-logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    transition: opacity .3s, transform .3s;
    flex-shrink: 0;
  }
  .nav-logo-link:hover { opacity: .85; transform: scale(1.03); }
  .logo-img-nav {
    height: 80px;
    width: auto;
    display: block;
  }

  /* Hero: larger dark pill */
  .hero-logo-badge {
    background: var(--navy);
    padding: 18px 36px;
    border-radius: 14px;
    display: inline-flex;
    box-shadow: 0 8px 40px rgba(28,18,8,.18);
  }
  .logo-img-hero {
    width: min(380px, 62vw); height: auto;
    display: block;
    mix-blend-mode: screen;
  }

  /* Dark sections (footer, marquee): pure screen blend, no pill needed */
  .logo-img-dark {
    height: 52px; width: auto;
    display: block;
    mix-blend-mode: screen;
    filter: brightness(1.05);
  }
  .footer-logo-img { display: flex; align-items: center; text-decoration: none; }

  /* ── THEME OVERRIDES (darker bg + inputs/placeholders) ── */
  :root {
    --bg:        #f0ece4;
    --bg-alt:    #e6dfd2;
    --bg-dark:   #ddd3c1;
    --text:      #141f30;
    --text-mid:  #38475b;
    --border:    rgba(26,37,53,.16);
    --border-gold: rgba(184,146,31,.22);
  }

  .f-input,
  .f-ta {
    background: rgba(255,255,255,.9);
    border: none;
    border-bottom: 1.5px solid rgba(26,37,53,.35);
    padding: 12px 0 12px 4px;
    color: var(--text);
    font-family: 'Jost', sans-serif;
    font-size: .87rem;
    font-weight: 300;
    outline: none;
    transition: border-color .3s;
    width: 100%;
  }

  .f-input::placeholder,
  .f-ta::placeholder {
    color: #6a7a94;
  }

  .f-input:focus,
  .f-ta:focus {
    border-bottom-color: var(--gold);
  }
