/* =========================================================
   MIRIDEA · страница «Контакты» v1.0 (/contacts/)
   Отступы как на остальных страницах: 60px между блоками, 36px от заголовка до содержимого.
   ========================================================= */
.m-ct-hero, .m-ct-links, .m-ct-docs, .m-ct-map {
  --ease: cubic-bezier(.22, 1, .36, 1); --back: cubic-bezier(.34, 1.56, .64, 1); --gap: 60px;
}
.m-ct-links, .m-ct-docs, .m-ct-map { padding-block: var(--gap); }
@media (max-width: 768px) { .m-ct-hero, .m-ct-links, .m-ct-docs, .m-ct-map { --gap: 40px; } }
.m-sec-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 12px 60px; align-items: end; margin-bottom: 36px; }
.m-sec-head .title2 { width: auto; margin: 0; line-height: 1.2; }
.m-sec-head__text { margin: 0; padding-bottom: 4px; font-size: 15px; line-height: 1.65; color: #8090aa; max-width: 62ch; }
@media (max-width: 992px) { .m-sec-head { grid-template-columns: 1fr; } }

/* ---------- 1. Главный экран ---------- */
.m-ct-hero { position: relative; overflow: hidden; padding: 140px 0 var(--gap); }
@media (max-width: 992px) { .m-ct-hero { padding-top: 100px; } }
.m-ct-hero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.m-ct-hero__bg i { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .45; }
.m-ct-hero__bg i:nth-child(1) { width: 420px; height: 420px; left: -140px; top: 40px; background: #c9b6ff; }
.m-ct-hero__bg i:nth-child(2) { width: 360px; height: 360px; right: 4%; top: 0; background: #ffc4d4; }
.m-ct-hero__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 40px 70px; align-items: center; }
@media (max-width: 900px) { .m-ct-hero__grid { grid-template-columns: 1fr; } }
.m-ct-hero__title { margin: 0 0 26px; font-size: clamp(32px, 3.6vw, 54px); line-height: 1.15; font-weight: 500; text-transform: uppercase; color: #39404b; }
.m-ct-hero__title span {
  display: inline-block; padding-bottom: .06em; font-weight: 700;
  background: linear-gradient(169deg, #f93c3c, #cd0973); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.m-ct-quote { position: relative; margin: 0 0 32px; padding: 4px 0 4px 24px; max-width: 56ch; }
.m-ct-quote::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 4px; background: linear-gradient(#a068f8, #f93c3c); }
.m-ct-quote blockquote { margin: 0 0 10px; font-size: 18px; line-height: 1.6; color: #39404b; }
.m-ct-quote figcaption { font-size: 14px; color: #8090aa; }
.m-ct-quote figcaption b { color: #39404b; font-weight: 500; }

/* кнопка: «дыхание» + блик раз в 5 с, при наведении — цвет, масштаб и тень */
.m-ct-cta {
  position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 14px; min-height: 64px; padding: 0 34px;
  border-radius: 10px 26px 10px 26px; background: linear-gradient(120deg, #f93c3c, #cd0973); color: #fff; text-decoration: none;
  font-size: 17px; font-weight: 700; letter-spacing: .01em;
  box-shadow: 0 16px 34px -18px rgba(249, 60, 60, .9);
  animation: m-ct-breathe 3s ease-in-out infinite;
  transition: background .3s, box-shadow .3s;
}
.m-ct-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, #a068f8, #3f55c3); opacity: 0; transition: opacity .3s; }
.m-ct-cta { isolation: isolate; }
.m-ct-cta::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .5), transparent); transform: skewX(-20deg); animation: m-ct-sweep 5s ease-in-out infinite; }
.m-ct-cta svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--ease); }
.m-ct-cta:hover { animation: none; transform: scale(1.05); box-shadow: 0 26px 46px -18px rgba(63, 85, 195, .75); color: #fff; }
.m-ct-cta:hover::before { opacity: 1; }
.m-ct-cta:hover svg { transform: translateX(4px); }
.m-ct-cta { transition: transform .3s var(--ease), box-shadow .3s; }
@keyframes m-ct-breathe { 50% { transform: scale(1.02); } }
@keyframes m-ct-sweep { 0%, 76% { left: -60%; } 100% { left: 130%; } }

/* портрет основателя */
.m-ct-founder { position: relative; margin: 0 auto; width: 100%; max-width: 360px; }
.m-ct-founder__pic {
  position: relative; padding: 6px; border-radius: 14px 40px 14px 40px;
  background: linear-gradient(140deg, #a068f8, #3f55c3 50%, #f93c3c);
  box-shadow: 0 40px 70px -40px rgba(63, 85, 195, .7);
}
.m-ct-founder__pic img { display: block; width: 100%; height: auto; aspect-ratio: 640 / 729; object-fit: cover; border-radius: 10px 35px 10px 35px; }
.m-ct-founder figcaption { display: grid; gap: 2px; margin-top: 16px; text-align: center; }
.m-ct-founder figcaption b { font-size: 18px; color: #39404b; }
.m-ct-founder figcaption span { font-size: 14px; color: #8090aa; }
.m-ct-founder__badge {
  position: absolute; left: -34px; bottom: 90px; padding: 12px 16px; border-radius: 8px 20px 8px 20px; background: #fff;
  box-shadow: 0 20px 40px -20px rgba(20, 26, 60, .45); font-size: 12px; line-height: 1.3; color: #8090aa; animation: m-ct-float 6s ease-in-out infinite;
}
.m-ct-founder__badge b { display: block; font-size: 26px; line-height: 1.15; padding-bottom: .04em; background: linear-gradient(169deg, #f93c3c, #cd0973); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
@media (max-width: 600px) { .m-ct-founder { max-width: 300px; } .m-ct-founder__badge { left: -10px; } }
@keyframes m-ct-float { 50% { transform: translateY(-8px); } }

/* каскадное появление: 0.1 → 0.2 → 0.3 → 0.4 с */
html.m-js .m-ct-up { opacity: 0; transform: translateY(26px); }
html.m-js .m-ct-hero.is-ready .m-ct-up { animation: m-ct-up .8s var(--ease) both; animation-delay: calc(.1s + var(--i, 0) * .1s); }
@keyframes m-ct-up { to { opacity: 1; transform: none; } }

/* ---------- 2. Контакты и профили ---------- */
.m-ct-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 860px) { .m-ct-cols { grid-template-columns: 1fr; } }
.m-ct-col { padding: 30px; border-radius: 10px 30px 10px 30px; background: #fff; border: 1px solid #e4e7f0; }
.m-ct-col__title { margin: 0 0 18px; font-size: 20px; font-weight: 700; color: #39404b; }
.m-ct-col__sub { margin: 22px 0 12px; font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: #8090aa; }
.m-ct-line { display: flex; align-items: center; gap: 16px; padding: 12px 0; text-decoration: none; border-bottom: 1px solid #eef0f6; }
.m-ct-line small { display: block; font-size: 13px; color: #8090aa; }
.m-ct-line b { display: block; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.3; font-weight: 700; color: #39404b; transition: color .3s; }
.m-ct-line:hover b { color: #f93c3c; }
.m-ct-line__ico { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 8px 18px 8px 18px; background: linear-gradient(135deg, #a068f8, #3f55c3); transition: transform .4s var(--back); }
.m-ct-line:hover .m-ct-line__ico { transform: scale(1.1) rotate(-6deg); }
.m-ct-line__ico svg { width: 22px; height: 22px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.m-ct-msg { display: flex; flex-wrap: wrap; gap: 12px; }
.m-ct-brand {
  display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px 10px 12px; border-radius: 8px 18px 8px 18px;
  background: #f5f6fb; border: 1px solid #e4e7f0; text-decoration: none; font-size: 15px; font-weight: 500; color: #39404b;
  transition: border-color .3s, background .3s;
}
.m-ct-brand svg { width: 28px; height: 28px; fill: #8a93ab; transition: fill .3s, transform .5s var(--back); }
.m-ct-brand:hover { background: #fff; border-color: var(--brand); }
.m-ct-brand:hover svg { fill: var(--brand); animation: m-ct-bounce .6s var(--back); transform: scale(1.15); }
@keyframes m-ct-bounce { 0% { transform: scale(1); } 40% { transform: scale(1.3); } 70% { transform: scale(1.05); } 100% { transform: scale(1.15); } }
.m-ct-profile {
  display: flex; align-items: center; gap: 16px; padding: 14px 16px; margin-bottom: 12px; border-radius: 10px 22px 10px 22px;
  background: #f5f6fb; border: 1px solid #e4e7f0; text-decoration: none; transition: background .3s, border-color .3s, translate .4s var(--ease);
}
.m-ct-profile:last-child { margin-bottom: 0; }
.m-ct-profile > span:nth-child(2) { flex: 1; min-width: 0; }
.m-ct-profile b { display: block; font-size: 17px; color: #39404b; }
.m-ct-profile small { display: block; font-size: 13px; color: #8090aa; }
.m-ct-profile__logo { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 8px 18px 8px 18px; background: #fff; border: 1px solid #e4e7f0; transition: transform .5s var(--back), background .3s; }
.m-ct-profile__logo svg { width: 28px; height: 28px; fill: #8a93ab; transition: fill .3s; }
.m-ct-profile__arr { flex: none; width: 20px; height: 20px; fill: none; stroke: #b5bccf; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s, transform .3s var(--ease); }
.m-ct-profile:hover { background: #fff; border-color: var(--brand); translate: 0 -3px; }
.m-ct-profile:hover .m-ct-profile__logo { animation: m-ct-bounce .6s var(--back) both; }
.m-ct-profile:hover .m-ct-profile__logo svg { fill: var(--brand); }
.m-ct-profile:hover .m-ct-profile__arr { stroke: var(--brand); transform: translate(3px, -3px); }
html.m-js .m-ct-up-s { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
html.m-js .m-ct-up-s:nth-child(2) { transition-delay: .12s; }
html.m-js .m-ct-up-s.m-in { opacity: 1; transform: none; }

/* ---------- 3. Документы (тёмная лента, стеклянные карточки) ---------- */
.m-band { position: relative; isolation: isolate; }
.m-band--b { background: radial-gradient(60% 90% at 90% 0%, #2a3170, transparent 70%), radial-gradient(50% 80% at 0% 100%, #3a1748, transparent 70%), #141a3c; }
.m-band--b .title2.m-title-duo span { color: #fff; -webkit-text-fill-color: #fff; }
.m-band--b .m-sec-head__text { color: #aab3e0; }
.m-ct-docs__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 900px) { .m-ct-docs__grid { grid-template-columns: 1fr; } }
.m-ct-doc {
  display: flex; flex-direction: column; padding: 28px 26px; border-radius: 10px 26px 10px 26px; cursor: pointer; text-decoration: none;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(8px);
  transition: translate .4s var(--ease), background .3s, border-color .3s, box-shadow .4s;
}
.m-ct-doc:hover { translate: 0 -5px; background: rgba(255, 255, 255, .11); border-color: rgba(201, 182, 255, .45); box-shadow: 0 26px 50px -30px rgba(0, 0, 0, .7); }
.m-ct-doc__ico { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 20px; border-radius: 8px 20px 8px 20px; background: rgba(255, 255, 255, .08); transition: background .3s; }
.m-ct-doc__ico svg { width: 36px; height: 36px; fill: none; stroke: #c9b6ff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s; transform-origin: 50% 80%; }
.m-ct-doc:hover .m-ct-doc__ico { background: linear-gradient(135deg, #f93c3c, #cd0973); }
.m-ct-doc:hover .m-ct-doc__ico svg { stroke: #fff; animation: m-ct-wiggle .6s ease-in-out; }
@keyframes m-ct-wiggle { 25% { transform: rotate(-8deg); } 60% { transform: rotate(6deg); } 100% { transform: none; } }
.m-ct-doc b { font-size: 18px; line-height: 1.35; color: #fff; }
.m-ct-doc small { margin: 6px 0 22px; font-size: 13px; color: #8f98c8; }
.m-ct-doc__act { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: #ff8fb1; transition: color .3s, gap .3s; }
.m-ct-doc__act svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.m-ct-doc:hover .m-ct-doc__act { color: #fff; gap: 12px; }
html.m-js .m-ct-doc { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease), translate .4s var(--ease), background .3s, border-color .3s, box-shadow .4s; }
html.m-js .m-ct-doc:nth-child(2) { transition-delay: .12s, .12s, 0s, 0s, 0s, 0s; }
html.m-js .m-ct-doc:nth-child(3) { transition-delay: .24s, .24s, 0s, 0s, 0s, 0s; }
html.m-js .m-ct-docs__grid.m-in .m-ct-doc { opacity: 1; transform: none; }

/* ---------- 4. Карта и реквизиты ---------- */
.m-ct-map__box { position: relative; height: 460px; border-radius: 12px 36px 12px 36px; overflow: hidden; background: #e9ebf2; isolation: isolate; }
.m-ct-map__frame { position: absolute; inset: 0; }
.m-ct-map__frame iframe {
  position: absolute; left: 0; top: -60px; width: 124%; height: calc(100% + 120px); /* центр карты (адрес) — на 62% ширины, под пином */ border: 0; pointer-events: none;
  filter: grayscale(1) contrast(1.05) brightness(1.04) blur(10px); transition: filter .5s ease-out;
}
.m-ct-map__frame.is-loaded iframe { filter: grayscale(1) contrast(1.05) brightness(1.04); }
.m-ct-map__box::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(120deg, rgba(160, 104, 248, .12), rgba(249, 60, 60, .06)); }
.m-ct-pin { position: absolute; left: 62%; top: 50%; z-index: 3; width: 48px; height: 60px; margin: -60px 0 0 -24px; opacity: 0; }
.m-ct-pin svg { width: 100%; height: 100%; }
.m-ct-pin svg path { fill: #f93c3c; }
.m-ct-pin svg circle { fill: #fff; }
.m-ct-pin img { position: absolute; left: 50%; top: 22px; width: 18px; height: 18px; margin: -9px 0 0 -9px; object-fit: contain; }
.m-ct-pin__shadow { position: absolute; left: 62%; top: 50%; z-index: 2; width: 26px; height: 8px; margin: -4px 0 0 -13px; border-radius: 50%; background: rgba(20, 26, 60, .35); filter: blur(2px); opacity: 0; transform: scale(.3); }
.m-ct-map__box.is-drop .m-ct-pin { animation: m-ct-drop .9s cubic-bezier(.3, 0, .3, 1) .2s both; }
.m-ct-map__box.is-drop .m-ct-pin__shadow { animation: m-ct-shadow .9s ease-out .2s both; }
@keyframes m-ct-drop { 0% { opacity: 0; transform: translateY(-220px); } 55% { opacity: 1; transform: translateY(0); } 70% { transform: translateY(-18px); } 85% { transform: translateY(0); } 93% { transform: translateY(-5px); } 100% { opacity: 1; transform: none; } }
@keyframes m-ct-shadow { 0% { opacity: 0; transform: scale(.3); } 55% { opacity: 1; transform: scale(1); } 70% { transform: scale(.7); } 100% { opacity: 1; transform: scale(1); } }
.m-ct-req {
  position: absolute; left: 28px; top: 28px; bottom: 28px; z-index: 4; display: flex; flex-direction: column; width: min(380px, calc(100% - 56px)); padding: 28px;
  border-radius: 10px 26px 10px 26px; background: rgba(255, 255, 255, .9); backdrop-filter: blur(10px); box-shadow: 0 30px 60px -36px rgba(20, 26, 60, .6);
}
.m-ct-req__title { margin: 0 0 16px; font-size: 20px; font-weight: 700; color: #39404b; }
.m-ct-req dl { margin: 0; display: grid; gap: 4px; }
.m-ct-req dt { font-size: 13px; color: #8090aa; }
.m-ct-req dd { margin: 0 0 10px; font-size: 15px; line-height: 1.45; font-weight: 500; color: #39404b; }
.m-ct-req__open { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #5b4bd6; text-decoration: none; }
.m-ct-req__open svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s; }
.m-ct-req__open:hover { color: #f93c3c; }
.m-ct-req__open:hover svg { transform: translate(3px, -3px); }
@media (max-width: 760px) {
  .m-ct-map__box { height: auto; display: flex; flex-direction: column; }
  .m-ct-map__frame { position: relative; height: 300px; order: 1; overflow: hidden; }
  .m-ct-map__frame iframe { width: 100%; }
  .m-ct-pin, .m-ct-pin__shadow { left: 50%; top: 150px; }
  .m-ct-req { position: relative; inset: auto; width: auto; order: 2; border-radius: 0; background: #fff; }
}

.header__menu a[aria-current="page"] { color: #f93c3c; }

@media (prefers-reduced-motion: reduce) {
  .m-ct-hero *, .m-ct-links *, .m-ct-docs *, .m-ct-map * { animation: none !important; }
  html.m-js .m-ct-up, html.m-js .m-ct-up-s, html.m-js .m-ct-doc, .m-ct-pin, .m-ct-pin__shadow { opacity: 1; transform: none; }
}

/* ---------- Страница-документ (/consent/) ---------- */
.m-doc-page { padding: 140px 0 60px; }
@media (max-width: 992px) { .m-doc-page { padding-top: 100px; } }
.m-doc-page h1 { margin: 0 0 30px; font-size: clamp(26px, 2.8vw, 38px); line-height: 1.2; font-weight: 700; text-transform: uppercase; color: #39404b; }
.m-doc-page h1 span { display: inline-block; padding-bottom: .06em; background: linear-gradient(169deg, #f93c3c, #cd0973); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.m-doc-page__body { max-width: 860px; padding: 36px 40px; border-radius: 10px 30px 10px 30px; background: #fff; border: 1px solid #e4e7f0; }
.m-doc-page__body h2 { margin: 26px 0 10px; font-size: 18px; color: #39404b; }
.m-doc-page__body p, .m-doc-page__body li { font-size: 15px; line-height: 1.7; color: #5d6578; }
.m-doc-page__body ul { margin: 0 0 12px; padding-left: 22px; list-style: disc; }
.m-doc-page__body li { list-style: disc; }
.m-doc-page__body a { color: #5b4bd6; }
@media (max-width: 600px) { .m-doc-page__body { padding: 24px 20px; } }

.m-ct-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 28px 0 0; font-size: 14px; color: #8f98c8; }
.m-ct-legal a {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 6px 14px 6px 14px;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14);
  color: #e3e6ff; text-decoration: underline; text-decoration-color: rgba(255, 143, 177, .6); text-underline-offset: 3px;
  transition: color .3s, background .3s, border-color .3s;
}
.m-ct-legal a::before { content: "§"; font-weight: 700; color: #ff8fb1; text-decoration: none; }
.m-ct-legal a::after { content: "↗"; font-size: 13px; color: #ff8fb1; }
.m-ct-legal a:hover { color: #fff; background: rgba(255, 255, 255, .1); border-color: rgba(255, 143, 177, .5); }
