/* Eco Maramureș — Bootstrap 5 theme overrides */

:root {
  /* Palette translated from the Lovable design system */
  --eco-green:        #2D7253;
  --eco-green-dark:   #1F5239;
  --eco-green-light:  #DDECE2;
  --eco-bg:           #FBF9F4;   /* warm cream background */
  --eco-warm:         #F5EFE4;   /* alternate section bg */
  --eco-text:         #232A26;
  --eco-text-muted:   #6B736E;
  --eco-gold:         #E3A532;
  --eco-border:       #E5DECC;

  /* Override Bootstrap tokens */
  --bs-primary:       var(--eco-green);
  --bs-primary-rgb:   45, 114, 83;
  --bs-link-color:    var(--eco-green);
  --bs-link-hover-color: var(--eco-green-dark);
  --bs-body-color:    var(--eco-text);
  --bs-body-bg:       var(--eco-bg);
  --bs-border-color:  var(--eco-border);
  --bs-border-radius: 0.75rem;
  --bs-font-sans-serif: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body {
  font-family: var(--bs-font-sans-serif);
  background-color: var(--eco-bg);
  color: var(--eco-text);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .eco-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--eco-text);
}

.eco-heading        { font-size: clamp(1.625rem, 3vw + 1rem, 3rem); line-height: 1.15; }
.eco-subheading     { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 1.5rem; }
.eco-eyebrow        { color: var(--eco-green); font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
.eco-muted          { color: var(--eco-text-muted); }
.eco-body           { color: var(--eco-text-muted); font-size: 1.05rem; line-height: 1.75; }

section.eco-section { padding-block: 3rem; }
@media (min-width: 768px) { section.eco-section { padding-block: 5rem; } }
@media (min-width: 1200px) { section.eco-section { padding-block: 6rem; } }

.bg-eco-warm        { background-color: var(--eco-warm) !important; }
.bg-eco-primary     { background-color: var(--eco-green) !important; color: #fff; }
.bg-eco-cream       { background-color: var(--eco-bg) !important; }

/* Buttons */
.btn-primary {
  --bs-btn-bg: var(--eco-green);
  --bs-btn-border-color: var(--eco-green);
  --bs-btn-hover-bg: var(--eco-green-dark);
  --bs-btn-hover-border-color: var(--eco-green-dark);
  --bs-btn-active-bg: var(--eco-green-dark);
  --bs-btn-active-border-color: var(--eco-green-dark);
  font-weight: 500;
  padding: 0.75rem 1.75rem;
  border-radius: 0.625rem;
  box-shadow: 0 4px 14px rgba(45,114,83,0.18);
  transition: transform .15s ease, box-shadow .2s ease;
}
.btn-primary:hover  { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(45,114,83,0.25); }
.btn-outline-light  {
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.45);
  color: #fff;
  backdrop-filter: blur(6px);
  font-weight: 500;
  padding: 0.75rem 1.75rem;
  border-radius: 0.625rem;
}
.btn-outline-light:hover { background: rgba(255,255,255,0.22); border-color: rgba(255,255,255,0.7); color:#fff; }

/* Navbar — cream background that matches the body so the header blends in */
.eco-navbar {
  background: var(--eco-bg);
  border-bottom: 1px solid var(--eco-border);
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
/* When scrolled, switch to fully opaque cream + subtle shadow */
.eco-navbar.shadow-sm {
  background: var(--eco-bg);
  box-shadow: 0 2px 12px rgba(0,0,0,0.08) !important;
}
/* Dropdown menus stay slightly different so they read as a layer above */
.eco-navbar .dropdown-menu {
  background: #fff;
  border: 1px solid var(--eco-border);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  padding: 0.5rem;
  min-width: 16rem;
}

/* Simple dropdown items with leading icons */
.eco-navbar .dropdown-item {
  display: flex; align-items: center;
  gap: 0.625rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.9375rem;
  color: var(--eco-text);
  transition: background .15s, color .15s;
  white-space: normal;
}
.eco-navbar .dropdown-item > i.bi {
  color: var(--eco-green);
  font-size: 1rem;
  flex-shrink: 0;
  width: 18px; text-align: center;
}
.eco-navbar .dropdown-item:hover,
.eco-navbar .dropdown-item:focus {
  background: var(--eco-green-light);
  color: var(--eco-green-dark);
}
.eco-navbar .dropdown-item:hover > i.bi { color: var(--eco-green-dark); }

/* Mega-menu (3 columns, wider panel) */
.eco-navbar .eco-megamenu .dropdown-menu.eco-megamenu-panel {
  min-width: 720px;
  max-width: 90vw;
  padding: 1.25rem 1rem;
  left: 50%;
  transform: translateX(-50%);
}
.eco-megamenu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 1.25rem;
}
.eco-megamenu-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eco-green-dark);
  margin: 0 0 0.5rem 0.75rem;
  padding-bottom: 0.375rem;
  border-bottom: 1px solid var(--eco-green-light);
}
.eco-megamenu-item {
  white-space: nowrap;
}

/* Mobile: collapse mega-menu to stacked columns inside the navbar */
@media (max-width: 991.98px) {
  .eco-navbar .eco-megamenu .dropdown-menu.eco-megamenu-panel {
    min-width: 0;
    max-width: none;
    width: 100%;
    left: 0;
    transform: none;
    padding: 0.5rem;
    box-shadow: none;
    border: 0;
  }
  .eco-megamenu-grid {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  .eco-megamenu-heading {
    margin-top: 0.5rem;
    border-bottom: 0;
    padding-bottom: 0.25rem;
  }
  .eco-megamenu-item { white-space: normal; }
}
@media (max-width: 991.98px) {
  .eco-navbar .navbar-brand img { height: 38px; }
  .eco-navbar .navbar-collapse {
    padding-block: 0.75rem;
    /* Constrain the collapsed panel to what's actually visible and let it scroll
       internally when content (esp. the expanded mega-menu) overflows. */
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .eco-navbar .nav-link { padding: 0.625rem 0.875rem !important; font-size: 1rem; }
  .eco-navbar .eco-lang-switch,
  .eco-navbar .navbar-collapse > .d-flex { justify-content: center; margin-top: 0.5rem; }
}
.eco-navbar .nav-link {
  font-size: 0.925rem;
  font-weight: 500;
  color: rgba(35,42,38,0.85);
  padding: 0.5rem 0.875rem !important;
  border-radius: 0.5rem;
  transition: background .15s, color .15s;
}
.eco-navbar .nav-link:hover,
.eco-navbar .nav-link.active { color: var(--eco-green); background: var(--eco-green-light); }
.eco-navbar .navbar-brand img { height: 48px; width: auto; }
.eco-lang-switch a {
  color: var(--eco-text-muted);
  font-size: 0.875rem;
  text-decoration: none;
  padding: 0 0.4rem;
}
.eco-lang-switch a.active { color: var(--eco-text); font-weight: 600; }
.eco-lang-switch a:hover { color: var(--eco-green); }

/* Hero / Carousel — photos shown naturally, NO dark overlay on imagery */
.eco-hero { position: relative; min-height: 78vh; overflow: hidden; }
.eco-hero .carousel,
.eco-hero .carousel-inner,
.eco-hero .carousel-item { height: 78vh; }
@media (min-width: 768px) {
  .eco-hero { min-height: 92vh; }
  .eco-hero .carousel,
  .eco-hero .carousel-inner,
  .eco-hero .carousel-item { height: 92vh; }
}
.eco-hero .carousel-item img {
  width: 100%; height: 100%; object-fit: cover;
}
.eco-hero .eco-hero-content {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 1.5rem; color: #fff;
  /* Layered text-shadow keeps headings legible without filtering the photo */
  text-shadow: 0 2px 4px rgba(0,0,0,0.55), 0 6px 24px rgba(0,0,0,0.45);
  pointer-events: none;
}
.eco-hero .eco-hero-content a,
.eco-hero .eco-hero-content button { pointer-events: auto; }
.eco-hero .eco-hero-content .eco-eyebrow { color: #fff; }
.eco-hero h1 { color: #fff; max-width: 60rem; font-size: clamp(1.875rem, 4.5vw + 1rem, 4.5rem); line-height: 1.1; }
.eco-hero .eco-hero-lead { color: #fff; max-width: 42rem; font-size: 1rem; }
@media (min-width: 768px) { .eco-hero .eco-hero-lead { font-size: 1.125rem; } }
@media (max-width: 575.98px) {
  .eco-hero .eco-hero-content .btn { width: 100%; max-width: 320px; }
}
.eco-hero .btn-outline-light { text-shadow: none; }
.eco-hero .btn-primary { text-shadow: none; }
.eco-hero .carousel-indicators { z-index: 3; margin-bottom: 4rem; text-shadow: none; }
.eco-hero .carousel-indicators [data-bs-target] {
  width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,0.75); border: 1px solid rgba(0,0,0,0.25);
  margin: 0 4px; transition: all .2s; box-shadow: 0 1px 3px rgba(0,0,0,0.5);
}
.eco-hero .carousel-indicators .active { width: 28px; background: #fff; border-radius: 4px; }
.eco-hero-credit {
  position: absolute; right: 1rem; bottom: 1rem; z-index: 3;
  color: rgba(255,255,255,0.85); font-size: 0.75rem;
  text-shadow: 0 1px 3px rgba(0,0,0,0.7);
  margin: 0; pointer-events: none;
  font-style: italic;
}

/* Cards (services / resources) */
.eco-card {
  background: #fff;
  border-radius: 0.875rem;
  border: 1px solid var(--eco-border);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .25s ease;
  height: 100%;
}
.eco-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0,0,0,0.08); }
.eco-card .eco-card-img { aspect-ratio: 4/3; overflow: hidden; }
.eco-card.eco-card-square .eco-card-img { aspect-ratio: 1 / 1; }
.eco-card.eco-card-square .eco-card-body { padding: 1rem; }
.eco-card.eco-card-square .eco-subheading { font-size: 1rem; line-height: 1.25; }
.eco-card .eco-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.eco-card:hover .eco-card-img img { transform: scale(1.05); }
.eco-card .eco-card-body { padding: 1.5rem; }
@media (max-width: 575.98px) { .eco-card .eco-card-body { padding: 1.25rem; } }

/* About section image */
.eco-about-img {
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  box-shadow: 0 24px 48px rgba(0,0,0,0.08);
}
.eco-about-img img { width: 100%; height: clamp(240px, 38vw, 520px); object-fit: cover; display: block; }
.eco-about-img .eco-about-cap {
  position: absolute; inset: auto 0 0 0; padding: 1.25rem 1.5rem;
  background: linear-gradient(180deg, transparent, rgba(35,42,38,0.65));
  color: #fff;
}

/* Stats section — dark green band with radial highlight + glass cards */
.eco-stats-section { position: relative; overflow: hidden; }
.eco-stats-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.10) 0%, transparent 55%),
    radial-gradient(circle at 20% 90%, rgba(255,255,255,0.06) 0%, transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(255,255,255,0.06) 0%, transparent 40%);
  pointer-events: none;
}
.eco-stats-eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.18);
  padding: 0.4rem 0.875rem;
  border-radius: 999px;
}
.eco-stats-eyebrow i { font-size: 0.875rem; }

.eco-stat {
  text-align: center;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1rem;
  padding: 1.75rem 1rem 1.5rem;
  height: 100%;
  position: relative;
  transition: transform .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease;
  backdrop-filter: blur(2px);
}
.eco-stat:hover {
  transform: translateY(-4px);
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.22);
  box-shadow: 0 18px 38px rgba(0,0,0,0.18);
}
.eco-stat .eco-stat-icon {
  width: 64px; height: 64px; border-radius: 50%;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.22);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 1.125rem;
  font-size: 1.625rem;
  color: #fff;
  transition: background .25s, transform .25s;
}
.eco-stat:hover .eco-stat-icon {
  background: rgba(255,255,255,0.22);
  transform: scale(1.06);
}
.eco-stat .eco-stat-num {
  display: flex; align-items: baseline; justify-content: center; gap: 0.25rem;
  line-height: 1;
}
.eco-stat .eco-stat-value {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700; font-size: 3.25rem; line-height: 1;
  color: #fff;
  letter-spacing: -0.01em;
}
.eco-stat .eco-stat-unit {
  font-size: 1.125rem; font-weight: 500; opacity: 0.85;
}
.eco-stat .eco-stat-accent {
  width: 36px; height: 3px;
  background: var(--eco-green-light);
  border-radius: 999px;
  margin: 1rem auto 0.875rem;
  opacity: 0.7;
}
.eco-stat .eco-stat-label {
  color: rgba(255,255,255,0.82);
  font-size: 0.95rem;
  line-height: 1.45;
  margin: 0;
}
@media (max-width: 575.98px) {
  .eco-stat { padding: 1.25rem 0.75rem 1.125rem; border-radius: 0.875rem; }
  .eco-stat .eco-stat-icon { width: 48px; height: 48px; font-size: 1.125rem; margin-bottom: 0.75rem; }
  .eco-stat .eco-stat-value { font-size: 2.125rem; }
  .eco-stat .eco-stat-unit { font-size: 0.875rem; }
  .eco-stat .eco-stat-accent { width: 28px; margin: 0.625rem auto 0.625rem; }
  .eco-stat .eco-stat-label { font-size: 0.8125rem; line-height: 1.4; }
}

/* Mission */
.eco-mission-item { align-items: center; }
.eco-mission-item .eco-mission-icon {
  width: 44px; height: 44px; border-radius: 0.625rem;
  background: var(--eco-green-light);
  color: var(--eco-green-dark);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}
.eco-mission-item .eco-mission-text {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.0625rem; font-weight: 500;
  color: var(--eco-text); line-height: 1.4;
}
@media (max-width: 575.98px) {
  .eco-mission-item .eco-mission-icon { width: 38px; height: 38px; font-size: 1rem; }
  .eco-mission-item .eco-mission-text { font-size: 0.95rem; }
}

/* Map embed (Leaflet + polygon outline of the destination area) */
.eco-map-wrap {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(31,82,57,0.10);
  border: 1px solid var(--eco-border);
  aspect-ratio: 16/8;
  background: var(--eco-warm);
}
.eco-map-wrap #ecoMap { width: 100%; height: 100%; }
.eco-map-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 575.98px) { .eco-map-wrap { aspect-ratio: 4/5; } }

/* Video gallery — square thumbnails grid, same source images as live (500x500) */
.eco-divider {
  width: 64px; height: 3px; border: 0;
  background: var(--eco-green); opacity: 1; border-radius: 2px;
}

.eco-video-grid { }

.eco-video-thumb {
  position: relative; display: block; width: 100%; padding: 0; border: 0; background: transparent;
  border-radius: 0.75rem; overflow: hidden; cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.10);
  transition: transform .2s ease, box-shadow .2s ease;
}
.eco-video-thumb:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,0.18); }
.eco-video-thumb img {
  width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;
}
.eco-video-thumb .eco-video-play {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.0) 45%, rgba(0,0,0,0.5) 100%);
  transition: background .25s;
}
.eco-video-thumb:hover .eco-video-play {
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 45%, rgba(0,0,0,0.65) 100%);
}
.eco-video-thumb .eco-video-play i {
  width: 64px; height: 64px; border-radius: 50%;
  background: rgba(255,255,255,0.95); color: var(--eco-green-dark);
  display: inline-flex; align-items: center; justify-content: center; font-size: 2rem;
  box-shadow: 0 6px 20px rgba(0,0,0,0.35);
  transition: transform .2s, background .2s;
}
.eco-video-thumb:hover .eco-video-play i { transform: scale(1.08); background: #fff; }
.eco-video-thumb .eco-video-cap {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 0.875rem 1rem;
  color: #fff; font-size: 0.95rem; font-weight: 600; text-align: left;
  text-shadow: 0 2px 5px rgba(0,0,0,0.7);
  font-family: 'Playfair Display', Georgia, serif;
}

@media (max-width: 575.98px) {
  .eco-video-thumb .eco-video-play i { width: 48px; height: 48px; font-size: 1.5rem; }
  .eco-video-thumb .eco-video-cap { font-size: 0.875rem; padding: 0.625rem 0.75rem; }
}

#videoModal .modal-content { background: #000; }
#videoModal .ratio iframe,
#videoModal .ratio video { width: 100%; height: 100%; border: 0; background: #000; }

/* Newsletter — sits on warm bg so it contrasts the green footer below.
   Tightened spacing so the gap to the Resources section above is small. */
.eco-newsletter { padding-block: 1.5rem 4rem; }
@media (min-width: 768px) { .eco-newsletter { padding-block: 2rem 5rem; } }

.eco-newsletter-card {
  background: #fff;
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 20px 48px rgba(31, 82, 57, 0.08);
  border: 1px solid var(--eco-border);
  position: relative;
  overflow: hidden;
}
.eco-newsletter-card::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at top right, rgba(45,114,83,0.08), transparent 60%);
}
@media (min-width: 768px) { .eco-newsletter-card { padding: 2.5rem 3rem; } }

.eco-newsletter-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--eco-green-light); color: var(--eco-green-dark);
  font-size: 1.5rem;
}

.eco-newsletter-form .form-control {
  background: var(--eco-bg);
  border-color: var(--eco-border);
  color: var(--eco-text);
}
.eco-newsletter-form .form-control:focus {
  background: #fff;
  border-color: var(--eco-green);
  box-shadow: 0 0 0 0.2rem rgba(45,114,83,0.15);
}
.eco-newsletter-form .input-group .btn-primary {
  white-space: nowrap;
}
@media (max-width: 575.98px) {
  .eco-newsletter-form .input-group { flex-direction: column; gap: 0.625rem; }
  .eco-newsletter-form .input-group .form-control,
  .eco-newsletter-form .input-group .btn-primary {
    border-radius: 0.5rem !important;
    width: 100%;
  }
}
.eco-newsletter-form .link-primary {
  color: var(--eco-green-dark) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Footer — green brand background */
.eco-footer {
  background: var(--eco-green-dark);
  color: rgba(255,255,255,0.78);
  padding-block: 4rem 2rem;
  font-size: 0.925rem;
}
@media (max-width: 767.98px) {
  .eco-footer { padding-block: 2.5rem 1.5rem; font-size: 0.875rem; }
  .eco-footer h5 { margin-top: 1rem; font-size: 1rem; }
  .eco-footer .eco-footer-bottom { margin-top: 1.5rem; justify-content: center; text-align: center; }
  .eco-footer .eco-footer-bottom p { line-height: 1.6; }
}
.eco-footer a { color: rgba(255,255,255,0.78); text-decoration: none; transition: color .15s; }
.eco-footer a:hover { color: #fff; }
.eco-footer h5 { color: #fff; font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 1.05rem; }
.eco-footer .eco-footer-brand img {
  height: 72px; width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.92;
  margin-bottom: 1rem;
  display: block;
}
@media (max-width: 767.98px) {
  .eco-footer .eco-footer-brand img { height: 56px; margin-inline: auto; margin-bottom: 0.75rem; }
}
.eco-footer .eco-social a {
  width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.12); border-radius: 0.5rem; transition: background .2s;
}
.eco-footer .eco-social a:hover { background: rgba(255,255,255,0.22); }
.eco-footer .eco-footer-bottom {
  margin-top: 2.5rem;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem;
  color: rgba(255,255,255,0.55); font-size: 0.8125rem;
}
.eco-footer .eco-credit { color: rgba(255,255,255,0.4); }
.eco-footer .eco-credit a { color: rgba(255,255,255,0.55); text-decoration: none; }
.eco-footer .eco-credit a:hover { color: #fff; }

/* Funder block — text on the left, logos on the right, wrapped in a soft
   card that subtly contrasts the green footer background. */
.eco-funders {
  margin-top: 3rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 0.875rem;
  padding: 1.5rem;
  display: flex; flex-direction: column; gap: 1.25rem;
  align-items: center; text-align: center;
}
@media (min-width: 992px) {
  .eco-funders {
    flex-direction: row; text-align: left; gap: 2.5rem;
    padding: 1.75rem 2rem;
  }
}
.eco-funders-text {
  flex: 1 1 auto; margin: 0;
  color: rgba(255,255,255,0.78); font-size: 0.875rem; line-height: 1.65;
  max-width: 58rem;
}
.eco-funders-text a {
  color: rgba(255,255,255,0.78); text-decoration: none; font-weight: 400;
  transition: color .15s;
}
.eco-funders-text a:hover { color: #fff; }
.eco-funders-text em { font-style: italic; color: rgba(255,255,255,0.95); font-weight: 400; }

.eco-funders-logos {
  flex: 0 0 auto;
  display: flex; gap: 1rem; align-items: center;
}
@media (min-width: 992px) {
  .eco-funders-logos { margin-left: auto; padding-left: 2rem; }
}
.eco-funders-logos a {
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; padding: 0.75rem 1rem; border-radius: 0.5rem;
  transition: transform .15s, box-shadow .15s;
}
.eco-funders-logos a:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.25); }
.eco-funders-logos img { height: 60px; width: auto; max-width: 160px; object-fit: contain; }

@media (max-width: 575.98px) {
  .eco-funders { padding: 1.25rem; }
  .eco-funders-logos { gap: 0.75rem; }
  .eco-funders-logos a { padding: 0.5rem 0.75rem; }
  .eco-funders-logos img { height: 48px; max-width: 130px; }
}

/* Fade-in animation */
@keyframes ecoFadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.eco-fade-up { animation: ecoFadeUp 0.7s ease-out forwards; }

/* ============================================================
   INTERIOR PAGES (generated by _build/build.php)
   ============================================================ */

/* Body padding to clear the fixed navbar — measured at runtime; default values
   are chosen so the page surface sits flush against the navbar bottom edge. */
.eco-page-body { padding-top: 4.25rem; }
@media (min-width: 992px) { .eco-page-body { padding-top: 5rem; } }

/* Page hero with background image — used when a hero img was found */
.eco-page-hero {
  position: relative;
  min-height: 320px;
  background-size: cover; background-position: center; background-repeat: no-repeat;
  display: flex; align-items: flex-end;
  padding: 3rem 0 2.5rem;
  margin-bottom: 0;
}
.eco-page-hero::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(35,42,38,0.15) 0%, rgba(35,42,38,0.55) 100%);
  pointer-events: none;
}
.eco-page-hero-inner {
  position: relative; z-index: 1; width: 100%;
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}
.eco-page-hero h1 { color: #fff; max-width: 50rem; }
.eco-page-hero .eco-eyebrow { letter-spacing: 0.18em; }
.eco-page-hero .eco-crumbs { margin-bottom: 1rem; }
.eco-page-hero .eco-crumb,
.eco-page-hero .eco-crumb-sep { color: rgba(255,255,255,0.85); }
.eco-page-hero .eco-crumb-current { color: #fff; }

/* Plain page header (no hero image) — same cream as the navbar so there's
   no visible seam between them. Bottom padding kept small so the content
   begins close to the title. */
.eco-page-header {
  background: var(--eco-bg);
  padding: 1.5rem 0 0.5rem;
}
.eco-page-header h1 { max-width: none; }
.eco-page-header + .eco-page-content { padding-top: 1.25rem; }
.eco-page-hero + .eco-page-content { padding-top: 1.75rem; }

/* Inline breadcrumbs (sit above the title inside the page header) */
.eco-crumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem;
  font-size: 0.8125rem; line-height: 1.4;
  margin-bottom: 0.75rem;
  color: var(--eco-text-muted);
}
.eco-crumb {
  color: var(--eco-text-muted); text-decoration: none;
  transition: color .15s;
}
.eco-crumb:hover { color: var(--eco-green); }
.eco-crumb-current { color: var(--eco-text); font-weight: 500; }
.eco-crumb-sep { color: var(--eco-border); user-select: none; }

/* Content section that wraps the live-extracted HTML */
.eco-page-content {
  padding-block: 1.5rem 4rem;
}

/* eco-from-live: tame the CMSMasters / WP markup that comes through.
   Width is controlled solely by the parent .container — no inner cap, so the
   content lines up with the page header, breadcrumbs and footer at every
   breakpoint. */
.eco-from-live {
  font-size: 1.0625rem; line-height: 1.7; color: var(--eco-text);
}
.eco-from-live > .middle_inner,
.eco-from-live > div { display: block; }

.eco-from-live .cmsms_row,
.eco-from-live .cmsms_row_outer_parent,
.eco-from-live .cmsms_row_outer,
.eco-from-live .cmsms_row_inner,
.eco-from-live .cmsms_row_margin {
  display: block !important; width: 100% !important; padding: 0 !important; margin: 0 !important;
  background: transparent !important; max-width: 100% !important;
}

/* Convert one_first / one_half / one_third / one_fourth to flex columns.
   No horizontal padding — that would re-introduce an inset vs the page header. */
.eco-from-live .cmsms_column {
  box-sizing: border-box; padding: 0; margin-bottom: 1rem;
}
.eco-from-live .cmsms_row_inner > .cmsms_row_margin {
  display: flex !important; flex-wrap: wrap; gap: 2rem; align-items: flex-start;
}
.eco-from-live .cmsms_column.one_first { flex: 1 1 100%; min-width: 0; }
/* Math: gap 2rem split across 2 cols → each loses 1rem.  3 cols → 4/3 rem each.
   4 cols → 3/2 rem each. min-width:0 lets flex shrink below content size. */
.eco-from-live .cmsms_column.one_half  { flex: 1 1 calc(50% - 1rem);     min-width: 0; }
.eco-from-live .cmsms_column.one_third { flex: 1 1 calc(33.333% - 1.33rem); min-width: 0; }
.eco-from-live .cmsms_column.one_fourth{ flex: 1 1 calc(25% - 1.5rem);    min-width: 0; }
@media (max-width: 767.98px) {
  .eco-from-live .cmsms_row_inner > .cmsms_row_margin { gap: 1.25rem; }
  .eco-from-live .cmsms_column.one_half,
  .eco-from-live .cmsms_column.one_third,
  .eco-from-live .cmsms_column.one_fourth { flex: 1 1 100%; }
}

.eco-from-live h1, .eco-from-live h2, .eco-from-live h3, .eco-from-live h4, .eco-from-live h5, .eco-from-live h6 {
  font-family: 'Playfair Display', Georgia, serif;
  margin-top: 2.25rem; margin-bottom: 1rem;
  color: var(--eco-text);
  font-weight: 600;
}
.eco-from-live h1 { font-size: 2rem; }
.eco-from-live h2 { font-size: 1.625rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--eco-green-light); }
.eco-from-live h3 {
  font-size: 1.375rem;
  position: relative;
  padding-left: 1rem;
  border-left: 4px solid var(--eco-green);
  line-height: 1.3;
}
.eco-from-live h4 { font-size: 1.125rem; color: var(--eco-green-dark); }

.eco-from-live p  { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.75; color: var(--eco-text); }

/* Lead paragraph — the first paragraph after the H1 (which has been stripped
   by the layout, so really the first <p> of the content) gets a bigger size. */
.eco-from-live > p:first-child,
.eco-from-live > .middle_inner > p:first-of-type,
.eco-from-live .cmsms_text:first-of-type > p:first-child {
  font-size: 1.125rem; line-height: 1.7;
  color: var(--eco-text); font-weight: 400;
}

/* Lists — softer markers, brand-colored bullets */
.eco-from-live ul, .eco-from-live ol { margin: 0 0 1.5rem 0; padding: 0; list-style: none; }
.eco-from-live ul li, .eco-from-live ol li {
  margin-bottom: 0.625rem;
  padding-left: 1.5rem;
  position: relative;
  line-height: 1.65;
}
.eco-from-live ul > li::before {
  content: ''; position: absolute;
  left: 0.25rem; top: 0.7rem;
  width: 8px; height: 8px;
  background: var(--eco-green); border-radius: 50%;
}
.eco-from-live ol { counter-reset: eco-counter; }
.eco-from-live ol > li {
  counter-increment: eco-counter;
}
.eco-from-live ol > li::before {
  content: counter(eco-counter) '.';
  position: absolute; left: 0; top: 0;
  color: var(--eco-green); font-weight: 700;
  min-width: 1.25rem;
}

/* Anchor links → green, no underline by default; hover adds underline */
.eco-from-live a,
.eco-listing-main a,
.eco-activity-body a {
  color: var(--eco-green-dark);
  text-decoration: none;
  text-underline-offset: 2px;
  text-decoration-color: var(--eco-green);
  transition: color .15s, text-decoration .15s;
}
.eco-from-live a:hover,
.eco-listing-main a:hover,
.eco-activity-body a:hover {
  color: var(--eco-green);
  text-decoration: underline;
}
/* Don't apply to UI-style elements that already have their own colors */
.eco-listing-main .btn,
.eco-listing-main .eco-inline-cta,
.eco-listing-main a.eco-trail-meta-link { text-decoration: none; }

/* External links get a subtle ↗ marker */
.eco-from-live a[href^="http"]:not([href*="ecomaramures.com"])::after {
  content: '↗';
  display: inline-block;
  margin-left: 0.15rem;
  font-size: 0.85em;
  opacity: 0.7;
  vertical-align: super;
}

/* PDF/download links get an inline icon prefix */
.eco-from-live a[href$=".pdf"]::before {
  content: '\F756'; /* bi-file-earmark-pdf */
  font-family: 'bootstrap-icons';
  font-style: normal;
  margin-right: 0.35rem;
  color: #c0392b;
}

/* Images — only standalone images inside text content get rounded corners,
   not photos inside .cmsms_img grids or galleries (handled separately). */
.eco-from-live img {
  max-width: 100%; height: auto; border-radius: 0.5rem; display: block;
}
.eco-from-live strong { color: var(--eco-text); font-weight: 600; }
.eco-from-live em { color: var(--eco-text); }

.eco-from-live .cmsms_text { margin-bottom: 1rem; }
.eco-from-live .cmsms_img,
.eco-from-live .cmsms_image_c,
.eco-from-live .cmsms_image_l,
.eco-from-live .cmsms_image_r,
.eco-from-live .cmsms_image_n,
.eco-from-live .aligncenter { margin: 0 auto 0.75rem; text-align: center; }

.eco-from-live .cmsms_divider { display: none; }

/* NextGen gallery — turn into responsive image grid */
.eco-from-live .ngg-galleryoverview { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.5rem 0; }
.eco-from-live .ngg-gallery-thumbnail-box {
  flex: 0 1 calc(33.333% - 0.5rem); margin: 0;
}
@media (max-width: 575.98px) {
  .eco-from-live .ngg-gallery-thumbnail-box { flex: 0 1 calc(50% - 0.4rem); }
}
.eco-from-live .ngg-gallery-thumbnail { display: block; overflow: hidden; border-radius: 0.5rem; }
.eco-from-live .ngg-gallery-thumbnail a { display: block; }
.eco-from-live .ngg-gallery-thumbnail img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .3s; }
.eco-from-live .ngg-gallery-thumbnail:hover img { transform: scale(1.05); }
.eco-from-live .ngg-clear { width: 100%; clear: both; }

/* Table-of-contents card: when the first thing in a content area is a UL of
   anchor links (in-page navigation), present it as a clean rounded card. */
.eco-from-live .cmsms_text:first-of-type > ul:first-child:has(> li > a[href^="#"]),
.eco-from-live > .middle_inner > .cmsms_row:first-of-type ul:has(> li > a[href^="#"]) {
  background: var(--eco-warm);
  border: 1px solid var(--eco-border);
  border-radius: 0.75rem;
  padding: 1rem 1.25rem;
  margin: 0 0 2rem;
}
.eco-from-live ul:has(> li > a[href^="#"]) > li {
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
}
.eco-from-live ul:has(> li > a[href^="#"]) > li::before {
  background: transparent;
  color: var(--eco-green);
  content: '→';
  font-weight: 600;
  width: auto; height: auto; top: 0.1rem;
  border-radius: 0;
}
.eco-from-live ul:has(> li > a[href^="#"]) a { text-decoration: none; }
.eco-from-live ul:has(> li > a[href^="#"]) a:hover { text-decoration: underline; }

/* Logo grids (partner destinations on Alte destinații): cmsms_img links →
   responsive grid with consistent sizing. */
.eco-from-live .cmsms_column .cmsms_img + .cmsms_img,
.eco-from-live .cmsms_text > .cmsms_img { display: inline-block; }
.eco-from-live a:has(> img[src*="alte-destinatii"]),
.eco-from-live .cmsms_column .cmsms_img a {
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; padding: 0.75rem;
  border: 1px solid var(--eco-border); border-radius: 0.625rem;
  transition: transform .15s, box-shadow .2s;
}
.eco-from-live .cmsms_column .cmsms_img a:hover {
  transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,0.08);
}

/* Drop the live "header slider" and "Start Page Slider" duplicates if they leak through
   (defensive — the extractor now strips these from the markup itself). */
.eco-from-live .cmsms_slider,
.eco-from-live .rev_slider_wrapper,
.eco-from-live .ls-wp-container,
.eco-from-live .ls-slide,
.eco-from-live [id^="layerslider_"],
.eco-from-live .cmsms_owl_slider,
.eco-from-live .cmsms_breadcrumbs,
.eco-from-live #breadcrumbs,
.eco-from-live .headline { display: none !important; }

/* WooCommerce product listing fallback — make stacked LIs into a real grid */
.eco-from-live .products,
.eco-from-live .cmsms_products {
  list-style: none; padding: 0; margin: 1.5rem 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem;
}
.eco-from-live .products .product,
.eco-from-live .cmsms_products .product {
  list-style: none; margin: 0; padding: 0;
  background: #fff; border: 1px solid var(--eco-border); border-radius: 0.875rem; overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .2s, box-shadow .2s;
}
.eco-from-live .products .product:hover,
.eco-from-live .cmsms_products .product:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,0.10); }
.eco-from-live .products .product .cmsms_product_img,
.eco-from-live .cmsms_products .product .cmsms_product_img,
.eco-from-live .products .product figure,
.eco-from-live .cmsms_products .product figure { margin: 0; aspect-ratio: 4/3; overflow: hidden; }
.eco-from-live .products .product figure img,
.eco-from-live .cmsms_products .product figure img,
.eco-from-live .products .product .cmsms_product_img img,
.eco-from-live .cmsms_products .product .cmsms_product_img img { width: 100%; height: 100%; object-fit: cover; }
.eco-from-live .products .product .woocommerce-loop-product__title,
.eco-from-live .cmsms_products .product .woocommerce-loop-product__title,
.eco-from-live .products .product .cmsms_product_header,
.eco-from-live .cmsms_products .product .cmsms_product_header { padding: 1rem 1.25rem 0.25rem; font-size: 1.0625rem; font-weight: 600; }
.eco-from-live .products .product .price,
.eco-from-live .cmsms_products .product .price { padding: 0 1.25rem 1rem; color: var(--eco-green-dark); font-weight: 700; }
.eco-from-live .products .product .button,
.eco-from-live .cmsms_products .product .button,
.eco-from-live .products .product .add_to_cart_button,
.eco-from-live .cmsms_products .product .add_to_cart_button {
  margin: 0 1.25rem 1.25rem; background: var(--eco-green); color: #fff; border: 0;
  padding: 0.5rem 1rem; border-radius: 0.5rem; text-decoration: none; font-size: 0.925rem;
  display: inline-block;
}
.eco-from-live .products .product .button:hover,
.eco-from-live .cmsms_products .product .button:hover { background: var(--eco-green-dark); color: #fff; }

/* Listings sub-grid (4 pension cards beneath each pension page) */
.eco-from-live .cmsms_column.one_fourth h3 { font-size: 1rem; margin-top: 0.75rem; }

/* Product/woo bits if they slip in */
.eco-from-live .woocommerce-Price-amount { font-weight: 600; color: var(--eco-green-dark); }
.eco-from-live .single_add_to_cart_button {
  display: inline-block; padding: 0.625rem 1.25rem; background: var(--eco-green); color: #fff;
  border: 0; border-radius: 0.5rem; text-decoration: none; font-weight: 500;
}
.eco-from-live .single_add_to_cart_button:hover { background: var(--eco-green-dark); color: #fff; }

/* ============================================================
   SHOP (custom PHP, no WooCommerce)
   ============================================================ */
.eco-shop-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--eco-border); border-radius: 0.875rem;
  overflow: hidden; transition: transform .2s, box-shadow .2s;
  height: 100%;
}
.eco-shop-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0,0,0,0.10); }
.eco-shop-card-img { display: block; aspect-ratio: 4/3; overflow: hidden; }
.eco-shop-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.eco-shop-card:hover .eco-shop-card-img img { transform: scale(1.04); }
.eco-shop-card-body { padding: 1.25rem 1.25rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.eco-shop-price { font-size: 1.25rem; font-weight: 700; color: var(--eco-green-dark); font-family: 'Playfair Display', Georgia, serif; }
.eco-shop-price-lg { font-size: 2rem; font-weight: 700; color: var(--eco-green-dark); font-family: 'Playfair Display', Georgia, serif; }
.eco-shop-badge {
  display: inline-flex; align-items: center; gap: 0.25rem;
  background: var(--eco-green-light); color: var(--eco-green-dark);
  padding: 0.3rem 0.7rem; border-radius: 999px;
  font-size: 0.8125rem; font-weight: 500;
}

.eco-product-buy {
  background: #fff; border: 1px solid var(--eco-border); border-radius: 0.875rem;
  padding: 1.5rem; box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}

/* Product gallery — single big image + horizontal thumb strip with arrows */
.eco-pg { display: flex; flex-direction: column; gap: 0.875rem; }
.eco-pg-main {
  background: #fff; border-radius: 0.875rem; overflow: hidden;
  border: 1px solid var(--eco-border);
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}
.eco-pg-main-img {
  display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover;
  transition: opacity .15s ease;
}
.eco-pg-main-img.is-swap { opacity: 0.3; }

.eco-pg-thumbs-wrapper {
  position: relative; display: flex; align-items: center; gap: 0.25rem;
}
.eco-pg-thumbs {
  flex: 1 1 auto; min-width: 0;
  display: flex; gap: 0.5rem;
  overflow-x: auto; scroll-behavior: smooth;
  scrollbar-width: none; -ms-overflow-style: none;
  padding: 0.25rem 0;
}
.eco-pg-thumbs::-webkit-scrollbar { display: none; }
.eco-pg-thumb {
  flex: 0 0 auto; width: 84px; height: 84px;
  padding: 0; border: 2px solid transparent; border-radius: 0.5rem;
  background: transparent; overflow: hidden; cursor: pointer;
  transition: border-color .15s, transform .15s;
}
.eco-pg-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eco-pg-thumb:hover { transform: translateY(-2px); }
.eco-pg-thumb.active { border-color: var(--eco-green); }
.eco-pg-thumb.active img { filter: none; }

.eco-pg-arrow {
  flex: 0 0 auto;
  width: 36px; height: 36px; border-radius: 50%;
  background: #fff; border: 1px solid var(--eco-border); color: var(--eco-green-dark);
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  transition: background .15s, color .15s, transform .15s;
}
.eco-pg-arrow:hover { background: var(--eco-green); color: #fff; transform: scale(1.05); }
.eco-pg-arrow:disabled { opacity: 0.35; cursor: not-allowed; }
.eco-pg-arrow:disabled:hover { background: #fff; color: var(--eco-green-dark); transform: none; }

@media (max-width: 575.98px) {
  .eco-pg-thumb { width: 64px; height: 64px; }
  .eco-pg-arrow { width: 32px; height: 32px; }
}
.eco-product-long-desc { font-size: 1.0625rem; line-height: 1.75; color: var(--eco-text); }
.eco-product-long-desc p { margin-bottom: 1rem; }

/* Compact short desc on the right column */
.eco-product-short-desc { font-size: 0.95rem; line-height: 1.6; color: var(--eco-text); }
.eco-product-short-desc p { margin: 0 0 0.625rem; }
.eco-product-short-desc p:last-child { margin-bottom: 0; }
.eco-product-short-desc strong,
.eco-product-short-desc b { color: var(--eco-text); font-weight: 600; }
.eco-product-short-desc > p:first-child strong,
.eco-product-short-desc > p:first-child b {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
  font-size: 1.05rem; display: block; margin-bottom: 0.25rem;
  color: var(--eco-green-dark);
}
.eco-product-short-desc a { color: var(--eco-green-dark); }

.eco-cart-table th { background: var(--eco-warm); border-bottom: 2px solid var(--eco-border); }
.eco-cart-table td, .eco-cart-table th { vertical-align: middle; padding: 0.875rem; }
.eco-cart-form { background: #fff; border-radius: 0.875rem; }

.eco-order-summary {
  background: #fff; border: 1px solid var(--eco-border); border-radius: 0.875rem;
  padding: 1.5rem; position: sticky; top: 90px;
}

.eco-checkout-form .form-label { font-weight: 500; font-size: 0.925rem; color: var(--eco-text-muted); }
.eco-checkout-form .form-control:focus { border-color: var(--eco-green); box-shadow: 0 0 0 0.2rem rgba(45,114,83,0.15); }

/* ============================================================
   T03 LISTING POLISH (pension / restaurant / guide)
   ============================================================ */
.eco-listing-hero {
  position: relative;
  display: grid; grid-template-columns: 1fr; gap: 0;
  border-radius: 1rem; overflow: hidden;
  margin-top: -1rem; margin-bottom: 2rem;
  box-shadow: 0 18px 48px rgba(0,0,0,0.10);
}
.eco-listing-hero img { width: 100%; aspect-ratio: 21/9; object-fit: cover; display: block; }

/* Listing info card: clean icon-row replacement for the messy
   "Adresa:   Breb..." / "Tel:   +40..." paragraph dump. Uses display: grid on
   the UL + display: contents on LI so columns line up across rows. */
.eco-from-live .eco-listing-info,
.eco-listing-info {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 1rem !important;
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 0.875rem;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
  display: grid;
  grid-template-columns: auto auto 1fr;
  column-gap: 0.875rem;
  align-items: center;
}
.eco-from-live .eco-listing-info > li,
.eco-listing-info > li {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
}
.eco-from-live .eco-listing-info > li::before,
.eco-listing-info > li::before { display: none !important; content: none !important; }
/* Each cell — same vertical padding so rows line up; border-top on every cell
   draws the row separator that spans all three columns. */
.eco-listing-info > li > i.bi,
.eco-listing-info > li > span {
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
  border-top: 1px solid var(--eco-border);
  min-width: 0;
}
.eco-listing-info > li:first-child > i.bi,
.eco-listing-info > li:first-child > span { border-top: 0; }
.eco-listing-info > li > i.bi {
  color: var(--eco-green);
  font-size: 1.05rem;
  padding-left: 1.125rem;
  width: 24px;
  text-align: center;
}
.eco-listing-info-label {
  font-weight: 600;
  color: var(--eco-green-dark);
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}
.eco-listing-info-value {
  color: var(--eco-text);
  font-size: 0.95rem;
  padding-right: 1.125rem;
}
.eco-listing-info-value a {
  color: var(--eco-green-dark);
  text-decoration: none;
  font-weight: 500;
}
.eco-listing-info-value a:hover { text-decoration: underline; }

@media (max-width: 575.98px) {
  .eco-from-live .eco-listing-info,
  .eco-listing-info { grid-template-columns: auto 1fr; column-gap: 0.625rem; }
  .eco-listing-info-label { white-space: normal; }
}

/* Multi-pension detail page (Ocna Șugatag has 2) */
.eco-cazare-detail-sep {
  border: 0;
  border-top: 1px dashed var(--eco-green-light);
  margin: 2.5rem 0 1.5rem;
  opacity: 0.6;
}
.eco-cazare-detail-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.75rem !important;
  font-weight: 600 !important;
  color: var(--eco-green-dark) !important;
  margin: 0 0 1.25rem !important;
  padding: 0 0 0 1rem !important;
  border-left: 4px solid var(--eco-green) !important;
  border-bottom: 0 !important;
}

/* Services chip section under the info list */
.eco-listing-services { margin: 1.25rem 0 0; }
.eco-listing-services-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--eco-green-dark);
  margin: 0 0 0.625rem;
  display: flex; align-items: center;
}
.eco-listing-chips { display: flex; flex-wrap: wrap; gap: 0.4rem 0.5rem; }
.eco-chip-soft {
  display: inline-block;
  background: #fff;
  border: 1px solid var(--eco-green-light);
  color: var(--eco-green-dark);
  font-size: 0.8125rem;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-weight: 500;
}

/* New head row: photo on the left, description + action buttons on the right.
   Replaces the cropped full-width hero + the redundant right-side aside card. */
.eco-listing-head { margin-top: -0.5rem; }
.eco-listing-photo {
  margin: 0;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(0,0,0,0.10);
}
.eco-listing-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.eco-listing-thumb {
  display: block;
  border-radius: 0.5rem;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.eco-listing-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .25s ease;
}
.eco-listing-thumb:hover img { transform: scale(1.06); }
.eco-village-card-link { display: block; }
.eco-village-card {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0,0,0,0.10);
  transition: transform .35s ease, box-shadow .35s ease;
}
.eco-village-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px rgba(0,0,0,0.18); }
.eco-village-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.eco-village-card:hover img { transform: scale(1.08); }
.eco-village-card-overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 1.25rem 1.25rem 1.1rem;
  background: linear-gradient(to top, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.35) 45%, rgba(0,0,0,0) 75%);
  color: #fff;
}
.eco-village-card-title {
  font-family: inherit; font-weight: 700; font-size: 1.6rem; line-height: 1.1;
  margin: 0 0 0.4rem; color: #fff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
  letter-spacing: 0.01em;
}
.eco-village-card-badge {
  display: inline-flex; align-items: center;
  align-self: flex-start;
  padding: 0.3rem 0.7rem;
  font-size: 0.82rem; font-weight: 500;
  background: rgba(255,255,255,0.92); color: #2c5f2d;
  border-radius: 999px;
  backdrop-filter: blur(6px);
}
.eco-hub-slider { border-radius: 1rem; overflow: hidden; box-shadow: 0 12px 32px rgba(0,0,0,0.10); }
.eco-hub-slider .carousel-item img { height: 70vh; max-height: 780px; min-height: 520px; object-fit: cover; }
@media (max-width: 768px) { .eco-hub-slider .carousel-item img { height: 55vh; min-height: 360px; } }
.eco-listing-photo img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  max-height: 460px;
  object-fit: cover;
  display: block;
}
.eco-listing-desc { font-size: 1rem; }
.eco-listing-desc p { margin-bottom: 0.5rem; }
.eco-listing-actions {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin-top: 1rem;
}
.eco-listing-actions .btn {
  border-color: var(--eco-green);
  color: var(--eco-green-dark);
  font-weight: 500;
  border-radius: 0.5rem;
  padding: 0.45rem 0.875rem;
}
.eco-listing-actions .btn:hover {
  background: var(--eco-green);
  border-color: var(--eco-green);
  color: #fff;
}

.eco-listing-layout { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 992px) { .eco-listing-layout { grid-template-columns: 1fr 360px; gap: 2.5rem; } }
/* No aside (e.g. observarea / info pages) → main spans the full width */
.eco-listing-layout-wide { grid-template-columns: 1fr !important; }
.eco-listing-main h2 { font-size: 1.5rem; font-weight: 600; margin-top: 2rem; margin-bottom: 1rem; }
.eco-listing-main h2:first-child { margin-top: 0; }
.eco-listing-main p { font-size: 1.0625rem; line-height: 1.75; color: var(--eco-text); margin-bottom: 1rem; }
.eco-listing-main ul { padding-left: 1.25rem; margin-bottom: 1.25rem; }
.eco-listing-main ul li { margin-bottom: 0.4rem; line-height: 1.6; }

.eco-listing-aside {
  background: #fff; border: 1px solid var(--eco-border); border-radius: 0.875rem;
  padding: 1.5rem; position: sticky; top: 90px; align-self: start;
}
.eco-listing-aside h3 { font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em;
                       color: var(--eco-green-dark); margin: 0 0 0.875rem; padding-bottom: 0.5rem;
                       border-bottom: 1px solid var(--eco-border); }
.eco-listing-aside ul { list-style: none; padding: 0; margin: 0 0 1rem; font-size: 0.925rem; }
.eco-listing-aside ul li { padding: 0.4rem 0; display: flex; gap: 0.5rem; align-items: start; }
.eco-listing-aside ul li i { color: var(--eco-green); flex-shrink: 0; margin-top: 0.2rem; }
.eco-listing-aside .eco-aside-block + .eco-aside-block { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--eco-border); }

.eco-listing-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin: 2rem 0; }
@media (max-width: 575.98px) { .eco-listing-gallery { grid-template-columns: repeat(2, 1fr); } }
.eco-listing-gallery a { display: block; overflow: hidden; border-radius: 0.5rem; }
.eco-listing-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .3s; }
.eco-listing-gallery a:hover img { transform: scale(1.06); }

/* ============================================================
   T07 PROFILE POLISH (partners / artisans)
   ============================================================ */
.eco-profile-hero { display: grid; grid-template-columns: 240px 1fr; gap: 2rem; align-items: start; margin-bottom: 2rem; }
@media (max-width: 767.98px) { .eco-profile-hero { grid-template-columns: 1fr; gap: 1rem; } }
.eco-profile-portrait { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 1rem;
                        border: 4px solid #fff; box-shadow: 0 14px 36px rgba(0,0,0,0.12); }
.eco-profile-name { font-family: 'Playfair Display', Georgia, serif; font-size: 2.25rem; font-weight: 700; }
.eco-profile-bio { font-size: 1.0625rem; line-height: 1.75; color: var(--eco-text); }

.eco-profile-info {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem;
  margin: 1.5rem 0;
}
.eco-profile-info-item {
  background: var(--eco-warm); border-radius: 0.625rem; padding: 0.75rem 1rem;
}
.eco-profile-info-item .label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em;
                                color: var(--eco-text-muted); font-weight: 500; }
.eco-profile-info-item .value { color: var(--eco-text); font-weight: 500; word-break: break-word; }

/* ============================================================
   WPForms / WPCF7 forms leaking through eco-from-live — style them
   so the contact / reservation forms blend with the redesign.
   ============================================================ */
.eco-from-live .wpforms-container,
.eco-from-live .wpcf7 {
  max-width: 100%;
}
.eco-from-live .wpforms-form,
.eco-from-live .wpcf7-form {
  background: #fff;
  padding: 1.5rem;
  border-radius: 0.875rem;
  border: 1px solid var(--eco-border);
  box-shadow: 0 6px 20px rgba(31,82,57,0.06);
}
.eco-from-live .wpforms-field,
.eco-from-live .wpcf7-form > p {
  margin: 0 0 1rem;
  display: block;
}
.eco-from-live .wpforms-field-label,
.eco-from-live .wpcf7-form label {
  display: block;
  font-size: 0.875rem; font-weight: 500;
  color: var(--eco-text-muted);
  margin-bottom: 0.375rem;
}
.eco-from-live .wpforms-required-label,
.eco-from-live .wpcf7-form .required { color: #c0392b; margin-left: 0.15rem; }
.eco-from-live .wpforms-field input[type="text"],
.eco-from-live .wpforms-field input[type="email"],
.eco-from-live .wpforms-field input[type="tel"],
.eco-from-live .wpforms-field input[type="number"],
.eco-from-live .wpforms-field input[type="url"],
.eco-from-live .wpforms-field select,
.eco-from-live .wpforms-field textarea,
.eco-from-live .wpcf7-form input[type="text"],
.eco-from-live .wpcf7-form input[type="email"],
.eco-from-live .wpcf7-form input[type="tel"],
.eco-from-live .wpcf7-form input[type="number"],
.eco-from-live .wpcf7-form select,
.eco-from-live .wpcf7-form textarea {
  display: block; width: 100%;
  padding: 0.625rem 0.875rem;
  font-size: 1rem; line-height: 1.5;
  color: var(--eco-text);
  background: var(--eco-bg);
  border: 1px solid var(--eco-border);
  border-radius: 0.5rem;
  transition: border-color .15s, box-shadow .15s, background .15s;
  font-family: inherit;
}
.eco-from-live .wpforms-field input[type="text"]:focus,
.eco-from-live .wpforms-field input[type="email"]:focus,
.eco-from-live .wpforms-field input[type="tel"]:focus,
.eco-from-live .wpforms-field textarea:focus,
.eco-from-live .wpcf7-form input:focus,
.eco-from-live .wpcf7-form textarea:focus {
  outline: 0;
  background: #fff;
  border-color: var(--eco-green);
  box-shadow: 0 0 0 0.2rem rgba(45,114,83,0.15);
}
.eco-from-live .wpforms-field textarea,
.eco-from-live .wpcf7-form textarea { min-height: 140px; resize: vertical; }

/* Hide WPForms honeypot field (the visible "Phone" trap) */
.eco-from-live .wpforms-field-hp { display: none !important; }

/* Submit button */
.eco-from-live .wpforms-submit-container,
.eco-from-live .wpcf7-form p:has(> input[type="submit"]) { margin-top: 0.5rem; }
.eco-from-live .wpforms-submit,
.eco-from-live .wpcf7-form input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--eco-green);
  color: #fff;
  border: 0;
  padding: 0.75rem 1.5rem;
  font-weight: 500;
  border-radius: 0.5rem;
  box-shadow: 0 4px 14px rgba(45,114,83,0.18);
  transition: background .15s, transform .15s, box-shadow .15s;
  cursor: pointer;
}
.eco-from-live .wpforms-submit:hover,
.eco-from-live .wpcf7-form input[type="submit"]:hover {
  background: var(--eco-green-dark);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(45,114,83,0.25);
}

/* Two-column rows: contact text + form — already handled by the main
   cmsms_column rule above (gap 2rem + flex-basis calc 50%-1rem). */
.eco-from-live .cmsms_column.one_half { padding-inline: 0; }

/* ============================================================
   Profile listing (Ghizi locali, members, etc.) — modern magazine card
   layout with portrait photo + name + specialization chips.
   ============================================================ */
.eco-from-live .cmsms_profile {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.5rem;
  margin: 1.25rem 0 2.5rem;
}
.eco-from-live .cmsms_profile > article.format-profile,
.eco-from-live .cmsms_profile > .one_fourth,
.eco-from-live .cmsms_profile > .one_third,
.eco-from-live .cmsms_profile > .one_half {
  /* override CMSMasters width helpers — grid handles the layout */
  width: 100% !important; margin: 0 !important; padding: 0 !important;
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 1rem;
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease;
  position: relative;
}
.eco-from-live .cmsms_profile > article.format-profile:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(31,82,57,0.12);
  border-color: var(--eco-green-light);
}

/* Portrait photo — square crop, fills entire top of the card */
.eco-from-live .cmsms_profile .pl_img {
  margin: 0;
  aspect-ratio: 1/1;
  overflow: hidden;
  position: relative;
  background: linear-gradient(135deg, var(--eco-warm) 0%, var(--eco-green-light) 100%);
}
.eco-from-live .cmsms_profile .pl_img figure { margin: 0; height: 100%; }
.eco-from-live .cmsms_profile .pl_img a { display: block; height: 100%; }
.eco-from-live .cmsms_profile .pl_img img {
  width: 100% !important; height: 100% !important;
  object-fit: cover; display: block;
  border-radius: 0 !important;          /* override any inherited circle crop */
  transition: transform .5s ease;
}
.eco-from-live .cmsms_profile > article.format-profile:hover .pl_img img {
  transform: scale(1.05);
}

/* Small "Ghid local" badge on the photo */
.eco-from-live .cmsms_profile .pl_img::after {
  content: 'Ghid local';
  position: absolute;
  left: 0.75rem; top: 0.75rem;
  background: rgba(255,255,255,0.95);
  color: var(--eco-green-dark);
  font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.05em; text-transform: uppercase;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  z-index: 2;
}

/* Content area below the photo */
.eco-from-live .cmsms_profile .pl_content {
  padding: 1.125rem 1.25rem 1.25rem;
  flex: 1; display: flex; flex-direction: column;
  gap: 0.625rem;
}
.eco-from-live .cmsms_profile .entry-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.15rem; font-weight: 600;
  margin: 0;
  line-height: 1.25;
}
.eco-from-live .cmsms_profile .entry-title a {
  color: var(--eco-text); text-decoration: none;
  transition: color .15s;
}
.eco-from-live .cmsms_profile .entry-title a:hover { color: var(--eco-green); }

/* Original "Specializare: …" line — hidden visually but kept for SEO */
.eco-from-live .cmsms_profile .pl_subtitle {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Specialization chips (rendered by JS from the subtitle text) */
.eco-from-live .cmsms_profile .eco-chips {
  display: flex; flex-wrap: wrap; gap: 0.35rem;
  margin-top: auto;       /* push to bottom of card */
  padding-top: 0.25rem;
}
.eco-from-live .cmsms_profile .eco-chip {
  font-size: 0.72rem;
  background: var(--eco-green-light);
  color: var(--eco-green-dark);
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.3;
  white-space: nowrap;
}

.eco-from-live .cmsms_profile .entry-content {
  font-size: 0.875rem; color: var(--eco-text-muted);
}
.eco-from-live .cmsms_profile .cl { display: none; }  /* clearfix not needed in grid */

@media (max-width: 575.98px) {
  .eco-from-live .cmsms_profile { grid-template-columns: repeat(2, 1fr); gap: 0.875rem; }
  .eco-from-live .cmsms_profile .pl_content { padding: 0.875rem 1rem 1rem; gap: 0.5rem; }
  .eco-from-live .cmsms_profile .entry-title { font-size: 1rem; }
  .eco-from-live .cmsms_profile .pl_img::after { font-size: 0.6rem; padding: 0.2rem 0.5rem; }
}

/* ============================================================
   Icon-card grid (info-util, despre-noi hubs — pages without hero photos)
   ============================================================ */
.eco-icon-grid { margin: 1rem 0 2.5rem; }
.eco-icon-grid > [class*="col-"] { display: flex; }

.eco-icon-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 1rem;
  padding: 1.75rem 1.25rem 1.5rem;
  text-decoration: none;
  color: var(--eco-text);
  width: 100%;
  position: relative;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease;
}
.eco-icon-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(31,82,57,0.12);
  border-color: var(--eco-green-light);
  color: var(--eco-text);
}
.eco-icon-card::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0;
  height: 4px; background: var(--eco-green);
  transform: scaleX(0); transform-origin: left;
  transition: transform .3s ease;
}
.eco-icon-card:hover::before { transform: scaleX(1); }

.eco-icon-card-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--eco-green-light);
  color: var(--eco-green-dark);
  font-size: 1.5rem;
  margin-bottom: 1rem;
  transition: background .2s, color .2s, transform .2s;
}
.eco-icon-card:hover .eco-icon-card-icon {
  background: var(--eco-green);
  color: #fff;
  transform: scale(1.06);
}
.eco-icon-card-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
  line-height: 1.3;
  color: var(--eco-text);
}
.eco-icon-card-cta {
  font-size: 0.8125rem;
  color: var(--eco-green-dark);
  font-weight: 500;
  margin-top: auto;
  display: inline-flex; align-items: center;
  opacity: 0.85;
  transition: opacity .15s;
}
.eco-icon-card:hover .eco-icon-card-cta { opacity: 1; color: var(--eco-green-dark); }

@media (max-width: 575.98px) {
  .eco-icon-card { padding: 1.25rem 0.75rem 1rem; }
  .eco-icon-card-icon { width: 44px; height: 44px; font-size: 1.125rem; margin-bottom: 0.625rem; }
  .eco-icon-card-title { font-size: 0.95rem; margin-bottom: 0.5rem; }
}

/* ============================================================
   Info cards (rendered by JS from h3 + "Label: value" paragraphs).
   Used for Centre de informare, Contact pages, etc.
   ============================================================ */
.eco-info-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
  margin: 1.5rem 0 2.5rem;
}
.eco-info-card {
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 0.875rem;
  padding: 1.25rem 1.5rem 1.375rem;
  transition: transform .15s, box-shadow .25s, border-color .2s;
  display: flex; flex-direction: column;
}
.eco-info-card:hover {
  transform: translateY(-2px);
  border-color: var(--eco-green-light);
  box-shadow: 0 14px 28px rgba(31,82,57,0.08);
}

/* Override the global h3 styling (border-left etc.) inside info cards */
.eco-from-live .eco-info-card .eco-info-card-title,
.eco-info-card-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.125rem; font-weight: 600;
  margin: 0 0 0.875rem;
  padding: 0 0 0.5rem;
  border-left: 0;
  border-bottom: 2px solid var(--eco-green-light);
  color: var(--eco-green-dark);
  line-height: 1.25;
}

.eco-info-card-items {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0.925rem; line-height: 1.5;
}
.eco-from-live .eco-info-card-items li {
  display: flex; align-items: flex-start;
  gap: 0.625rem;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
}
.eco-from-live .eco-info-card-items li::before { display: none !important; content: none !important; }
.eco-info-card-items li:last-child { margin-bottom: 0 !important; }
.eco-info-card-items li > i.bi {
  color: var(--eco-green);
  flex-shrink: 0;
  font-size: 1rem;
  margin-top: 0.15rem;
  width: 18px; text-align: center;
}
.eco-info-card-items li > span {
  word-break: break-word; flex: 1; min-width: 0;
}
.eco-info-card-items a {
  text-decoration: none;
  color: var(--eco-text);
  border-bottom: 1px dotted var(--eco-border);
}
.eco-info-card-items a:hover { color: var(--eco-green-dark); border-bottom-color: var(--eco-green); }

/* ============================================================
   Download-link cards (PDF, external guides) — rendered by JS for pages
   like /ghiduri-si-harti/ where the source content is just a list of links.
   ============================================================ */
.eco-download-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 0.875rem;
  margin: 1rem 0 2rem;
}
.eco-download-card {
  display: flex; align-items: center; gap: 0.875rem;
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 0.75rem;
  padding: 0.875rem 1.125rem;
  text-decoration: none !important;
  color: var(--eco-text) !important;
  transition: transform .15s ease, box-shadow .2s ease, border-color .2s;
}
.eco-download-card:hover {
  transform: translateY(-2px);
  border-color: var(--eco-green-light);
  box-shadow: 0 10px 22px rgba(31,82,57,0.08);
  color: var(--eco-text) !important;
}
.eco-download-card-icon {
  flex-shrink: 0;
  width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--eco-warm); border-radius: 0.5rem;
  font-size: 1.25rem;
}
.eco-download-card-title {
  flex: 1; min-width: 0;
  font-weight: 500; font-size: 0.95rem; line-height: 1.35;
  color: var(--eco-text);
}
.eco-download-card-arrow {
  flex-shrink: 0;
  color: var(--eco-green); font-size: 1rem;
  opacity: 0.5;
  transition: transform .15s, opacity .15s;
}
.eco-download-card:hover .eco-download-card-arrow {
  transform: translateX(3px);
  opacity: 1;
}

/* ============================================================
   Destination cards (Alte destinații de ecoturism din Romania) —
   rendered by JS from the source <table.cmsms_table>.
   ============================================================ */
.eco-destination-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.5rem;
  margin: 1.5rem 0 2.5rem;
}
.eco-destination-card {
  display: flex; flex-direction: column;
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 1rem;
  padding: 1.25rem 1.25rem 1rem;
  text-decoration: none !important;
  color: var(--eco-text) !important;
  text-align: center;
  transition: transform .2s ease, box-shadow .25s ease, border-color .2s;
}
.eco-destination-card:hover {
  transform: translateY(-4px);
  border-color: var(--eco-green-light);
  box-shadow: 0 18px 36px rgba(31,82,57,0.10);
}
.eco-destination-card-img {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 1/1;
  margin-bottom: 0.875rem;
  padding: 0.5rem;
  background: var(--eco-warm);
  border-radius: 0.75rem;
}
.eco-destination-card-img img {
  max-width: 100% !important; max-height: 100% !important;
  width: auto !important; height: auto !important;
  object-fit: contain;
}
.eco-destination-card-cta {
  font-size: 0.8125rem;
  color: var(--eco-green-dark);
  font-weight: 500;
  margin-top: auto;
  opacity: 0.85;
  text-align: center;
}
.eco-destination-card:hover .eco-destination-card-cta { opacity: 1; }

/* Override the global external-link ↗ marker on destination cards — the CTA
   already has its own arrow icon. */
.eco-from-live a.eco-destination-card::after,
.eco-destination-card::after { content: none !important; display: none !important; }
/* Same for download cards (icon already conveys it). */
.eco-from-live a.eco-download-card::after,
.eco-download-card::after { content: none !important; display: none !important; }

/* ============================================================
   Tab → sections transformation (Căi de acces, similar pages)
   ============================================================ */
.eco-tab-sections { margin: 1rem 0 2rem; }
.eco-tab-section {
  padding: 1.5rem 0;
  border-top: 1px solid var(--eco-border);
}
.eco-tab-section:first-child {
  border-top: 0;
  padding-top: 0.5rem;
}
.eco-tab-section-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  margin: 0 0 1rem !important;
  padding: 0 0 0 1rem !important;
  border-left: 4px solid var(--eco-green) !important;
  border-bottom: 0 !important;
  color: var(--eco-text) !important;
  line-height: 1.3 !important;
}
.eco-tab-section p { margin: 0 0 1rem; }
.eco-tab-section p:last-child { margin-bottom: 0; }

/* Photo gallery (legacy cmsms_gallery markup) */
.cmsms_gallery { margin: 1.5rem 0; }
.cmsms_gallery ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.75rem;
}
.cmsms_gallery li,
.cmsms_gallery li.one_fourth,
.cmsms_gallery li.one_third,
.cmsms_gallery li.one_half,
.cmsms_gallery li.one_second {
  list-style: none;
  margin: 0;
  padding: 0;
  width: auto;
  float: none;
}
.cmsms_gallery li::before { content: none !important; }
.cmsms_gallery figure {
  margin: 0;
  border-radius: 0.5rem;
  overflow: hidden;
  background: var(--eco-warm);
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.cmsms_gallery figure a {
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  cursor: zoom-in;
}
.cmsms_gallery figure a::after,
.cmsms_gallery figure a::before { content: none !important; }
.cmsms_gallery figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.cmsms_gallery figure:hover img { transform: scale(1.06); }
@media (max-width: 575.98px) {
  .cmsms_gallery ul {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
}

/* Lightbox modal */
.eco-lightbox {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.9);
  display: none;
  align-items: center; justify-content: center;
  z-index: 1080;
  padding: 3.5rem 3.5rem;
}
.eco-lightbox.open { display: flex; }
.eco-lightbox-img {
  max-width: 100%;
  max-height: 100%;
  display: block;
  border-radius: 0.5rem;
  box-shadow: 0 10px 40px rgba(0,0,0,0.5);
  object-fit: contain;
}
.eco-lightbox-btn {
  position: absolute;
  background: rgba(255,255,255,0.12);
  color: #fff;
  border: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s;
}
.eco-lightbox-btn:hover { background: rgba(255,255,255,0.28); }
.eco-lightbox-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.eco-lightbox-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.eco-lightbox-close { right: 1rem; top: 1rem; }
.eco-lightbox-counter {
  position: absolute;
  left: 1rem;
  top: 1rem;
  color: #fff;
  font-size: 0.875rem;
  background: rgba(0,0,0,0.4);
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
}
@media (max-width: 575.98px) {
  .eco-lightbox { padding: 3.5rem 0.5rem; }
  .eco-lightbox-prev { left: 0.25rem; }
  .eco-lightbox-next { right: 0.25rem; }
}

/* Compact stat row — short Label: value pairs from bike-trail stats, etc. */
.eco-stat-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.75rem;
  margin: 1.25rem 0 2rem;
  background: var(--eco-warm);
  border: 1px solid var(--eco-border);
  border-radius: 0.875rem;
  padding: 1.125rem 1.25rem;
}
.eco-stat-card {
  display: flex; flex-direction: column;
  padding: 0.25rem 0.5rem;
  border-left: 3px solid var(--eco-green);
}
.eco-stat-card .eco-stat-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eco-green-dark);
  font-weight: 600;
  margin-bottom: 0.125rem;
  line-height: 1.2;
}
.eco-stat-card .eco-stat-value {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.0625rem;
  color: var(--eco-text);
  line-height: 1.3;
  font-weight: 500;
}
.eco-stat-card .eco-stat-value a { color: var(--eco-green-dark); text-decoration: none; }
.eco-stat-card .eco-stat-value a:hover { text-decoration: underline; }

/* DB-driven pension page — section headers + bullet lists for facilities/special */
.eco-listing-section-h {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--eco-green-dark);
  margin: 1.25rem 0 0.875rem;
  display: flex; align-items: center;
}
.eco-listing-bullets {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: var(--eco-warm);
  border: 1px solid var(--eco-border);
  border-radius: 0.75rem;
  padding: 0.625rem 1rem !important;
}
.eco-listing-bullets > li {
  display: flex; align-items: flex-start;
  gap: 0.625rem;
  padding: 0.4rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(31,82,57,0.06);
  font-size: 0.95rem;
}
.eco-listing-bullets > li::before { display: none !important; content: none !important; }
.eco-listing-bullets > li:last-child { border-bottom: 0; }
.eco-listing-bullets > li > i.bi { color: var(--eco-green); font-size: 1rem; margin-top: 0.2rem; flex-shrink: 0; }

/* Description text in the new DB-driven listing head */
.eco-listing-desc {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--eco-text);
  margin-bottom: 0.5rem;
}

/* Contact-directory cards (rental shops, info points, etc.) */
.eco-contact-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
  margin: 1.5rem 0 2.5rem;
}
.eco-contact-card {
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 0.875rem;
  padding: 1.25rem 1.375rem 1.25rem;
  display: flex; flex-direction: column;
  transition: transform .15s, box-shadow .25s, border-color .2s;
}
.eco-contact-card:hover {
  transform: translateY(-2px);
  border-color: var(--eco-green-light);
  box-shadow: 0 14px 28px rgba(31,82,57,0.08);
}
.eco-contact-card-loc {
  display: inline-flex; align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eco-green-dark);
  background: var(--eco-warm);
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  align-self: flex-start;
  margin-bottom: 0.625rem;
}
.eco-contact-card-loc i { font-size: 0.875rem; }
.eco-from-live .eco-contact-card .eco-contact-card-name,
.eco-contact-card-name {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--eco-text) !important;
  line-height: 1.3 !important;
}
.eco-contact-card-name a {
  color: var(--eco-text);
  text-decoration: none;
}
.eco-contact-card-name a:hover { color: var(--eco-green-dark); }
.eco-contact-card-lines {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0.925rem;
  line-height: 1.4;
}
.eco-from-live .eco-contact-card-lines li {
  display: flex; align-items: flex-start;
  gap: 0.5rem;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
}
.eco-from-live .eco-contact-card-lines li::before { display: none !important; content: none !important; }
.eco-contact-card-lines li:last-child { margin-bottom: 0 !important; }
.eco-contact-card-lines li > i.bi {
  color: var(--eco-green);
  flex-shrink: 0;
  font-size: 0.9375rem;
  margin-top: 0.15rem;
  width: 16px; text-align: center;
}
.eco-contact-card-lines li > span {
  word-break: break-word; flex: 1; min-width: 0;
}
.eco-contact-card-lines a {
  color: var(--eco-green-dark);
  text-decoration: none;
}
.eco-contact-card-lines a:hover { text-decoration: underline; }

/* Info-card "body" variant (when the card carries prose, not contact rows) */
.eco-info-card-body {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--eco-text);
}
.eco-info-card-body p { margin: 0 0 0.5rem; }
.eco-info-card-body p:last-child { margin-bottom: 0; }
.eco-info-card-body a { color: var(--eco-green-dark); }

/* Cazare pentru biciclisti — flat directory grid with village filter */
.eco-cazare-bici-intro { margin-bottom: 1.75rem; }
.eco-cazare-filters {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin: 0 0 1.5rem;
}
.eco-cazare-filter {
  background: #fff;
  border: 1px solid var(--eco-border);
  color: var(--eco-text);
  padding: 0.4rem 1rem;
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.eco-cazare-filter:hover {
  background: var(--eco-warm);
  border-color: var(--eco-green-light);
  color: var(--eco-green-dark);
}
.eco-cazare-filter.is-active {
  background: var(--eco-green);
  border-color: var(--eco-green);
  color: #fff;
}
.eco-cazare-grid { margin-bottom: 2rem; }
.eco-cazare-card {
  display: block;
  background: #fff;
  border: 1px solid var(--eco-border);
  border-radius: 0.875rem;
  overflow: hidden;
  height: 100%;
  transition: transform .2s, box-shadow .25s, border-color .2s;
}
.eco-cazare-card:hover {
  transform: translateY(-3px);
  border-color: var(--eco-green-light);
  box-shadow: 0 16px 32px rgba(31,82,57,0.10);
}
.eco-cazare-card-img {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--eco-warm);
}
.eco-cazare-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.eco-cazare-card:hover .eco-cazare-card-img img { transform: scale(1.05); }
.eco-cazare-card-img-placeholder {
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--eco-green-light), var(--eco-warm));
  color: var(--eco-green-dark);
  font-size: 3rem;
}
.eco-cazare-card-body { padding: 1rem 1.125rem 1.125rem; }
.eco-cazare-card-village {
  display: inline-flex; align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eco-green-dark);
  background: var(--eco-warm);
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  margin-bottom: 0.625rem;
}
.eco-cazare-card-village i { font-size: 0.75rem; }
.eco-cazare-card-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: var(--eco-text) !important;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  border: 0 !important;
  line-height: 1.25 !important;
}
.eco-cazare-card-cta {
  display: inline-flex; align-items: center;
  color: var(--eco-green-dark);
  font-size: 0.875rem;
  font-weight: 500;
}
.eco-cazare-card-cta i { transition: transform .2s; }
.eco-cazare-card:hover .eco-cazare-card-cta i { transform: translateX(3px); }
.eco-cazare-card-wrap.is-hidden { display: none; }

/* Hub body inline photos: side carousel alongside body text. Photos are
   portrait (~333×500) so keep their 2/3 aspect ratio without cropping. */
.eco-hub-body-slider {
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}
.eco-hub-body-slider .carousel-inner,
.eco-hub-body-slider .carousel-item { aspect-ratio: 2 / 3; }
.eco-hub-body-slider .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.eco-hub-body-slider .carousel-control-prev,
.eco-hub-body-slider .carousel-control-next { width: 14%; }
.eco-hub-body-slider .carousel-control-prev-icon,
.eco-hub-body-slider .carousel-control-next-icon {
  background-color: rgba(0,0,0,0.35);
  border-radius: 50%;
  padding: 1rem;
  background-size: 50% 50%;
}

/* Activity body — orphaned side image hoisted to full-width banner */
.eco-activity-body .eco-activity-banner {
  margin: 1.75rem 0 1.5rem;
  border-radius: 0.875rem;
  overflow: hidden;
  position: relative;
  box-shadow: 0 8px 20px rgba(0,0,0,0.10);
}
.eco-activity-body .eco-activity-banner img {
  width: 100%;
  height: clamp(180px, 28vw, 320px);
  object-fit: cover;
  display: block;
}

/* ============== Activity body typography & special blocks ============== */
.eco-activity-body { font-size: 1.0625rem; line-height: 1.7; color: var(--eco-text); }


/* Standalone "Detalii despre..." links → pill buttons */
.eco-activity-body .eco-inline-cta {
  display: inline-flex; align-items: center;
  gap: 0.4rem;
  background: var(--eco-green-light);
  color: var(--eco-green-dark) !important;
  font-weight: 500;
  text-decoration: none !important;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background .15s, border-color .15s, transform .15s;
  margin: 0.25rem 0 1rem;
}
.eco-activity-body .eco-inline-cta:hover {
  background: var(--eco-warm);
  border-color: var(--eco-green);
  transform: translateX(2px);
}
.eco-activity-body .eco-inline-cta::after {
  content: '→';
  font-weight: 600;
}

/* Trail-description cards: each trail starts with <strong>Name</strong> and
   contains a distance / time / marking. Wrapped by JS in .eco-trail. */
.eco-trail-list { display: grid; gap: 0.875rem; margin: 1.25rem 0 1.75rem; }
.eco-trail {
  background: #fff;
  border: 1px solid var(--eco-border);
  border-left: 4px solid var(--eco-green);
  border-radius: 0.625rem;
  padding: 1rem 1.125rem;
  transition: border-color .2s, box-shadow .2s, transform .15s;
}
.eco-trail:hover {
  border-color: var(--eco-green-light);
  box-shadow: 0 8px 18px rgba(31,82,57,0.08);
  transform: translateX(2px);
}
.eco-trail-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  font-size: 1.0625rem;
  color: var(--eco-green-dark);
  display: flex; align-items: center; gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.eco-trail-title .bi {
  color: var(--eco-green);
  font-size: 1rem;
  flex-shrink: 0;
}
.eco-trail-body { margin: 0; font-size: 0.9375rem; line-height: 1.55; }
.eco-trail-meta {
  display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem;
  margin-top: 0.5rem;
  font-size: 0.8125rem;
}
.eco-trail-meta span {
  display: inline-flex; align-items: center; gap: 0.3rem;
  background: var(--eco-warm);
  color: var(--eco-green-dark);
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-weight: 500;
}
.eco-trail-meta a {
  display: inline-flex; align-items: center; gap: 0.3rem;
  color: var(--eco-green-dark);
  text-decoration: none;
  font-weight: 500;
}
.eco-trail-meta a:hover { text-decoration: underline; }

/* "MERGEȚI ÎN..." style accent paragraphs (advice in CAPS prose) */
.eco-activity-body p.eco-tip-paragraph {
  background: var(--eco-warm);
  border-radius: 0.625rem;
  padding: 0.875rem 1.125rem;
  margin: 1rem 0;
  border-left: 3px solid var(--eco-green-light);
}
.eco-activity-body p.eco-tip-paragraph strong em,
.eco-activity-body p.eco-tip-paragraph em strong {
  font-style: normal;
  font-weight: 700;
  color: var(--eco-green-dark);
  letter-spacing: 0.02em;
}

/* "IMPORTANT DE ȘTIUT" callout box */
.eco-activity-body .eco-important {
  background: #fff8e1;
  border: 1px solid #f0d77a;
  border-left: 4px solid #d4a017;
  border-radius: 0.625rem;
  padding: 1rem 1.125rem 1rem 3rem;
  margin: 1.5rem 0 1rem;
  position: relative;
  color: var(--eco-text);
}
.eco-activity-body .eco-important::before {
  content: '\f33a'; /* bi-exclamation-triangle */
  font-family: 'bootstrap-icons';
  position: absolute;
  left: 1rem; top: 1rem;
  color: #d4a017;
  font-size: 1.25rem;
}
.eco-activity-body .eco-important strong em,
.eco-activity-body .eco-important em strong {
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #8a6a14;
  text-transform: uppercase;
  font-size: 0.875rem;
  display: block;
  margin-bottom: 0.25rem;
}

/* The image+text columns (h5 + text + image) used in the WP layout */
.eco-activity-body .cmsms_column .cmsms_img img {
  border-radius: 0.75rem;
  width: 100%;
  height: auto;
}
.eco-activity-body h5 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  color: var(--eco-green-dark) !important;
  margin: 1.5rem 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Activity page (T04) — slider + stat row + locuri + servicii sections */
.eco-activity-slider {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
.eco-activity-slider .carousel-inner,
.eco-activity-slider .carousel-item { height: clamp(220px, 42vw, 480px); }
.eco-activity-slider .carousel-item img {
  width: 100%; height: 100%; object-fit: cover;
}
.eco-activity-slider .carousel-control-prev,
.eco-activity-slider .carousel-control-next { width: 6%; }
.eco-activity-slider .carousel-indicators { margin-bottom: 0.875rem; }
.eco-activity-slider .carousel-indicators [data-bs-target] {
  width: 28px; height: 4px; border-radius: 2px;
  background-color: rgba(255,255,255,0.75);
}

.eco-activity-body { margin-bottom: 1.5rem; }
.eco-activity-stats { margin: 1.5rem 0 2.25rem; }
.eco-activity-stats .eco-stat-label i { color: var(--eco-green); }
.eco-activity-section-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  margin: 2.25rem 0 1rem !important;
  padding: 0 0 0 1rem !important;
  border-left: 4px solid var(--eco-green) !important;
  border-bottom: 0 !important;
  color: var(--eco-text) !important;
  line-height: 1.3 !important;
}
.eco-activity-locuri { margin-bottom: 1rem; }
.eco-info-card-cta {
  display: inline-flex; align-items: center;
  color: var(--eco-green-dark);
  font-weight: 500;
  text-decoration: none;
  font-size: 0.9375rem;
}
.eco-info-card-cta:hover { color: var(--eco-green); text-decoration: underline; }

/* Active/current card state inside sibling-nav */
.eco-icon-card.eco-icon-card-current {
  background: var(--eco-green);
  border-color: var(--eco-green-dark);
  color: #fff;
  pointer-events: none;
}
.eco-icon-card.eco-icon-card-current::before { transform: scaleX(1); background: var(--eco-green-dark); }
.eco-icon-card.eco-icon-card-current .eco-icon-card-icon {
  background: rgba(255,255,255,0.18);
  color: #fff;
}
.eco-icon-card.eco-icon-card-current .eco-icon-card-title { color: #fff; }
.eco-icon-card.eco-icon-card-current .eco-icon-card-cta { color: #ffffff; opacity: 0.85; }

.eco-card.eco-card-current {
  border: 2px solid var(--eco-green);
  box-shadow: 0 0 0 3px rgba(45,114,83,0.18);
  pointer-events: none;
}
.eco-card.eco-card-current .eco-subheading { color: var(--eco-green-dark) !important; }

/* Sibling-nav block (appended below cicloturism sub-pages) */
.eco-sibling-nav {
  background: var(--eco-warm);
  border-top: 1px solid var(--eco-border);
  padding: 2.5rem 0 3rem;
  margin-top: 3rem;
}
.eco-sibling-nav-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--eco-green-dark);
  text-align: center;
  margin: 0 0 1.5rem;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
