/* YOSUTRAVELS_DESIGN_SYSTEM_FOUNDATION_V279 */
:root {
  --yosu-green: #10241c;
  --yosu-green-soft: #18372b;
  --yosu-lime: #9bb400;
  --yosu-lime-soft: #e8ef83;
  --yosu-cream: #fffdf4;
  --yosu-surface: #ffffff;
  --yosu-surface-soft: #fbfbf3;
  --yosu-border: rgba(16, 36, 28, 0.12);
  --yosu-border-strong: rgba(16, 36, 28, 0.2);
  --yosu-text: #111827;
  --yosu-muted: #647067;
  --yosu-success: #138a43;
  --yosu-error: #b42318;
  --yosu-warning: #b7791f;
  --yosu-radius-sm: 14px;
  --yosu-radius-md: 20px;
  --yosu-radius-lg: 28px;
  --yosu-radius-pill: 999px;
  --yosu-shadow-card: 0 18px 45px rgba(16, 36, 28, 0.08);
  --yosu-shadow-hover: 0 24px 60px rgba(16, 36, 28, 0.13);
  --yosu-font-sans: "Inter", "Manrope", "Plus Jakarta Sans", "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  color: var(--yosu-text);
  font-family: var(--yosu-font-sans);
  letter-spacing: -0.01em;
}

:where(h1, h2, h3, h4, h5, h6) {
  color: var(--yosu-text);
  font-family: var(--yosu-font-sans);
  letter-spacing: -0.045em;
  line-height: 1.05;
}

:where(p, li, label, input, select, textarea, button, .btn, .form-control, .form-select) {
  font-family: var(--yosu-font-sans);
}

:where(p, li) {
  color: inherit;
  line-height: 1.72;
}

:where(.text-muted, .muted, .subtitle, .lead, .section-subtitle, .home-section-intro, .partner-lead, .tavura-lead) {
  color: var(--yosu-muted) !important;
}

:where(.btn, button, input[type="submit"], input[type="button"], .button, .cta-button, .home-hero-cta, .partner-cta, .tavura-cta) {
  align-items: center;
  border-radius: var(--yosu-radius-pill);
  display: inline-flex;
  font-weight: 650;
  gap: 0.45rem;
  justify-content: center;
  letter-spacing: -0.015em;
  line-height: 1.1;
  min-height: 44px;
  padding: 0.78rem 1.25rem;
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}

:where(.btn:hover, button:hover, input[type="submit"]:hover, input[type="button"]:hover, .button:hover, .cta-button:hover) {
  transform: translateY(-1px);
}

:where(.btn-primary, .btn-success, .button-primary, .cta-primary, .home-hero-cta, .partner-primary, .tavura-primary) {
  background: var(--yosu-green) !important;
  border-color: var(--yosu-green) !important;
  color: #fff !important;
  box-shadow: 0 12px 30px rgba(16, 36, 28, 0.18);
}

:where(.btn-primary:hover, .btn-success:hover, .button-primary:hover, .cta-primary:hover, .home-hero-cta:hover, .partner-primary:hover, .tavura-primary:hover) {
  background: var(--yosu-green-soft) !important;
  border-color: var(--yosu-green-soft) !important;
  color: #fff !important;
}

:where(.btn-secondary, .button-secondary, .cta-secondary) {
  background: var(--yosu-lime-soft) !important;
  border-color: var(--yosu-lime-soft) !important;
  color: var(--yosu-green) !important;
}

:where(.btn-outline, .btn-outline-primary, .button-outline, .cta-outline) {
  background: rgba(255, 255, 255, 0.78) !important;
  border: 1px solid var(--yosu-border-strong) !important;
  color: var(--yosu-green) !important;
}

:where(.btn-danger, .button-danger) {
  background: var(--yosu-error) !important;
  border-color: var(--yosu-error) !important;
  color: #fff !important;
}

:where(.card, .product-card, .listing-card, .hotel-card, .tour-card, .transport-card, .tourist-site-card, .recommendation-card, .home-destination-card, .home-service-link-card, .home-news-card, .partner-card, .tavura-card, .kpi-card) {
  background: var(--yosu-surface);
  border: 1px solid var(--yosu-border);
  border-radius: var(--yosu-radius-lg);
  box-shadow: var(--yosu-shadow-card);
  overflow: hidden;
}

:where(.card:hover, .product-card:hover, .listing-card:hover, .hotel-card:hover, .tour-card:hover, .transport-card:hover, .tourist-site-card:hover, .recommendation-card:hover, .home-destination-card:hover, .home-service-link-card:hover, .partner-card:hover, .tavura-card:hover) {
  box-shadow: var(--yosu-shadow-hover);
}

:where(.card img, .product-card img, .listing-card img, .hotel-card img, .tour-card img, .transport-card img, .tourist-site-card img, .recommendation-card img, .home-destination-card img, .home-news-card img, .tavura-card img) {
  display: block;
  max-width: 100%;
  object-fit: cover;
}

:where(.product-card > img, .listing-card > img, .hotel-card > img, .tour-card > img, .transport-card > img, .tourist-site-card > img, .recommendation-card > img, .home-destination-card img) {
  aspect-ratio: 16 / 10;
  width: 100%;
}

:where(input:not([type="checkbox"]):not([type="radio"]), textarea, select, .form-control, .form-select) {
  border: 1px solid var(--yosu-border-strong);
  border-radius: var(--yosu-radius-sm);
  color: var(--yosu-text);
  min-height: 44px;
}

:where(input:not([type="checkbox"]):not([type="radio"]):focus, textarea:focus, select:focus, .form-control:focus, .form-select:focus) {
  border-color: var(--yosu-lime);
  box-shadow: 0 0 0 0.2rem rgba(155, 180, 0, 0.16);
  outline: none;
}

:where(.badge, .status-badge, .verified-badge) {
  border-radius: var(--yosu-radius-pill);
  font-weight: 650;
  letter-spacing: 0.02em;
}

:where(.alert-success, .status-success) {
  background: rgba(19, 138, 67, 0.1);
  color: var(--yosu-success);
}

:where(.alert-danger, .status-error) {
  background: rgba(180, 35, 24, 0.1);
  color: var(--yosu-error);
}

:where(.alert-warning, .status-warning) {
  background: rgba(183, 121, 31, 0.12);
  color: var(--yosu-warning);
}

:where(.home-stable-page, .home-stable-section, .tourist-site-public-page, .partner-landing-page, .tavura-page) {
  background: linear-gradient(180deg, #fffef8 0%, #ffffff 38%, #fbfbf3 100%);
}

:where(.home-stable-section, .home-product-section, .home-service-links-section, .tourist-site-section, .partner-section, .tavura-section) {
  padding-block: clamp(2.5rem, 5vw, 5rem);
}

:where(.home-stable-section h2, .home-product-section h2, .tourist-site-public-page h1, .partner-landing-page h1, .tavura-page h1) {
  font-weight: 750;
}

:where(.admin-wrapper, .admin-content, .dashboard-wrapper) :where(.card, .kpi-card) {
  border-radius: var(--yosu-radius-md);
}

:where(.fa, .fas, .far, .fab, .fal, .fad, .bi, [class^="ti-"], [class*=" ti-"], .material-icons, .icon-font, [data-icon]) {
  letter-spacing: normal;
  line-height: 1;
  text-rendering: auto;
}

@media (max-width: 768px) {
  :where(h1) {
    font-size: clamp(2.2rem, 13vw, 3.6rem);
  }

  :where(.btn, button, input[type="submit"], input[type="button"], .button, .cta-button) {
    min-height: 42px;
    padding: 0.72rem 1rem;
  }

  :where(.card, .product-card, .listing-card, .hotel-card, .tour-card, .transport-card, .tourist-site-card, .recommendation-card, .partner-card, .tavura-card) {
    border-radius: var(--yosu-radius-md);
  }
}

@media (prefers-color-scheme: dark) {
  body:not(.admin-layout):not(.admin-body) {
    background: #0f1712;
    color: #f6f7ef;
  }

  body:not(.admin-layout):not(.admin-body) :where(h1, h2, h3, h4, h5, h6) {
    color: #f9fbf4;
  }

  body:not(.admin-layout):not(.admin-body) :where(.card, .product-card, .listing-card, .hotel-card, .tour-card, .transport-card, .tourist-site-card, .recommendation-card, .home-destination-card, .partner-card, .tavura-card) {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
  }

  body:not(.admin-layout):not(.admin-body) :where(.btn-outline, .btn-outline-primary, .button-outline, .cta-outline) {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    color: #f9fbf4 !important;
  }
}
