/* HEYDAY — Warm Minimal primitives.
   File name kept for HTML compatibility (was liquid-glass).
   Flat surfaces, hairlines, square corners. No lift, no glow. */

/* Flatten any INLINE gradient placeholder (cool lavender/blue/green
   image stand-ins) to a flat warm tone — inline styles can't be reached
   otherwise. Applies site-wide since every page loads this file. */
[style*="linear-gradient"] {
  background-image: none !important;
  background-color: var(--color-surface) !important;
}

/* Enforce a 12px minimum on stray INLINE font-sizes that escaped the
   design system (comparison "Рекомендовано" badges, blog tag chips). */
[style*="font-size:9px"],  [style*="font-size: 9px"],
[style*="font-size:10px"], [style*="font-size: 10px"],
[style*="font-size:11px"], [style*="font-size: 11px"] {
  font-size: 0.75rem !important;
}

/* Neutralise stray off-palette inline badges:
   green "Рекомендовано" pills → clay square; old-navy tags → clay text. */
[style*="#22c55e"], [style*="#10b981"] {
  background: var(--color-accent) !important;
  border-radius: 0 !important;
}
[style*="color:#1a2347"], [style*="color: #1a2347"] {
  color: var(--color-accent) !important;
}

/* ═══ Surfaces ═══ */
.liquid-glass {
  background: var(--surface-card);
  border: 1px solid var(--color-border);
  transition: border-color var(--transition-base);
}
.liquid-glass:hover { border-color: var(--color-accent-mid); }

/* ═══ Cards — flat, hairline, no shadow/lift ═══ */
.glass-card {
  background: var(--surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  transition: border-color var(--transition-base), background var(--transition-base);
}
.glass-card:hover { border-color: var(--color-accent-mid); }

/* ═══ Buttons ═══ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 24px;
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.01em;
  border-radius: var(--radius-md);
  cursor: pointer;
  white-space: nowrap;
  text-align: center;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
  user-select: none;
}
.btn svg { flex-shrink: 0; width: 16px; height: 16px; }

/* Primary — solid espresso ink */
.btn--primary,
.btn--wa {
  background: var(--color-text);
  color: var(--color-accent-on);
  border: 1px solid var(--color-text);
}
.btn--primary:hover,
.btn--wa:hover {
  background: #1A1713;
  border-color: #1A1713;
  color: var(--color-accent-on);
}

/* Secondary — outlined, hairline ink */
.btn--glass {
  background: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-border);
}
.btn--glass:hover {
  background: transparent;
  border-color: var(--color-text);
  color: var(--color-text);
}

/* Sizes */
.btn--sm { padding: 10px 16px; font-size: 0.8125rem; }
.btn--lg { padding: 16px 28px; font-size: 0.9375rem; min-height: 50px; }

.btn[disabled],
.btn--disabled { opacity: 0.45; pointer-events: none; }

/* ═══ Tag / label (was badge) — square hairline, no fill ═══ */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 0;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  background: transparent;
  color: var(--color-text-tertiary);
  border: 0;
  border-radius: 0;
}
.badge--accent {
  background: transparent;
  color: var(--color-accent);
  border: 0;
}

/* ═══ Section label / title helpers ═══ */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  margin-bottom: 16px;
}
.section-label::before {
  content: '';
  width: 26px;
  height: 1px;
  background: currentColor;
  opacity: 0.55;
}

.section-title {
  font-family: var(--font-serif);
  font-size: var(--fs-h2);
  font-weight: 500;
  line-height: var(--lh-tight);
  letter-spacing: -0.018em;
  color: var(--color-text);
  margin: 0;
}

.section-subtitle {
  font-family: var(--font-sans);
  font-size: 1.0625rem;
  line-height: var(--lh-base);
  color: var(--color-text-secondary);
  margin-top: 12px;
  max-width: 620px;
}

/* ═══ Messenger picker (modal created by JS) ═══ */
.msg-picker {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(43, 39, 34, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
.msg-picker.is-open { opacity: 1; visibility: visible; }
.msg-picker__box {
  background: var(--surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2xl);
  padding: 32px 28px 24px;
  width: 100%;
  max-width: 380px;
  box-shadow: 0 24px 60px rgba(43, 39, 34, 0.18);
  text-align: center;
}
.msg-picker__title {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 18px;
  color: var(--color-text);
}
.msg-picker__btns {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.msg-picker__btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-text);
  text-decoration: none;
  transition: border-color var(--transition-fast);
}
.msg-picker__btn:hover {
  background: var(--color-bg);
  border-color: var(--color-text);
  color: var(--color-text);
}
.msg-picker__btn svg,
.msg-picker__btn img { flex-shrink: 0; width: 22px; height: 22px; }
.msg-picker__close {
  margin-top: 16px;
  padding: 8px 16px;
  background: transparent;
  border: 0;
  font-size: 0.875rem;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: color var(--transition-fast);
}
.msg-picker__close:hover { color: var(--color-text); }

/* ═══ Booking form modal (JS) ═══ */
.booking {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(43, 39, 34, 0.55);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  opacity: 0; visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
.booking.is-open { opacity: 1; visibility: visible; }
.booking__box {
  position: relative;
  background: var(--surface-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2xl);
  padding: 30px 28px 24px;
  width: 100%; max-width: 400px;
  max-height: calc(100vh - 40px); overflow-y: auto;
  box-shadow: 0 24px 60px rgba(43, 39, 34, 0.18);
}
.booking__close {
  position: absolute; top: 12px; right: 14px;
  width: 32px; height: 32px;
  border: 0; background: transparent;
  font-size: 26px; line-height: 1;
  color: var(--color-text-secondary); cursor: pointer;
  transition: color var(--transition-fast);
}
.booking__close:hover { color: var(--color-text); }
.booking__title {
  font-family: var(--font-serif);
  font-size: 1.375rem; font-weight: 600;
  margin: 0 0 6px; color: var(--color-text);
}
.booking__sub {
  font-size: 0.875rem; color: var(--color-text-secondary);
  margin: 0 0 18px; line-height: 1.5;
}
.booking__form { display: flex; flex-direction: column; gap: 12px; }
.booking__hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
.booking__submit { justify-content: center; margin-top: 2px; }
.booking__submit[disabled] { opacity: 0.6; cursor: default; }
.booking__status { font-size: 13px; margin: 0; min-height: 18px; line-height: 1.45; }
.booking__legal { font-size: 12px; color: var(--color-text-tertiary); margin: 0; line-height: 1.5; }
.booking__legal a { color: var(--color-accent); }

/* ═══ Сертификаты: галерея-превью + просмотрщик (lightbox, JS) ═══ */
.cert-gallery a {
  cursor: zoom-in;
  transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}
.cert-gallery a:hover { box-shadow: 0 12px 32px rgba(43, 39, 34, 0.16); }
@media (hover: hover) {
  .cert-gallery a:hover { transform: translateY(-2px); }
}

.certlb {
  position: fixed; inset: 0; z-index: 1100;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  background: rgba(43, 39, 34, 0.82);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  opacity: 0; visibility: hidden;
  transition: opacity var(--transition-base), visibility var(--transition-base);
}
.certlb.is-open { opacity: 1; visibility: visible; }
body.certlb-lock { overflow: hidden; }
.certlb__stage {
  position: relative; margin: 0;
  display: flex; flex-direction: column; align-items: center;
  max-width: 100%; max-height: 100%;
}
.certlb__img {
  display: block; width: auto; height: auto;
  max-width: min(880px, 92vw); max-height: 80vh;
  object-fit: contain; background: #fff;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
}
.certlb__caption {
  margin: 16px auto 0; max-width: min(880px, 92vw);
  color: rgba(246, 243, 236, 0.88);
  font-size: 0.9375rem; line-height: 1.5; text-align: center;
}
.certlb__count {
  margin: 6px 0 0;
  color: rgba(246, 243, 236, 0.55);
  font-size: 0.8125rem; letter-spacing: 0.03em;
}
.certlb__close,
.certlb__nav {
  position: absolute; z-index: 2;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: var(--radius-full);
  background: rgba(246, 243, 236, 0.14);
  color: #F6F3EC; line-height: 1; cursor: pointer;
  transition: background var(--transition-fast);
}
.certlb__close:hover,
.certlb__nav:hover { background: rgba(246, 243, 236, 0.28); }
.certlb__close:focus-visible,
.certlb__nav:focus-visible { outline: 2px solid #F6F3EC; outline-offset: 2px; }
.certlb__close {
  top: clamp(12px, 3vw, 28px); right: clamp(12px, 3vw, 28px);
  width: 46px; height: 46px; font-size: 28px;
}
.certlb__nav {
  top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; font-size: 30px;
}
.certlb__nav--prev { left: clamp(8px, 2vw, 28px); }
.certlb__nav--next { right: clamp(8px, 2vw, 28px); }
.certlb__nav[hidden] { display: none; }
@media (max-width: 600px) {
  .certlb__nav { width: 40px; height: 40px; font-size: 26px; }
  .certlb__nav--prev { left: 6px; }
  .certlb__nav--next { right: 6px; }
  .certlb__img { max-height: 74vh; }
}
@media (prefers-reduced-motion: reduce) {
  .certlb { transition: opacity 1ms, visibility 1ms; }
}

/* Hide the per-section eyebrow kicker site-wide */
.section-label { display: none !important; }

.section-title { font-weight: 600; letter-spacing: -0.022em; }

/* Touch targets: 44px minimum on coarse pointers */
@media (pointer: coarse) {
  .btn { min-height: 44px; }
}

/* Lead / contact form */
.lead-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 768px) { .lead-grid { grid-template-columns: 1fr; gap: 24px; } }
.lead-field {
  width: 100%;
  padding: 13px 14px;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: border-color var(--transition-fast);
}
.lead-field:focus { outline: none; border-color: var(--color-accent); }
.lead-field::placeholder { color: var(--color-text-tertiary); }

/* Legal pages (privacy policy, consent) */
.legal-content { max-width: 820px; color: var(--color-text-secondary); font-size: 1rem; line-height: 1.7; }
.legal-content h2 { font-size: 1.375rem; font-weight: 600; color: var(--color-text); margin: 2em 0 0.6em; letter-spacing: -0.01em; }
.legal-content h3 { font-size: 1.0625rem; font-weight: 600; color: var(--color-text); margin: 1.6em 0 0.5em; }
.legal-content p { margin: 0 0 1em; }
.legal-content ul { margin: 0 0 1em; padding-left: 1.4em; }
.legal-content li { margin-bottom: 0.4em; }
.legal-content a { color: var(--color-accent); }
.legal-content strong { color: var(--color-text); font-weight: 600; }
.legal-content header { display: block; margin-bottom: 2em; padding-bottom: 1.2em; border-bottom: 1px solid var(--color-border-light); font-size: 0.9375rem; }
.legal-content address { font-style: normal; line-height: 1.6; }
