/* ============================================================
   Цветочный Рай — статичная версия (Bootstrap 5 + custom)
   ============================================================ */

:root {
  /* Palette (HSL) */
  --background: 36 40% 97%;
  --foreground: 0 0% 8%;
  --card: 36 40% 99%;
  --primary: 357 78% 47%;
  --primary-foreground: 36 40% 98%;
  --primary-glow: 357 85% 60%;
  --primary-deep: 357 72% 35%;
  --secondary: 36 30% 92%;
  --muted: 36 25% 93%;
  --muted-foreground: 0 0% 40%;
  --accent: 357 70% 95%;
  --border: 36 25% 86%;
  --destructive: 0 84% 50%;

  --gradient-hero: linear-gradient(135deg, hsl(36 40% 97%) 0%, hsl(36 45% 94%) 60%, hsl(357 40% 92%) 100%);
  --gradient-brand: linear-gradient(135deg, hsl(var(--primary-deep)), hsl(var(--primary)), hsl(var(--primary-glow)));

  --shadow-soft: 0 2px 24px -8px hsl(0 0% 0% / 0.08);
  --shadow-brand: 0 20px 50px -20px hsl(var(--primary) / 0.45);
  --shadow-card: 0 10px 40px -12px hsl(357 50% 20% / 0.12);

  --ease-smooth: cubic-bezier(0.22, 1, 0.36, 1);
  --t-slow: 700ms var(--ease-smooth);

  /* Bootstrap overrides */
  --bs-primary: hsl(var(--primary));
  --bs-primary-rgb: 207, 27, 34;
  --bs-body-bg: hsl(var(--background));
  --bs-body-color: hsl(var(--foreground));
  --bs-body-font-family: 'Inter', system-ui, -apple-system, sans-serif;
  --bs-border-color: hsl(var(--border));
}

/* ---------------- Base ---------------- */
html { scroll-behavior: smooth; }

body {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  background-image:
    radial-gradient(hsl(0 0% 0% / 0.025) 1px, transparent 1px),
    radial-gradient(hsl(0 0% 0% / 0.02) 1px, transparent 1px);
  background-size: 24px 24px, 12px 12px;
  background-position: 0 0, 12px 12px;
  overflow-x: hidden;
}

h1, h2, h3, h4, .font-display {
  font-family: 'Playfair Display', Georgia, serif;
  letter-spacing: -0.01em;
}

section { scroll-margin-top: 80px; }

a { text-decoration: none; color: inherit; }

/* Desktop snap scroll */
@media (min-width: 992px) {
  html { /* scroll-snap-type: y mandatory; */ }
  main > section {
    /* scroll-snap-align: start;
    scroll-snap-stop: always; */
    min-height: 100vh;
  }
  .company-section{
	  padding: 3rem 0!important;
  }
}

/* ---------------- Utilities ---------------- */
.eyebrow {
  display: inline-block;
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .25em;
  color: hsl(var(--primary));
}
.eyebrow-muted { color: hsl(var(--muted-foreground)); }
.eyebrow-glow  { color: hsl(var(--primary-glow)); }

.divider-line { display:inline-block; height:1px; width:4rem; background: hsl(var(--primary)); }

.section-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.25rem, 4vw + 1rem, 3.75rem);
  line-height: 1.05;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

.text-gradient-brand {
  background: var(--gradient-brand);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

.text-balance { text-wrap: balance; }
.text-muted-fg { color: hsl(var(--muted-foreground)); }
.bg-card-soft  { background-color: hsl(var(--card)); }
.bg-secondary-soft { background-color: hsl(var(--secondary) / .55); }

.shadow-soft { box-shadow: var(--shadow-soft); }
.shadow-card { box-shadow: var(--shadow-card); }
.shadow-brand{ box-shadow: var(--shadow-brand); }

.rounded-x { border-radius: .25rem; }

/* ---------------- Buttons ---------------- */
.btn { border-radius: .25rem; font-weight: 500; transition: all .25s var(--ease-smooth); }
.btn-brand {
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  border: 1px solid transparent;
}
.btn-brand:hover { background: hsl(var(--primary-deep)); color: hsl(var(--primary-foreground)); }
.btn-ghost {
  background: transparent;
  color: hsl(var(--foreground));
  border: 1px solid hsl(var(--foreground) / .2);
}
.btn-ghost:hover { background: hsl(var(--foreground) / .05); }
.btn-lg-x { height: 3.5rem; padding: 0 2rem; font-size: 1rem; display:inline-flex; align-items:center; justify-content:center; gap:.5rem; }

/* ---------------- Header ---------------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1050;
  transition: all .5s var(--ease-smooth);
  background: transparent;
}
.site-header.scrolled {
  background: hsl(var(--background) / .85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: var(--shadow-soft);
  border-bottom: 1px solid hsl(var(--border) / .6);
}
.site-header .header-inner {
  display:flex; align-items:center; justify-content:space-between;
  height: 4rem;
}
@media (min-width: 768px) { .site-header .header-inner { height: 5rem; } }

.nav-desktop { display:none; gap:2rem; align-items:center; }
@media (min-width: 992px) { .nav-desktop { display:flex; } }
.nav-desktop a {
  position: relative;
  font-size: .875rem;
  font-weight: 500;
  color: hsl(var(--foreground) / .8);
  transition: color .3s;
}
.nav-desktop a:hover { color: hsl(var(--primary)); }
.nav-desktop a::after {
  content:""; position:absolute; left:0; bottom:-4px;
  height:1px; width:0; background: hsl(var(--primary));
  transition: width .3s var(--ease-smooth);
}
.nav-desktop a:hover::after { width: 100%; }

.menu-toggle {
  display:inline-flex; align-items:center; justify-content:center;
  width: 2.5rem; height: 2.5rem;
  background: transparent; border: 0; color: hsl(var(--foreground));
}
@media (min-width: 992px) { .menu-toggle { display:none; } }

/* Fullscreen mobile menu */
.mobile-menu {
  position: fixed;
  inset: 4rem 0 0 0;
  background: hsl(var(--background) / .98);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0; pointer-events: none;
  transition: opacity .5s var(--ease-smooth);
  z-index: 1040;
  display: flex; flex-direction: column;
  padding: 1.5rem 1.25rem;
}
@media (min-width: 768px) { .mobile-menu { inset: 5rem 0 0 0; } }
@media (min-width: 992px) { .mobile-menu { display:none !important; } }
.mobile-menu.open { opacity: 1; pointer-events: auto; }
.mobile-menu ul {
  list-style: none; padding:0; margin:0;
  flex: 1; display:flex; flex-direction:column;
}
.mobile-menu li {
  flex: 1; display:flex;
  border-bottom: 1px solid hsl(var(--border) / .5);
}
.mobile-menu li:last-child { border-bottom: 0; }
.mobile-menu li a {
  flex: 1; display:flex; align-items:center;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.5rem; font-weight: 600;
  color: hsl(var(--foreground) / .9);
  transition: color .25s;
}
.mobile-menu li a:hover { color: hsl(var(--primary)); }
.mobile-menu .btn { margin-top: 1.5rem; height: 3.5rem; font-size: 1rem; }

/* ---------------- Hero ---------------- */
.hero {
  position: relative;
  min-height: 100vh;
  display:flex; align-items:center;
  padding: 6rem 0 4rem;
  background: var(--gradient-hero);
  overflow: hidden;
}
.hero .blob {
  position: absolute; border-radius: 50%;
  filter: blur(80px); pointer-events:none;
}
.hero .blob-1 { top:-10rem; right:-10rem; width:500px; height:500px; background: hsl(var(--primary) / .15); }
.hero .blob-2 { bottom:-10rem; left:-10rem; width:400px; height:400px; background: hsl(var(--primary-glow) / .1); }

.hero h1 {
  font-weight: 700;
  font-size: clamp(3rem, 6vw + 1rem, 5.5rem);
  line-height: .95;
}

.hero-image-wrap {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  border-radius: .25rem;
  box-shadow: var(--shadow-card);
}
.hero-image-wrap img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-image-wrap::after {
  content:""; position:absolute; inset:0;
  background: linear-gradient(to top, hsl(var(--foreground) / .3), transparent 60%);
}
.floating-card {
  position: absolute; left: -2rem; bottom: 2.5rem;
  background: hsl(var(--card)); padding: 1.25rem;
  max-width: 220px; border-radius: .25rem;
  border: 1px solid hsl(var(--border));
  box-shadow: var(--shadow-card);
  animation: float-slow 7s ease-in-out infinite;
}
@media (max-width: 767.98px) { .floating-card { display:none; } }
.floating-card img { height: 3rem; width:auto; margin-bottom: .5rem; }

.scroll-down {
  position: absolute; bottom: 1.5rem; left:50%;
  transform: translateX(-50%);
  display: none; align-items:center; gap:.5rem;
  font-size: .75rem; text-transform: uppercase; letter-spacing: .2em;
  color: hsl(var(--muted-foreground));
}
.scroll-down:hover { color: hsl(var(--primary)); }
@media (min-width: 768px) { .scroll-down { display:inline-flex; } }
.scroll-down svg { animation: bounce 1.4s infinite; }

/* Stats */
.stats { display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 32rem; margin-top: 3.5rem; }
.stats dt { font-family:'Playfair Display', serif; font-size: 2rem; font-weight: 700; color: hsl(var(--primary)); margin:0; }
@media (min-width: 768px) { .stats dt { font-size: 2.25rem; } }
.stats dd { font-size: .75rem; text-transform: uppercase; letter-spacing: .15em; color: hsl(var(--muted-foreground)); margin: .25rem 0 0; }

/* ---------------- Assortment ---------------- */
.assortment-section {
  padding: 6rem 0;
  position: relative;
}
@media (min-width: 992px) {
  .assortment-section { padding: 1rem 0; display:flex; flex-direction:column; justify-content:center; }
}

.flowers-grid {
  display:grid; gap: .75rem;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) { .flowers-grid { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } }

.flower-card {
  position: relative; overflow: hidden;
  border-radius: .25rem; background: hsl(var(--muted));
  box-shadow: var(--shadow-soft);
  cursor: pointer;
  aspect-ratio: 1/1;
}
@media (min-width: 992px) { .flower-card { aspect-ratio: 4/3; } }
.flower-card img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition: transform 1.2s var(--ease-smooth);
}
.flower-card:hover img { transform: scale(1.1); }
.flower-card::after {
  content:""; position:absolute; inset:0;
  background: linear-gradient(to top, hsl(var(--foreground) / .85), hsl(var(--foreground) / .1) 60%, transparent);
  opacity: .9; transition: opacity .5s;
}
.flower-card:hover::after { opacity: 1; }
.flower-card figcaption {
  position:absolute; left:0; right:0; bottom:0;
  padding: 1.5rem;
  color: hsl(var(--background));
  z-index: 2;
  transform: translateY(8px);
  transition: transform .5s var(--ease-smooth);
}
.flower-card:hover figcaption { transform: translateY(0); }
.flower-card .note { font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; opacity: .8; margin:0; }
.flower-card .title { font-family:'Playfair Display', serif; font-size: 1.5rem; margin: .25rem 0 0; }
@media (min-width: 768px) { .flower-card .title { font-size: 1.75rem; } }

/* ---------------- Company ---------------- */
.company-section {
  padding: 6rem 0;
  background: hsl(var(--secondary) / .4);
  position: relative; overflow: hidden;
}
.company-image {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  border-radius: .25rem;
  box-shadow: var(--shadow-card);
}
.company-image img { width:100%; height:100%; object-fit:cover; }
.company-badge {
  position:absolute; right:-1.5rem; bottom:-1.5rem;
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
  padding: 1.5rem; max-width: 200px;
  box-shadow: var(--shadow-brand);
}
@media (max-width: 767.98px) { .company-badge { display:none; } }
.company-badge .y { font-family:'Playfair Display', serif; font-size: 2.5rem; line-height: 1; }
.company-badge .l { font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; margin-top:.5rem; opacity:.9; }

.feature-card {
  display:flex; gap: 1rem; padding: 1.25rem;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / .6);
  border-radius: .25rem;
  transition: all .3s var(--ease-smooth);
}
.feature-card:hover {
  border-color: hsl(var(--primary) / .4);
  box-shadow: var(--shadow-soft);
}
.feature-card .icon {
  flex-shrink: 0; width: 2.75rem; height: 2.75rem;
  background: hsl(var(--primary) / .1);
  color: hsl(var(--primary));
  display:flex; align-items:center; justify-content:center;
  border-radius: .25rem;
  transition: all .3s;
}
.feature-card:hover .icon { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.feature-card h3 { font-family: 'Inter', sans-serif; font-size: 1rem; font-weight: 600; margin: 0; }
.feature-card p { font-size: .875rem; color: hsl(var(--muted-foreground)); margin: .25rem 0 0; line-height: 1.55; }

/* ---------------- Contacts ---------------- */
.contacts-section { padding: 1rem 0; }
.info-card {
  background: hsl(var(--card)); border: 1px solid hsl(var(--border));
  border-radius: .25rem; padding: 1.5rem;
  box-shadow: var(--shadow-soft);
  display:flex; gap: 1rem;
}
.info-card .icon {
  flex-shrink: 0; width: 2.75rem; height: 2.75rem;
  background: hsl(var(--primary) / .1); color: hsl(var(--primary));
  display:flex; align-items:center; justify-content:center;
  border-radius: .25rem;
}
.info-card .label { font-size:.75rem; text-transform:uppercase; letter-spacing:.25em; color: hsl(var(--muted-foreground)); margin:0; font-weight:600; }
.info-card .value { font-family:'Playfair Display', serif; font-size:1.25rem; margin:.25rem 0 0; }
.info-card .meta { color: hsl(var(--muted-foreground)); margin: 0; }
.info-card a.tel { color: hsl(var(--foreground)); font-weight: 500; transition: color .25s; }
.info-card a.tel:hover { color: hsl(var(--primary)); }
.schedule-row {
  display:flex; justify-content:space-between;
  padding: .4rem 0; font-size:.875rem;
  border-bottom: 1px solid hsl(var(--border) / .6);
}
.schedule-row:last-child { border-bottom: 0; }
.schedule-row dt { color: hsl(var(--muted-foreground)); margin:0; }
.schedule-row dd { margin:0; font-weight:500; font-variant-numeric: tabular-nums; }

.map-wrap {
  position:relative; /* min-height: 420px; */ aspect-ratio: 4/3;
  border-radius: .25rem; overflow: hidden;
  border: 1px solid hsl(var(--border));
  box-shadow: var(--shadow-card);
}
@media (min-width: 992px) { .map-wrap { aspect-ratio: auto; height: 100%; } }
.map-wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------------- Wholesale ---------------- */
.wholesale-section {
  padding: 6rem 0;
  position:relative; overflow:hidden;
  background: hsl(var(--foreground));
  color: hsl(var(--background));
}
.wholesale-section::before {
  content:""; position:absolute; inset:0; opacity:.04; pointer-events:none;
  background-image: radial-gradient(hsl(var(--background)) 1px, transparent 1px);
  background-size: 20px 20px;
}
.wholesale-section .blob {
  position:absolute; top:-10rem; right:-10rem;
  width:500px; height:500px; border-radius:50%;
  background: hsl(var(--primary) / .3); filter: blur(80px);
}
.wholesale-section h2 {
  font-family:'Playfair Display', serif;
  font-size: clamp(2.25rem, 4vw + 1rem, 3.75rem); line-height:1.05;
}
.wholesale-section .lead { color: hsl(var(--background) / .75); }
.wholesale-perks { list-style:none; padding:0; margin: 2rem 0 0; }
.wholesale-perks li { display:flex; gap:.75rem; align-items:flex-start; color: hsl(var(--background) / .85); margin-bottom: .75rem; }
.wholesale-perks li svg { color: hsl(var(--primary-glow)); flex-shrink:0; margin-top:.15rem; }

.wholesale-form {
  background: hsl(var(--card)); color: hsl(var(--foreground));
  padding: 2rem; border-radius: .25rem;
  border: 1px solid hsl(var(--border));
  box-shadow: var(--shadow-card);
}
@media (min-width: 768px) { .wholesale-form { padding: 2.5rem; } }
.wholesale-form h3 { font-family:'Playfair Display', serif; font-size: 1.5rem; margin: 0 0 1.5rem; }
.wholesale-form .form-label { font-size:.875rem; font-weight:500; margin-bottom: .35rem; }
.wholesale-form .form-control {
  border-radius: .25rem; border-color: hsl(var(--border));
  background: hsl(var(--background));
  padding: .55rem .75rem;
}
.wholesale-form .form-control:focus {
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 .15rem hsl(var(--primary) / .2);
}
.field-error { font-size:.75rem; color: hsl(var(--destructive)); margin: .25rem 0 0; min-height: 1rem; }

.success-state {
  text-align:center; padding: 3rem 0;
  animation: fade-up .9s var(--ease-smooth) both;
}
.success-state .icon {
  margin: 0 auto 1.25rem; width: 4rem; height: 4rem; border-radius: 50%;
  background: hsl(var(--primary) / .1); color: hsl(var(--primary));
  display:flex; align-items:center; justify-content:center;
}
.success-state h3 { font-family:'Playfair Display', serif; font-size: 1.875rem; margin: 0 0 .5rem; }
.success-state p { color: hsl(var(--muted-foreground)); max-width: 24rem; margin: 0 auto; }

/* ---------------- Footer ---------------- */
.site-footer {
  background: hsl(var(--foreground));
  color: hsl(var(--background) / .8);
  padding: 3rem 0;
  border-top: 1px solid hsl(var(--background) / .1);
}
.site-footer .logo-img { height: 3.5rem; filter: brightness(0) invert(1); opacity:.9; margin-bottom: 1rem; }
.site-footer h4 { font-family:'Inter', sans-serif; font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.25em; color: hsl(var(--primary-glow)); margin-bottom: .75rem; }
.site-footer ul { list-style:none; padding:0; margin:0; font-size:.875rem; }
.site-footer ul li { margin-bottom: .5rem; }
.site-footer a { transition: color .25s; }
.site-footer a:hover { color: hsl(var(--background)); }
.site-footer .copy {
  margin-top: 2.5rem; padding-top: 1.5rem;
  border-top: 1px solid hsl(var(--background) / .1);
  font-size:.75rem; color: hsl(var(--background) / .5);
  display:flex; flex-wrap:wrap; gap:.5rem; justify-content:space-between;
}

/* ---------------- Modal (login) ---------------- */
.modal-content {
  border-radius: .25rem;
  border: 1px solid hsl(var(--border));
  background: hsl(var(--card));
}
.modal-title { font-family: 'Playfair Display', serif; font-size: 1.875rem; }
.input-icon { position: relative; }
.input-icon svg { position:absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: hsl(var(--muted-foreground)); }
.input-icon .form-control { padding-left: 2.25rem; }

/* ---------------- Toast ---------------- */
.toast-container-x {
  position: fixed; right: 1rem; bottom: 1rem;
  z-index: 1080; display:flex; flex-direction:column; gap:.5rem;
  max-width: 22rem;
}
.toast-x {
  background: hsl(var(--card));
  color: hsl(var(--foreground));
  border: 1px solid hsl(var(--border));
  box-shadow: var(--shadow-card);
  border-radius: .25rem;
  padding: .9rem 1rem;
  animation: fade-up .4s var(--ease-smooth) both;
}
.toast-x strong { display:block; font-family:'Playfair Display', serif; font-size: 1.05rem; }
.toast-x p { margin:.25rem 0 0; font-size:.875rem; color: hsl(var(--muted-foreground)); }

/* ---------------- Animations ---------------- */
@keyframes fade-up { from { opacity:0; transform: translateY(24px); } to { opacity:1; transform:none; } }
@keyframes scale-in { from { opacity:0; transform: scale(.96); } to { opacity:1; transform:none; } }
@keyframes float-slow { 0%,100%{ transform: translateY(0) rotate(0); } 50% { transform: translateY(-12px) rotate(1.5deg); } }
@keyframes bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }

.animate-fade-up { animation: fade-up .9s var(--ease-smooth) both; }
.animate-scale-in { animation: scale-in .8s var(--ease-smooth) both; }

.reveal { opacity:0; transform: translateY(28px); transition: opacity var(--t-slow), transform var(--t-slow); }
.reveal.in { opacity: 1; transform: none; }



