/* ============================================
   VIRF 2.0 — Service Pages (shared)
   ============================================ */

/* ============================================
   SERVICE WHY
   ============================================ */
.service-why {
  padding: var(--space-20) 0;
}

.service-why__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-16);
  align-items: center;
}

.service-why__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.service-why__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-top: var(--space-2);
}

.service-why__list li {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  font-size: var(--text-base);
  color: var(--color-dark);
  line-height: 1.6;
}

.service-why__icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-top: 2px;
  color: var(--color-red);
}
.service-why__icon svg {
  width: 100%;
  height: 100%;
}

.service-why__img {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/5;
}
.service-why__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* ============================================
   PROGRAM SECTION
   ============================================ */
.program-section {
  padding: var(--space-20) 0;
}

.program-section--alt {
  background: var(--color-gray-light);
}

.program-section .section-title {
  margin: var(--space-3) 0 var(--space-4);
}

.schedule-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-6);
  margin-top: var(--space-10);
}

.schedule-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid rgba(10,22,40,0.1);
  background: var(--color-white);
}

.schedule-card__header {
  background: var(--color-dark);
  padding: var(--space-5) var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.schedule-card__day {
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  color: var(--color-white);
}

.schedule-card__type {
  font-size: var(--text-sm);
  color: rgba(255,255,255,0.6);
}

.schedule-card__body {
  padding: var(--space-5) var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.schedule-slot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-gray-light);
}
.schedule-slot:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.schedule-slot__time {
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  color: var(--color-dark);
  white-space: nowrap;
}

.schedule-slot__desc {
  font-size: var(--text-sm);
  color: var(--color-gray);
  text-align: right;
}

/* Program info grid */
.program-info {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
  margin-top: var(--space-8);
  padding: var(--space-6);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(10,22,40,0.08);
}

.program-section--alt .program-info {
  background: rgba(255,255,255,0.7);
}

.program-info__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.program-info__item strong {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gray);
}

.program-info__item span {
  font-size: var(--text-sm);
  color: var(--color-dark);
  font-weight: var(--weight-semibold);
}

/* Adult program */
.adult-program-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-6);
  margin-top: var(--space-8);
}

.adult-program-card {
  padding: var(--space-8);
  border: 1px solid rgba(10,22,40,0.1);
  border-radius: var(--radius-lg);
  transition: box-shadow var(--transition-base);
}
.adult-program-card:hover {
  box-shadow: var(--shadow-md);
}

.adult-program-card h3 {
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  color: var(--color-dark);
  margin-bottom: var(--space-3);
}

.adult-program-card p {
  font-size: var(--text-base);
  color: var(--color-gray);
  line-height: 1.65;
}


/* ============================================
   SERVICE LOCATION
   ============================================ */
.service-location {
  padding: var(--space-20) 0;
  background: var(--color-gray-light);
}

.service-location__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-16);
  align-items: center;
}

.service-location__img {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/3;
}
.service-location__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-location .section-sub {
  margin-top: var(--space-3);
}


/* ============================================
   SERVICE TYPES (for masaj/kineto)
   ============================================ */
.service-types {
  padding: var(--space-20) 0;
}

.service-types-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  margin-top: var(--space-10);
}

.service-type-card {
  padding: var(--space-6);
  border: 1px solid var(--color-gray-light);
  border-radius: var(--radius-lg);
  transition: box-shadow var(--transition-base), border-color var(--transition-base);
}
.service-type-card:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(10,22,40,0.15);
}

.service-type-card__icon {
  width: 40px;
  height: 40px;
  color: var(--color-red);
  margin-bottom: var(--space-4);
}
.service-type-card__icon svg {
  width: 100%;
  height: 100%;
}

.service-type-card h3 {
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-dark);
  margin-bottom: var(--space-2);
}

.service-type-card p {
  font-size: var(--text-sm);
  color: var(--color-gray);
  line-height: 1.65;
}

/* Service process (kineto) */
.service-process {
  padding: var(--space-20) 0;
  background: var(--color-dark);
}

.service-process .section-label {
  color: rgba(255,255,255,0.5);
}

.service-process .section-label--light {
  color: rgba(255,255,255,0.5);
}

.process-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
  margin-top: var(--space-10);
  position: relative;
}

.process-step {
  text-align: center;
  position: relative;
}

.process-step__number {
  font-size: var(--text-4xl);
  font-weight: var(--weight-bold);
  color: var(--color-red);
  line-height: 1;
  margin-bottom: var(--space-4);
  opacity: 0.9;
}

.process-step__title {
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  color: var(--color-white);
  margin-bottom: var(--space-2);
}

.process-step__desc {
  font-size: var(--text-sm);
  color: rgba(255,255,255,0.55);
  line-height: 1.6;
}

/* Pathologies list */
.pathologies-section {
  padding: var(--space-20) 0;
  background: var(--color-gray-light);
}

.pathologies-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-top: var(--space-10);
}

.pathology-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  background: var(--color-white);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-dark);
  border: 1px solid rgba(10,22,40,0.06);
}

.pathology-item::before {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-red);
  flex-shrink: 0;
}


/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
  .service-types-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .process-steps {
    grid-template-columns: repeat(2, 1fr);
  }
  .pathologies-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .service-why__grid,
  .service-location__grid {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  .service-why__img {
    aspect-ratio: 16/9;
    order: -1;
  }
  .schedule-grid {
    grid-template-columns: 1fr;
  }
  .program-info {
    grid-template-columns: repeat(2, 1fr);
  }
  .adult-program-grid {
    grid-template-columns: 1fr;
  }
  .service-types-grid {
    grid-template-columns: 1fr;
  }
  .process-steps {
    grid-template-columns: repeat(2, 1fr);
  }
  .pathologies-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .program-info {
    grid-template-columns: 1fr 1fr;
  }
  .process-steps {
    grid-template-columns: 1fr;
  }
}

/* ── Hero serviciu ── */
.page-hero--short { min-height: 60vh; }
@media (max-width: 768px) {
  .page-hero--short { min-height: 50vh; }
}

/* ── Section wrappers ── */
.service-section { padding: var(--space-16) 0; }
.service-section--lg { padding: var(--space-20) 0; }
.service-section--dark { background: var(--color-dark); }
.service-section--light { background: #f7f8fa; }
.service-section--white { background: var(--color-white); }
.service-section--border-top { border-top: 1px solid var(--color-gray-light); }

/* ── Grids responsive ── */
.service-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-16);
  align-items: center;
}
.service-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}
.service-grid-2x2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
}
@media (max-width: 768px) {
  .service-grid-2,
  .service-grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .service-grid-3 { grid-template-columns: 1fr; }
}

/* ── Pricing cards ── */
.price-card {
  border: 1px solid var(--color-gray-light);
  padding: var(--space-10);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
}
.price-card--featured {
  background: #1B3A6B;
  border-color: #1B3A6B;
  transform: translateY(-10px);
}
.price-card__name {
  font-size: var(--text-base);
  font-weight: 800;
  color: var(--color-dark);
  margin-bottom: var(--space-3);
}
.price-card--featured .price-card__name { color: var(--color-white); }
.price-card__desc {
  font-size: var(--text-sm);
  color: var(--color-gray-mid);
  margin: 0 0 var(--space-6);
  line-height: 1.6;
}
.price-card--featured .price-card__desc { color: rgba(255,255,255,0.55); }
.price-card__divider {
  height: 1px;
  background: var(--color-gray-light);
  margin-bottom: var(--space-6);
}
.price-card--featured .price-card__divider { background: rgba(255,255,255,0.12); }
.price-card__features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  flex: 1;
}
.price-card__features li {
  color: var(--color-dark);
  font-size: var(--text-sm);
}
.price-card--featured .price-card__features li { color: rgba(255,255,255,0.8); }
.price-card__features li.highlight {
  color: var(--color-red);
  font-weight: 600;
}
.price-card__amount-divider {
  height: 1px;
  background: var(--color-gray-light);
  margin: var(--space-6) 0;
}
.price-card--featured .price-card__amount-divider { background: rgba(255,255,255,0.12); }
.price-card__amount {
  font-size: 42px;
  font-weight: 800;
  color: var(--color-dark);
  line-height: 1;
}
.price-card--featured .price-card__amount { color: var(--color-white); }
.price-card__unit {
  font-size: var(--text-sm);
  font-weight: 400;
  color: var(--color-gray-mid);
}
.price-card--featured .price-card__unit { color: rgba(255,255,255,0.45); }
@media (max-width: 900px) {
  .price-card--featured { transform: none; }
}

/* ── Info cards ── */
.info-card {
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 10px;
  padding: var(--space-6);
}
.info-card--dark {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.1);
}
.info-card__value {
  color: var(--color-red);
  font-size: var(--text-xl);
  font-weight: 800;
  margin-bottom: var(--space-2);
}
.info-card__label {
  color: var(--color-gray-mid);
  font-size: var(--text-sm);
}
.info-card--dark .info-card__label { color: rgba(255,255,255,0.7); }

/* ── Principii / Steps numerotate ── */
.principle-item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: var(--space-8);
  padding: var(--space-8) 0;
  border-top: 1px solid var(--color-gray-light);
  align-items: start;
}
.principle-item:last-child {
  border-bottom: 1px solid var(--color-gray-light);
}
.principle-item__number {
  font-size: 56px;
  font-weight: 800;
  color: var(--color-gray-light);
  line-height: 1;
}
.principle-item__title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: var(--space-3);
}
.principle-item__desc {
  color: var(--color-gray-mid);
  font-size: var(--text-sm);
  line-height: 1.8;
}

/* ── Method strip ── */
.method-strip {
  background: var(--color-dark);
  padding: var(--space-5) 0;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.method-strip__text {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  text-align: center;
  margin: 0;
}

/* ── Benefit card on light bg ── */
.benefit-card--on-light {
  background: var(--color-white);
  border-color: #A8BDD0;
}

/* ── Sedinta cards (fitness) ── */
.sedinta-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  padding: var(--space-10);
  text-align: center;
}
.sedinta-card--main {
  background: rgba(255,255,255,0.11);
  border-color: rgba(255,255,255,0.2);
  box-shadow: 0 0 0 1px rgba(200,16,46,0.18) inset;
}

/* ── Partner links ── */
.partner-cta {
  transition: background var(--transition-base);
}
.partner-cta:hover {
  background: #112040 !important;
}
.partner-logo {
  opacity: 0.55;
  transition: opacity var(--transition-base);
}
.partner-logo:hover {
  opacity: 1;
}

/* ── Objective pills ── */
/* Pe desktop (>1024px) — pill-urile rămân la aceeași lățime (stretched din inline),
   doar textul + iconița se centrează orizontal în pill (în loc să stea pe stânga).
   Pe mobil/tabletă rămâne ca înainte. */
@media (min-width: 1025px) {
  .objective-pill {
    justify-content: center;
  }
}
.objective-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 12px;
  padding: var(--space-4) var(--space-5);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-dark);
}

@media (max-width: 1024px) {
  .fitness-principles-grid {
    grid-template-columns: 1fr !important;
  }
  .resp-sticky-photo {
    position: static !important;
    max-width: 400px;
    margin: var(--space-8) auto 0;
  }
}

/* ── Section sub-hero text ── */
.service-subhero {
  padding: var(--space-10) 0 var(--space-8);
  background: var(--color-white);
  border-bottom: 1px solid var(--color-gray-light);
}
.service-subhero--lg {
  padding: var(--space-12) 0;
}
.service-subhero__text {
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  color: var(--color-dark);
  line-height: 1.4;
  margin-bottom: var(--space-3);
}
.service-subhero__desc {
  font-size: var(--text-lg);
  color: var(--color-gray-mid);
  line-height: 1.8;
  max-width: 680px;
}

/* ── Program schedule (dark) ── */
.schedule-label {
  color: var(--color-red);
  font-size: var(--text-sm);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--space-3);
}
.schedule-days {
  color: var(--color-white);
  font-size: var(--text-2xl);
  font-weight: 700;
  margin-bottom: var(--space-2);
}
.schedule-hours {
  color: rgba(255,255,255,0.55);
  font-size: var(--text-base);
}
.schedule-divider {
  border-left: 1px solid rgba(255,255,255,0.12);
  padding-left: var(--space-10);
}
.schedule-note {
  margin-top: var(--space-10);
  padding-top: var(--space-8);
  border-top: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.4);
  font-size: var(--text-sm);
}

/* ── Badge / Tag pills ── */
.badge {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 100px;
}
.badge--dark {
  color: rgba(255,255,255,0.35);
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
}
.badge--red {
  color: var(--color-red);
  background: rgba(200,16,46,0.12);
  border: 1px solid rgba(200,16,46,0.3);
}

/* ── Sport tags (condiționare) ── */
.sport-tag {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.07);
  padding: 4px 10px;
  border-radius: 20px;
}

/* ── Dark audience card (condiționare) ── */
.audience-dark-card {
  padding: var(--space-10);
  background: rgba(255,255,255,0.04);
  border-radius: 10px;
}
.audience-dark-card--primary {
  border-top: 2px solid var(--color-red);
}
.audience-dark-card--secondary {
  border-top: 2px solid rgba(255,255,255,0.15);
}
.audience-dark-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--space-6);
}
.audience-dark-card__label {
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.audience-dark-card__label--red {
  color: var(--color-red);
}
.audience-dark-card__label--muted {
  color: rgba(255,255,255,0.5);
}
.audience-dark-card__age {
  font-size: var(--text-xs);
  color: rgba(255,255,255,0.3);
  font-weight: 600;
}
.audience-dark-card__title {
  font-size: var(--text-2xl);
  font-weight: 800;
  color: var(--color-white);
  line-height: 1.2;
  margin-bottom: var(--space-5);
}
.audience-dark-card__desc {
  color: rgba(255,255,255,0.5);
  font-size: var(--text-sm);
  line-height: 1.85;
  margin-bottom: var(--space-8);
}
.audience-dark-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

/* ── Stat card with top border ── */
.stat-accent {
  border-top: 2px solid var(--color-red);
  padding-top: var(--space-5);
}
.stat-accent--light {
  border-top: 1px solid var(--color-gray-light);
  padding-top: var(--space-5);
}
.stat-accent__value {
  font-size: clamp(2rem, 3vw, 2.5rem);
  font-weight: 800;
  color: var(--color-dark);
  line-height: 1;
}
.stat-accent__value--sm {
  font-size: var(--text-lg);
  font-weight: 800;
  color: var(--color-dark);
  line-height: 1.2;
}
.stat-accent__label {
  font-size: var(--text-sm);
  color: var(--color-gray-mid);
  margin-top: var(--space-2);
  line-height: 1.4;
}

/* ── Phase / timeline steps (înot) ── */
.phase-item {
  border-top: 1px solid var(--color-gray-light);
  padding: var(--space-6) 0;
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-5);
  align-items: start;
}
.phase-item:last-child {
  border-bottom: 1px solid var(--color-gray-light);
}
.phase-item__label {
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-red);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding-top: 3px;
}
.phase-item__title {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: var(--space-1);
}
.phase-item__desc {
  font-size: var(--text-sm);
  color: var(--color-gray);
  line-height: 1.6;
}

/* ── Simple content card (white on gray bg) ── */
.content-card {
  background: var(--color-white);
  border-radius: 12px;
  padding: var(--space-8);
  border: 1px solid rgba(10,22,40,0.06);
}
.content-card h3 {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: var(--space-2);
}
.content-card p {
  font-size: var(--text-sm);
  color: var(--color-gray);
  line-height: 1.65;
}

/* ── Testimonial card ── */
.testimonial-card {
  background: var(--color-white);
  border-radius: 12px;
  padding: var(--space-8);
  border: 1px solid var(--color-gray-light);
  display: flex;
  flex-direction: column;
}
.testimonial-card__quote {
  color: var(--color-red);
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  margin-bottom: var(--space-4);
}
.testimonial-card__text {
  font-size: var(--text-base);
  color: var(--color-dark);
  line-height: 1.7;
  flex: 1;
  margin-bottom: var(--space-6);
}
.testimonial-card__footer {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  border-top: 1px solid var(--color-gray-light);
  padding-top: var(--space-5);
}
.testimonial-card__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #EEF3FA;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.testimonial-card__initials {
  font-size: var(--text-xs);
  font-weight: 800;
  color: #5A7A9A;
}
.testimonial-card__name {
  font-weight: 700;
  font-size: var(--text-sm);
  color: var(--color-dark);
}
.testimonial-card__service {
  font-size: var(--text-xs);
  color: var(--color-gray-mid);
}

/* ── Step number (large, faded) ── */
.step-number {
  font-size: 48px;
  font-weight: 800;
  color: var(--color-gray-light);
  line-height: 1;
  margin-bottom: var(--space-4);
}
.step-number--dark {
  color: rgba(255,255,255,0.08);
}
.step-number--process {
  font-size: 3rem;
  color: rgba(10,22,40,0.08);
  margin-bottom: var(--space-3);
}
.step-number__title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: var(--space-2);
}
.step-number__desc {
  font-size: var(--text-sm);
  color: var(--color-gray-mid);
  line-height: 1.6;
}

/* ── CTA section (reusable dark) ── */
.service-cta {
  padding: var(--space-20) 0;
  background: var(--color-dark);
  text-align: center;
}
.service-cta__title {
  color: var(--color-white);
}
.service-cta__sub {
  color: rgba(255,255,255,0.55);
  font-size: var(--text-base);
  max-width: 520px;
  margin: var(--space-4) auto var(--space-8);
}
.service-cta__actions {
  display: flex;
  gap: var(--space-4);
  justify-content: center;
  flex-wrap: wrap;
}

/* ── Timeline (fitness program) ── */
.timeline-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
}
.timeline-slot__label {
  color: var(--color-red);
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: var(--space-2);
}
.timeline-slot__time {
  font-size: var(--text-2xl);
  font-weight: 800;
  color: var(--color-white);
  line-height: 1.2;
  margin-bottom: var(--space-3);
}
.timeline-slot__desc {
  color: rgba(255,255,255,0.45);
  font-size: var(--text-sm);
  line-height: 1.6;
  margin: 0;
  max-width: 220px;
}

/* ── Photo overlay card (squash antrenor) ── */
.photo-overlay-card {
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  min-height: 380px;
  background-size: cover;
  background-position: top center;
}
.photo-overlay-card__gradient {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  inset: 0;
  background: linear-gradient(to top,
    rgba(10,22,40,0.92) 0%,
    rgba(10,22,40,0.3) 55%,
    transparent 100%);
}
.photo-overlay-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-6);
}
.photo-overlay-card__name {
  font-size: var(--text-xl);
  font-weight: 800;
  color: var(--color-white);
  line-height: 1.1;
  margin-bottom: var(--space-2);
}

/* ── Location badge (inline in timeline) ── */
.location-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: 600;
  color: rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 100px;
  padding: 6px 16px;
  white-space: nowrap;
}

/* ── Duration badge (sedinta cards) ── */
.duration-badge {
  display: inline-flex;
  align-items: center;
  background: var(--color-red);
  color: white;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 5px 14px;
  border-radius: 100px;
  margin-bottom: var(--space-6);
}

/* ── Sedinta card title ── */
.sedinta-card__title {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 800;
  color: var(--color-white);
  margin: 0 0 var(--space-4);
  letter-spacing: -0.01em;
}
.sedinta-card__desc {
  color: rgba(255,255,255,0.5);
  font-size: var(--text-sm);
  line-height: 1.8;
  margin: 0;
}
.sedinta-card--main .sedinta-card__desc {
  color: rgba(255,255,255,0.65);
}

/* ── Squash photo grids ── */
.squash-photo-grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  grid-template-rows: repeat(3, 1fr);
  gap: 5px;
}
.squash-grid__main,
.squash-grid__item {
  overflow: hidden;
}
.squash-grid__main {
  grid-row: 1 / 4;
}
.squash-grid__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.terrain-photo-grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 5px;
  border-radius: 12px;
  overflow: hidden;
  height: 420px;
}
.terrain-grid__item {
  overflow: hidden;
}
.terrain-grid__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.service-why__list strong {
  color: var(--color-red);
}
.service-section--alt-blue {
  background: #EEF3FA;
  border-top: 1px solid #D8E4F0;
}
.section-label--muted {
  color: #5A7A9A;
}
/* Badge "pill" — folosit pentru a marca clar tranziția între secțiuni cu publicuri diferite */
.section-label--pill {
  border: 1.5px solid var(--color-red);
  padding: 6px 14px;
  border-radius: 999px;
  margin-bottom: var(--space-6);
  align-self: flex-start;
}

/* ── Fitness specific ── */
.fitness-obj-cta {
  margin-top: var(--space-10);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-dark);
  line-height: 1.6;
  text-align: center;
}
.fitness-program-box {
  background: var(--color-dark);
  border-radius: 20px;
  padding: var(--space-8);
  text-align: center;
}
.fitness-program-box__title {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 800;
  color: var(--color-white);
  line-height: 1.2;
  margin-bottom: var(--space-3);
}
.fitness-program-box__days {
  color: rgba(255,255,255,0.45);
  font-size: var(--text-base);
  font-weight: 600;
  margin-bottom: var(--space-7);
}
.fitness-program-box__footer {
  margin-top: var(--space-8);
}
.fitness-timeline-line {
  position: absolute;
  left: 50%;
  top: 14px;
  bottom: 14px;
  width: 1px;
  transform: translateX(-50%);
  background: rgba(255,255,255,0.12);
  z-index: 0;
}
.fitness-trainers-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-4);
}
.fitness-trainers-bar__text {
  font-size: var(--text-sm);
  color: var(--color-gray-mid);
  margin: 0;
}
.fitness-trainers-bar__text strong {
  color: var(--color-dark);
}
.fitness-trainers-bar__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-dark);
  text-decoration: none;
  white-space: nowrap;
}

/* ── Swim photo grid ── */
.swim-photo-grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  grid-template-rows: 1fr 1fr;
  gap: 5px;
  border-radius: 12px;
  overflow: hidden;
  height: 100%;
  min-height: 420px;
}
.swim-grid__main {
  grid-row: 1 / 3;
}
.swim-grid__main img,
.swim-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 600px) {
  .swim-photo-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    height: auto;
  }
  .swim-grid__main {
    grid-row: auto;
  }
}

/* ── Swim steps ── */
.swim-steps-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-8);
  max-width: 900px;
  margin: 0 auto;
}
.swim-step-box {
  background: #f7f8fa;
  border-radius: 16px;
  padding: var(--space-8);
  border: 1px solid var(--color-gray-light);
}
.swim-step-box__number {
  font-size: 48px;
  font-weight: 800;
  color: rgba(200,16,46,0.12);
  line-height: 1;
  margin-bottom: var(--space-3);
}
.swim-step-box__title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: var(--space-2);
}
.swim-step-box__desc {
  font-size: var(--text-sm);
  color: var(--color-gray-mid);
  line-height: 1.6;
}
@media (max-width: 600px) {
  .swim-steps-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Conditionare photo grid ── */
.cond-photo-grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  grid-template-rows: 1fr 1fr;
  gap: 5px;
  border-radius: 12px;
  overflow: hidden;
  height: 380px;
}
.cond-photo-grid__main {
  grid-row: 1 / 3;
  overflow: hidden;
}
.cond-photo-grid__item {
  overflow: hidden;
}
.cond-photo-grid__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 600px) {
  .cond-photo-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    height: auto;
  }
  .cond-photo-grid__main {
    grid-row: auto;
  }
}

/* ── Conditionare process images ── */
.cond-process-img {
  width: 100%;
  height: 160px;
  border-radius: 6px;
  overflow: hidden;
  margin-top: var(--space-6);
}
.cond-process-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

