/* ============================================
   PAGE-SPECIFIC STYLES — Detailing Studio 2026
   Hero, Services, Before/After, Portfolio,
   Prices, Why-Us, Reviews, Contacts, Sub-pages
   ============================================ */

/* ================================================
   HERO
   ================================================ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  padding: calc(var(--header-h) + 32px) 0 var(--sp-3xl);
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}

.hero__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.35) saturate(0.8);
}

.hero__bg-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    var(--c-black) 0%,
    rgba(10,10,10,0.6) 40%,
    rgba(10,10,10,0.3) 100%
  );
}

.hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container-wide);
  margin: 0 auto;
  padding-inline: var(--gutter);
}

/* Hero badges (legacy) */
.hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  margin-bottom: var(--sp-xl);
}

/* Hero topline — premium info strip */
.hero__topline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-md);
  margin-bottom: var(--sp-2xl);
  padding: var(--sp-sm) var(--sp-lg);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-xs);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.hero__topline-item {
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-gray-300);
  white-space: nowrap;
}

.hero__topline-icon {
  color: var(--c-accent);
  flex-shrink: 0;
}

.hero__topline-sep {
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .hero__topline {
    gap: var(--sp-sm);
    padding: var(--sp-sm);
  }

  .hero__topline-sep {
    display: none;
  }

  .hero__topline-item {
    font-size: 0.65rem;
  }
}

.hero__title {
  font-size: var(--fs-hero);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  text-transform: uppercase;
  letter-spacing: var(--ls-tight);
  margin-bottom: var(--sp-lg);
  max-width: 900px;
}

.hero__title .accent {
  color: var(--c-accent);
}

.hero__subtitle {
  font-size: var(--fs-hero-sub);
  color: var(--c-text-muted);
  line-height: var(--lh-body);
  max-width: 600px;
  margin-bottom: var(--sp-2xl);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-md);
}

.hero__scroll-hint {
  position: absolute;
  bottom: var(--sp-xl);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-xs);
  color: var(--c-text-muted);
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-ultra);
  text-transform: uppercase;
  animation: scrollBounce 2s infinite;
}

@keyframes scrollBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(6px); }
}

/* Hero Variant B — center-aligned */
.hero--centered {
  align-items: center;
  text-align: center;
  padding-top: calc(var(--header-h) + 32px + var(--sp-4xl));
}

.hero--centered .hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero--centered .hero__title {
  max-width: 1000px;
}

.hero--centered .hero__subtitle {
  max-width: 650px;
}

.hero--centered .hero__badges {
  justify-content: center;
}

/* ================================================
   SERVICES SECTION
   ================================================ */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gutter);
}

@media (max-width: 1024px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}

/* Services Variant B — large feature cards */
.services-grid--alt {
  grid-template-columns: repeat(2, 1fr);
}

.services-grid--alt .service-card {
  padding: var(--sp-2xl);
  min-height: 340px;
}

.services-grid--alt .service-card__title {
  font-size: var(--fs-h3);
}

@media (max-width: 640px) {
  .services-grid--alt {
    grid-template-columns: 1fr;
  }
}

/* ================================================
   BEFORE/AFTER SECTION
   ================================================ */
.ba-section__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--gutter);
}

@media (max-width: 768px) {
  .ba-section__grid {
    grid-template-columns: 1fr;
  }
}

/* BA Variant B — full-width single slider */
.ba-section--fullwidth .ba-slider {
  aspect-ratio: 21/9;
}

/* ================================================
   PORTFOLIO SECTION
   ================================================ */
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gutter);
}

@media (max-width: 1024px) {
  .portfolio-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .portfolio-grid {
    grid-template-columns: 1fr;
  }
}

/* ================================================
   PRICES SECTION
   ================================================ */
.prices-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gutter);
  align-items: start;
}

@media (max-width: 1024px) {
  .prices-grid {
    grid-template-columns: 1fr;
    max-width: 500px;
  }
}

/* Prices Variant B — horizontal comparison */
.prices-table {
  width: 100%;
  border-collapse: collapse;
}

.prices-table th,
.prices-table td {
  padding: var(--sp-md) var(--sp-lg);
  text-align: left;
  border-bottom: var(--border-thin);
  font-size: var(--fs-small);
}

.prices-table th {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-ultra);
  text-transform: uppercase;
  color: var(--c-accent);
}

.prices-table td {
  color: var(--c-text);
}

.prices-table tr:hover td {
  background: var(--c-bg-card);
}

/* ================================================
   WHY-US SECTION
   ================================================ */
.why-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 var(--sp-3xl);
}

@media (max-width: 768px) {
  .why-grid {
    grid-template-columns: 1fr;
  }
}

/* ================================================
   REVIEWS SECTION (Swiper override)
   ================================================ */
.reviews-slider .swiper-slide {
  height: auto;
}

.reviews-slider .review-card {
  height: 100%;
}

/* ================================================
   CONTACTS SECTION
   ================================================ */
.contacts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3xl);
}

.contacts__info-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-md);
  margin-bottom: var(--sp-xl);
}

.contacts__info-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: var(--c-accent);
  margin-top: 2px;
}

.contacts__info-label {
  font-size: var(--fs-xs);
  font-family: var(--ff-mono);
  color: var(--c-text-muted);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  margin-bottom: var(--sp-2xs);
}

.contacts__info-value {
  font-size: var(--fs-body);
  color: var(--c-pure-white);
}

.contacts__info-value a {
  color: var(--c-pure-white);
  transition: color var(--dur-fast) var(--ease-out);
}

.contacts__info-value a:hover {
  color: var(--c-accent);
}

.contacts__map {
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: var(--border-thin);
  aspect-ratio: 16/10;
}

.contacts__map iframe {
  width: 100%;
  height: 100%;
  border: none;
  filter: grayscale(100%) invert(90%) contrast(90%);
}

.contacts__messengers {
  display: flex;
  gap: var(--sp-sm);
  margin-top: var(--sp-lg);
}

@media (max-width: 768px) {
  .contacts-grid {
    grid-template-columns: 1fr;
  }
}

/* ================================================
   SUB-PAGE HERO (inner pages)
   ================================================ */
.page-hero {
  padding: calc(var(--header-h) + 32px + var(--sp-3xl)) 0 var(--sp-3xl);
  background: var(--c-graphite);
  border-bottom: var(--border-thin);
}

.page-hero__title {
  font-size: var(--fs-h1);
  font-weight: var(--fw-black);
  text-transform: uppercase;
  margin-bottom: var(--sp-sm);
}

.page-hero__desc {
  font-size: var(--fs-hero-sub);
  color: var(--c-text-muted);
  max-width: 600px;
}

/* ================================================
   SERVICE DETAIL PAGE
   ================================================ */
.service-detail__content {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--sp-3xl);
  align-items: start;
}

.service-detail__text h2 {
  font-size: var(--fs-h3);
  margin-top: var(--sp-2xl);
  margin-bottom: var(--sp-md);
}

.service-detail__text h2:first-child {
  margin-top: 0;
}

.service-detail__text p {
  margin-bottom: var(--sp-md);
  line-height: var(--lh-loose);
}

.service-detail__sidebar {
  position: sticky;
  top: calc(var(--header-h) + 32px + var(--sp-xl));
}

.service-detail__sidebar-card {
  background: var(--c-bg-card);
  border: var(--border-thin);
  border-radius: var(--radius-xs);
  padding: var(--sp-xl);
  margin-bottom: var(--sp-lg);
}

.service-detail__sidebar-card .price-from {
  font-family: var(--ff-mono);
  font-size: var(--fs-h3);
  font-weight: var(--fw-black);
  color: var(--c-accent);
  margin-bottom: var(--sp-md);
}

@media (max-width: 1024px) {
  .service-detail__content {
    grid-template-columns: 1fr;
  }
  .service-detail__sidebar {
    position: static;
  }
}

/* ================================================
   CTA BANNER (used across pages)
   ================================================ */
.cta-banner {
  background: var(--c-accent);
  padding: var(--sp-3xl) 0;
  text-align: center;
}

.cta-banner__title {
  font-size: var(--fs-h2);
  font-weight: var(--fw-black);
  color: var(--c-black);
  text-transform: uppercase;
  margin-bottom: var(--sp-sm);
}

.cta-banner__text {
  font-size: var(--fs-body);
  color: var(--c-charcoal);
  margin-bottom: var(--sp-xl);
  max-width: 500px;
  margin-inline: auto;
}

.cta-banner .btn--primary {
  background: var(--c-black);
  color: var(--c-accent);
  border-color: var(--c-black);
}

.cta-banner .btn--primary:hover {
  background: transparent;
  color: var(--c-black);
  border-color: var(--c-black);
  box-shadow: 4px 4px 0 var(--c-black);
}

/* ================================================
   PAGE HERO — COMPACT (legal pages etc.)
   ================================================ */
.page-hero--compact {
  padding-bottom: var(--sp-xl);
}

/* ================================================
   NARROW CONTAINER (for legal/text pages)
   ================================================ */
.container--narrow {
  max-width: 780px;
}

/* ================================================
   LEGAL CONTENT
   ================================================ */
.legal-content h2 {
  font-size: var(--fs-h4);
  font-weight: var(--fw-bold);
  color: var(--c-pure-white);
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
  margin-top: var(--sp-2xl);
  margin-bottom: var(--sp-md);
}

.legal-content h2:first-child {
  margin-top: 0;
}

.legal-content p {
  font-size: var(--fs-body);
  color: var(--c-text);
  line-height: var(--lh-loose);
  margin-bottom: var(--sp-md);
}

.legal-content p em {
  color: var(--c-text-muted);
  font-size: var(--fs-small);
}

