/* ===== RESET ===== */
* { margin: 0; padding: 0; box-sizing: border-box; }

:root{
  --bg: #f9fafb;
  --text: #1f2937;
  --text-strong:#111827;
  --primary:#3b82f6;
  --accent:#facc15;
  --muted:#6b7280;
  --surface:#ffffff;
}

html { scroll-behavior: smooth; }
body {
  font-family: "Inter", sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  font-size: 16px;
}
h1, h2, h3, h4 { font-family: "Merriweather", serif; color: var(--text-strong); }
a { color: inherit; text-decoration: none; transition: color .3s ease, opacity .3s ease; }
a:hover { color: var(--primary); }

/* ===== UTIL ===== */
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; }
.section { padding: 3rem 0; }
.section--stub { min-height: 20vh; }

/* ===== HEADER ===== */
.header {
  background: var(--surface);
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
  position: sticky; top: 0; z-index: 10;
}
.header__container {
  max-width: 1200px; margin: auto;
  padding: 1rem 1.25rem;
  display: flex; align-items: center; justify-content: space-between;
}
.header__logo { font-size: 1.5rem; font-weight: 700; color: var(--primary); }
.header__menu { display: flex; gap: 1rem; list-style: none; flex-wrap: wrap; }
.header__menu li a { font-weight: 500; position: relative; }
.header__menu li a::after {
  content: ""; position: absolute; left: 0; bottom: -4px;
  width: 0%; height: 2px; background: var(--accent); transition: width .3s ease;
}
.header__menu li a:hover::after { width: 100%; }

/* ===== BUTTONS ===== */
.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .8rem 1.1rem; border-radius: 999px; font-weight: 600;
  border: 2px solid transparent; transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  will-change: transform;
}
.btn i { width: 18px; height: 18px; }
.btn--primary { background: var(--primary); color: #fff; }
.btn--primary:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(59,130,246,.25); }
.btn--ghost { background: transparent; border-color: var(--primary); color: var(--primary); }
.btn--ghost:hover { background: rgba(59,130,246,.08); }

/* ===== HERO ===== */
.hero {
  position: relative; overflow: hidden;
  background: radial-gradient(1200px 600px at 10% -10%, rgba(59,130,246,.15), transparent 60%),
              radial-gradient(900px 500px at 90% 0%, rgba(250,204,21,.18), transparent 60%),
              var(--bg);
  padding: 4.5rem 0 3.5rem;
}
.hero__bg { position: absolute; inset: 0; pointer-events: none; }
.hero__orb {
  position: absolute; width: 260px; height: 260px; border-radius: 50%;
  filter: blur(40px); opacity: .55; transform: translate(-50%,-50%);
}
.hero__orb--a { top: 12%; left: 8%; background: rgba(59,130,246,.45); }
.hero__orb--b { top: 18%; right: 8%; background: rgba(250,204,21,.45); }
.hero__orb--c { bottom: -10%; left: 40%; background: rgba(59,130,246,.32); }

.hero__container { max-width: 1100px; margin: 0 auto; padding: 0 1.25rem; position: relative; z-index: 1; }
.hero__badge{
  display: inline-flex; align-items:center; gap:.5rem;
  background: #fff; border:1px solid #e5e7eb; color: var(--muted);
  padding:.45rem .75rem; border-radius: 999px; font-size:.9rem; margin-bottom: 1rem;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.hero__title{
  display: flex; flex-wrap: wrap; gap: .5rem .75rem;
  font-size: clamp(1.8rem, 4.5vw, 3rem); line-height: 1.2; margin-bottom: .75rem;
}
.hero__title-part{ display:inline-block; opacity:0; transform: translateY(12px); }
.hero__subtitle{
  max-width: 720px; color: var(--muted); margin-bottom: 1.25rem; font-size: 1.05rem;
}
.hero__cta{ display:flex; gap:.75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }

.hero__stats{ list-style:none; display:flex; gap:1rem; flex-wrap: wrap; margin-bottom: 2rem; }
.hero__stats-item{
  display:flex; align-items:center; gap:.5rem; background:#fff; border:1px solid #e5e7eb;
  padding:.6rem .9rem; border-radius:12px; font-weight:600; color: var(--text-strong);
  box-shadow: 0 6px 16px rgba(0,0,0,.05);
}

.hero__media{
  background:#fff; border:1px solid #e5e7eb; border-radius:20px; overflow:hidden;
  box-shadow: 0 18px 40px rgba(0,0,0,.08);
}
.hero__media img{ display:block; width:100%; height:auto; }

/* ===== FOOTER ===== */
.footer {
  background: #111827; color: #f9fafb; padding: 3rem 1.25rem;
}
.footer__container {
  max-width: 1200px; margin: auto;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2rem;
}
.footer__logo { font-size: 1.5rem; font-weight: bold; color: var(--accent); }
.footer__col h4 { margin-bottom: 1rem; font-size: 1.1rem; color: var(--accent); }
.footer__col ul { list-style: none; }
.footer__col ul li { margin-bottom: .5rem; }
.footer__col ul li a:hover { color: var(--primary); }
.footer__col p { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }

/* ===== PAGES (шаблоны для policy-страниц, пригодятся на этапе 5) ===== */
.pages .container{ max-width: 900px; margin: 0 auto; padding: 2rem 1.25rem; }
.pages h1{ font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 1rem; }
.pages h2{ font-size: clamp(1.2rem, 2.3vw, 1.6rem); margin: 1.2rem 0 .6rem; }
.pages p{ margin: .8rem 0; color: var(--text); }
.pages ul{ padding-left: 1.2rem; }
.pages li{ margin: .5rem 0; }
.pages a{ color: var(--primary); text-decoration: underline; }

/* ===== RESPONSIVE ===== */
@media (min-width: 768px){
  .hero{ padding: 6rem 0 4rem; }
}

/* ===== CONSULTING ===== */
.consulting__head { margin-bottom: 1.5rem; }
.consulting__title { font-size: clamp(1.4rem, 2.8vw, 2rem); margin-bottom: .25rem; }
.consulting__desc { color: var(--muted); max-width: 720px; }

.consulting__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 1rem;
}
@media (min-width: 640px){
  .consulting__grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px){
  .consulting__grid{ grid-template-columns: repeat(4, 1fr); }
}

.c-card{
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 1rem;
  display: flex; flex-direction: column; gap: .6rem;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
}
.c-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0,0,0,.08);
  border-color: rgba(59,130,246,.35);
}
.c-card__icon{ width: 24px; height: 24px; color: var(--primary); }
.c-card__title{ font-size: 1.05rem; }
.c-card__text{ color: var(--muted); flex: 1; }
.c-card__btn{ align-self: flex-start; }

.consulting__media{
  margin-top: 1.5rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 12px 28px rgba(0,0,0,.06);
}
.consulting__media img{ display: block; width: 100%; height: auto; }

/* ===== IT-SCHOOL ===== */
.school__head { margin-bottom: 1.25rem; }
.school__title { font-size: clamp(1.4rem, 2.8vw, 2rem); margin-bottom: .25rem; }
.school__desc { color: var(--muted); max-width: 720px; }

/* Tabs */
.tabs { display: inline-flex; gap: .5rem; flex-wrap: wrap; margin-top: .8rem; }
.tabs__btn{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.55rem .9rem; border-radius: 999px; font-weight:600;
  background:#fff; border:1px solid #e5e7eb; color: var(--text);
  transition: background .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tabs__btn:hover{ background:#f3f4f6; }
.tabs__btn.is-active{ border-color: rgba(59,130,246,.45); box-shadow: 0 8px 20px rgba(59,130,246,.12); }

/* Panels */
.school__panel{ display:none; }
.school__panel.is-active{ display:block; }

/* Grid */
.school__grid{
  display:grid; grid-template-columns:1fr; gap:1rem; margin-top:1rem;
}
@media (min-width: 700px){ .school__grid{ grid-template-columns: repeat(3, 1fr); } }

/* Module card */
.m-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:1rem;
  display:flex; flex-direction:column; gap:.6rem;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
}
.m-card:hover{ transform: translateY(-4px); box-shadow:0 16px 36px rgba(0,0,0,.08); border-color: rgba(59,130,246,.35); }
.m-card__head{ display:flex; gap:.5rem; align-items:center; flex-wrap: wrap; }
.m-card__title{ font-size:1.05rem; }
.m-card__text{ color: var(--muted); flex:1; }
.m-card__btn{ align-self:flex-start; }
.m-card--media{ padding:0; overflow:hidden; }
.m-card--media img{ display:block; width:100%; height:auto; border-radius:16px; }

/* Badges */
.badge{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.35rem .6rem; border-radius:999px; font-size:.85rem; font-weight:600;
  border:1px solid #e5e7eb; background:#fff; color: var(--text-strong);
}
.badge--level{ border-color:#dbeafe; background:#eff6ff; }
.badge--time{ border-color:#fde68a; background:#fff7d6; }
.badge--time i{ width:16px; height:16px; }

/* ===== INNOVATION ===== */
.innovation__head{ margin-bottom: 1.25rem; }
.innovation__title{ font-size: clamp(1.4rem, 2.8vw, 2rem); margin-bottom: .25rem; }
.innovation__desc{ color: var(--muted); max-width: 720px; }

.innovation__layout{
  display: grid; gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 960px){
  .innovation__layout{ grid-template-columns: 1.2fr .8fr; }
}

/* Accordion */
.i-acc{ background:#fff; border:1px solid #e5e7eb; border-radius:16px; overflow:hidden; }
.i-acc + .i-acc{ margin-top: .75rem; }

.i-acc__trigger{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  gap:.75rem; background:#fff; border:0; text-align:left; cursor:pointer;
  padding: .9rem 1rem; font-weight:700; color: var(--text-strong);
}
.i-acc__title{ display:flex; align-items:center; gap:.5rem; }
.i-acc__title i{ width:20px; height:20px; color: var(--primary); }
.i-acc__chev{ width:20px; height:20px; color: var(--muted); transition: transform .25s ease; }

.i-acc__panel{
  padding: 0 1rem 1rem; border-top:1px dashed #e5e7eb;
  animation: accFade .25s ease both;
}
.i-acc__text{ color: var(--muted); margin-top:.75rem; }
.i-acc__cta{ margin-top:.75rem; }

.i-acc.is-open .i-acc__chev{ transform: rotate(180deg); }

@keyframes accFade{
  from{ opacity:.6; transform: translateY(-2px); }
  to{ opacity:1; transform: translateY(0); }
}

/* Side */
.innovation__side{ display:flex; flex-direction:column; gap: .75rem; }
.innovation__media{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; overflow:hidden;
  box-shadow: 0 12px 28px rgba(0,0,0,.06);
}
.innovation__media img{ display:block; width:100%; height:auto; }
.innovation__bullets{
  list-style:none; display:grid; gap:.5rem;
}
.innovation__bullets li{
  display:flex; align-items:center; gap:.5rem; color: var(--text);
}
.innovation__bullets i{ width:18px; height:18px; color: var(--primary); }

/* ===== TECHLIFE ===== */
.techlife__head{ margin-bottom: 1.25rem; }
.techlife__title{ font-size: clamp(1.4rem, 2.8vw, 2rem); margin-bottom:.25rem; }
.techlife__desc{ color: var(--muted); max-width: 760px; }

/* Chips */
.chips{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.8rem; }
.chip{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.5rem .85rem; border-radius:999px; font-weight:600; cursor:pointer;
  background:#fff; border:1px solid #e5e7eb; color: var(--text);
  transition: background .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.chip:hover{ background:#f3f4f6; }
.chip.is-active{ border-color: rgba(59,130,246,.45); box-shadow: 0 8px 20px rgba(59,130,246,.12); }

/* Grid */
.techlife__grid{
  display:grid; grid-template-columns:1fr; gap:1rem; margin-top:1rem;
}
@media (min-width: 800px){ .techlife__grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1180px){ .techlife__grid{ grid-template-columns: repeat(4, 1fr); } }

/* Card */
.t-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; overflow:hidden;
  display:flex; flex-direction:column; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
}
.t-card:hover{ transform: translateY(-4px); box-shadow:0 16px 36px rgba(0,0,0,.08); border-color: rgba(59,130,246,.35); }
.t-card__media img{ width:100%; height:auto; display:block; }
.t-card__body{ display:flex; flex-direction:column; gap:.6rem; padding: .9rem 1rem 1rem; }
.t-card__labels{ display:flex; gap:.5rem; flex-wrap:wrap; }
.t-card__title{ font-size:1.05rem; }
.t-card__excerpt{ color: var(--muted); }
.t-card__meta{ display:flex; gap:1rem; flex-wrap:wrap; color: var(--text); font-weight:600; }
.t-card__meta i{ width:16px; height:16px; }
.t-card__btn{ align-self:flex-start; }

/* Badges for techlife */
.badge--role{ border-color:#d1fae5; background:#ecfdf5; }
.badge--place{ border-color:#e5e7eb; background:#fff; }
.badge--role i, .badge--place i{ width:16px; height:16px; }

/* ===== AI PRACTICES ===== */
.aip__head{ margin-bottom: 1.25rem; }
.aip__title{ font-size: clamp(1.4rem, 2.8vw, 2rem); margin-bottom:.25rem; }
.aip__desc{ color: var(--muted); max-width: 720px; }

.aip__grid{
  display:grid; grid-template-columns:1fr; gap:1rem; margin-top:1rem;
}
@media (min-width: 900px){ .aip__grid{ grid-template-columns: repeat(1, 1fr); } }

.aip-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:1rem;
  display:flex; flex-direction:column; gap:.6rem;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
}
.aip-card:hover{ transform: translateY(-4px); box-shadow:0 16px 36px rgba(0,0,0,.08); border-color: rgba(59,130,246,.35); }
.aip-card__head{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.aip-card__title{ font-size:1.05rem; }
.aip-card__list{ list-style:none; display:grid; gap:.45rem; }
.aip-card__list i{ width:18px; height:18px; color: var(--primary); }
.aip-card__prompt{
  background:#0b1220; color:#e5e7eb; border-radius:12px; padding:.9rem; overflow:auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size:.9rem; line-height:1.5; border:1px solid #0f172a;
}
.aip-card__cta{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.25rem; }

.aip__media{
  margin-top:1.25rem; background:#fff; border:1px solid #e5e7eb;
  border-radius:16px; overflow:hidden; box-shadow: 0 12px 28px rgba(0,0,0,.06);
}
.aip__media img{ display:block; width:100%; height:auto; }

/* Toast */
.toast{
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%);
  background: #111827; color:#f9fafb; border:1px solid #1f2937;
  padding:.6rem .9rem; border-radius:10px; font-weight:600; box-shadow: 0 12px 28px rgba(0,0,0,.25);
  z-index: 50;
}

/* ===== CONTACT ===== */
.contact__head{ margin-bottom: 1.25rem; }
.contact__title{ font-size: clamp(1.4rem, 2.8vw, 2rem); margin-bottom:.25rem; }
.contact__desc{ color: var(--muted); max-width: 720px; }

.contact__form{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:1rem;
  box-shadow: 0 12px 28px rgba(0,0,0,.06);
  max-width: 720px;
}
.contact__row{ display:flex; flex-direction:column; gap:.35rem; margin-bottom:.9rem; }
.contact__label{ font-weight:700; color: var(--text-strong); }
.contact__input{
  border:1px solid #e5e7eb; border-radius:12px; padding:.7rem .9rem; background:#fff; color:var(--text);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.contact__input:focus{
  outline:none; border-color: rgba(59,130,246,.6); box-shadow: 0 0 0 4px rgba(59,130,246,.12);
}
.contact__input.is-invalid{ border-color:#ef4444; }
.contact__error{ color:#ef4444; min-height:1rem; font-size:.88rem; }

.contact__row--captcha{ align-items:flex-start; }
.captcha__label{ font-weight:700; color: var(--text-strong); margin-bottom:.25rem; display:block; }
.captcha__box{ display:flex; align-items:center; gap:.5rem; }
.captcha__task{
  display:inline-flex; align-items:center; justify-content:center;
  background:#f3f4f6; border:1px solid #e5e7eb; border-radius:12px;
  padding:.6rem .8rem; font-weight:700; color: var(--text-strong);
}
.captcha__input{ width:120px; }
.captcha__refresh{
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.6rem .7rem; border-radius:999px; border:1px solid #e5e7eb; background:#fff; cursor:pointer;
  transition: background .2s ease, box-shadow .2s ease, transform .1s ease;
}
.captcha__refresh:hover{ background:#f9fafb; box-shadow:0 8px 20px rgba(0,0,0,.06); }
.captcha__refresh i{ width:18px; height:18px; color: var(--primary); }

.contact__agree{ margin:.5rem 0; }
.checkbox{ display:flex; gap:.5rem; align-items:flex-start; }
.checkbox input{ margin-top:.2rem; }
.checkbox a{ color: var(--primary); text-decoration: underline; }

.contact__actions{ display:flex; gap:.75rem; align-items:center; flex-wrap:wrap; }
.contact__status{ font-weight:600; color: var(--muted); min-height:1.25rem; }

@media (min-width: 640px){
  .contact__form{ padding:1.25rem; }
}

/* ===== COOKIE POPUP ===== */
.cookie{
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  padding: .9rem 1rem; backdrop-filter: blur(6px);
  background: rgba(17,24,39,.75); /* #111827 with alpha */
}
.cookie[hidden]{ display:none !important; }
.cookie__inner{
  max-width: 1200px; margin: 0 auto;
  background: #111827; color: #f9fafb;
  border: 1px solid #1f2937; border-radius: 14px;
  padding: .9rem; display: flex; gap: .75rem; align-items: center; justify-content: space-between;
  box-shadow: 0 18px 40px rgba(0,0,0,.25);
}
.cookie__text{ margin-right: .5rem; }
.cookie__text a{ color: var(--accent); text-decoration: underline; }
.cookie__btn{ flex: 0 0 auto; }
@media (max-width: 640px){
  .cookie__inner{ flex-direction: column; align-items: stretch; }
  .cookie__btn{ width: 100%; }
}

.aip__container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}