/* ====== DESIGN TOKENS ====== */
:root{
  --blue:#1f3a93;
  --blue-2:#0f2a7a;
  --red:#e8565f;
  --paper:#f6f8fb;
  --card:#ffffff;
  --ink:#ffffff;
  --text:#0f172a;
  --muted:#475569;
  --line:rgba(2,6,23,.08);
  --shadow:0 14px 30px rgba(16,24,40,.14);
  --radius:18px;
  --stripe-w:24px;
  --container:1200px;
  --gap:clamp(16px,2.4vw,28px);

  /* motion */
  --seed-min:15s;
  --seed-max:25s;
  --scroll-duration:1500ms;
  --nav-h:64px;
}

/* ====== BASE ====== */
html,body{margin:0;padding:0;background:var(--paper);color:var(--text);}
*, *::before, *::after{box-sizing:border-box}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gap);}
.grid{display:grid;gap:var(--gap)}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(16px,3.2vw,28px);}
section{margin:48px 0}
.txt-h2{font-size:clamp(22px,2.6vw,40px);margin:0 0 16px;line-height:1.15;font-weight:800}
html, body { font-family: "Inter", "Segoe UI", Roboto, Arial, sans-serif; font-weight: 400; line-height: 1.5; color: var(--text); }

/* ====== NAV (desktop + mobile) ====== */
.nav{
  position:sticky; top:0; z-index:1000;
  background:rgba(255,255,255,.75); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav__row{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.02em;}
.brand__logo{width:28px;height:28px;border-radius:6px;background:linear-gradient(135deg,var(--blue),var(--red));box-shadow:0 4px 10px rgba(0,0,0,.15)}

/* ====== MENU (desktop) ====== */
.menu{display:flex;gap:2px;font-weight:600;margin:0;padding:0;list-style:none}
.menu a{opacity:.85;padding:8px 10px;border-radius:10px}
.menu a.is-active,.menu a:hover{opacity:1;background:rgba(2,6,23,.04)}
.nav__cta{display:flex;gap:10px;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 16px;border-radius:999px;font-weight:700;border:1px solid transparent;transition:.2s ease;cursor:pointer;
}
.btn--primary{background:var(--blue);color:var(--ink)}
.btn--ghost{background:#fff;border-color:var(--line)}
.btn:hover{transform:translateY(-1px)}

/* ====== BURGER (иконка через ::before, без доп. HTML) ====== */
.burger{
  display:none; width:40px; height:40px;
  border-radius:10px; border:1px solid var(--line); background:#fff;
  position:relative; z-index:1002; cursor:pointer;
}
.burger::before{
  content:"☰"; font-size:18px; line-height:40px; display:block; text-align:center;
}
.nav.nav--open .burger::before{content:"✕"}

/* ====== DROPDOWN (desktop hover, mobile по тапу) ====== */
.menu li{position:relative}
.menu .dropdown > a{padding-right:24px;}
.menu .dropdown > a::after{
  content:""; position:absolute; right:8px; top:50%; translate:0 -50%;
  border:6px solid transparent; border-top-color:currentColor; opacity:.7;
}
.dropdown__menu{
  position:absolute; top:100%; left:0; z-index:60;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:0 10px 26px rgba(16,24,40,.14);
  padding:6px; min-width:220px; display:none;
}
.dropdown__menu a{display:block; padding:10px 12px; border-radius:10px; white-space:nowrap;}
.dropdown__menu a:hover,.dropdown__menu a:focus{background:rgba(2,6,23,.04);}
.menu .dropdown:hover .dropdown__menu,
.menu .dropdown:focus-within .dropdown__menu{display:block;}
.menu .dropdown:last-child .dropdown__menu{right:0; left:auto;}

/* ====== MOBILE (<=900px): офф-канвас панель) ====== */
@media (max-width:900px){
  /* изначально прячем список и CTA, показываем бургер */
  .menu,.nav__cta{display:none;}
  .burger{display:inline-block}

  /* офф-канвас: меню фиксируем под шапкой, с анимацией появления */
  .menu{
    position:fixed; left:0; right:0; top:var(--nav-h);
    background:#fff; border-top:1px solid var(--line);
    display:flex; flex-direction:column; gap:0; padding:12px 16px;
    max-height:calc(100dvh - var(--nav-h)); overflow:auto; z-index:1001;

    visibility:hidden; opacity:0; pointer-events:none; transform:translateY(-8px);
    transition:opacity .18s ease, transform .18s ease, visibility 0s .18s;
  }
  .nav.nav--open .menu{
    visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0);
    transition:opacity .18s ease, transform .18s ease;
  }
  .menu a{display:block; padding:12px; border-radius:10px}

  /* CTA – фиксируем внизу отдельной панелью */
  .nav__cta{
    position:fixed; left:0; right:0; bottom:-60px;
    background:#fff; border-top:1px solid var(--line);
    display:flex; flex-direction:column; gap:10px; padding:12px 16px; z-index:1001;

    visibility:hidden; opacity:0; pointer-events:none; transform:translateY(8px);
    transition:opacity .18s ease, transform .18s ease, visibility 0s .18s;
  }
  .nav.nav--open .nav__cta{
    visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0);
    transition:opacity .18s ease, transform .18s ease;
  }

  /* добавим отступ снизу в списке, чтобы над CTA было пространство для скролла */
  .nav.nav--open .menu{ padding-bottom:10px; padding-top:55px;}

  /* Дропдауны на мобильном: без стрелочки и без абсолютного позиционирования */
  .dropdown > a::after{display:none;}
  .dropdown__menu{
    position:static; border:none; box-shadow:none; padding:0; min-width:unset; display:none;
  }
  .dropdown__menu a{padding:10px 12px;}
  .dropdown.is-subopen .dropdown__menu{display:block;}
}

/* Блокировка скролла фона при открытом меню (добавляется JS-ом) */
body.no-scroll{overflow:hidden}


/* ====== PROMO BANNER (3 колонки: цветок • текст • девочка) ====== */
.promo-banner{
  width:100%;
  display:grid;
  grid-template-columns:0.35fr 1fr 0.35fr;
  min-height:520px;
/*   box-shadow:var(--shadow); border-radius:0; overflow:hidden; margin:0 0 48px 0; */
  font-family: "Inter","Segoe UI",Roboto,Arial,sans-serif;
  position:relative;
}

/* Левый блок (цветок) */
.promo-banner__flower{
  position:relative;
  background:var(--blue); color:var(--ink);
  overflow:hidden;
  
}
.promo-banner__flower::before{ content:"";position:absolute;inset:0; }
.promo-banner__flower-wrapper{
  position:absolute; left: clamp(6px, 3vw, 32px); bottom:-12px;
  height:min(92%, 560px); width:auto; display:inline-block; z-index:1;
}

/* Центр (текст) */
.promo-banner__left{
  background:var(--blue);
  position:relative;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(28px,6vw,80px);
}
.promo-banner__content{
  max-width:720px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:10px; margin-inline:auto;
}
.event-eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#dbe4ff;margin-bottom:.5rem;}
.event-title{font-size:clamp(28px,3.6vw,52px);line-height:1.15;margin:0 0 .65rem;font-weight:800;color:#df3744}
.event-theme{font-size:clamp(16px,1.6vw,22px);line-height:1.35;font-weight:600;margin:0 0 1rem}
.event-meta{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 1rem;font-size:clamp(14px,1.3vw,16px); justify-content:center;}
.promo-chip{background: rgba(8, 214, 73, 0.5); border:1px solid rgba(255,255,255,.22); padding:8px 14px; border-radius:999px; backdrop-filter:blur(4px)}
.banner__actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
.banner__actions .btn{font-size:18px;padding:14px 28px;border-width:2px}
.banner__actions .btn i{font-size:1.1em}

/* Правый блок (девочка) — «приклеена» к низу */
.promo-banner__right{ position: relative; overflow: hidden;
  background:repeating-linear-gradient(90deg,var(--red) 0 calc(var(--stripe-w)),var(--blue-2) calc(var(--stripe-w)) calc(var(--stripe-w)*2)); }
.promo-banner__right::before{ content:"";position:absolute;inset:0; background:linear-gradient(90deg, rgba(0,0,0,.18), transparent 40%); pointer-events:none;z-index:0; }
.promo-banner__girl-wrapper{
  position: absolute; right: clamp(6px, 3vw, 32px); bottom: 0;
  height: 100%; display: flex; align-items: flex-end; z-index: 1;
}
.promo-banner__girl-wrapper .promo-banner__photo{
  height: min(92%, 560px); width: auto; object-fit: contain; object-position: right bottom;
}
/* Общие для картинок-героев */
.promo-banner__photo{
  height:100%; width:auto; object-fit:contain;
  filter:drop-shadow(0 14px 24px rgba(0,0,0,.25));
  opacity:0; transform:translateY(8px); transition:transform .6s ease, opacity .6s ease;
}
.promo-banner__photo.is-in{opacity:1; transform:none;}

.circle-spin{
  --dx:71%; --dy:38%;
  position:absolute; right:var(--dx); bottom:var(--dy);
  width:clamp(70px, 10vw, 120px); aspect-ratio:1/1; z-index:2; pointer-events:none;
  animation:spin 16s linear infinite; transform-origin:50% 50%;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.2))
}
.circle-spin img{width:100%;height:100%;object-fit:contain;opacity:.96;}

/* Лёгкая анимация цветка */
/* .promo-banner__flower .promo-banner__photo{ opacity:.3; }
.promo-banner__flower-wrapper{
  transform-origin: 50% 95%;
  animation: flower-sway var(--sway-dur, 7s) ease-in-out infinite;
  will-change: transform;
}
@keyframes flower-sway{
  0%{ transform: rotate(-1.2deg) translateY(0px); }
  25%{ transform: rotate(0deg) translateY(-1px); }
  50%{ transform: rotate(1.3deg) translateY(0px); }
  75%{ transform: rotate(0deg) translateY(1px); }
  100%{ transform: rotate(-1.2deg) translateY(0px); }
} */
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* Летающие семена */
.floating-seed{
  position:absolute; width:clamp(32px, 5vw, 64px); height:auto;
  opacity:0; pointer-events:none; top:var(--y); left:var(--x);
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.15));
  animation: float-seed var(--t, 30s) linear infinite; animation-delay: var(--delay, 0s);
  will-change: transform, opacity;
}
@keyframes float-seed{
  0%{transform:translate(0,0) rotate(0deg) scale(1);opacity:0}
  8%{opacity:1}
  25%{transform:translate(-40px,-30px) rotate(15deg) scale(1.1)}
  50%{transform:translate(60px,-80px) rotate(-10deg) scale(.95)}
  75%{transform:translate(-70px,-50px) rotate(25deg) scale(1.05)}
  95%{transform:translate(100px,-120px) rotate(-20deg) scale(1);opacity:.8}
  100%{transform:translate(130px,-150px) rotate(-25deg) scale(1);opacity:0}
}

/* Мобилка */
@media (max-width:900px){
  .promo-banner{grid-template-columns:1fr}
  .promo-banner__flower{order:1; height:180px;}
  .promo-banner__left{order:2; padding-left:clamp(20px,6vw,80px)}
  .promo-banner__right{order:3; height:200px;}
  .promo-banner__girl-wrapper{height:100%; right:10px;}
  .promo-banner__flower-wrapper{height:85%; left:10px;}
  .circle-spin{--dx:60%; --dy:38%; width:clamp(60px, 18vw, 60px);}
  .promo-banner__content{text-align:center}
}

/* ====== ORG COMMITTEE ====== */
.row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media (max-width:1024px){.row{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.row{grid-template-columns:1fr}}
.org-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 6px 16px rgba(0,0,0,.06);}
.org-top{margin-bottom:10px;display:flex;align-items:center;gap:14px}
.org-avatar{width:100px;height:100px;border-radius:50%;overflow:hidden;flex:0 0 100px;background:#e2e8f0;}
.org-name{font-weight:800;margin:0}
.org-desc{color:var(--muted);margin:10px 0 0}

/* ====== AUDIENCE (full-bleed) ====== */
.section-bleed{
  border-radius:0;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding-left:calc(50vw - 50% + var(--gap));
  padding-right:calc(50vw - 50% + var(--gap));
  padding-top:clamp(24px,3.2vw,48px);
  padding-bottom:clamp(24px,3.2vw,48px);
/*   box-shadow:var(--shadow); */
}
#audience{background:var(--blue);color:var(--ink); position:relative; overflow:hidden; text-align:center;}
#audience .txt-h2,#audience .audience-sub{color:#fff}
.audience-sub{color:var(--muted);margin:0 0 14px}
.audience-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0 0;padding:0;list-style:none}
.audience-list li{
  background:rgba(255,255,255,0.12); color:#fff;
  border:1px solid rgba(255,255,255,0.22);
  box-shadow:0 10px 24px rgba(0,0,0,0.10); backdrop-filter:blur(6px);
  padding:12px 14px; border-radius:12px;
}
.audience-list li:hover{background:rgba(255,255,255,0.18); border-color:rgba(255,255,255,0.32)}
@media (max-width:900px){.audience-list{grid-template-columns:1fr}}
/* базовый модификатор */
#audience .audience-list li.is-key{
  position:relative;
  background:rgba(255,60,60,.16);
  border-color:rgba(255,60,60,.5);
}

/* ореол */
#audience .audience-list li.is-key::before{
  content:"";
  position:absolute; inset:-6px;
  border-radius:22px;
  background:radial-gradient(60% 60% at 50% 40%,
    rgba(255,80,80,.45), rgba(255,80,80,0) 60%);
  filter:blur(12px);
  z-index:-1;
}

/* лёгкий пульс рамки */
@keyframes keyPulse {
  0%,100%{ box-shadow:0 0 0 0 rgba(255,60,60,.28) }
  50%{    box-shadow:0 0 0 8px rgba(255,60,60,0) }
}
#audience .audience-list li.is-key{
  animation:keyPulse 2.8s ease-in-out infinite;
}

/* hover чуть ярче */
#audience .audience-list li.is-key:hover{
  background:rgba(255,60,60,.22);
  border-color:rgba(255,60,60,.65);
}
@media (prefers-reduced-motion: reduce){
  #audience .audience-list li.is-key{ animation:none; }
}
#audience .audience-list li.is-key:hover{
  transform:translateY(-2px) scale(1.02) rotate(-.2deg);
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}

/* — Увеличенная версия аудитории */
#audience { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(36px, 5vw, 72px); }
#audience .txt-h2{ font-size: clamp(28px, 3.4vw, 48px); margin-bottom: clamp(10px, 1.6vw, 18px); }
#audience .audience-sub{ font-size: clamp(16px, 1.6vw, 20px); margin-bottom: clamp(14px, 2vw, 22px); opacity: .95; }
#audience .audience-list{ gap: clamp(16px, 2.2vw, 28px); grid-template-columns: repeat(3, minmax(320px, 1fr)); }
#audience .audience-list li{
  font-size: clamp(18px, 1.8vw, 24px); line-height: 1.35; font-weight: 600;
  padding: clamp(18px, 2.8vw, 32px) clamp(22px, 3.4vw, 36px);
  min-height: clamp(72px, 9vw, 110px); border-radius: 18px;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
@media (max-width: 1200px){ #audience .audience-list{ grid-template-columns: repeat(2, minmax(320px, 1fr)); } }
@media (max-width: 700px){
  #audience .audience-list{ grid-template-columns: 1fr; }
  #audience .audience-list li{
    font-size: clamp(18px, 5.5vw, 24px);
    min-height: clamp(78px, 22vw, 128px);
    padding: clamp(18px, 5vw, 28px) clamp(20px, 6vw, 32px);
  }
}

/* Seeds background in #audience */
#audience .container { position: relative; z-index: 1; }
#audience .audience-seeds{ position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
#audience .floating-seed{ width: clamp(26px, 4vw, 48px); animation-play-state: paused; opacity: 0; transition: opacity .6s ease; }
#audience.is-active .floating-seed{ animation-play-state: running; opacity: 1; }
@media (prefers-reduced-motion: reduce){ #audience .floating-seed{ animation: none !important; opacity: .2; } }

/* ====== TOPICS ====== */
.topics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.topic-card{display:flex;gap:14px;background:#fff;border:1px solid var(--line);padding:16px;border-radius:14px;box-shadow:0 6px 16px rgba(0,0,0,.06)}
.topic-num{flex:0 0 34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--blue),#6966cc);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.topic-text{color:var(--text)}
@media (max-width:900px){.topics-grid{grid-template-columns:1fr}}

/* ====== ORGANIZERS (full-bleed) ====== */
#organizers{background:var(--red);color:var(--ink)}
.organizers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.orgz-card{
  background:#ffffff; border:1px solid #ffffff;
  border-radius:14px; padding:16px; display:flex; flex-direction:column; align-items:center; gap:10px;
  box-shadow:0 6px 16px rgba(0,0,0,.06); backdrop-filter:blur(6px)
}
.orgz-logo{width:120px;height:70px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#ffffff;border-radius:10px}
.orgz-name{text-align:center;color:black;font-weight:600}
.orgz-card:hover{background:rgba(255,255,255,0.9); border-color:rgba(255,255,255,0.9)}
@media (max-width:1100px){.organizers-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.organizers-grid{grid-template-columns:1fr}}
/* ====== ORGANIZERS (full-bleed) ====== */
#organizers{background:var(--red);color:var(--ink)}

/* Главный организатор */
.main-organizer{
  --pad: clamp(14px,1.8vw,18px);
  display:flex; align-items:center; gap:14px;
  background:rgba(255,255,255,0.14);
  border:1.5px solid rgba(255,255,255,0.35);
  border-left:6px solid #fff; 
  border-radius:16px;
  padding:var(--pad);
  margin: clamp(12px,2.2vw,20px) 0;
  backdrop-filter: blur(6px);
  box-shadow:0 6px 16px rgba(0,0,0,.06);
}
.main-organizer .orgz-logo.big{
  width:140px; height:80px;
  background:#fff; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 14px rgba(0,0,0,.08);
  flex: 0 0 auto;
}
.main-organizer .orgz-name{
  color:#fff; font-weight:700;
  font-size: clamp(16px,1.6vw,22px); margin:0;
}
.main-organizer .chip{
  order:-1;
  background:#fff; color: var(--red);
  font-size:12px; font-weight:800; letter-spacing:.06em;
  padding:6px 10px; border-radius:999px;
  text-transform:uppercase;
}
.main-organizer:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
  background: rgba(255,255,255,0.18);
} 
/* Разделитель */
.orgz-divider{
  position:relative; text-align:center;
  margin: clamp(18px,3vw,28px) 0 clamp(12px,2vw,18px);
}
.orgz-divider1{
  position:relative; text-align:center;
  margin: clamp(18px,3vw,28px) 0 clamp(12px,2vw,18px);
}
.orgz-divider::before{
  content:""; position:absolute; left:0; right:0; top:50%;
  height:1px; background: rgba(255,255,255,.35);
}
.orgz-divider > span{
  position:relative; background: var(--red); color:#fff;
  padding:2px 10px; font-weight:800; font-size:20px; letter-spacing:.06em;
  border:1px solid rgba(255,255,255,.35); border-radius:999px;
}
.orgz-divider1 > span{
  position:relative; background: var(--red); color:#fff;
  padding:2px 10px; font-weight:800; font-size:20px; letter-spacing:.06em;
  border:1px solid rgba(255,255,255,.35); border-radius:999px;
}
/* Вертикальная колонка поддержки */
.support-stack{
  display:flex; flex-direction:column;
  gap: clamp(10px, 1.8vw, 14px);
  max-width: 980px;
  margin: 0 auto;
}
.support-item{
  --pad: clamp(12px,1.6vw,16px);
  display:flex; align-items:center; gap:14px;
  background: rgba(255,255,255,0.14);
  border: 1.5px solid rgba(255,255,255,0.35);
/*   border-left: 6px solid #fff; */
  border-radius: 16px;
  padding: var(--pad);
  backdrop-filter: blur(6px);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
}
/* .support-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
  background: rgba(255,255,255,0.18);
} */
.orgz-logo.small{
  width: 120px; height: 68px;
  background:#fff; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 14px rgba(0,0,0,.08);
  overflow:hidden; flex: 0 0 auto;
}
.orgz-logo.small img{ max-width:100%; max-height:100%; object-fit:contain; }
.support-item .orgz-name{
  color:#fff; font-weight:700; margin:0;
  font-size: clamp(14px,1.4vw,20px); line-height:1.35;
}

/* Мобила */
@media (max-width:700px){
  .main-organizer{ flex-direction:column; align-items:flex-start; }
  .main-organizer .orgz-logo.big{ width:100%; height:84px; }
  .main-organizer .chip{ order:0; }
  .support-item{ flex-direction:column; align-items:flex-start; gap:10px; }
  .orgz-logo.small{ width:100%; height:80px; }
}
.main-organizer{
  max-width: 980px;
  margin: clamp(12px,2.2vw,20px) auto; /* центрируем */
}

/* Кнопка-цвет */
.promo-banner .btn--ghost { color: #1f3a92; background: #fff; }
.promo-banner .btn--ghost:hover { color: #fff; background: rgba(255,255,255,.2); }

/* ====== MAP ====== */
.map-canvas{height:420px;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.06)}

/* ====== MODAL ====== */
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(2,6,23,.5);z-index:200}
.modal.is-open{display:flex}
.modal__content{background:#fff;border-radius:16px;max-width:720px;width:calc(100% - 32px);padding:24px 20px;box-shadow:var(--shadow);position:relative}
.modal__title{margin-top:0}
.modal__close{position:absolute;top:16px;right:16px;cursor:pointer}
.modal__close i{display:block;width:22px;height:2px;background:#1f2937;margin:5px 0;transform-origin:center}
.t-center{text-align:center}

/* ====== REVEAL ====== */
.reveal{opacity:0;transform:translateY(10px);transition:opacity .6s ease var(--d,0ms), transform .6s ease var(--d,0ms)}
.reveal.is-in{opacity:1;transform:none}
.reveal-zoom{transform:scale(.98);}
.reveal-zoom.is-in{transform:scale(1)}
.reveal1{opacity:0;transform:translateY(10px);transition:opacity .6s ease var(--d,0ms), transform .6s ease var(--d,0ms); color:rgb(3, 216, 61);}
/* Anchor offset for sticky nav */
:target{scroll-margin-top:calc(var(--nav-h) + 16px)}

@media (min-width: 1400px){ .promo-banner__flower-wrapper{ --sway-dur: 8.5s; } }
@media (max-width: 900px){ .promo-banner__flower-wrapper{ --sway-dur: 6s; } }
@media (prefers-reduced-motion: reduce){ .promo-banner__flower-wrapper{ animation: none !important; } }


/* HERO */
.hero{
  margin:0 0 32px 0;
  background: var(--blue);
  color: var(--ink);
  position: relative;
  overflow: hidden;
}
.hero::before{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(900px 600px at -10% -20%, rgba(255,255,255,.18), transparent 70%),
    linear-gradient(0deg, rgba(255,255,255,.06), rgba(255,255,255,.06));
  mix-blend-mode:screen;pointer-events:none;
}
.hero__inner{
  display:grid;grid-template-columns: 1fr;
  min-height: 220px;
  align-items:center;
  padding: clamp(24px,5vw,56px) 0;
}
.hero__content{max-width: 860px;margin: 0 auto;text-align: center;}
.hero__eyebrow{
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#dbe4ff;margin:0 0 .5rem;
}
.hero__title{
  margin:0 0 2.5rem;line-height:1.15;
  font-size:clamp(28px,3.2vw,42px);font-weight:800;
}
.hero__subtitle{
  margin:0;color:#dbe4ff;font-weight:600;
  font-size:clamp(14px,1.2vw,18px);
}
.hero__actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}

/* FAQ */
.faq {
  margin: 32px 0 64px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.faq__title { font-size: clamp(26px, 2.6vw, 36px); margin: 0 0 16px; line-height: 1.15; }
.faq__desc { color: var(--muted); margin: 0 0 22px; max-width: 700px; }

.faq__search {
  display: flex; gap: 10px; align-items: center; justify-content: center;
  margin: 0 0 28px; width: 100%; max-width: 700px;
}
.faq__search input {
  flex: 1 1 auto; height: 44px; border-radius: 12px; border: 1px solid var(--line);
  padding: 0 12px; background: #fff; box-shadow: 0 6px 16px rgba(0,0,0,.04); font-size: 16px;
}
.faq__search .btn { height: 44px; padding: 0 14px; }


.faq-list {
  display: flex; flex-direction: column; gap: 14px; width: 100%;
  max-width: 800px; align-items: center;
}
.faq-item {
  width: 100%; background: #fff; border: 1px solid var(--line);
  border-radius: 14px; box-shadow: 0 6px 16px rgba(0,0,0,.06); overflow: hidden; text-align: left;
}
.faq-item__head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 16px 18px; cursor: pointer; user-select: none;
}
.faq-item__q { margin: 0; font-weight: 800; font-size: clamp(16px, 1.6vw, 18px); }
.faq-item__icon {
  width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px;
  display: grid; place-items: center; background: linear-gradient(135deg, var(--blue), var(--red)); color: #fff; visibility: hidden;
}

/* FAQ item body — фикс паддингов и выравнивания */
.faq-item__body {
  height: 0;
  overflow: hidden;
  opacity: 0;
  will-change: height, opacity;
  transition: height .3s cubic-bezier(.2,.6,.2,1), opacity .25s ease;
}

/* внутренний контейнер с отступами */
.faq-item__body-inner {
  padding: 0 18px 0;
  text-align: left;
  color: var(--muted);
  line-height: 1.6;
  background: #fff;
}

/* когда открыт — плавно раскрываем и показываем */
.faq-item.is-open .faq-item__body {
  opacity: 1;
}
.faq-item.is-open .faq-item__body-inner {
  padding: 12px 18px 16px; /* верх/бока/низ */
}

/* вопрос и ответ читаемее */
.faq-item__q {
  margin: 0;
  font-weight: 800;
  font-size: clamp(16px,1.6vw,18px);
}
.faq-item__a {
  margin: 0;
  padding: 0;
}

/* выравнивание для параграфов и списков */
.faq-item__body-inner p,
.faq-item__body-inner ul,
.faq-item__body-inner ol {
  text-align: left;
  margin: 0 0 10px;
}
.faq-item__body-inner ul,
.faq-item__body-inner ol {
  padding-left: 1.2em;
}

/* ——— Hero короткий для внутренних страниц ——— */
.hero--short .hero__inner{ min-height: 160px; }

/* ——— Partners ——— */
.partners{ padding: 24px 0 56px; }
.partners .txt-h2{ margin-bottom: 12px; }
.partners-subtitle{
  margin: 28px 0 12px;
  font-weight: 800; font-size: clamp(18px,1.8vw,22px);
  color: var(--text);
}

.partners-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(220px,1fr));
  gap: clamp(14px, 2vw, 22px);
  align-items: stretch;
}
@media (max-width:1100px){ .partners-grid{ grid-template-columns: repeat(3, minmax(200px,1fr)); } }
@media (max-width:800px){  .partners-grid{ grid-template-columns: repeat(2, minmax(180px,1fr)); } }
@media (max-width:520px){  .partners-grid{ grid-template-columns: 1fr; } }


.partners-grid--inform{
  display:grid;
  grid-template-columns: repeat(2, minmax(220px,1fr));
  gap: clamp(14px, 2vw, 22px);
  align-items: stretch;
}
@media (max-width:1100px){ .partners-grid--inform{ grid-template-columns: repeat(2, minmax(200px,1fr)); } }
@media (max-width:800px){  .partners-grid--inform{ grid-template-columns: repeat(2, minmax(180px,1fr)); } }
@media (max-width:520px){  .partners-grid--inform{ grid-template-columns: 1fr; } }


.partner-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:16px;
  box-shadow:0 6px 16px rgba(0,0,0,.06);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  cursor:pointer; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.partner-card:hover{
  transform: translateY(-2px);
  border-color: rgba(2,6,23,.14);
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.partner-card--flat{ cursor:default; }
.partner-logo{
  width: 200px; 
  height: 110px; 
  border-radius: 12px; 
  background:#fff;
  display:flex; 
  align-items:center; 
  justify-content:center;
  overflow:hidden; 

}
.partner-logo img{ width: 100%; height:100%; object-fit: contain; filter: grayscale(100%);}
.partner-name{ margin:0; font-weight:700; text-align:center; }

/* компактная сетка для инфо-партнёров */
.partners-grid--compact .partner-logo{ height: 90px; }

/* ——— Модалка (без jQuery/arcticmodal) ——— */
.modal{ position:fixed; inset:0; display:none; z-index:200; }
.modal.is-open{ display:block; }
.modal__backdrop{
  position:absolute; inset:0; background:rgba(2,6,23,.55);
  animation: modalFade .22s ease;
}
.modal__content{
  position:relative; z-index:1; max-width:720px; width: calc(100% - 32px);
  margin: min(12vh,140px) auto 0; background:#fff; border-radius:16px;
  box-shadow: var(--shadow); padding: 22px 18px 18px;
  animation: modalPop .22s ease;
}
.modal__title{ margin: 0 0 8px; font-size: clamp(20px,2.2vw,26px); font-weight: 800; }
.modal__text{ margin: 0 0 14px; color: var(--muted); line-height: 1.6; }
.modal__actions{ display:flex; gap:10px; justify-content:flex-end; }

.modal__close{
  position:absolute; top:12px; right:12px; width:36px; height:36px;
  display:grid; place-items:center; border-radius:10px; border:1px solid var(--line);
  background:#fff; cursor:pointer;
}
.modal__close i{ display:block; width:18px; height:2px; background:#111827; }
.modal__close i:first-child{ transform: rotate(45deg); }
.modal__close i:last-child{ transform: rotate(-45deg); margin-top:-2px; }

@keyframes modalFade{ from{opacity:0} to{opacity:1} }
@keyframes modalPop{ from{ transform: translateY(6px); opacity:0 } to{ transform:none; opacity:1 } }


  /* Активная кнопка */
  .is-active {
    color: #1f3a93 !important;
    font-weight: 700;
    position: relative;
  }
  .is-active::after {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 0;
    width: 100%;
    height: 2px;
    background: #1f3a93;
    border-radius: 2px;
  }

  /* Неактивные пункты меню */
  .disabled-link {
    color: #a0a0a0 !important;
    pointer-events: none;
    cursor: not-allowed;
    opacity: 0.6;
    text-decoration: none;
  }
  .disabled-link:hover { background: none !important; }

  /* Кнопки */
  .btn-white {
    background:#fff;
    color:#1f3a93;
    border:2px solid #fff;
    font-weight:700;
    padding:14px 28px;
    border-radius:999px;
    font-size:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0px;
    cursor:pointer;
    transition:all .25s ease;
    }
    
  .btn.btn--primary {
    display:inline-flex; align-items:center; justify-content:center;
    padding:10px 18px; border-radius:999px; background:#1f3a93; color:#fff;
    font-weight:700; border:none; transition:.2s ease; text-decoration:none;
  }
  .btn.btn--primary:hover { background:#142768; }

  .btn.btn--ghost-danger {
    display:inline-flex; align-items:center; justify-content:center;
    padding:10px 18px; border-radius:999px; font-weight:700;
    background:#fff; color:#d92d20; border:1px solid rgba(217,45,32,.35);
    text-decoration:none; transition:background .2s ease, transform .2s ease, border-color .2s ease;
  }
  .btn.btn--ghost-danger:hover {
    background:#fff5f5; border-color:#d92d20;
    transform:translateY(-1px);
  }
  
#orgcommittee {
  position: relative;
  background: linear-gradient(
    to bottom,
    var(--blue) 0%,           /* насыщенный синий вверху */
    #e9ecf6 35%,              /* светлеет */
    var(--paper) 100%         /* плавный уход в белый фон страницы */
  );
  color: var(--text);
  padding-top: clamp(48px, 6vw, 72px);
  padding-bottom: clamp(48px, 6vw, 72px);
  border-radius: 0;
}

/* 1) ОДИН источник истины */
:root{
  /* ширина правой/левой колонок баннера */
  --banner-side: clamp(260px, 31vw, 520px);  /* подгони как нужно */
  
  /* полосатый рисунок: единый для баннера и секции */
  --stripe-w: 24px;
  --stripe-period: calc(var(--stripe-w) * 2);
  --stripe-img: linear-gradient(
    90deg,
    var(--red) 0 var(--stripe-w),
    var(--blue-2) var(--stripe-w) var(--stripe-period)
  );
}

/* 2) Баннер использует ту же переменную */
.promo-banner{
  display:grid;
  grid-template-columns: var(--banner-side) 1fr var(--banner-side);
  /* остальное как у тебя */
}

/* правый рукав баннера — тот же рисунок */
.promo-banner__right{
  background-image: var(--stripe-img);
  background-size: var(--stripe-period) 100%;
  background-repeat: repeat;
  background-position: right top;
}

/* 3) Секция "Оргкомитет": полосатая зона ровно той же ширины */
#orgcommittee{
  position: relative;
  background: linear-gradient(to bottom, var(--blue) 0%, #e9ecf6 38%, var(--paper) 100%);
  overflow: hidden;
}
#orgcommittee > .container{ position: relative; z-index: 1; }

#orgcommittee::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--stripe-img);
  background-size: var(--stripe-period) 100%;
  background-repeat: repeat;
  background-position: right top;
  /* обрезаем ровно по ширине правой колонки баннера (в пикселях) */
  clip-path: polygon(
    calc(100% - var(--banner-side)) 0,
    100% 0, 100% 100%,
    calc(100% - var(--banner-side)) 100%
  );
  opacity:.18;
  pointer-events:none;
  z-index:0;
}

/* На мобилке баннер односколоночный — полосы выключаем */
@media (max-width:900px){
  :root{ --banner-side: 0px; }    /* колонка схлопывается */
  #orgcommittee::before{ display:none; }
}
body {
  overflow-x: hidden;
}
.audience-nmo .btn {
  background: transparent;
  border: 2px solid #03d83d;
  color: #03d83d;
  font-weight: 600;
  border-radius: 999px;
  padding: 10px 24px;
  transition: all 0.3s ease;
}

.audience-nmo .btn:hover {
  background: #03d83d;
  color: #fff;
}

/* ===== TOKENS (можешь переопределить) ===== */
:root{
  --brand:#1f3a93;
  --brand-2:#5a7bff;
  --ink:#1f2430;
  --bg-section:linear-gradient(180deg,#f7f9ff 0%,#eef2ff 100%);
  --radius:18px;
  --gap:24px;
}

/* ===== SECTION ===== */
.topics-section{

  padding: 0px 0;
  position: relative;
  overflow: hidden;
}

/* лёгкая микросетка (почти незаметно, добавляет «текстуру») */
.topics-section::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(transparent 31px, rgba(31,58,147,.05) 32px),
    linear-gradient(90deg, transparent 31px, rgba(31,58,147,.05) 32px);
  background-size:32px 32px;
  opacity:.25;
  pointer-events:none;
}

.topics-title{
  color:var(--brand);
  text-align:center;
  font-weight:800;
  font-size:clamp(28px,4vw,40px);
  letter-spacing:.2px;
  margin:0 0 36px;
}

/* ===== GRID ===== */
.topics-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:var(--gap);
}

/* ===== CARD ===== */
.topic-card{
  position:relative;
  border-radius:var(--radius);
  /* «дорогой» градиентный бордер без лишних слоёв */
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg, rgba(31,58,147,.35), rgba(90,123,255,.35)) border-box;
  border:1px solid transparent;
  box-shadow: 0 10px 24px rgba(31,58,147,.10);
  transition: box-shadow .25s ease, transform .25s ease;
  display:flex; align-items:flex-start; gap:16px;
  min-height: 120px;
}

/* тонкая вертикальная полоса-акцент слева */
.topic-card::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:6px;
  background: linear-gradient(180deg, var(--brand), var(--brand-2));
  border-top-left-radius:var(--radius);
  border-bottom-left-radius:var(--radius);
  opacity:.9;
}

.topic-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(31,58,147,.16);
}

/* ===== INSIDE ===== */
.topic-badge{
  flex:0 0 44px;
  height:44px; width:44px;
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  margin:20px 0 0 20px;
  font-weight:800; font-size:18px; color:#fff;
  background: linear-gradient(180deg, var(--brand), var(--brand-2));
  box-shadow: 0 6px 16px rgba(31,58,147,.25);
}

.topic-content{

}

.topic-text{
  margin:8px 0 0;
  font-size:18px;
  line-height:1.45;
  font-weight:600;
  color:var(--ink);
}

/* ===== ADAPT ===== */
@media (max-width: 560px){
  .topic-badge{ margin-left:16px; }
  .topic-content{ padding-right:16px; }
}
/* Базовый фон */
.modal {
  position: fixed;             /* фиксируется поверх всей страницы */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,.55); /* затемнение */
  display: none;               /* по умолчанию скрыта */
  align-items: center;         /* выравнивание по вертикали */
  justify-content: center;     /* выравнивание по горизонтали */
  z-index: 9999;               /* поверх всего */
}

/* Появление */
.modal.is-open {
  display: flex;
}

/* Окно */
.modal-content {
  background: #fff;
  border-radius: 12px;
  padding: 24px 32px;
  max-width: 500px;
  width: 90%;
  box-shadow: 0 10px 40px rgba(0,0,0,.3);
  text-align: center;
  position: relative;
}

/* Кнопка закрытия */
.modal .close {
  position: absolute;
  right: 14px;
  top: 10px;
  font-size: 26px;
  background: none;
  border: none;
  color: #333;
  cursor: pointer;
}
