
    @font-face {
      font-family: 'Hacen Tunisia Bold';
      src: url('../fonts/hacen-tunisia-bold.ttf') format('truetype');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }
    :root {
      --blue-900: #002456;
      --blue-800: #003785;
      --blue-700: #004AAD;
      --blue-600: #0A5FCC;
      --yellow: #FFDF01;
      --white: #FFFFFF;
      --off-white: #F4F7FB;
      --ink: #0B1F3A;
      --muted: #5B6B85;
      --line: #E1E6EE;
      --warn-bg: #FFF7E0;
      --warn-line: #F0D98A;
      --warn-text: #7A5A00;
    }
    * { box-sizing: border-box; }
    body { margin: 0; font-family: 'IBM Plex Sans Arabic', system-ui, sans-serif; background: var(--white); color: var(--ink); }
    h1, h2, h3 { font-family: 'IBM Plex Sans Arabic', system-ui, sans-serif; font-weight: 700; }
    .brand-latin { font-family: 'Baloo 2', system-ui, sans-serif; font-weight: 800; }
    a { color: var(--blue-700); text-decoration: none; }
    a:hover { color: var(--blue-600); }
    .btn {
      display: inline-flex; align-items: center; gap: 10px;
      padding: 15px 30px; border-radius: 4px; font-weight: 700; font-size: 16px;
      cursor: pointer; white-space: nowrap; border: 1.5px solid transparent;
    }
    .btn-yellow { background: var(--yellow); color: var(--blue-900); }
    .btn-outline { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.55); }
    .btn-outline-dark { background: transparent; color: var(--blue-700); border-color: var(--blue-700); }
    .eyebrow {
      font-size: 13px; font-weight: 700; color: var(--blue-700);
    }
    .eyebrow-onDark { color: var(--yellow); }
    .section-pad { padding: 90px 110px; }
    .card { background: #ffffff; border: 1px solid var(--line); border-radius: 6px; }
    .tag-warn {
      display: inline-flex; align-items: center; gap: 6px; background: var(--warn-bg);
      border: 1px solid var(--warn-line); color: var(--warn-text); font-size: 12px;
      font-weight: 700; padding: 5px 12px; border-radius: 5px;
    }
    /* header: keep the brand wordmark and the language/menu group at their natural size, and
       tighten the nav-links gap/font-size and WhatsApp button padding so all 8 nav items fit at
       1440px without the brand text overflowing into the nav (English labels run longer than the
       Arabic ones). nav-links a needs white-space:nowrap because without it, once the nav-links
       flex box gets squeezed for space, item labels silently wrap to two lines instead of causing
       a visible overflow — much harder to notice than an overlap, so nowrap trades that for an
       honest overflow we can size around. */
    .brand-block, .header-actions { flex-shrink: 0; }
    .nav-links { gap: 12px !important; font-size: 13px !important; }
    .nav-links a { white-space: nowrap; }
    [style*="justify-content: space-between; padding: 22px 110px; background: var(--white);"] {
      gap: 14px;
    }
    [style*="justify-content: space-between; padding: 22px 110px; background: var(--white);"] > a.btn-yellow {
      padding: 13px 20px;
    }
    /* language switcher: rectangular pill with flag + current-language label + caret, sits next
       to the hamburger. Click opens .lang-menu, a small dropdown listing the other 2 languages —
       needed now that the site has 3 languages instead of a simple 2-way toggle. */
    .lang-dropdown { position: relative; }
    .lang-switch {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 9px 14px;
      border-radius: 6px;
      border: 1.5px solid var(--blue-700);
      background: none;
      color: var(--blue-700);
      font-size: 13.5px;
      font-family: inherit;
      font-weight: 700;
      text-decoration: none;
      white-space: nowrap;
      line-height: 1;
      cursor: pointer;
    }
    .lang-switch:hover { color: var(--white); background: var(--blue-700); }
    .lang-switch-flag { font-size: 16px; line-height: 1; }
    .lang-caret { transition: transform 0.15s; flex-shrink: 0; }
    .lang-switch[aria-expanded="true"] .lang-caret { transform: rotate(180deg); }
    .lang-menu {
      display: none;
      position: absolute;
      top: calc(100% + 8px);
      left: 0;
      min-width: 150px;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 8px;
      box-shadow: 0 14px 32px rgba(0,10,30,0.16);
      overflow: hidden;
      z-index: 60;
      padding: 6px;
    }
    .lang-menu.open { display: block; }
    .lang-menu-item {
      display: flex;
      align-items: center;
      gap: 9px;
      padding: 10px 12px;
      border-radius: 5px;
      font-size: 13.5px;
      font-weight: 600;
      color: var(--blue-900);
      text-decoration: none;
      white-space: nowrap;
    }
    .lang-menu-item:hover { background: var(--off-white); color: var(--blue-700); }
    .lang-menu-item .lang-switch-flag { font-size: 15px; }
    /* groups the language switch + hamburger together at the header's outer edge */
    .header-actions { display: flex; align-items: center; gap: 10px; }
    /* mobile hamburger button: hidden on desktop, shown only under the mobile breakpoint below */
    .menu-toggle { display: none; }
    /* yacht section's mobile-only image copy: hidden on desktop, shown only under the mobile breakpoint below */
    .mobile-yacht-img { display: none; }

/* ============================================================
   PRODUCTION RESPONSIVE LAYER
   Targets the inline styles shared across all pages via
   attribute selectors, so pages need no structural changes.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
img { max-width: 100%; height: auto; }

/* page shell: fixed 1440px design -> fluid, capped at 1440px */
[style*="width: 1440px; background: var(--white); overflow: hidden;"] {
  width: 100% !important;
  max-width: 1440px;
  margin: 0 auto;
}

/* generic overflow guard */
body { overflow-x: hidden; }

h1 { font-size: clamp(24px, 5.2vw, 42px) !important; }

@media (max-width: 900px) {
  /* horizontal side padding used everywhere via "110px" -> tighten */
  [style*="110px"] { padding-left: 24px !important; padding-right: 24px !important; }
  .section-pad { padding-left: 24px !important; padding-right: 24px !important; }

  /* any flex row that spreads two blocks apart -> wrap and stack */
  [style*="justify-content: space-between"] { flex-wrap: wrap; row-gap: 20px; }

  /* header: one compact row -> logo pinned to the right, hamburger pinned to the left */
  [style*="justify-content: space-between; padding: 22px 110px; background: var(--white);"] {
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 20 !important;
    background: transparent !important;
  }
  /* the header's WhatsApp button (direct child anchor) -> removed on mobile (hamburger replaces it) */
  [style*="justify-content: space-between; padding: 22px 110px; background: var(--white);"] > a.btn-yellow {
    display: none !important;
  }
  /* header floats transparently over the hero photo now, so the brand wordmark + hamburger read white */
  [style*="font-size: 22px; color: var(--blue-700); letter-spacing: 0.5px;"] {
    color: var(--white) !important;
  }
  /* brand lockup: stack the logo above the English wordmark, drop the Arabic subtitle, on mobile */
  .brand-block {
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
  }
  .brand-block span:last-child {
    display: none !important;
  }
  .brand-block .brand-latin {
    font-size: 13px !important;
  }
  /* language switcher on mobile: white outline/text to stay legible on the transparent floating header */
  .lang-switch {
    border-color: var(--white) !important;
    color: var(--white) !important;
    padding: 7px 10px !important;
    font-size: 11.5px !important;
    gap: 5px !important;
  }
  .lang-switch:hover {
    background: rgba(255,255,255,0.18) !important;
    color: var(--white) !important;
  }
  .lang-switch-flag {
    font-size: 14px !important;
  }
  /* hamburger button: visible on mobile, pinned at the left via being the last visible flex item */
  .menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: 24px;
    line-height: 1;
    background: none;
    border: none;
    color: var(--white);
    cursor: pointer;
    padding: 0;
  }
  /* nav links: hidden by default, opens as a dropdown panel below the header */
  .nav-links {
    display: none !important;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    background: var(--white);
    box-shadow: 0 16px 28px rgba(0,10,30,0.14);
    border-top: 1px solid var(--line);
    z-index: 50;
    padding: 6px 0;
  }
  .nav-links.open {
    display: flex !important;
  }
  .nav-links a {
    width: 100%;
    text-align: center;
    padding: 15px 24px !important;
    border-bottom: 1px solid var(--line);
    font-size: 15px !important;
  }

  /* photo-hero rows (main hero + day-trip heroes): full-bleed background photo
     with the text overlaid on top of it over a dark gradient, so the photo
     reads big and bold and the text stays legible on top of it */
  [style*="gap: 60px; overflow: hidden"] {
    display: block !important;
    position: relative !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    padding: 0 !important;
  }
  [style*="gap: 60px; overflow: hidden"] > div:last-child {
    position: absolute !important;
    inset: 0 !important;
    padding: 0 !important;
    z-index: 1 !important;
  }
  [style*="gap: 60px; overflow: hidden"] > div:last-child img,
  [style*="gap: 60px; overflow: hidden"] > div:last-child video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  /* text + dark backdrop only start further down the photo, so more of the
     photo stays fully visible before the overlay begins */
  [style*="gap: 60px; overflow: hidden"] > div:first-child {
    position: relative !important;
    z-index: 2 !important;
    margin-top: 60vh !important;
    margin-top: 60dvh !important;
    padding: 28px 24px 40px !important;
    background: linear-gradient(180deg, rgba(0,10,30,0) 0%, rgba(0,10,30,0.5) 20%, rgba(0,10,30,0.8) 55%, rgba(0,10,30,0.88) 100%) !important;
  }
  /* hero intro paragraph: hidden on mobile so only the eyebrow + headline show over the photo */
  [style*="line-height: 1.9; color: #C7D3EA; max-width: 520px"] {
    display: none !important;
  }

  /* about.html's simpler hero (badge image, not a photo) -> keep the plain reversed stack */
  [style*="gap: 70px; overflow: hidden"] {
    flex-direction: column-reverse !important;
    gap: 22px !important;
    padding-top: 92px !important;
  }

  /* contact.html's plain gradient hero (no photo) -> add clearance for the now-floating transparent header */
  [style*="padding: 70px 110px; text-align: center;"] {
    padding-top: 92px !important;
  }

  /* other featured split rows (e.g. yacht card) -> stack in normal order */
  [style*="gap: 64px; align-items: center;"] {
    flex-direction: column !important;
  }

  /* yacht card: hide the desktop-side photo column (a copy is shown right after the heading instead) */
  [style*="gap: 64px; align-items: center;"] > div:first-child > img[alt*="يخت"] {
    display: none !important;
  }
  /* yacht card: mobile-only photo copy, placed right after the "اليخوت الخاصة" heading */
  .mobile-yacht-img {
    display: block !important;
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 18px 40px rgba(0,36,86,0.15);
    margin: 0 0 22px;
  }

  /* CTA button rows (hero, and similar) -> stack full-width, easier to tap */
  [style="display: flex; gap: 16px;"] {
    flex-direction: column;
  }
  [style="display: flex; gap: 16px;"] > a.btn {
    width: 100%;
    justify-content: center;
  }

  /* homepage hero: buttons removed on mobile, so let the text sit further down the photo */
  .hero-cta-row {
    display: none !important;
  }
  .home-hero > div:first-child {
    margin-top: 72vh !important;
    margin-top: 72dvh !important;
  }

  /* price rows can wrap */
  [style*="align-items: baseline; gap: 10px"] { flex-wrap: wrap; }

  /* trust strip badges -> stacked list, centered */
  [style*="padding: 34px 110px; background: var(--blue-900); border-top"] {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }

  /* bare two-column split rows (e.g. Bosphorus program cards: content + checklist) -> stack */
  [style="display: flex;"] {
    flex-direction: column;
  }
  [style="display: flex;"] > div:first-child[style*="border-left"] {
    border-left: none !important;
    border-bottom: 1px solid var(--line);
  }

  /* grids: 4/3 columns -> 2 columns */
  [style*="grid-template-columns: repeat(4, minmax(0, 1fr))"],
  [style*="grid-template-columns: repeat(3, minmax(0, 1fr))"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  /* footer's custom 4-col grid */
  [style*="grid-template-columns: 1.4fr 1fr 1fr 1fr"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 30px !important;
  }
  /* stats band dividers read oddly once stacked/2-col: soften */
  [style*="border-left: 1px solid rgba(255,255,255,0.14)"] {
    border-left: none !important;
  }
}

@media (max-width: 620px) {
  [style*="110px"] { padding-left: 16px !important; padding-right: 16px !important; }
  .section-pad { padding-left: 16px !important; padding-right: 16px !important; padding-top: 40px !important; padding-bottom: 40px !important; }

  [style*="grid-template-columns: repeat(4, minmax(0, 1fr))"],
  [style*="grid-template-columns: repeat(3, minmax(0, 1fr))"],
  [style*="grid-template-columns: repeat(2, minmax(0, 1fr))"],
  [style*="grid-template-columns: 1.4fr 1fr 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  .btn { padding: 12px 18px !important; font-size: 14px !important; }
  h2 { font-size: clamp(20px, 6vw, 28px) !important; }
}
