/* iowapartners.kz — обучение Microsoft Project.
   Одна таблица стилей на весь сайт: страниц мало, разносить по файлам нечего. */

:root{
  --navy:#14243f; --navy-2:#0b1729; --steel:#1f6fb2; --steel-l:#5bb0ea;
  --amber:#e0a318; --ink:#16233a; --muted:#59677e; --line:#e2e8f1;
  --bg:#f6f8fb; --card:#fff; --ok:#2f7d4f;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink); font-size:16px; line-height:1.65;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--steel); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}

.wrap{max-width:1080px; margin:0 auto; padding:0 20px}
section{padding:52px 0; border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:none}
h1,h2,h3{color:var(--navy); margin:0}
h2{font-size:29px; line-height:1.2; margin-bottom:8px; letter-spacing:-.01em}
h3{font-size:18px; margin:0 0 4px}
.lead{color:var(--muted); font-size:17px; margin:0 0 22px; max-width:72ch}
.small{font-size:14px; color:var(--muted)}

/* ─── шапка ─── */
nav{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
.nav-in{display:flex; align-items:center; gap:18px; height:62px; overflow-x:auto; scrollbar-width:none}
.nav-in::-webkit-scrollbar{display:none}
.brand{font-weight:800; font-size:18px; color:var(--navy); white-space:nowrap; letter-spacing:-.01em}
.brand span{color:var(--steel)}
.brand small{display:block; font-size:11px; font-weight:600; color:var(--muted); letter-spacing:.08em; text-transform:uppercase}
.nav-in a.link{color:var(--muted); font-size:14px; font-weight:600; white-space:nowrap}
.nav-in a.link:hover{color:var(--steel); text-decoration:none}
.nav-cta{margin-left:auto; background:var(--steel); color:#fff!important; padding:9px 17px;
  border-radius:9px; font-weight:700; font-size:14px; white-space:nowrap}
.nav-cta:hover{text-decoration:none; background:#175d97}

/* ─── первый экран ─── */
/* Фотография под градиентом, а не вместо него: поверх снимка идёт белый текст,
   и без плотной заливки он читается только на тёмных участках кадра. */
.hero{
  position:relative; color:#fff; padding:66px 0 58px; border:none;
  background:#0b1729 url("/assets/img/hero.jpg") center 38% / cover no-repeat;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(125deg,rgba(11,23,41,.95) 0%,rgba(11,23,41,.88) 46%,rgba(20,36,63,.76) 100%);
}
.hero .wrap{position:relative; z-index:1}
.hero .wrap{display:grid; grid-template-columns:1.08fr .92fr; gap:44px; align-items:center}
.pill{display:inline-block; border-radius:999px; padding:5px 14px; font-size:12px; font-weight:700;
  letter-spacing:.06em; background:rgba(255,255,255,.09); color:var(--steel-l); border:1px solid rgba(255,255,255,.22)}
.hero h1{font-size:41px; line-height:1.14; color:#fff; margin:16px 0 14px; font-weight:800; letter-spacing:-.02em}
.hero p{color:#c4d0e0; font-size:17.5px; margin:0}
.hero .row{display:flex; gap:12px; flex-wrap:wrap; margin-top:26px}
.btn{display:inline-block; padding:13px 26px; border-radius:10px; font-weight:700; font-size:15px; border:none; cursor:pointer}
.btn-primary{background:var(--amber); color:var(--navy)!important}
.btn-primary:hover{text-decoration:none; background:#cf940f}
.btn-ghost{background:transparent; color:#fff!important; border:1.5px solid rgba(255,255,255,.34)}
.btn-ghost:hover{text-decoration:none; border-color:rgba(255,255,255,.7)}
.hero-facts{display:flex; gap:26px; flex-wrap:wrap; margin-top:30px}
.hero-facts div{font-size:13px; color:#95a6bd}
.hero-facts b{display:block; font-size:22px; color:#fff; font-weight:800; line-height:1.2}

/* ─── диаграмма Ганта в первом экране ─── */
.gantt{background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:18px 18px 14px}
.gantt .ttl{font-size:12px; letter-spacing:.07em; color:#8fa3bd; text-transform:uppercase; margin-bottom:14px}
.gantt-row{display:grid; grid-template-columns:118px 1fr; align-items:center; gap:10px; margin-bottom:9px}
.gantt-row span{font-size:12.5px; color:#c4d0e0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.track{position:relative; height:13px; background:rgba(255,255,255,.07); border-radius:4px}
.bar{position:absolute; top:0; height:13px; border-radius:4px; background:var(--steel)}
.bar.crit{background:#d9534f}
.bar.done{background:var(--ok)}
.milestone{position:absolute; top:-1px; width:15px; height:15px; background:var(--amber); transform:rotate(45deg) scale(.72)}
.gantt .legend{display:flex; gap:14px; flex-wrap:wrap; margin-top:12px; font-size:11.5px; color:#8fa3bd}
.gantt .legend i{display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:5px}

/* ─── карточки ─── */
.grid{display:grid; gap:18px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.card{background:var(--card); border:1px solid var(--line); border-radius:13px; padding:22px}
.card p{margin:6px 0 0; color:var(--muted); font-size:14.5px}
.card .ic{font-size:23px; line-height:1; margin-bottom:9px}

.offer{display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line);
  border-radius:13px; padding:24px; position:relative}
.offer.lead-offer{border-color:var(--steel); box-shadow:0 8px 28px rgba(31,111,178,.12)}
.offer .tag{position:absolute; top:-11px; left:24px; background:var(--steel); color:#fff;
  font-size:11px; font-weight:700; letter-spacing:.05em; padding:4px 11px; border-radius:999px}
.offer h3{font-size:20px}
.offer .meta{font-size:13px; color:var(--muted); margin:2px 0 12px}
.offer ul{margin:0 0 16px; padding-left:19px; color:var(--muted); font-size:14.5px}
.offer ul li{margin-bottom:5px}
.offer .price{margin-top:auto; padding-top:14px; border-top:1px solid var(--line);
  font-size:23px; font-weight:800; color:var(--navy)}
.offer .price small{display:block; font-size:12.5px; font-weight:600; color:var(--muted); margin-top:2px}

/* ─── программа ─── */
.block{background:var(--card); border:1px solid var(--line); border-radius:13px; padding:24px; margin-bottom:18px}
.block .hd{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:10px}
.block .hd h3{font-size:19px}
.block .hd em{font-style:normal; font-size:12px; font-weight:700; letter-spacing:.04em;
  background:#eef4fa; color:var(--steel); padding:3px 10px; border-radius:999px}
.block ol{margin:0; padding-left:20px; color:var(--muted); font-size:15px}
.block ol li{margin-bottom:6px}
.block .praktika{margin:14px 0 0; padding:12px 14px; background:#f7faf8; border-left:3px solid var(--ok);
  border-radius:0 8px 8px 0; font-size:14.5px; color:var(--ink)}
.block .praktika b{color:var(--ok)}

/* ─── таблица условий ─── */
table{width:100%; border-collapse:collapse; background:var(--card);
  border:1px solid var(--line); border-radius:13px; overflow:hidden}
th,td{text-align:left; padding:13px 16px; border-bottom:1px solid var(--line); font-size:15px; vertical-align:top}
th{width:210px; color:var(--navy); font-weight:700; background:#fbfcfe}
tr:last-child th,tr:last-child td{border-bottom:none}
td{color:var(--muted)}
.table-scroll{overflow-x:auto}

/* ─── фотографии в разделах ─── */
.photo{width:100%; border-radius:13px; display:block; object-fit:cover; border:1px solid var(--line)}
.split{display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:center; margin-bottom:26px}
.split.rev img{order:-1}
.photo-cap{margin:8px 0 0; font-size:13px; color:var(--muted)}

/* ─── тренер ─── */
.trainer{display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:start;
  background:var(--card); border:1px solid var(--line); border-radius:13px; padding:24px}
.trainer .ava{width:132px; height:132px; border-radius:50%; object-fit:cover;
  border:3px solid var(--line); display:block}
.creds{display:flex; gap:8px; flex-wrap:wrap; margin:12px 0 0; padding:0; list-style:none}
.creds li{background:#eef4fa; color:var(--steel); font-size:12.5px; font-weight:700;
  padding:4px 11px; border-radius:999px}

/* ─── FAQ ─── */
details{background:var(--card); border:1px solid var(--line); border-radius:11px; padding:15px 18px; margin-bottom:10px}
details[open]{border-color:var(--steel)}
summary{cursor:pointer; font-weight:700; color:var(--navy); font-size:16px; list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+"; float:right; color:var(--steel); font-size:20px; line-height:1}
details[open] summary::after{content:"–"}
details p{color:var(--muted); font-size:15px; margin:10px 0 0}

/* ─── форма ─── */
.form-band{background:linear-gradient(140deg,var(--navy),var(--navy-2)); color:#fff; border-radius:16px; padding:34px}
.form-band h2{color:#fff}
.form-band .lead{color:#c4d0e0}
form{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px}
.field{display:flex; flex-direction:column; gap:6px}
.field.full{grid-column:1 / -1}
label{font-size:13px; font-weight:700; color:#c4d0e0}
input,select,textarea{
  width:100%; padding:12px 14px; border-radius:9px; border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.07); color:#fff; font-size:15px; font-family:inherit; outline:none;
}
input::placeholder,textarea::placeholder{color:#8093ad}
input:focus,select:focus,textarea:focus{border-color:var(--steel-l); background:rgba(255,255,255,.11)}
select option{color:var(--ink); background:#fff}
textarea{min-height:92px; resize:vertical}
.hp{position:absolute; left:-9999px}
.consent{font-size:12.5px; color:#8fa3bd; grid-column:1 / -1; margin:0}
.consent a{color:var(--steel-l)}
.form-err{grid-column:1 / -1; margin:0; font-size:14px; color:#ffb3b0; display:none}

/* ─── контакты и подвал ─── */
.contacts{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.contacts a{font-weight:700; font-size:17px}
.requisites{font-size:13.5px; color:var(--muted); line-height:1.8}
.requisites b{color:var(--navy)}
footer{background:var(--navy); color:#95a6bd; padding:30px 0 36px; font-size:13.5px}
footer a{color:var(--steel-l)}
footer .disclaimer{margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.12);
  font-size:12px; color:#75879f; line-height:1.7}

/* ─── мелкие повторяющиеся отступы и цвета ─── */
/* Держим их здесь, а не в атрибуте style: при правке оформления
   искать по разметке пришлось бы в трёх файлах. */
.txt{color:var(--muted); font-size:15px; margin:8px 0 0}
.txt + .txt{margin-top:12px}
.narrow{max-width:72ch}
.mt{margin-top:26px}
.m0{margin:0}
.sub{margin:2px 0 0}
.hero-plain .wrap{grid-template-columns:1fr}
.hero a.inline{color:var(--steel-l)}
.lg-done{background:var(--ok)}
.lg-crit{background:#d9534f}
.lg-ms{background:var(--amber); transform:rotate(45deg)}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr; gap:30px}
  .hero h1{font-size:33px}
  h2{font-size:25px}
  .g2,.g3,.contacts,.split{grid-template-columns:1fr}
  .split.rev img{order:0}
  form{grid-template-columns:1fr}
  .trainer{grid-template-columns:1fr}
  th{width:auto}
  .form-band{padding:24px 20px}
}
