
/* ======================================================
   DESIGN TOKENS (VARIABLES)
====================================================== */

:root {
	
	/*COLORS*/
	--color-primary: #2563eb; /*blue*/
	--color-primary-dark: #1e40af; /*dark blue*/
	--color-bg-primary: #ffffff; /*white*/
	--color-bg-secondary: #f8f9fa; /*less white*/
	--color-text-primary: #111827; /*darkest blue - black*/
	--color-text-secondary: #6b7280; /*grey*/
	
	/*FONTS*/
	--font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;
	--font-size-tab: 1rem;	  /* 16px !!!*/
	--font-size-xl: 1.25rem;  /* 20px */
	--font-size-2xl: 1.5rem;  /* 24px */
	--font-size-3xl: 1.875rem;/* 30px */
	--space-lg: 1.5rem;       /* 24px */
	--space-xl: 2rem;         /* 32px */
	--radius-lg: 0.75rem;     /* 12px */

	/* ШРИФТЫ - иерархия */
	--font-display: 'Bebas Neue', 'Montserrat', sans-serif;  /* Заголовки */
	--font-primary: 'Montserrat', 'Open Sans', sans-serif;   /* Основной */
	--font-ui: 'Roboto', 'Open Sans', -apple-system, sans-serif;
	
	/* Display - самые большие заголовки */
	--font-size-display-1: clamp(2.5rem, 8vw, 4rem);    /* Hero заголовки */
	--font-size-display-2: clamp(2rem, 6vw, 3rem);      /* Секционные заголовки */
  
	/* Заголовки */
	--font-size-h1: clamp(1.875rem, 5vw, 2.5rem);		/* H1 */
	--font-size-h2: clamp(1.5rem, 4vw, 2rem);           /* H2 */
	--font-size-h3: clamp(1.25rem, 3vw, 1.5rem);        /* H3 */
	--font-size-h5: clamp(1rem, 2vw, 1.125rem);			/* H5 */
  
	/* Текст */
	--font-size-btn: clamp(1.125rem, 2vw, 1.25rem);   /* Текст кнопки */
	--font-size-body: clamp(1rem, 1.8vw, 1.125rem);       /* Основной текст */
	--font-size-normal: clamp(0.875rem, 1.6vw, 1rem);	/* Средний текст */
	--font-size-small: clamp(0.875rem, 1.5vw, 0.9rem);	/* Маленький текст */
	--font-size-caption: clamp(0.75rem, 1vw, 0.8rem);	/* Подписи */
	
	/* Font weights */
	--font-weight-light: 300;
	--font-weight-normal: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
	--font-weight-bold: 700;

	/* Line heights */
  --line-height-tight: clamp(1.1, 1.2vw, 1.25);        /* 1.1 → 1.44 → 1.25 */
  --line-height-small: clamp(1.2, 1.3vw, 1.4);        /* 1.2 → 1.6 → 1.2 */
  --line-height-normal: clamp(1.4, 1.5vw, 1.6);        /* 1.4 → 1.8 → 1.6 */
  --line-height-relaxed: clamp(1.6, 1.7vw, 1.75);       /* 1.6 → 2.04 → 1.75 */
	

/* ===================================
      SPACING SYSTEM
      8px base unit
   =================================== */
  
  /* Micro spacing - 4px base */
  --space-px: clamp(0.0625rem, 0.125vw, 0.125rem);      /* 1px → 1.5px → 2px */
  --space-0_5: clamp(0.125rem, 0.25vw, 0.25rem);        /* 2px → 3px → 4px */
  --space-1: clamp(0.25rem, 0.5vw, 0.5rem);             /* 4px → 6px → 8px */
  --space-1_5: clamp(0.375rem, 0.75vw, 0.75rem);         /* 6px → 9px → 12px */
  
  /* Small spacing - 8px base */
  --space-2: clamp(0.5rem, 1vw, 0.75rem);                /* 8px → 12px → 12px */
  --space-2_5: clamp(0.625rem, 1.25vw, 0.875rem);       /* 10px → 15px → 14px */
  --space-3: clamp(0.75rem, 1.5vw, 1rem);               /* 12px → 18px → 16px */
  --space-3_5: clamp(0.875rem, 1.75vw, 1.125rem);       /* 14px → 21px → 18px */
  
  /* Medium spacing - 16px base */
  --space-4: clamp(1rem, 2vw, 1.25rem);                 /* 16px → 24px → 20px */
  --space-5: clamp(1.25rem, 2.5vw, 1.5rem);              /* 20px → 30px → 24px */
  --space-6: clamp(1.5rem, 3vw, 1.75rem);                /* 24px → 36px → 28px */
  --space-7: clamp(1.75rem, 3.5vw, 2rem);                /* 28px → 42px → 32px */
  
  /* Large spacing - 32px base */
  --space-8: clamp(2rem, 4vw, 2.25rem);                  /* 32px → 48px → 36px */
  --space-10: clamp(2.5rem, 5vw, 2.75rem);               /* 40px → 60px → 44px */
  --space-12: clamp(3rem, 6vw, 3.25rem);                 /* 48px → 72px → 52px */
  --space-16: clamp(4rem, 8vw, 4rem);                    /* 64px → 96px → 64px */
  --space-20: clamp(5rem, 10vw, 5rem);                   /* 80px → 120px → 80px */
  
/* ===================================
      MARGIN SYSTEM
      Semantic margins
   =================================== */
  
  /* Component margins */
  --margin-xs: clamp(0.25rem, 0.5vw, 0.5rem);            /* 4px → 6px → 8px */
  --margin-sm: clamp(0.5rem, 1vw, 0.75rem);              /* 8px → 12px → 12px */
  --margin-md: clamp(1rem, 2vw, 1.25rem);               /* 16px → 24px → 20px */
  --margin-lg: clamp(1.5rem, 3vw, 1.75rem);              /* 24px → 36px → 28px */
  --margin-xl: clamp(2rem, 4vw, 2.25rem);               /* 32px → 48px → 36px */
  --margin-2xl: clamp(3rem, 6vw, 3.25rem);              /* 48px → 72px → 52px */
  
  /* Section margins */
  --margin-section-sm: clamp(2rem, 4vw, 2.5rem);         /* 32px → 48px → 40px */
  --margin-section-md: clamp(3rem, 6vw, 3.5rem);         /* 48px → 72px → 56px */
  --margin-section-lg: clamp(4rem, 8vw, 8rem);         /* 64px → 96px → 72px */
  
  /* ===================================
      PADDING SYSTEM
      Component and container padding
   =================================== */
  
  /* Component padding */
  --padding-xs: clamp(0.25rem, 0.5vw, 0.375rem);         /* 4px → 6px → 6px */
  --padding-sm: clamp(0.5rem, 1vw, 0.75rem);             /* 8px → 12px → 12px */
  --padding-md: clamp(0.75rem, 1.5vw, 1rem);             /* 12px → 18px → 16px */
  --padding-lg: clamp(1rem, 2vw, 1.25rem);               /* 16px → 24px → 20px */
  --padding-xl: clamp(1.5rem, 3vw, 1.75rem);             /* 24px → 36px → 28px */
  --padding-2xl: clamp(2rem, 4vw, 2.25rem);              /* 32px → 48px → 36px */
  
  /* Container padding */
  --padding-container-sm: clamp(1rem, 2vw, 1.25rem);     /* 16px → 24px → 20px */
  --padding-container-md: clamp(1.5rem, 3vw, 1.75rem);    /* 24px → 36px → 28px */
  --padding-container-lg: clamp(2rem, 4vw, 2.25rem);     /* 32px → 48px → 36px */
  
  /* Section padding */
  --padding-section-sm: clamp(2.5rem, 5vw, 3rem);        /* 40px → 60px → 48px */
  --padding-section-md: clamp(3.5rem, 7vw, 4rem);        /* 56px → 84px → 64px */
  --padding-section-lg: clamp(4.5rem, 9vw, 5rem);        /* 72px → 108px → 80px */
  
  /* ===================================
      GAP SYSTEM
      For flexbox and grid layouts
   =================================== */
  
  /* Micro gaps */
  --gap-xs: clamp(0.25rem, 0.5vw, 0.375rem);              /* 4px → 6px → 6px */
  --gap-sm: clamp(0.5rem, 1vw, 0.75rem);                /* 8px → 12px → 12px */
  --gap-md: clamp(0.75rem, 1.5vw, 1rem);                /* 12px → 18px → 16px */
  --gap-lg: clamp(1rem, 2vw, 1.25rem);                  /* 16px → 24px → 20px */
  --gap-xl: clamp(1.5rem, 3vw, 1.75rem);                /* 24px → 36px → 28px */
  --gap-2xl: clamp(2rem, 4vw, 2.25rem);                 /* 32px → 48px → 36px */
  
  /* Layout gaps */
  --gap-grid-sm: clamp(1rem, 2vw, 1.25rem);             /* 16px → 24px → 20px */
  --gap-grid-md: clamp(1.5rem, 3vw, 1.75rem);            /* 24px → 36px → 28px */
  --gap-grid-lg: clamp(2rem, 4vw, 2.25rem);             /* 32px → 48px → 36px */
  
  /* ===================================
      BORDER RADIUS SYSTEM
      Consistent corner rounding
   =================================== */
  
  /* Micro radius */
  --radius-none: 0;
  --radius-xs: clamp(0.125rem, 0.25vw, 0.1875rem);       /* 2px → 3px → 3px */
  --radius-sm: clamp(0.25rem, 0.5vw, 0.375rem);          /* 4px → 6px → 6px */
  --radius-md: clamp(0.375rem, 0.75vw, 0.5rem);          /* 6px → 9px → 8px */
  --radius-lg: clamp(0.5rem, 1vw, 0.625rem);             /* 8px → 12px → 10px */
  --radius-xl: clamp(0.75rem, 1.5vw, 0.875rem);          /* 12px → 18px → 14px */
  --radius-2xl: clamp(1rem, 2vw, 1.125rem);              /* 16px → 24px → 18px */
  --radius-3xl: clamp(1.5rem, 3vw, 1.5rem);              /* 24px → 36px → 24px */
  --radius-full: clamp(9999px, 9999vw, 9999px);          /* Always round */
  
  /* ===================================
      WIDTH & HEIGHT SYSTEM
      Responsive dimensions
   =================================== */
  
  /* Component widths */
  --width-xs: clamp(8rem, 16vw, 12rem);                  /* 128px → 192px → 192px */
  --width-sm: clamp(12rem, 24vw, 16rem);                 /* 192px → 288px → 256px */
  --width-md: clamp(16rem, 32vw, 20rem);                 /* 256px → 384px → 320px */
  --width-lg: clamp(20rem, 40vw, 24rem);                 /* 320px → 480px → 384px */
  --width-xl: clamp(24rem, 48vw, 28rem);                 /* 384px → 576px → 448px */
  --width-2xl: clamp(32rem, 64vw, 36rem);                /* 512px → 768px → 576px */
  --width-3xl: clamp(40rem, 80vw, 42rem);                /* 640px → 960px → 672px */
  --width-4xl: clamp(48rem, 90vw, 48rem);                /* 768px → 1080px → 768px */
  --width-full: clamp(100%, 100vw, 100%);                /* Always full */
  
  /* Container widths */
  --width-container-sm: clamp(100%, 95vw, 48rem);        /* Full → 90% → 768px */
  --width-container-md: clamp(100%, 90vw, 64rem);        /* Full → 90% → 1024px */
  --width-container-lg: clamp(100%, 90vw, 75rem);        /* Full → 90% → 1200px */
  --width-container-xl: clamp(100%, 90vw, 87.5rem);      /* Full → 90% → 1400px */
  
  /* Component heights */
  --height-extra-sm: clamp(2.5rem, 5vw, 3rem);        	 /* 40px → 60px → 48px */
  --height-extra-md: clamp(2.75rem, 5vw, 3rem);        	 /* 44px → 60px → 48px */
  --height-extra-lg: clamp(4rem, 7vw, 6rem);       	 
 
  --height-xs: clamp(6rem, 12vw, 8rem);                  /* 96px → 144px → 128px */
  --height-sm: clamp(8rem, 16vw, 10rem);                 /* 128px → 192px → 160px */
  --height-md: clamp(10rem, 20vw, 12rem);                /* 160px → 240px → 192px */
  --height-lg: clamp(12rem, 24vw, 14rem);                /* 192px → 288px → 224px */
  --height-xl: clamp(16rem, 32vw, 18rem);                /* 256px → 384px → 288px */
  --height-2xl: clamp(20rem, 40vw, 22rem);               /* 320px → 480px → 352px */
  --height-3xl: clamp(24rem, 48vw, 26rem);               /* 384px → 576px → 416px */
  --height-4xl: clamp(32rem, 60vw, 32rem);               /* 512px → 720px → 512px */
  --height-full: clamp(100vh, 100vh, 100vh);             /* Always full viewport */
  
	/* ЛAYOUT */
	--container-max: clamp(100%, 90vw, 1200px);  		/* Адаптивный максимум */
	--container-gutter: clamp(1rem, 2vw, 2rem);			/* 16px → 24px → 32px */

	/* УТИЛИТЫ */
	--shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
	--shadow-md: 0 8px 24px rgba(0,0,0,0.12);
	
	/* CUSTOM VARS */
	--gallery-img-height_sm: clamp(150px, 20vw, 200px);
    --gallery-img-width_sm: clamp(200px, 30vw, 260px);
	
	--gallery-img-height_md: clamp(200px, 25vw, 280px);     /* 200px → 320px → 280px */
	--gallery-img-width_md: clamp(250px, 35vw, 320px);  /* 250px → 336px → 320px */
	
	--gallery-img-height_lg: clamp(240px, 30vw, 320px);     /* 240px → 384px → 320px */
	--gallery-img-width_lg: clamp(280px, 40vw, 360px);  /* 280px → 384px → 360px */
	
    --trust-img-max-width: clamp(280px, 40vw, 360px);  /* 280px → 320px → 360px */
    --trust-img-max-height: clamp(200px, 30vw, 280px); /* 200px → 240px → 280px */	
    --trust-img-radius: clamp(0.75rem, 2vw, 1.25rem); /* 12px → 24px → 20px */
	
	--icon-size-sm: clamp(24px, 4vw, 32px);

/* ======================================================
   FONTS
====================================================== */

@font-face {
  font-family: 'Bebas Neue';
  src: url('../fonts/BebasNeue-Regular.woff2') format('woff2'),
       url('../fonts/BebasNeue-Regular.woff') format('woff');
  font-weight: 400;
  font-display: swap;  /* Быстрая загрузка */
}

@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-VariableFont_wght.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: 'Open Sans';
  src: url('../fonts/OpenSans-VariableFont_wdth,wght.woff2') format('woff2');
  font-weight: 300 800;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto';
  src: url('../fonts/Roboto-VariableFont_wdth,wght.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}

/* ======================================================
   1. RESET / BASE
   Mobile First (0–480px)
====================================================== */

*,
*::before,
*::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	font-size: clamp(16px, 2.5vw, 20px);
	-webkit-text-size-adjust: 100%; /* Предотвращает zoom на iOS */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body {
	font-family: var(--font-ui);
	line-height: var(--line-height-relaxed);
	color: var(--color-text-primary);
	background: var(--color-bg-primary);
	/* padding-top: var(--padding-2xl); */
}

main {
	display: block; /* Для старых браузеров */
}

section {
    padding: var(--padding-xl) var(--padding-lg); 
/* 	padding: clamp(40px, 8vw, 80px) 0; */
}

img {
	max-width: 100%;
	height: auto;
	display: block; /* Убирает лишние отступы */
}

a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover,
a:focus {
	color: var(--color-primary-dark);
	text-decoration: underline;
}

button {
	font-family: inherit;
	font-size: var(--font-size-body); /* Предотвращает zoom на iOS */
	border: none;
	background: none;
	cursor: pointer;
	transition: all 0.2s ease;
}

ul {
	list-style: none;
}

/* ================= TYPOGRAPHY ================= */

h1, h2 {
    font-size: var(--font-size-h2);
    line-height: var(--line-height-small);
    margin-bottom: var(--margin-md);
	font-weight: var(--font-weight-bold);
	color: var(--color-text-primary);
}

h3 {
	font-size: var(--font-size-h3);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-normal);
	margin-bottom: var(--margin-md);
	color: var(--color-text-primary);
}

/*
h4 {
	font-size: 1.125rem;
	font-weight: var(--font-weight-semibold);
	line-height: 1.4;
	margin-bottom: 0.5rem;
	color: var(--color-text-primary);
}
*/

h5 {
	font-size: var(--font-size-h5);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-normal);
	margin-bottom: var(--margin-sm);
	color: var(--color-text-primary);
}

/*
h6 {
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.4;
	margin-bottom: 0.5rem;
	color: var(--color-text-primary);
}
*/

p, li {
	font-family: var(--font-ui);
	font-size: var(--font-size-body);
	line-height: var(--line-height-relaxed);
	margin-bottom: var(--margin-sm);
}

p:last-child,
li:last-child {
	margin-bottom: 0;
}

strong {
	font-weight: var(--font-weight-bold);
}

/* ================= FORM ELEMENTS ================= */

input,
select {
	font-family: inherit;
	font-size: var(--font-size-body);
}

label {
	display: block;
	font-weight: var(--font-weight-semibold);
	font-size: var(--font-size-small);
	margin-bottom: var(--margin-sm);
}

/* ======================================================
   2. LAYOUT
====================================================== */



/* .row {

} */

/* vertical rhythm (lobotomized owl) */
article > * + *,
section > * + * {
  margin-top: var(--space-md);
}



/* ======================================================
   3. HEADER (обновленный)
====================================================== */

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: transparent;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.site-header.scrolled {
  background-color: #fff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.site-header.scrolled .header-nav a {
  color: #000;
}

.site-header.scrolled a,
.site-header.scrolled nav {
  color: #000;
}

.header-container {
  max-width: var(--container-max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between; 
  padding: var(--padding-sm) var(--padding-md);
  gap: var(--gap-xs);
}

.header-left {
  order: 1;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--gap-sm);
}

.header-left img {
  height: var(--height-extra-sm);
}

.header-right {
  display: flex;
  order: 2;
  align-items: center;
  gap: var(--gap-sm);
}

.header-text p {
  font-weight: var(--font-weight-normal);
}

/* Icons */

.logo img {
  height: var(--height-extra-lg);
  display: block;
}

.custom-ico {
  width: var(--space-7);
  height: var(--space-7);
}

/* Burger Menu */

.burger-btn {
  display: flex;
  width: var(--height-extra-sm);
  height: var(--height-extra-sm);
  flex-direction: column;
  justify-content: space-around;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--padding-xs);
  z-index: 1002;
}

.burger-btn span {
  width: 100%;
  height: 3px;
  background: var(--color-text-primary);
  border-radius: 2px;
  transition: all 0.3s ease;
  transform-origin: center;
}

.burger-btn.active {
  font-size: 24px;
  font-weight: bold;
  color: #000;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Навигация - мобильное меню */

.header-nav {
  position: fixed;
  top: 80px; /* Под header */
  left: 0;
  right: 0;
  height: 0;
  background: var(--color-bg-primary);
  overflow: hidden;
  transition: height 0.3s ease-in-out;
  z-index: 999;
}

.header-nav.active {
  height: var(--width-lg); /* Фиксированная высота меню */
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.nav-content {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--padding-xl) var(--padding-md);
}

.nav-links {
  display: flex;
  flex-direction: column;
  gap: var(--gap-md);
  margin-bottom: var(--gap-lg);
}

.nav-links a {
  text-decoration: none;
  font-weight: var(--font-weight-medium);
  color: #000;
  font-size: var(--font-size-body);
  padding: var(--padding-sm) 0;
  transition: color 0.2s ease;
}

.nav-links a:hover {
  color: var(--color-primary);
}

.nav-contacts {
  margin-top: auto;
  padding-top: var(--gap-md);
  display: flex;
  align-items: center;
  gap: var(--gap-lg);
}
 
.nav-phone {
  display: block;
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-semibold);
  color: #000;
  text-decoration: none;
}
 
.nav-social {
  display: flex;
  gap: var(--gap-md);
}
 
.nav-social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--height-extra-sm);
  height: var(--height-extra-sm);
  color: #000;
  opacity: 0.7;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
 
.nav-social-icon:hover {
  opacity: 1;
}

/* Сдвиг контента при открытом меню */
body.menu-open {
  padding-top: calc(80px + 280px); /* Высота header + высота меню */
}

body.menu-open .site-header {
  background-color: #fff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

body.menu-open .site-header .burger-btn {
  color: #000;
}

/* ======================================================
   4. HERO
====================================================== */

.section-hero {
  /* height: var(--height-3xl); */
 /*  height: 100%; */
  display: flex;
  align-items: center;
  color: #000; /* черный текст */
  
  /* два фона: градиент + картинка */
  background-image: 
	linear-gradient(to right, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0) 50%), 
    url('../img/bg/9.webp');
  /* background-repeat: no-repeat; */
  background-size: cover;
  background-position: center bottom;

}

.section-hero .btn-lg {
  margin-top: var(--margin-xl);
}

.hero-content {
  max-width: var(--container-max);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  margin-top: var(--padding-section-lg);
}

.hero-text {
  max-width: var(--width-2xl);
}


/* ======================================================
   5. BENEFITS
====================================================== */

.section-benefits 
.benefits-list > div {
  background: var(--color-bg-primary);
  padding: 0px;
  border-radius: var(--radius-lg);
}

.benefit-card {
  background: var(--color-bg-primary);
  border-radius: var(--radius-xl);
  padding: var(--padding-md) var(--padding-lg);
  height: 100%;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}

.benefit-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.benefit-card p {
  margin: 0;
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
  color: #555;
}

.benefit-header {
  display: flex;
  align-items: center;
  gap: var(--gap-sm);
  margin-bottom: var(--margin-sm);
}

.benefit-header img {
  width: var(--icon-size-sm);
  height: var(--icon-size-sm);
}
 
/* GALLERY */
 .gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);  /* Mobile: 2 колонки */
  gap: var(--gap-xl);
  max-width: var(--width-container-lg);
  margin: 0 auto;
}
 
.gallery-img {
  width: 100%;
  height: auto;
  min-height: 200px;  /* Минимальная высота */
  border-radius: var(--radius-lg);
  object-fit: cover;
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  aspect-ratio: 16/9;  /* Сохраняем пропорции */
}
 
.gallery-img:hover {
  transform: scale(1.05);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

/* Modal — масштабирование фото на экран с сохранением пропорций */
.modal-img {
  display: block;
  margin: auto;
  max-width: 90vw;
  max-height: 90vh;
  width: auto;
  height: auto;
  border-radius: var(--radius-lg);
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
  object-fit: contain;
}
 
/* ======================================================
   6. TRUST
====================================================== */

.trust-intro-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--gap-grid-md);
}
 
.trust-text {
    flex: 1;
    text-align: justify;
    order: 1;
}
 
.trust-photo {
    flex: 1;
    order: 2;
}
 
.trust-photo img {
	width: 100%;
    max-width: none;
    max-height: none;
    height: auto;
    object-fit: cover;
	border-radius: var(--trust-img-radius);
} 

/* ======================================================
   7. REVIEWS
====================================================== */
.section-reviews {
  padding: var(--padding-section-sm) var(--padding-container-sm);
}
 
.reviews-scroll {
  display: flex;
  gap: var(--gap-xl);
  overflow-x: auto;
  padding-bottom: var(--padding-md);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--color-bg-secondary) transparent;
}
 
.reviews-scroll::-webkit-scrollbar {
  height: 6px;
}
 
.reviews-scroll::-webkit-scrollbar-track {
  background: var(--color-bg-secondary);
  border-radius: 3px;
}
 
.reviews-scroll::-webkit-scrollbar-thumb {
  background: var(--color-text-secondary);
  border-radius: 3px;
}
 
.review-card-dark {
  flex: 0 0 100%;
  min-height: 280px;
  background: #1e1f22;
  color: var(--color-bg-primary);
  border-radius: var(--radius-xl);
  padding: var(--padding-md);
  display: flex;
  flex-direction: column;
  gap: var(--gap-sm);
  scroll-snap-align: start;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
 
.review-card-dark:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(30, 31, 34, 0.3);
}
 
.review-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--margin-sm);
}
 
.stars {
  color: #f5c518;
  font-size: var(--font-size-small);
  display: flex;
  gap: 2px;
}
 
.review-source {
  font-size: var(--font-size-caption);
  opacity: 0.6;
  color: var(--color-text-secondary);
}
 
.review-text {
  font-size: var(--font-size-small);
  line-height: var(--line-height-normal);
  max-height: 120px;
  overflow: hidden;
  position: relative;
  transition: max-height 0.3s ease;
  flex: 1;
}
 
.review-toggle {
  display: none;
}
 
.review-more {
  margin-top: var(--margin-sm);
  font-size: var(--font-size-caption);
  color: var(--color-text-secondary);
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s ease, color 0.2s ease;
  align-self: flex-start;
}
 
.review-more:hover {
  opacity: 1;
  color: var(--color-primary);
}
 
.review-toggle:checked ~ .review-text {
  max-height: 1000px;
}
 
.review-toggle:checked ~ .review-more {
  display: none;
}

/* ======================================================
   8. PRICING
====================================================== */

.section-pricing {
	padding: var(--padding-section-md) 0;
	background: var(--color-bg-primary);
}
 
.section-title {
	font-size: var(--font-size-display-2);
	font-weight: var(--font-weight-bold);
	margin-bottom: var(--margin-2xl);
	text-align: center;
}
 
.pricing-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--gap-lg);
	max-width: var(--width-container-lg);
	margin: 0 auto;
}
 
.pricing-card {
	display: flex;
    flex-direction: column;
	background: var(--color-bg-primary);
	padding: var(--padding-xl) var(--padding-lg);
	text-align: center;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
 
.pricing-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
}
 
.pricing-title {
	font-size: var(--font-size-h2);
	font-weight: var(--font-weight-semibold);
	margin-bottom: var(--margin-xl);
}
 
.pricing-features {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--padding-xl) 0;
	flex: 1;
}
 
.pricing-features li {
	padding: var(--padding-md) 0;
	border-top: 1px solid var(--color-bg-secondary);
	font-size: var(--font-size-body);
	line-height: var(--line-height-normal);
}
 
.pricing-features li:first-child {
	border-top: none;
}
 

/* ======================================================
   SERVICE CARD - MOBILE-FIRST
====================================================== */

.service-card {
  max-width: 100%;
  margin: var(--margin-section-sm) auto;
  background: var(--color-bg-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}

.service-inner {
  display: flex;
  flex-direction: column;
  gap: var(--gap-xl);
  padding: var(--padding-lg);
}

/* Изображение */
.service-image img {
  width: auto;
  height: auto;
  object-fit: cover;
  border-radius: var(--radius-lg);
}

/* Контент */
.service-content {
  display: flex;
  flex-direction: column;
  gap: var(--gap-lg);
}

/* Заголовок */
.service-header {
  display: flex;
  flex-direction: column;
  gap: var(--gap-lg);
}

.service-price {
  font-size: var(--font-size-h5);
  font-weight: var(--font-weight-semibold);
}

.service-action .btn {
  padding: var(--padding-md) var(--padding-xl);
  background: var(--color-primary);
  color: var(--color-bg-primary);
  border: none;
  border-radius: var(--radius-md);
  text-decoration: none;
  text-align: center;
  transition: all 0.3s ease;
}

.service-action .btn:hover {
  background: var(--color-primary-dark);
  transform: translateY(-2px);
}

/* Текст */
.format-lead {
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
  margin-bottom: var(--margin-md);
}

.service-text p {
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--margin-md);
}

.format-features {
  list-style: none;
  padding: 0;
  margin: 0;
}

.format-features li {
  position: relative;
  padding-left: var(--padding-lg);
  margin-bottom: var(--margin-sm);
}

.format-features li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--color-primary);
  font-weight: var(--font-weight-semibold);
}

/* Reverse */
.service-card.reverse .service-inner {
  flex-direction: column-reverse;
}

/* ======================================================
   10. STUDENT GUIDE
====================================================== */

.student-guide {
  background: var(--color-bg-secondary);
  border-radius: var(--radius-2xl);
  padding: var(--padding-section-sm) var(--padding-container-sm);
  max-width: var(--width-container-lg);
  margin: var(--margin-section-sm) auto;
  box-shadow: var(--shadow-sm);
}
 
.student-guide ul li {
  color: var(--color-text-secondary);
}
 
.student-guide ul li strong {
  color: var(--color-text-primary);
}

.guide-intro-wrapper {
  display: flex;
  flex-direction: column;  /* Mobile: колонка */
  gap: var(--gap-xl);
  align-items: center;
}

.guide-text {
  flex: 1;
  max-width: 100%;
  text-align: justify;
  order: 1;
}
 
.guide-video {
  flex: 1;
  max-width: 100%;
  text-align: center;
  order: 2;
}

/* ======================================================
   11. HOW TO GET
====================================================== */

.section-how-to-get {
  padding: var(--padding-section-md) var(--padding-container-sm);
  background: var(--color-bg-secondary);
  font-family: var(--font-ui);
  min-height: var(--height-2xl);
}

.how-to-get-inner {
  max-width: var(--width-container-lg);
  margin: 0 auto;
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Mobile: текст и кнопки вертикально */
.how-to-get-top {
  display: flex;
  flex-direction: column;
  gap: var(--gap-xl);
  align-items: stretch;
  margin-bottom: var(--gap-xl);
}

/* Текстовый блок */
.how-to-get-text {
  background: #e0f0ff;
  padding: var(--padding-lg);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

.how-to-get-text h2 {
  font-size: var(--font-size-display-2);
  margin-bottom: var(--margin-md);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
}

.how-to-get-text p {
  color: var(--color-text-secondary);
  line-height: var(--line-height-relaxed);
  margin-bottom: var(--margin-md);
}

.how-to-get-text ul {
  list-style: none;
  padding-left: 0;
}

.how-to-get-text ul li {
  position: relative;
  padding-left: var(--padding-lg);
  margin-bottom: var(--margin-md);
}

.how-to-get-text ul li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--color-primary);
  font-weight: var(--font-weight-semibold);
}

/* Кнопки табов */
.how-to-get-tabs {
  display: flex;
  flex-direction: column;
  gap: var(--gap-md);
}

.tab-btn {
  padding: var(--padding-md) var(--padding-lg);
  background: var(--color-text-primary);
  color: var(--color-bg-primary);
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
  font-weight: var(--font-weight-medium);
  transition: all 0.3s ease;
  font-size: var(--font-size-btn);
  text-align: center;
  display: inline-block;
}

.tab-btn:hover {
  background: #1f2937;
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}

.tab-btn.active {
  background: var(--color-primary);
  color: var(--color-bg-primary);
}

/* Медиа контейнер */
.how-to-get-media {
  width: 100%;
  height: 100%;
  min-height: var(--height-lg);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  margin-top: var(--gap-xl);
}

.how-to-get-media .tab-content {
  width: 100%;
  height: 100%;
}

.how-to-get-media iframe {
  width: 100%;
  height: 100%;
  min-height: var(--height-lg);
  border-radius: var(--radius-xl);
  border: none;
}

/* Tab content скрытие/показ */
.tab-content {
  display: none;
  width: 100%;
  height: 100%;
}

.tab-content.active {
  display: block;
}

/* ======================================================
   12. CTA SECTIONS
====================================================== */

/* Общие стили для обеих секций */
.section-cta-final,
.section-cta-secondary {
  background-size: cover;
  background-position: center;
  color: var(--color-text-primary);
  position: relative;
  padding: var(--padding-section-sm) var(--padding-container-sm);
}

/* Оверлей для улучшения читаемости */
.section-cta-final::before,
.section-cta-secondary::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 1;
}

.section-cta-final::before {
  background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%);
}

.section-cta-secondary::before {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(1px);
}

/* Финальный CTA с фоном */
.section-cta-final {
  background: url('../img/bg/20.webp') no-repeat top center;
  background-size: cover;
}

.cta-final-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: var(--width-container-lg);
  width: 100%;
  gap: var(--gap-2xl);
  position: relative;
  z-index: 2;
  text-align: center;
}

.cta-left {
  flex: 1;
  text-align: center;
}

.cta-left h2 {
  font-size: var(--font-size-display-2);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--margin-lg);
  color: var(--color-text-primary);
  line-height: var(--line-height-tight);
}

.cta-right {
  flex: 0 0 auto;
  min-height: var(--height-md);
}

/* Вторичный CTA */
.section-cta-secondary {
  background: url('../img/bg/15.webp') no-repeat top center;
}

.cta-secondary-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: var(--width-container-lg);
  margin: 0 auto;
  gap: var(--gap-lg);
  position: relative;
  z-index: 2;
  text-align: center;
}

.cta-text h2 {
  font-size: var(--font-size-display-2);
  margin: 0 0 var(--margin-sm) 0;
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
}

.cta-text .cta-message {
  font-size: var(--font-size-h5);
  margin: 0;
  color: var(--color-text-secondary);
}

/* Общие стили кнопок */
.cta-left .btn,
.cta-button .btn {
  padding: var(--padding-md) var(--padding-xl);
  font-size: var(--font-size-btn);
  background: var(--color-primary);
  color: var(--color-bg-primary);
  border: none;
  border-radius: var(--radius-lg);
  text-decoration: none;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--font-weight-medium);
  transition: all 0.3s ease;
}

.cta-left .btn:hover,
.cta-button .btn:hover {
  background: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

/* ======================================================
   13. FOOTER
====================================================== */

.site-footer {
  background: #0f172a;
  color: #e5e7eb;
  padding: var(--padding-xl) var(--padding-md);
  font-family: var(--font-primary);
}

.footer-container {
  max-width: var(--width-container-lg);
  margin: 0 auto;
}

.footer-content {
  display: flex;
  flex-direction: column;
  gap: var(--gap-2xl);
  margin-bottom: var(--gap-2xl);
}

.footer-section {
  flex: 1;
}

.footer-title {
  color: var(--color-bg-primary);
  font-size: var(--font-size-normal);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--margin-md);
}

.footer-text {
  font-size: var(--font-size-body);
  line-height: var(--line-height-relaxed);
  color: #cbd5e1;
}

.footer-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--gap-sm);
}

.footer-list a {
  color: #cbd5e1;
  text-decoration: none;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  gap: var(--gap-sm);
  padding: var(--padding-xs) 0;
  font-size: var(--font-size-small);
  border-radius: var(--radius-sm);
  position: relative;
}

.footer-list a::before {
  content: '→';
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.3s ease;
  font-size: var(--font-size-caption);
}

.footer-list a:hover {
  color: var(--color-bg-primary);
  background: rgba(255, 255, 255, 0.1);
  transform: translateX(4px);
  padding-left: var(--padding-sm);
}

.footer-list a:hover::before {
  opacity: 1;
  transform: translateX(0);
}

/* Контактная информация */
.contact-info {
  margin-bottom: var(--margin-md);
}

.contact-address,
.contact-hours {
  font-size: var(--font-size-caption);
  color: #94a3b8;
  margin-bottom: var(--margin-sm);
}

.contact-list {
  gap: var(--gap-md);
}

/* Нижняя часть */
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: var(--padding-md);
  text-align: center;
  color: #94a3b8;
  font-size: var(--font-size-small);
}

/* ======================================================
   14. COMPONENTS
====================================================== */

/* Buttons */

.btn {
	display: inline-block;
	font-weight: var(--font-weight-normal);
	text-align: center;
	white-space: nowrap;
	vertical-align: middle;
	user-select: none;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	padding: var(--padding-sm) var(--padding-md);
	font-size: var(--font-size-btn);
	line-height: var(--line-height-normal);
	transition: color 0.15s ease-in-out;
	min-height: var(--height-extra-md);
}
  
.btn-primary {
	color: var(--color-bg-primary);
	background-color: var(--color-primary);
	border-color: #007bff;
}
 
.btn-primary:hover {
	color: var(--color-bg-primary);
	background-color: var(--color-primary-dark);
	border-color: #0062cc;
	text-decoration: none;
}
  
.btn-submit {
	margin-top: var(--margin-sm);
	padding: var(--padding-sm);
	font-size: var(--font-size-body);
}
  
.btn-lg {
	padding: var(--padding-md) var(--padding-lg);
	line-height: var(--line-height-normal);
	border-radius: var(--radius-sm);
}

/* Popup */

.popup-section {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0,0,0,0.6);
  display: none;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 9999;
}

.popup-section.active {
  display: flex;
  opacity: 1;
}

.popup-content {
  background: #fff;
  padding: var(--padding-container-md);
  border-radius: var(--radius-xl);
  max-width: 90vw;
  max-height: 100vh;
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.close-popup {
  position: absolute;
  top: var(--padding-sm);
  right: var(--padding-lg);
  background: transparent;
  border: none;
  font-size: var(--font-size-h2);
  cursor: pointer;
  z-index: 1;
}

.form-title {
  text-align: center;
  margin-bottom: var(--margin-sm);
}

.form-subtitle {
  text-align: center;
  font-size: var(--font-size-normal);
  color: #555;
  margin-bottom: var(--margin-lg);
}

#booking-form {
  display: flex;
  flex-direction: column;
  gap: var(--gap-lg);
}

#booking-form label {
  display: flex;
  flex-direction: column;
  font-size: var(--font-size-normal);
  color: #444;
}

#booking-form input,
#booking-form select {
  margin-top: var(--margin-sm);
  padding: var(--padding-sm) var(--padding-md);
  border-radius: var(--radius-lg);
  border: 1px solid #d1d5db;
  font-size: var(--font-size-normal);
}

#booking-form input:focus,
#booking-form select:focus {
  outline: none;
  border-color: #2563eb;
}

.btn-submit {
  margin-top: auto;
  padding: var(--padding-md);
  font-size: var(--font-size-body);
}


/* ======================================================
   15. UTILITIES (если нужны)
====================================================== */


/* Десктопная версия - скрыть бургер и показать обычную навигацию */
@media (min-width: 768px) {
	
/* Container / Grid */

.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--container-gutter);
  padding-right: var(--container-gutter);
}

.header-container {
 padding: var(--padding-xs) var(--padding-section-sm);
}



.hero-content{
	margin-top: var(--height-xs);
	
}

.burger-btn {
    display: none;
  }
  
  /* Скрываем мобильное меню */
  .header-nav {
    position: static;
    height: auto;
    background: transparent;
    overflow: visible;
    box-shadow: none;
    top: 0;
  }
  
  .header-nav.active {
    height: auto;
  }
  
  /* Nav-content как таблица 1x2 */
  .nav-content {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    width: 100%;
  }
  
  /* Левая ячейка - nav-links по центру */
  .nav-links {
    flex: 1;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: var(--gap-lg);
    margin-bottom: 0;
  }
  
  /* Правая ячейка - nav-contacts справа */
  .nav-contacts {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--gap-lg);
    margin-top: 0;
    padding-top: 0;
  }
  
  .nav-phone {
    font-size: var(--font-size-small);
  }
  
  .custom-ico {
    width: var(--space-6);
    height: var(--space-6);
  }
  
  .header-right {
    display: block;
    width: 100%;
  }

  .popup-content {
    padding: var(--padding-container-lg);
    max-width: 600px;
  }
  
  .close-popup {
    top: 16px;
    right: 16px;
    font-size: 1.5rem;
  }
  
  .form-title {
    margin-bottom: 8px;
  }
  
  .form-subtitle {
    font-size: 15px;
    margin-bottom: 24px;
  }
  
  #booking-form {
    gap: 16px;
  }
  
  #booking-form label {
    font-size: 14px;
  }
  
  #booking-form input,
  #booking-form select {
    margin-top: 6px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 15px;
  }
  
  .btn-submit {
    margin-top: 10px;
    padding: 12px;
    font-size: 16px;
  }

  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  
  .gallery-img {
    min-height: 180px;  /* Немного меньше для 3 колонок */
  }
	.trust-intro-wrapper {
    flex-direction: row;
}

	.trust-text {
    order: 1;
}

	.trust-photo {
    order: 2;
}  
  .section-reviews {
    padding: var(--padding-section-md) var(--padding-container-md);
  }
  
  .review-card-dark {
    flex: 0 0 calc(50% - var(--gap-xl) / 2);
    min-height: 300px;
    padding: var(--padding-lg);
    gap: var(--gap-md);
  }
  
  .review-header {
    margin-bottom: var(--margin-md);
  }
  
  .stars {
    font-size: var(--font-size-normal);
  }
  
  .review-text {
    font-size: var(--font-size-normal);
    line-height: var(--line-height-relaxed);
    max-height: 150px;
  }
  
  .section-pricing {
    padding: var(--padding-section-lg) 0;
  }
  
  .section-title {
    font-size: var(--font-size-display-1);
    margin-bottom: var(--margin-3xl);
  }
  
  .pricing-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gap-xl);
  }
  
  .pricing-card {
    padding: var(--padding-2xl) var(--padding-xl);
  }
  
  .service-card {
    margin: var(--margin-section-md) auto;
    border-radius: var(--radius-xl);
  }
  
  .service-inner {
    flex-direction: row;
    gap: var(--gap-2xl);
    padding: var(--padding-xl);
  }
  
  .service-image {
    flex: 0 0 45%;
  }
  
  .service-content {  
    padding: var(--padding-sm) var(--padding-md);
  }  

  .service-header {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  
  .service-card.reverse .service-inner {
    flex-direction: row-reverse;
  }
  
  .section-how-to-get {
    padding: var(--padding-section-lg) var(--padding-container-md);
    min-height: var(--height-3xl);
  }
  
  .how-to-get-inner {
    max-width: var(--width-container-xl);
  }
  
  .how-to-get-top {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--gap-2xl);
  }
  
  .how-to-get-text {
    flex: 1;
    padding: var(--padding-xl);
  }
  
  .how-to-get-tabs {
    flex: 0 0 300px;
  }
  
  .how-to-get-media {
    min-height: var(--height-xl);
  }
  .section-cta-final,
  .section-cta-secondary {
    padding: var(--padding-section-md) var(--padding-container-md);
  }
  
  .section-cta-final {
    min-height: var(--height-4xl);
  }
  
  .cta-final-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-3xl);
    text-align: left;
  }
  
  .cta-left {
    flex: 1;
    text-align: left;
  }
  
  .cta-left h2 {
    font-size: var(--font-size-display-1);
    margin-bottom: var(--margin-xl);
  }
  
  .cta-right {
    flex: 0 0 40%;
    min-height: var(--height-lg);
  }
  
  .cta-secondary-inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: var(--gap-xl);
    text-align: left;
  }
  
  .cta-text {
    flex: 1;
  }
  
  .cta-text h2 {
    font-size: var(--font-size-display-1);
    margin: 0 0 var(--margin-md) 0;
  }
  
  .cta-text .cta-message {
    font-size: var(--font-size-h3);
  }
  
  .site-footer {
    padding: var(--padding-2xl) var(--padding-lg);
  }
  
  .footer-container {
    max-width: var(--width-container-xl);
  }
  
  .footer-content {
    flex-direction: row;
    gap: var(--gap-3xl);
  }
  
  .footer-section {
    flex: 1;
  }
  
  .footer-about {
    flex: 2;
  }
  
  .footer-nav {
    flex: 1;
  }
  
  .footer-contacts {
    flex: 1;
  }
}

@media (min-width: 1024px) {
  
  .popup-content {
    padding: var(--padding-container-lg);
    max-width: 700px;
  }
  
  .close-popup {
    top: 16px;
    right: 16px;
  }

  .gallery-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  
  .gallery-img {
    min-height: 160px;  /* Еще меньше для 4 колонок */
  }
  
  .section-reviews {
    padding: var(--padding-section-lg) var(--padding-container-lg);
  }
  
  .review-card-dark {
    flex: 0 0 calc(25% - var(--gap-xl) * 3 / 4);
    min-height: 320px;
    padding: var(--padding-xl);
    gap: var(--gap-lg);
  }
  
  .review-header {
    margin-bottom: var(--margin-lg);
  }
  
  .stars {
    font-size: var(--font-size-h5);
  }
  
  .review-text {
    font-size: var(--font-size-body);
    max-height: 180px;
  }
  
  .pricing-grid {
	grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-2xl);
  }
  
  .pricing-card:hover {
    transform: translateY(-6px);
  }
  
  .service-card {
    margin: var(--margin-section-lg) auto;
    border-radius: var(--radius-2xl);
  }
  
  .service-inner {
    gap: var(--gap-3xl);
    padding: var(--padding-2xl);
  }
  
  .section-cta-final,
  .section-cta-secondary {
    padding: var(--padding-section-lg) var(--padding-container-lg);
  }
  
  .cta-final-inner,
  .cta-secondary-inner {
    max-width: var(--width-container-xl);
  }
  
  .cta-left h2 {
    font-size: var(--font-size-display-1);
  }
  
  .cta-right {
    flex: 0 0 50%;
    min-height: var(--height-xl);
  }
  
  .cta-secondary-inner {
    gap: var(--gap-2xl);
  }
  
  .cta-text h2 {
    margin: 0 0 var(--margin-lg) 0;
  }
  
  .site-footer {
    padding: var(--padding-2xl) var(--padding-xl);
  }
  
  .footer-content {
    gap: var(--gap-4xl);
  }
  
  .footer-title {
    font-size: var(--font-size-h5);
  }
  
  .footer-text {
    font-size: var(--font-size-body);
  }
  
  .footer-list a {
    font-size: var(--font-size-body);
  }
  
  .contact-address,
  .contact-hours {
    font-size: var(--font-size-body);
  } 
}
 

@media (min-width: 1400px) {

  .popup-content {
	  padding: var(--padding-container-lg);
    max-width: 800px;
  }
  
  .gallery-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  
  .gallery-img {
    min-height: 180px;  /* Чуть больше для больших экранов */
  }
  
  .pricing-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--gap-3xl);
  }
  
  .how-to-get-tabs {
    flex: 0 0 400px;
  }
  .cta-left .btn {
    padding: var(--padding-lg) var(--padding-2xl);
    font-size: var(--font-size-h5);
  }
  
  .footer-container {
    max-width: var(--width-container-xl);
  }
  
  .footer-content {
    gap: var(--gap-4xl);
  }
}
