/*
Theme Name: Belleza Árabe
Theme URI: https://bellezaarabe.com
Author: Belleza Árabe Nails Salon & Spa
Author URI: https://bellezaarabe.com
Description: Tema premium para Belleza Árabe Nails Salon & Spa. Diseño moderno, elegante y completamente personalizable desde el Personalizador de WordPress. Incluye secciones de servicios, tienda WhatsApp, tips de salud y belleza, galería, mapa y más.
Version: 2.0.0
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: belleza-arabe
Tags: beauty, spa, salon, one-page, customizable, responsive, luxury, elegant
*/

/* ============================================================
   BELLEZA ÁRABE — ESTILOS PRINCIPALES
   Todos los colores y fuentes se controlan desde el Personalizador
   ============================================================ */

/* ---------- Variables CSS (editables desde Customizer) ---------- */
:root {
  --ba-primary:       #C9A96E;
  --ba-primary-light: #E8D5A3;
  --ba-primary-dark:  #8B6914;
  --ba-dark:          #1A1209;
  --ba-dark-mid:      #2C1F0A;
  --ba-cream:         #FAF6EE;
  --ba-cream-dark:    #F0E8D5;
  --ba-accent:        #C4707A;
  --ba-accent-light:  #F2D5D8;
  --ba-green:         #4A6741;
  --ba-text:          #3A2A10;
  --ba-text-light:    #7A6040;
  --ba-white:         #FFFFFF;

  --ba-font-heading:  'Cinzel', serif;
  --ba-font-body:     'Cormorant Garamond', serif;
  --ba-font-ui:       'Lato', sans-serif;

  --ba-radius:        4px;
  --ba-shadow:        0 8px 40px rgba(0,0,0,0.12);
  --ba-shadow-gold:   0 4px 24px rgba(201,169,110,0.3);
  --ba-transition:    all 0.35s cubic-bezier(0.4,0,0.2,1);
}

/* ---------- Reset ---------- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: var(--ba-font-body);
  background: var(--ba-cream);
  color: var(--ba-text);
  overflow-x: hidden;
  line-height: 1.6;
}
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; }
ul, ol { list-style:none; }
button { cursor:pointer; border:none; background:none; }

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5,h6 { font-family:var(--ba-font-heading); line-height:1.1; }
p { font-family:var(--ba-font-body); }

/* ---------- Utility ---------- */
.container { max-width:1280px; margin:0 auto; padding:0 48px; }
@media(max-width:768px){ .container{ padding:0 20px; } }

.section-eyebrow {
  font-family:var(--ba-font-ui);
  font-size:11px;
  letter-spacing:5px;
  text-transform:uppercase;
  color:var(--ba-primary);
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
}
.section-eyebrow::before,
.section-eyebrow::after {
  content:'';
  flex:1;
  max-width:48px;
  height:1px;
  background:var(--ba-primary);
  opacity:0.5;
}
.section-title {
  font-size:clamp(30px,4vw,54px);
  color:var(--ba-dark);
  font-weight:600;
}
.section-title em { color:var(--ba-primary); font-style:italic; }
.section-subtitle {
  font-size:19px;
  color:var(--ba-text-light);
  font-style:italic;
  margin-top:14px;
}
.section-header { text-align:center; margin-bottom:64px; }
.section-header .section-eyebrow { justify-content:center; }

/* ---------- Buttons ---------- */
.ba-btn {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--ba-font-ui);
  font-size:12px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  font-weight:700;
  padding:15px 36px;
  transition:var(--ba-transition);
  border:none;
  cursor:pointer;
}
.ba-btn-primary {
  background:linear-gradient(135deg, var(--ba-primary), var(--ba-primary-dark));
  color:var(--ba-dark);
  box-shadow:var(--ba-shadow-gold);
}
.ba-btn-primary:hover { transform:translateY(-3px); box-shadow:0 12px 36px rgba(201,169,110,0.5); }
.ba-btn-outline {
  border:2px solid rgba(201,169,110,0.5);
  color:var(--ba-primary);
}
.ba-btn-outline:hover { background:rgba(201,169,110,0.1); border-color:var(--ba-primary); }
.ba-btn-dark {
  background:var(--ba-dark);
  color:var(--ba-primary);
}
.ba-btn-dark:hover { background:var(--ba-primary); color:var(--ba-dark); }
.ba-btn-wa {
  background:#25D366;
  color:#fff;
  box-shadow:0 4px 20px rgba(37,211,102,0.3);
}
.ba-btn-wa:hover { background:#1DA851; transform:translateY(-2px); }

/* ---------- Fade-in animation ---------- */
.ba-fade {
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.7s ease, transform 0.7s ease;
}
.ba-fade.visible { opacity:1; transform:translateY(0); }

/* ============================================================
   FLOATING BUTTONS
   ============================================================ */
#ba-float {
  position:fixed;
  bottom:28px;
  right:24px;
  z-index:9999;
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:flex-end;
}
.ba-float-btn {
  width:56px;
  height:56px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 20px rgba(0,0,0,0.25);
  transition:var(--ba-transition);
  font-size:22px;
  text-decoration:none;
  color:#fff;
  border:none;
  cursor:pointer;
}
.ba-float-btn:hover { transform:scale(1.12); }
.ba-float-wa  { background:#25D366; }
.ba-float-fb  { background:#1877F2; }
.ba-float-ig  { background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
.ba-float-help{ background:var(--ba-primary); color:var(--ba-dark); font-family:var(--ba-font-ui); font-size:14px; font-weight:900; }

/* ============================================================
   TOPBAR
   ============================================================ */
#ba-topbar {
  background:var(--ba-dark-mid);
  padding:8px 0;
  border-bottom:1px solid rgba(201,169,110,0.15);
}
.ba-topbar-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.ba-topbar-info {
  display:flex;
  gap:24px;
  font-family:var(--ba-font-ui);
  font-size:12px;
  color:rgba(255,255,255,0.6);
  letter-spacing:0.5px;
}
.ba-topbar-info a { color:rgba(255,255,255,0.6); transition:color 0.2s; }
.ba-topbar-info a:hover { color:var(--ba-primary); }
.ba-topbar-info span { display:flex; align-items:center; gap:6px; }
.ba-topbar-social { display:flex; gap:12px; }
.ba-topbar-social a {
  width:28px; height:28px;
  border:1px solid rgba(201,169,110,0.25);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,0.6);
  font-size:13px;
  transition:var(--ba-transition);
}
.ba-topbar-social a:hover { background:var(--ba-primary); color:var(--ba-dark); border-color:var(--ba-primary); }

/* ============================================================
   NAVIGATION
   ============================================================ */
#ba-nav {
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(26,18,9,0.97);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(201,169,110,0.15);
  transition:var(--ba-transition);
}
.ba-nav-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:72px;
}
.ba-logo {
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}
.ba-logo-img {
  width:48px;
  height:48px;
  object-fit:contain;
}
.ba-logo-placeholder {
  width:48px; height:48px;
  background:linear-gradient(135deg,var(--ba-primary),var(--ba-primary-dark));
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:22px;
}
.ba-logo-text { line-height:1.15; }
.ba-logo-name {
  font-family:var(--ba-font-heading);
  color:var(--ba-primary);
  font-size:20px;
  letter-spacing:1px;
  display:block;
}
.ba-logo-sub {
  font-family:var(--ba-font-ui);
  color:rgba(255,255,255,0.35);
  font-size:10px;
  letter-spacing:3.5px;
  text-transform:uppercase;
  display:block;
}
.ba-menu {
  display:flex;
  gap:2px;
}
.ba-menu li > a {
  font-family:var(--ba-font-ui);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.7);
  padding:10px 14px;
  transition:color 0.2s;
  display:block;
  position:relative;
}
.ba-menu li > a::after {
  content:'';
  position:absolute;
  bottom:4px; left:14px; right:14px;
  height:1px;
  background:var(--ba-primary);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.3s;
}
.ba-menu li > a:hover { color:var(--ba-primary); }
.ba-menu li > a:hover::after { transform:scaleX(1); }

.ba-nav-cta {
  display:flex;
  align-items:center;
  gap:12px;
}
.ba-hamburger {
  display:none;
  flex-direction:column;
  gap:5px;
  padding:8px;
}
.ba-hamburger span {
  display:block;
  width:24px; height:2px;
  background:var(--ba-primary);
  transition:var(--ba-transition);
}

@media(max-width:1024px){
  .ba-menu { display:none; }
  .ba-hamburger { display:flex; }
  .ba-nav-cta .ba-btn { display:none; }
}
.ba-mobile-menu {
  display:none;
  position:fixed;
  inset:0;
  background:var(--ba-dark);
  z-index:9998;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.ba-mobile-menu.open { display:flex; }
.ba-mobile-menu a {
  font-family:var(--ba-font-heading);
  font-size:28px;
  color:var(--ba-white);
  padding:12px 40px;
  transition:color 0.2s;
}
.ba-mobile-menu a:hover { color:var(--ba-primary); }
.ba-mobile-close {
  position:absolute;
  top:24px; right:28px;
  font-size:32px;
  color:var(--ba-primary);
  background:none; border:none; cursor:pointer;
}

/* ============================================================
   HERO
   ============================================================ */
#ba-hero {
  min-height:100vh;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.ba-hero-bg {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
}
.ba-hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    115deg,
    rgba(26,18,9,0.96) 0%,
    rgba(26,18,9,0.88) 45%,
    rgba(26,18,9,0.4) 100%
  );
}
/* Animated bokeh circles */
.ba-hero-bokeh {
  position:absolute; inset:0; overflow:hidden;
}
.ba-bokeh-item {
  position:absolute;
  border-radius:50%;
  background:radial-gradient(circle,rgba(201,169,110,0.15) 0%,transparent 70%);
  animation:bokehFloat 8s ease-in-out infinite;
}
.ba-bokeh-item:nth-child(1){ width:500px;height:500px; top:-100px;right:-50px; animation-delay:0s; }
.ba-bokeh-item:nth-child(2){ width:300px;height:300px; bottom:10%;left:10%; animation-delay:-3s; }
.ba-bokeh-item:nth-child(3){ width:200px;height:200px; top:30%;right:30%; animation-delay:-5s; }
@keyframes bokehFloat {
  0%,100%{ transform:translateY(0) scale(1); }
  50%{ transform:translateY(-30px) scale(1.05); }
}

.ba-hero-content {
  position:relative; z-index:2;
  padding:140px 0 100px;
  max-width:680px;
}
.ba-hero-eyebrow {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--ba-font-ui);
  font-size:11px;
  letter-spacing:5px;
  text-transform:uppercase;
  color:var(--ba-primary);
  margin-bottom:28px;
}
.ba-hero-eyebrow::before {
  content:'';
  width:40px; height:1px;
  background:var(--ba-primary);
}
.ba-hero-title {
  font-size:clamp(54px,8vw,96px);
  color:var(--ba-white);
  line-height:0.95;
  margin-bottom:12px;
  font-weight:600;
}
.ba-hero-title span {
  display:block;
  color:var(--ba-primary);
  font-style:italic;
}
.ba-hero-tagline {
  font-family:var(--ba-font-ui);
  font-size:11px;
  letter-spacing:5px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.35);
  margin-bottom:28px;
}
.ba-hero-desc {
  font-size:20px;
  color:rgba(255,255,255,0.7);
  line-height:1.75;
  margin-bottom:48px;
  font-style:italic;
  max-width:520px;
}
.ba-hero-buttons { display:flex; gap:16px; flex-wrap:wrap; }

/* Hero floating cards */
.ba-hero-cards {
  position:absolute;
  right:60px; top:50%;
  transform:translateY(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.ba-hero-card {
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(12px);
  border:1px solid rgba(201,169,110,0.2);
  padding:16px 22px;
  display:flex;
  align-items:center;
  gap:14px;
  min-width:230px;
  opacity:0;
  animation:slideInRight 0.7s ease forwards;
}
.ba-hero-card:nth-child(1){ animation-delay:0.4s; }
.ba-hero-card:nth-child(2){ animation-delay:0.6s; }
.ba-hero-card:nth-child(3){ animation-delay:0.8s; }
.ba-hero-card:nth-child(4){ animation-delay:1.0s; }
.ba-hero-card:nth-child(5){ animation-delay:1.2s; }
@keyframes slideInRight {
  from{ opacity:0; transform:translateX(24px); }
  to  { opacity:1; transform:translateX(0); }
}
.ba-hero-card-icon { font-size:26px; flex-shrink:0; }
.ba-hero-card-text { font-family:var(--ba-font-ui); font-size:12px; color:rgba(255,255,255,0.82); letter-spacing:0.5px; }
.ba-hero-card-badge {
  display:block;
  font-size:9px;
  letter-spacing:2px;
  color:var(--ba-primary);
  text-transform:uppercase;
  margin-top:2px;
}

/* Hero scroll indicator */
.ba-scroll-indicator {
  position:absolute;
  bottom:36px; left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}
.ba-scroll-line {
  width:1px; height:60px;
  background:linear-gradient(to bottom, transparent, var(--ba-primary));
  animation:scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%,100%{ opacity:0.4; transform:scaleY(1); }
  50%{ opacity:1; transform:scaleY(0.7); }
}
.ba-scroll-text {
  font-family:var(--ba-font-ui);
  font-size:9px;
  letter-spacing:4px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.3);
}

@media(max-width:1024px){
  .ba-hero-cards{ display:none; }
  .ba-hero-content{ max-width:100%; }
}

/* ============================================================
   STATS BAR
   ============================================================ */
#ba-stats {
  background:var(--ba-dark);
  padding:0;
  border-bottom:1px solid rgba(201,169,110,0.1);
}
.ba-stats-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.ba-stat-item {
  padding:32px 24px;
  text-align:center;
  border-right:1px solid rgba(201,169,110,0.1);
  position:relative;
  overflow:hidden;
}
.ba-stat-item:last-child{ border-right:none; }
.ba-stat-item::before {
  content:'';
  position:absolute;
  bottom:0; left:0; right:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--ba-primary),transparent);
  transform:scaleX(0);
  transition:transform 0.5s;
}
.ba-stat-item:hover::before{ transform:scaleX(1); }
.ba-stat-number {
  font-family:var(--ba-font-heading);
  font-size:42px;
  color:var(--ba-primary);
  display:block;
  line-height:1;
}
.ba-stat-label {
  font-family:var(--ba-font-ui);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.4);
  margin-top:6px;
  display:block;
}
@media(max-width:640px){
  .ba-stats-grid{ grid-template-columns:repeat(2,1fr); }
  .ba-stat-item:nth-child(2){ border-right:none; }
}

/* ============================================================
   SERVICES
   ============================================================ */
#ba-services { padding:110px 0; background:var(--ba-cream); }

.ba-services-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
@media(max-width:900px){ .ba-services-grid{ grid-template-columns:1fr; } }
@media(max-width:1200px) and (min-width:901px){ .ba-services-grid{ grid-template-columns:repeat(2,1fr); } }

.ba-service-card {
  background:var(--ba-white);
  border:1px solid rgba(201,169,110,0.12);
  overflow:hidden;
  transition:var(--ba-transition);
  position:relative;
}
.ba-service-card::after {
  content:'';
  position:absolute;
  inset:0;
  border:2px solid var(--ba-primary);
  opacity:0;
  transition:opacity 0.35s;
  pointer-events:none;
}
.ba-service-card:hover { transform:translateY(-10px); box-shadow:var(--ba-shadow-gold); }
.ba-service-card:hover::after{ opacity:1; }

.ba-service-visual {
  height:220px;
  position:relative;
  overflow:hidden;
  background:var(--ba-dark);
}
.ba-service-visual img {
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 0.6s;
  opacity:0.7;
}
.ba-service-card:hover .ba-service-visual img { transform:scale(1.08); opacity:0.85; }
.ba-service-visual-placeholder {
  width:100%; height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:72px;
  background:linear-gradient(135deg,var(--ba-dark-mid),var(--ba-dark));
}
.ba-service-badge {
  position:absolute;
  top:16px; left:16px;
  background:var(--ba-primary);
  color:var(--ba-dark);
  font-family:var(--ba-font-ui);
  font-size:9px;
  letter-spacing:2px;
  text-transform:uppercase;
  padding:5px 12px;
  font-weight:700;
}
.ba-service-price-tag {
  position:absolute;
  bottom:16px; right:16px;
  background:rgba(26,18,9,0.9);
  color:var(--ba-primary);
  font-family:var(--ba-font-heading);
  font-size:18px;
  padding:6px 14px;
  border:1px solid rgba(201,169,110,0.3);
}

.ba-service-body { padding:28px 32px 32px; }
.ba-service-name {
  font-family:var(--ba-font-heading);
  font-size:22px;
  color:var(--ba-dark);
  margin-bottom:10px;
}
.ba-service-desc {
  font-size:15px;
  color:var(--ba-text-light);
  line-height:1.7;
  font-style:italic;
  margin-bottom:20px;
}
.ba-service-features {
  margin-bottom:24px;
}
.ba-service-features li {
  font-family:var(--ba-font-ui);
  font-size:12px;
  color:var(--ba-text);
  padding:7px 0;
  border-bottom:1px solid rgba(0,0,0,0.05);
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:0.3px;
}
.ba-service-features li::before{
  content:'✦';
  color:var(--ba-primary);
  font-size:9px;
  flex-shrink:0;
}

/* ============================================================
   TIENDA / SHOP
   ============================================================ */
#ba-shop {
  padding:110px 0;
  background:var(--ba-dark);
  position:relative;
  overflow:hidden;
}
#ba-shop::before {
  content:'';
  position:absolute;
  top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,transparent,var(--ba-primary),transparent);
}
#ba-shop::after {
  content:'';
  position:absolute;
  bottom:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,transparent,var(--ba-primary),transparent);
}
#ba-shop .section-title { color:var(--ba-white); }
#ba-shop .section-subtitle{ color:rgba(255,255,255,0.45); }

.ba-shop-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
@media(max-width:1100px){ .ba-shop-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:540px){ .ba-shop-grid{ grid-template-columns:1fr; } }

.ba-product-card {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(201,169,110,0.12);
  overflow:hidden;
  transition:var(--ba-transition);
}
.ba-product-card:hover {
  border-color:var(--ba-primary);
  background:rgba(255,255,255,0.08);
  transform:translateY(-6px);
}
.ba-product-visual {
  height:180px;
  display:flex; align-items:center; justify-content:center;
  font-size:64px;
  background:linear-gradient(135deg,rgba(201,169,110,0.08),rgba(201,169,110,0.02));
  border-bottom:1px solid rgba(201,169,110,0.08);
  position:relative;
  overflow:hidden;
}
.ba-product-visual img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 0.5s;
}
.ba-product-card:hover .ba-product-visual img{ transform:scale(1.06); }
.ba-product-label {
  position:absolute;
  top:10px; left:10px;
  font-family:var(--ba-font-ui);
  font-size:9px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  padding:4px 10px;
  font-weight:700;
}
.ba-product-label.oferta{ background:var(--ba-accent); color:#fff; }
.ba-product-label.nuevo { background:var(--ba-primary); color:var(--ba-dark); }

.ba-product-body { padding:20px 22px 24px; }
.ba-product-name {
  font-family:var(--ba-font-heading);
  font-size:18px;
  color:var(--ba-white);
  margin-bottom:6px;
}
.ba-product-desc {
  font-family:var(--ba-font-ui);
  font-size:12px;
  color:rgba(255,255,255,0.45);
  line-height:1.6;
  margin-bottom:14px;
}
.ba-product-pricing {
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-bottom:16px;
}
.ba-product-price {
  font-family:var(--ba-font-heading);
  font-size:22px;
  color:var(--ba-primary);
}
.ba-product-old {
  font-family:var(--ba-font-ui);
  font-size:13px;
  color:rgba(255,255,255,0.25);
  text-decoration:line-through;
}

/* ============================================================
   TIPS SALUD
   ============================================================ */
#ba-salud { padding:110px 0; background:var(--ba-cream-dark); }

.ba-tips-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media(max-width:900px){ .ba-tips-grid{ grid-template-columns:1fr; } }
@media(max-width:1200px) and (min-width:901px){ .ba-tips-grid{ grid-template-columns:repeat(2,1fr); } }

.ba-tip-card {
  background:var(--ba-white);
  padding:38px 36px;
  border-top:3px solid var(--ba-primary);
  position:relative;
  box-shadow:0 2px 20px rgba(0,0,0,0.06);
  transition:var(--ba-transition);
  overflow:hidden;
}
.ba-tip-card:hover { transform:translateY(-6px); box-shadow:0 12px 40px rgba(0,0,0,0.1); }
.ba-tip-card.dark {
  background:var(--ba-dark);
  border-top-color:var(--ba-primary);
}
.ba-tip-num {
  position:absolute;
  top:12px; right:20px;
  font-family:var(--ba-font-heading);
  font-size:88px;
  line-height:1;
  color:rgba(201,169,110,0.08);
  font-weight:700;
}
.ba-tip-icon { font-size:36px; margin-bottom:18px; display:block; }
.ba-tip-title {
  font-family:var(--ba-font-heading);
  font-size:21px;
  margin-bottom:12px;
  color:var(--ba-dark);
}
.ba-tip-card.dark .ba-tip-title{ color:var(--ba-white); }
.ba-tip-text {
  font-size:15px;
  color:var(--ba-text-light);
  line-height:1.75;
  font-style:italic;
}
.ba-tip-card.dark .ba-tip-text{ color:rgba(255,255,255,0.55); }
.ba-tip-tag {
  display:inline-block;
  margin-top:20px;
  padding:5px 14px;
  font-family:var(--ba-font-ui);
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
}
.ba-tip-tag.rose{ background:var(--ba-accent-light); color:var(--ba-accent); }
.ba-tip-tag.gold{ background:rgba(201,169,110,0.15); color:var(--ba-primary); }
.ba-tip-tag.green{ background:rgba(74,103,65,0.1); color:var(--ba-green); }

/* ============================================================
   GALERÍA
   ============================================================ */
#ba-gallery { padding:110px 0 0; background:var(--ba-dark-mid); }
#ba-gallery .section-title{ color:var(--ba-white); }
#ba-gallery .section-subtitle{ color:rgba(255,255,255,0.4); }

.ba-gallery-scroll {
  display:flex;
  gap:3px;
  overflow-x:auto;
  margin-top:48px;
  padding-bottom:4px;
  scrollbar-width:thin;
  scrollbar-color:var(--ba-primary) transparent;
}
.ba-gallery-scroll::-webkit-scrollbar{ height:3px; }
.ba-gallery-scroll::-webkit-scrollbar-thumb{ background:var(--ba-primary); }

.ba-gallery-item {
  min-width:300px;
  height:380px;
  position:relative;
  overflow:hidden;
  flex-shrink:0;
  background:var(--ba-dark);
  cursor:pointer;
}
.ba-gallery-item img {
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 0.6s;
  opacity:0.75;
}
.ba-gallery-item:hover img { transform:scale(1.08); opacity:1; }
.ba-gallery-item-placeholder {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:72px;
  background:linear-gradient(135deg,rgba(201,169,110,0.05),rgba(201,169,110,0.02));
}
.ba-gallery-label {
  position:absolute;
  bottom:0; left:0; right:0;
  padding:40px 20px 18px;
  background:linear-gradient(transparent,rgba(0,0,0,0.85));
  font-family:var(--ba-font-heading);
  color:var(--ba-primary);
  font-size:17px;
}

/* Lightbox */
.ba-lightbox {
  display:none;
  position:fixed; inset:0; z-index:10000;
  background:rgba(0,0,0,0.92);
  align-items:center; justify-content:center;
}
.ba-lightbox.open{ display:flex; }
.ba-lightbox img{ max-width:90vw; max-height:90vh; object-fit:contain; }
.ba-lightbox-close{
  position:absolute; top:20px; right:28px;
  font-size:36px; color:var(--ba-primary);
  cursor:pointer; background:none; border:none;
}

/* ============================================================
   TAICHI
   ============================================================ */
#ba-taichi {
  padding:110px 0;
  background:linear-gradient(135deg,#0D1A0D,#1A2A1A);
  position:relative;
  overflow:hidden;
}
#ba-taichi::before {
  content:'☯';
  position:absolute;
  right:5%;
  top:50%;
  transform:translateY(-50%);
  font-size:380px;
  color:rgba(74,103,65,0.07);
  line-height:1;
  pointer-events:none;
}
.ba-taichi-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
@media(max-width:900px){ .ba-taichi-layout{ grid-template-columns:1fr; gap:48px; } }

.ba-taichi-text .section-eyebrow{ justify-content:flex-start; }
.ba-taichi-text .section-eyebrow::after{ display:none; }
.ba-taichi-text .section-title{ color:var(--ba-white); text-align:left; }

.ba-taichi-desc {
  font-size:17px;
  color:rgba(255,255,255,0.55);
  line-height:1.8;
  font-style:italic;
  margin:20px 0 32px;
}
.ba-taichi-benefits {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:40px;
}
.ba-taichi-benefit {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(74,103,65,0.25);
  padding:13px 16px;
  font-family:var(--ba-font-ui);
  font-size:12px;
  color:rgba(255,255,255,0.75);
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:0.3px;
}
.ba-taichi-benefit::before{ content:'🌿'; font-size:14px; }

.ba-taichi-schedule {
  background:rgba(74,103,65,0.18);
  border:1px solid rgba(74,103,65,0.35);
  padding:22px 26px;
  margin-bottom:36px;
}
.ba-taichi-schedule p{
  font-family:var(--ba-font-ui);
  color:rgba(255,255,255,0.75);
  font-size:14px;
  margin-bottom:4px;
  display:flex;
  align-items:center;
  gap:8px;
}
.ba-taichi-schedule strong{ color:#A8D5A2; }

.ba-taichi-visual {
  position:relative;
}
.ba-taichi-visual img{
  width:100%; height:480px;
  object-fit:cover;
  filter:brightness(0.8) sepia(0.2);
}
.ba-taichi-visual-placeholder {
  width:100%; height:480px;
  background:rgba(74,103,65,0.1);
  border:1px solid rgba(74,103,65,0.2);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:16px;
}
.ba-taichi-visual-placeholder span:first-child{ font-size:80px; }
.ba-taichi-visual-placeholder span:last-child{
  font-family:var(--ba-font-heading);
  color:rgba(255,255,255,0.3);
  font-size:18px;
}

/* ============================================================
   TESTIMONIOS
   ============================================================ */
#ba-testimonios { padding:110px 0; background:var(--ba-cream-dark); }

.ba-testimonios-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media(max-width:900px){ .ba-testimonios-grid{ grid-template-columns:1fr; } }

.ba-testimonial {
  background:var(--ba-white);
  padding:38px;
  border-top:3px solid var(--ba-primary);
  box-shadow:0 2px 20px rgba(0,0,0,0.06);
  transition:var(--ba-transition);
}
.ba-testimonial:hover{ transform:translateY(-6px); box-shadow:var(--ba-shadow-gold); }
.ba-testimonial-stars{ color:var(--ba-primary); font-size:15px; letter-spacing:3px; margin-bottom:18px; }
.ba-testimonial-quote {
  font-size:68px;
  color:var(--ba-primary);
  opacity:0.2;
  line-height:0.5;
  font-family:var(--ba-font-heading);
  margin-bottom:12px;
}
.ba-testimonial-text {
  font-size:17px;
  color:var(--ba-text);
  line-height:1.75;
  font-style:italic;
  margin-bottom:24px;
}
.ba-testimonial-author{ font-family:var(--ba-font-ui); font-weight:700; font-size:13px; color:var(--ba-dark); letter-spacing:1px; }
.ba-testimonial-service{ font-family:var(--ba-font-ui); font-size:11px; color:var(--ba-primary); letter-spacing:2px; text-transform:uppercase; margin-top:4px; }

/* ============================================================
   UBICACIÓN / MAPA
   ============================================================ */
#ba-ubicacion { padding:110px 0; background:var(--ba-cream); }

.ba-map-wrapper {
  border:1px solid rgba(201,169,110,0.25);
  overflow:hidden;
  box-shadow:var(--ba-shadow);
}
.ba-map-top {
  background:var(--ba-dark);
  padding:26px 36px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}
.ba-map-title{
  font-family:var(--ba-font-heading);
  color:var(--ba-primary);
  font-size:24px;
  margin-bottom:4px;
}
.ba-map-addr{ font-family:var(--ba-font-ui); color:rgba(255,255,255,0.5); font-size:13px; }

.ba-map-embed {
  width:100%;
  height:440px;
  border:none;
  display:block;
  filter:sepia(0.2) saturate(0.8);
}
.ba-map-placeholder {
  height:440px;
  background:linear-gradient(135deg,#e8e0d0,#d4c9b0);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:18px;
  font-family:var(--ba-font-ui);
}
.ba-map-placeholder .pin{ font-size:56px; }
.ba-map-placeholder p { font-size:16px; color:var(--ba-text-light); }
.ba-map-placeholder a {
  background:var(--ba-dark);
  color:var(--ba-primary);
  padding:12px 30px;
  font-family:var(--ba-font-ui);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:700;
  transition:var(--ba-transition);
}
.ba-map-placeholder a:hover{ background:var(--ba-primary); color:var(--ba-dark); }

.ba-contact-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(201,169,110,0.15);
}
@media(max-width:768px){ .ba-contact-grid{ grid-template-columns:repeat(2,1fr); } }
.ba-contact-item {
  padding:28px 28px;
  border-right:1px solid rgba(201,169,110,0.12);
  display:flex;
  align-items:center;
  gap:16px;
}
.ba-contact-item:last-child{ border-right:none; }
.ba-contact-icon{ font-size:30px; flex-shrink:0; }
.ba-contact-label{
  font-family:var(--ba-font-ui);
  font-size:10px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--ba-primary);
  margin-bottom:4px;
}
.ba-contact-val{
  font-family:var(--ba-font-heading);
  font-size:16px;
  color:var(--ba-dark);
}
.ba-contact-val a{ color:inherit; }
.ba-contact-val a:hover{ color:var(--ba-primary); }

/* ============================================================
   NEWSLETTER / LLAMADA A ACCIÓN
   ============================================================ */
#ba-cta {
  padding:90px 0;
  background:var(--ba-dark);
  text-align:center;
  position:relative;
  overflow:hidden;
}
#ba-cta::before{
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 60% at 50% 50%, rgba(201,169,110,0.08) 0%, transparent 70%);
}
.ba-cta-title{
  font-family:var(--ba-font-heading);
  font-size:clamp(32px,5vw,60px);
  color:var(--ba-white);
  margin-bottom:16px;
}
.ba-cta-title em{ color:var(--ba-primary); font-style:italic; }
.ba-cta-sub{
  font-size:19px;
  color:rgba(255,255,255,0.5);
  font-style:italic;
  margin-bottom:40px;
}
.ba-cta-buttons{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   FOOTER
   ============================================================ */
#ba-footer {
  background:var(--ba-dark);
  color:rgba(255,255,255,0.55);
  border-top:1px solid rgba(201,169,110,0.15);
}
.ba-footer-main {
  padding:80px 0 60px;
  display:grid;
  grid-template-columns:2.5fr 1fr 1fr 1.2fr;
  gap:64px;
}
@media(max-width:1000px){ .ba-footer-main{ grid-template-columns:1fr 1fr; gap:40px; } }
@media(max-width:540px){ .ba-footer-main{ grid-template-columns:1fr; } }

.ba-footer-brand .ba-footer-logo{
  font-family:var(--ba-font-heading);
  color:var(--ba-primary);
  font-size:28px;
  margin-bottom:6px;
}
.ba-footer-brand .ba-footer-tagline{
  font-family:var(--ba-font-ui);
  font-size:10px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.25);
  margin-bottom:22px;
}
.ba-footer-brand .ba-footer-desc{
  font-size:15px;
  line-height:1.75;
  font-style:italic;
  margin-bottom:28px;
}
.ba-footer-social{ display:flex; gap:10px; }
.ba-footer-social a{
  width:36px; height:36px;
  border:1px solid rgba(201,169,110,0.25);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--ba-primary);
  font-size:14px;
  transition:var(--ba-transition);
}
.ba-footer-social a:hover{ background:var(--ba-primary); color:var(--ba-dark); border-color:var(--ba-primary); }

.ba-footer-col h5{
  font-family:var(--ba-font-ui);
  font-size:10px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--ba-primary);
  margin-bottom:20px;
}
.ba-footer-col ul li{ margin-bottom:10px; }
.ba-footer-col ul li a{
  font-size:14px;
  color:rgba(255,255,255,0.45);
  transition:color 0.2s;
}
.ba-footer-col ul li a:hover{ color:var(--ba-primary); }

.ba-footer-bottom{
  border-top:1px solid rgba(255,255,255,0.06);
  padding:24px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:var(--ba-font-ui);
  font-size:12px;
  flex-wrap:wrap;
  gap:12px;
}
.ba-footer-bottom a{ color:var(--ba-primary); }

/* ============================================================
   HELP MODAL
   ============================================================ */
.ba-overlay {
  display:none;
  position:fixed; inset:0; z-index:10001;
  background:rgba(0,0,0,0.75);
  align-items:center; justify-content:center;
  backdrop-filter:blur(6px);
}
.ba-overlay.open{ display:flex; }
.ba-modal{
  background:var(--ba-cream);
  max-width:480px; width:92%;
  padding:52px 48px;
  position:relative;
  border-top:4px solid var(--ba-primary);
  box-shadow:0 24px 80px rgba(0,0,0,0.4);
}
.ba-modal-close{
  position:absolute; top:18px; right:22px;
  font-size:26px; color:var(--ba-text-light);
  cursor:pointer; background:none; border:none;
  transition:color 0.2s;
}
.ba-modal-close:hover{ color:var(--ba-primary); }
.ba-modal-title{
  font-family:var(--ba-font-heading);
  font-size:30px;
  color:var(--ba-dark);
  margin-bottom:6px;
}
.ba-modal-sub{
  font-family:var(--ba-font-ui);
  font-size:12px;
  color:var(--ba-text-light);
  letter-spacing:1px;
  margin-bottom:32px;
}
.ba-modal-options{ display:flex; flex-direction:column; gap:12px; }
.ba-modal-option{
  display:flex; align-items:center; gap:18px;
  padding:16px 20px;
  background:var(--ba-white);
  border:1px solid rgba(201,169,110,0.2);
  cursor:pointer;
  transition:var(--ba-transition);
  text-decoration:none;
  color:var(--ba-dark);
}
.ba-modal-option:hover{ border-color:var(--ba-primary); background:var(--ba-cream-dark); transform:translateX(4px); }
.ba-modal-option-icon{ font-size:26px; flex-shrink:0; }
.ba-modal-option-title{ font-family:var(--ba-font-ui); font-weight:700; font-size:14px; }
.ba-modal-option-sub{ font-size:12px; color:var(--ba-text-light); margin-top:2px; font-family:var(--ba-font-ui); }

/* ============================================================
   WOOCOMMERCE COMPATIBILITY
   ============================================================ */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  border-top-color: var(--ba-primary);
  font-family: var(--ba-font-ui);
}
.woocommerce a.button,
.woocommerce button.button {
  background: var(--ba-primary);
  color: var(--ba-dark);
  font-family: var(--ba-font-ui);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: var(--ba-primary-dark);
}

/* ============================================================
   WORDPRESS CONTENT STYLES
   ============================================================ */
.entry-content h1,.entry-content h2,.entry-content h3 { font-family:var(--ba-font-heading); color:var(--ba-dark); margin-bottom:16px; }
.entry-content p { font-size:17px; line-height:1.8; margin-bottom:18px; }
.entry-content a { color:var(--ba-primary); }
.entry-content img { border-radius:var(--ba-radius); }
.wp-block-button__link {
  background:var(--ba-primary);
  color:var(--ba-dark);
  font-family:var(--ba-font-ui);
}
.aligncenter { display:block; margin:0 auto; }

/* ============================================================
   ADMIN BAR OFFSET
   ============================================================ */
.admin-bar #ba-nav { top:32px; }
@media(max-width:782px){ .admin-bar #ba-nav { top:46px; } }
