/* =========================================================
   Start & Drive Zanzibar — Tropical Luxury design system
   ========================================================= */

:root {
  --ocean: oklch(0.687 0.121 213.4);
  --turquoise: oklch(0.797 0.117 176.9);
  --sand: oklch(0.949 0.032 88.6);
  --palm: oklch(0.548 0.132 145.2);
  --sunset: oklch(0.744 0.157 52.9);

  --background: #ffffff;
  --foreground: oklch(0.24 0.03 232);
  --card: #ffffff;
  --muted: oklch(0.972 0.008 210);
  --muted-foreground: oklch(0.53 0.026 226);
  --border: oklch(0.925 0.012 210);
  --primary: var(--ocean);
  --primary-foreground: #ffffff;
  --secondary: var(--sand);

  --radius: 1.25rem;
  --radius-lg: 1.5rem;
  --radius-xl: 2rem;

  --gradient-tropical: linear-gradient(135deg, var(--ocean), var(--turquoise));
  --gradient-sunset: linear-gradient(135deg, var(--sunset), oklch(0.8 0.13 72));
  --gradient-soft: linear-gradient(
    180deg,
    color-mix(in oklab, var(--turquoise) 8%, white),
    white 45%,
    color-mix(in oklab, var(--sand) 55%, white)
  );
  --shadow-soft: 0 10px 30px -14px color-mix(in oklab, var(--ocean) 45%, transparent);
  --shadow-float: 0 24px 60px -24px color-mix(in oklab, var(--ocean) 55%, transparent);
  --shadow-glass: 0 8px 32px -12px color-mix(in oklab, var(--ocean) 30%, transparent);

  --font-display: "Poppins", ui-sans-serif, system-ui, sans-serif;
  --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
figure, blockquote, dl, dd, p, h1, h2, h3, h4 { margin: 0; }
button { font: inherit; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.sdz-container {
  width: 100%;
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: 1rem;
}
@media (min-width: 640px) { .sdz-container { padding-inline: 1.5rem; } }

.sdz-section { padding-block: 6rem; position: relative; }
@media (min-width: 640px) { .sdz-section { padding-block: 8rem; } }

.sdz-bg-sand { background: var(--secondary); }
.sdz-bg-soft { background: var(--gradient-soft); }

.sdz-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--ocean); color: #fff; padding: .75rem 1.25rem; border-radius: 0 0 1rem 0;
}
.sdz-skip-link:focus { left: 0; }

/* ---------- Utilities ---------- */
.sdz-glass {
  background: color-mix(in oklab, white 62%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
  border: 1px solid color-mix(in oklab, white 55%, transparent);
  box-shadow: var(--shadow-glass);
}
.sdz-glass-dark {
  background: color-mix(in oklab, black 28%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid color-mix(in oklab, white 22%, transparent);
  color: #fff;
}
.sdz-gradient-text {
  background: var(--gradient-tropical);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sdz-shadow-soft { box-shadow: var(--shadow-soft); }
.sdz-shadow-float { box-shadow: var(--shadow-float); }

.sdz-palm-texture { position: relative; }
.sdz-palm-texture::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .05;
  background-image:
    radial-gradient(circle at 12% 18%, var(--palm) 0 2px, transparent 2px),
    radial-gradient(circle at 78% 62%, var(--ocean) 0 2px, transparent 2px);
  background-size: 120px 120px, 160px 160px;
}

/* ---------- Buttons ---------- */
.sdz-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  border: 0; cursor: pointer; border-radius: 999px;
  padding: 1rem 2rem; font-size: .875rem; font-weight: 600;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.sdz-btn:hover { transform: scale(1.05); }
.sdz-btn:active { transform: scale(.95); }
.sdz-btn-primary { background: var(--gradient-tropical); color: #fff; box-shadow: var(--shadow-float); }
.sdz-btn-ghost {
  background: color-mix(in oklab, black 28%, transparent);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  border: 1px solid color-mix(in oklab, white 22%, transparent); color: #fff;
}
.sdz-btn-sm { padding: .65rem 1.25rem; box-shadow: var(--shadow-soft); }

/* ---------- Reveal animation ---------- */
.sdz-reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
  transition-delay: var(--sdz-delay, 0s);
}
.sdz-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .sdz-reveal { opacity: 1; transform: none; transition: none; }
  .sdz-float, .sdz-float-slow { animation: none !important; }
}

@keyframes sdz-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.sdz-float { animation: sdz-float 6s ease-in-out infinite; }
.sdz-float-slow { animation: sdz-float 8s ease-in-out infinite; }

/* ---------- Header / Nav ---------- */
.sdz-header {
  position: fixed; inset-inline: 0; top: 0; z-index: 50;
  padding-block: 1rem; transition: all .5s ease;
}
.sdz-header.is-solid { padding-block: .5rem; box-shadow: var(--shadow-soft);
  background: color-mix(in oklab, white 72%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  border-bottom: 1px solid color-mix(in oklab, white 55%, transparent);
}
.sdz-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.sdz-brand { display: flex; align-items: center; gap: .625rem; }
.sdz-brand-logo { width: 7rem; height: 4rem; object-fit: contain; background: var(--background); padding: .2rem; flex: none; }
.sdz-footer .sdz-brand-logo { width: 11.25rem; height: auto; }
.sdz-brand-mark {
  width: 2.5rem; height: 2.5rem; border-radius: 1rem; display: grid; place-items: center;
  background: var(--gradient-tropical); color: #fff; box-shadow: var(--shadow-soft); flex: none;
}
.sdz-brand-mark svg { width: 1.25rem; height: 1.25rem; }
.sdz-brand-text {
  font-family: var(--font-display); font-weight: 700; font-size: 1rem; line-height: 1.15;
  color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.35); transition: color .3s ease;
}
.sdz-brand-text small {
  display: block; font-size: .65rem; font-weight: 500; letter-spacing: .22em;
  text-transform: uppercase; opacity: .8;
}
.is-solid .sdz-brand-text { color: var(--foreground); text-shadow: none; }

.sdz-menu { display: none; align-items: center; gap: 1.75rem; }
@media (min-width: 1024px) { .sdz-menu { display: flex; } }
.sdz-menu a {
  font-size: .875rem; font-weight: 500; color: rgba(255,255,255,.9);
  text-shadow: 0 1px 8px rgba(0,0,0,.35); transition: color .2s ease;
}
.sdz-menu a:hover { color: #fff; }
.is-solid .sdz-menu a { color: var(--muted-foreground); text-shadow: none; }
.is-solid .sdz-menu a:hover { color: var(--primary); }

.sdz-nav-actions { display: flex; align-items: center; gap: .5rem; }
.sdz-nav-cta { display: none; }
@media (min-width: 640px) { .sdz-nav-cta { display: inline-flex; } }

.sdz-burger {
  width: 2.5rem; height: 2.5rem; border-radius: 999px; display: grid; place-items: center;
  border: 0; cursor: pointer; background: color-mix(in oklab, black 28%, transparent); color: #fff;
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
.is-solid .sdz-burger { background: var(--muted); color: var(--foreground); }
@media (min-width: 1024px) { .sdz-burger { display: none; } }
.sdz-burger svg { width: 1.25rem; height: 1.25rem; }

.sdz-mobile-menu { margin: .75rem 1rem 0; border-radius: 1.5rem; padding: 1rem; display: none; }
.sdz-mobile-menu.is-open { display: block; }
@media (min-width: 1024px) { .sdz-mobile-menu.is-open { display: none; } }
.sdz-mobile-menu a {
  display: block; padding: .75rem 1rem; border-radius: 1rem;
  font-size: .875rem; font-weight: 500; color: var(--foreground);
}
.sdz-mobile-menu a:hover { background: var(--muted); }
.sdz-mobile-menu .sdz-mobile-cta {
  margin-top: .5rem; text-align: center; font-weight: 600;
  background: var(--gradient-tropical); color: #fff;
}

/* ---------- Hero ---------- */
.sdz-hero { position: relative; min-height: 100svh; overflow: hidden; }
.sdz-hero__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.1); will-change: transform;
}
.sdz-hero__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom right, rgba(0,0,0,.7), rgba(0,0,0,.35) 55%, transparent);
}
.sdz-hero__inner {
  position: relative; display: flex; flex-direction: column; justify-content: center;
  min-height: 100svh; padding-top: 7rem; padding-bottom: 6rem;
}
.sdz-eyebrow-pill {
  display: inline-flex; align-items: center; gap: .5rem; border-radius: 999px;
  padding: .5rem 1rem; font-size: .75rem; font-weight: 500; letter-spacing: .18em;
  text-transform: uppercase; color: #fff;
}
.sdz-hero h1 { margin-top: 1.5rem; font-size: clamp(2.25rem, 7vw, 4.5rem); color: #fff; line-height: 1.05; }
.sdz-hero h1 span { display: block; color: var(--turquoise); }
.sdz-hero p.sdz-lede {
  margin-top: 1.5rem; max-width: 36rem; color: rgba(255,255,255,.85);
  font-size: 1rem; line-height: 1.7;
}
@media (min-width: 640px) { .sdz-hero p.sdz-lede { font-size: 1.125rem; } }
.sdz-hero__actions { margin-top: 2.25rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.sdz-hero__copy { max-width: 42rem; }
.sdz-weather {
  margin-top: 2rem; display: inline-flex; align-items: center; gap: .75rem;
  border-radius: 1rem; padding: .75rem 1rem;
}
.sdz-weather strong { font-family: var(--font-display); display: block; font-size: .95rem; }
.sdz-weather span { font-size: .75rem; color: rgba(255,255,255,.7); }
.sdz-weather svg { width: 1.5rem; height: 1.5rem; color: var(--sunset); }

.sdz-hero__cards {
  margin-top: 3.5rem; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem;
}
@media (min-width: 640px) { .sdz-hero__cards { gap: 1rem; } }
@media (min-width: 1024px) {
  .sdz-hero__cards { position: absolute; right: 1.5rem; bottom: 7rem; margin-top: 0; width: 24rem; }
}
.sdz-stat { border-radius: 1.5rem; padding: 1rem; }
.sdz-stat svg { width: 1.25rem; height: 1.25rem; color: var(--primary); }
.sdz-stat strong { font-family: var(--font-display); display: block; margin-top: .75rem; font-size: 1.25rem; }
.sdz-stat span { font-size: .75rem; color: var(--muted-foreground); }

/* ---------- Section heading ---------- */
.sdz-heading { text-align: center; max-width: 42rem; margin-inline: auto; }
.sdz-heading .sdz-eyebrow {
  font-size: .75rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--primary);
}
.sdz-heading h2 { margin-top: 1rem; font-size: clamp(1.75rem, 4vw, 2.5rem); }
.sdz-heading p { margin-top: 1rem; color: var(--muted-foreground); }

/* ---------- Grids & cards ---------- */
.sdz-grid { display: grid; gap: 1.5rem; margin-top: 4rem; }
.sdz-grid-2 { grid-template-columns: repeat(1, minmax(0,1fr)); }
.sdz-grid-3 { grid-template-columns: repeat(1, minmax(0,1fr)); }
.sdz-grid-4 { grid-template-columns: repeat(1, minmax(0,1fr)); }
@media (min-width: 640px) {
  .sdz-grid-3, .sdz-grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .sdz-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 1024px) {
  .sdz-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .sdz-grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

.sdz-card {
  height: 100%; display: flex; flex-direction: column; overflow: hidden;
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft); transition: transform .3s ease, box-shadow .3s ease;
}
.sdz-card:hover { transform: translateY(-.5rem); box-shadow: var(--shadow-float); }

/* Vehicles */
.sdz-tabs { display: flex; justify-content: center; gap: .5rem; margin-top: 2.5rem; }
.sdz-tab {
  border: 0; cursor: pointer; border-radius: 999px; padding: .7rem 1.5rem;
  font-size: .875rem; font-weight: 600; background: var(--muted); color: var(--muted-foreground);
  transition: all .25s ease;
}
.sdz-tab.is-active { background: var(--gradient-tropical); color: #fff; box-shadow: var(--shadow-soft); }
.sdz-panel[hidden] { display: none; }

.sdz-vehicle__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.sdz-vehicle__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.sdz-card:hover .sdz-vehicle__media img { transform: scale(1.07); }
.sdz-badge {
  position: absolute; top: .875rem; right: .875rem; border-radius: 999px;
  padding: .375rem .75rem; font-size: .75rem; font-weight: 700; color: #fff;
  background: var(--gradient-sunset); box-shadow: var(--shadow-soft);
}
.sdz-vehicle__body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.sdz-vehicle__body h3 { font-size: 1.125rem; }
.sdz-seats { font-size: .8rem; color: var(--muted-foreground); margin-top: .25rem; }
.sdz-specs { margin-top: 1rem; display: grid; gap: .5rem; flex: 1; }
.sdz-specs li { display: flex; gap: .5rem; align-items: flex-start; font-size: .85rem; color: var(--muted-foreground); }
.sdz-specs svg { width: 1rem; height: 1rem; color: var(--palm); flex: none; margin-top: .2rem; }
.sdz-price { font-family: var(--font-display); font-size: 1.75rem; font-weight: 700; margin-top: 1.25rem; }
.sdz-price small { font-size: .8rem; font-weight: 500; color: var(--muted-foreground); }
.sdz-card .sdz-btn { margin-top: 1.25rem; border-radius: 1rem; padding: .8rem 1rem; }

/* Packages */
.sdz-package { position: relative; height: 100%; display: flex; flex-direction: column;
  border-radius: var(--radius-xl); padding: 1.75rem; background: var(--card);
  border: 1px solid var(--border); box-shadow: var(--shadow-soft); transition: transform .3s ease; }
.sdz-package:hover { transform: translateY(-.5rem); }
.sdz-package.is-popular { background: var(--gradient-tropical); color: #fff; border-color: transparent; box-shadow: var(--shadow-float); }
.sdz-package.is-popular .sdz-muted, .sdz-package.is-popular .sdz-price small { color: rgba(255,255,255,.8); }
.sdz-package.is-popular .sdz-specs li { color: rgba(255,255,255,.92); }
.sdz-package.is-popular .sdz-specs svg { color: #fff; }
.sdz-package.is-popular .sdz-btn-primary { background: #fff; color: var(--primary); }
.sdz-ribbon {
  position: absolute; top: -.75rem; left: 1.75rem; border-radius: 999px; padding: .25rem .75rem;
  font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  background: var(--gradient-sunset); color: #fff;
}
.sdz-muted { color: var(--muted-foreground); font-size: .875rem; }
.sdz-package .sdz-price { font-size: 2.25rem; margin-top: 1.5rem; }

/* Why us */
.sdz-feature { height: 100%; border-radius: var(--radius-xl); padding: 1.5rem; transition: transform .3s ease; }
.sdz-feature:hover { transform: translateY(-.5rem); }
.sdz-icon-tile {
  width: 3rem; height: 3rem; border-radius: 1rem; display: grid; place-items: center;
  background: var(--gradient-tropical); color: #fff; box-shadow: var(--shadow-soft);
  transition: transform .3s ease;
}
.sdz-feature:hover .sdz-icon-tile { transform: scale(1.1); }
.sdz-icon-tile svg { width: 1.25rem; height: 1.25rem; }
.sdz-feature h3 { margin-top: 1.25rem; font-size: 1rem; }
.sdz-feature p { margin-top: .5rem; font-size: .875rem; color: var(--muted-foreground); }
.sdz-pills { margin-top: 3.5rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.sdz-pill { border-radius: 999px; padding: .65rem 1.25rem; font-size: .875rem; font-weight: 600; }

/* Explore */
.sdz-dest { position: relative; overflow: hidden; border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.sdz-dest img { aspect-ratio: 4/3; width: 100%; object-fit: cover; transition: transform .7s ease; }
.sdz-dest:hover img { transform: scale(1.08); }
.sdz-dest__overlay {
  position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end;
  padding: 1.5rem; color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,.8), rgba(0,0,0,.15) 55%, transparent);
}
.sdz-dest__overlay h3 { font-size: 1.15rem; }
.sdz-dest__overlay p { margin-top: .35rem; font-size: .85rem; color: rgba(255,255,255,.82); }

/* Steps */
.sdz-steps-wrap { position: relative; margin-top: 4rem; }
.sdz-steps-path { position: absolute; inset-inline: 0; top: 2.5rem; height: 5rem; width: 100%; display: none; pointer-events: none; }
@media (min-width: 1024px) { .sdz-steps-path { display: block; } }
.sdz-steps-path path { stroke-dasharray: 8 10; opacity: .6; }
.sdz-step { height: 100%; text-align: center; border-radius: var(--radius-xl); padding: 1.75rem;
  background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow-soft); transition: transform .3s ease; }
.sdz-step:hover { transform: translateY(-.5rem); }
.sdz-step-num {
  margin-inline: auto; width: 3.5rem; height: 3.5rem; border-radius: 1rem; display: grid; place-items: center;
  background: var(--gradient-tropical); color: #fff; font-family: var(--font-display);
  font-weight: 700; font-size: 1.125rem; box-shadow: var(--shadow-soft);
}
.sdz-step h3 { margin-top: 1.25rem; font-size: 1.125rem; }
.sdz-step p { margin-top: .5rem; font-size: .875rem; color: var(--muted-foreground); }

/* Reviews */
.sdz-review { height: 100%; border-radius: var(--radius-xl); padding: 1.75rem; transition: transform .3s ease; }
.sdz-review:hover { transform: translateY(-.5rem); }
.sdz-stars { display: flex; gap: .25rem; color: var(--sunset); }
.sdz-stars svg { width: 1rem; height: 1rem; fill: currentColor; }
.sdz-review blockquote { margin-top: 1.25rem; font-size: 1rem; line-height: 1.7; }
.sdz-review figcaption { margin-top: 1.5rem; display: flex; align-items: center; gap: .75rem; font-size: .875rem; }
.sdz-avatar {
  width: 2.75rem; height: 2.75rem; border-radius: 999px; display: grid; place-items: center;
  background: var(--gradient-tropical); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: .875rem;
}
.sdz-review figcaption b { display: block; }
.sdz-review figcaption em { font-style: normal; color: var(--muted-foreground); }

/* Gallery */
.sdz-gallery { margin-top: 4rem; columns: 2; column-gap: 1rem; }
@media (min-width: 768px) { .sdz-gallery { columns: 3; } }
@media (min-width: 1024px) { .sdz-gallery { columns: 4; } }
.sdz-gallery figure {
  break-inside: avoid; margin-bottom: 1rem; overflow: hidden; border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}
.sdz-gallery img { width: 100%; transition: transform .7s ease; }
.sdz-gallery figure:hover img { transform: scale(1.07); }

/* About */
.sdz-about { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .sdz-about { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.sdz-about__img { overflow: hidden; border-radius: var(--radius-xl); box-shadow: var(--shadow-float); }
.sdz-about h2 { margin-top: 1rem; font-size: clamp(1.75rem, 4vw, 2.25rem); }
.sdz-about p { margin-top: 1.5rem; color: var(--muted-foreground); line-height: 1.8; }
.sdz-stats { margin-top: 2.5rem; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.sdz-stats > div { border-radius: var(--radius-lg); background: var(--card); padding: 1.25rem; box-shadow: var(--shadow-soft); }
.sdz-stats dt { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--primary); }
.sdz-stats dd { margin: .25rem 0 0; font-size: .75rem; color: var(--muted-foreground); }

/* Contact */
.sdz-contact-grid { display: grid; gap: 1.5rem; margin-top: 4rem; }
@media (min-width: 1024px) { .sdz-contact-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.sdz-contact-cards { display: grid; gap: 1rem; }
@media (min-width: 640px) { .sdz-contact-cards { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.sdz-contact-card { display: block; height: 100%; border-radius: var(--radius-xl); padding: 1.5rem; transition: transform .3s ease; }
.sdz-contact-card:hover { transform: translateY(-.25rem); }
.sdz-contact-card .sdz-icon-tile { width: 2.75rem; height: 2.75rem; }
.sdz-contact-card b { display: block; margin-top: 1rem; font-family: var(--font-display); font-size: .9rem; word-break: break-word; }
.sdz-contact-card span { display: block; margin-top: .25rem; font-size: .75rem; color: var(--muted-foreground); }
.sdz-map { min-height: 22rem; height: 100%; overflow: hidden; border-radius: var(--radius-xl); border: 1px solid var(--border); box-shadow: var(--shadow-float); }
.sdz-map iframe { width: 100%; height: 100%; min-height: 22rem; border: 0; display: block; }

/* Booking form (plugin) */
.sdz-form { border-radius: var(--radius-xl); padding: 1.75rem; display: grid; gap: 1rem; }
.sdz-form .sdz-field { display: grid; gap: .35rem; }
.sdz-form label { font-size: .8rem; font-weight: 600; }
.sdz-form input, .sdz-form select, .sdz-form textarea {
  width: 100%; font: inherit; font-size: .9rem; padding: .75rem 1rem; border-radius: 1rem;
  border: 1px solid var(--border); background: color-mix(in oklab, white 80%, transparent); color: var(--foreground);
}
.sdz-form input:focus, .sdz-form select:focus, .sdz-form textarea:focus {
  outline: 2px solid color-mix(in oklab, var(--ocean) 55%, transparent); outline-offset: 1px;
}
.sdz-form-row { display: grid; gap: 1rem; }
@media (min-width: 640px) { .sdz-form-row { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.sdz-form-msg { font-size: .85rem; border-radius: 1rem; padding: .75rem 1rem; display: none; }
.sdz-form-msg.is-ok { display: block; background: color-mix(in oklab, var(--palm) 16%, white); color: var(--palm); }
.sdz-form-msg.is-error { display: block; background: color-mix(in oklab, oklch(.62 .22 27) 14%, white); color: oklch(.5 .2 27); }
.sdz-hp { position: absolute !important; left: -9999px !important; }

/* CTA banner */
.sdz-cta { position: relative; overflow: hidden; }
.sdz-cta img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sdz-cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgba(0,0,0,.7), rgba(0,0,0,.25)); }
.sdz-cta__inner { position: relative; z-index: 1; text-align: center; padding-block: 7rem; }
@media (min-width: 640px) { .sdz-cta__inner { padding-block: 9rem; } }
.sdz-cta h2 { margin-inline: auto; max-width: 48rem; color: #fff; font-size: clamp(1.75rem, 5vw, 3rem); }
.sdz-cta__actions { margin-top: 2.5rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }

/* Wave dividers */
.sdz-wave { display: block; width: 100%; height: 3rem; }
.sdz-wave.is-flipped { transform: rotate(180deg); }

/* Footer */
.sdz-footer { background: oklch(0.22 0.03 232); color: #fff; padding-block: 4rem 2rem; }
.sdz-footer a:hover { text-decoration: underline; }
.sdz-footer-grid { display: grid; gap: 2.5rem; }
@media (min-width: 768px) { .sdz-footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.sdz-footer h3 { font-size: .875rem; }
.sdz-footer ul { margin-top: 1rem; display: grid; gap: .5rem; font-size: .875rem; opacity: .72; }
.sdz-footer p { font-size: .875rem; opacity: .72; line-height: 1.7; }
.sdz-socials { margin-top: 1rem; display: flex; gap: .5rem; }
.sdz-socials a {
  width: 2.5rem; height: 2.5rem; border-radius: 999px; display: grid; place-items: center;
  background: rgba(255,255,255,.1); transition: background .2s ease, transform .2s ease;
}
.sdz-socials a:hover { background: var(--ocean); transform: translateY(-2px); }
.sdz-socials svg { width: 1.1rem; height: 1.1rem; }
.sdz-footer-bottom {
  margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between;
  font-size: .8rem; opacity: .6;
}

/* Floating actions */
.sdz-floating { position: fixed; right: 1rem; bottom: 1rem; z-index: 45; display: grid; gap: .75rem; justify-items: end; }
.sdz-fab {
  width: 3.5rem; height: 3.5rem; border-radius: 999px; display: grid; place-items: center;
  color: #fff; box-shadow: var(--shadow-float); transition: transform .2s ease;
}
.sdz-fab:hover { transform: scale(1.08); }
.sdz-fab svg { width: 1.5rem; height: 1.5rem; }
.sdz-fab-wa { background: #25D366; }
.sdz-fab-book { background: var(--gradient-tropical); width: auto; height: auto; border-radius: 999px; padding: .9rem 1.4rem; font-weight: 600; font-size: .875rem; }

/* Generic pages (blog/single) */
.sdz-page { padding-block: 9rem 5rem; }
.sdz-page h1 { font-size: clamp(2rem, 5vw, 3rem); }
.sdz-prose { max-width: 48rem; margin-inline: auto; }
.sdz-prose p, .sdz-prose ul, .sdz-prose ol { margin-top: 1.25rem; color: var(--muted-foreground); line-height: 1.8; }
.sdz-prose ul, .sdz-prose ol { padding-left: 1.25rem; list-style: disc; }
.sdz-prose h2, .sdz-prose h3 { margin-top: 2.5rem; }
.sdz-post-card { margin-top: 2rem; padding: 1.5rem; border-radius: var(--radius-xl); }

.sdz-form-note { font-size: .75rem; color: var(--muted-foreground); text-align: center; margin-top: .6rem; }
.sdz-pay-choice { border: 1px solid var(--glass-border); border-radius: 14px; padding: .9rem 1rem; margin-bottom: 1rem; }
.sdz-pay-choice legend { font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; color: var(--muted-foreground); padding: 0 .35rem; }
.sdz-pay-choice label { display: flex; align-items: center; gap: .55rem; font-size: .9rem; padding: .3rem 0; cursor: pointer; }
.sdz-pay-choice input[type="radio"] { accent-color: var(--sdz-turquoise, var(--primary)); width: 1rem; height: 1rem; }


/* Safaris & Tours page */
.sdz-tour-hero { position: relative; min-height: 62svh; display: flex; align-items: flex-end; overflow: hidden; }
.sdz-tour-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sdz-tour-hero__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(4,26,43,.9), rgba(4,26,43,.35) 55%, rgba(4,26,43,.6)); }
.sdz-tour-hero__inner { position: relative; padding-block: 9rem 4rem; max-width: 46rem; }
.sdz-tour-hero h1 { margin-top: 1.25rem; color: #fff; font-size: clamp(2rem, 6vw, 3.5rem); line-height: 1.08; }
.sdz-tour-hero .sdz-lede { margin-top: 1rem; color: rgba(255,255,255,.88); font-size: 1rem; line-height: 1.7; }
.sdz-tour-meta { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; margin-top: .35rem; font-size: .8125rem; color: var(--muted-foreground); }
.sdz-tour-meta span { display: inline-flex; align-items: center; gap: .35rem; }
.sdz-tour-meta svg { width: 1rem; height: 1rem; color: var(--turquoise); }
.sdz-tour .sdz-muted { margin-top: .75rem; font-size: .875rem; line-height: 1.6; }
.sdz-tour.is-popular { outline: 2px solid var(--turquoise); outline-offset: -2px; }
.sdz-tour-booking { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 900px) { .sdz-tour-booking { grid-template-columns: 1.5fr 1fr; } }
.sdz-tour-aside { padding: 1.75rem; border-radius: var(--radius-xl); }
.sdz-tour-aside h3 { font-size: 1.125rem; }
.sdz-tour-aside .sdz-specs { margin-top: 1rem; }
.sdz-tour-aside .sdz-muted { margin-top: 1.25rem; font-size: .875rem; }
.sdz-tour-aside .sdz-btn { margin-top: 1rem; }
