/*
 * selva-luxury.css — Selva Dorada v6.1 Complete Luxury Design System
 * Loaded LAST — overrides everything above.
 * Fonts: Playfair Display (primary serif — Zaslia-inspired ultra-luxury display)
 *        Raleway (eyebrows/UI)  ·  Lato (body)
 * All fonts are 100% self-hosted via selva-fonts.css — zero external CDN for typography.
 * Font update 2026-03-19: Primary heading font upgraded to Playfair Display 700/900
 * to match the Zaslia by Suhadidesign aesthetic (high-contrast hairline luxury serif).
 * Drop-in upgrade: when Zaslia.woff2 is available, add to assets/fonts/zaslia/ and
 * prepend 'Zaslia' to --font-display below.
 * @package selva-dorada
 */

/* ══════════════════════════════════════════════════════════════════════
   LUXURY TOKEN OVERRIDES
   ══════════════════════════════════════════════════════════════════════ */
:root {
  /* Typography — Zaslia-inspired Luxury Stack (self-hosted) */
  --font-display:     'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  --font-display-sc:  'Raleway', 'Josefin Sans', sans-serif;
  --font-body:        'Lato', 'Open Sans', 'Helvetica Neue', sans-serif;

  /* Spacing refinements */
  --card-radius:      16px;
  --card-shadow:      0 2px 12px rgba(26,20,10,.05), 0 8px 32px rgba(26,20,10,.07);
  --card-shadow-hov:  0 20px 60px rgba(26,20,10,.14), 0 4px 16px rgba(26,20,10,.07);

  /* Palette — warm cream-ivory luxury */
  --color-bg-primary:    #F4EFE6;
  --color-bg-secondary:  #EFE9DF;
  --color-bg-card:       #FDFAF5;
  --color-bg-dark:       #0F0D0B;
  --color-text-primary:  #1A1A1A;
  --color-text-muted:    #5C5851;
  --color-text-light:    #8A8278;
  --color-border:        #DDD5C8;
  --color-border-light:  #E8E0D4;

  /* Gold accent */
  --color-accent:        #C5A059;
  --color-accent-hover:  #D4B576;
  --color-accent-dark:   #A8863E;
  --color-accent-pale:   #F5EBD6;
  --color-accent-tint:   rgba(197,160,89,.1);

  /* Button */
  --color-cta:           #C5A059;
  --color-cta-hover:     #A8863E;
  --color-cta-text:      #FFFFFF;

  /* Section spacing */
  --section-pad: clamp(72px, 9vw, 120px);
}

/* Dark skin */
html.skin-dark, .skin-dark {
  --color-bg-primary:   #0D0B09;
  --color-bg-secondary: #141210;
  --color-bg-card:      #1A1714;
  --color-text-primary: #F2EDE5;
  --color-text-muted:   #998F84;
  --color-text-light:   #665E54;
  --color-border:       #2A2620;
  --color-border-light: #221E18;
  --color-accent:       #C8A468;
  --color-accent-hover: #D8B47A;
  --color-accent-dark:  #B09050;
  --color-accent-pale:  #1A1714;
  --color-cta:          #C8A468;
  --color-cta-hover:    #D8B47A;
  --color-cta-text:     #0D0B09;
}

/* ══════════════════════════════════════════════════════════════════════
   GLOBAL TYPOGRAPHY
   ══════════════════════════════════════════════════════════════════════ */
body {
  font-family: var(--font-body) !important;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--color-bg-primary);
  color: var(--color-text-primary);
}

/* Zaslia-inspired heading style: Playfair Display Heavy, tight tracking, high drama */
h1, h2, h3, h4, .h1, .h2, .h3, .h4,
.elementor-heading-title,
.selva-hero-title {
  font-family: var(--font-display) !important;
  font-weight: 700;
  letter-spacing: -0.02em;
}

h1, .h1 { font-size: clamp(2.8rem, 6vw, 5.5rem); line-height: 1.04; letter-spacing: -0.03em; font-weight: 900; }
h2, .h2 { font-size: clamp(2rem, 4vw, 3.5rem);   line-height: 1.1;  font-weight: 700; }
h3, .h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); line-height: 1.2;  font-weight: 700; }
h4, .h4 { font-size: clamp(1.1rem, 1.8vw, 1.4rem); font-weight: 700; }

/* Eyebrow / labels — Cinzel small caps */
.selva-section-eyebrow,
.selva-page-eyebrow,
.hero__eyebrow {
  font-family: var(--font-display-sc) !important;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--color-accent);
}

/* ══════════════════════════════════════════════════════════════════════
   SECTION HEADER
   ══════════════════════════════════════════════════════════════════════ */
.selva-section-header {
  text-align: center;
  margin-bottom: clamp(48px, 6vw, 80px);
}
.selva-section-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 20px;
}
.selva-ornament-line {
  display: inline-block;
  width: 32px;
  height: 1px;
  background: var(--color-accent);
  opacity: 0.6;
  flex-shrink: 0;
}
.selva-section-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.8rem) !important;
  font-weight: 400 !important;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--color-text-primary);
  margin: 0 0 20px;
}
.selva-section-subtitle {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--color-text-muted);
  max-width: 520px;
  margin: 0 auto;
  line-height: 1.8;
  font-style: italic;
}

/* ══════════════════════════════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════════════════════════════ */
.hero {
  min-height: 92vh;
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
/* Background image wrapper — used by home hero and page-banner */
.hero__image-bg,
.hero__image-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__image-bg img,
.hero__image-wrap img,
.hero__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(13,15,13,.15) 0%,
    rgba(13,15,13,.38) 45%,
    rgba(13,15,13,.75) 100%
  );
}
/* Services hero inner text — override dark color since hero bg is dark */
.selva-services-hero .selva-page-title,
.selva-services-hero h1 {
  color: #fff !important;
  text-shadow: 0 3px 30px rgba(0,0,0,.3);
}
.selva-services-hero .selva-services-intro,
.selva-services-hero p { color: rgba(255,255,255,.75) !important; }
.selva-services-hero .selva-filter-tabs { margin-top: 32px; }
.selva-services-hero .selva-filter-tabs__btn {
  color: rgba(255,255,255,.8) !important;
  border-color: rgba(255,255,255,.25) !important;
}
.selva-services-hero .selva-filter-tabs__btn.is-active,
.selva-services-hero .selva-filter-tabs__btn:hover {
  background: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #fff !important;
}
.hero__title {
  font-family: var(--font-display) !important;
  font-size: clamp(3rem, 8vw, 7rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.03em;
  line-height: 1.02;
  color: #FFFFFF;
  text-shadow: 0 4px 40px rgba(0,0,0,.25);
  margin-bottom: 24px;
}
.hero__eyebrow {
  font-family: var(--font-display-sc) !important;
  font-size: 10px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.hero__eyebrow::before, .hero__eyebrow::after {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  background: var(--color-accent);
  opacity: 0.7;
}
.hero__subtitle {
  font-family: var(--font-body) !important;
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: rgba(255,255,255,.75);
  line-height: 1.8;
  max-width: 500px;
  margin-bottom: 40px;
}
.hero__content {
  padding-top: 80px;
  padding-bottom: 120px;
  position: relative;
  z-index: 2;
  max-width: 680px;
}

/* ══════════════════════════════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════════════════════════════ */
.selva-btn, .btn {
  font-family: var(--font-display-sc) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
  transition: all .3s cubic-bezier(.22,1,.36,1) !important;
  position: relative;
  overflow: hidden;
}
.selva-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.08);
  transform: translateX(-101%);
  transition: transform .4s cubic-bezier(.22,1,.36,1);
}
.selva-btn:hover::before { transform: translateX(0); }

.selva-btn--cta {
  background: var(--color-accent) !important;
  color: #fff !important;
  border: 1.5px solid var(--color-accent) !important;
  padding: 14px 32px !important;
}
.selva-btn--cta:hover {
  background: var(--color-accent-dark) !important;
  border-color: var(--color-accent-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(184,150,90,.35) !important;
}
.selva-btn--outline {
  background: transparent !important;
  color: var(--color-text-primary) !important;
  border: 1.5px solid var(--color-border) !important;
  padding: 14px 32px !important;
}
.selva-btn--outline:hover {
  border-color: var(--color-accent) !important;
  color: var(--color-accent) !important;
  transform: translateY(-2px);
}
.selva-btn--ghost {
  background: transparent !important;
  border: 1.5px solid rgba(255,255,255,.35) !important;
  color: rgba(255,255,255,.85) !important;
}
.selva-btn--ghost:hover {
  border-color: rgba(255,255,255,.7) !important;
  color: #fff !important;
}
.selva-btn--lg { padding: 17px 42px !important; }
.selva-btn--sm { padding: 10px 22px !important; font-size: 9px !important; }

/* Book Now in header */
.selva-nav__actions .selva-btn--cta,
.selva-header .selva-btn--cta {
  background: var(--color-accent) !important;
  color: #fff !important;
  padding: 10px 22px !important;
}

/* ══════════════════════════════════════════════════════════════════════
   NAVIGATION
   ══════════════════════════════════════════════════════════════════════ */
.selva-header {
  background: var(--color-bg-primary);
  border-bottom: 1px solid var(--color-border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transition: box-shadow .3s ease, background .3s ease;
}
.selva-header.is-scrolled {
  box-shadow: 0 2px 20px rgba(26,23,20,.08);
}
.selva-logo__text {
  font-family: var(--font-display) !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  color: var(--color-text-primary) !important;
}
.selva-nav__link, .selva-nav__menu a {
  font-family: var(--font-display-sc) !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  color: var(--color-text-muted) !important;
  text-decoration: none;
  transition: color .2s ease !important;
  position: relative;
}
.selva-nav__link:hover, .selva-nav__menu a:hover,
.selva-nav__menu .current-menu-item > a,
.selva-nav__menu .current_page_item > a {
  color: var(--color-text-primary) !important;
}
.selva-nav__menu .current-menu-item > a::after,
.selva-nav__menu .current_page_item > a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0; right: 0;
  height: 1px;
  background: var(--color-accent);
}

/* ══════════════════════════════════════════════════════════════════════
   STATS BAR
   ══════════════════════════════════════════════════════════════════════ */
.selva-stats-bar {
  background: var(--color-bg-dark);
  padding: 0;
}
.selva-stats-bar__inner {
  padding: 40px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
}
.selva-stat {
  text-align: center;
  padding: 12px clamp(24px, 5vw, 64px);
  flex: 1;
  min-width: 140px;
  border-right: 1px solid rgba(255,255,255,.06);
}
.selva-stat:last-of-type { border-right: none; }
.selva-stat__num {
  font-family: var(--font-display) !important;
  font-size: clamp(1.8rem, 3vw, 2.8rem) !important;
  font-weight: 400 !important;
  color: var(--color-accent) !important;
  line-height: 1;
  display: block;
  margin-bottom: 6px;
}
.selva-stat__label {
  font-family: var(--font-display-sc);
  font-size: 9px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(242,237,229,.4);
}
.selva-stat__divider { display: none; }

/* ══════════════════════════════════════════════════════════════════════
   SERVICES SECTION & GRID
   ══════════════════════════════════════════════════════════════════════ */
.selva-services-section {
  padding: var(--section-pad) 0;
  background: var(--color-bg-secondary);
}
.skin-dark .selva-services-section { background: var(--color-bg-primary); }

/* THE FIX: remove the tile/border effect from main.css */
.selva-services-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}
@media (max-width: 1023px) { .selva-services-grid { grid-template-columns: repeat(2,1fr) !important; } }
@media (max-width: 599px)  { .selva-services-grid { grid-template-columns: 1fr !important; } }

.selva-svc-card {
  display: flex !important;
  flex-direction: column !important;
  background: var(--color-bg-card) !important;
  border-radius: var(--card-radius) !important;
  overflow: hidden !important;
  box-shadow: var(--card-shadow) !important;
  transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s cubic-bezier(.22,1,.36,1) !important;
  border: 1px solid var(--color-border-light);
}
.selva-svc-card:hover {
  transform: translateY(-10px) !important;
  box-shadow: var(--card-shadow-hov) !important;
}

.selva-svc-card__media-link { display: block; text-decoration: none; }
.selva-svc-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  flex-shrink: 0;
}
.selva-svc-card__img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .6s cubic-bezier(.22,1,.36,1);
}
.selva-svc-card:hover .selva-svc-card__img { transform: scale(1.07); }

.selva-svc-card__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 35%, rgba(15,13,11,.6) 100%);
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events: none;
}
.selva-svc-card:hover .selva-svc-card__overlay { opacity: 1; }

.selva-svc-card__badges {
  position: absolute; top: 16px; left: 16px;
  display: flex; flex-direction: column; gap: 6px; z-index: 3;
}
.selva-badge {
  display: inline-flex; align-items: center;
  font-family: var(--font-display-sc);
  font-size: 8px; font-weight: 400; letter-spacing: 0.2em; text-transform: uppercase;
  color: #fff; padding: 5px 12px; border-radius: 2px;
}
.selva-badge--popular  { background: var(--color-accent); }
.selva-badge--featured { background: var(--color-bg-dark); }
.selva-badge--new      { background: #2F6B5E; }

.selva-svc-card__body {
  padding: 24px 24px 0;
  flex: 1;
  display: flex; flex-direction: column; gap: 10px;
}
.selva-svc-card__title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.1rem, 2vw, 1.45rem) !important;
  font-weight: 400 !important;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 0 !important;
}
.selva-svc-card__title a {
  color: var(--color-text-primary);
  text-decoration: none;
  transition: color .2s ease;
}
.selva-svc-card__title a:hover { color: var(--color-accent-dark); }

.selva-svc-card__excerpt {
  font-family: var(--font-body);
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--color-text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}
.selva-svc-card__meta {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding-top: 4px;
}
.selva-svc-card__price {
  font-family: var(--font-display);
  font-size: 15px; font-weight: 500;
  color: var(--color-accent);
}
.selva-svc-card__dur {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--color-text-light);
}

.selva-svc-card__footer {
  padding: 16px 24px 22px;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 14px;
  border-top: 1px solid var(--color-border-light);
}
.selva-svc-card__detail-link {
  font-family: var(--font-display-sc);
  font-size: 9px; letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-text-light);
  text-decoration: none;
  transition: color .2s ease;
}
.selva-svc-card__detail-link:hover { color: var(--color-accent); }

/* ══════════════════════════════════════════════════════════════════════
   TEAM SECTION
   ══════════════════════════════════════════════════════════════════════ */
.selva-team-section {
  padding: var(--section-pad) 0;
  background: var(--color-bg-primary);
}
.skin-dark .selva-team-section { background: var(--color-bg-secondary); }

.selva-team-grid,
.selva-team-strip__list {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 28px !important;
}
@media (max-width: 1023px) {
  .selva-team-grid, .selva-team-strip__list { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width: 480px) {
  .selva-team-grid, .selva-team-strip__list { grid-template-columns: repeat(2,1fr) !important; gap: 16px !important; }
}

.selva-team-card {
  text-align: center;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.selva-team-card:hover { transform: translateY(-6px); }

.selva-team-card__photo-wrap {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: var(--card-radius);
  aspect-ratio: 4/5;
  margin-bottom: 18px;
  text-decoration: none;
}
.selva-team-card__photo {
  width: 100%; height: 100%;
  overflow: hidden;
}
.selva-team-card__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.22,1,.36,1);
}
.selva-team-card:hover .selva-team-card__photo img { transform: scale(1.06); }

.selva-team-card__photo--empty {
  background: var(--color-bg-secondary);
  display: flex; align-items: center; justify-content: center;
}
.selva-team-card__initials {
  font-family: var(--font-display);
  font-size: 2.5rem; font-weight: 300;
  color: var(--color-accent);
  letter-spacing: 0.05em;
}

.selva-team-card__overlay {
  position: absolute; inset: 0;
  background: rgba(15,13,11,.45);
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transition: opacity .35s ease;
}
.selva-team-card__overlay span {
  font-family: var(--font-display-sc);
  font-size: 9px; letter-spacing: 0.25em; text-transform: uppercase;
  color: rgba(255,255,255,.9);
  padding: 10px 20px;
  border: 1px solid rgba(255,255,255,.3);
}
.selva-team-card__photo-wrap:hover .selva-team-card__overlay { opacity: 1; }

.selva-team-card__name {
  font-family: var(--font-display) !important;
  font-size: 1.2rem !important;
  font-weight: 400 !important;
  margin: 0 0 4px !important;
  letter-spacing: -0.01em;
}
.selva-team-card__name a { color: var(--color-text-primary); text-decoration: none; }
.selva-team-card__name a:hover { color: var(--color-accent-dark); }
.selva-team-card__role {
  font-family: var(--font-display-sc);
  font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--color-accent); margin: 0;
}

/* ══════════════════════════════════════════════════════════════════════
   TESTIMONIALS SECTION
   ══════════════════════════════════════════════════════════════════════ */
.selva-testimonials-section {
  padding: var(--section-pad) 0;
  background: var(--color-bg-dark);
  position: relative;
  overflow: hidden;
}
.selva-testimonials-section::before {
  content: '\201C';
  position: absolute;
  top: -40px; left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-display);
  font-size: 30vw;
  line-height: 1;
  color: rgba(255,255,255,.02);
  pointer-events: none;
}
.selva-testimonials-section .selva-section-title { color: rgba(242,237,229,.92) !important; }
.selva-testimonials-section .selva-section-eyebrow { color: var(--color-accent) !important; }

.selva-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
@media (max-width: 1023px) { .selva-testimonials-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 639px)  { .selva-testimonials-grid { grid-template-columns: 1fr; } }

.selva-testimonial-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--card-radius);
  padding: 36px 32px;
  display: flex; flex-direction: column; gap: 20px;
  transition: background .35s ease, transform .45s cubic-bezier(.22,1,.36,1);
}
.selva-testimonial-card:hover {
  background: rgba(255,255,255,.07);
  transform: translateY(-6px);
}

.selva-testimonial-card__stars {
  display: flex; gap: 4px;
}
.selva-star { font-size: 14px; color: rgba(255,255,255,.15); }
.selva-star--filled { color: var(--color-accent); }

.selva-testimonial-card__quote-mark {
  font-family: var(--font-display);
  font-size: 4rem;
  line-height: .8;
  color: var(--color-accent);
  opacity: .5;
  flex-shrink: 0;
}
.selva-testimonial-card__quote {
  font-family: var(--font-display);
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.7;
  color: rgba(242,237,229,.82);
  margin: 0;
  flex: 1;
}
.selva-testimonial-card__footer { display: flex; flex-direction: column; gap: 10px; }
.selva-testimonial-card__divider {
  height: 1px;
  background: rgba(255,255,255,.08);
}
.selva-testimonial-card__author {
  font-style: normal;
  display: flex; flex-direction: column; gap: 4px;
}
.selva-testimonial-card__author strong {
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 500;
  color: rgba(242,237,229,.9);
}
.selva-testimonial-card__service {
  font-family: var(--font-display-sc);
  font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--color-accent); opacity: .7;
}

/* ══════════════════════════════════════════════════════════════════════
   CTA RIBBON
   ══════════════════════════════════════════════════════════════════════ */
.selva-cta-ribbon {
  padding: var(--section-pad) 0;
  background: var(--color-bg-secondary);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.selva-cta-ribbon::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--color-accent) 50%, transparent 100%);
  opacity: .4;
}
.selva-cta-ribbon__inner {
  max-width: 700px;
  margin: 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: 32px;
}
.selva-cta-ribbon__title {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 4vw, 3.2rem) !important;
  font-weight: 400 !important;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--color-text-primary) !important;
  margin: 0 !important;
}
.selva-cta-ribbon__sub {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--color-text-muted);
  font-style: italic;
  line-height: 1.75;
}
.selva-cta-ribbon__actions {
  display: flex; gap: 16px; flex-wrap: wrap; justify-content: center;
}
.selva-cta-ribbon__btn-book {
  background: var(--color-accent) !important;
  color: #fff !important;
  border-color: var(--color-accent) !important;
}
.selva-cta-ribbon__btn-book:hover {
  background: var(--color-accent-dark) !important;
  border-color: var(--color-accent-dark) !important;
}
.selva-cta-ribbon__btn-wa {
  background: transparent !important;
  border-color: var(--color-border) !important;
  color: var(--color-text-primary) !important;
}
.selva-cta-ribbon__btn-wa:hover {
  border-color: var(--color-accent) !important;
  color: var(--color-accent) !important;
}

/* ══════════════════════════════════════════════════════════════════════
   BLOG ARCHIVE
   ══════════════════════════════════════════════════════════════════════ */
.selva-blog-archive { padding-bottom: var(--section-pad); }

.selva-blog-archive .selva-page-header {
  padding: clamp(48px,7vw,100px) 0 clamp(36px,5vw,64px);
  border-bottom: 1px solid var(--color-border);
  margin-bottom: clamp(40px,6vw,80px);
}
.selva-blog-archive .selva-page-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.2rem, 5vw, 4rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.03em;
  color: var(--color-text-primary);
}

/* Blog grid — 3 equal columns */
.blog-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
  align-items: start;
}
@media (max-width: 1023px) { .blog-grid { grid-template-columns: repeat(2,1fr) !important; gap: 24px !important; } }
@media (max-width: 600px)  { .blog-grid { grid-template-columns: 1fr !important; gap: 20px !important; } }

/* Blog Card */
.selva-blog-card {
  display: flex !important;
  flex-direction: column !important;
  background: var(--color-bg-card) !important;
  border-radius: var(--card-radius) !important;
  overflow: hidden !important;
  border: 1px solid var(--color-border-light) !important;
  box-shadow: 0 1px 6px rgba(26,23,20,.04), 0 4px 20px rgba(26,23,20,.06) !important;
  transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s cubic-bezier(.22,1,.36,1) !important;
}
.selva-blog-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 16px 50px rgba(26,23,20,.12), 0 4px 16px rgba(26,23,20,.07) !important;
}

.selva-blog-card__media {
  display: block;
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
  flex-shrink: 0;
  text-decoration: none;
}
.selva-blog-card__thumb {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .6s cubic-bezier(.22,1,.36,1);
}
.selva-blog-card:hover .selva-blog-card__thumb { transform: scale(1.06); }

.selva-blog-card__thumb-fallback {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 2.5rem; color: rgba(255,255,255,.3);
  transition: transform .6s cubic-bezier(.22,1,.36,1);
}
.selva-blog-card:hover .selva-blog-card__thumb-fallback { transform: scale(1.04); }

.selva-blog-card__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 45%, rgba(15,13,11,.5) 100%);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.selva-blog-card:hover .selva-blog-card__overlay { opacity: 1; }

.selva-blog-card__cat {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  font-family: var(--font-display-sc);
  font-size: 8px; font-weight: 400; letter-spacing: 0.22em; text-transform: uppercase;
  color: #fff;
  background: var(--color-accent);
  padding: 5px 12px; border-radius: 2px;
}
.selva-blog-card__readtime {
  position: absolute; bottom: 12px; right: 12px; z-index: 2;
  font-family: var(--font-display-sc);
  font-size: 8px; letter-spacing: 0.12em;
  color: rgba(255,255,255,.88);
  background: rgba(15,13,11,.55);
  padding: 4px 10px; border-radius: 2px;
  backdrop-filter: blur(4px);
}

.selva-blog-card__body {
  padding: 24px 24px 0;
  flex: 1;
  display: flex; flex-direction: column; gap: 10px;
}
.selva-blog-card__title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.1rem, 2vw, 1.4rem) !important;
  font-weight: 400 !important;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0 !important;
}
.selva-blog-card__title a {
  color: var(--color-text-primary);
  text-decoration: none;
  transition: color .2s ease;
}
.selva-blog-card__title a:hover { color: var(--color-accent-dark); }

.selva-blog-card__excerpt {
  font-family: var(--font-body) !important;
  font-size: 13.5px !important;
  line-height: 1.72 !important;
  color: var(--color-text-muted) !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0 !important;
}

.selva-blog-card__footer {
  padding: 16px 24px 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  border-top: 1px solid var(--color-border-light);
  margin-top: 16px;
}
.selva-blog-card__meta {
  display: flex; align-items: center; gap: 10px; min-width: 0;
}
.selva-blog-card__avatar {
  border-radius: 50%;
  width: 30px !important; height: 30px !important;
  object-fit: cover; flex-shrink: 0;
}
.selva-blog-card__meta > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.selva-blog-card__author {
  font-family: var(--font-body);
  font-size: 11px; font-weight: 600;
  color: var(--color-text-primary);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.selva-blog-card__date {
  font-family: var(--font-body);
  font-size: 10px; color: var(--color-text-light);
}
.selva-blog-card__cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-display-sc);
  font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--color-accent-dark);
  text-decoration: none;
  white-space: nowrap; flex-shrink: 0;
  transition: color .2s ease, gap .2s ease;
}
.selva-blog-card__cta:hover { color: var(--color-accent); gap: 9px; }
.selva-blog-card__cta svg { transition: transform .2s ease; }
.selva-blog-card__cta:hover svg { transform: translateX(3px); }

/* Blog pagination */
.wp-pagenavi, .nav-links {
  display: flex; flex-wrap: wrap; gap: 8px;
  justify-content: center;
  margin-top: clamp(48px,6vw,80px);
}
.page-numbers, .nav-links .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 14px;
  border: 1.5px solid var(--color-border);
  border-radius: 2px;
  font-family: var(--font-display-sc); font-size: 10px; letter-spacing: 0.1em;
  color: var(--color-text-muted);
  text-decoration: none;
  transition: all .2s ease;
}
.page-numbers:hover, .nav-links .page-numbers:hover,
.page-numbers.current, .nav-links .page-numbers.current {
  background: var(--color-accent); border-color: var(--color-accent); color: #fff;
}

/* ══════════════════════════════════════════════════════════════════════
   PAGE HEADERS & SERVICES PAGE
   ══════════════════════════════════════════════════════════════════════ */
.selva-page-main { padding-bottom: var(--section-pad); }
.selva-page-header {
  padding: clamp(48px,8vw,112px) 0 clamp(32px,4vw,56px);
  border-bottom: 1px solid var(--color-border);
  margin-bottom: clamp(40px,6vw,80px);
}
.selva-page-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.5rem, 6vw, 5rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: var(--color-text-primary) !important;
  margin-bottom: 16px !important;
}
.selva-services-intro {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-text-muted);
  max-width: 640px;
  font-style: italic;
}
.selva-services-intro p:first-of-type::first-letter {
  font-family: var(--font-display);
  font-size: 3.5em;
  float: left;
  line-height: .8;
  margin: 0.04em 0.12em 0 0;
  color: var(--color-accent);
  font-weight: 300;
}

/* Filter tabs */
.selva-filter-tabs {
  display: flex; justify-content: center; gap: 6px; flex-wrap: wrap;
  margin-bottom: clamp(36px,5vw,64px);
}
.selva-filter-tabs__btn {
  background: transparent;
  border: 1px solid var(--color-border);
  color: var(--color-text-muted);
  padding: 9px 22px;
  font-family: var(--font-display-sc) !important;
  font-size: 9px; font-weight: 400; letter-spacing: 0.2em; text-transform: uppercase;
  cursor: pointer; border-radius: 2px;
  transition: all .25s ease;
}
.selva-filter-tabs__btn:hover,
.selva-filter-tabs__btn.is-active {
  background: var(--color-text-primary);
  border-color: var(--color-text-primary);
  color: var(--color-bg-card);
}

/* Section CTA */
.selva-section-cta { text-align: center; margin-top: clamp(40px,5vw,72px); }

/* Admin banner */
.selva-admin-banner {
  display: flex; align-items: flex-start; gap: 14px;
  background: var(--color-accent-pale);
  border: 1px solid rgba(184,150,90,.3);
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 32px;
  font-family: var(--font-body); font-size: 13px;
  color: var(--color-text-muted);
}
.selva-admin-banner__link {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--color-accent-dark); font-weight: 600; text-decoration: none;
  margin-left: 8px;
  transition: color .2s ease;
}
.selva-admin-banner__link:hover { color: var(--color-accent); }

/* ══════════════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════════════ */
.selva-footer {
  background: var(--color-bg-dark) !important;
  color: rgba(242,237,229,.6) !important;
}
.selva-footer__main {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: 48px;
  padding: 72px 0 56px;
}
@media (max-width: 1023px) {
  .selva-footer__main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .selva-footer__main { grid-template-columns: 1fr; gap: 32px; }
}
.selva-footer__logo-text {
  font-family: var(--font-display) !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  color: rgba(242,237,229,.9) !important;
  letter-spacing: 0.04em;
}
.selva-footer__tagline {
  font-family: var(--font-body);
  font-size: 13px; line-height: 1.75;
  color: rgba(242,237,229,.45);
  margin-top: 12px;
}

/* ══════════════════════════════════════════════════════════════════════
   WHATSAPP FAB
   ══════════════════════════════════════════════════════════════════════ */
.selva-whatsapp-fab {
  position: fixed; bottom: 28px; right: 28px;
  width: 52px; height: 52px;
  background: #25D366;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  z-index: 999;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease;
  text-decoration: none;
}
.selva-whatsapp-fab:hover {
  transform: scale(1.12);
  box-shadow: 0 8px 32px rgba(37,211,102,.5);
}
.selva-whatsapp-fab svg { width: 24px; height: 24px; fill: #fff; }

/* ══════════════════════════════════════════════════════════════════════
   EMPTY STATES
   ══════════════════════════════════════════════════════════════════════ */
.selva-no-results {
  font-family: var(--font-display);
  font-size: 1.2rem; font-style: italic;
  color: var(--color-text-muted);
  text-align: center;
  padding: 60px 0;
}

/* ══════════════════════════════════════════════════════════════════════
   PROSE / CONTENT
   ══════════════════════════════════════════════════════════════════════ */
.prose h1, .prose h2, .prose h3, .prose h4 {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
}
.selva-page-body p:empty { display: none; }

/* ══════════════════════════════════════════════════════════════════════
   REDUCED MOTION
   ══════════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .selva-svc-card, .selva-blog-card, .selva-team-card, .selva-testimonial-card { transition: none !important; }
  .selva-svc-card:hover, .selva-blog-card:hover, .selva-team-card:hover { transform: none !important; }
}

/* ══════════════════════════════════════════════════════════════════════
   SERVICES PAGE HERO
   ══════════════════════════════════════════════════════════════════════ */
.selva-services-hero {
  background: var(--color-bg-secondary);
  padding: clamp(72px,10vw,130px) 0 clamp(48px,6vw,80px);
  border-bottom: 1px solid var(--color-border);
  position: relative;
  overflow: hidden;
}
.selva-services-hero::before {
  content: 'Servicios';
  position: absolute;
  bottom: -20px; right: 0;
  font-family: var(--font-display);
  font-size: clamp(80px, 15vw, 200px);
  font-weight: 700;
  line-height: 1;
  color: var(--color-accent);
  opacity: .04;
  pointer-events: none;
  letter-spacing: -0.04em;
  white-space: nowrap;
}
.selva-services-hero__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.selva-services-hero__text { max-width: 680px; }

.selva-services-grid-section {
  padding: clamp(64px,8vw,112px) 0;
  background: var(--color-bg-primary);
}

/* Blog pagination wrapper */
.selva-blog-pagination { margin-top: clamp(48px,6vw,80px); }
.selva-blog-pagination .nav-links { justify-content: center; }

/* ══════════════════════════════════════════════════════════════════════
   SINGLE POST
   ══════════════════════════════════════════════════════════════════════ */
.single .site-main { padding-bottom: var(--section-pad); }
.selva-single-header {
  padding: clamp(48px,8vw,100px) 0 clamp(32px,4vw,56px);
  border-bottom: 1px solid var(--color-border);
  margin-bottom: clamp(32px,4vw,56px);
  max-width: 780px;
}
.selva-single-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem,5vw,4rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin: 0 0 24px !important;
}

/* ══════════════════════════════════════════════════════════════════════
   MIKELE LOGO SYSTEM
   Smart dual-mode logo: shows dark version on light bg, white on dark bg
   ══════════════════════════════════════════════════════════════════════ */

/* Base logo container */
.mikele-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  position: relative;
  flex-shrink: 0;
}

.mikele-logo img {
  display: block;
  width: auto;
  height: 46px;       /* Consistent header height */
  max-width: none;
  object-fit: contain;
  transition: opacity .3s ease;
}

/* ── Header V2 (solid light header — default) ── */
/* Show dark logo, hide white logo */
.selva-header--v2 .mikele-logo__white,
.selva-header.is-scrolled:not(.selva-header--transparent) .mikele-logo__white {
  display: none;
}
.selva-header--v2 .mikele-logo__dark,
.selva-header.is-scrolled:not(.selva-header--transparent) .mikele-logo__dark {
  display: block;
}

/* ── Header V1 (transparent over hero — show white logo) ── */
.selva-header--v1 .mikele-logo__white,
.selva-header--transparent .mikele-logo__white {
  display: block;
}
.selva-header--v1 .mikele-logo__dark,
.selva-header--transparent .mikele-logo__dark {
  display: none;
}

/* When V1 header is scrolled (solid) — switch to dark logo */
.selva-header--v1.is-scrolled .mikele-logo__white {
  display: none;
}
.selva-header--v1.is-scrolled .mikele-logo__dark {
  display: block;
}

/* ── Header V3 (centred — same as V2 solid) ── */
.selva-header--v3 .mikele-logo__white { display: none; }
.selva-header--v3 .mikele-logo__dark  { display: block; }

/* ── Dark skin: always use white logo ── */
.skin-dark .mikele-logo__white { display: block  !important; }
.skin-dark .mikele-logo__dark  { display: none   !important; }

/* ── Hero logo lockup ── */
.mikele-hero__logo-lockup {
  margin-bottom: 28px;
}
.mikele-hero__logo-img {
  width: auto;
  height: clamp(70px, 10vw, 130px);
  max-width: 340px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 2px 20px rgba(0,0,0,.3));
}

/* ── Footer logo ── */
.mikele-logo__footer {
  display: block;
  width: auto;
  height: 56px;
  object-fit: contain;
  opacity: 0.9;
  margin-bottom: 16px;
  transition: opacity .2s ease;
}
.mikele-logo__footer:hover { opacity: 1; }
.selva-footer__logo a.mikele-logo { display: inline-block; }

/* ── Hero default background ── */
.mikele-hero__default-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.mikele-hero__default-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(15,13,11,.15) 0%,
    rgba(15,13,11,.35) 40%,
    rgba(15,13,11,.72) 100%
  );
}

/* Remove hero__title when we're using logo lockup */
.mikele-hero .hero__title { display: none; }

/* ── Nav hamburger on white (transparent header) ── */
.selva-header--transparent .selva-nav__toggle span,
.selva-header--v1:not(.is-scrolled) .selva-nav__toggle span {
  background: rgba(255,255,255,.9) !important;
}

/* ── Hover glow on logo ── */
.mikele-logo:hover img {
  opacity: 0.85;
}

/* ══════════════════════════════════════════════════════════════════════
   HEADER V1 TRANSPARENT — Nav link colours on hero
   ══════════════════════════════════════════════════════════════════════
   FIX v10: White nav links work over dark hero images. To guarantee
   readability even when no hero image is loaded (Elementor editor,
   admin preview, fast page load), the header background transitions
   from a subtle dark vignette to fully transparent so white text is
   always legible. The gradient is visually imperceptible over a hero
   image but prevents "invisible white text on white background" in
   the editor and admin panel.
   ══════════════════════════════════════════════════════════════════════ */

/* ── PERMANENTLY SOLID BLACK — no gradient, no animation on any page ── */
/* v13 FIX: removed gradient/transparent behaviour. Header is always #0E0C0A. */
.selva-header--v1:not(.is-scrolled),
.selva-header--transparent:not(.is-scrolled) {
  background: #0E0C0A !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-bottom-color: rgba(197,160,89,.18) !important;
  box-shadow: none !important;
}

/* ── Nav link colours: white on solid dark bar ── */
.selva-header--v1:not(.is-scrolled) .selva-nav__menu a,
.selva-header--transparent:not(.is-scrolled) .selva-nav__menu a {
  color: rgba(245, 240, 232, 0.72) !important;
  text-shadow: none !important;
}
.selva-header--v1:not(.is-scrolled) .selva-nav__menu a:hover,
.selva-header--transparent:not(.is-scrolled) .selva-nav__menu a:hover {
  color: #F5F0E8 !important;
}

/* Book Now button: always accent-coloured */
.selva-header--v1:not(.is-scrolled) .selva-btn--cta {
  background: var(--color-accent) !important;
  color: #fff !important;
  border-color: var(--color-accent) !important;
}

/* ── Solid header when scrolled (override teal tint from overrides.css) ── */
.selva-header--v1.is-scrolled,
.selva-header--transparent.is-scrolled {
  background: rgba(14, 12, 10, 0.98) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-bottom-color: rgba(197,160,89,.18) !important;
}

/* ── Scrolled state: white nav links on dark background ── */
.selva-header--v1.is-scrolled .selva-nav__menu a,
.selva-header--transparent.is-scrolled .selva-nav__menu a {
  color: rgba(245, 240, 232, 0.72) !important;
  text-shadow: none !important;
}
.selva-header--v1.is-scrolled .selva-nav__menu a:hover,
.selva-header--transparent.is-scrolled .selva-nav__menu a:hover {
  color: #F5F0E8 !important;
}

/* ══ ELEMENTOR EDITOR OVERRIDE ════════════════════════════════════════
   When Elementor's editor or preview iframe is open, the body gains
   the class .elementor-editor-active (editor) or .elementor-page
   (front-end preview). In both cases, force a solid, light header so
   the admin can clearly see navigation items and the page structure.
   ══════════════════════════════════════════════════════════════════════ */
body.elementor-editor-active .selva-header--v1,
body.elementor-editor-active .selva-header--transparent,
body.elementor-page-edit .selva-header--v1,
body.elementor-page-edit .selva-header--transparent {
  background: rgba(14, 12, 10, 0.96) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-bottom-color: rgba(197,160,89,.18) !important;
}
body.elementor-editor-active .selva-header--v1 .selva-nav__menu a,
body.elementor-editor-active .selva-header--transparent .selva-nav__menu a,
body.elementor-page-edit .selva-header--v1 .selva-nav__menu a,
body.elementor-page-edit .selva-header--transparent .selva-nav__menu a {
  color: rgba(245, 240, 232, 0.72) !important;
  text-shadow: none !important;
}


/* ══════════════════════════════════════════════════════════════════════
   CHAMPAGNE CREAM LUXURY PALETTE — v14 Master Override
   Design Brief: Champagne Cream body · Muted Sand sections · Antiqued Gold accents
   Primary Body:   #F4EFE6  |  Secondary: #EFE9DF  |  Accent: #C5A059  |  Text: #1A1A1A
   ══════════════════════════════════════════════════════════════════════ */

/* ── Re-declare all tokens with Champagne Cream palette ─────────────── */
:root,
html.skin-light,
html:not(.skin-dark) {
  --color-bg-primary:    #F4EFE6 !important;
  --color-bg-secondary:  #EFE9DF !important;
  --color-bg-card:       #FDFAF5 !important;
  --color-text-primary:  #1A1A1A !important;
  --color-text-muted:    #5C5851 !important;
  --color-text-light:    #8A8278 !important;
  --color-border:        #DDD5C8 !important;
  --color-border-light:  #E8E0D4 !important;
  --color-accent:        #C5A059 !important;
  --color-accent-hover:  #D4B576 !important;
  --color-accent-dark:   #A8863E !important;
  --color-accent-pale:   #F5EBD6 !important;
  --color-accent-tint:   rgba(197,160,89,.1) !important;
  --color-cta:           #C5A059 !important;
  --color-cta-hover:     #A8863E !important;
  --color-cta-text:      #FFFFFF !important;
}

/* ── Body & global background ──────────────────────────────────────── */
body {
  background-color: #F4EFE6 !important;
  color: #1A1A1A !important;
}

/* ── Sections that use bg-secondary ────────────────────────────────── */
.selva-services-section,
.selva-cta-ribbon,
.selva-services-hero,
section:nth-child(even):not(.selva-testimonials-section):not(.selva-stats-bar) {
  background-color: #EFE9DF;
}

/* ── Cards: warm paper-white ────────────────────────────────────────── */
.selva-svc-card,
.selva-blog-card,
.card,
.selva-testimonial-card--light {
  background: #FDFAF5 !important;
}

/* ── Header nav sub-menus & dropdowns ───────────────────────────────── */
.selva-nav__sub,
.sub-menu {
  background: #FDFAF5 !important;
  border-color: #DDD5C8 !important;
}

/* ── Page content areas ─────────────────────────────────────────────── */
.selva-page-main,
.site-main,
.selva-main {
  background: #F4EFE6;
}

/* ── Input fields ───────────────────────────────────────────────────── */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
textarea,
select {
  background: #FDFAF5 !important;
  border-color: #DDD5C8 !important;
  color: #1A1A1A !important;
}
input:focus,
textarea:focus,
select:focus {
  border-color: #C5A059 !important;
  box-shadow: 0 0 0 3px rgba(197,160,89,.18) !important;
}

/* ── All CTA / primary buttons: Antiqued Gold ───────────────────────── */
.selva-btn--cta,
.btn--primary,
.selva-cta-ribbon__btn-book,
.selva-nav__actions .selva-btn,
.selva-header .selva-btn--cta,
.wp-block-button__link,
input[type="submit"],
button[type="submit"] {
  background: #C5A059 !important;
  border-color: #C5A059 !important;
  color: #FFFFFF !important;
}
.selva-btn--cta:hover,
.btn--primary:hover,
.selva-cta-ribbon__btn-book:hover,
.selva-nav__actions .selva-btn:hover,
.selva-header .selva-btn--cta:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  background: #A8863E !important;
  border-color: #A8863E !important;
  box-shadow: 0 8px 28px rgba(197,160,89,.38) !important;
  transform: translateY(-2px);
}

/* ── Accent underline on nav active item ────────────────────────────── */
.selva-nav__menu .current-menu-item > a::after,
.selva-nav__menu .current_page_item > a::after {
  background: #C5A059 !important;
}

/* ── Gold ornament lines & dividers ─────────────────────────────────── */
.selva-ornament-line,
.selva-section-ornament {
  background: #C5A059 !important;
}

/* ── Focus ring ──────────────────────────────────────────────────────── */
:focus-visible {
  outline-color: #C5A059 !important;
}

/* ── Scrollbar (Webkit) — warm tone ─────────────────────────────────── */
::-webkit-scrollbar { width: 8px; background: #EFE9DF; }
::-webkit-scrollbar-thumb { background: #DDD5C8; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #C5A059; }

/* ── Selection colour ────────────────────────────────────────────────── */
::selection { background: rgba(197,160,89,.22); color: #1A1A1A; }
::-moz-selection { background: rgba(197,160,89,.22); color: #1A1A1A; }


/* ══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE PRODUCT GRID — 3-column matrix (shop 3×3, homepage 3×2)
   Remediation 2026-03-20: fixes broken single-column layout regression
   ══════════════════════════════════════════════════════════════════════════ */

/* Force CSS grid on all WooCommerce product loops */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 40px !important;
  float: none !important;
  clear: both !important;
}
/* Column-count variants */
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr) !important; }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr) !important; }
/* Elementor widget container inherits correctly */
.elementor-widget-shortcode .woocommerce ul.products,
.elementor-widget-shortcode .woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
}
/* Responsive breakpoints */
@media (max-width: 900px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 520px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: 1fr !important; }
}

/* ── Product Card Styling ── */
.woocommerce ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  background: var(--color-bg-card);
  border: 1px solid var(--color-border-light);
  border-radius: 14px;
  overflow: hidden;
  transition: transform 0.38s cubic-bezier(.25,.46,.45,.94),
              box-shadow 0.38s cubic-bezier(.25,.46,.45,.94);
  opacity: 0;
  transform: translateY(24px) scale(0.97);
}
/* Entrance animation — staggered via nth-child */
.woocommerce ul.products li.product.selva-visible {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
}
/* Fallback for browsers without IntersectionObserver */
@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product { opacity: 1 !important; transform: none !important; }
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-9px) scale(1) !important;
  box-shadow: 0 20px 50px rgba(0,0,0,.13) !important;
}

/* Product image container */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a img {
  display: block;
  width: 100%;
}
.woocommerce ul.products li.product a img {
  height: 220px;
  object-fit: cover;
  transition: transform 0.55s cubic-bezier(.25,.46,.45,.94);
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.06); }

/* Product title — Raleway uppercase, NOT the giant display serif */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--font-display-sc) !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--color-text-primary) !important;
  padding: 14px 16px 4px !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
}
.woocommerce ul.products li.product a:hover h2,
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
  color: var(--color-accent) !important;
}

/* Product price */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price span {
  font-family: var(--font-body) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--color-accent) !important;
  display: block;
  padding: 2px 16px 8px !important;
}

/* Add to cart button */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
  background: var(--color-accent) !important;
  color: #1A1A1A !important;
  font-family: var(--font-display-sc) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  border-radius: 3px !important;
  border: none !important;
  transition: background 0.3s ease, transform 0.25s ease !important;
  display: block !important;
  margin: 6px 16px 16px !important;
  padding: 10px 20px !important;
  text-align: center !important;
  cursor: pointer !important;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover {
  background: var(--color-accent-dark) !important;
  transform: translateY(-2px) !important;
}

/* "New" / "Sale" badge */
.woocommerce span.onsale {
  background: var(--color-accent) !important;
  color: #1A1A1A !important;
  font-family: var(--font-display-sc) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  border-radius: 2px !important;
  padding: 4px 10px !important;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1 !important;
}

/* Shop page result count & ordering controls */
.woocommerce-result-count,
.woocommerce-ordering select {
  font-family: var(--font-body) !important;
  font-size: 0.82rem !important;
  color: var(--color-text-muted) !important;
}
.woocommerce-ordering select {
  border: 1px solid var(--color-border) !important;
  border-radius: 4px !important;
  padding: 6px 12px !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   DARK SECTION NORMALIZATION
   Testimonials (b92d0fc) + Nuestro Impacto (7bec174) → black profile
   matching 'Reserve Su Cita Hoy' (24bed5b) design standard
   ══════════════════════════════════════════════════════════════════════════ */

/* Override inline Elementor heading colours for dark-bg sections */
.elementor-element-b92d0fc .elementor-heading-title,
.elementor-element-7bec174 .elementor-heading-title {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Paragraph and span text */
.elementor-element-b92d0fc p,
.elementor-element-b92d0fc span:not(.elementor-divider-separator),
.elementor-element-b92d0fc div:not(.elementor-divider),
.elementor-element-7bec174 p,
.elementor-element-7bec174 span:not(.elementor-divider-separator),
.elementor-element-7bec174 div:not(.elementor-divider) {
  color: rgba(255, 255, 255, 0.88) !important;
}

/* Gold shimmer override on dark bg */
.elementor-element-b92d0fc .selva-gold-text,
.elementor-element-7bec174 .selva-gold-text {
  background: linear-gradient(90deg, #FFD700 0%, #C9A84C 50%, #FFD700 100%) !important;
  background-size: 300px auto !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* Gold dividers stay gold on dark bg */
.elementor-element-b92d0fc .elementor-divider-separator,
.elementor-element-7bec174 .elementor-divider-separator {
  border-color: var(--color-accent) !important;
}

/* ================================================================
   SELVA CATALOG CARDS  v3.0 — Glassmorphism Luxury Edition
   Used by: [selva_catalog] shortcode + bespoke shop page HTML
   ================================================================ */
.selva-catalog {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
@media (max-width: 1024px) { .selva-catalog { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (max-width: 600px)  { .selva-catalog { grid-template-columns: 1fr; gap: 20px; } }

/* ── Card Shell ── */
.selva-prod-card {
  position: relative;
  background: rgba(255,255,255,0.93);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  border-radius: 20px;
  border: 1px solid rgba(201,168,76,0.18);
  overflow: hidden;
  box-shadow:
    0 2px 12px rgba(13,31,13,0.06),
    0 8px 32px rgba(13,31,13,0.08),
    inset 0 1px 0 rgba(255,255,255,0.7);
  transition:
    transform 0.38s cubic-bezier(0.22,1,0.36,1),
    box-shadow 0.38s cubic-bezier(0.22,1,0.36,1),
    border-color 0.38s ease;
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.selva-prod-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(201,168,76,0.08) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.38s ease;
  pointer-events: none;
  z-index: 1;
  border-radius: 20px;
}
.selva-prod-card:hover {
  transform: translateY(-10px) scale(1.012);
  border-color: rgba(201,168,76,0.62);
  box-shadow:
    0 4px 16px rgba(13,31,13,0.06),
    0 24px 64px rgba(13,31,13,0.15),
    0 0 0 1px rgba(201,168,76,0.28),
    inset 0 1px 0 rgba(255,255,255,0.9);
}
.selva-prod-card:hover::before { opacity: 1; }

/* ── Image Block ── */
.spc-img {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: linear-gradient(160deg, #f4efe6 0%, #e8dfc8 100%);
  flex-shrink: 0;
}
.spc-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 55%,
    rgba(13,31,13,0.45) 100%
  );
  opacity: 0;
  transition: opacity 0.42s ease;
}
.selva-prod-card:hover .spc-img::after { opacity: 1; }
.spc-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.56s cubic-bezier(0.22,1,0.36,1);
  display: block;
  will-change: transform;
}
.selva-prod-card:hover .spc-img img { transform: scale(1.08); }

/* Gold shimmer badge on hover */
.spc-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  background: rgba(201,168,76,0.92);
  color: #0d1f0d;
  font-family: 'Raleway', sans-serif;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 2px;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.3s ease 0.06s, transform 0.3s ease 0.06s;
}
.selva-prod-card:hover .spc-badge { opacity: 1; transform: translateY(0); }

/* ── Body ── */
.spc-body {
  padding: 22px 22px 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
}

/* Gold separator line above body */
.spc-body::before {
  content: '';
  display: block;
  width: 36px;
  height: 2px;
  background: linear-gradient(90deg, #C9A84C, rgba(201,168,76,0.2));
  margin-bottom: 14px;
  transition: width 0.38s cubic-bezier(0.22,1,0.36,1);
}
.selva-prod-card:hover .spc-body::before { width: 72px; }

.spc-name {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  text-transform: none;
  color: #0d1f0d !important;
  margin: 0 0 8px !important;
  line-height: 1.35;
}
.spc-desc {
  font-family: 'Raleway', sans-serif;
  font-size: 0.78rem;
  font-weight: 400;
  color: #6b7280;
  line-height: 1.65;
  margin: 0 0 14px;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.spc-price {
  font-family: 'Playfair Display', serif;
  font-size: 1.55rem;
  font-weight: 700;
  color: #C9A84C;
  letter-spacing: -0.02em;
  margin: 0 0 18px;
  line-height: 1;
}
.spc-price-label {
  display: block;
  font-family: 'Raleway', sans-serif;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #9ca3af;
  margin-bottom: 3px;
}

/* ── Dual Action Interface ── */
.spc-actions {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-top: auto;
}
.spc-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-family: 'Raleway', sans-serif;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 13px 10px;
  border-radius: 8px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition:
    background 0.22s ease,
    transform 0.22s ease,
    box-shadow 0.22s ease;
  width: 100%;
  outline: none;
}
/* WhatsApp — primary action */
.spc-wa {
  background: linear-gradient(135deg, #25D366 0%, #1da851 100%) !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 18px rgba(37,211,102,0.32);
}
.spc-wa:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(37,211,102,0.45) !important;
}
.spc-wa:active { transform: translateY(0); }

/* Learn More — secondary action */
.spc-learn {
  background: transparent !important;
  color: #0d1f0d !important;
  border: 1.5px solid rgba(201,168,76,0.5) !important;
  box-shadow: none;
}
.spc-learn:hover {
  background: rgba(201,168,76,0.08) !important;
  border-color: #C9A84C !important;
  transform: translateY(-1px);
}
.spc-learn:active { transform: translateY(0); }

/* WhatsApp icon SVG inline */
.spc-wa-icon {
  width: 14px; height: 14px;
  fill: currentColor;
  flex-shrink: 0;
}

/* ── Learn More Modal Overlay ── */
.selva-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(13,31,13,0.82);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.32s ease, visibility 0.32s ease;
}
.selva-modal-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}
.selva-modal {
  background: #fff;
  border-radius: 20px;
  max-width: 620px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  box-shadow:
    0 32px 96px rgba(0,0,0,0.28),
    0 0 0 1px rgba(201,168,76,0.22);
  transform: translateY(32px) scale(0.97);
  transition: transform 0.36s cubic-bezier(0.22,1,0.36,1);
}
.selva-modal-backdrop.is-open .selva-modal {
  transform: translateY(0) scale(1);
}
.selva-modal__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  border-radius: 20px 20px 0 0;
}
.selva-modal__body {
  padding: 32px 36px 36px;
}
.selva-modal__label {
  font-family: 'Raleway', sans-serif;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #C9A84C;
  margin-bottom: 10px;
}
.selva-modal__name {
  font-family: 'Playfair Display', serif;
  font-size: 1.7rem;
  font-weight: 700;
  color: #0d1f0d;
  margin: 0 0 6px;
  line-height: 1.25;
}
.selva-modal__price {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  font-weight: 700;
  color: #C9A84C;
  margin: 0 0 20px;
  letter-spacing: -0.02em;
}
.selva-modal__divider {
  width: 48px; height: 2px;
  background: linear-gradient(90deg, #C9A84C, transparent);
  margin: 0 0 20px;
}
.selva-modal__desc {
  font-family: 'Raleway', sans-serif;
  font-size: 0.9rem;
  color: #4b5563;
  line-height: 1.75;
  margin: 0 0 28px;
}
.selva-modal__wa {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, #25D366 0%, #1da851 100%);
  color: #fff;
  font-family: 'Raleway', sans-serif;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 10px;
  text-decoration: none;
  box-shadow: 0 6px 24px rgba(37,211,102,0.35);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.selva-modal__wa:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(37,211,102,0.48);
}
.selva-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px; height: 36px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  line-height: 1;
  color: #0d1f0d;
  transition: background 0.2s, transform 0.2s;
  z-index: 5;
  padding: 0;
  outline: none;
}
.selva-modal__close:hover {
  background: #fff;
  transform: scale(1.1);
}
/* Scrollbar in modal */
.selva-modal::-webkit-scrollbar { width: 4px; }
.selva-modal::-webkit-scrollbar-track { background: transparent; }
.selva-modal::-webkit-scrollbar-thumb { background: rgba(201,168,76,0.4); border-radius: 4px; }

@media (max-width: 600px) {
  .selva-modal__body { padding: 24px 20px 28px; }
  .selva-modal__name { font-size: 1.4rem; }
  .selva-modal__price { font-size: 1.6rem; }
}

/* ================================================================
   CF7 LUXURY BOOKING FORM
   ================================================================ */
.selva-booking-form .wpcf7-form-control-wrap { display: block; width: 100%; }
.selva-booking-form input[type=text],
.selva-booking-form input[type=email],
.selva-booking-form input[type=tel],
.selva-booking-form input[type=date],
.selva-booking-form select,
.selva-booking-form textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 8px;
  font-family: 'Lato', sans-serif;
  font-size: 0.95rem;
  color: #1A1A1A;
  background: #FFFFFF;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
  -webkit-appearance: none;
}
.selva-booking-form input:focus,
.selva-booking-form select:focus,
.selva-booking-form textarea:focus {
  outline: none;
  border-color: #C9A84C;
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}
.selva-booking-form label {
  display: block;
  font-family: 'Raleway', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #888;
  margin: 20px 0 6px;
}
.selva-booking-form .selva-field-wrap { margin-bottom: 0; }
.selva-submit,
.selva-booking-form input[type=submit] {
  display: block;
  width: 100%;
  padding: 18px;
  margin-top: 28px;
  background: #C9A84C;
  color: #1A1A1A;
  border: none;
  border-radius: 8px;
  font-family: 'Raleway', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.25s, transform 0.2s;
}
.selva-submit:hover,
.selva-booking-form input[type=submit]:hover {
  background: #b8943e;
  transform: translateY(-2px);
}
/* ================================================================ */

/* ══════════════════════════════════════════════════════════════════════
   UNIFIED PAGE BANNER — same full-screen hero for ALL inner pages
   Replaces the old plain .selva-page-hero coloured bar.
   ══════════════════════════════════════════════════════════════════════ */

/* Shared banner wrapper — same structure as .hero--full.mikele-hero */
.selva-page-hero {
  min-height: 58vh !important;
  position: relative !important;
  display: flex !important;
  align-items: flex-end !important;
  overflow: hidden !important;
  background: #0d1f0d !important; /* dark fallback while image loads */
}

/* Background image layer */
.selva-page-hero__image-wrap {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
}
.selva-page-hero__image-wrap img,
.selva-page-hero__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* Dark gradient overlay — same recipe as home hero */
.selva-page-hero__overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(
    to bottom,
    rgba(13,31,13,.18) 0%,
    rgba(13,31,13,.42) 45%,
    rgba(13,31,13,.80) 100%
  );
}

/* Content */
.selva-page-hero__content {
  position: relative !important;
  z-index: 2 !important;
  padding: 80px 0 64px;
  width: 100%;
}

/* Eyebrow — gold caps */
.selva-page-hero__eyebrow {
  font-family: var(--font-display-sc, 'Cinzel', Georgia, serif) !important;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: var(--color-accent, #C9A84C);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.selva-page-hero__eyebrow::before,
.selva-page-hero__eyebrow::after {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  background: var(--color-accent, #C9A84C);
  opacity: .7;
}

/* Title — matches .hero__title */
.selva-page-hero__title {
  font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
  font-size: clamp(2.8rem, 6vw, 5.5rem) !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em;
  line-height: 1.08;
  color: #fff !important;
  text-shadow: 0 4px 40px rgba(0,0,0,.3);
  margin: 0 0 20px;
}

/* Subtitle */
.selva-page-hero__sub {
  font-family: var(--font-body, 'Raleway', sans-serif) !important;
  font-size: clamp(0.95rem, 1.8vw, 1.1rem);
  color: rgba(255,255,255,.72);
  line-height: 1.8;
  max-width: 480px;
  margin: 0;
}

/* Scroll indicator (optional) */
.selva-page-hero__scroll {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.selva-page-hero__scroll-line {
  display: block;
  width: 1px;
  height: 40px;
  background: rgba(201,168,76,.5);
  animation: selvaScrollPulse 2s ease-in-out infinite;
}
@keyframes selvaScrollPulse {
  0%,100% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.3); }
}

/* Responsive */
@media (max-width: 767px) {
  .selva-page-hero { min-height: 46vh !important; }
  .selva-page-hero__content { padding: 60px 0 48px; }
  .selva-page-hero__title { font-size: clamp(2rem, 8vw, 3rem) !important; }
}

/* ================================================================
   WOOCOMMERCE DEFAULT LOOP — luxury override
   Applies wherever [products], [recent_products], or WooCommerce
   archives render with the default ul.products grid template.
   ================================================================ */

ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
@media (max-width: 1024px) { ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 24px !important; } }
@media (max-width: 600px)  { ul.products { grid-template-columns: 1fr !important; gap: 20px !important; } }

/* Card shell — mirrors .selva-prod-card */
ul.products li.product {
  position: relative !important;
  background: rgba(255,255,255,0.93) !important;
  backdrop-filter: blur(18px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.4) !important;
  border-radius: 20px !important;
  border: 1px solid rgba(201,168,76,0.18) !important;
  overflow: hidden !important;
  box-shadow:
    0 2px 12px rgba(13,31,13,0.06),
    0 8px 32px rgba(13,31,13,0.08),
    inset 0 1px 0 rgba(255,255,255,0.7) !important;
  transition:
    transform 0.38s cubic-bezier(0.22,1,0.36,1),
    box-shadow 0.38s cubic-bezier(0.22,1,0.36,1),
    border-color 0.38s ease !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
  width: auto !important;
}
ul.products li.product:hover {
  transform: translateY(-10px) scale(1.012) !important;
  border-color: rgba(201,168,76,0.62) !important;
  box-shadow:
    0 4px 16px rgba(13,31,13,0.06),
    0 24px 64px rgba(13,31,13,0.15),
    0 0 0 1px rgba(201,168,76,0.28),
    inset 0 1px 0 rgba(255,255,255,0.9) !important;
}

/* Product image */
ul.products li.product a img,
ul.products li.product .woocommerce-loop-product__link img {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 20px 20px 0 0 !important;
  margin: 0 !important;
  transition: transform 0.56s cubic-bezier(0.22,1,0.36,1) !important;
}
ul.products li.product:hover a img { transform: scale(1.06) !important; }

/* Remove WooCommerce "New" / "Sale" / onsale badges */
ul.products li.product .onsale,
ul.products li.product .woocommerce-badge { display: none !important; }

/* Product title */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2 {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  color: #0d1f0d !important;
  margin: 18px 22px 6px !important;
  padding: 0 !important;
  line-height: 1.35 !important;
}
ul.products li.product h2::before {
  content: '';
  display: block;
  width: 36px;
  height: 2px;
  background: linear-gradient(90deg, #C9A84C, rgba(201,168,76,0.2));
  margin-bottom: 12px;
}

/* Price */
ul.products li.product .price {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  color: #C9A84C !important;
  letter-spacing: -0.02em !important;
  margin: 0 22px 18px !important;
  padding: 0 !important;
  display: block !important;
}
ul.products li.product .price del {
  color: #9ca3af !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  margin-right: 6px !important;
}
ul.products li.product .price ins {
  text-decoration: none !important;
}

/* Hide star ratings in product loop */
ul.products li.product .star-rating { display: none !important; }

/* "Add to Cart" / "View" / "Read More" button — styled as luxury ghost button */
ul.products li.product .button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 13px 10px !important;
  border-radius: 8px !important;
  margin: auto 22px 22px !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease !important;
  width: calc(100% - 44px) !important;
  background: transparent !important;
  color: #0d1f0d !important;
  border: 1.5px solid rgba(201,168,76,0.5) !important;
  box-shadow: none !important;
}
ul.products li.product .button:hover {
  background: rgba(201,168,76,0.08) !important;
  border-color: #C9A84C !important;
  transform: translateY(-1px) !important;
  color: #0d1f0d !important;
}

/* Homepage product showcase section */
.selva-home-products {
  background: #F4EFE6;
  padding: 96px 0 88px;
}
.selva-home-products__header {
  text-align: center;
  margin-bottom: 56px;
}
.selva-home-products__eyebrow {
  font-family: 'Raleway', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #C9A84C;
  margin: 0 0 14px;
}
.selva-home-products__title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: #0d1f0d;
  margin: 0 0 16px;
  line-height: 1.15;
}
.selva-home-products__subtitle {
  font-family: 'Raleway', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  color: #6b7280;
  max-width: 540px;
  margin: 0 auto 0;
  line-height: 1.7;
}
.selva-home-products__cta {
  text-align: center;
  margin-top: 52px;
}
