:root {
  --ink: #101d2f;
  --ink-soft: #26394e;
  --night: #07131f;
  --night-soft: #10283a;
  --gold: #c6a464;
  --gold-bright: #e4c98d;
  --ivory: #f5f0e7;
  --paper: #fbf8f2;
  --teal: #628e8c;
  --line: rgba(16, 29, 47, 0.14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.7;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.skip-link { background: white; color: var(--ink); left: 12px; padding: 10px 14px; position: fixed; top: -60px; z-index: 100; }
.skip-link:focus { top: 12px; }
.sr-only { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.site-header {
  align-items: center;
  background: rgba(7, 19, 31, 0.92);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  color: white;
  display: flex;
  height: 86px;
  justify-content: space-between;
  left: 0;
  padding: 0 clamp(24px, 5vw, 76px);
  position: absolute;
  right: 0;
  top: 0;
  z-index: 20;
}
.site-header.solid { position: relative; }
.brand { align-items: center; display: flex; gap: 13px; }
.brand-mark {
  align-items: center;
  border: 1px solid rgba(228, 201, 141, 0.7);
  border-radius: 50%;
  color: var(--gold-bright);
  display: inline-flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  height: 45px;
  justify-content: center;
  width: 45px;
}
.brand strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 22px; font-weight: 500; letter-spacing: 0.04em; line-height: 1; }
.brand small { color: rgba(255,255,255,0.62); display: block; font-size: 10px; letter-spacing: 0.18em; margin-top: 6px; text-transform: uppercase; }
.site-header nav { align-items: center; display: flex; gap: 34px; }
.site-header nav > a { color: rgba(255,255,255,0.72); font-size: 14px; transition: color .2s ease; }
.site-header nav > a:hover { color: white; }
.button {
  align-items: center;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  font-weight: 700;
  gap: 10px;
  justify-content: center;
  min-height: 48px;
  padding: 11px 22px;
}
.nav-cta, .gold-button { background: var(--gold); color: var(--night) !important; }
.nav-cta:hover, .gold-button:hover { background: var(--gold-bright); }
.menu-toggle { background: transparent; border: 0; display: none; height: 44px; padding: 8px; width: 44px; }
.menu-toggle > span:not(.sr-only) { background: white; display: block; height: 1px; margin: 6px 0; width: 26px; }

.form-status { left: 50%; max-width: min(90vw, 780px); padding: 14px 20px; position: fixed; text-align: center; top: 96px; transform: translateX(-50%); width: max-content; z-index: 60; }
.form-status.success { background: #e6f3ec; border: 1px solid #a7cdb8; color: #174b31; }
.form-status.error { background: #fff0ed; border: 1px solid #dfb0a7; color: #7a2419; }

.hero {
  background:
    radial-gradient(circle at 72% 48%, rgba(55, 119, 117, .24), transparent 34%),
    linear-gradient(115deg, #06111d 0%, #0a1d2c 58%, #06121d 100%);
  color: white;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
  min-height: 830px;
  overflow: hidden;
  padding: 170px clamp(24px, 7vw, 110px) 90px;
  position: relative;
}
.hero::before {
  background-image: radial-gradient(rgba(255,255,255,.45) .7px, transparent .7px);
  background-size: 31px 31px;
  content: "";
  inset: 0;
  opacity: .12;
  pointer-events: none;
  position: absolute;
}
.hero-glow { background: var(--gold); border-radius: 50%; filter: blur(120px); height: 220px; left: 30%; opacity: .09; position: absolute; top: 38%; width: 220px; }
.hero-copy { align-self: center; max-width: 720px; position: relative; z-index: 3; }
.eyebrow, .section-label { align-items: center; color: var(--gold-bright); display: flex; font-size: 12px; font-weight: 700; gap: 10px; letter-spacing: .2em; margin: 0 0 28px; text-transform: uppercase; }
.section-label { color: var(--teal); }
.section-label span { border-right: 1px solid currentColor; padding-right: 10px; }
.section-label.light { color: var(--gold-bright); }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; margin: 0; }
h1 { font-size: clamp(54px, 6vw, 86px); letter-spacing: -.045em; line-height: .98; max-width: 790px; }
.hero-intro { color: rgba(255,255,255,.69); font-size: clamp(18px, 1.6vw, 21px); line-height: 1.7; margin: 34px 0 0; max-width: 610px; }
.hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 28px; margin-top: 42px; }
.gold-button { min-height: 52px; }
.text-link { border-bottom: 1px solid rgba(228,201,141,.5); color: var(--gold-bright); font-size: 14px; padding-bottom: 4px; }
.hero-meta { border-top: 1px solid rgba(255,255,255,.12); display: flex; gap: 30px; margin-top: 48px; padding-top: 22px; }
.hero-meta span, .hero-meta a { color: rgba(255,255,255,.6); font-size: 13px; }
.hero-art { min-height: 560px; position: relative; z-index: 2; }
.guide-card { box-shadow: 0 35px 80px rgba(0,0,0,.42); margin: 0; overflow: hidden; position: absolute; }
.guide-card::after { background: linear-gradient(to top, rgba(4,13,21,.72), transparent 48%); content: ""; inset: 0; position: absolute; }
.guide-card img { height: 100%; object-fit: cover; width: 100%; }
.guide-card-native { height: 510px; left: 0; top: 40px; transform: rotate(-2.5deg); width: 56%; }
.guide-card-egyptian { height: 480px; right: -4%; top: 0; transform: rotate(3deg); width: 53%; z-index: 2; }
.orbit { border: 1px solid rgba(228,201,141,.28); border-radius: 50%; pointer-events: none; position: absolute; }
.orbit-one { height: 440px; right: -80px; top: 50px; width: 440px; }
.orbit-two { height: 580px; left: 0; top: -70px; width: 580px; }

.intro-section { padding: 120px clamp(24px, 8vw, 130px); }
.intro-grid { display: grid; gap: clamp(50px, 8vw, 140px); grid-template-columns: 1.2fr .8fr; }
.intro-grid h2, .guide-copy h2, .booking-copy h2, .enquiry-copy h2 { font-size: clamp(42px, 4.7vw, 66px); letter-spacing: -.035em; line-height: 1.08; }
.intro-grid p { color: #526071; margin: 0 0 20px; }
.intro-grid .lead { color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 24px; line-height: 1.5; }

.services-section { background: var(--night); color: white; padding: 120px clamp(24px, 8vw, 130px); }
.section-heading { align-items: end; display: grid; gap: 40px; grid-template-columns: 1.3fr .7fr; margin-bottom: 58px; }
.section-heading h2 { font-size: clamp(42px, 4.7vw, 66px); letter-spacing: -.035em; line-height: 1.08; max-width: 680px; }
.section-heading > p { color: rgba(255,255,255,.58); margin: 0 0 8px; max-width: 420px; }
.service-grid { display: grid; gap: 24px; grid-template-columns: repeat(2, 1fr); }
.service-card { background: #102536; border: 1px solid rgba(255,255,255,.1); min-height: 520px; padding: clamp(30px, 4vw, 54px); position: relative; }
.service-card.featured { background: var(--ivory); color: var(--ink); }
.service-icon { color: var(--gold); font-family: Georgia, "Times New Roman", serif; font-size: 36px; line-height: 1; }
.service-number { color: rgba(255,255,255,.25); font-size: 12px; letter-spacing: .15em; position: absolute; right: 38px; top: 35px; }
.featured .service-number { color: rgba(16,29,47,.35); }
.service-card h3 { font-size: 37px; margin-top: 32px; }
.service-card > p { color: rgba(255,255,255,.6); max-width: 530px; }
.featured > p { color: #586575; }
.service-card dl { border-top: 1px solid rgba(255,255,255,.12); margin: 34px 0; }
.featured dl { border-color: var(--line); }
.service-card dl div { border-bottom: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; padding: 13px 0; }
.featured dl div { border-color: var(--line); }
.service-card dt { color: rgba(255,255,255,.48); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.featured dt { color: #6a7580; }
.service-card dd { font-size: 14px; margin: 0; text-align: right; }
.service-card > a { align-items: center; color: var(--gold-bright); display: inline-flex; font-size: 14px; gap: 9px; }
.featured > a { color: #876b35; }

.guides-section { align-items: center; background: #e9eee9; display: grid; gap: clamp(50px, 8vw, 120px); grid-template-columns: 1fr 1fr; padding: 120px clamp(24px, 8vw, 130px); }
.guide-portraits { display: grid; gap: 18px; grid-template-columns: repeat(2, 1fr); }
.guide-portraits figure { margin: 0; overflow: hidden; }
.guide-portraits figure:first-child { margin-top: 54px; }
.guide-portraits img { aspect-ratio: 4/5; height: 100%; object-fit: cover; transition: transform .7s ease; width: 100%; }
.guide-portraits figure:hover img { transform: scale(1.025); }
.guide-copy p { color: #526071; font-size: 18px; margin: 28px 0 20px; }
.guide-copy small { color: #708078; font-size: 12px; letter-spacing: .07em; }

.booking-section { background: var(--night-soft); color: white; display: grid; gap: 60px; grid-template-columns: .7fr 1.3fr; padding: 120px clamp(24px, 7vw, 110px); }
.booking-copy { position: sticky; top: 40px; }
.booking-copy p { color: rgba(255,255,255,.62); margin: 28px 0; max-width: 430px; }
.booking-note { align-items: center; border-top: 1px solid rgba(255,255,255,.12); display: flex; gap: 15px; margin-top: 38px; padding-top: 24px; }
.booking-icon { color: var(--gold); font-size: 28px; }
.booking-note strong, .booking-note span { display: block; }
.booking-note span { color: rgba(255,255,255,.5); font-size: 13px; }
.calendar-shell { background: white; min-height: 700px; overflow: hidden; padding: 12px; }
.calendar-shell noscript { color: var(--ink); display: block; padding: 30px; }

.enquiry-section { display: grid; gap: clamp(60px, 9vw, 140px); grid-template-columns: .75fr 1.25fr; padding: 120px clamp(24px, 8vw, 130px); }
.enquiry-copy > p { color: #526071; font-size: 18px; margin: 28px 0 40px; }
.contact-details { border-top: 1px solid var(--line); }
.contact-details a { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 15px; padding: 18px 0; }
.contact-icon { color: var(--teal); font-size: 18px; width: 24px; }
.contact-details small { color: #71808f; display: block; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.enquiry-form { background: white; border-top: 3px solid var(--gold); box-shadow: 0 22px 65px rgba(16,29,47,.08); padding: clamp(28px, 5vw, 58px); }
.field-row { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.enquiry-form label { color: var(--ink-soft); display: block; font-size: 12px; font-weight: 700; letter-spacing: .06em; margin-bottom: 23px; text-transform: uppercase; }
.enquiry-form label > span { color: #84909b; font-size: 10px; font-weight: 400; }
.enquiry-form input:not([type="checkbox"]), .enquiry-form textarea { background: #f8f6f1; border: 1px solid #dde0dc; border-radius: 0; box-shadow: none; color: var(--ink); display: block; font-size: 15px; margin-top: 8px; min-height: 49px; padding: 10px 12px; text-transform: none; width: 100%; }
.enquiry-form textarea { min-height: 145px; padding: 14px; resize: vertical; }
.enquiry-form input:focus, .enquiry-form textarea:focus { border-color: var(--teal); outline: 2px solid rgba(98,142,140,.18); }
.consent-row { align-items: flex-start; display: flex !important; gap: 12px; letter-spacing: 0 !important; text-transform: none !important; }
.consent-row input { accent-color: var(--teal); height: 18px; margin: 3px 0 0; width: 18px; }
.consent-row span { color: #5f6a75 !important; font-size: 13px !important; }
.submit-button { width: 100%; }
.form-note { color: #7a8791; font-size: 12px; margin: 13px 0 0; text-align: center; }
.honeypot { left: -10000px; opacity: 0; position: absolute; }

footer { align-items: center; background: #050d15; color: white; display: grid; gap: 30px; grid-template-columns: 1fr auto; padding: 52px clamp(24px, 7vw, 110px); }
.footer-brand { align-items: center; display: flex; gap: 14px; }
.footer-brand strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 22px; font-weight: 400; }
.footer-brand small { color: rgba(255,255,255,.46); display: block; font-size: 11px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 26px; }
.footer-links a { color: rgba(255,255,255,.66); font-size: 13px; }
footer > p { border-top: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.35); font-size: 11px; grid-column: 1/-1; margin: 5px 0 0; padding-top: 22px; }

.legal-shell { margin: 0 auto; max-width: 900px; padding: 100px 28px 120px; }
.legal-shell h1 { font-size: clamp(54px, 8vw, 82px); margin-bottom: 24px; }
.legal-intro { color: #526071; font-family: Georgia, "Times New Roman", serif; font-size: 23px; margin: 0 0 60px; }
.legal-shell section { border-top: 1px solid var(--line); padding: 35px 0 25px; }
.legal-shell section h2 { font-size: 30px; }
.legal-shell section p { color: #526071; }
.legal-shell section a { color: #376f6c; text-decoration: underline; text-underline-offset: 3px; }
.policy-date { color: #7a8791; font-size: 13px; margin-top: 40px; }

@media (max-width: 1050px) {
  .site-header nav > a:not(.nav-cta) { display: none; }
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-copy { max-width: 760px; }
  .hero-art { margin: 30px auto 0; max-width: 680px; min-height: 570px; width: 100%; }
  .intro-grid, .section-heading, .guides-section, .booking-section, .enquiry-section { grid-template-columns: 1fr; }
  .booking-copy { position: static; }
  .section-heading > p { max-width: 620px; }
}

@media (max-width: 720px) {
  .site-header { height: 74px; position: absolute; }
  .site-header.solid { position: relative; }
  .menu-toggle { display: block; }
  .site-header nav {
    align-items: stretch;
    background: #07131f;
    display: none;
    flex-direction: column;
    gap: 0;
    left: 0;
    padding: 18px 24px 28px;
    position: absolute;
    right: 0;
    top: 74px;
  }
  .site-header nav.open { display: flex; }
  .site-header nav > a, .site-header nav > a:not(.nav-cta) { border-bottom: 1px solid rgba(255,255,255,.09); display: block; padding: 13px 0; }
  .site-header nav .nav-cta { border: 0; margin-top: 14px; text-align: center; }
  .privacy-page .site-header nav { display: flex; padding: 0; position: static; }
  .privacy-page .site-header nav .nav-cta { margin: 0; padding: 9px 14px; }
  .hero { padding-top: 130px; }
  h1 { font-size: clamp(48px, 15vw, 66px); }
  .hero-art { min-height: 430px; }
  .guide-card-native { height: 390px; width: 59%; }
  .guide-card-egyptian { height: 370px; right: 0; width: 57%; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .gold-button { width: 100%; }
  .hero-meta { align-items: flex-start; flex-direction: column; gap: 12px; }
  .intro-section, .services-section, .guides-section, .booking-section, .enquiry-section { padding-bottom: 80px; padding-top: 80px; }
  .service-grid, .field-row { grid-template-columns: 1fr; }
  .service-card { min-height: 0; }
  .guide-portraits { gap: 10px; }
  .calendar-shell { margin-inline: -12px; padding: 0; }
  .form-status { top: 82px; width: calc(100% - 24px); }
  footer { grid-template-columns: 1fr; }
  .footer-links { flex-direction: column; gap: 10px; }
  .legal-shell { padding-top: 70px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
