/* ============================================================
   Design tokens - faithful to the Airbnb design system
   Source: DESIGN-airbnb-reference.md (VoltAgent/awesome-design-md)
   Pure Airbnb visual language: white canvas, single Rausch accent,
   modest type, soft rounded shapes, one shadow tier.
   ============================================================ */

/* Self-hosted Inter (no Google Fonts: faster + no third-party IP leak). */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/inter-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/inter-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/inter-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/inter-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Self-hosted Fraunces: a warm display serif for headings (pairs with Inter body). */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/fraunces-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/fraunces-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Self-hosted Montserrat — the display + wordmark voice (geometric sans), paired with
   Inter for body. Latin subset only. (Replaced the Fraunces serif display, June 2026.) */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/montserrat-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/montserrat-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* --- Brand & accent (single voltage) --- */
  --rausch: #ba0036; /* editorial deep-rose accent: large display, heart, badges (Stitch secondary) */
  --rausch-active: #cc0a3b; /* AA on white AND the warm/sage soft ramp (>=4.5:1): CTAs, search orb, links */
  --rausch-deep: #b30733; /* CTA hover / press */
  --rausch-disabled: #ffd1da;

  /* --- Text --- */
  --ink: #1f1b16; /* espresso ink (Stitch) */
  --body: #3a352e; /* walnut (Stitch) */
  --muted: #6a6258; /* stone (Stitch) */
  --muted-soft: #635b50; /* darker stone — AA on the cream + beige ramp (>=4.5:1) */
  --on-primary: #ffffff;
  --on-dark: #ffffff;

  /* --- Surfaces (warmed off-white ramp; luminance ~unchanged so contrast holds) --- */
  --canvas: #ffffff; /* plain white (William: make the background plain white) */
  --surface-soft: #f5f5f5; /* neutral light grey — card/input fill on white */
  --surface-strong: #ececec; /* neutral grey — variant surface */

  /* ---- Warm "sunset travel" secondary palette ----
     Decorative roles ONLY (section washes, destination accents, graphics,
     illustrations). Coral (--rausch/--rausch-active) stays the SINGLE CTA voltage;
     none of these are ever a button. Warmth + wanderlust live here. */
  --sage: #bcd9c4; /* sage green — calm / nature */
  --sage-soft: #e7f0ea;
  --amber: #f3a73a; /* marigold — sun / sand / warmth */
  --amber-soft: #fbebd0; /* Stitch marigold-wash */
  --amber-ink: #9a5a08; /* AA amber-family text on light (~5.2:1 on canvas) */
  --teal: #1c9c92; /* warm teal — ocean / sky / water */
  --teal-soft: #ddeeec; /* Stitch lagoon-wash */
  --teal-ink: #0a6a62; /* AA teal-family text on light */
  --peach-soft: #fceae9; /* Stitch coral-wash (the beige-peach section bg) */

  /* Signature sunset washes — soft, low-chroma, for hero glows + section graphics.
     Never used as text backgrounds without a solid panel on top. */
  --grad-sunset: linear-gradient(135deg, #fff3e2 0%, #fde2e0 55%, #f7e7ef 100%);
  --grad-dawn: radial-gradient(120% 120% at 80% -10%, #fde7cf 0%, #fdeee6 38%, var(--canvas) 72%);
  --grad-ocean: linear-gradient(135deg, #e7f3f0 0%, #def0ed 50%, #eef3ea 100%);

  /* --- Lines & borders --- */
  --hairline: #ebebeb; /* neutral hairline on white */
  --hairline-soft: #f1f1f1; /* neutral hairline-soft */
  --border-strong: #d6d6d6; /* neutral border-strong */

  /* --- Semantic --- */
  --error: #c13515;
  --error-hover: #b32505;
  --star: #222222;
  --scrim: rgba(0, 0, 0, 0.5);

  /* --- Radii --- */
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 32px;
  --r-full: 9999px;

  /* --- Spacing (4px base, 2px micro-step) --- */
  --s-xxs: 2px;
  --s-xs: 4px;
  --s-sm: 8px;
  --s-md: 12px;
  --s-base: 16px;
  --s-lg: 24px;
  --s-xl: 32px;
  --s-xxl: 48px;
  --s-section: 64px;
  --pad-card: clamp(28px, 4vw, 48px); /* shared inner padding for framed panels */

  /* --- Type --- */
  --font-sans: "Inter", -apple-system, system-ui, Roboto, "Helvetica Neue", sans-serif;
  /* Airbnb Cereal is proprietary; the DESIGN.md names Inter as the closest substitute. */
  --font-display: "Montserrat", -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;

  /* --- The single shadow tier in the whole system --- */
  --shadow-card: rgba(0, 0, 0, 0.02) 0 0 0 1px,
    rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0;

  /* --- Layout --- */
  --content-max: 1280px;
  --nav-height: 80px;

  /* --- Motion --- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 0.18s;
  --dur-base: 0.32s;
  --dur-slow: 0.6s;
}

/* Inter's slightly taller cap height vs Cereal: nudge display line-height down ~2%
   as advised in the DESIGN.md font-substitute note. Applied on display classes. */
