/* ===== TECH WAVE — базовые стили (mobile-first) ===== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #101010;
  color: #f3f3f3;
  font-family: 'Satoshi', ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: #e7c59a; color: #101010; }
/* Атрибут hidden должен скрывать элемент даже при инлайновом display:flex */
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
input::placeholder, textarea::placeholder { color: #5a5a5a; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #6f9e7a !important; }
:focus-visible { outline: 2px solid #6f9e7a; outline-offset: 2px; }

@keyframes twGlowA { 0%,100%{transform:translate(0,0) scale(1);opacity:.55} 50%{transform:translate(40px,-30px) scale(1.18);opacity:.85} }
@keyframes twGlowB { 0%,100%{transform:translate(0,0) scale(1.1);opacity:.4} 50%{transform:translate(-50px,40px) scale(.85);opacity:.7} }
@keyframes twGlowC { 0%,100%{transform:translate(0,0) scale(1);opacity:.5} 50%{transform:translate(30px,30px) scale(1.25);opacity:.75} }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Skip link для доступности */
.tw-skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: #fff; color: #101010; padding: 10px 16px; border-radius: 8px;
  font-weight: 700; font-size: 13px;
}
.tw-skip:focus { left: 16px; top: 16px; }

/* ===== Форма записи ===== */
.tw-input {
  width: 100%;
  background: #101010;
  border: 1px solid #333333;
  border-radius: 9px;
  padding: 13px 14px;
  font-family: 'Satoshi', sans-serif;
  font-size: 15px;
  color: #f3f3f3;
  transition: border-color .15s;
}
.tw-input-mono { font-family: 'JetBrains Mono', monospace; }
.tw-input-promo {
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: .04em; text-transform: uppercase; color: #e7c59a;
}

.tw-pick {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 16px; border-radius: 12px; cursor: pointer;
  border: 1px solid #333333; background: #101010; transition: all .15s;
}
.tw-pick[aria-pressed="true"] { border-color: #6f9e7a; background: rgba(111,158,122,0.08); }
.tw-dot {
  width: 18px; height: 18px; border-radius: 50%; flex-shrink: 0;
  border: 2px solid #444; background: transparent; transition: all .15s;
}
.tw-pick[aria-pressed="true"] .tw-dot {
  border-color: #6f9e7a; background: #6f9e7a; box-shadow: inset 0 0 0 3px #161616;
}
.tw-pick[data-intensive="auto"][aria-pressed="true"] .tw-dot,
.tw-pick[data-intensive="both"][aria-pressed="true"] .tw-dot {
  border-color: #e7c59a; background: #e7c59a;
}
.tw-pick[data-intensive="auto"][aria-pressed="true"],
.tw-pick[data-intensive="both"][aria-pressed="true"] {
  border-color: #e7c59a; background: rgba(231,197,154,0.08);
}

.tw-tab {
  padding: 13px; border-radius: 9px;
  font-family: 'Satoshi', sans-serif; font-weight: 600; font-size: 14px;
  letter-spacing: -0.01em; cursor: pointer;
  border: 1px solid #333333; background: transparent; color: #c1c1c1; transition: all .15s;
}
.tw-tab[aria-pressed="true"] { border-color: #f3f3f3; background: #f3f3f3; color: #101010; }

.tw-submit {
  width: 100%; margin-top: 24px;
  background: #2a2a2a; color: #666; border: none; border-radius: 11px; padding: 16px;
  font-family: 'Satoshi', sans-serif; font-weight: 700; font-size: 14px;
  letter-spacing: -0.01em; text-transform: uppercase; cursor: not-allowed; transition: all .15s;
}
.tw-submit.is-ready { background: #ffffff; color: #101010; cursor: pointer; }
.tw-submit.is-loading { opacity: .7; cursor: progress; }

/* ===== Адаптивность ===== */

/* Планшеты и ниже */
@media (max-width: 980px) {
  .tw-grid-speaker { grid-template-columns: 1fr !important; gap: 40px !important; }
  .tw-grid-register { grid-template-columns: 1fr !important; gap: 40px !important; }
  .tw-register-aside { position: static !important; }
  .tw-grid-speaker img { max-width: 480px; }
}

/* Скрываем текстовую навигацию на узких экранах — оставляем логотип и «Записаться» */
@media (max-width: 760px) {
  .tw-nav { display: none !important; }
  .tw-header-divider { display: none !important; }
  .tw-hero-inner { padding: 84px 20px 72px !important; }
  .tw-section { padding-left: 20px !important; padding-right: 20px !important; }
  .tw-grid-countdown { padding: 24px 20px !important; }
  .tw-grid-intensives { grid-template-columns: 1fr !important; }
  .tw-grid-cases { grid-template-columns: 1fr !important; }
}

/* Телефоны */
@media (max-width: 560px) {
  .tw-header-inner { padding: 14px 18px !important; }
  .tw-hero-inner { padding: 64px 18px 56px !important; }
  .tw-section { padding-top: 64px !important; padding-bottom: 64px !important; padding-left: 18px !important; padding-right: 18px !important; }
  .tw-grid-2 { grid-template-columns: 1fr !important; }
  .tw-count-card { gap: 16px !important; padding: 20px !important; }
  .tw-hero-prices { font-size: 12px !important; }
  /* карточки интенсивов и форма — меньше внутренние отступы */
  .tw-grid-intensives > article { padding: 28px 22px !important; }
  #tw-register .tw-grid-register > div:last-child { padding: 28px 22px !important; }
  #tw-modal-card { padding: 28px 22px !important; }
  #tw-modal { padding: 24px 14px !important; }
  #cookie-banner { left: 12px !important; right: 12px !important; bottom: 12px !important; flex-direction: column !important; gap: 14px !important; align-items: stretch !important; padding: 18px !important; }
}

/* Очень узкие экраны */
@media (max-width: 360px) {
  .tw-hero-prices { flex-direction: column; gap: 6px !important; }
}
