﻿/* ═══════════════════════════════════════════════════════════════════
   Shared interior-page styles  -  Стилвет
   ═══════════════════════════════════════════════════════════════════ */

:root {
  --mint:        #5099DB;
  --mint-dark:   #2d78c0;
  --dark:        #1f2a44;
  --text-muted:  rgba(31, 42, 68, .72);
  --bg-light:    #f7fbff;
  --shadow-sm:   0 6px 18px rgba(22, 53, 99, .08);
  --shadow-md:   0 10px 28px rgba(22, 53, 99, .11);
  --shadow-lg:   0 18px 40px rgba(22, 53, 99, .15);
  --radius-sm:   12px;
  --radius-md:   18px;
  --radius-lg:   24px;
}

/* ─── Mini Page Title Hero ─────────────────────────────────────────── */
/* Slim green banner showing just the page title - no nav offset needed
   because .page-container already handles it via padding-top */
.mini-page-hero {
  background: linear-gradient(135deg, #5099DB 0%, #2d78c0 100%);
  /* negative margin pulls the section UP behind the navbar so
     no white body background can ever show in the gap;
     extra padding-top compensates so the title stays in place */
  margin-top: -12px;
  padding: 46px 0 30px;   /* 34 + 12 = 46 */
  text-align: center;
  position: relative;
  overflow: hidden;
}

.mini-page-hero::before {
  content: '\f1b0';   /* fa-paw */
  font-family: 'FontAwesome';
  position: absolute;
  font-size: 220px;
  color: rgba(255,255,255,.07);
  top: -40px;
  left: -20px;
  transform: rotate(-20deg);
  line-height: 1;
  pointer-events: none;
}

.mini-page-hero::after {
  content: '\f1b0';
  font-family: 'FontAwesome';
  position: absolute;
  font-size: 130px;
  color: rgba(255,255,255,.07);
  bottom: -30px;
  right: 3%;
  transform: rotate(22deg);
  line-height: 1;
  pointer-events: none;
}

.mini-page-hero__title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 44px;
  font-weight: 800;
  color: #fff;
  margin: 0;
  letter-spacing: -.4px;
  line-height: 1.1;
  position: relative;
  z-index: 1;
}

@media (max-width: 767px) {
  .mini-page-hero { padding: 24px 0 20px; }
  .mini-page-hero__title { font-size: 32px; }
}

/* ─── Page Hero ────────────────────────────────────────────────────── */
.page-hero {
  background:
    linear-gradient(135deg, rgba(80,153,219,.93) 0%, rgba(42,140,114,.96) 100%),
    var(--hero-bg-img, none) center / cover no-repeat;
  padding: calc(var(--site-nav-offset, 110px) + 8px) 0 44px;
  position: relative;
  overflow: hidden;
  text-align: center;
  color: white;
  /* negative margin overlaps with navbar so no white gap is possible */
  margin-top: -12px;
}

/* Per-page hero background images */
.page-hero--uslugi  { --hero-bg-img: url('../img/hero_puppy_kitten_vet.png'); }
.page-hero--gallery { --hero-bg-img: url('../img/01.jpg'); }
.page-hero--contact { --hero-bg-img: url('../img/09.jpg'); }

.page-hero .container {
  position: relative;
  z-index: 1;
}

.page-hero__paw {
  position: absolute;
  color: rgba(255,255,255,.07);
  pointer-events: none;
  z-index: 0;
  line-height: 1;
}

.page-hero__paw--1 {
  font-size: 280px;
  top: -60px;
  left: 2%;
  transform: rotate(-20deg);
}

.page-hero__paw--2 {
  font-size: 160px;
  bottom: -30px;
  right: 4%;
  transform: rotate(25deg);
}

.page-hero__title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 48px;
  font-weight: 800;
  color: white;
  margin: 0 0 12px;
  line-height: 1.05;
  letter-spacing: -.5px;
}

.page-hero__subtitle {
  font-size: 17px;
  color: rgba(255,255,255,.84);
  margin: 0 0 20px;
  line-height: 1.5;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.page-hero__breadcrumb {
  font-size: 13px;
  color: rgba(255,255,255,.65);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.page-hero__breadcrumb a {
  color: rgba(255,255,255,.80);
  text-decoration: none;
  transition: color .2s;
}

.page-hero__breadcrumb a:hover { color: white; }

@media (max-width: 767px) {
  .page-hero__title   { font-size: 32px; }
  .page-hero__subtitle { font-size: 15px; }
  .page-hero__paw--1  { font-size: 160px; }
  .page-hero__paw--2  { font-size: 100px; }
}

/* ─── Section wrappers ─────────────────────────────────────────────── */
.page-section {
  padding: 60px 0;
}

.page-section--light {
  background: var(--bg-light);
}

.page-section--white {
  background: #fff;
}

@media (max-width: 767px) {
  .page-section { padding: 40px 0; }
}

/* ─── Section header ───────────────────────────────────────────────── */
.sec-header {
  text-align: center;
  margin-bottom: 40px;
}

.sec-header__title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 30px;
  font-weight: 700;
  color: var(--dark);
  margin: 0 0 10px;
}

.sec-header__sub {
  font-size: 16px;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.6;
}

.sec-divider {
  width: 56px;
  height: 3px;
  background: var(--mint);
  border-radius: 99px;
  margin: 10px auto 0;
}

/* ═══════════════════════════════════════════════════════════════════
   УСЛУГИ PAGE
   ═══════════════════════════════════════════════════════════════════ */

.svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  padding: 8px 4px 4px; /* breathing room for hover translateY */
}

@media (max-width: 991px) {
  .svc-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}
@media (max-width: 575px) {
  .svc-grid { grid-template-columns: 1fr; gap: 14px; }
}

/* ── Card shell ──────────────────────────────────────────────── */
.svc-card {
  background: #fff;
  border-radius: 20px;
  /* overflow:visible so icon animation never clips at corners */
  overflow: visible;
  box-shadow: 0 6px 22px rgba(22, 53, 99, .09);
  border: 1px solid rgba(80, 153, 219, .10);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  display: flex;
  flex-direction: column;
}

.svc-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(22, 53, 99, .15);
  border-color: rgba(80, 153, 219, .28);
}

/* ── Card header ─────────────────────────────────────────────── */
.svc-card__header {
  background: linear-gradient(135deg, rgba(80,153,219,.09) 0%, rgba(80,153,219,.03) 100%);
  border-bottom: 1px solid rgba(80,153,219,.10);
  border-radius: 20px 20px 0 0;
  padding: 18px 20px 16px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-height: 80px;
}

/* ── Icon badge - NO background, just layout + hover scale ──── */
@keyframes badge-bob {
  0%, 100% { transform: translateY(0) scale(1); }
  45%       { transform: translateY(-6px) scale(1.05); }
  75%       { transform: translateY(-2px) scale(1.02); }
}

.svc-card__icon-badge {
  width: 56px;
  height: 56px;
  min-width: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1);
  margin-left: auto;
}

.svc-card:hover .svc-card__icon-badge {
  transform: scale(1.12) rotate(-7deg);
}

/* ── Icon (img or svg) - bob animation lives HERE ────────────── */
.svc-card__icon-badge img,
.svc-card__icon-badge svg {
  display: block;
  animation: badge-bob 3.8s ease-in-out infinite;
  transition: filter .3s ease;
}

/* Stagger so cards don't bob in sync */
.svc-card:nth-child(2) .svc-card__icon-badge img,
.svc-card:nth-child(2) .svc-card__icon-badge svg { animation-delay: -.9s; }
.svc-card:nth-child(3) .svc-card__icon-badge img,
.svc-card:nth-child(3) .svc-card__icon-badge svg { animation-delay: -1.8s; }
.svc-card:nth-child(4) .svc-card__icon-badge img,
.svc-card:nth-child(4) .svc-card__icon-badge svg { animation-delay: -2.7s; }
.svc-card:nth-child(5) .svc-card__icon-badge img,
.svc-card:nth-child(5) .svc-card__icon-badge svg { animation-delay: -3.6s; }
.svc-card:nth-child(6) .svc-card__icon-badge img,
.svc-card:nth-child(6) .svc-card__icon-badge svg { animation-delay: -1.3s; }
.svc-card:nth-child(7) .svc-card__icon-badge img,
.svc-card:nth-child(7) .svc-card__icon-badge svg { animation-delay: -2.4s; }
.svc-card:nth-child(8) .svc-card__icon-badge img,
.svc-card:nth-child(8) .svc-card__icon-badge svg { animation-delay: -.6s; }

/* Stop bob on hover - container handles the transform */
.svc-card:hover .svc-card__icon-badge img,
.svc-card:hover .svc-card__icon-badge svg {
  animation: none;
  filter: drop-shadow(0 4px 14px rgba(80,153,219,.45));
}

.svc-card__icon-badge img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(30, 80, 160, .15));
}

.svc-card__icon-badge svg {
  width: 32px;
  height: 32px;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
}

/* ── Card title - left, icon goes to the right via order ─────── */
.svc-card__title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--dark);
  margin: 0;
  line-height: 1.3;
  flex: 1;
  text-align: left;
  order: 1;
}

.svc-card__icon-badge {
  order: 2;
}

/* ── Card body (list) ────────────────────────────────────────── */
.svc-card__list {
  list-style: none;
  margin: 0;
  padding: 12px 20px 20px;
  flex: 1;
  /* Bottom corners match card */
  border-radius: 0 0 20px 20px;
  overflow: hidden;
}

.svc-card__list li {
  position: relative;
  padding: 6px 0 6px 18px;
  color: var(--text-muted);
  font-size: 13.5px;
  line-height: 1.55;
  border-bottom: 1px solid rgba(33, 54, 96, .05);
}

.svc-card__list li:last-child { border-bottom: none; }

.svc-card__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 14px;
  width: 7px;
  height: 7px;
  background: var(--mint);
  border-radius: 50%;
  opacity: .6;
}

/* ── Services media preview ──────────────────────────────────── */
.svc-media-section {
  padding-top: 52px;
  padding-bottom: 56px;
}

.svc-media-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.svc-media-card {
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(80, 153, 219, .16);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px rgba(22, 53, 99, .10);
  text-decoration: none;
  color: inherit;
  padding: 0;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.svc-media-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(22, 53, 99, .15);
  border-color: rgba(80, 153, 219, .30);
}

.svc-media-card__thumb {
  position: relative;
  height: 190px;
  background: linear-gradient(160deg, #15324f, #0d1f35);
  overflow: hidden;
}

.svc-media-card__thumb img,
.svc-media-card__thumb video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.svc-media-card__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--mint);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  box-shadow: 0 8px 20px rgba(6, 14, 30, .32);
}

.svc-media-card__badge {
  position: absolute;
  left: 12px;
  bottom: 12px;
  background: rgba(6, 14, 30, .76);
  color: #fff;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .25px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.svc-media-card__body {
  padding: 14px 14px 16px;
}

.svc-media-card__title {
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.25;
  color: var(--dark);
  font-weight: 700;
}

.svc-media-card__text {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-muted);
}

.svc-video-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(6, 14, 30, .92);
  padding: 16px;
}

.svc-video-modal.is-open {
  display: flex;
}

.svc-video-modal__dialog {
  width: min(980px, 96vw);
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0, 0, 0, .46);
  background: #000;
}

.svc-video-modal__dialog video {
  width: 100%;
  height: auto;
  max-height: 86vh;
  display: block;
  background: #000;
}

.svc-video-modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .20);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
  transition: background .2s ease;
}

.svc-video-modal__close:hover {
  background: rgba(255, 255, 255, .35);
}

/* ── Full-width card (Допълнителни услуги) ───────────────────── */
.svc-card--full {
  grid-column: 1 / -1;
}

.svc-card--full .svc-card__list {
  columns: 3;
  column-gap: 28px;
}

@media (max-width: 991px) {
  .svc-card--full .svc-card__list { columns: 2; }
}
@media (max-width: 575px) {
  .svc-card--full { grid-column: auto; }
  .svc-card--full .svc-card__list { columns: 1; }
}

/* ── Mobile tweaks ───────────────────────────────────────────── */
@media (max-width: 767px) {
  .svc-card__header { padding: 14px 16px 12px; min-height: 70px; gap: 12px; }
  .svc-card__icon-badge { width: 48px; height: 48px; min-width: 48px; }
  .svc-card__icon-badge img { width: 36px; height: 36px; }
  .svc-card__title { font-size: 14px; }
  .svc-card__list { padding: 10px 16px 16px; }
  .svc-card__list li { font-size: 13px; padding: 5px 0 5px 16px; }
  .svc-media-grid { grid-template-columns: 1fr; gap: 14px; }
  .svc-media-card__thumb { height: 200px; }
}

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

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

/* ═══════════════════════════════════════════════════════════════════
   ГАЛЕРИЯ PAGE
   ═══════════════════════════════════════════════════════════════════ */

.gallery-wrapper {
  background: var(--bg-light);
  padding-top: calc(var(--site-nav-offset, 110px) + 20px);
}

.gallery-section {
  padding: 40px 0 20px;
}

.gallery-section__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.gallery-section__line {
  flex: 1;
  height: 1px;
  background: rgba(80, 153, 219, .25);
}

.gallery-section__title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--mint);
  white-space: nowrap;
  margin: 0;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

@media (max-width: 991px) {
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

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

@media (max-width: 400px) {
  .gallery-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
}

@keyframes gallery-shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}

.gallery-item {
  display: block;
  border-radius: var(--radius-sm);
  overflow: hidden;
  aspect-ratio: 1;
  position: relative;
  cursor: pointer;
  background: #dde8f2;
}

/* Stop shimmer once image is loaded */
.gallery-item.loaded {
  animation: none;
  background: #dde8f2;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
  opacity: 1;
}

.gallery-item:hover img {
  transform: scale(1.07);
}

@media (hover: none) and (pointer: coarse) {
  .gallery-item:hover img {
    transform: none;
  }
}

.gallery-item__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.38) 100%);
  opacity: 0;
  transition: opacity .3s ease;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 10px;
}

.gallery-item:hover .gallery-item__overlay {
  opacity: 1;
}

.gallery-item__overlay-icon {
  color: white;
  font-size: 22px;
  opacity: .9;
}

.gallery-grid--equipment {
  gap: 16px;
}

.gallery-equipment-card {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.gallery-equipment-card .gallery-item {
  aspect-ratio: 1 / 1;
}

.gallery-equipment-card__caption {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .15px;
  line-height: 1.4;
  color: rgba(31, 42, 68, .88);
  margin: 0;
  padding: 0 2px;
  text-align: center;
}

.gallery-equipment-card__caption {
  display: none;
}

@media (max-width: 767px) {
  .gallery-equipment-card__caption {
    font-size: 12px;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   КОНТАКТИ PAGE
   ═══════════════════════════════════════════════════════════════════ */

.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: start;
}

@media (max-width: 767px) {
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.contact-title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--mint);
  margin: 0 0 22px;
}

.contact-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.contact-card {
  background: #fff;
  border-radius: var(--radius-md);
  padding: 16px 20px;
  box-shadow: var(--shadow-sm);
  display: flex;
  align-items: flex-start;
  gap: 14px;
  transition: transform .22s ease, box-shadow .22s ease;
}

.contact-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

a.contact-card {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.contact-card__icon {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--mint);
  font-size: 22px;
}

.contact-card__body { flex: 1; }

.contact-card__label {
  font-size: 11px;
  font-weight: 700;
  color: var(--mint);
  text-transform: uppercase;
  letter-spacing: .7px;
  margin: 0 0 4px;
}

.contact-card__value {
  font-size: 14px;
  color: var(--dark);
  margin: 0;
  line-height: 1.6;
}

.contact-card__value a {
  color: var(--dark);
  text-decoration: none;
  font-weight: 600;
  transition: color .2s;
}

.contact-card__value a:hover { color: var(--mint); }

.hours-rows {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 16px;
}

.hours-day  { color: var(--text-muted); font-size: 13px; }
.hours-time { color: var(--dark);       font-size: 13px; font-weight: 600; }

.contact-map-wrap {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  position: sticky;
  top: calc(var(--site-nav-offset, 110px) + 20px);
}

.contact-map-wrap iframe {
  width: 100%;
  height: 480px;
  display: block;
  border: none;
}

@media (max-width: 767px) {
  .contact-map-wrap { position: static; }
  .contact-map-wrap iframe { height: 300px; }
}

/* ═══════════════════════════════════════════════════════════════════
   CONTACTS BOTTOM SECTION  (shared across all pages)
   ═══════════════════════════════════════════════════════════════════ */

.page-contacts {
  background: #fff;
  padding: 60px 0 50px;
}

@media (max-width: 767px) { .page-contacts { padding: 40px 0 36px; } }

/* ═══════════════════════════════════════════════════════════════════
   СЕРТИФИКАТИ PAGE
   ═══════════════════════════════════════════════════════════════════ */

.cert-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

@media (max-width: 991px) { .cert-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .cert-grid { grid-template-columns: 1fr; gap: 16px; } }

.cert-card {
  background: #fff;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border: 1px solid rgba(33, 54, 96, .06);
  transition: transform .25s ease, box-shadow .25s ease;
  display: flex;
  flex-direction: column;
}

.cert-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg);
}

.cert-card__img {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #d8eae4;
  cursor: zoom-in;
  display: block;
}

.cert-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .38s ease;
}

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

.cert-card__zoom {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0);
  transition: background .3s;
  color: #fff;
  font-size: 28px;
  opacity: 0;
  transition: opacity .3s, background .3s;
}

.cert-card:hover .cert-card__zoom {
  opacity: 1;
  background: rgba(0, 0, 0, .22);
}

.cert-card__body {
  padding: 18px 20px 22px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.cert-card__year {
  font-size: 11px;
  font-weight: 700;
  color: var(--mint);
  text-transform: uppercase;
  letter-spacing: .8px;
  margin: 0 0 6px;
}

.cert-card__title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--dark);
  margin: 0 0 8px;
  line-height: 1.35;
}

.cert-card__desc {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.6;
  flex: 1;
}

/* ═══════════════════════════════════════════════════════════════════
   REVIEWS INFINITE CAROUSEL  (index.html)
   ═══════════════════════════════════════════════════════════════════ */

.reviews-section {
  position: relative;
  overflow: hidden;
}

.reviews-section__paw {
  position: absolute;
  color: rgba(80, 153, 219, 0.08);
  pointer-events: none;
  z-index: 0;
  line-height: 1;
  font-size: 200px;
  top: 50%;
  right: -40px;
  transform: translateY(-50%) rotate(18deg);
}

.reviews-section .container {
  position: relative;
  z-index: 1;
}

.reviews-section__head {
  text-align: center;
  max-width: 560px;
  margin: 0 auto 8px;
}

.reviews-section__title {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--mint);
  margin: 0 0 12px;
  letter-spacing: -0.4px;
  line-height: 1.15;
}

.reviews-section__lead {
  font-size: 16px;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.55;
}

.reviews-section__divider {
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, var(--mint), rgba(80, 153, 219, 0.35));
  border-radius: 99px;
  margin: 18px auto 22px;
}

.reviews-carousel-outer {
  overflow: hidden;
  -webkit-mask: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
  mask: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
  padding: 16px 0 28px;
}

.reviews-track {
  display: flex;
  gap: 22px;
  width: max-content;
  animation: reviews-scroll 48s linear infinite;
  will-change: transform;
}

.reviews-track:hover {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .reviews-track {
    animation: none;
    flex-wrap: wrap;
    width: 100%;
    justify-content: center;
    row-gap: 16px;
  }
  .review-card {
    width: min(100%, 320px);
  }
}

@keyframes reviews-scroll {
  0%   { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-50%, 0, 0); }
}

.review-card {
  background: linear-gradient(165deg, #ffffff 0%, #f9fcff 100%);
  border-radius: 20px;
  padding: 22px 22px 18px;
  box-shadow: 0 14px 34px rgba(25, 63, 116, 0.11);
  border: 1px solid rgba(33, 54, 96, 0.07);
  width: min(300px, 85vw);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

.review-card:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 20px 44px rgba(25, 63, 116, 0.16);
  border-color: rgba(80, 153, 219, 0.22);
}

.review-card__stars {
  color: var(--mint);
  font-size: 15px;
  letter-spacing: 2px;
  margin-bottom: 12px;
  filter: drop-shadow(0 1px 0 rgba(80, 153, 219, 0.2));
}

.review-card__quote {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 14px;
  color: rgba(31, 42, 68, 0.82);
  line-height: 1.65;
  margin: 0 0 16px;
  flex: 1;
}

.review-card__name {
  font-weight: 700;
  font-size: 14px;
  color: var(--dark);
  display: flex;
  align-items: center;
  gap: 8px;
}

.review-card__name::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--mint);
  opacity: 0.85;
}

.review-card__meta {
  font-size: 12px;
  color: rgba(31, 42, 68, 0.5);
  margin-top: 6px;
  padding-left: 16px;
}

.review-card__source {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(31, 42, 68, 0.07);
  font-size: 11px;
  color: rgba(31, 42, 68, 0.45);
  display: flex;
  align-items: center;
  gap: 5px;
}

.review-card__source .fa-google { color: #4285F4; font-size: 13px; }

@media (max-width: 767px) {
  .reviews-section__title { font-size: 26px; }
  .reviews-section__paw { font-size: 120px; right: -24px; opacity: 0.7; }
}

/* ═══════════════════════════════════════════════════════════════════
   SCROLL-REVEAL ANIMATIONS
   ═══════════════════════════════════════════════════════════════════ */

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .65s ease, transform .65s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-d1 { transition-delay: .10s; }
.reveal-d2 { transition-delay: .20s; }
.reveal-d3 { transition-delay: .30s; }
.reveal-d4 { transition-delay: .40s; }
.reveal-d5 { transition-delay: .50s; }
.reveal-d6 { transition-delay: .60s; }

/* ═══════════════════════════════════════════════════════════════════
   Услуги и interior страници - зелени лапи на фона
   ═══════════════════════════════════════════════════════════════════ */

.svc-section-wrap,
.paw-bg-wrap {
  position: relative;
  overflow: hidden;
}

.paw-bg-wrap > .container {
  position: relative;
  z-index: 1;
}

.paw-bg-global {
  position: absolute;
  color: rgba(80, 153, 219, 0.14);
  z-index: 0;
  pointer-events: none;
  line-height: 1;
}

.paw-bg--1 {
  top: -40px;
  left: 5%;
  transform: rotate(-25deg);
  font-size: 300px;
}

.paw-bg--2 {
  top: 45%;
  right: -5%;
  transform: rotate(35deg);
  font-size: 400px;
  opacity: 0.5;
}

.paw-bg--3 {
  bottom: -20px;
  left: 40%;
  transform: rotate(10deg);
  font-size: 150px;
}

@media (max-width: 991px) {
  .paw-bg--1 { font-size: 200px; top: -20px; }
  .paw-bg--2 { font-size: 250px; right: -10%; }
  .paw-bg--3 { font-size: 100px; }
}

@media (max-width: 767px) {
  .paw-bg--1 { font-size: 150px; opacity: 0.45; }
  .paw-bg--2 { font-size: 180px; opacity: 0.45; right: -15%; }
  .paw-bg--3 { font-size: 80px; opacity: 0.45; }
}

/* ── Service card photo header ─────────────────────────────── */
.svc-card__img-wrap {
  position: relative;
  height: 165px;
  margin: -28px -28px 20px;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
  flex-shrink: 0;
}

.svc-card__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.svc-card:hover .svc-card__bg-img {
  transform: scale(1.07);
}

.svc-card__img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(80,153,219,.18) 0%,
    rgba(31,42,68,.60) 100%);
  transition: background .35s ease;
}

.svc-card:hover .svc-card__img-overlay {
  background: linear-gradient(180deg,
    rgba(80,153,219,.36) 0%,
    rgba(31,42,68,.72) 100%);
}

/* Legacy positioning used only for old image-header cards */
.svc-card__img-wrap .svc-card__icon-badge {
  position: absolute;
  bottom: 14px;
  left: 20px;
  width: 50px;
  height: 50px;
  background: rgba(255,255,255,.95);
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(22,53,99,.22);
  border: 2px solid rgba(80,153,219,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(4px);
}

.svc-card__icon-badge img {
  width: 26px;
  height: 26px;
  object-fit: contain;
}

.svc-card__icon-badge .fa {
  font-size: 20px;
  color: var(--mint);
}

/* Услуги intro stats bar */
.svc-stats {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  padding: 36px 0 10px;
}

.svc-stat {
  text-align: center;
}

.svc-stat__num {
  font-family: Ubuntu, Helvetica, Arial, sans-serif;
  font-size: 42px;
  font-weight: 800;
  color: var(--mint);
  line-height: 1;
  margin-bottom: 4px;
}

.svc-stat__label {
  font-size: 13px;
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .6px;
}

@media (max-width: 767px) {
  .svc-stats { gap: 28px; padding: 24px 0 0; }
  .svc-stat__num { font-size: 34px; }
}

/* ═══════════════════════════════════════════════════════════════════
   GLOBAL MOBILE IMPROVEMENTS  (≤ 767px)
   ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 767px) {

  /* ── Page hero ── */
  .page-hero {
    padding-left: 16px;
    padding-right: 16px;
  }
  .page-hero__title  { font-size: 28px; letter-spacing: -.3px; }
  .page-hero__subtitle { font-size: 14px; }

  /* ── Section header ── */
  .sec-header { margin-bottom: 28px; }
  .sec-header__title { font-size: 24px; }

  /* ── Services cards ── */
  .svc-grid .svc-card { padding: 0; }
  .svc-card__title { font-size: 16px; }
  .svc-card__list li { font-size: 13px; }
  .svc-card--full .svc-card__list { columns: 1; }

  /* ── Contact cards ── */
  .contact-title { font-size: 20px; }
  .contact-card  { padding: 12px 14px; gap: 10px; }
  .contact-card__icon {
    width: 38px;
    height: 38px;
    font-size: 20px;
  }
  .contact-card__value { font-size: 13px; }
  .contact-map-wrap iframe { height: 260px; }

  /* ── Gallery ── */
  .gallery-section__title { font-size: 18px; }

  /* ── Cert cards ── */
  .cert-card__title { font-size: 13px; }

  /* ── Reviews ── */
  .reviews-section__title { font-size: 22px; }
  .review-card { padding: 16px 16px 14px; }

  /* ── Contacts bottom (index + uslugi) ── */
  .page-contacts { padding: 32px 16px 28px; }
  .sec-header__title { font-size: 22px; }
}

/* Services page symmetry on mobile */
@media (max-width: 767px) {
  .svc-section-wrap .container,
  .page-contacts .container {
    max-width: 430px;
    margin-left: auto;
    margin-right: auto;
  }

  .svc-grid {
    gap: 16px;
    padding: 4px 0 0;
  }

  .svc-card {
    border-radius: 18px;
  }

  .svc-card__header {
    padding: 14px 14px 12px;
    min-height: 76px;
    gap: 10px;
  }

  .svc-card__title {
    font-size: 15px;
    line-height: 1.25;
  }

  .svc-card__list {
    padding: 10px 14px 14px;
  }

  .svc-card__list li {
    padding: 6px 0 6px 16px;
    line-height: 1.5;
  }

  .page-contacts .contact-layout {
    gap: 18px;
  }

  .contact-cards {
    gap: 10px;
  }

  .contact-card {
    border-radius: 14px;
  }

  .contact-info-col > div[style*="margin-top:22px"] {
    text-align: center;
  }

  .contact-info-col > div[style*="margin-top:22px"] .btn {
    width: min(100%, 260px);
    justify-content: center;
  }
}

/* Very small phones */
@media (max-width: 400px) {
  .page-hero__title { font-size: 24px; }
  .svc-card { padding: 16px 14px 14px; }
  .contact-card { padding: 10px 12px; }
  .svc-grid { gap: 12px; }
}
