@font-face {
  font-family: 'Swarsh Daisy';
  src: url('../assets/Font/swarsh-daisy-regular.ttf?v=4') format('truetype'),
       url('../assets/Font/swarsh-daisy-regular.otf?v=4') format('opentype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Swarsh Daisy';
  src: url('../assets/Font/swarsh-daisy-italic.ttf?v=4') format('truetype'),
       url('../assets/Font/swarsh-daisy-italic.otf?v=4') format('opentype');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Trajan Pro';
  src: url('../assets/Font/trajan-pro/TrajanPro-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Trajan Pro';
  src: url('../assets/Font/trajan-pro/TrajanPro-Bold.otf') format('opentype');
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Jost';
  src: url('../assets/Font/Jost/Jost-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Jost';
  src: url('../assets/Font/Jost/Jost-Italic-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-Leicht-BF663d89cd4952e.otf?v=4') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-LeichtKursiv-BF663d89cd9a361.otf?v=4') format('opentype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-Buch-BF663d89cd32e6a.otf?v=4') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-BuchKursiv-BF663d89cd3e887.otf?v=4') format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-Kraftig-BF663d89cd37e26.otf?v=4') format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-Halbfett-BF663d89cd2d67b.otf?v=4') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-HalbfettKursiv-BF663d89cd41624.otf?v=4') format('opentype');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Sohne';
  src: url('../assets/Font/sohne-font-family/TestSohne-Fett-BF663d89cca89ff.otf?v=4') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ── Zen Brand Core (Refined for Light theme contrast) ────────── */
  --cyan:          #4CCBD4;    /* primary accent — lotus highlight */
  --cyan-light:    #63D6DE;    /* hover states, glows */
  --teal:          #076875;    /* secondary accent — lotus deep */
  --teal-dark:     #054C55;    /* borders, subtle accents */

  /* ── Backgrounds (Light Theme) ────────────────────────────────── */
  --black:         #FFFFFF;    /* pure white background */
  --black-soft:    #F5F8F8;    /* page background (sophisticated pale ivory/gray-teal) */
  --black-card:    #FFFFFF;    /* card / section backgrounds */
  --black-border:  #E2ECEE;    /* subtle borders on light bg */
  --black-overlay: rgba(255, 255, 255, 0.95); /* nav overlay, menu bg */

  /* ── Text (Light Theme) ───────────────────────────────────────── */
  --white:         #0E2224;    /* primary text (dark charcoal-teal) */
  --white-soft:    #1B3639;    /* body text (dark slate-teal) */
  --white-muted:   #567376;    /* secondary labels, captions */
  --white-faint:   #B7C9CB;    /* disabled, placeholder, light divider */

  /* ── Semantic ───────────────────────────────────── */
  --accent:        var(--cyan);         /* CTAs, highlights, underlines */
  --accent-hover:  var(--cyan-light);   /* hover on CTAs */
  --accent-deep:   var(--teal);         /* borders, tags */
  --page-bg:       var(--black-soft);   /* body background */
  --card-bg:       var(--black-card);   /* sections, cards */

  /* ── Easing ─────────────────────────────────────── */
  --ease-luxury:   cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out:      cubic-bezier(0.33, 1, 0.68, 1);

  /* ── Typography ─────────────────────────────────── */
  --serif: 'Trajan Pro', 'Cormorant Garamond', Georgia, serif;
  --sans:  'Jost', 'Sohne', 'Exo 2', sans-serif;
  --script: 'Swarsh Daisy', cursive;
}

html {
  overflow-x: clip;
}

@media (min-width: 992px) {
  html {
    scrollbar-gutter: stable;
  }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background-color: var(--page-bg);
  color: var(--white-soft);
  font-family: var(--sans);
  font-weight: 300;
  line-height: 1.6;
  overflow-x: clip;
}

body.preloader-active {
  overflow: hidden;
}

/* Preloader */
#preloader {
  position: fixed;
  inset: 0;
  background: var(--black);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.preloader-content {
  text-align: center;
}

.preloader-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 30px;
  animation: pulseLogo 2s infinite ease-in-out;
}

.preloader-bar {
  width: 0;
  height: 1px;
  background: var(--cyan);
}

@keyframes pulseLogo {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}

@keyframes loadBar {
  0% { width: 0; }
  100% { width: 200px; }
}

a {
  text-decoration: none;
  color: inherit;
  transition: color 0.3s var(--ease-luxury);
}

button {
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
}

ul {
  list-style: none;
}

img {
  max-width: 100%;
  display: block;
}

em {
  font-family: var(--script) !important;
  font-style: italic !important;
  font-weight: 100 !important;
  -webkit-font-smoothing: antialiased;
}

/* Scrollbar (Desktop only to prevent mobile overlay border issues) */
@media (min-width: 992px) {
  ::-webkit-scrollbar {
    width: 6px;
  }
  ::-webkit-scrollbar-track {
    background: var(--black);
  }
  ::-webkit-scrollbar-thumb {
    background: var(--teal-dark);
  }
  ::-webkit-scrollbar-thumb:hover {
    background: var(--cyan);
  }
}


/* Common Components */
.eyebrow {
  display: none !important;
}

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cyan);
  border-bottom: 2px solid var(--cyan);
  padding-bottom: 8px;
  transition: gap 0.4s var(--ease-luxury), color 0.4s var(--ease-luxury), border-color 0.4s var(--ease-luxury);
}
.btn-outline::after {
  content: '→';
  transition: transform 0.4s var(--ease-luxury);
}
.btn-outline:hover {
  gap: 24px;
  color: var(--cyan-light);
  border-color: var(--cyan-light);
}

.btn-gold {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--black);
  background: var(--cyan);
  padding: 14px 32px;
  transition: background 0.3s, gap 0.3s;
}
.btn-gold:hover {
  background: var(--cyan-light);
  gap: 20px;
}

/* Animations */
.reveal {
  opacity: 0;
  transform: translateY(48px);
  transition: opacity 1.2s var(--ease-luxury), transform 1.2s var(--ease-luxury);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }
.delay-3 { transition-delay: 0.45s; }
.delay-4 { transition-delay: 0.6s; }

/* ── Lenis Smooth Scroll Base Styles ──────────────── */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}
