/* ===== CSS RESET ===== */
:root {
  /* === Монохромная палитра с яркими акцентами === */
  --base-bg: #f3f5fa;
  --card-bg: #e8eaf1;
  --neu-light: #ffffff;
  --neu-dark: #cad1df;
  --neu-shadow-dark: #c1cadb;
  --neu-shadow-light: #f8faff;
  --text-main: #232630;
  --text-light: #fff;
  --heading-main: #181c25;
  --primary: #2454ff;
  --primary-dark: #1532a0;
  --accent: #00d5b6;
  --accent-dark: #019f84;
  --btn-gradient: linear-gradient(100deg, #2454ff 0%, #00d5b6 100%);
  --btn-gradient-hover: linear-gradient(100deg, #1532a0 0%, #019f84 100%);
  --btn-shadow: 0 4px 16px 0 rgba(36,84,255,0.16);
  --danger: #f35469;
  --mono-gradient: linear-gradient(120deg, #ecf0fa 0%, #dbe3f3 100%);
  --glassmorph: rgba(255,255,255,0.25);
  --border-radius-lg: 30px;
  --border-radius-md: 19px;
  --border-radius-sm: 9px;
  --gap-x: 36px;
  --gap-y: 32px;
  --container-padding: 2.5vw;
  --header-height: 70px;
  --transition: .33s cubic-bezier(.65,-0.26,.35,1.48);
  --shadow-neu: 6px 6px 22px var(--neu-shadow-dark), -6px -6px 22px var(--neu-shadow-light);
  --shadow-hover: 0 4px 36px 0 rgba(36,84,255,.15);
  --read-more-bg: linear-gradient(90deg, #2454ff 40%, #00d5b6 120%);
  --read-more-color: #fff;
  --input-bg: #e8eaf1;
  --input-border: #b6bcd8;
  --input-focus-border: #2454ff;
  --link-main: #2454ff;
  --link-hover: #00d5b6;
  --footer-bg: #e1e5f0;
  --footer-text: #313343;
  --footer-link-hover: #2454ff;
}

html {
  box-sizing: border-box;
  scroll-behavior: smooth;
}
*, *:before, *:after {
  box-sizing: inherit;
}

body {
  background: var(--base-bg);
  font-family: 'Rubik', Arial, sans-serif;
  color: var(--text-main);
  margin: 0;
  padding: 0;
  font-size: 1.1rem;
  letter-spacing: .01em;
  line-height: 1.65;
}

.container {
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

/* ====== Шрифты ====== */
h1, h2, h3, h4, h5, h6,
.section-title {
  font-family: 'Manrope', 'Segoe UI', Arial, sans-serif;
  color: var(--heading-main);
  margin-top: 0;
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.18;
}
h1 { font-size: 2.95rem; }
h2, .section-title { font-size: 2.1rem; margin-bottom: 1.1em; }
h3 { font-size: 1.22rem; margin-bottom: 0.7em; }
h4, h5, h6 { margin-bottom: 0.5em; }
p { margin: 0.3em 0 1.1em 0; }
a {
  color: var(--link-main);
  text-decoration: none;
  transition: color 0.2s;
  font-weight: 500;
  cursor: pointer;
}
a:hover, a:focus {
  color: var(--link-hover);
  text-decoration: underline;
}

/* ========== HEADER & NAVIGATION ========== */
.header {
  position: fixed;
  top: 0; left: 0; width: 100vw;
  height: var(--header-height);
  background: var(--neu-light);
  box-shadow: 0 2px 18px 0 rgba(140,150,180,.09), 0 1.5px 0 #e7e9f2;
  z-index: 50;
  display: flex; align-items: center;
}
.header-container {
  display: flex; align-items: center; justify-content: space-between;
  height: 100%;
}
.logo-text {
  font-family: 'Manrope',sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--primary);
  text-shadow: 1px 1px 7px rgba(36,84,255,.07);
}
.main-nav {
  display: flex; align-items: center;
}

.nav-list {
  display: flex; flex-wrap: wrap;
  gap: 16px;
  list-style: none;
  margin: 0; padding: 0;
}
.nav-list li a {
  padding: 6px 16px;
  border-radius: var(--border-radius-sm);
  font-size: 0.8rem;
  color: var(--text-main);
  transition: background var(--transition), color var(--transition);
}
.nav-list li a:hover {
  background: var(--card-bg);
  color: var(--primary);
}

/* ======= SECTION BASE NEUMORPHIC ======= */
.neu-section {
  padding: 72px 0 58px 0;
  box-sizing: border-box;
}
@media (max-width: 640px) {
  .neu-section { padding: 52px 0 44px 0; }
}

/* ===== PARALLAX/GLOSSY BACKGROUNDS ===== */
.hero-section {
  min-height: 54vw;
  min-height: min(640px, 60vw);
  display: flex; align-items: center; position: relative;
  background-position: center; background-repeat: no-repeat; background-size: cover;
  background-attachment: fixed;
  padding-top: var(--header-height);
}
.hero-section:before {
  content:'';
  position: absolute; left:0; top:0;
  width:100%; height:100%;
  background: linear-gradient(rgba(0,0,0,0.56),rgba(0,0,0,0.54));
  pointer-events:none;
  z-index:1;
}
.hero-content {
  max-width: 650px;
  padding: 60px 44px 64px 44px;
  position: relative;
  z-index: 2;
  background: rgba(35,38,48,0.22);
  border-radius: var(--border-radius-lg);
  box-shadow: 0 8px 46px 0 rgba(0,0,0,.16);
  backdrop-filter: blur(8px);
  animation: hero-parallax 2.1s cubic-bezier(.27,1.25,.48,.84) 1;
}
@media (max-width: 860px) {
  .hero-content { padding: 34px 20px; }
}
.hero-content h1,
.hero-content p {
  color: var(--text-light) !important;
  text-shadow: 0 2px 20px rgba(30,30,30,0.23);
}
.hero-content p {
  font-size: 1.22rem; letter-spacing: .01em;
}
@keyframes hero-parallax {
  0% {transform: translateY(25px) scale(.975);}
  70% {transform: translateY(-4px) scale(1.01);}
  100% {transform: none;}
}

/* ========== BUTTONS ========== */
.btn, button, input[type='submit'] {
  display: inline-block;
  font-family: 'Manrope', sans-serif;
  font-size: 1.11em;
  font-weight: 600;
  color: #fff;
  letter-spacing: .01em;
  padding: 12px 34px;
  background: var(--btn-gradient);
  border: none;
  border-radius: var(--border-radius-lg);
  box-shadow: var(--btn-shadow);
  cursor: pointer;
  outline: none;
  transition: all .23s cubic-bezier(.75, 0, .20,1.22),
              box-shadow .24s cubic-bezier(.55, .55, .42, 1.2);
  margin-top: 18px;
  margin-bottom: 6px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.btn:active, button:active {
  transform: scale(0.98);
}
.btn:hover, button:hover,
input[type='submit']:hover, .btn:focus {
  background: var(--btn-gradient-hover);
  color: #fff;
  box-shadow: 0 6px 30px 0 rgba(36,84,255,0.18);
  filter: brightness(.98) contrast(1.09) drop-shadow(0 4px 6px #2454ff44);
}
.btn-neu {
  background: var(--card-bg);
  color: var(--primary) !important;
  box-shadow: var(--shadow-neu);
  border: 1px solid transparent;
}
.btn-neu:hover {
  background: var(--neu-dark);
  color: var(--primary-dark) !important;
}

a.btn { text-decoration: none; }
.btn[disabled], button[disabled], input[type='submit'][disabled] {
  opacity: 0.58;
  cursor: not-allowed;
}

/* "Читать далее" */
.read-more, .a-read-more {
  display: inline-block;
  background: var(--read-more-bg);
  color: var(--read-more-color);
  padding: 7px 23px;
  border-radius: var(--border-radius-sm);
  box-shadow: 0 3px 14px 0 rgba(36,84,255,.09);
  font-family: 'Manrope',sans-serif;
  font-weight: 600;
  font-size: 1em;
  margin-top: 12px;
  margin-bottom: 8px;
  letter-spacing: .023em;
  text-align: center;
  cursor: pointer;
  transition: transform 0.27s cubic-bezier(.33,1.7,.62,.92),
              box-shadow .25s cubic-bezier(.77,-0.25,.33,1.28);
}
.read-more:hover, .a-read-more:hover {
  transform: translateY(-1.5px) scale(1.03) rotate(-1deg);  
  background: var(--btn-gradient-hover);
  color: #fff;
  box-shadow: 0 8px 20px 0 rgba(0,213,182, .15);
  text-decoration: none;
}

/* ========== СЕКЦИИ: LAYOUT ========== */

.is-two-thirds, .two-columns {
  display: flex;
  flex-flow: row wrap;
  gap: 40px;
  align-items: flex-start;
}
@media (max-width: 980px) {
  .is-two-thirds, .two-columns { flex-direction: column; gap: 24px; }
}
.is-two-thirds > * {
  flex: 2 2 68%;
  min-width: min(350px,100%);
}
.is-two-thirds > .about-image,
.is-two-thirds > .image-container {
  flex: 1 1 32%;
  max-width: 420px;
}

/* ===== КАРТОЧКИ ===== */

.card,
.item,
.testimonial,
.team-member,
.product-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  background: var(--card-bg);
  border-radius: var(--border-radius-md);
  box-shadow: var(--shadow-neu);
  margin: 0 auto 22px auto;
  padding: 24px 32px 26px 32px;
  min-width: 210px;
  max-width: 410px;
  text-align: center;
  transition: box-shadow .24s cubic-bezier(.45,1.45,.4,1.14),
              transform .21s cubic-bezier(.11,1.41,.56,.82);
  position: relative;
}
.card:hover,.item:hover,.testimonial:hover,.team-member:hover,.product-card:hover {
  box-shadow: 0 8px 54px 0 rgba(36,84,255,0.12), 0 2.5px 0 #f8faff;
  transform: translateY(-4px) scale(.9992) rotate(-.15deg);
  z-index:1;
}
.card-image,
.profile-image,
.image-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 130px;
  width: 100%;
  overflow: hidden;
  border-radius: var(--border-radius-md) var(--border-radius-md) 0 0;
  margin-bottom: 14px;
  background: var(--mono-gradient);
  box-shadow: 0 0 0 2px #f0f4fa88;
}
.card-image img,
.profile-image img,
.image-container img {
  height: 100%;
  max-height: 120px;
  width: auto;
  max-width: 92%;
  min-width: 75px;
  object-fit: cover;
  border-radius: 13px;
  margin: 0 auto;
  box-shadow: 0 4px 14px rgba(88,110,176,.08);
  background: #dde1f4;
}
.card-content, .item-content, .testimonial-content, .team-member-content, .product-card-content {
  margin-top: 6px;
  width: 96%;
}
.features-cards, .resources-cards, .awards-cards, .pricing-tiers, .events-timeline, .instructors-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(260px,1fr));
  gap: var(--gap-x) var(--gap-y);
  margin: 0 auto 24px auto;
  justify-items: center;
}
@media (max-width:800px) {
  .features-cards, .resources-cards, .awards-cards, .pricing-tiers, .events-timeline, .instructors-cards {
    grid-template-columns: 1fr;
    gap: 19px;
  }
}

/* Testimonials, Team, etc --- cards always centered! */
.card, .item, .testimonial, .team-member, .product-card {
  text-align: center;
}
.card-image, .profile-image, .image-container { margin: 0 auto 12px auto; }

/* ========== HERO ========== */
.hero-section,
.hero-section[style*="background-image"] {
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
.hero-section .section-title,
.hero-content h1,
.hero-content p {
  color: var(--text-light) !important;
  text-shadow: 0 4px 22px rgba(34,34,34, 0.32);
}
/* ==== Градиент для текстовых overlay ==== */
[data-prompt],
.hero-section {
  position: relative;
}
.hero-section:after {
  display:none;
}

/* ========== CONTACT ========== */
.contact-section .contact-content {
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  gap: 40px;
}
@media (max-width:900px) {
  .contact-section .contact-content { flex-direction: column; }
}
.contact-form {
  background: var(--glassmorph);
  border-radius: var(--border-radius-md);
  box-shadow: 0 2px 16px 0 rgba(80,103,140,0.08);
  max-width: 390px;
  margin: 8px auto;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 19px;
  backdrop-filter: blur(7px);
}
.contact-form label {
  font-family: 'Manrope', sans-serif;
  font-size: 1.02em;
  font-weight: 500;
  letter-spacing: .01em;
  margin-bottom: 6px;
  display: block;
  color: var(--primary-dark);
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
  background: var(--input-bg);
  border: 1.2px solid var(--input-border);
  font-family: 'Rubik', sans-serif;
  font-size: 1.12em;
  width: 100%;
  padding: 9.5px 14px;
  border-radius: var(--border-radius-md);
  color: var(--text-main);
  margin-bottom: 2px;
  outline: none;
  transition: border .22s, box-shadow .22s;
}
.contact-form input:focus,
.contact-form textarea:focus {
  border:1.5px solid var(--input-focus-border);
  box-shadow: 0 0 1.5px 0 var(--primary);
}
.contact-form textarea {
  min-height: 65px;
  resize: vertical;
}
.contact-form button[type='submit'],
.contact-form .btn {
  width: 100%;
  margin-top: 13px;
}
@media (max-width:480px) {
  .contact-form { padding: 15px 0; }
}

/* ============= CAREERS ============= */
.careers-section .careers-content {
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  gap: 40px;
}
.careers-section .image-container {
  max-width: 410px;
  min-width: 180px;
  height: 260px;
}
.careers-section ul { padding-left: 24px; }
@media (max-width:900px) {
  .careers-section .careers-content { flex-direction: column; align-items: flex-start; gap: 22px;}
  .careers-section .image-container { margin-top:12px;}
}

/* ========== PRICING ========== */
.pricing-tiers .card-content {
  padding: 0; width: 100%;
}
.pricing-tiers ul {
  list-style: none; padding-left: 0; margin-bottom: 0.7em;
  color: var(--text-main);
  text-align: left;
  margin-block: 12px 14px;
}
.pricing-tiers .price {
  font-size: 1.24em;
  color: var(--primary-dark);
  font-weight: 700;
  margin-bottom: 10px;
  margin-top: 5px;
}
@media (max-width: 700px) {
  .pricing-tiers .card { padding:18px 8px;}
}

/* ========== FEATURES ========== */
.features-cards .card-content {
  min-height: 120px;
}
.features-cards .card-image {
  min-height: 110px; height: 130px; max-height: 170px;
  background: var(--mono-gradient);
}
.features-cards .card-image img {
  min-height: 78px;
}

/* ========== RESOURCES ========== */
.resources-cards .card-content {
  min-height: 90px;
}
.resources-cards .card-image {
  height: 86px; min-height: 80px; max-height: 94px;
}
.resources-cards .card-image img {
  min-width: 65px; min-height: 54px; max-height: 84px;
}

/* ========== EVENTS & AWARDS ========== */
.events-timeline .card-content { min-height: 86px;}
.events-timeline .card-image { height:120px; }
.awards-cards .card-image   { height: 102px;}
.awards-cards .card-content { min-height: 62px; }

/* ========== INSTRUCTORS ========== */
.instructors-cards .card-content { min-height: 70px; }
.instructors-cards .card-image {
  height: 120px;
}
.instructors-cards .card-image img {
  min-width: 82px; min-height: 82px; max-height: 120px;
}

/* ========== METHODOLOGY ========== */
.methodology-content {
  display: flex; align-items: flex-start; gap: 38px;
}
.methodology-content .image-container {
  width: 470px; max-width: 97%; height: 310px;
}
@media (max-width: 850px) {
  .methodology-content { flex-direction: column; gap: 20px;}
  .methodology-content .image-container { width: 99%; }
}

/* ========= ПЛЕЙСХОЛДЕРЫ ДЛЯ ИЗОБРАЖЕНИЙ =========== */
img {
  display: block;
  border: none;
  background: #e1e5f1;
  max-width: 100%;
  margin: 0 auto;
  object-fit: cover;
  border-radius: 13px;
}

/* ========== FOOTER ========== */
.footer {
  background: var(--footer-bg);
  color: var(--footer-text);
  padding-top: 52px;
  padding-bottom: 22px;
  margin-top: 56px;
  font-size: 1.06em;
  box-shadow: 0 -4px 34px 0 rgba(180,180,220,0.09);
}
.footer-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 34px;
  flex-wrap: wrap;
  width:100%;
}
@media (max-width:750px) {
  .footer-main { flex-direction:column; gap: 16px;}
}
.footer-logo {
  margin-bottom: 13px;
  font-size: 1.32em;
  font-weight: 800;
  color: var(--primary);
  text-shadow: 1px 1px 10px #2144b620;
}
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}
.footer-nav a {
  color: var(--footer-text);
  font-weight: 500;
  font-family: 'Manrope',sans-serif;
  font-size: 1.05em;
  transition: color 0.18s;
}
.footer-nav a:hover,
.footer-nav a:focus {
  color: var(--footer-link-hover);
  text-shadow: 0 3px 11px #2454ff35;
}
.footer-socials {
  margin-top: 18px; margin-bottom: 14px;
  display: flex; gap: 15px; align-items: center;
}
.footer-socials a {
  color: var(--primary);
  background: none;
  font-weight: 700;
  padding: 0 7px;
  border-radius: var(--border-radius-sm);
  font-family: 'Manrope', sans-serif;
  font-size: 1.05em;
  letter-spacing: .02em;
  margin-left: 6px;
  transition: background .18s, color .18s, text-shadow .18s;
}
.footer-socials a:hover {
  background: var(--primary);
  color: #fff;
  text-shadow: 0 2px 10px #00d5b635;
}
.footer-bottom {
  margin-top: 32px;
  color: #9193ac;
  font-size: 1em;
  text-align: left;
}
@media (max-width:560px){
  .footer-nav, .footer-socials { flex-direction: column; gap: 8px;}
  .footer-main {gap: 5px;}
}

/* СЛУЖЕБНЫЕ КЛАССЫ */
.text-center { text-align: center !important; }
.flex-center {
  display: flex; justify-content: center; align-items: center;
}
.hidden { display: none !important; }
.mt24 { margin-top: 24px; }
.mb24 { margin-bottom: 24px; }
.pt100 { padding-top: 100px !important; }
.pb80 { padding-bottom: 80px !important; }
.mb8  { margin-bottom: 8px; }
.gap16 { gap: 16px; }
.gap24 { gap: 24px; }
.maxw-550 { max-width: 550px; }
.m-auto { margin: 0 auto !important; }
.w100 { width: 100%; }
.bg-blur {
  background: var(--glassmorph);
  backdrop-filter: blur(10px);
}

/* Placeholders for privacy and terms for correct offset */
.privacy-content, .terms-content {
  padding-top: 100px !important;
}

/* Background fix for images */
.bg-image {
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* Bg dark overlay */
.overlay-dark {
  background: linear-gradient(rgba(0,0,0,0.56),rgba(0,0,0,0.6)) !important;
  filter: brightness(.92) contrast(1.12);
}

/* ========== SOCIALS ICONS ========== */
.icon-social {
  display: inline-block;
  vertical-align: middle;
  width: 1.17em;
  height: 1.17em;
  margin-right: 8px;
  background-repeat: no-repeat;
  background-size: contain;
}
.icon-fb   { background-image: url('image/icon-fb.jpg'); /* "facebook минимал, монохром, круглый" */ }
.icon-ig   { background-image: url('image/icon-ig.jpg'); /* "instagram минимал, монохром, круглый" */ }
.icon-tw   { background-image: url('image/icon-tw.jpg'); /* "twitter (x) минимал, монохром, круглый" */ }

/* ======== Анимации и плавные переходы Neumorphic ======== */
.card, .btn, .item, .testimonial, .team-member, .product-card, .footer, .section-title {
  transition:
    box-shadow 0.31s cubic-bezier(.42, 1.74, .52, .84),
    background 0.29s cubic-bezier(.57, .14, .62, 1),
    color 0.21s cubic-bezier(.75, .01, .36, 1),
    border 0.19s cubic-bezier(.64, 1.24, .43, 1.38),
    transform .34s cubic-bezier(.38,1.3,.05,.91);
}
@media (hover: hover) {
  .card:hover, .item:hover, .testimonial:hover, .team-member:hover, .product-card:hover {
    transform: translateY(-3px) scale(1.025) rotate(-0.15deg);
    box-shadow: 0 10px 54px 0 rgba(35,84,255,0.14),
                0 4px 10px #f7f8fb;
  }
}

/* ========== SUCCESS PAGE ========== */
body.success-page,
.success-content {
  min-height: 100vh;
  background: var(--base-bg);
  display: flex;
  align-items: center;
  justify-content: center;
}
.success-content {
  margin: 0 auto;
  text-align: center;
  box-shadow: var(--shadow-neu);
  border-radius: var(--border-radius-lg);
  padding: 54px 38px;
  background: var(--card-bg);
  animation: hero-parallax 1.27s cubic-bezier(.27,1.25,.48,.84) 1;
}
@media (max-width:600px){
  .success-content { padding: 32px 2vw; }
}

/* Анимация параллакса и разные nonlinear движения для фокуса: */
@keyframes nonlinearFadeIn {
  0% {transform:translateY(34px) scale(.94) rotate(-2deg); opacity:0;}
  60%{transform:translateY(-7px) scale(1.035) rotate(1deg); opacity:0.81;}
  96%{transform:translateY(2px) scale(1.01) rotate(-0.33deg);}
  100% {transform: none; opacity:1;}
}
.neu-card, .card, .btn, .item, .testimonial, .team-member, .product-card {
  animation: nonlinearFadeIn 1.2s cubic-bezier(.33, 1.84, .55, .94) 1;
}

/* ========== MEDIA QUERIES ========== */
@media (max-width:550px){
  .header { height: 52px;}
  .neu-section { padding-top: 27px; padding-bottom: 24px;}
  h1 { font-size: 1.65em; }
  h2,.section-title { font-size: 1.22em;}
  .footer { padding-top: 24px; }
}
/* Уникальная стилизация для недопущения конфликтов Animate.css оверрайдов */
.card.animate__animated,
.item.animate__animated,
.testimonial.animate__animated,
.team-member.animate__animated,
.product-card.animate__animated {
  will-change: transform, box-shadow, opacity;
}

/* ====== ХОВЕРЫ И ФОКУСЫ ДЛЯ КАРТОЧЕК ====== */
.card:focus-visible,
.item:focus-visible,
.team-member:focus-visible,
.product-card:focus-visible {
  outline: 2.5px solid var(--primary);
  box-shadow: 0 0 0 4px #00d5b663, var(--shadow-neu);
  z-index: 2;
}
a:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

::-webkit-input-placeholder, ::placeholder { color: #799; opacity:.66;}