/* BF Vysota — premium visual layer
   Loaded after legacy/reference styles so the Puck builder keeps its structure
   while the public site gets a stronger art direction. */

:root {
  --vysota-ink: #13243a;
  --vysota-ink-deep: #091522;
  --vysota-blue: #214b74;
  --vysota-blue-soft: #e9f0f6;
  --vysota-rust: #b64a42;
  --vysota-rust-soft: #f5e8e5;
  --vysota-sand: #f5f1e9;
  --vysota-paper: #fbfaf7;
  --vysota-white: #ffffff;
  --vysota-line: rgba(19, 36, 58, 0.13);
  --vysota-muted: #66717c;
  --vysota-shadow-sm: 0 10px 30px rgba(10, 24, 38, 0.06);
  --vysota-shadow-md: 0 24px 70px rgba(10, 24, 38, 0.12);
  --vysota-shadow-lg: 0 40px 100px rgba(7, 20, 34, 0.18);
  --primary: var(--vysota-ink);
  --primary-hover: #081421;
  --primary-light: var(--vysota-blue-soft);
  --accent: var(--vysota-rust);
  --accent-hover: #943b35;
  --accent-light: var(--vysota-rust-soft);
  --text-main: var(--vysota-ink-deep);
  --text-muted: var(--vysota-muted);
  --border: var(--vysota-line);
  --radius-md: 14px;
  --radius-lg: 24px;
}

html { background: var(--vysota-paper); }

body {
  background: var(--vysota-paper) !important;
  color: var(--vysota-ink-deep) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: rgba(33, 75, 116, 0.2);
  color: var(--vysota-ink-deep);
}

/* ---------- Header ---------- */
.site-header {
  position: sticky !important;
  top: 0;
  z-index: 950;
  background: rgba(251, 250, 247, 0.9) !important;
  border-bottom: 1px solid rgba(19, 36, 58, 0.08) !important;
  backdrop-filter: blur(18px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(150%) !important;
  box-shadow: 0 6px 24px rgba(13, 31, 50, 0.04) !important;
}

.header-container {
  height: 72px !important;
  max-width: 1320px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

.logo-wrapper { gap: 11px !important; }
.logo-img {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  box-shadow: 0 4px 16px rgba(19, 36, 58, 0.13) !important;
}
.logo-title { font-size: 13px !important; letter-spacing: .08em !important; }
.logo-subtitle { font-size: 11px !important; color: #7a838d !important; }

.nav-menu { gap: 6px !important; }
.nav-link, .dropdown-toggle {
  padding: 10px 12px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  transition: background .22s ease, color .22s ease !important;
}
.nav-link:hover, .dropdown-toggle:hover {
  background: rgba(33, 75, 116, 0.08) !important;
  color: var(--vysota-ink) !important;
}
.dropdown-menu {
  border: 1px solid var(--vysota-line) !important;
  border-radius: 16px !important;
  box-shadow: var(--vysota-shadow-md) !important;
  padding: 8px !important;
  background: rgba(255,255,255,.98) !important;
}
.dropdown-item a { border-radius: 10px !important; }
.header-phone { font-size: 12px !important; font-weight: 650 !important; }
.header-contacts .btn { border-radius: 999px !important; padding-inline: 18px !important; }

/* ---------- Global typography ---------- */
h1, h2, h3, h4, h5, h6,
.builder-heading,
.page-hero h1,
.payment-card-title,
.legal-page-header h1 {
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 400 !important;
  letter-spacing: -0.032em !important;
  text-wrap: balance;
}

.builder-heading { line-height: 1.02 !important; }
.builder-heading-sm { font-size: clamp(26px, 2.4vw, 36px) !important; }
.builder-heading-md { font-size: clamp(34px, 3.7vw, 52px) !important; }
.builder-heading-lg { font-size: clamp(44px, 5vw, 70px) !important; }
.builder-heading-xl { font-size: clamp(50px, 6vw, 84px) !important; }
.builder-text { line-height: 1.72 !important; }
.builder-text-lg { font-size: clamp(17px, 1.35vw, 20px) !important; }
.builder-eyebrow {
  font-size: 11px !important;
  letter-spacing: .13em !important;
  line-height: 1.4 !important;
}
.builder-tone-dark { color: var(--vysota-ink-deep) !important; }
.builder-tone-muted { color: var(--vysota-muted) !important; }

/* ---------- Builder surface ---------- */
.builder-width-container { width: min(calc(100% - 48px), 1280px) !important; }
.builder-width-narrow { width: min(calc(100% - 48px), 880px) !important; }
.builder-pad-lg { padding: 104px 0 !important; }
.builder-pad-md { padding: 72px 0 !important; }
.builder-pad-sm { padding: 34px 0 !important; }
.builder-bg-white { background: var(--vysota-paper) !important; }
.builder-bg-soft { background: #eef2f1 !important; }
.builder-bg-dark {
  background:
    radial-gradient(circle at 82% 10%, rgba(80, 125, 168, .25), transparent 30%),
    radial-gradient(circle at 8% 92%, rgba(182, 74, 66, .13), transparent 26%),
    var(--vysota-ink-deep) !important;
}
.builder-section-inner { gap: 22px !important; }
.builder-columns { gap: 38px; }
.builder-column { gap: 20px !important; }
.builder-grid { gap: 22px !important; }

.builder-card {
  border-radius: 22px !important;
  border-color: var(--vysota-line) !important;
  box-shadow: var(--vysota-shadow-sm) !important;
  transition: transform .32s cubic-bezier(.2,.8,.2,1), box-shadow .32s ease, border-color .32s ease !important;
}
.builder-card-bg-white { background: rgba(255,255,255,.96) !important; }
.builder-card-bg-soft { background: #eef3f6 !important; }
.builder-card-bg-dark {
  background:
    radial-gradient(circle at 100% 0%, rgba(84, 129, 174, .28), transparent 34%),
    var(--vysota-ink) !important;
}
.builder-card-pad-sm { padding: 20px !important; }
.builder-card-pad-md { padding: 28px !important; }
.builder-card-pad-lg { padding: 38px !important; }
.builder-card-border-line { border: 1px solid var(--vysota-line) !important; }
.builder-radius-sm { border-radius: 10px !important; }
.builder-radius-md { border-radius: 18px !important; }
.builder-radius-lg { border-radius: 26px !important; }

.builder-button {
  min-height: 46px;
  padding-inline: 20px !important;
  border-radius: 999px !important;
  letter-spacing: .075em !important;
  font-size: 11px !important;
  box-shadow: none !important;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease, color .22s ease !important;
}
.builder-button:hover {
  opacity: 1 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 24px rgba(9, 21, 34, .12) !important;
}
.builder-button-dark { background: var(--vysota-ink) !important; }
.builder-button-dark:hover { background: var(--vysota-blue) !important; }
.builder-button-light { color: var(--vysota-ink-deep) !important; }
.builder-button-outline { border-color: rgba(19, 36, 58, .25) !important; }
.builder-button-outlineLight { border-color: rgba(255,255,255,.42) !important; }

.builder-notice {
  border-radius: 16px !important;
  padding: 16px 18px !important;
}
.builder-notice-info { background: var(--vysota-blue-soft) !important; border-color: rgba(33,75,116,.14) !important; }
.builder-notice-warning { background: #fbf3df !important; border-color: rgba(151,105,32,.18) !important; }
.builder-divider { border-color: var(--vysota-line) !important; }

/* ---------- Hero ---------- */
#hero.hero-builder {
  position: relative;
  overflow: hidden;
  background: var(--vysota-ink-deep) !important;
}
#hero .hero-builder-grid {
  position: relative;
  min-height: 590px !important;
  height: min(720px, calc(100svh - 72px));
  max-height: 760px;
  background:
    radial-gradient(circle at 72% 20%, rgba(86, 137, 187, .22), transparent 28%),
    linear-gradient(135deg, #0b1725 0%, #12263d 54%, #172e47 100%) !important;
}
#hero .hero-builder-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .24;
  background-image: radial-gradient(rgba(255,255,255,.6) .55px, transparent .55px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to right, #000, transparent 76%);
}
#hero .hero-builder-left {
  position: relative;
  z-index: 2;
  background: transparent !important;
  padding: clamp(42px, 5.6vw, 86px) clamp(30px, 5vw, 80px) !important;
  gap: 20px !important;
}
#hero .hero-builder-left::after {
  content: "";
  width: 74px;
  height: 3px;
  margin-top: 4px;
  background: linear-gradient(90deg, var(--vysota-rust), rgba(255,255,255,.9));
  border-radius: 99px;
  order: -1;
}
#hero .builder-heading-xl {
  max-width: 800px;
  font-size: clamp(48px, 5.05vw, 76px) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
}
#hero .builder-italic { font-style: normal !important; }
#hero .hero-builder-left .builder-text { max-width: 660px !important; color: rgba(255,255,255,.76) !important; }
#hero .hero-builder-left .builder-eyebrow { color: rgba(255,255,255,.82) !important; }
#hero .hero-builder-left .builder-row { margin-top: 8px; }
#hero .hero-builder-left .builder-button-light {
  background: #fff !important;
  color: var(--vysota-ink-deep) !important;
}
#hero .hero-builder-left .builder-button-outlineLight {
  background: rgba(255,255,255,.04) !important;
  backdrop-filter: blur(10px);
}

#hero .hero-builder-right {
  position: relative;
  z-index: 2;
  background: transparent !important;
  padding: clamp(34px, 5vw, 72px) clamp(26px, 4.2vw, 66px) !important;
  justify-content: center !important;
}
#hero .hero-builder-right::before {
  content: "";
  position: absolute;
  width: min(42vw, 560px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.13), rgba(255,255,255,.03) 52%, transparent 70%);
  border: 1px solid rgba(255,255,255,.08);
}
#hero .hero-builder-right > * { position: relative; z-index: 2; }
#hero .hero-builder-right .builder-card {
  width: min(100%, 430px);
  height: auto !important;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(255,255,255,.52) !important;
  box-shadow: var(--vysota-shadow-lg) !important;
  backdrop-filter: blur(14px);
}
#hero .hero-builder-right .builder-image-wrap {
  height: 200px !important;
  background: #fff;
  border-radius: 18px !important;
  padding: 8px;
  box-sizing: border-box;
}
#hero .hero-builder-right .builder-image {
  min-height: 0 !important;
  max-height: 100% !important;
  object-fit: contain !important;
}
#hero .hero-builder-right .builder-notice {
  font-size: 12px !important;
  line-height: 1.55 !important;
}

/* ---------- Trust ribbon ---------- */
#trust { border-bottom: 1px solid var(--vysota-line); }
#trust .builder-section-inner { gap: 0 !important; }
#trust .builder-grid { gap: 0 !important; }
#trust .builder-card {
  box-shadow: none !important;
  border-width: 0 1px 0 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 28px 32px !important;
}
#trust .builder-grid > *:last-child .builder-card,
#trust .builder-card:last-child { border-right: 0 !important; }
#trust .builder-heading { font-family: Inter, system-ui, sans-serif !important; font-weight: 750 !important; letter-spacing: -.018em !important; }
#trust .builder-text { font-size: 13px !important; }

/* ---------- About / mission ---------- */
#about .builder-columns { align-items: stretch !important; }
#about .builder-column:first-child { justify-content: center; }
#about .builder-column:last-child .builder-card {
  min-height: 100%;
  justify-content: center;
  box-shadow: var(--vysota-shadow-md) !important;
}
#about .builder-heading-lg { max-width: 760px; }
#about .builder-text-lg { max-width: 760px !important; }
#about .builder-card-bg-dark .builder-eyebrow { color: #c9d7e5 !important; }

/* ---------- Projects ---------- */
#projects {
  position: relative;
  overflow: hidden;
}
#projects::before {
  content: "";
  position: absolute;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  right: -180px;
  top: 120px;
  background: radial-gradient(circle, rgba(33,75,116,.10), transparent 68%);
  pointer-events: none;
}
#projects .builder-section-inner { position: relative; z-index: 1; }
#projects .builder-heading-lg { max-width: 780px; }
#projects .builder-grid { margin-top: 18px; }
#projects .builder-card {
  min-height: 330px;
  position: relative;
  overflow: hidden;
}
#projects .builder-card::before {
  content: "";
  position: absolute;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  right: -60px;
  top: -60px;
  background: rgba(33,75,116,.055);
  transition: transform .35s ease;
}
#projects .builder-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: var(--vysota-shadow-md) !important;
  border-color: rgba(33,75,116,.2) !important;
}
#projects .builder-card:hover::before { transform: scale(1.45); }
#projects .builder-card .builder-button { margin-top: auto; align-self: flex-start; }
#projects .builder-card-bg-dark {
  background:
    radial-gradient(circle at 100% 0%, rgba(116,164,207,.27), transparent 37%),
    linear-gradient(150deg, #102238, #183957) !important;
}
#projects .builder-card-bg-dark .builder-tone-light { color: #fff !important; }
#projects .builder-card-bg-dark .builder-button-outlineLight { background: rgba(255,255,255,.05) !important; }

/* ---------- Strong CTA strip ---------- */
#donate-strip .builder-section-inner { position: relative; }
#donate-strip .builder-columns { align-items: center !important; }
#donate-strip .builder-heading { max-width: 760px; }
#donate-strip .builder-text { color: rgba(255,255,255,.72) !important; }
#donate-strip .builder-row { justify-content: flex-end !important; }

/* ---------- Team ---------- */
#team .builder-heading-lg { max-width: 740px; }
#team .builder-columns { margin-top: 18px; }
#team .builder-column:first-child > .builder-card {
  overflow: hidden;
  box-shadow: 0 28px 70px rgba(0,0,0,.28) !important;
}
#team .builder-column:first-child .builder-image-wrap { background: #eef0f1; }
#team .builder-column:first-child .builder-image { object-position: center top; }
#team .builder-column:last-child .builder-grid { height: 100%; }
#team .builder-column:last-child .builder-card {
  min-height: 176px;
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.12) !important;
  box-shadow: none !important;
}
#team .builder-column:last-child .builder-card:hover {
  transform: translateY(-5px) !important;
  background: rgba(255,255,255,.09) !important;
  border-color: rgba(255,255,255,.24) !important;
}

/* ---------- Forms ---------- */
#need-help, #join-team { position: relative; }
#need-help .builder-card,
#join-team .builder-card { box-shadow: var(--vysota-shadow-md) !important; }
#need-help .builder-column:first-child { justify-content: center; }
#join-team .builder-column:first-child { justify-content: center; }
.join-form.builder-form-widget {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}
.form-input, .form-textarea, select.form-input {
  border: 1px solid rgba(19,36,58,.16) !important;
  border-radius: 12px !important;
  min-height: 48px;
  padding: 12px 14px !important;
  background: rgba(255,255,255,.94) !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
}
.form-input:focus, .form-textarea:focus, select.form-input:focus {
  outline: none !important;
  border-color: rgba(33,75,116,.5) !important;
  box-shadow: 0 0 0 4px rgba(33,75,116,.09) !important;
}
.join-form .btn {
  border-radius: 999px !important;
  min-height: 48px;
  padding-inline: 22px !important;
}
.sensitive-warning { border-radius: 14px !important; }

/* ---------- Contacts ---------- */
#contacts .builder-map {
  border: 0 !important;
  border-radius: 24px !important;
  box-shadow: var(--vysota-shadow-md) !important;
  overflow: hidden;
}
#contacts .builder-column:last-child .builder-card {
  min-height: 100%;
  justify-content: center;
  background: linear-gradient(150deg, #102238, #183957) !important;
  box-shadow: var(--vysota-shadow-md) !important;
}
#contacts .builder-column:last-child .builder-text a { color: inherit; }
#contacts .builder-column:last-child .builder-row { margin-top: 8px; }

/* ---------- Inner pages ---------- */
.page-hero {
  background:
    radial-gradient(circle at 82% 20%, rgba(79,128,175,.25), transparent 30%),
    linear-gradient(135deg, #0a1624, #173754) !important;
  padding: 92px 0 86px !important;
}
.page-hero .container { max-width: 1280px !important; }
.page-hero h1 { max-width: 980px; font-size: clamp(44px,5.4vw,76px) !important; }
.page-hero p { max-width: 760px; font-size: 17px; line-height: 1.7; }

.payment-page-container, .legal-main { padding-top: 52px !important; padding-bottom: 84px !important; }
.payment-card, .legal-page-card, .director-bio-card, .ustav-download-banner {
  border-radius: 22px !important;
  border: 1px solid var(--vysota-line) !important;
  box-shadow: var(--vysota-shadow-sm) !important;
}
.payment-card { padding: clamp(24px,3vw,40px) !important; }
.amount-chip {
  border-radius: 999px !important;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease !important;
}
.amount-chip:hover { transform: translateY(-2px); }
.qr-box-wrapper { border-radius: 18px !important; }
.b2b-box { border-radius: 18px !important; }
.legal-page-card { max-width: 980px; margin: 0 auto; padding: clamp(28px,5vw,64px) !important; background: #fff !important; }
.legal-body { color: #33404b; }

/* ---------- Footer ---------- */
.site-footer {
  background:
    radial-gradient(circle at 86% 20%, rgba(78,124,168,.19), transparent 29%),
    #08131f !important;
  color: #fff !important;
  padding: 70px 0 28px !important;
}
.site-footer .container { max-width: 1280px !important; }
.footer-requisites {
  padding: 28px 30px !important;
  border: 1px solid rgba(255,255,255,.11) !important;
  background: rgba(255,255,255,.035) !important;
  border-radius: 18px !important;
  line-height: 1.85 !important;
  color: rgba(255,255,255,.76) !important;
}
.footer-requisites strong { color: #fff; }
.footer-bottom {
  margin-top: 30px !important;
  padding-top: 24px !important;
  border-top: 1px solid rgba(255,255,255,.09) !important;
  color: rgba(255,255,255,.56) !important;
}
.footer-bottom a { color: rgba(255,255,255,.76) !important; }

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: no-preference) {
  #hero .hero-builder-left > * {
    animation: vysota-rise .72s cubic-bezier(.2,.8,.2,1) both;
  }
  #hero .hero-builder-left > *:nth-child(2) { animation-delay: .06s; }
  #hero .hero-builder-left > *:nth-child(3) { animation-delay: .12s; }
  #hero .hero-builder-left > *:nth-child(4) { animation-delay: .18s; }
  #hero .hero-builder-right > * { animation: vysota-card-in .78s .12s cubic-bezier(.2,.8,.2,1) both; }

  @supports (animation-timeline: view()) {
    #projects .builder-card,
    #trust .builder-card,
    #team .builder-card {
      animation: vysota-reveal linear both;
      animation-timeline: view();
      animation-range: entry 4% cover 24%;
    }
  }
}

@keyframes vysota-rise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes vysota-card-in {
  from { opacity: 0; transform: translateY(22px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes vysota-reveal {
  from { opacity: .15; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .header-phone { display: none !important; }
  #hero .hero-builder-grid { grid-template-columns: 3fr 2fr !important; }
  #hero .builder-heading-xl { font-size: clamp(44px,6vw,66px) !important; }
  .builder-width-container { width: min(calc(100% - 36px), 1280px) !important; }
}

@media (max-width: 900px) {
  .header-container { height: 66px !important; }
  #hero .hero-builder-grid {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
  }
  #hero .hero-builder-left { padding: 56px 24px 44px !important; }
  #hero .hero-builder-right { padding: 24px 24px 48px !important; }
  #hero .hero-builder-right::before { width: 80vw; }
  #hero .hero-builder-right .builder-card { max-width: 520px; }
  #hero .builder-heading-xl { font-size: clamp(42px,9.8vw,64px) !important; }
  .builder-pad-lg { padding: 72px 0 !important; }
  .builder-pad-md { padding: 54px 0 !important; }
  .builder-columns { grid-template-columns: 1fr !important; }
  .builder-grid { grid-template-columns: 1fr !important; }
  #trust .builder-grid { grid-template-columns: 1fr 1fr 1fr !important; }
  #team .builder-column:last-child .builder-grid { grid-template-columns: 1fr !important; }
  #donate-strip .builder-row { justify-content: flex-start !important; }
}

@media (max-width: 640px) {
  .header-container { padding-inline: 16px !important; }
  .logo-subtitle { display: none !important; }
  .header-contacts { display: none !important; }
  #hero .hero-builder-left { padding: 44px 18px 36px !important; }
  #hero .hero-builder-right { padding: 10px 18px 38px !important; }
  #hero .hero-builder-right .builder-card { border-radius: 20px !important; }
  #hero .builder-heading-xl { font-size: clamp(38px,12vw,52px) !important; }
  #hero .builder-row { width: 100%; }
  #hero .builder-button { width: 100%; }
  .builder-width-container,
  .builder-width-narrow { width: min(calc(100% - 28px), 1280px) !important; }
  .builder-pad-lg { padding: 58px 0 !important; }
  .builder-pad-md { padding: 44px 0 !important; }
  #trust .builder-grid { grid-template-columns: 1fr !important; }
  #trust .builder-card { border-right: 0 !important; border-bottom: 1px solid var(--vysota-line) !important; padding-inline: 0 !important; }
  #trust .builder-grid > *:last-child .builder-card { border-bottom: 0 !important; }
  #projects .builder-card { min-height: 0; }
  .page-hero { padding: 64px 0 58px !important; }
  .page-hero h1 { font-size: clamp(38px,11vw,54px) !important; }
  .footer-bottom { flex-direction: column !important; gap: 12px !important; }
  .privacy-notice { left: 10px !important; right: 10px !important; bottom: 10px !important; border-radius: 18px !important; }
}
