/* ================================================================
   ГЛАВНАЯ — page components (index.css)  ·  uses base.css tokens
   ================================================================ */

/* ── HERO (full-bleed) ── */
.h-hero { position: relative; min-height: 640px; display: flex; align-items: center; background: var(--m-ink); color: #fff; overflow: hidden; padding: 80px 0 64px; }
.h-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; object-fit: cover; filter: saturate(0.7) contrast(1.05) brightness(0.78); transform: scale(1.06); animation: heroDrift 26s ease-in-out infinite alternate; }
@keyframes heroDrift { from { transform: scale(1.06) translate(0,0); } to { transform: scale(1.12) translate(-1.5%,-1.5%); } }
.h-hero__veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(118deg,rgba(10,33,62,0.95) 0%,rgba(10,33,62,0.8) 48%,rgba(10,33,62,0.5) 100%), radial-gradient(at 82% 18%,rgba(212,154,58,0.26),transparent 55%); }
.h-hero .m-shell { position: relative; z-index: 2; }
.h-hero__content { max-width: 760px; animation: heroIn 0.9s var(--m-ease) 0.1s both; }
@keyframes heroIn { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
/* СанПиН/доступность: отключаем движение для пользователей с prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .h-hero__bg { animation: none !important; transform: scale(1.06); }
  .h-hero__content { animation: none !important; }
}
.h-hero__title { font-family: var(--m-display); font-weight: 500; font-size: clamp(44px,5.6vw,86px); line-height: 0.98; letter-spacing: -0.02em; margin: 14px 0 22px; text-wrap: balance; font-optical-sizing: auto; }
.h-hero__title em { font-style: italic; background: var(--m-gold-metal); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.h-hero__lede { font-size: 18px; line-height: 1.55; max-width: 600px; color: rgba(255,255,255,0.85); margin: 0 0 30px; text-wrap: pretty; }
.h-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 52px; }
.h-hero__stats { list-style: none; margin: 0; padding: 26px 0 0; border-top: 1px solid rgba(255,255,255,0.18); display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; max-width: 860px; }
.h-hero__stats li { display: flex; flex-direction: column; gap: 6px; }
.h-hero__stats b { font-family: var(--m-display); font-weight: 500; font-size: 44px; line-height: 1; color: var(--m-accent-soft); letter-spacing: -0.02em; font-optical-sizing: auto; }
.h-hero__stats span { font-size: 13px; color: rgba(255,255,255,0.7); line-height: 1.35; }

/* ── INTRO / ABOUT ── */
.m-section--intro { background: var(--m-paper-warm); }
.m-intro { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; }
.m-intro__media-wrap { position: relative; }
.m-intro__media { position: relative; margin: 0; aspect-ratio: 4/3; overflow: hidden; background: var(--m-ink); box-shadow: 0 30px 60px -20px rgba(13,44,80,0.35); }
.m-intro__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--m-img); transition: transform 1s var(--m-ease), filter 0.6s; }
.m-intro__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(13,44,80,0.04),rgba(13,44,80,0.36)); mix-blend-mode: multiply; }
.m-intro__media:hover img { transform: scale(1.04); filter: var(--m-img-hover); }
.m-intro__media-wrap::before { content: ""; position: absolute; top: 18px; left: -18px; width: 70px; height: 70px; border-top: 2px solid var(--m-accent); border-left: 2px solid var(--m-accent); z-index: 2; }
.m-intro__media-wrap::after { content: ""; position: absolute; bottom: 18px; right: -18px; width: 70px; height: 70px; border-bottom: 2px solid var(--m-accent); border-right: 2px solid var(--m-accent); z-index: 2; }
.m-intro__caption { position: absolute; bottom: 0; left: 0; right: 0; z-index: 2; padding: 40px 20px 16px; font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.94); background: linear-gradient(to top, rgba(8,28,55,0.78), transparent); }
.m-intro__lead { font-family: var(--m-display); font-size: clamp(24px,2.6vw,30px); line-height: 1.28; font-weight: 500; color: var(--m-ink); margin: 0 0 18px; letter-spacing: -0.01em; text-wrap: pretty; font-optical-sizing: auto; }
.m-intro__copy { font-size: 17px; line-height: 1.66; color: var(--m-text); margin: 0 0 18px; max-width: 640px; }
.m-intro__copy strong { font-weight: 600; color: var(--m-ink); }
.m-intro__link { font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--m-ink); border-bottom: 1.5px solid var(--m-accent); padding-bottom: 2px; }

/* ── ADVANTAGES ── */
.m-adv-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--m-rule); border: 1px solid var(--m-rule); }
.m-adv { background: var(--m-paper); padding: 30px 28px 34px; display: flex; flex-direction: column; gap: 12px; transition: background 0.2s; }
.m-adv:hover { background: var(--m-paper-warm); }
.m-adv__icon { width: 42px; height: 42px; color: var(--m-accent); }
.m-adv__icon svg { width: 100%; height: 100%; display: block; stroke-width: 1.5; }
.m-adv__title { font-family: var(--m-display); font-size: 20px; font-weight: 500; line-height: 1.2; margin: 4px 0 0; color: var(--m-ink); letter-spacing: -0.01em; }
.m-adv__copy { font-size: 14px; line-height: 1.55; color: var(--m-text-mute); margin: 0; text-wrap: pretty; }

/* ── PROGRAMS by age ── */
.m-section--prog { background: var(--m-paper); }
.m-prog-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.m-prog { display: flex; flex-direction: column; background: var(--m-paper); border: 1px solid var(--m-rule); overflow: hidden; transition: transform 0.5s var(--m-ease), box-shadow 0.5s var(--m-ease); text-decoration: none; }
.m-prog:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -12px rgba(10,35,72,0.18); }
.m-prog__img { position: relative; width: 100%; aspect-ratio: 4/5; background: var(--m-ink); overflow: hidden; }
.m-prog__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--m-ease), filter 0.6s; filter: var(--m-img); }
.m-prog__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(13,44,80,0.20),rgba(13,44,80,0.54)); mix-blend-mode: multiply; transition: opacity 0.6s; z-index: 1; }
.m-prog:hover .m-prog__img img { transform: scale(1.05); filter: var(--m-img-hover); }
.m-prog:hover .m-prog__img::after { opacity: 0.4; }
.m-prog__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.m-prog__age { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--m-accent-deep); }
.m-prog__name { font-family: var(--m-display); font-size: 22px; font-weight: 500; line-height: 1.15; margin: 2px 0 2px; color: var(--m-ink); letter-spacing: -0.01em; }
.m-prog__copy { font-size: 14px; line-height: 1.55; color: var(--m-text-mute); margin: 0 0 12px; flex: 1; }
.m-prog__more { font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--m-ink); display: inline-flex; align-items: center; gap: 7px; }
.m-prog__more svg { width: 15px; height: 15px; transition: transform 0.25s var(--m-ease); }
.m-prog:hover .m-prog__more svg { transform: translateX(4px); }

/* ── DAY ── */
.m-section--day { background: var(--m-ink-deep); color: #fff; position: relative; overflow: hidden; }
.m-section--day::before { content: ""; position: absolute; top: -200px; right: -150px; width: 500px; height: 500px; background: radial-gradient(circle,rgba(212,154,58,0.16),transparent 70%); z-index: 0; }
.m-section--day::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg,transparent,rgba(232,201,138,0.4),transparent); }
.m-section--day .m-shell { position: relative; z-index: 1; }
.m-mods { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.m-mod { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.14); padding: 22px 20px 20px; display: flex; flex-direction: column; gap: 10px; transition: background 0.25s, border-color 0.25s, transform 0.25s; }
.m-mod:hover { background: rgba(255,255,255,0.07); border-color: rgba(212,154,58,0.5); transform: translateY(-4px); }
.m-mod--key { background: linear-gradient(165deg,rgba(212,154,58,0.18),rgba(212,154,58,0.04)); border-color: rgba(212,154,58,0.45); }
.m-mod__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,0.14); }
.m-mod__n { font-family: var(--m-display); font-style: italic; font-weight: 500; font-size: 22px; color: var(--m-accent-soft); line-height: 1; }
.m-mod__time { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.75); white-space: nowrap; }
.m-mod__name { font-family: var(--m-display); font-size: 19px; font-weight: 500; line-height: 1.18; margin: 2px 0 0; color: #fff; letter-spacing: -0.01em; }
.m-mod__copy { font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,0.7); margin: 0; flex: 1; }
.m-day-meals { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; margin-top: 24px; padding: 18px 26px; border: 1px solid rgba(232,201,138,0.28); background: rgba(232,201,138,0.06); }
.m-day-meals__label { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--m-accent-soft); }
.m-day-meals__items { display: flex; flex-wrap: wrap; gap: 10px; margin-left: auto; }
.m-day-meals__items span { font-family: var(--m-display); font-size: 15px; color: #fff; padding: 6px 16px; border: 1px solid rgba(255,255,255,0.18); border-radius: 999px; }

/* ── SCHEDULE (режим дня) ── */
.m-sched { width: 100%; border-collapse: collapse; margin-top: 6px; border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.03); }
.m-sched th, .m-sched td { text-align: left; padding: 12px 24px; border-bottom: 1px solid rgba(255,255,255,0.09); }
.m-sched tbody tr:last-child td { border-bottom: 0; }
.m-sched__title th { font-family: var(--m-display); font-weight: 500; font-size: clamp(17px,2vw,21px); letter-spacing: -0.01em; color: #fff; background: rgba(232,201,138,0.1); border-bottom: 1px solid rgba(232,201,138,0.3); padding-top: 16px; padding-bottom: 16px; }
.m-sched__head th { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--m-accent-soft); }
.m-sched__head th:first-child { width: 210px; }
.m-sched__time { font-family: var(--m-display); font-size: 16px; font-weight: 500; color: #fff; white-space: nowrap; letter-spacing: -0.01em; vertical-align: top; }
.m-sched__time span { display: block; line-height: 1.55; }
.m-sched__act { font-size: 15.5px; color: rgba(255,255,255,0.9); vertical-align: top; text-wrap: pretty; }
.m-sched__act small { display: block; font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 3px; letter-spacing: 0.01em; }
.m-sched tr.is-lesson .m-sched__act { font-weight: 600; color: #fff; }
.m-sched tr.is-break .m-sched__time { color: rgba(255,255,255,0.5); font-size: 14.5px; }
.m-sched tr.is-break .m-sched__act { color: rgba(255,255,255,0.55); font-size: 14px; }
.m-sched tr.is-meal .m-sched__act { color: var(--m-accent-soft); font-weight: 600; }
.m-sched tr.is-meal .m-sched__time { color: var(--m-accent-soft); }
@media (max-width: 560px) { .m-sched th, .m-sched td { padding: 11px 14px; } .m-sched__head th:first-child { width: 116px; } .m-sched__time { font-size: 14px; } .m-sched__act { font-size: 14.5px; } }

/* ── RESULTS ── */
.m-section--results { background: var(--m-paper); }
.m-res-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; margin-bottom: 40px; }
.m-res { display: flex; flex-direction: column; gap: 14px; }
.m-res__num { font-family: var(--m-display); font-weight: 500; font-size: 68px; line-height: 1; color: var(--m-ink); letter-spacing: -0.03em; font-optical-sizing: auto; transition: all 0.4s; }
.m-res:hover .m-res__num { background: var(--m-gold-metal); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.m-res__line { height: 2px; background: var(--m-accent); width: 54px; }
.m-res__label { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--m-ink); }
.m-res__copy { font-size: 14px; line-height: 1.55; color: var(--m-text-mute); margin: 0; }

/* ── NEWS ── */
.m-section--news { background: var(--m-paper-warm); }
.m-news-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; }
.m-news { display: flex; flex-direction: column; transition: transform 0.25s; cursor: pointer; }
a.m-news { text-decoration: none; color: inherit; }
.m-news:hover { transform: translateY(-4px); }
.m-news__img { position: relative; width: 100%; aspect-ratio: 4/3; background: var(--m-ink); margin-bottom: 18px; overflow: hidden; }
.m-news__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--m-ease), filter 0.6s; filter: var(--m-img); }
.m-news__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(10,35,72,0.1),rgba(10,35,72,0.42)); mix-blend-mode: multiply; transition: opacity 0.6s; }
.m-news:hover .m-news__img img { transform: scale(1.05); filter: var(--m-img-hover); }
.m-news__body { display: flex; flex-direction: column; gap: 9px; }
.m-news__tag { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--m-accent-deep); padding: 4px 10px; border: 1px solid var(--m-accent); align-self: flex-start; border-radius: 999px; }
.m-news__title { font-family: var(--m-display); font-size: 20px; font-weight: 500; line-height: 1.25; margin: 2px 0 0; color: var(--m-ink); letter-spacing: -0.01em; text-wrap: balance; }
.m-news__date { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--m-text-mute); }
.m-news__play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 2; }
.m-news__play span { width: 58px; height: 58px; border-radius: 50%; background: rgba(212,154,58,0.94); color: #0d2c50; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 28px rgba(0,0,0,0.32); transition: transform 0.3s var(--m-ease); }
.m-news:hover .m-news__play span { transform: scale(1.12); }
.m-news__play svg { width: 22px; height: 22px; margin-left: 3px; }
.m-news__img iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 1; }
.m-news__img--video { background: var(--m-ink-deep); }
.m-news__gal { position: absolute; top: 12px; right: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; background: rgba(13,44,80,0.7); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: 0.03em; padding: 4px 9px; border-radius: 20px; backdrop-filter: blur(2px); }
.m-news__gal svg { width: 14px; height: 14px; }
.m-news__banner { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: linear-gradient(150deg,#123963,#0a2342); z-index: 0; }
.m-news__banner svg { width: 82px; height: 82px; color: var(--m-accent-soft); stroke-width: 1.3; position: relative; z-index: 1; }
.m-news__banner::after { content: ""; position: absolute; top: 50%; left: 50%; width: 156px; height: 156px; transform: translate(-50%,-50%); border: 1px solid rgba(232,201,138,0.25); border-radius: 50%; }
/* ── ОБЛОЖКА-ПОСТЕР по рубрике (заголовок + дата; для новостей без своего фото и как фолбэк под фото) ── */
.m-news__cover { position: absolute; inset: 0; z-index: 0; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 20px 22px 18px; background: linear-gradient(150deg,#1d3f6b 0%,#0a2342 78%); --cov: #c9a96a; }
.m-news__cover::before { content: ""; position: absolute; width: 240px; height: 240px; top: -86px; right: -86px; border-radius: 50%; background: var(--cov); opacity: 0.18; filter: blur(50px); }
.m-news__cover::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 62%; background: linear-gradient(to top, rgba(6,20,40,0.55), transparent); }
.m-news__cover-head { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.m-news__cover-tag { font-size: 10.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(232,201,138,0.92); }
.m-news__cover-ic { width: 26px; height: 26px; color: var(--cov); flex: none; opacity: 0.92; }
.m-news__cover-foot { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 8px; }
.m-news__cover-title { font-family: var(--m-display); font-weight: 500; font-size: 20px; line-height: 1.18; letter-spacing: -0.01em; color: #f6f1e6; text-wrap: balance; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.m-news__cover-title::before { content: ""; display: block; width: 30px; height: 2px; background: var(--cov); margin-bottom: 11px; opacity: 0.92; }
.m-news__cover-date { font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cov); }
.m-news:hover .m-news__cover::before { opacity: 0.26; transition: opacity 0.5s var(--m-ease); }
.m-news__cover--fest { --cov: #d8b46a; } .m-news__cover--event { --cov: #c9a96a; } .m-news__cover--sport { --cov: #7aa589; } .m-news__cover--sci { --cov: #7390bf; } .m-news__cover--grad { --cov: #cf9a5c; } .m-news__cover--pre { --cov: #cf8a90; } .m-news__cover--ann { --cov: #a0a2b4; }
/* видео-карточки: центр занимает кнопка play — заголовок на постере прячем, оставляем рубрику и дату */
.m-news__img--video .m-news__cover-title { display: none; }
.m-news__excerpt { font-size: 14px; line-height: 1.55; color: var(--m-text-mute); margin: 6px 0 0; text-wrap: pretty; }

/* ── REVIEWS ── */
.m-section--reviews { background: var(--m-paper); }
.m-rev-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-bottom: 40px; }
.m-rev-source { display: flex; flex-direction: column; gap: 10px; padding: 24px; background: var(--m-paper-warm); border: 1px solid var(--m-rule); transition: border-color 0.2s, transform 0.2s; }
.m-rev-source:hover { border-color: var(--m-accent); transform: translateY(-2px); }
.m-rev-source__name { font-size: 13px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--m-text-mute); }
.m-rev-source__score { font-family: var(--m-display); font-size: 46px; font-weight: 500; line-height: 1; color: var(--m-ink); letter-spacing: -0.02em; }
.m-rev-source__score small { font-size: 18px; color: var(--m-text-mute); font-weight: 400; }
.m-rev-source__count { font-size: 14px; color: var(--m-text-mute); padding-top: 12px; border-top: 1px solid var(--m-rule); }
.m-quotes { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; }
.m-quote { margin: 0; padding: 24px; background: var(--m-paper-warm); border-left: 3px solid var(--m-accent); position: relative; }
.m-quote::before { content: "\201C"; position: absolute; top: -6px; left: 16px; font-family: var(--m-display); font-size: 84px; line-height: 1; color: var(--m-accent); opacity: 0.15; pointer-events: none; }
.m-quote p { font-family: var(--m-display); font-style: italic; font-size: 17px; line-height: 1.42; color: var(--m-ink); margin: 0 0 16px; text-wrap: pretty; }
.m-quote footer { display: flex; flex-direction: column; gap: 3px; font-size: 13px; color: var(--m-text-mute); }
.m-quote footer span:first-child { font-weight: 600; color: var(--m-ink); }

/* ── PARTNERS (логотип-стена) ── */
.m-section--partners { background: var(--m-paper); padding: 60px 0; }
.m-partners { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.m-partner { display: flex; flex-direction: column; gap: 12px; background: var(--m-paper); border: 1px solid var(--m-rule); padding: 16px 18px 18px; transition: border-color 0.25s, transform 0.3s var(--m-ease), box-shadow 0.3s var(--m-ease); }
.m-partner:hover { border-color: var(--m-accent); transform: translateY(-3px); box-shadow: 0 18px 38px -18px rgba(10,35,72,0.22); }
.m-partner__plate { position: relative; height: 82px; background: #fff; border: 1px solid var(--m-rule-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; overflow: hidden; padding: 10px 16px; }
.m-partner__plate::after { content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 42px; height: 3px; background: var(--m-gold-metal); }
.m-partner__logo { max-height: 52px; max-width: 80%; width: auto; object-fit: contain; }
.m-partner__fallback { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.m-partner__mark { font-family: var(--m-display); font-weight: 600; font-size: clamp(20px,2.4vw,25px); line-height: 1; letter-spacing: 0.01em; color: var(--m-ink); text-align: center; text-wrap: balance; }
.m-partner__mark em { font-style: italic; font-weight: 500; }
.m-partner__plate small { font-size: 9.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--m-accent-deep); }
.m-partner__type { font-size: 10.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--m-accent-deep); }
.m-partner__name { font-family: var(--m-display); font-size: 18px; font-weight: 500; line-height: 1.18; letter-spacing: -0.01em; color: var(--m-ink); margin: 0; text-wrap: balance; }
.m-partner__full { font-size: 12.5px; line-height: 1.45; color: var(--m-text-mute); margin: 0; text-wrap: pretty; }
.m-partner__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: auto; padding-top: 4px; }
.m-partner__tags span { font-size: 11px; font-weight: 600; letter-spacing: 0.02em; color: var(--m-ink); padding: 4px 11px; border: 1px solid var(--m-rule); border-radius: 999px; background: var(--m-paper-warm); }
.m-partners-intl { position: relative; overflow: hidden; margin-top: 18px; background: var(--m-ink-deep); color: #fff; padding: 30px 36px; display: grid; grid-template-columns: auto 1fr; gap: 14px 40px; align-items: center; }
.m-partners-intl::before { content: ""; position: absolute; top: -120px; right: -90px; width: 320px; height: 320px; background: radial-gradient(circle, rgba(212,154,58,0.18), transparent 70%); pointer-events: none; }
.m-partners-intl__label { position: relative; font-family: var(--m-display); font-style: italic; font-weight: 500; font-size: clamp(22px,2.4vw,30px); line-height: 1.05; letter-spacing: -0.01em; color: var(--m-accent-soft); white-space: nowrap; }
.m-partners-intl__copy { position: relative; margin: 0; font-size: 16px; line-height: 1.55; color: rgba(255,255,255,0.86); text-wrap: pretty; }
.m-partners-intl__copy strong { color: #fff; font-weight: 600; border-bottom: 1.5px solid var(--m-accent); padding-bottom: 1px; }
.m-partners-intl__copy a { color: var(--m-accent-soft); font-weight: 600; border-bottom: 1.5px solid var(--m-accent); padding-bottom: 1px; transition: color 0.2s, border-color 0.2s; }
.m-partners-intl__copy a:hover { color: #fff; border-color: var(--m-accent-soft); }
@media (max-width: 680px) { .m-partners-intl { grid-template-columns: 1fr; padding: 24px; } }

/* ── CONTACTS ── */
.m-section--contacts { background: var(--m-paper-warm); }
.m-contact-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-bottom: 40px; }
.m-contact-card { display: flex; flex-direction: column; gap: 10px; padding: 26px; background: var(--m-paper); border-top: 3px solid var(--m-accent); }
.m-contact-card--cta { background: var(--m-ink); color: #fff; border-top-color: var(--m-accent-soft); }
.m-contact-card__name { font-family: var(--m-display); font-size: 19px; font-weight: 500; margin: 0 0 2px; color: var(--m-ink); }
.m-contact-card--cta .m-contact-card__name { color: #fff; }
.m-contact-card__phone { font-size: 22px; font-weight: 600; color: var(--m-ink); transition: color 0.2s; }
.m-contact-card__phone:hover { color: var(--m-accent-deep); }
.m-contact-card__faq { margin-top: auto; align-self: flex-start; white-space: nowrap; padding-top: 16px; font-size: 15px; font-weight: 600; color: var(--m-ink); border-bottom: 1.5px solid var(--m-accent); padding-bottom: 3px; transition: color 0.2s; }
.m-contact-card__faq svg { width: 16px; height: 16px; margin-left: 8px; vertical-align: -3px; color: var(--m-accent-deep); transition: transform 0.25s var(--m-ease); }
.m-contact-card__faq:hover { color: var(--m-accent-deep); }
.m-contact-card__faq:hover svg { transform: translateX(3px); }
.m-contact-card__mail { font-size: 15px; color: var(--m-text-mute); border-bottom: 1px solid var(--m-rule); padding-bottom: 2px; align-self: flex-start; transition: color 0.2s, border-color 0.2s; }
.m-contact-card__mail:hover { color: var(--m-accent-deep); border-color: var(--m-accent); }
.m-contact-card__addr { font-size: 16px; line-height: 1.5; color: var(--m-ink); margin: 0; }
.m-contact-card__hint { font-size: 13px; color: var(--m-text-mute); margin: 0; }
.m-contact-card__copy { font-size: 15px; line-height: 1.5; color: rgba(255,255,255,0.8); margin: 0 0 8px; }
.m-contact-card--cta .m-btn { align-self: flex-start; }
.m-contact-card--cta .m-btn:first-of-type { margin-top: auto; }
.m-contact-card--cta .m-btn + .m-btn { margin-top: 10px; }
.m-map { position: relative; display: block; width: 100%; aspect-ratio: 21/7; border: 1px solid var(--m-rule); background: var(--m-paper-cool); overflow: hidden; }
.m-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(0.2); }
.m-map__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s var(--m-ease,ease); }
.m-map:hover .m-map__img { transform: scale(1.03); }
.m-map::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 55%, rgba(13,30,58,0.45) 100%); pointer-events: none; }
.m-map__open { position: absolute; bottom: 20px; right: 20px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; background: var(--m-ink-deep); color: #fff; font-size: 13px; font-weight: 600; border-radius: 999px; box-shadow: 0 6px 22px rgba(10,35,72,0.28); transition: background 0.25s, transform 0.25s var(--m-ease); }
.m-map__open:hover { background: var(--m-accent-deep); transform: translateY(-2px); }
/* Живая встроенная Яндекс-карта */
.m-map--live { aspect-ratio: auto; height: 440px; }
.m-map--live::after { display: none; }
.m-map--live iframe { filter: none; }
@media (max-width: 980px) { .m-map--live { height: 380px; } }
@media (max-width: 560px) { .m-map--live { height: 320px; } }

/* ── ОНЛАЙН-ОСМОТР ШКОЛЫ (360° тур) ── */
.m-tour { position: relative; display: block; margin-top: 18px; min-height: 340px; overflow: hidden; border: 1px solid var(--m-rule); isolation: isolate; }
.m-tour__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--m-img); transition: transform 0.6s var(--m-ease); z-index: 0; }
.m-tour:hover .m-tour__bg { transform: scale(1.04); }
.m-tour__veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(105deg, rgba(10,35,72,0.92) 0%, rgba(10,35,72,0.72) 42%, rgba(10,35,72,0.28) 100%); }
.m-tour__body { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; max-width: 460px; padding: 44px 40px; }
.m-tour__badge { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--m-ink); background: var(--m-gold-metal); padding: 7px 14px; border-radius: 999px; }
.m-tour__badge svg { width: 16px; height: 16px; }
.m-tour__title { font-family: var(--m-display); font-weight: 500; font-size: clamp(26px,3vw,38px); line-height: 1.08; letter-spacing: -0.01em; color: #fff; }
.m-tour__copy { font-size: 16px; line-height: 1.55; color: rgba(255,255,255,0.82); }
.m-tour__cta { display: inline-flex; align-items: center; gap: 12px; margin-top: 6px; font-size: 15px; font-weight: 600; color: #fff; }
.m-tour__play { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--m-accent); color: var(--m-ink); transition: transform 0.25s var(--m-ease), background 0.25s; }
.m-tour__play svg { width: 18px; height: 18px; margin-left: 2px; }
.m-tour:hover .m-tour__play { transform: scale(1.08); background: var(--m-accent-soft); }
@media (max-width: 560px) { .m-tour__body { padding: 32px 26px; } }

/* ── RESPONSIVE ── */
@media (max-width: 980px) {
  .h-hero__stats { grid-template-columns: repeat(2,1fr); }
  .m-intro { grid-template-columns: 1fr; gap: 36px; }
  .m-adv-grid { grid-template-columns: repeat(2,1fr); }
  .m-prog-grid { grid-template-columns: repeat(2,1fr); }
  .m-mods { grid-template-columns: repeat(2,1fr); }
  .m-res-grid { grid-template-columns: repeat(2,1fr); }
  .m-news-grid, .m-rev-grid, .m-quotes, .m-contact-grid { grid-template-columns: 1fr 1fr; }
  .m-partners { grid-template-columns: repeat(2,1fr); }
  .m-map { aspect-ratio: 16/10; }
}
@media (max-width: 680px) {
  .m-adv-grid, .m-prog-grid, .m-mods, .m-res-grid,
  .m-news-grid, .m-rev-grid, .m-quotes, .m-contact-grid, .m-partners { grid-template-columns: 1fr; }
  .m-quotes, .m-rev-grid { grid-template-columns: 1fr; }
  /* статистика hero — компактная сетка 2×2, а не длинный столбец */
  .h-hero__stats { grid-template-columns: 1fr 1fr; gap: 22px 20px; }
}
@media (max-width: 560px) {
  .h-hero { min-height: 0; padding: 40px 0 36px; }
  .h-hero__title { margin: 8px 0 14px; line-height: 1.08; }
  .h-hero__lede { font-size: 16px; margin-bottom: 22px; }
  .h-hero__cta { margin-bottom: 28px; }
  /* На мобильном оставляем 2 кнопки: «Записаться» + «Программы»;
     FAQ доступен в мобильном меню. Шрифт первой кнопки чуть меньше —
     длинный текст «Записаться на ознакомительный день» не переносится. */
  .h-hero__cta .m-btn:nth-child(1) { font-size: 14px; }
  .h-hero__cta .m-btn:nth-child(3) { display: none; }
  .h-hero__stats { padding-top: 18px; gap: 16px 18px; }
  .h-hero__stats b { font-size: 32px; }
  .h-hero__stats span { font-size: 12px; }
  /* блок питания «День в школе» — в столбик, чипы слева */
  .m-day-meals { flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px 18px; }
  .m-day-meals__items { margin-left: 0; }
  /* международный блок партнёров */
  .m-partners-intl__label { white-space: normal; }
}

/* ── КОМПАКТНЫЕ КАРТОЧКИ И БЛОКИ ГЛАВНОЙ НА ТЕЛЕФОНЕ ── */
@media (max-width: 600px) {
  /* Декоративные угловые рамки уходят на -18px за границу блока; без clip они создают
     горизонтальную полосу прокрутки. Ограничиваем overflow на уровне секции. */
  .m-section--intro { overflow: hidden; }
  /* hero: кадрируем на фронтон с надписью «ЛИДЕР»; фото слегка отдалено, фон затемнён ради читаемости */
  .h-hero__bg { object-position: 68% center; filter: saturate(0.8) contrast(1.04) brightness(0.8); transform: scale(1.0); animation: none; }
  .h-hero__veil { background: linear-gradient(118deg, rgba(8,28,54,0.92) 0%, rgba(8,28,54,0.82) 46%, rgba(8,28,54,0.66) 100%); }
  .h-hero__content { position: relative; z-index: 2; }
  .h-hero__title { text-shadow: 0 2px 26px rgba(5,15,34,0.78); }
  .h-hero__lede { text-shadow: 0 1px 16px rgba(5,15,34,0.7); }
  /* статистика: две колонки разведены по краям, компактно */
  .h-hero__stats { grid-template-columns: auto auto; justify-content: space-between; gap: 16px 20px; }
  .h-hero__stats li:nth-child(even) { text-align: right; align-items: flex-end; }
  .h-hero__stats b { font-size: 30px; }
  /* интро: меньше зазор, фото ниже */
  .m-intro { gap: 22px; }
  .m-intro__media { aspect-ratio: 16/10; }
  .m-intro__copy { font-size: 15.5px; line-height: 1.6; margin-bottom: 14px; }
  /* программы: горизонтальная карточка (фото слева, текст справа) — короче и плотнее */
  .m-prog-grid { gap: 12px; }
  .m-prog { flex-direction: row; align-items: stretch; }
  .m-prog__img { flex: 0 0 122px; aspect-ratio: auto; }
  .m-prog__body { padding: 14px 16px; gap: 5px; }
  .m-prog__name { font-size: 19px; }
  .m-prog__copy { font-size: 13px; margin-bottom: 8px; }
  /* преимущества: плотнее поля */
  .m-adv { padding: 20px 18px 22px; gap: 9px; }
  .m-adv__icon { width: 36px; height: 36px; }
  .m-adv__title { font-size: 18px; }
  /* день в школе: модули плотнее */
  .m-mods { gap: 12px; }
  .m-mod { padding: 16px 18px 16px; gap: 8px; }
  .m-mod__head { padding-bottom: 11px; }
  /* партнёры */
  .m-partners { gap: 12px; }
  .m-partner { padding: 14px 16px 16px; gap: 10px; }
  .m-partners-intl { padding: 22px 20px; gap: 12px; margin-top: 12px; }
  /* новости */
  .m-news-grid { gap: 22px; }
  .m-news__img { margin-bottom: 14px; }
  .m-news__cover-title { -webkit-line-clamp: 3; }
  /* контакты */
  .m-contact-grid { gap: 12px; }
  .m-contact-card { padding: 22px 20px; }
  /* осмотр-тур ниже */
  .m-tour { min-height: 280px; }
  /* на телефоне показываем только первые 4 партнёра — короче и чище */
  .m-partners .m-partner:nth-child(n+5) { display: none; }
}
