/* =============================================================================
   New Time — Design System & Main Stylesheet
   Based on Figma: "Новое Время" (ISIDA brand)
   Design width: 1728px
   ============================================================================= */

/* --- Local Fonts --- */

/* Montserrat (variable font — all weights, Latin + Cyrillic) */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../font/montserrat/Montserrat-Variable.woff2")
    format("woff2");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../font/montserrat/Montserrat-Variable.woff2")
    format("woff2");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../font/montserrat/Montserrat-Variable.woff2")
    format("woff2");
}

/* Unbounded */
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../font/unbounded/Unbounded-Regular-cyrillic.woff2")
    format("woff2");
  unicode-range:
    U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../font/unbounded/Unbounded-Regular-latin.woff2")
    format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../font/unbounded/Unbounded-SemiBold-cyrillic.woff2")
    format("woff2");
  unicode-range:
    U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../font/unbounded/Unbounded-SemiBold-latin.woff2")
    format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Noto Sans */
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../font/noto-sans/NotoSans-Regular.woff")
    format("woff");
}

/* --- Design Tokens (CSS Variables) --- */
:root {
  /* Colors — Primary */
  --color-primary: #b23171;
  --color-primary-dark: #1d222f;

  /* Colors — Neutral */
  --color-black: #000000;
  --color-white: #ffffff;
  --color-background: #f4f1f0;
  --color-gray-1: #d9d9d9;
  --color-gray-2: #8b8185;

  /* Colors — Accent */
  --color-discount: #5240ad;

  /* Colors — Overlays */
  --overlay-light: rgba(255, 255, 255, 0.7);
  --overlay-dark-20: rgba(0, 0, 0, 0.2);
  --overlay-dark-30: rgba(0, 0, 0, 0.3);
  --overlay-dark-40: rgba(0, 0, 0, 0.4);
  --overlay-dark-50: rgba(0, 0, 0, 0.5);

  /* Typography — Font Families */
  --font-heading: "Unbounded", sans-serif;
  --font-body: "Montserrat", sans-serif;
  --font-small: "Noto Sans", sans-serif;

  /* Typography — Font Sizes */
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-xl: 20px;
  --text-2xl: 32px;
  --text-3xl: 48px;

  /* Typography — Line Heights */
  --leading-xs: 18px;
  --leading-sm: 20px;
  --leading-base: 24px;
  --leading-lg: 26px;
  --leading-xl: 28px;
  --leading-2xl: 50px;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 10px;
  --space-4: 12px;
  --space-5: 15px;
  --space-6: 20px;
  --space-7: 26px;
  --space-8: 32px;
  --space-9: 40px;
  --space-10: 50px;
  --space-11: 60px;

  /* Border Radius */
  --radius-none: 0;
  --radius-sm: 19px;
  --radius-md: 22px;
  --radius-lg: 30px;
  --radius-xl: 33px;
  --radius-2xl: 50px;
  --radius-full: 70px;

  /* Shadows & Effects */
  --blur-sm: 2px;
  --blur-md: 4px;
  --blur-lg: 5px;

  /* Layout */
  --page-max-width: 1728px;
  --content-padding: 50px;
}

/* --- Reset & Base --- */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: var(--text-base);
  line-height: var(--leading-base);
  color: var(--color-black);
  background-color: var(--color-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

.mobile-br {
  display: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
}

/* --- Layout --- */
.page-wrapper {
  width: 100%;
  margin: 0 auto;
  position: relative;
  overflow-x: hidden;
}

/* =============================================================================
   HEADER
   Figma: frame y=18, height=65 (border at y=83)
   Logo: y=32 (14px from header top), 215x60
   Menu: x=20, y=28 (10px from header top)
   Right icons: x=1428.5 (28.5px from right edge)
   ============================================================================= */
.site-header {
  position: absolute;
  top: 18px;
  left: 0;
  right: 0;
  z-index: 100;
  height: 65px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: none;
}

.header-left {
  display: flex;
  align-items: center;
  gap: var(--space-8);
}

.catalog-btn {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--color-black);
  color: var(--color-background);
  padding: 10px 26px;
  border-radius: var(--radius-xl);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-base);
  font-weight: 400;
  transition: opacity 0.3s;
}

.catalog-btn:hover {
  opacity: 0.85;
}

.catalog-btn .icon {
  width: 24px;
  height: 24px;
}

/* Hidden on desktop — shown on mobile only */
.header-icon.header-icon--profile-mobile {
  display: none;
}

.header-logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 14px;
}

.header-logo img {
  height: 60px;
  width: 215px;
}

.header-right {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  margin-right: 8px;
}

.header-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.header-icon img {
  width: 26px;
  height: 26px;
  object-fit: contain;
}

.header-icon .badge {
  position: absolute;
  top: -6px;
  right: -6px;
  background: var(--color-primary);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 10px;
  line-height: 1;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 37px;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: center;
}

.login-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--color-gray-1);
  border-radius: 35px;
  padding: 10px 16px;
  height: 40px;
  font-size: var(--text-base);
  line-height: var(--leading-base);
  transition: border-color 0.3s;
}

.login-btn:hover {
  border-color: var(--color-gray-2);
}

.login-btn img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

/* =============================================================================
   HERO SECTION
   Figma: bg rect y=-2 h=924, text at y=632, dots at y=866
   Image: w=108% h=134.8% left=-4% top=0.05%
   ============================================================================= */
.hero {
  position: relative;
  height: 924px;
  overflow: hidden;
}

.hero-swiper {
  height: 100%;
}

.hero-swiper .swiper-slide {
  position: relative;
  height: 100%;
}

.hero__bg {
  position: absolute;
  top: 0;
  left: -4%;
  width: 108%;
  height: 135%;
  max-width: none;
  object-fit: cover;
  object-position: center top;
}

.hero__content {
  position: absolute;
  left: 0;
  right: 0;
  top: 632px;
  text-align: center;
  z-index: 2;
}

.hero__title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-3xl);
  line-height: var(--leading-2xl);
  white-space: nowrap;
}

.hero__subtitle {
  margin: 11px auto 0;
  font-size: var(--text-lg);
  line-height: var(--leading-xl);
  max-width: 642px;
}

/* Figma: button at y=776, hero content at y=632.
   Title ~50px + gap 11px + subtitle ~56px = 117px. Button offset: 776-632-117 = 27px */
.hero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 27px;
  width: 200px;
  height: 50px;
  background: var(--overlay-light);
  backdrop-filter: blur(var(--blur-md));
  -webkit-backdrop-filter: blur(var(--blur-md));
  border-radius: var(--radius-2xl);
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: var(--text-sm);
  line-height: var(--leading-base);
  color: var(--color-black);
  transition: background 0.3s;
}

.hero__cta:hover {
  background: rgba(255, 255, 255, 0.9);
}

/* Carousel Dots */
.dots {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.dots__dot {
  width: 8px;
  height: 8px;
  border-radius: var(--radius-sm);
  background: var(--overlay-dark-30);
  transition: width 0.3s, background 0.3s;
}

.dots__dot--active {
  width: 44px;
  background: var(--color-primary);
}

.hero__dots {
  position: absolute !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  bottom: 50px !important;
  top: auto !important;
  width: auto !important;
  z-index: 10;
  display: flex !important;
  align-items: center;
  gap: var(--space-3);
}

.hero__dots .dots__dot {
  cursor: pointer;
  display: inline-block !important;
  width: 8px;
  height: 8px;
  border-radius: var(--radius-sm);
  background: var(--overlay-dark-30);
  opacity: 1 !important;
  margin: 0 !important;
  transition: width 0.3s, background 0.3s;
}

.hero__dots .swiper-pagination-bullet-active {
  width: 44px;
  background: var(--color-primary);
  opacity: 1 !important;
}

/* =============================================================================
   POPULAR CATEGORIES
   Figma: title centered at y=995 (71px gap from hero end at 924)
   Cards: start at x=50, y=1091 (46px below title)
   3 cards 532x740 with 13px gap
   Dots: at x=60, y=1867 (left-aligned)
   ============================================================================= */
.categories {
  padding: 71px var(--content-padding) 0;
}

.categories .section-title {
  text-align: center;
}

.section-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-2xl);
  line-height: var(--leading-2xl);
}

.categories__grid {
  display: flex;
  gap: 13px;
  margin-top: 46px;
}

.category-card {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  aspect-ratio: 532 / 740;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  overflow: hidden;
}

.category-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.category-card__title {
  position: relative;
  z-index: 1;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: clamp(22px, 1.85vw, 32px);
  line-height: var(--leading-2xl);
  white-space: nowrap;
}

.category-card__link {
  position: relative;
  z-index: 1;
  font-size: var(--text-lg);
  line-height: var(--leading-xl);
  text-decoration: underline;
}

/* Figma: dots at x=60, which is 10px from categories left padding (50px) */
.categories__dots {
  margin-top: 36px;
  padding-left: 10px;
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.categories__dots .dots__dot {
  cursor: pointer;
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: var(--radius-sm);
  background: var(--overlay-dark-30);
  opacity: 1;
  margin: 0;
  transition: width 0.3s, background 0.3s;
}

.categories__dots .swiper-pagination-bullet-active,
.categories__dots .dots__dot--active {
  width: 44px;
  background: var(--color-primary);
}

/* =============================================================================
   PRODUCT TABS (Новинки / Хит продаж)
   Figma: tabs centered at y=1928 (53px gap from categories dots)
   Gap between tabs: 60px
   Products: y=2013 (35px below tabs), cards 390px wide
   Cards start at x=50 with ~20px gaps
   Arrow: x=1644 (29px from right), centered in image area (~35% from top)
   ============================================================================= */
.product-tabs {
  padding: 53px 0 0;
}

.product-tabs__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-11);
}

.product-tabs__tab {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-2xl);
  line-height: var(--leading-2xl);
  color: var(--color-black);
  cursor: pointer;
  transition: color 0.3s;
}

.product-tabs__tab--active {
  color: var(--color-primary);
}

.product-tabs__content {
  margin-top: 35px;
  padding: 0 var(--content-padding);
  position: relative;
}

.product-tabs-swiper {
  overflow: hidden;
}

.product-tabs-swiper .swiper-slide,
.sale-swiper .swiper-slide {
  width: 330px;
}

/* 4 cards fit proportionally: each ~25% minus gap share */

/* Arrow Navigation */
.arrow-nav {
  width: 55px;
  height: 55px;
  border-radius: var(--radius-2xl);
  background: var(--overlay-light);
  backdrop-filter: blur(var(--blur-md));
  -webkit-backdrop-filter: blur(var(--blur-md));
  border: 1px solid var(--color-gray-1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s;
  flex-shrink: 0;
}

.arrow-nav:hover {
  background: rgba(255, 255, 255, 0.9);
}

.arrow-nav img {
  width: 18px;
  height: 18px;
}

/* Figma: arrow at x=1644 (page width 1728 - 1644 - 55 = 29px from right)
   Arrow center at y=2248, image center at y=2248 → centered in image area
   Image is 80% of card height → top: 40% centers in image */
.product-tabs__arrow {
  position: absolute;
  right: 29px;
  top: 40%;
  transform: translateY(-50%);
  z-index: 5;
  transition: background 0.3s ease, box-shadow 0.2s ease;
}

.product-tabs__arrow:hover {
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.product-tabs__arrow:hover img {
  animation: arrow-bounce 0.6s ease infinite;
}

/* =============================================================================
   PRODUCT CARD
   Figma: 390px wide, image ~80% height (470/587)
   Slider lines at bottom of image area
   ============================================================================= */
.product-card {
  min-width: 0;
  position: relative;
}

.product-card__image {
  position: relative;
  aspect-ratio: 390 / 470;
  overflow: hidden;
}

.product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-card__label {
  position: absolute;
  top: 15px;
  left: 10px;
  padding: 4.5px 12px;
  border-radius: var(--radius-sm);
  background: var(--overlay-light);
  backdrop-filter: blur(var(--blur-lg));
  -webkit-backdrop-filter: blur(var(--blur-lg));
  font-weight: 600;
  font-size: var(--text-xs);
  line-height: var(--leading-xs);
  color: var(--color-primary);
}

.product-card__label--discount {
  background: var(--color-discount);
  color: var(--color-white);
  border-radius: var(--radius-full);
  font-weight: 400;
}

.product-card__wishlist {
  position: absolute;
  top: 16px;
  right: 14px;
  width: 34px;
  height: 34px;
  border-radius: var(--radius-lg);
  background: var(--overlay-light);
  backdrop-filter: blur(var(--blur-sm));
  -webkit-backdrop-filter: blur(var(--blur-sm));
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-card__wishlist img {
  width: 24px;
  height: 24px;
}

/* Figma: slider sits at ~78% from top of card image area */
.product-card__slider {
  display: flex;
  gap: var(--space-5);
  padding: 0 12px;
  position: absolute;
  bottom: 8px;
  left: 0;
  right: 0;
  z-index: 5;
}

.product-card__slider .product-card__slider-line {
  flex: 1;
  height: 3px;
  background: var(--color-gray-1);
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.3s;
}

.product-card__slider .swiper-pagination-bullet-active {
  background: var(--color-primary);
}

.product-card-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Static slider-line styles removed — now handled by Swiper pagination above */

/* Figma: description starts at 82.28% of card, slider at 78.36%
   Gap between slider bottom and text: ~23px at design scale.
   Using generous padding to account for responsive card sizing */
.product-card__info {
  padding-top: 40px;
}

.product-card__name {
  font-size: var(--text-lg);
  line-height: var(--leading-xl);
  font-weight: 400;
}

.product-card__divider {
  height: 1px;
  background: var(--color-gray-1);
  margin: var(--space-3) 0;
}

.product-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.product-card__sizes {
  display: flex;
  align-items: center;
  gap: 7px;
}

.size-tag {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 18px;
  padding: 0 10px;
  font-weight: 600;
  font-size: var(--text-xs);
  line-height: var(--leading-xs);
  border: 1px solid var(--color-gray-1);
}

.size-tag--selected {
  background: var(--color-gray-1);
  border-color: var(--color-gray-1);
}

.size-tag--active {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.product-card__colors {
  display: flex;
  align-items: center;
  gap: 7px;
}

.color-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
}

.color-dot--beige {
  background: #d4b89c;
}
.color-dot--pink {
  background: #e8b4b8;
}
.color-dot--gray {
  background: #a8a8a8;
}

.product-card__colors-more {
  font-size: var(--text-xs);
  line-height: var(--leading-xs);
}

.product-card__price {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--space-3);
}

.product-card__price-current {
  font-weight: 700;
  font-size: clamp(14px, 1.2vw, 20px);
  line-height: var(--leading-lg);
  white-space: nowrap;
}

.product-card__price-old {
  font-size: clamp(12px, 1vw, 18px);
  line-height: var(--leading-xl);
  text-decoration: line-through;
  color: var(--color-black);
  white-space: nowrap;
}

.product-card__cart-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--color-gray-1);
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size: var(--text-xs);
  white-space: nowrap;
  flex-shrink: 0;
  line-height: var(--leading-xs);
  transition: border-color 0.3s, color 0.3s;
  margin-left: auto;
}

.product-card__cart-btn:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* =============================================================================
   PROMO BANNER (Discount section)
   Figma: height 548px, gradient from bottom
   Title at y=3030, subtitle at y=3083, CTA at y=3155
   ============================================================================= */
.promo-banner {
  position: relative;
  height: 548px;
  margin-top: 94px;
  overflow: hidden;
}

.promo-banner__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
}

.promo-banner__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.5) 31%,
    transparent
  );
}

.promo-banner__content {
  position: absolute;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  z-index: 2;
}

.promo-banner__title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-2xl);
  line-height: var(--leading-2xl);
  color: var(--color-background);
}

.promo-banner__subtitle {
  margin-top: 3px;
  font-size: var(--text-lg);
  line-height: var(--leading-xl);
  color: var(--color-background);
  max-width: 642px;
}

.promo-banner__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  width: 200px;
  height: 50px;
  background: var(--overlay-light);
  backdrop-filter: blur(var(--blur-md));
  -webkit-backdrop-filter: blur(var(--blur-md));
  border-radius: var(--radius-2xl);
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: var(--text-sm);
  line-height: var(--leading-base);
  color: var(--color-black);
  transition: background 0.3s;
}

.promo-banner__cta:hover {
  background: rgba(255, 255, 255, 0.9);
}

/* =============================================================================
   SALE SECTION
   Figma: bg rect x=156, w=1590, h=627 (overflows right edge by 18px)
   Title "Распродажа": x=197 (41px from bg left), y=3329 (49px from bg top)
   Cards 330px wide, 30px gap, first card at x=519 (363px from bg left)
   Arrow at x=1542 (right area), centered in card images
   ============================================================================= */
.sale-section {
  position: relative;
  background: var(--color-background);
  margin: 38px 0 0 9%;
  padding: 49px 0 46px;
  overflow: hidden;
  width: calc(100% - 9%);
}

.sale-section .section-title {
  position: absolute;
  top: 49px;
  left: 41px;
  z-index: 3;
}

.sale-section__products {
  padding: 0 0 0 25%;
  overflow: visible;
  position: relative;
}

.sale-section__products .product-card__image {
  aspect-ratio: 330 / 398;
}

.sale-section__products .product-card__cart-btn {
  border-radius: 0;
}

.sale-section__products .product-card__price {
  flex-wrap: wrap;
}

/* Figma: arrow at x=1542, sale bg starts at x=156. Relative: 1542-156=1386px from sale left.
   But it's easier to position from the right of the viewport */
.sale-section__arrow {
  position: absolute;
  right: 30px;
  top: 40%;
  transform: translateY(-50%);
  z-index: 5;
  transition: background 0.3s ease, box-shadow 0.2s ease;
}

.sale-section__arrow:hover {
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.sale-section__arrow:hover img {
  animation: arrow-bounce 0.6s ease infinite;
}

@keyframes arrow-bounce {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}

/* =============================================================================
   ABOUT TEXT SECTION
   Figma: title at x=164, y=3967. Text at x=165, w=1404
   Right edge: 164+1404=1568, right margin: 1728-1568=160
   ~centered with 164/160 margins
   ============================================================================= */
.about-section {
  padding: 47px 160px 0 164px;
}

.about-section .section-title {
  margin-bottom: 17px;
}

.about-section__text {
  font-size: var(--text-lg);
  line-height: var(--leading-xl);
  max-width: 1404px;
}

.about-section__text p {
  margin-bottom: 0;
}

.about-section__text p + p {
  margin-top: var(--leading-xl);
}

/* =============================================================================
   BENEFITS SECTION
   Figma: 4 cards 409px each, 12px gap, centered
   Total: 4×409 + 3×12 = 1672px. Margin: (1728-1672)/2 = 28px
   Gap from about section: ~52px
   ============================================================================= */
.benefits {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 52px 28px 0;
  margin-bottom: 0;
}

.benefit-card {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  aspect-ratio: 409 / 400;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  overflow: hidden;
}

.benefit-card__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.benefit-card__overlay {
  position: absolute;
  inset: 0;
}

.benefit-card__overlay--20 {
  background: var(--overlay-dark-20);
}
.benefit-card__overlay--30 {
  background: var(--overlay-dark-30);
}
.benefit-card__overlay--40 {
  background: var(--overlay-dark-40);
}

.benefit-card__title {
  position: relative;
  z-index: 1;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-2xl);
  line-height: var(--leading-2xl);
  color: var(--color-background);
}

.benefit-card__text {
  position: relative;
  z-index: 1;
  font-size: var(--text-lg);
  line-height: var(--leading-xl);
  color: var(--color-background);
}

/* =============================================================================
   FOOTER
   Figma: bg #F4F1F0, height 312px, full width
   Scroll-top arrow: 55x55, top -28px from footer, right edge
   Grid: catalog cols at ~1.9%, 11%, 20%, buyers at 34%, service at 48%
   Contact/logo right side at ~83%
   ============================================================================= */
.site-footer {
  background: var(--color-background);
  margin-top: 12px;
  padding: 35px var(--content-padding) 0;
  position: relative;
}

.footer__grid {
  display: grid;
  grid-template-columns: auto auto auto auto auto 1fr;
  gap: 0 30px;
}

.footer__col-title {
  font-weight: 600;
  font-size: var(--text-sm);
  line-height: var(--leading-sm);
  color: var(--color-primary);
  margin-bottom: 10px;
}

.footer__links {
  list-style: disc;
  padding-left: 21px;
}

.footer__links li {
  font-size: var(--text-sm);
  line-height: var(--leading-base);
}

.footer__links--muted li {
  color: var(--color-gray-2);
}

.footer__contact {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  justify-content: center;
  margin-left: auto;
}

.footer__logo {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.footer__logo img {
  height: 40px;
  width: auto;
}

.footer__phone {
  font-weight: 700;
  font-size: var(--text-xl);
  line-height: var(--leading-lg);
}

.footer__hours {
  font-size: var(--text-sm);
  line-height: var(--leading-base);
  text-align: center;
}

.footer__address {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-small);
  font-size: var(--text-xs);
  line-height: var(--leading-xs);
}

.footer__address span {
  max-width: 178px;
}

.footer__address img {
  width: 24px;
  height: 24px;
}

.footer__payments {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  flex-wrap: wrap;
}

.footer__payments img {
  height: 24px;
  width: auto;
}

/* Mobile-only duplicates — hidden on desktop */
.footer__address--mobile,
.footer__payments--mobile {
  display: none;
}

.footer__social {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 10px;
}

.footer__social-link {
  width: 32px;
  height: 32px;
  background: var(--color-white);
  border-radius: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s;
}

.footer__social-link:hover {
  transform: scale(1.1);
}

.footer__social-link img {
  width: 16px;
  height: 16px;
}

.footer__bottom {
  margin: 45px calc(-1 * var(--content-padding)) 0;
  padding: 14px var(--content-padding);
  background-color: #8B8185;
  margin-bottom: 0;
  display: flex;
  justify-content: space-between;
  font-size: var(--text-xs);
  line-height: var(--leading-xs);
  color: var(--color-white);
}

.footer__copyright {
  white-space: nowrap;
}

.footer__disclaimer {
  text-align: right;
}

.footer__scroll-top {
  position: absolute;
  top: -28px;
  right: var(--content-padding);
}

/* =============================================================================
   MOBILE MENU
   ============================================================================= */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1000;
  visibility: hidden;
  pointer-events: none;
}

.mobile-menu.is-open {
  visibility: visible;
  pointer-events: auto;
}

.mobile-menu__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.mobile-menu.is-open .mobile-menu__overlay {
  opacity: 1;
}

.mobile-menu__panel {
  position: absolute;
  top: 0;
  left: 0;
  width: 460px;
  max-width: 85vw;
  height: 100%;
  background: var(--color-white);
  padding: 30px 30px 40px;
  overflow-y: auto;
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 2;
}

.mobile-menu.is-open .mobile-menu__panel {
  transform: translateX(0);
}

.mobile-menu__close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s;
}

.mobile-menu__close:hover {
  opacity: 0.6;
}

.mobile-menu__search {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 30px;
  padding: 14px 16px;
  border: 1px solid var(--color-gray-1);
}

.mobile-menu__search img {
  width: 20px;
  height: 20px;
  opacity: 0.5;
}

.mobile-menu__search input {
  border: none;
  outline: none;
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-black);
  width: 100%;
  background: transparent;
}

.mobile-menu__search input::placeholder {
  color: var(--color-gray-2);
}

.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 28px;
}

.mobile-menu__link {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 22px;
  color: var(--color-black);
  text-decoration: none;
  transition: color 0.2s;
}

.mobile-menu__link:hover {
  color: var(--color-primary);
}

.mobile-menu__link--bold {
  font-weight: 600;
}

.mobile-menu__link--uppercase {
  text-transform: uppercase;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.5px;
}

.mobile-menu__divider {
  height: 1px;
  background: var(--color-gray-1);
  margin: 24px 0;
}

.mobile-menu__catalog {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mobile-menu__catalog-title {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 18px;
  line-height: 24px;
  margin-bottom: 4px;
}

/* Lock body scroll when menu is open */
body.menu-open {
  overflow: hidden;
}

/* =============================================================================
   SWIPER OVERRIDES
   ============================================================================= */
.swiper-slide {
  height: auto;
}

.sale-swiper {
  overflow: visible;
}

/* =============================================================================
   ANIMATIONS — Keyframes
   ============================================================================= */

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeUpCenter {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =============================================================================
   PAGE LOAD — Header & Hero animate immediately
   ============================================================================= */

.site-header {
  animation: slideDown 0.6s ease-out both;
}

.hero__content {
  animation: fadeUp 0.8s ease-out 0.3s both;
}

.hero__dots {
  animation: fadeIn 0.6s ease-out 0.8s both;
}

/* =============================================================================
   SCROLL REVEAL — Elements hidden until [data-reveal] + .revealed
   ============================================================================= */

[data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal="fade"] {
  transform: none;
}

[data-reveal="slide-right"] {
  transform: translateX(-30px);
}

[data-reveal].revealed {
  opacity: 1;
  transform: translateY(0) translateX(0);
}

/* =============================================================================
   MICRO-INTERACTIONS — Hover effects
   ============================================================================= */

/* Product card — no lift animation */

/* Category card image zoom */
.category-card__img {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.category-card:hover .category-card__img {
  transform: scale(1.05);
}

/* Category card text */
.category-card__link {
  transition: letter-spacing 0.3s ease;
}

.category-card:hover .category-card__link {
  letter-spacing: 1px;
}

/* CTA / pill buttons — scale */
.hero__cta,
.promo-banner__cta {
  transition: background 0.3s ease, transform 0.2s ease;
}

.hero__cta:hover,
.promo-banner__cta:hover {
  transform: scale(1.04);
}

/* Catalog button */
.catalog-btn {
  transition: opacity 0.3s ease, transform 0.2s ease;
}

.catalog-btn:hover {
  transform: scale(1.03);
}

/* Cart button */
.product-card__cart-btn {
  transition: border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.product-card__cart-btn:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  transform: scale(1.05);
}

/* Wishlist heart */
.product-card__wishlist {
  transition: transform 0.25s ease;
}

.product-card__wishlist:hover {
  transform: scale(1.15);
}

/* Arrow nav — same hover as other buttons */
.arrow-nav {
  transition: background 0.3s ease, transform 0.2s ease;
}

.arrow-nav:not(.sale-section__arrow):not(.product-tabs__arrow):hover {
  background: rgba(255, 255, 255, 0.9);
  transform: scale(1.08);
}

/* Social icons lift */
.footer__social-link {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.footer__social-link:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Login button */
.login-btn {
  transition: border-color 0.3s ease, transform 0.2s ease;
}

.login-btn:hover {
  transform: scale(1.03);
}

/* Benefit cards overlay darken on hover */
.benefit-card {
  transition: transform 0.3s ease;
}

.benefit-card:hover {
  transform: scale(1.02);
}

.benefit-card__bg {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.benefit-card:hover .benefit-card__bg {
  transform: scale(1.08);
}

/* Footer links underline */
.footer__links a {
  transition: color 0.2s ease;
}

.footer__links a:hover {
  color: var(--color-primary);
}

/* Header icons */
.header-icon {
  transition: transform 0.2s ease;
}

.header-icon:hover {
  transform: scale(1.1);
}

/* =============================================================================
   RESPONSIVE — Large Tablet (max-width: 1200px)
   ============================================================================= */
@media (max-width: 1200px) {
  :root {
    --content-padding: 40px;
  }

  /* --- HEADER --- */
  .header-logo img {
    height: 50px;
    width: auto;
  }

  .header-right {
    gap: 16px;
  }

  /* --- HERO --- */
  .hero {
    height: 700px;
  }

  .hero__content {
    top: 420px;
  }

  .hero__title {
    font-size: 38px;
    line-height: 46px;
  }

  .hero__subtitle {
    font-size: 16px;
    max-width: 500px;
  }

  .hero__dots {
    bottom: 20px !important;
  }

  /* --- CATEGORIES --- */
  .category-card__title {
    font-size: 22px;
  }

  /* --- PROMO BANNER --- */
  .promo-banner {
    height: 450px;
  }

  /* --- SALE SECTION --- */
  .sale-section {
    margin: 38px 0 0 0;
    width: 100%;
  }

  .sale-section .section-title {
    position: relative;
    top: auto;
    left: auto;
    margin-bottom: 20px;
    padding-left: 40px;
  }

  .sale-section__products {
    padding: 0;
  }

  /* --- ABOUT --- */
  .about-section {
    padding: 47px 80px 0;
  }

  /* --- BENEFITS --- */
  .benefits {
    flex-wrap: wrap;
    padding: 52px 28px 0;
  }

  .benefit-card {
    flex: 1 1 calc(50% - 6px);
    min-width: calc(50% - 6px);
  }

  /* --- FOOTER --- */
  .footer__grid {
    grid-template-columns: auto auto auto auto 1fr;
    gap: 0 20px;
  }

  /* Hide the 3rd catalog column (lingerie) */
  .footer__grid > div:nth-child(3) {
    display: none;
  }

  .footer__contact {
    gap: 8px;
  }

  /* Hide address & payments from Сервис column on tablet */
  .footer__grid > div:nth-child(5) .footer__address,
  .footer__grid > div:nth-child(5) .footer__payments {
    display: none;
  }
}

/* =============================================================================
   RESPONSIVE — Small Tablet (max-width: 1024px)
   ============================================================================= */
@media (max-width: 1024px) {
  :root {
    --content-padding: 30px;
  }

  /* --- HEADER --- */
  .header-logo img {
    height: 44px;
    width: auto;
  }

  .login-btn span {
    display: none;
  }

  .login-btn {
    padding: 0;
    border: none;
    width: auto;
    height: auto;
  }

  .header-right {
    gap: 14px;
  }

  /* --- HERO --- */
  .hero {
    height: 580px;
  }

  .hero__content {
    top: 360px;
  }

  .hero__title {
    font-size: 32px;
    line-height: 40px;
  }

  .hero__subtitle {
    font-size: 15px;
    max-width: 420px;
  }

  .hero__cta {
    width: 180px;
    height: 44px;
    font-size: 13px;
  }

  .hero__dots {
    bottom: 12px !important;
  }

  /* --- SECTION TITLES --- */
  .section-title {
    font-size: 26px;
    line-height: 36px;
  }

  /* --- CATEGORIES --- */
  .categories {
    padding: 50px var(--content-padding) 0;
  }

  .category-card {
    aspect-ratio: 1 / 1.2;
  }

  .category-card__title {
    font-size: 18px;
    line-height: 24px;
  }

  .category-card__link {
    font-size: 14px;
  }

  /* --- PRODUCT TABS --- */
  .product-tabs__header {
    gap: 30px;
  }

  .product-tabs__tab {
    font-size: 26px;
    line-height: 36px;
  }

  /* --- PROMO BANNER --- */
  .promo-banner {
    height: 400px;
  }

  .promo-banner__title {
    font-size: 26px;
    line-height: 36px;
  }

  .promo-banner__subtitle {
    font-size: 15px;
    max-width: 500px;
  }

  /* --- SALE SECTION --- */
  .sale-section__products {
    padding: 0;
  }

  .sale-section .section-title {
    position: relative;
    top: auto;
    left: auto;
    margin-bottom: 20px;
    padding-left: 30px;
    font-size: 26px;
  }

  /* --- ABOUT --- */
  .about-section {
    padding: 40px 50px 0;
  }

  .about-section__text {
    font-size: 16px;
    line-height: 26px;
  }

  /* --- BENEFITS --- */
  .benefit-card__title {
    font-size: 26px;
    line-height: 36px;
  }

  .benefit-card__text {
    font-size: 16px;
  }

  /* --- FOOTER --- */
  .footer__grid {
    grid-template-columns: auto auto auto 1fr;
  }

  /* Hide catalog columns 2 & 3 on small tablet */
  .footer__grid > div:nth-child(2),
  .footer__grid > div:nth-child(3) {
    display: none;
  }

  .footer__bottom {
    font-size: 11px;
  }
}

/* =============================================================================
   RESPONSIVE — Mobile (max-width: 768px)
   Based on Figma mobile design (~390px viewport)
   ============================================================================= */
@media (max-width: 768px) {

  /* --- Tokens override --- */
  :root {
    --content-padding: 16px;
  }

  /* --- HEADER --- */
  .site-header {
    top: 0;
    padding: 12px var(--content-padding);
    border-bottom: none;
  }

  .header-left {
    gap: 10px;
    align-items: center;
  }

  .catalog-btn span {
    display: none;
  }

  .catalog-btn {
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: var(--color-black);
    min-width: auto;
    gap: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .catalog-btn .icon {
    width: 20px;
    height: 20px;
    filter: brightness(0) invert(1);
  }

  .header-icon.header-icon--profile-mobile {
    display: flex;
  }

  .header-logo {
    top: 8px;
  }

  .header-logo img {
    height: 40px;
    width: auto;
  }

  .header-right {
    gap: 12px;
    margin-right: 0;
  }

  .header-icon img {
    width: 22px;
    height: 22px;
  }

  .header-icon .badge {
    top: -6px;
    right: -8px;
    min-width: 14px;
    height: 14px;
    font-size: 9px;
  }

  /* Hide search and login on mobile (wishlist + cart stay visible) */
  .header-right .header-icon:nth-child(1),
  .header-right .login-btn {
    display: none;
  }

  /* --- HERO --- */
  .hero {
    height: auto;
    overflow: visible;
  }

  .hero-swiper,
  .hero-swiper .swiper-slide {
    height: auto;
  }

  .hero__bg {
    position: relative;
    left: 0;
    width: 100%;
    height: auto;
    max-width: none;
    object-fit: contain;
  }

  .hero__content {
    top: auto;
    bottom: 0;
    padding-bottom: 40px;
    margin-top: -310px;
    position: relative;
  }

  .mobile-br {
    display: block;
  }

  .hero__title {
    font-size: 32px;
    line-height: 40px;
    white-space: normal;
    padding: 0 var(--content-padding);
  }

  .hero__subtitle {
    font-size: 15px;
    line-height: 22px;
    max-width: 340px;
    padding: 0 var(--content-padding);
    margin-top: 8px;
  }

  .hero__cta {
    margin-top: 16px;
    width: 160px;
    height: 40px;
    font-size: 12px;
  }

  .hero__dots {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    justify-content: center;
    padding-bottom: 16px;
  }

  /* --- POPULAR CATEGORIES --- */
  .categories {
    padding: 40px var(--content-padding) 0;
  }

  .section-title {
    font-size: 22px;
    line-height: 30px;
  }

  .categories__grid {
    margin-top: 24px;
  }

  .category-card {
    aspect-ratio: 1 / 1.4;
  }

  .category-card__title {
    font-size: 16px;
    line-height: 22px;
  }

  .category-card__link {
    font-size: 14px;
    line-height: 20px;
  }

  .categories__dots {
    margin-top: 20px;
    padding-left: 0;
  }

  /* --- PRODUCT TABS --- */
  .product-tabs {
    padding: 36px 0 0;
  }

  .product-tabs__header {
    gap: 30px;
  }

  .product-tabs__tab {
    font-size: 22px;
    line-height: 30px;
  }

  .product-tabs__content {
    margin-top: 20px;
    padding: 0 var(--content-padding);
    overflow: visible;
  }

  .product-card__image {
    aspect-ratio: 170 / 210;
  }

  .product-card__info {
    padding-top: 20px;
  }

  .product-card__name {
    font-size: 14px;
    line-height: 18px;
  }

  .product-card__divider {
    margin: 6px 0;
  }

  .product-card__sizes {
    gap: 4px;
  }

  .size-tag {
    width: 24px;
    height: 16px;
    font-size: 10px;
    padding: 0 6px;
  }

  .color-dot {
    width: 12px;
    height: 12px;
  }

  .product-card__colors {
    gap: 4px;
  }

  .product-card__colors-more {
    font-size: 10px;
  }

  .product-card__price {
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
  }

  .product-card__price-current {
    font-size: 16px;
    line-height: 20px;
  }

  .product-card__price-old {
    font-size: 14px;
    line-height: 18px;
  }

  .product-card__cart-btn {
    display: none;
  }

  .product-card__label {
    top: 10px;
    left: 8px;
    padding: 3px 8px;
    font-size: 10px;
  }

  .product-card__wishlist {
    top: 10px;
    right: 8px;
    width: 28px;
    height: 28px;
  }

  .product-card__wishlist img {
    width: 18px;
    height: 18px;
  }

  .product-card__slider {
    gap: 8px;
    padding: 0 6px;
  }

  /* Hide arrow on mobile for product tabs */
  .product-tabs__arrow {
    display: none;
  }

  /* --- PROMO BANNER --- */
  .promo-banner {
    height: 400px;
    margin-top: 40px;
  }

  .promo-banner__content {
    bottom: 50px;
    left: 0;
    right: 0;
    transform: none;
    padding: 0 var(--content-padding);
  }

  .promo-banner__title {
    font-size: 22px;
    line-height: 30px;
  }

  .promo-banner__subtitle {
    font-size: 14px;
    line-height: 20px;
    max-width: none;
  }

  .promo-banner__cta {
    margin-top: 16px;
    width: 160px;
    height: 40px;
    font-size: 12px;
  }

  /* --- SALE SECTION --- */
  .sale-section {
    margin: 30px 0 0 0;
    width: 100%;
    padding: 30px var(--content-padding) 30px;
  }

  .sale-section .section-title {
    position: relative;
    top: auto;
    left: auto;
    margin-bottom: 20px;
  }

  .sale-section__products {
    padding: 0;
  }

  .sale-section__products .product-card__image {
    aspect-ratio: 170 / 210;
  }

  .sale-section__arrow {
    display: none;
  }

  /* --- ABOUT TEXT --- */
  .about-section {
    padding: 36px var(--content-padding) 0;
  }

  .about-section .section-title {
    margin-bottom: 12px;
  }

  .about-section__text {
    font-size: 14px;
    line-height: 22px;
  }

  /* --- BENEFITS --- */
  .benefits {
    flex-direction: column;
    gap: 10px;
    padding: 36px var(--content-padding) 0;
  }

  .benefit-card {
    aspect-ratio: 16 / 7;
    height: auto;
    width: 100%;
  }

  .benefit-card__title {
    font-size: 28px;
    line-height: 36px;
  }

  .benefit-card__text {
    font-size: 16px;
    line-height: 20px;
  }

  /* --- FOOTER --- */
  .site-footer {
    margin-top: 10px;
    padding: 30px var(--content-padding) 0;
  }

  .footer__scroll-top {
    display: none;
  }

  .footer__grid {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  /* Collapsible footer sections — remove default div styling */
  .footer__grid > div {
    border-bottom: none;
    padding: 0;
  }

  /* Hide the empty &nbsp; title columns on mobile */
  .footer__grid > div:nth-child(2),
  .footer__grid > div:nth-child(3) {
    display: none;
  }

  /* Hide originals (in 5th div - Сервис), show mobile duplicates (in contact) */
  .footer__grid > div:nth-child(5) .footer__address,
  .footer__grid > div:nth-child(5) .footer__payments {
    display: none;
  }

  .footer__address--mobile {
    display: flex;
    justify-content: center;
    margin-top: 16px;
    font-size: 12px;
  }

  .footer__address--mobile span {
    max-width: none;
  }

  .footer__payments--mobile {
    display: flex;
    justify-content: center;
    margin-top: 12px;
  }

  /* All accordion titles — uniform styling */
  .footer__col-title {
    margin-bottom: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
    text-transform: uppercase;
    color: var(--color-black);
    font-weight: 600;
    padding: 14px 0;
    border-bottom: 1px solid rgba(139, 129, 133, 0.2);
  }

  .footer__col-title[style] {
    margin-top: 0 !important;
  }

  .footer__col-title::after {
    content: "";
    width: 18px;
    height: 18px;
    background: url("../img/icons/arrow-down.svg") no-repeat center / contain;
    flex-shrink: 0;
    transition: transform 0.3s ease;
  }

  .footer__col-title.is-open::after {
    transform: rotate(180deg);
  }

  .footer__col-title.is-open {
    border-bottom: none;
  }

  .footer__links {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.35s ease;
    padding-top: 0;
    padding-bottom: 0;
    display: block;
  }

  .footer__links.is-open {
    max-height: 200px;
    padding-top: 4px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(139, 129, 133, 0.2);
  }

  /* Footer contact — full width, centered */
  .footer__grid > .footer__contact {
    margin-left: 0;
    padding: 30px 0 0;
    align-items: center;
    gap: 8px;
  }

  .footer__social-link {
    width: 28px;
    height: 28px;
  }

  .footer__social-link img {
    width: 14px;
    height: 14px;
    object-fit: contain;
  }

  .footer__phone {
    font-size: 18px;
  }

  .footer__hours {
    font-size: 12px;
  }

  .footer__social {
    margin-top: 16px;
  }

  .footer__bottom {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  .footer__disclaimer {
    text-align: center;
    font-size: 10px;
    line-height: 14px;
  }

  /* --- ANIMATIONS — Simplify on mobile --- */
  .site-header {
    animation-duration: 0.4s;
  }

  .hero__content {
    animation-duration: 0.5s;
    animation-delay: 0.2s;
  }

  [data-reveal] {
    transform: translateY(20px);
  }
}
