/* =========================================================
   ДИЗАЙН-ТОКЕНЫ — на основе брендбука НГТУ НЭТИ
   Квадрат как база формы, палитра «Бордо / Малахит / Изумруд»,
   графика из чередующихся треугольников, шрифт-гротеск.
   ========================================================= */
:root{
  --bordo:        #781c33;
  --bordo-deep:   #4f1121;
  --malachite:    #0f4736;
  --asphalt:      #16262b;
  --asphalt-2:    #1c3b42;
  --ruby:         #bd0040;
  --emerald:      #0f8259;
  --emerald-2:    #00cc73;
  --red:          #f20f38;
  --sand:         #f2cca1;

  --paper:        #f6f4ef;
  --paper-2:      #eeeadf;
  --ink:          #14201d;
  --ink-soft:     #4b5652;
  --line:         rgba(20,32,29,.13);
  --line-strong:  rgba(20,32,29,.28);

  --font-display: 'Unbounded', 'Arial Narrow', Arial, sans-serif;
  --font-body:    'Manrope', Arial, sans-serif;

  --container: 1180px;
  --radius-sm: 2px;
  --radius: 6px;
  --shadow-soft: 0 18px 40px -20px rgba(20,32,29,.35);
  --ease: cubic-bezier(.22,.68,0,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:-.01em;
  font-weight:600;
}
p{ margin:0 0 1em; }
a{ color:inherit; }
img{ max-width:100%; display:block; }
address{ font-style:normal; }
ul, ol{ margin:0; padding:0; list-style:none; }

.icon{
  width:1.1em; height:1.1em; flex-shrink:0;
  fill:none; stroke:currentColor;
  vertical-align:-0.15em;
}

.skip-link{
  position:absolute; left:-999px; top:0; z-index:999;
  background:var(--ink); color:#fff; padding:.8em 1.2em; border-radius:0 0 6px 0;
}
.skip-link:focus{ left:0; }

:focus-visible{
  outline:3px solid var(--emerald-2);
  outline-offset:2px;
}

.section-inner, .header-inner, .organizers-inner, .footer-inner{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:24px;
}

.section{ padding:96px 0; scroll-margin-top:88px; }
.section-alt{ background:var(--paper-2); }
.organizers{ scroll-margin-top:88px; }
.section-kicker{
  font-family:var(--font-display);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--emerald);
  margin-bottom:.9em;
}
.section h2{ font-size:clamp(1.7rem,3.6vw,2.6rem); max-width:18ch; color:var(--ink); }
.section-lead{ max-width:62ch; color:var(--ink-soft); font-size:1.05rem; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--font-body); font-weight:700; font-size:.95rem;
  padding:.95em 1.6em;
  border-radius:var(--radius-sm);
  border:2px solid transparent;
  text-decoration:none; cursor:pointer;
  transition:transform .18s var(--ease), background .18s, border-color .18s, color .18s;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--emerald); color:#fff; }
.btn-primary:hover{ background:var(--malachite); }
.btn-ghost{ background:transparent; border-color:var(--line-strong); color:var(--ink); }
.btn-ghost:hover{ border-color:var(--emerald); color:var(--emerald); }
.btn-sm{ padding:.6em 1.1em; font-size:.85rem; }
.btn-block{ width:100%; }

/* =============== HEADER =============== */
.site-header{
  position:fixed; inset-block-start:0; inset-inline:0; z-index:100;
  background:rgba(22,38,43,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:72px;
}
.brand{ display:flex; align-items:center; gap:.7em; text-decoration:none; color:#fff; }
.brand-mark{ border-radius:3px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.2; }
.brand-text strong{ font-family:var(--font-display); font-size:1rem; letter-spacing:.02em; }
.brand-text em{ font-style:normal; font-size:.72rem; color:rgba(255,255,255,.65); }

.main-nav ul{ display:flex; gap:1.6em; }
.main-nav a{
  color:rgba(255,255,255,.82); text-decoration:none; font-size:.92rem; font-weight:500;
  position:relative; padding:.3em 0;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background:var(--emerald-2); transition:right .25s var(--ease);
}
.main-nav a:hover::after, .main-nav a.is-active::after{ right:0; }
.main-nav a.is-active{ color:#fff; }

.header-actions{ display:flex; align-items:center; gap:1em; }
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; background:none; border:none; cursor:pointer;
}
.nav-toggle span{ display:block; height:2px; width:100%; background:#fff; border-radius:2px; transition:transform .25s var(--ease), opacity .2s; }

.scroll-progress{
  position:absolute; left:0; bottom:-1px; height:2px; width:0%;
  background:linear-gradient(90deg, var(--emerald-2), var(--ruby));
}

@media (max-width: 900px){
  .main-nav{
    position:fixed; top:72px; left:0; right:0; height:calc(100vh - 72px); height:calc(100svh - 72px);
    background:var(--asphalt);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease);
    overflow-y:auto; padding:24px;
  }
  .main-nav.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .main-nav ul{ flex-direction:column; gap:0; }
  .main-nav a{ display:block; padding:1em 0; font-size:1.1rem; border-bottom:1px solid rgba(255,255,255,.08); }
  .nav-toggle{ display:flex; }
  .header-actions .btn-primary.btn-sm{ display:none; }
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* =============== HERO =============== */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:140px 24px 80px;
  background:
    radial-gradient(ellipse 80% 60% at 15% 0%, rgba(15,130,89,.35), transparent 60%),
    radial-gradient(ellipse 60% 50% at 100% 100%, rgba(120,28,51,.4), transparent 60%),
    linear-gradient(160deg, var(--asphalt) 0%, #10201f 60%, #0b1614 100%);
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
.hero-grid{
  position:absolute; inset:0; z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 30%, #000 40%, transparent 90%);
}
.hero-flightpath{ position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.8; }
.flight-route{
  fill:none; stroke:rgba(255,255,255,.22); stroke-width:2; stroke-dasharray:2 10; stroke-linecap:round;
}
.route-city circle{ fill:var(--emerald-2); }
.route-city text{ fill:rgba(255,255,255,.5); font-family:var(--font-body); font-size:14px; }
.route-city-mid circle{ fill:rgba(255,255,255,.4); }
.paper-plane{ color:var(--emerald-2); }

.hero-inner{ position:relative; z-index:1; max-width:840px; text-align:center; }
.eyebrow-badge{
  display:inline-flex; align-items:center; gap:.6em;
  font-size:.82rem; font-weight:600; letter-spacing:.02em;
  color:var(--sand);
  padding:.5em 1.1em; border:1px solid rgba(242,204,161,.4); border-radius:999px;
  margin-bottom:1.6em;
}
.hero h1{
  font-size:clamp(2.4rem, 6vw, 4.4rem);
  font-weight:700;
  margin-bottom:.4em;
}
.hero-sub{
  font-size:clamp(1rem,1.6vw,1.2rem);
  color:rgba(255,255,255,.78);
  max-width:62ch; margin-inline:auto; margin-bottom:2.2em;
}

.hero-facts{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.4em 2.2em; margin-bottom:2.4em; }
.hero-facts li{ display:flex; flex-direction:column; align-items:center; gap:.2em; }
.fact-num{ font-family:var(--font-display); font-weight:700; font-size:1.15rem; color:#fff; }
.fact-label{ font-size:.78rem; color:rgba(255,255,255,.6); }

.hero-cta{ display:flex; gap:1em; justify-content:center; flex-wrap:wrap; margin-bottom:3em; }
.hero .btn-ghost{ border-color:rgba(255,255,255,.35); color:#fff; }
.hero .btn-ghost:hover{ border-color:var(--emerald-2); color:var(--emerald-2); }

.hero-countdown{
  border:1px solid rgba(255,255,255,.18); border-radius:var(--radius);
  padding:1.4em 1.6em; background:rgba(255,255,255,.05); backdrop-filter:blur(4px);
  max-width:520px; margin-inline:auto;
}
.countdown-label{ font-size:.82rem; color:rgba(255,255,255,.65); margin-bottom:.8em; }
.countdown-values{ display:flex; justify-content:center; gap:1.4em; }
.countdown-values div{ display:flex; flex-direction:column; align-items:center; min-width:48px; }
.countdown-values span{ font-family:var(--font-display); font-size:1.6rem; font-weight:700; font-variant-numeric:tabular-nums; }
.countdown-values small{ font-size:.68rem; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.05em; }

.scroll-cue{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  width:26px; height:42px; border:2px solid rgba(255,255,255,.4); border-radius:20px; z-index:1;
}
.scroll-cue span{
  position:absolute; top:8px; left:50%; transform:translateX(-50%);
  width:4px; height:8px; background:var(--emerald-2); border-radius:2px;
  animation:scrollcue 1.8s infinite ease;
}
@keyframes scrollcue{ 0%{ opacity:1; top:8px;} 70%{ opacity:0; top:22px;} 100%{opacity:0; top:22px;} }

/* =============== ORGANIZERS MARQUEE =============== */
.organizers{ background:var(--ink); color:rgba(255,255,255,.85); padding:28px 0; overflow:hidden; }
.organizers-title{ text-align:center; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:14px; }
.marquee{ display:flex; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee-track{
  display:flex; gap:2.6em; white-space:nowrap; padding-right:2.6em;
  animation:scroll-left 46s linear infinite;
}
.marquee-track li{ font-size:.86rem; color:rgba(255,255,255,.6); }
.marquee-track li em{ color:rgba(255,255,255,.35); font-style:normal; }
@keyframes scroll-left{ from{ transform:translateX(0);} to{ transform:translateX(-100%);} }

/* =============== ТЕМАТИЧЕСКИЕ ФОНОВЫЕ ИЗОБРАЖЕНИЯ =============== */
/* Полупрозрачные декоративные фото/чертежи — не должны отвлекать от текста,
   поэтому лежат за контентом (z-index) и показаны с низкой непрозрачностью. */
.has-bg-photo, .has-bg-blueprint{ position:relative; overflow:hidden; }
.has-bg-photo::before, .has-bg-blueprint::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
}
.has-bg-photo::before{
  background-image:
    linear-gradient(90deg, var(--paper) 0%, rgba(246,244,239,.55) 45%, rgba(246,244,239,.15) 100%),
    url('../img/bg-ant25.jpg');
  background-size:cover, cover;
  background-position:center, center 35%;
  opacity:.16;
}
.has-bg-blueprint::before{
  background-image:url('../img/bg-blueprint.png');
  background-size:560px auto;
  background-repeat:no-repeat;
  background-position:right -60px top 10px;
  opacity:.12;
}
.has-bg-photo > .section-inner, .has-bg-blueprint > .section-inner{ position:relative; z-index:1; }

@media (max-width:700px){
  .has-bg-photo::before{ opacity:.1; }
  .has-bg-blueprint::before{
    background-size:260px auto; background-position:right -40px top -10px;
    opacity:.07;
  }
}

/* =============== ABOUT =============== */
.about-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:start; }
.about-text .text-link{ display:block; width:fit-content; margin-top:.6em; font-weight:600; color:var(--emerald); text-decoration:none; border-bottom:1px solid currentColor; }
.about-facts{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.fact-square{
  border:2px solid var(--ink); border-radius:var(--radius-sm);
  padding:1.4em 1.3em; background:#fff;
  transition:transform .2s var(--ease), border-color .2s;
}
.fact-square:hover{ transform:translateY(-4px); border-color:var(--emerald); }
.fact-icon{ width:1.6em; height:1.6em; color:var(--emerald); margin-bottom:.5em; }
.fact-square-title{ display:block; font-family:var(--font-display); font-weight:700; font-size:1.3rem; color:var(--bordo); margin-bottom:.4em; }
.fact-square p{ font-size:.86rem; color:var(--ink-soft); margin:0; }

@media (max-width:860px){
  .about-grid{ grid-template-columns:1fr; gap:40px; }
}

/* =============== TOPIC ACCORDION (sections) =============== */
.topic-list{ margin-top:2.4em; display:flex; flex-direction:column; gap:12px; }
.topic-card{
  border:1px solid var(--line); border-radius:var(--radius); background:#fff; overflow:hidden;
}
.topic-head{
  width:100%; display:flex; align-items:center; gap:1em;
  background:none; border:none; text-align:left; cursor:pointer;
  padding:1.2em 1.4em; font-family:var(--font-body); font-size:1.02rem; font-weight:700; color:var(--ink);
}
.topic-num{ font-family:var(--font-display); color:var(--emerald); font-size:.85rem; flex-shrink:0; }
.topic-title{ flex:1; }
.topic-chevron{ width:12px; height:12px; border-right:2px solid var(--ink-soft); border-bottom:2px solid var(--ink-soft); transform:rotate(45deg); transition:transform .25s var(--ease); flex-shrink:0; }
.topic-card[data-open="true"] .topic-chevron{ transform:rotate(-135deg); }
.topic-body{
  max-height:0; overflow:hidden; transition:max-height .35s var(--ease);
}
.topic-body ul{ padding:0 1.4em 1.4em 1.4em; display:flex; flex-direction:column; gap:.5em; margin:0; }
.topic-body li{ position:relative; padding-left:1.3em; color:var(--ink-soft); font-size:.94rem; }
.topic-body li::before{ content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; background:var(--emerald-2); border-radius:1px; transform:rotate(45deg); }

/* =============== DATES / PROGRAMME =============== */
.dates-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:2.2em 0 3.2em; }
.date-card{
  border:1px solid var(--line); border-radius:var(--radius); padding:1.3em; background:#fff;
}
.date-card-accent{ background:var(--ink); color:#fff; border-color:var(--ink); }
.date-tag{ display:block; font-size:.76rem; color:var(--emerald); font-weight:700; margin-bottom:.5em; }
.date-card-accent .date-tag{ color:var(--emerald-2); }
.date-card strong{ font-family:var(--font-display); font-size:1rem; font-weight:600; }

.programme-subhead{ font-size:1.15rem; margin-bottom:.8em; }
.tabs-nav{ display:flex; gap:8px; margin-bottom:1.6em; flex-wrap:wrap; }
.tab-btn{
  flex:1; min-width:120px; display:flex; flex-direction:column; align-items:flex-start; gap:.2em;
  padding:.9em 1.1em; border:1px solid var(--line); background:#fff; border-radius:var(--radius-sm);
  cursor:pointer; font-family:var(--font-body); color:var(--ink-soft); font-weight:600; font-size:.85rem;
  transition:all .2s var(--ease);
}
.tab-btn span{ font-family:var(--font-display); font-size:.72rem; color:var(--ink); text-transform:uppercase; letter-spacing:.03em; }
.tab-btn.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }
.tab-btn.is-active span{ color:var(--emerald-2); }

.tab-panels{
  position:relative; overflow:hidden;
  transition:height .35s var(--ease);
}
.tab-panel{
  opacity:0; transform:translateY(10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.tab-panel.is-active{ opacity:1; transform:translateY(0); }

.timeline{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.timeline li{ display:flex; gap:1.4em; padding:1em 0; border-bottom:1px solid var(--line); }
.tl-time{ font-family:var(--font-display); font-weight:600; color:var(--emerald); min-width:110px; font-size:.9rem; }
.tl-text{ color:var(--ink); }
.programme-note{ margin-top:1.6em; font-size:.9rem; color:var(--ink-soft); max-width:62ch; }

@media (max-width:760px){
  .dates-row{ grid-template-columns:1fr 1fr; }
}

/* =============== STEP LIST (participation) =============== */
.step-list{ display:flex; flex-direction:column; gap:0; margin-top:2em; counter-reset:step; }
.step-list li{
  display:flex; gap:1.4em; padding:1.6em 0; border-bottom:1px solid var(--line);
}
.step-list li:first-child{ border-top:1px solid var(--line); }
.step-num{
  flex-shrink:0; width:40px; height:40px; border-radius:var(--radius-sm);
  border:2px solid var(--ink); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; color:var(--ink);
}
.step-list strong{ display:block; margin-bottom:.35em; font-size:1.02rem; }
.step-list p{ margin:0; color:var(--ink-soft); font-size:.94rem; }
.step-list a{ color:var(--emerald); font-weight:600; }

/* =============== REQUIREMENTS ACCORDION =============== */
.accordion{ margin-top:2em; display:flex; flex-direction:column; gap:10px; }
.acc-item{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; }
.acc-head{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:1.1em 1.3em; background:none; border:none; cursor:pointer;
  font-family:var(--font-display); font-size:.95rem; font-weight:600; color:var(--ink); text-align:left;
}
.acc-chevron{ width:11px; height:11px; border-right:2px solid var(--emerald); border-bottom:2px solid var(--emerald); transform:rotate(45deg); transition:transform .25s var(--ease); flex-shrink:0; }
.acc-item[data-open="true"] .acc-chevron{ transform:rotate(-135deg); }
.acc-body{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.acc-body ul{ padding:0 1.3em 1.3em 1.3em; display:flex; flex-direction:column; gap:.55em; margin:0; }
.acc-body ol.req-order{ padding:0 1.3em 1.3em 1.3em; display:flex; flex-direction:column; gap:.55em; margin:0; }
.acc-body ul li{ position:relative; padding-left:1.3em; font-size:.92rem; color:var(--ink-soft); }
.acc-body ol.req-order li{ font-size:.92rem; color:var(--ink-soft); }
.acc-body ul li::before{ content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; background:var(--emerald-2); transform:rotate(45deg); }
.req-order strong{ color:var(--emerald); font-family:var(--font-display); font-weight:700; }

.example-card{
  margin:0 1.3em 1.3em 1.3em; padding:1.6em; background:var(--paper-2); border:1px dashed var(--line-strong);
  border-radius:var(--radius-sm); font-size:.86rem;
}
.example-label{ font-family:var(--font-display); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--emerald); margin-bottom:.9em; }
.example-card p{ margin:0 0 .5em; }
.ex-title, .ex-authors, .ex-org, .ex-addr, .ex-mail, .ex-field, .ex-body{
  font-family:'Times New Roman', Times, serif;
}
.ex-title{ font-weight:700; letter-spacing:.02em; text-align:center; font-size:1.05em; }
.ex-authors, .ex-org, .ex-addr, .ex-mail{ text-align:center; }
.ex-field{ color:var(--ink-soft); }
.ex-body{ font-style:italic; color:var(--ink-soft); text-align:justify; text-indent:1cm; }

/* =============== COMMITTEE =============== */
.committee-tabs{ display:flex; gap:10px; margin:2em 0 1.6em; flex-wrap:wrap; }
.ctab-btn{
  padding:.8em 1.4em; border:1px solid var(--line-strong); border-radius:999px; background:#fff;
  font-family:var(--font-body); font-weight:700; font-size:.9rem; color:var(--ink-soft); cursor:pointer;
  transition:all .2s var(--ease);
}
.ctab-btn.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }

.committee-panels{
  position:relative; overflow:hidden;
  transition:height .35s var(--ease);
}
.committee-panel{
  opacity:0; transform:translateY(10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.committee-panel.is-active{ opacity:1; transform:translateY(0); }

.people-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.person-card{
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:1.1em 1.2em; background:#fff;
}
.person-card strong{ display:block; font-family:var(--font-display); font-size:.9rem; margin-bottom:.4em; }
.person-card span{ font-size:.82rem; color:var(--ink-soft); }
.people-grid .more-item{ display:none; }
.people-grid.is-expanded .more-item{
  display:block; opacity:0; transform:translateY(10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.people-grid.is-expanded.is-visible .more-item{ opacity:1; transform:translateY(0); }
.show-more-btn{ margin-top:1.6em; }

@media (max-width:900px){ .people-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .people-grid{ grid-template-columns:1fr; } }

/* =============== REGISTER FORM =============== */
.register-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; }
.mini-contacts{ margin:1.6em 0; display:flex; flex-direction:column; gap:1em; }
.mini-contacts > div{ display:flex; flex-direction:column; gap:.15em; }
.mini-contacts dt{ display:flex; align-items:center; gap:.5em; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); }
.mini-contacts dt .icon{ color:var(--emerald); flex-shrink:0; }
.mini-contacts dd{ margin:0; font-weight:600; }
.mini-contacts a{ color:var(--emerald); text-decoration:none; }
.mini-contacts a:hover{ text-decoration:underline; }
.note-box{
  font-size:.86rem; color:var(--ink-soft); background:var(--paper-2); border-radius:var(--radius-sm);
  padding:1em 1.2em; border-left:3px solid var(--emerald);
}
.note-box a{ color:var(--emerald); font-weight:600; }

.register-form{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:2em; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column; gap:1.3em;
}
.form-row{ display:flex; flex-direction:column; gap:.45em; }
.form-row-half{ display:grid; grid-template-columns:1fr 1fr; gap:1.3em; }
label{ font-size:.85rem; font-weight:700; color:var(--ink); }
.req{ color:var(--red); }
input[type="text"], input[type="email"], input[type="tel"], select, textarea{
  font-family:var(--font-body); font-size:.95rem; padding:.85em 1em; border:1.5px solid var(--line-strong);
  border-radius:var(--radius-sm); background:#fff; color:var(--ink); width:100%;
  transition:border-color .2s;
}
input:focus, select:focus, textarea:focus{ border-color:var(--emerald); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"]{ border-color:var(--red); }
textarea{ resize:vertical; min-height:80px; }
.field-error{ min-height:1.1em; font-size:.78rem; color:var(--red); margin:0; }
.field-hint{ font-size:.78rem; color:var(--ink-soft); margin:0; }

.form-radio-group{ border:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.6em; }
.form-radio-group legend{ font-size:.85rem; font-weight:700; padding:0; margin-bottom:.2em; }

.format-toggle{
  position:relative; display:flex;
  border:1.5px solid var(--line-strong); border-radius:999px; padding:3px;
  width:100%; max-width:280px;
}
.format-toggle input{ position:absolute; opacity:0; pointer-events:none; }
.format-toggle label{
  position:relative; z-index:1; flex:1; text-align:center;
  padding:.65em 1em; font-size:.88rem; font-weight:600; color:var(--ink-soft);
  border-radius:999px; cursor:pointer; transition:color .2s var(--ease);
}
.format-toggle-thumb{
  position:absolute; top:3px; left:3px; width:calc(50% - 3px); height:calc(100% - 6px);
  background:var(--emerald); border-radius:999px; transition:transform .25s var(--ease);
}
#formatOchno:checked ~ .format-toggle-thumb{ transform:translateX(100%); }
#formatZaochno:checked + label{ color:#fff; }
#formatOchno:checked + label{ color:#fff; }

.checkbox-row{ display:flex; align-items:flex-start; gap:.7em; font-weight:500; font-size:.88rem; cursor:pointer; color:var(--ink-soft); }
.checkbox-row input{ margin-top:.2em; width:16px; height:16px; accent-color:var(--emerald); flex-shrink:0; }

input[type="file"]{
  font-family:var(--font-body); font-size:.88rem; padding:.7em .9em; border:1.5px solid var(--line-strong);
  border-radius:var(--radius-sm); background:#fff; color:var(--ink-soft); width:100%;
}
input[type="file"][aria-invalid="true"]{ border-color:var(--red); }

.hp-field{ position:absolute; left:-9999px; top:-9999px; }

.btn-spinner{
  width:16px; height:16px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%;
  display:none; animation:spin .7s linear infinite;
}
#submitBtn.is-loading .btn-spinner{ display:inline-block; }
#submitBtn.is-loading .btn-label{ opacity:.7; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.form-status{ font-size:.88rem; font-weight:600; margin:0; min-height:1.4em; }
.form-status.is-success{ color:var(--emerald); }
.form-status.is-error{ color:var(--red); }

@media (max-width:900px){
  .register-grid{ grid-template-columns:1fr; gap:40px; }
  .form-row-half{ grid-template-columns:1fr; }
}

/* =============== LOCATION / MAP =============== */
.location-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:start; }
.location-info address{ font-size:1.05rem; margin-bottom:1em; }
.icon-pin{ width:1.4em; height:1.4em; color:var(--emerald); display:block; margin-bottom:.4em; }
.map-links{ display:flex; gap:.7em; flex-wrap:wrap; margin-top:1.4em; }
.map-wrap{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-soft); }
#map{ width:100%; height:440px; background:var(--paper-2); }

@media (max-width:900px){
  .location-grid{ grid-template-columns:1fr; }
  #map{ height:320px; }
}

/* =============== FOOTER =============== */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.7); padding:56px 0 32px; }
.footer-inner{ display:flex; flex-direction:column; gap:28px; }
.footer-brand{ display:flex; align-items:center; gap:.9em; }
.footer-brand img{ border-radius:4px; }
.footer-brand strong{ display:block; color:#fff; font-family:var(--font-display); font-size:1rem; }
.footer-brand span{ font-size:.8rem; color:rgba(255,255,255,.5); }
.footer-nav{ display:flex; flex-wrap:wrap; gap:1.6em; }
.footer-nav a{ text-decoration:none; color:rgba(255,255,255,.7); font-size:.88rem; }
.footer-nav a:hover{ color:var(--emerald-2); }
.footer-copy{ font-size:.76rem; color:rgba(255,255,255,.35); margin:0; padding-top:20px; border-top:1px solid rgba(255,255,255,.08); }

/* =============== REVEAL ON SCROLL =============== */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* =============== LEAFLET POPUP THEMING =============== */
.leaflet-popup-content-wrapper{ border-radius:6px; font-family:var(--font-body); }
.leaflet-popup-content{ font-size:.88rem; }
.leaflet-control-attribution{ display:none; }

@media (max-width:600px){
  .section{ padding:64px 0; }

  .register-form{
    margin-inline:-24px;
    border-radius:0;
    border-left:none;
    border-right:none;
  }
}
