/*! custom.css */
html { overflow-anchor: none; }
#mainTabContent { overflow-anchor: none; }

body {
  font-family: 'Montserrat', Arial, sans-serif;
  background: #18191A;
  color: #fff;
}

.bg-dark {
  background-color: #232323 !important;
}

.bg-black {
  background-color: #18191A !important;
}

.text-danger {
  color: #E53935 !important;
}

.btn-danger {
  background-color: #E53935;
  border: none;
}
.btn-danger:hover, .btn-danger:focus {
  background-color: #b71c1c;
}

.card.bg-secondary {
  background: #222 !important;
  border: none;
}
.container {
  max-width: 1160px;
}
.hero-section {
  min-height: 50vh;   /* 60 % от высоты экрана; поменяйте по вкусу */
  padding: 1rem 0;    /* чтобы на маленьких экранах секция не схлопнулась */
}
.hero-bg {
  background:
    linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)),
    url('../assets/hero.webp') center/cover no-repeat;
  opacity: 1;
  z-index: 1;
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
}
.hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(24,25,26,0.55);
}
#hero .container {
  position: relative;
  z-index: 2;
}
#hero h1,
#hero p {
  font-family: 'Square721BdExCyr', 'Montserrat', sans-serif;
  font-weight: 700;          /* совпадает с @font-face */
  letter-spacing: .02em;
}

.sticky-top {
  transition: background 0.3s, box-shadow 0.3s;
}

/* Анимации */
.opacity-0 {
  opacity: 0 !important;
}

.fade-in {
  opacity: 1 !important;
  transform: translateY(0);
  transition: opacity 0.4s cubic-bezier(.4,0,.2,1), transform 0.4s cubic-bezier(.4,0,.2,1);
}

section.opacity-0, 
footer.opacity-0 {
  transform: translateY(0px); /* 40px */
}

/* ——— Заголовки секций ——— */
.section-title {
  position: relative;
  font-family: 'Square721BdExCyr', 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(1.4rem, 1.0rem + 1vw, 2.4rem);
  letter-spacing: .03em;
  text-transform: uppercase;
  color: #e34434;
  padding-top: 1.25rem;   
}
@media (max-width: 768px) {
  .section-title {
    font-size: clamp(1.2rem, 1.2rem + 2vw, 1.8rem);
  }
}
@media (min-width: 481px){
  #club-rules .section-title{
    font-size: clamp(.8rem, 1vh, 1rem);
  }
}
@media (max-width: 480px) {
  #club-rules .section-title{
    font-size: clamp(.7rem, 1vh, 1rem);
  }
  .section-title {
    font-size: clamp(1.2rem, 1.2rem + 1vw, 1.8rem);
  }
}
.section-title::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 3.5rem;
  height: 3px;
  background: currentColor;
  border-radius: 1px;
}
.section-title.no-line::before {
  display: none;
}

.section-title.no-line {
    padding-top: 0rem;
  }

@media (prefers-reduced-motion:reduce), (max-width:768px){
  .section-title.no-line {
    padding-top: 0;
  }
}


header#header {
  background-color: #232323cc !important;
  position: sticky;
  top: 0;
  z-index: 1000;
}
.logo-skif {
  display: flex;
  align-items: flex-start;
  position: relative;
  z-index: 2;
}
.skif-logo-img {
  height: 105px;
  margin-bottom: -28px; /* "Скиф" свисает за шапку */
  max-width: 350px;
  width: auto;
  object-fit: contain;
  transition: height 0.2s, margin-bottom 0.2s;
  margin-left: -25px;
}
@media (max-width: 768px) {
  .logo-skif {
    height: 56px;
  }
  .skif-logo-img {
    height: 110px;
    margin-bottom: -18px;
    max-width: 95%;
    margin-left: -5px;
  }
}
@media (max-width: 480px) {
  .logo-skif {
    height: 45px;
    margin-top: 20px;
  }
  .skif-logo-img {
    max-width: 51vw;
    height: 45px;
  }
} 

.text-accent { 
  color: #b71c1c; 
}

.spa-slider {
  margin-top: 2.2rem;
  /* max-width убран */
  margin-left: auto;
  margin-right: auto;
}
.spa-slider .carousel-inner {
  border-radius: 16px;
  overflow: hidden;
}
.spa-slider img {
  object-fit: cover;
  width: 100%;
  height: 600px;
}
@media (max-width: 900px) {
  .spa-slider img {
    height: 350px;
  }
}
@media (max-width: 768px) {
  .spa-slider img {
    height: 200px;
  }
}
.spa-slider .carousel-caption span {
  background: rgba(24,25,26,0.7);
  border-radius: 8px;
  padding: 0.3em 1em;
  color: #fff;
  font-size: 1.1rem;
}
@media (max-width: 1200px) {
  .spa-slider {
    max-width: 100%;
  }
}
@media (max-width: 900px) {
  .spa-slider img {
    height: 260px;
  }
}
@media (max-width: 768px) {
  .spa-card {
    min-height: 110px;
    padding: 0.7rem 0.2rem;
  }
  .spa-card .spa-icon {
    font-size: 1.5rem;
  }
  .spa-card .btn-outline-danger,
  .program-card .btn-outline-danger {
    font-size: 0.9rem;
    min-width: 90px;
    padding: 0.15rem 0.7rem;
  }
  .spa-slider img {
    height: 200px;
  }
} 

/* Универсальная карточка для всех секций */
.feature-card {
  background: #2E2E2E;
  border-radius: 1.25rem;
  box-shadow: 0 2px 16px 0 rgba(0,0,0,0.10);
  /*color: #fff;*/
  padding: 0.5rem 1.5rem 0.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  /*min-height: 190px;*/
  text-align: center;
  transition: box-shadow 0.2s;
}
.feature-card:hover {
  box-shadow: 0 4px 32px 0 rgba(220,53,69,0.15);
}
.feature-card .feature-icon {
  max-height: 60px;
  font-size: 2.5rem;
  color: #dc3545;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* ⬇️ ключевой кусок для SVG-иконок */
.feature-card .feature-icon svg {
  width: 1em;   /* 30 % крупнее остальных */
  height: 1em;
}
.feature-card .feature-title {
  font-weight: 700;
  /* font-size: 1.25rem; */
  margin-bottom: 0.5rem;
}
.feature-card .feature-desc {
  font-size: 1rem;
  color: #bdbdbd;
  margin-bottom: 1.25rem;
}
.feature-card .feature-btn {
  margin-top: auto;
  border: 1px solid #dc3545;
  color: #dc3545;
  background: transparent;
  border-radius: 2rem;
  padding: 0.4rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  transition: background 0.2s, color 0.2s;
}
.feature-card .feature-btn:hover {
  background: #b71c1c;;
  color: #fff;
  border-color: #b71c1c;
} 

/* --- Contact Panel --- */
.contact-panel {
  background: #2E2E2E;
  border-radius: 1.25rem;
  box-shadow: 0 2px 16px 0 rgba(0,0,0,0.10);
  color: #fff;
  padding: 2rem 2rem 1.5rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 300px;
  height: 100%;
}
.contact-panel .contact-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
}
.contact-panel .contact-list {
  list-style: none;
  padding: 0;
  margin-bottom: 1.5rem;
}
.contact-panel .contact-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: 1rem;
  font-size: 1.08rem;
}
.contact-panel .contact-list .contact-icon {
  color: #dc3545;
  font-size: 1.3rem;
  margin-right: 0.75rem;
  margin-top: 0.1rem;
}
.contact-panel .contact-actions {
  display: flex;
  gap: 1rem;
}
.contact-panel .whatsapp-btn, .contact-panel .instagram-btn {
  background: #232323;
  color: #fff;
  border: none;
  border-radius: 0.7rem;
  padding: 0.5rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  box-shadow: 0 2px 8px 0 rgba(0,0,0,0.08);
  transition: background 0.2s, color 0.2s;
  text-decoration: none;
}
.contact-panel .whatsapp-btn:hover, .contact-panel .instagram-btn:hover {
  background: #b71c1c;
  color: #fff;
}
.contact-panel .instagram-btn i {
  color: #fff;
}

/* --- Map Height Fix --- */
#contacts .shadow.overflow-hidden {
  height: 99%;
  border-radius: 1.25rem;
  margin: 3px;
  display: flex;
}
#contacts iframe {
  min-height: 300px;
  height: 100%;
} 

/* шум‑оверлей на весь экран */
.page__noise{
  position:fixed;           /* «прилип» к вьюпорту  */
  inset:0;
  width:100%; height:100%;  /* или var(--app-height) */
  pointer-events:none;
  z-index:100;              /* ниже модалок, выше контента‑фона */

  /* ⬇️ ставим ваш PNG вместо GIF */
  background:url('../assets/noise.png') 0 0/150px repeat;

  opacity:0;                /* по умолчанию невидим */
  transition:opacity .3s ease;
}

/* включаем “живость” и делаем видимым */
@keyframes noiseShift{
  0%  {background-position:0 0;}
  100%{background-position:120px 200px;}
}
.page__noise--visible{
  opacity: .07;
}

/* экономия батареи / мобильный */
@media (prefers-reduced-motion:reduce), (max-width:768px){
  .page__noise{opacity:.01}
}


/* скрыть theme-toggle на мобильных */
@media (max-width: 768px) {
  #theme-toggle {
    display: none;
  }
}

/* --- Light Theme --- */
body.theme-light {
  background: #ffffff !important;
  color: #232323 !important;
}
body.theme-light .bg-dark,
body.theme-light .contact-panel,
body.theme-light .feature-card {
  background: #fff !important;
  /* color: #232323 !important;
  box-shadow: 0 2px 16px 0 rgba(0,0,0,0.06);*/
} 
body.theme-light .section-title,
body.theme-light .text-danger,
body.theme-light .feature-icon,
body.theme-light .contact-panel .contact-icon {
  color: #dc3545 !important;
}
body.theme-light .feature-desc,
body.theme-light .contact-panel .contact-list li {
  color: #555 !important;
}
body.theme-light .btn-danger {
  background: #dc3545 !important;
  color: #fff !important;
  border: none;
}
body.theme-light .btn-danger:hover,
body.theme-light .feature-btn:hover,
body.theme-light .whatsapp-btn:hover,
body.theme-light .instagram-btn:hover {
  background: #b71c2b !important;
  color: #fff !important;
}
body.theme-light .feature-btn,
body.theme-light .whatsapp-btn,
body.theme-light .instagram-btn {
  background: #fff !important;
  color: #dc3545 !important;
  border: 1px solid #dc3545 !important;
}
body.theme-light .feature-btn:hover,
body.theme-light .whatsapp-btn:hover,
body.theme-light .instagram-btn:hover {
  background: #dc3545 !important;
  color: #fff !important;
}
body.theme-light .accordion-button {
  background: #fff !important;
  color: #232323 !important;
}
body.theme-light .accordion-button:not(.collapsed) {
  color: #dc3545 !important;
}
body.theme-light .accordion-body {
  background: #fff !important;
  color: #232323 !important;
}
body.theme-light .shadow {
  box-shadow: 0 2px 16px 0 rgba(0,0,0,0.06) !important;
}
body.theme-light .hero-img {
  box-shadow: 0 2px 16px 0 rgba(0,0,0,0.06) !important;
}
body.theme-light .page__noise {
  opacity: 0.08;
}
@media (prefers-reduced-motion:reduce), (max-width:768px){
  body.theme-light .page__noise {
    opacity: 0.04;
  }
}
body.theme-light .tariff-col{
  background:#fff !important;
  color:#232323 !important;
  box-shadow:0 2px 16px rgba(0,0,0,.06);
}

body.theme-light .tariff-col__title{
  color:#232323 !important;
}
body.theme-light .tariff-col__title i{
  color:#dc3545 !important;
}

/* Строка тарифа */
body.theme-light .tariff-item{
  background:#fff !important;
  color:#232323 !important;
  border:1px solid #dc3545 !important;
  box-shadow:none !important;
}
body.theme-light .tariff-item:hover{
  background:#dc3545 !important;
  color:#fff !important;
  box-shadow:0 0 10px rgba(229,57,53,.25) !important;
}

/* Лейбл "Хит" — можно оставить как есть, просто уточним тень */
body.theme-light .tariff-item--hit::after{
  background:#dc3545 !important;
  color:#fff !important;
  box-shadow:0 2px 6px rgba(0,0,0,.15) !important;
}

/* Hero section responsive fix */
#hero .hero-img {
  width: 100%;
  height: auto;
  margin: 0 auto;
  display: block;
}
@media (max-width: 767.98px) {
  #hero .hero-img {
    max-width: 320px;
  }
}
/* ---------- Активный таб в шапке ---------- */
#mainTab .nav-link {
  position: relative;        /* нужно для псевдоэлемента‑подсветки */
  padding: 0.5rem 1.25rem;   /* чтобы щёлкалось удобнее */
}

#mainTab .nav-link.active {
  color: #E53935 !important; /* ваш фирменный красный */
  font-weight: 700;          /* чуть жирнее — по желанию */
}

/* аккуратная «подчёркивающая» полоска */
#mainTab .nav-link.active::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -10px;             /* отступ от текста: подберите под себя */
  width: 100%;
  height: 2px;
  background: currentColor;  /* та же краска, что у текста */
  border-radius: 1px;
}

/* (необязательно) лёгкая подсветка при наведении */
#mainTab .nav-link:not(.active):hover {
  color: #ff6a65 !important; /* чуть светлее красного */
}
body.theme-light #mainTab .nav-link.active {
  color: #dc3545 !important; /* тот же красный, что в светлой теме */
}
/* прячем базовую линию Bootstrap у списка табов */
#mainTab.nav-tabs {
  border-bottom: none !important;
}

/* --- Mobile bottom nav (обновлённая версия) ----------------------- */

/* Сам фикс-бар для мобильной ширины */
.mobile-bottom-nav{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1060; /* Higher than footer (1040) to appear on top when overlapping */
  will-change: bottom;
  display: flex;                  /* ← кнопки-flex-элементы */
  height: 56px;
  padding-bottom: env(safe-area-inset-bottom); /* безопасная зона iOS */

  background: rgba(35, 35, 35, .75);  /* полупрозрачный графит */
  backdrop-filter: blur(6px);         /* лёгкий размытие заднего */
  box-shadow: 0 -2px 8px rgba(0,0,0,.20);

  transition: bottom 0.35s cubic-bezier(0.4, 0, 0.2, 1); /* Enhanced smooth transition */
}

/* Кнопка-табы (иконка внутри) */
.nav-mobile-btn{
  flex: 1 1 25%;                /* четыре равные доли */
  height: 56px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: none;
  background: none;
  color: #d0d0d0;               /* пассивная иконка */
  font-size: 1.8rem;            /* общий масштаб иконок */
  position: relative;           /* для нижней полоски-индикатора */
  transition: background .2s, color .2s;
}
.nav-mobile-btn:hover{
  background: #2d2d2d;          /* лёгкий hover-фон */
}

/* Активная вкладка */
.nav-mobile-btn.active{
  color: #E53935;               /* красный акцент */
}
.nav-mobile-btn.active::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: #E53935;          /* полоска-индикатор */
}

/* Унифицируем размер иконок (Bootstrap-icons и inline-SVG) */
.nav-mobile-btn i,
.nav-mobile-btn svg{
  width: 1em;
  /*height: 1em;*/
  font-size: inherit;
  pointer-events: none;         /* чтобы иконка не блокировала клик */
}

/* Скрываем бар на десктопе */
@media (min-width: 768px){
  .mobile-bottom-nav{ display: none !important; }
}
/* Скрываем верхние nav-табы на мобильном */
@media (max-width: 767.98px){
  .nav.nav-tabs{ display: none !important; }
}
footer .row{
  --bs-gutter-x: 0;       /* убираем горизонтальный зазор */
  margin-left: 0;
  margin-right: 0;
}

/* --- Fixed Footer Implementation --- */
footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); /* Enhanced transition timing */
  background-color: #18191A !important;
  will-change: bottom;
}

/* Desktop footer - always full */
@media (min-width: 768px) {
  footer {
    position: fixed;
  }
  
  body {
    padding-bottom: 120px; /* Adjust based on footer height */
  }
}

/* Mobile footer adjustments */
@media (max-width: 767.98px){
  body {
    padding-bottom: 0; /* Will be set dynamically by JavaScript */
    transition: padding-bottom 0.35s cubic-bezier(0.4, 0, 0.2, 1); /* Enhanced transition */
  }
  
  /* Minimal footer for mobile */
  footer.minimal {
    padding: 0.5rem 0 !important;
  }
  
  footer.minimal .footer-logo {
    display: none;
  }
  
  
  footer.minimal .footer-copyright {
    display: none !important;
  }
  
  footer.minimal .footer-social {
    margin-bottom: 0.25rem;
    justify-content: center;
  }
  
  footer.minimal .social-link {
    width: 1.4rem;
    height: 1.4rem;
  }
  
  footer.minimal .store-badge {
    height: 1.6rem;
  }
  
  /* Full footer for mobile (when at bottom) */
  footer.full {
    padding: 1rem 0 !important;
  }

  
  footer.full .footer-contact .contact-item {
    flex: none;
    min-width: auto;
    font-size: inherit;
  }
  
  /* Mobile navigation - positioned dynamically by JavaScript */
  .mobile-bottom-nav {
    bottom: 0; /* Will be set dynamically */
    transition: bottom 0.3s ease;
  }
}

/* --- Клубные карты: двухколоночный список -------------------------- */
.tariff-list li + li{ margin-top:.65rem; }

/* Каждая строка-«тариф» */
.tariff-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;

  padding:.7rem 1.1rem;
  border:1px solid #E53935;
  border-radius:32px;

  color:#fff;
  text-decoration:none;
  font-size:.95rem;
  line-height:1.2;

  transition:background .2s, color .2s, box-shadow .2s;
}
.tariff-item:hover{
  background:#E53935;
  color:#fff;
  box-shadow:0 0 10px rgba(229,57,53,.35);
}

/* Лейбл «Хит» на 365 дней (по желанию) */
.tariff-item--hit{
  position:relative;
}
.tariff-item--hit::after{
  content:"Хит";
  position:absolute;
  top:-8px;
  right:14px;
  font-size:.65rem;
  padding:2px 6px;
  background:#E53935;
  color:#fff;
  border-radius:6px;
  box-shadow:0 2px 6px rgba(0,0,0,.35);
  transform:rotate(8deg);
  pointer-events:none;
}

/* Мобильные правки: чуть компактнее */
@media (max-width: 575.98px){
  .tariff-item{ font-size:.9rem; padding:.6rem 1rem; }
  .tariff-col{ padding:1.25rem 1rem 1.5rem; }
}
/* === Club‑benefit cards (лаконичный вид) ========================= */

/* сама карточка – тот же стиль, что и feature‑card */
.benefit-card{
  background:#2a2a2a;
  border-radius:12px;
  box-shadow:0 2px 16px rgba(0,0,0,.25);
  position:relative;
  text-align:left;
}
.benefit-card .feature-icon{font-size:2.2rem;margin-bottom:1rem;}
.benefit-card .feature-title{font-size:1.25rem;font-weight:600;}

/* красная вертикальная линия слева */
.benefit-card::before{
  content:"";
  position:absolute;
  left:.65rem;        /* чуть правее края */
  top:92px;           /* начинается ниже иконки/заголовка */
  bottom:.65rem;
  width:2px;
  background:#E53935;
  opacity:.8;
}

/* список: одна колонка, на XS – две */
.benefit-list{column-count:1;column-gap:1.5rem;}
.benefit-list li{
  position:relative;
  padding-left:2rem;
  margin-bottom:.55rem;
  font-size:.95rem;
  line-height:1.35;
  list-style:none;
}
.benefit-list .base {color:#d0d0d0;}
.benefit-list .extra{color:#ffffff;}
.benefit-list .plus {color:#E53935;font-weight:600;}

/* крупный цветной кружок‑маркер */
.benefit-ico{
  position:absolute;left:0;top:.25rem;
  width:1.1rem;height:1.1rem;border-radius:50%;
}
.benefit-list .base  .benefit-ico{background:#484848;}
.benefit-list .extra .benefit-ico{background:#E53935;}
.benefit-list .plus  .benefit-ico{
  background:#E53935;
  box-shadow:0 0 0 3px #2a2a2a inset; /* тонкий “ободок” */
}

/* бейдж «Хит» */
.benefit-card--hit::after{
  content:"Хит";
  position:absolute;
  top:12px;right:-8px;
  background:#E53935;color:#fff;font-size:.65rem;font-weight:700;
  padding:2px 8px;border-radius:6px;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
  transform:rotate(8deg);pointer-events:none;
}

/* ===== Светлая тема ============================================== */
body.theme-light .benefit-card{
  background:#fff !important;
  box-shadow:0 2px 16px rgba(0,0,0,.06) !important;
}
body.theme-light .benefit-card::before{background:#dc3545;}
body.theme-light .benefit-list .base {color:#555;}
body.theme-light .benefit-list .extra{color:#232323;}
body.theme-light .benefit-ico.plus{box-shadow:0 0 0 3px #fff inset;}

/* Общий контейнер для соцсетей и магазинов */
.footer-social {
  display: flex;
  align-items: center;
  justify-content: flex-end; /* выравнивание по правому краю */
  gap: 0.75rem; /* единый отступ между всеми элементами */
  margin-bottom: 1rem;
}

/* Базовые стили для всех ссылок */
.footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.footer-social a:hover {
  opacity: 0.8;
}

/* Социальные иконки - квадратные */
.social-link {
  width: 1.6rem;
  height: 1.6rem;
}

.social-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Бейджи магазинов - прямоугольные, выше соцсетей */
.store-badge {
  height: 2rem; /* задаем высоту контейнера */
}

.store-badge img {
  height: 100%;
  width: auto;
  display: block;
}

/* Дополнительно: для мобильных устройств центрируем */
@media (max-width: 767.98px) {
  .footer-social {
    justify-content: center;
  }
}

/* --- Секция "Правила Фитнес Клуба" --- */
.club-rules {
	text-align: justify;
}
.club-rules .mb-4{
  padding-right: 1.5rem;
}
@media (max-width: 767.98px) {
  .club-rules .mb-4{
    padding-right: 1rem;
    padding-left: 1rem;
  }
}

/* --- Красивое модальное окно --- */
.modal-content {
  border-radius: 1.5rem;
  box-shadow: 0 8px 40px 0 rgba(0,0,0,0.22);
  border: none;
  padding: 0.5rem 1.5rem 1.5rem 1.5rem;
  position: relative;
  overflow: hidden;
  background-clip: padding-box;
}
.modal-content::before {
  content: '';
  display: block;
  width: 100%;
  height: 6px;
  background: linear-gradient(90deg, #E53935 0%, #b71c1c 100%);
  position: absolute;
  top: 0; left: 0;
  border-radius: 1.5rem 1.5rem 0 0;
  z-index: 2;
}
.modal-header {
  border-bottom: none;
  padding-bottom: 0;
  padding-top: 1.5rem;
  background: none;
}
.modal-title {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .02em;
  color: #E53935;
}
.theme-light-bg .modal-title {
  color: #b71c1c;
}
.modal-body {
  padding-top: 0.5rem;
  padding-bottom: 0;
}
.modal .form-label {
  font-weight: 500;
  margin-bottom: 0.5rem;
}
.modal .form-control {
  border-radius: 0.9rem;
  border: 1.5px solid #ccc;
  background: #232323;
  color: #fff;
  font-size: 1.1rem;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  transition: background 0.3s, color 0.3s, border-color 0.2s;
}
body.theme-light .modal .form-control {
  background: #fff;
  color: #232323;
  border: 1.5px solid #bbb;
}
.modal .form-control:focus {
  border-color: #E53935;
  box-shadow: 0 0 0 0.15rem rgba(229,57,53,0.12);
}
.modal .btn {
  border-radius: 0.9rem;
  font-weight: 700;
  font-size: 1.1rem;
  padding: 0.75rem 1rem;
  margin-top: 0.5rem;
}
.modal .alert-success {
  border-radius: 0.9rem;
  background: #e6f9ed;
  color: #1b5e20;
  border: none;
  font-size: 1.05rem;
  margin-top: 1rem;
}
body.theme-light .modal .alert-success {
  background: #e6f9ed;
  color: #1b5e20;
}
body:not(.theme-light) .modal .alert-success {
  background: #232323;
  color: #b9f6ca;
}
@media (max-width: 575.98px) {
  .modal-dialog {
    margin: 0.5rem;
    max-width: 98vw;
  }
  .modal-content {
    padding: 0.5rem 0.5rem 1rem 0.5rem;
    border-radius: 1.1rem;
  }
  .modal-content::before {
    border-radius: 1.1rem 1.1rem 0 0;
  }
  .modal-title {
    font-size: 1.15rem;
  }
  .modal .form-control, .modal .btn {
    font-size: 1rem;
    padding: 0.6rem 0.7rem;
  }
}
/* Компактный футер на мобилках */
@media (max-width: 767.98px){
  footer.minimal{ padding: .5rem 0 !important; }
  footer.full   { padding: .75rem 0 !important; }

  .footer-social{
    gap: .5rem;
    margin-bottom: .5rem;
  }
  .social-link{ width: 1.4rem; height: 1.4rem; }
  .store-badge{ height: 1.8rem; }
}

@media (max-width: 767.98px){
  /* Центрируем адресную строку */
  footer .footer-address{
    justify-content: center;
    text-align: center;
    margin-bottom: .35rem; /* компактно */
  }

  /* ДЕЛАЕМ ЕДИНУЮ СЕТКУ 1x2 для контактов (в minimal и full) */
  footer .footer-contact{
    display: grid !important;               /* перекрываем любые прошлые display */
    grid-template-columns: 1fr 1fr;         /* два столбца */
    gap: .35rem .75rem;                     /* компактные отступы */
    align-items: center;
    justify-items: center;                  /* содержимое ячеек по центру */
    text-align: center;
  }

  /* Сами элементы (иконка + текст) компактно */
  footer .footer-contact .contact-item{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    margin: 0;                              /* на всякий */
    font-size: .92rem;                      /* чутка меньше */
    line-height: 1.25;
    white-space: nowrap;                    /* чтобы не переносило телефон/почту на две строки */
  }
  footer .footer-contact .contact-item i{
    font-size: .95rem;
    margin-right: .0rem;                    /* иконка и так в gap */
  }
  footer .footer-contact .contact-item a{
    white-space: nowrap;
  }

  /* Скрыть копирайт в минимальном футере (перекрыть .d-block!important) */
  footer.minimal .footer-copyright{
    display: none !important;
  }

  /* Компактные паддинги футера и соц-блока */
  footer.minimal{ padding: .5rem 0 !important; }
  footer.full   { padding: .75rem 0 !important; }

  .footer-social{
    gap: .5rem;
    margin-bottom: .5rem;
  }
  .social-link{ width: 1.4rem; height: 1.4rem; }
  .store-badge{ height: 1.8rem; }
}
/* Чуть меньше расстояние МЕЖДУ контактами и кнопками (соц/сторы) */
@media (max-width: 767.98px){
  /* уменьшаем вертикальные интервалы между колонками футера */
  footer .row.align-items-center{
    --bs-gutter-y: .25rem;   /* было ~1rem из gy-3 */
  }

  /* тонкая доводка: небольшой верхний отступ самого блока кнопок */
  footer .footer-social{
    margin-top: .25rem;      /* было по умолчанию ~0 */
  }
}

/* Безлимит: шапка с режимами и временем */
.tariff-card .tariff-meta{
  display:grid;
  grid-template-columns:1fr;
  gap:.25rem;
  margin:.15rem 0 .85rem;
}
.tariff-card .meta-row{
  display:flex;align-items:center;justify-content:space-between;
  font-size:.95rem;color:#bdbdbd;
}
.tariff-card .meta-badge{
  border:1px solid #E53935;color:#E53935;
  padding:.15rem .55rem;border-radius:.75rem;
  font-weight:700;font-size:.82rem;line-height:1;
}
.tariff-card .meta-time{ font-variant-numeric:tabular-nums; opacity:.95; }
.tariff-card .tariff-list li + li{ margin-top:.55rem; }

body.theme-light .tariff-card .meta-row{ color:#555; }
body.theme-light .tariff-card .meta-badge{ border-color:#dc3545;color:#dc3545; }

/* === Club Cards v2 (neutral tags + unified lists) ================== */

/* Метаданные времени в Безлимит */
.tariff-meta { margin:.5rem 0 1rem; width:100%; }
.meta-row { display:flex; gap:.5rem; align-items:baseline; justify-content:flex-start; font-size:.95rem; color:#bdbdbd; }
.meta-label { display:inline-flex; align-items:center; padding:.15rem .5rem; border-radius:.5rem; background:#2a2a2a; color:#fff; font-weight:600; }
.meta-time { opacity:.85; }

/* Подзаголовок */
.plan-subtitle { margin:.5rem 0 .4rem; font-weight:600; font-size:.95rem; color:#bdbdbd; align-self:flex-start; }

/* Нейтральные «теги» сроков */
.tag-group { display:flex; flex-wrap:wrap; gap:.5rem; align-self:flex-start; }
.tag { display:inline-block; padding:.35rem .75rem; border-radius:999px; background:#262626; color:#e0e0e0; font-size:.9rem; border:1px solid #3a3a3a; }
.tag-hit { position:relative; }
.tag-hit::after {
  content:'Хит';
  position:absolute; top:-8px; right:-10px;
  font-size:.65rem; padding:2px 6px; background:#E53935; color:#fff; border-radius:6px; transform:rotate(8deg);
}

/* Единый список фич для Голд/Платина */
.plan-list { margin:.5rem 0 0; padding:0; list-style:none; width:100%; text-align:left; }
.plan-list li { display:flex; gap:.5rem; align-items:flex-start; margin:.35rem 0; font-size:.95rem; color:#d0d0d0; }
.plan-list li i { margin-top:.15rem; font-size:1.1rem; color:#E53935; flex:0 0 auto; }
.plan-list li.is-extra { color:#fff; }     /* «расширенные» пункты */
.plan-list li.is-plus  i { color:#E53935; } /* визуально как «плюс» */

/* Список спецпредложений */
.offer-list { margin-top:.5rem; padding-left:1rem; text-align:left; }
.offer-list li { margin:.4rem 0; color:#d0d0d0; }

/* Светлая тема */
body.theme-light .meta-label { background:#f5f5f5; color:#232323; }
body.theme-light .tag { background:#fff; color:#232323; border-color:#dc3545; }
body.theme-light .plan-list li { color:#555; }
body.theme-light .offer-list li { color:#555; }


/* Сроки для «Безлимит»: спокойный список по центру */
.term-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
}
.term {
  font-size: .95rem;
  line-height: 1.25;
  color: #d0d0d0;
  padding: .15rem .25rem; /* без рамок и кнопочного вида */
}
.term--hit {
  position: relative;
}
.term--hit::after {
  content: 'Хит';
  position: absolute;
  top: -8px; right: -18px;
  font-size: .65rem;
  padding: 2px 6px;
  background: #E53935; color: #fff;
  border-radius: 6px;
  transform: rotate(8deg);
}

/* Бейдж «Хит» после текста 365 дней */
.benefit-label{ display:inline-block; position:relative; }

.hit .benefit-label::after{
  content: 'Хит';
  display: inline-block;
  margin-left: 8px;           /* расстояние от текста */
  padding: 2px 6px;
  font-size: .65rem;
  line-height: 1;
  background: #E53935;
  color: #fff;
  border-radius: 6px;
  transform: rotate(8deg);
  position: relative;
  top: -6px;                  /* чуть приподнять над строкой */
}

/* Светлая тема */
body.theme-light .term { color:#555; }

/* отключаем старую общую линию у карточки */
.benefit-card::before { display: none; }

/* добавляем линию именно у списка преимуществ */
.benefit-card .benefit-list {
  position: relative;
}
.benefit-card .benefit-list::before {
  content: "";
  position: absolute;
  left: .65rem;       /* близко к чек-иконкам */
  top: .15rem;        /* ровно от начала списка */
  bottom: .15rem;     /* и до его конца */
  width: 2px;
  background: #E53935;
  opacity: .8;
}

/* светлая тема — тот же цвет линии */
body.theme-light .benefit-card .benefit-list::before { background: #dc3545; }

/* Стабилизация шапки карточек */
.feature-card { display:flex; flex-direction:column; }

.feature-card .feature-icon {
  height: 40px;                 /* единая высота под любую иконку */
  display:flex; align-items:center; justify-content:center;
  margin: 6px 0 8px;
}
.feature-card .feature-icon i { font-size: 32px; line-height:1; }

.feature-card .feature-title,
.feature-card h3.feature-title {
  /*margin: 0 0 12px;              убираем разные дефолтные отступы h3 */
  /* min-height: 28px;              единая высота заголовка */
  text-align: center;           /* как в макете */
}

/* Список сроков (Безлимит) — «таймлайн» */
.term-list {
  display: flex;
  flex-direction: column;
  align-items: center;     /* по центру, как просил */
  gap: .75rem;             /* больше воздуха между пунктами */
  margin-top: .5rem;
}

.term {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  font-size: .98rem;
  line-height: 1.25;
  color: #d8d8d8;
  padding: .2rem 0;        /* без рамок/капсул — не выглядит как кнопка */
  position: relative;
}

/* Светлая тема */
body.theme-light .term       { color:#444; }

/* Метка «Хит» на 365 дней остаётся, только чуть подвинем под новый вид */
.term--hit::after{
  content:'Хит';
  position:absolute;
  top:-8px; right:-20px;
  font-size:.65rem; padding:2px 6px;
  background:#E53935; color:#fff; border-radius:6px; transform:rotate(8deg);
}

/* --- Секция "Правила фитнес-клуба" (аккуратный CTA) --- */
#club-rules .feature-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80px;          /* не огромная, но не пустая */
  padding: 1.25rem 1rem;
}

.club-rules {                 /* перекрываем старое justify */
  text-align: center !important;
}

.rules-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;                 /* плотнее друг к другу */
}

.rules-ico {
  font-size: 2.25rem;
  line-height: 1;
  color: #dc3545;
  opacity: .9;
}

.rules-hint {
  font-size: .9rem;
  color: #bdbdbd;
  margin-bottom: .25rem;
}

#club-rules .btn.btn-danger {
  padding: .6rem 1.25rem;
  border-radius: .9rem;
}

body.theme-light .rules-hint { color: #666; }


/* Безлимит: выравнивание списка сроков по левому краю */
.tariff-card .benefit-list.benefit-list--center{
  width: 100%;
  margin: .5rem 0 0;       /* убираем auto-центровку */
}

.tariff-card .benefit-list{
  text-align: left;        /* левый край */
  align-self: stretch;     /* растянуть по ширине карточки */
}

.tariff-card{ text-align: left; }
.tariff-card .feature-title{ text-align: center; }

/* Правила: кликабельная иконка вместо кнопки */
.rules-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color: inherit;
  cursor: pointer;
}
.rules-link:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(220,53,69,.35);
  border-radius: .6rem;
}

.rules-ico{
  transition: transform .15s ease, color .15s ease, filter .15s ease, opacity .15s ease;
}
.rules-link:hover .rules-ico{
  transform: scale(1.08);
  filter: drop-shadow(0 2px 6px rgba(220,53,69,.35));
  opacity: .95;
}
.rules-link:active .rules-ico{
  transform: scale(0.98);
}
.btn-text-sm { font-size: .9rem; } /* или .875rem */

/* Ссылка-заголовок "Правила" — всегда как заголовок, без синего и подчёркивания */
#club-rules .section-title .rules-link,
#club-rules .section-title .rules-link:link,
#club-rules .section-title .rules-link:visited,
#club-rules .section-title .rules-link:hover,
#club-rules .section-title .rules-link:active,
#club-rules .section-title .rules-link:focus {
  color: inherit !important;
  text-decoration: none !important;
}

