:root {
  --primary: #1e3a5f; --primary-dark: #152c47;
  --accent: #ef4444; --accent-dark: #dc2626;
  --green: #22c55e; --green-dark: #16a34a;
  --blue: #3b82f6; --purple: #8b5cf6;
  --orange: #f97316; --teal: #14b8a6;
  --pink: #ec4899; --yellow: #eab308;
  --facebook: #1877f2; --whatsapp: #25d366;
  --text-dark: #0f172a; --text-body: #374151; --text-light: #6b7280;
  --bg-light: #f8fafc; --bg-card: #ffffff; --border: #e5e7eb;
  --radius: 12px; --radius-lg: 20px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow: 0 4px 16px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
  --shadow-xl: 0 20px 60px rgba(0,0,0,0.15);
  --transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
}
[data-theme="dark"] {
  --primary: #38bdf8; --primary-dark: #0ea5e9;
  --text-dark: #f8fafc; --text-body: #cbd5e1; --text-light: #94a3b8;
  --bg-light: #0f172a; --bg-card: #1e293b; --border: #334155;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.5);
  --shadow: 0 4px 16px rgba(0,0,0,0.5);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.6);
  --shadow-xl: 0 20px 60px rgba(0,0,0,0.7);
}

/* ===== DARK MODE OVERRIDES ===== */
[data-theme="dark"] .header{background:rgba(15,23,42,.92);backdrop-filter:blur(20px);border-bottom-color:var(--border)}
[data-theme="dark"] .header__nav .nav-link:hover,
[data-theme="dark"] .header__nav .nav-link.active{background:rgba(56,189,248,0.1);color:var(--primary)}
[data-theme="dark"] .emergency-bar{background:linear-gradient(135deg,#0a0a1a,#0d1627)}
[data-theme="dark"] .section__tag{background:rgba(56,189,248,0.1);color:var(--primary);border-color:rgba(56,189,248,0.25)}
[data-theme="dark"] .service-card__icon-wrap--red{background:rgba(239,68,68,0.15);color:#f87171}
[data-theme="dark"] .service-card__icon-wrap--blue{background:rgba(59,130,246,0.15);color:#60a5fa}
[data-theme="dark"] .service-card__icon-wrap--green{background:rgba(16,185,129,0.15);color:#34d399}
[data-theme="dark"] .service-card__icon-wrap--purple{background:rgba(139,92,246,0.15);color:#a78bfa}
[data-theme="dark"] .service-card__icon-wrap--orange{background:rgba(249,115,22,0.15);color:#fb923c}
[data-theme="dark"] .service-card__icon-wrap--teal{background:rgba(20,184,166,0.15);color:#2dd4bf}
[data-theme="dark"] .service-card__icon-wrap--pink{background:rgba(236,72,153,0.15);color:#f472b6}
[data-theme="dark"] .service-card__icon-wrap--yellow{background:rgba(234,179,8,0.15);color:#facc15}
[data-theme="dark"] .service-card__icon-wrap--indigo{background:rgba(79,70,229,0.15);color:#818cf8}
[data-theme="dark"] .why-us__circle-bg{background:rgba(56,189,248,0.05);border-color:rgba(56,189,248,0.15)}
[data-theme="dark"] .feature__icon{background:rgba(59,130,246,0.15);color:#60a5fa}
[data-theme="dark"] .contact-card__icon--red{background:rgba(239,68,68,0.15);color:#f87171}
[data-theme="dark"] .contact-card__icon--green{background:rgba(16,185,129,0.15);color:#34d399}
[data-theme="dark"] .contact-card__icon--blue{background:rgba(59,130,246,0.15);color:#60a5fa}
[data-theme="dark"] .contact-card__icon--orange{background:rgba(249,115,22,0.15);color:#fb923c}
[data-theme="dark"] .contact-card:hover{border-color:rgba(56,189,248,0.3)}
[data-theme="dark"] .btn--primary{color:var(--primary);border-color:var(--primary)}
[data-theme="dark"] .btn--primary::before{background:var(--primary)}
[data-theme="dark"] .btn--outline{border-color:var(--primary);color:var(--primary)}
[data-theme="dark"] .btn--outline:hover{background:var(--primary);color:#fff}
[data-theme="dark"] .logo-icon{background:linear-gradient(135deg,#0ea5e9,#38bdf8)}
[data-theme="dark"] .logo-icon-bg{background:transparent}
[data-theme="dark"] .pricing-card{background:var(--bg-card);border-color:var(--border)}
[data-theme="dark"] .pricing-card--featured{border-color:var(--primary)}
[data-theme="dark"] .pricing-card__badge{background:var(--primary)}
[data-theme="dark"] .mapa-wrapper{border-color:var(--border)}
[data-theme="dark"] .legal-text{background:var(--bg-card);border-color:var(--border)}
[data-theme="dark"] .legal-text h2{color:var(--primary)}

.theme-toggle {
  background: transparent;
  border: none;
  color: var(--primary);
  font-size: 1.2rem;
  cursor: pointer;
  padding: 8px;
  border-radius: 50%;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
}
.theme-toggle:hover {
  background: var(--border);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Inter',-apple-system,sans-serif;color:var(--text-body);background:var(--bg-light);line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit;transition:var(--transition)}
ul{list-style:none}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-weight:700;line-height:1.2;color:var(--text-dark)}
h1{font-size:clamp(2rem,5vw,3.5rem)}
h2{font-size:clamp(1.6rem,3.5vw,2.5rem)}
h3{font-size:1.2rem}
.gradient-text{background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 50%,#ef4444 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:50px;font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:var(--transition);white-space:nowrap;position:relative;overflow:hidden;z-index:1}
.btn--sm{padding:8px 18px;font-size:.85rem}
.btn--lg{padding:15px 30px;font-size:1rem}
.btn--full{width:100%;justify-content:center}

/* Uiverse Style: Primary Button (Swipe Fill) */
.btn--primary{background:transparent;color:var(--primary);border:2px solid var(--primary);transition:color 0.4s linear}
.btn--primary::before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:var(--primary);z-index:-1;transition:transform 0.5s;transform-origin:0 0;transition-timing-function:cubic-bezier(0.5,1.6,0.4,0.7);transform:scaleX(0)}
.btn--primary:hover{color:#fff}
.btn--primary:hover::before{transform:scaleX(1)}

/* Uiverse Style: Emergency Button (Glowing Gradient) */
.btn--emergency{background:#111827;color:#fff;border:none;padding:16px 32px;box-shadow:inset 0 0 0 2px rgba(239,68,68,0.2)}
.btn--emergency::before{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg, #ef4444, #f97316, #ef4444, #8b5cf6, #ef4444);background-size:400% 400%;z-index:-2;animation:glowing-btn 20s linear infinite;border-radius:52px;opacity:0.8;transition:opacity 0.3s ease-in-out}
.btn--emergency::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(220,38,38,0.1);z-index:-1;border-radius:50px;backdrop-filter:blur(5px);transition:background 0.3s}
.btn--emergency:hover::after{background:transparent}
.btn--emergency:hover{transform:translateY(-3px);color:#fff}
@keyframes glowing-btn{0%{background-position:0 0}50%{background-position:400% 0}100%{background-position:0 0}}

/* Uiverse Style: WhatsApp Button (Liquid Fill) */
.btn--whatsapp{background:transparent;color:#25d366;border:2px solid #25d366}
.btn--whatsapp::before{content:"";position:absolute;z-index:-1;background:#25d366;height:150px;width:250px;border-radius:50%;top:100%;left:100%;transition:all 0.7s}
.btn--whatsapp:hover{color:#fff}
.btn--whatsapp:hover::before{top:-30px;left:-30px}

.btn--whatsapp-solid{background:#25d366;color:#fff}
.btn--whatsapp-solid:hover{background:#128c4e;transform:translateY(-2px)}

/* Uiverse Style: Facebook Button (Elevate & Shadow) */
.btn--facebook{background:#1877f2;color:#fff;box-shadow:0 0.5em 1.5em -0.5em rgba(24,119,242,0.8);transform:translateY(-0.25em)}
.btn--facebook:hover{box-shadow:0 0.5em 1.5em -0.5em rgba(24,119,242,1);transform:translateY(-0.4em)}
.btn--facebook:active{box-shadow:0 0.3em 1em -0.5em rgba(24,119,242,1);transform:translateY(0)}

.btn--outline{border:2px solid var(--primary);color:var(--primary);background:transparent}
.btn--outline:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}
.btn--hero-outline{border:2px solid #fff !important;color:#fff !important;background:rgba(255,255,255,0.1) !important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-shadow:0 1px 3px rgba(0,0,0,0.3)}
.btn--hero-outline::before{display:none !important}
.btn--hero-outline:hover{background:rgba(255,255,255,0.25) !important;border-color:#fff !important;transform:translateY(-3px);box-shadow:0 10px 30px rgba(255,255,255,0.2)}
.btn--whatsapp-solid{background:#25d366;color:#fff;border:none}
.btn--whatsapp-solid:hover{background:#128c4e;transform:translateY(-2px);box-shadow:0 8px 20px rgba(37,211,102,0.3)}
.btn--white{background:#fff;color:var(--accent);font-weight:700}
.btn--white:hover{background:#f8fafc;transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn__text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.btn__text small{font-size:.7rem;font-weight:400;opacity:.9}
.pulse-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--accent);animation:pulse 2s infinite}
.pulse-dot--green{background:var(--green)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.6)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}
.emergency-bar{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;padding:10px 0;position:fixed;top:0;left:0;right:0;z-index:1000;border-bottom:2px solid var(--accent);transition:transform 0.4s cubic-bezier(0.4,0,0.2,1)}
.emergency-bar.header-hidden{transform:translateY(-100%)}
.emergency-bar__inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}
.emergency-bar__pulse{display:flex;align-items:center;gap:8px;font-weight:800;font-size:.8rem;letter-spacing:1px;color:var(--accent)}
.emergency-bar__divider{width:1px;height:16px;background:rgba(255,255,255,.2)}
.emergency-bar__link{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:500;color:rgba(255,255,255,.9);padding:4px 12px;border-radius:20px;transition:var(--transition)}
.emergency-bar__link:hover{color:#fff;background:rgba(255,255,255,.1)}
.emergency-bar__link--whatsapp{color:#4ade80}
.emergency-bar__link--whatsapp:hover{color:#86efac}
.header{position:fixed;top:42px;left:0;right:0;z-index:999;background:rgba(255,255,255,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:transform 0.4s cubic-bezier(0.4,0,0.2,1), box-shadow 0.3s, background 0.3s}
.header.scrolled{box-shadow:var(--shadow-lg)}
.header.header-hidden{transform:translateY(calc(-100% - 42px))}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:20px}
.header__logo{display:flex;align-items:center;gap:12px}
.header__logo-img{width:64px;height:64px;object-fit:contain;}
.logo-icon{width:44px;height:44px;background:linear-gradient(135deg,var(--primary),#3b82f6);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem}
.logo-icon--sm{width:36px;height:36px;font-size:1rem}
.logo-text{display:flex;flex-direction:column}
.logo-text__main{font-size:1.1rem;font-weight:800;color:var(--primary);line-height:1.1}
.logo-text__sub{font-size:.65rem;color:var(--text-light);font-weight:500;letter-spacing:.5px;text-transform:uppercase}
.header__nav{display:flex;align-items:center;gap:4px}
.nav-link{padding:8px 14px;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--text-body);transition:var(--transition)}
.nav-link:hover,.nav-link.active{color:var(--primary);background:#eff6ff}
.header__cta{display:flex;align-items:center;gap:12px}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:transparent;border:none;cursor:pointer;padding:4px}
.hamburger span{display:block;width:100%;height:2px;background:var(--primary);border-radius:2px;transition:var(--transition)}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:150px;background:linear-gradient(160deg,rgba(15,23,42,0.8) 0%,rgba(30,58,95,0.7) 40%,rgba(30,64,175,0.6) 70%,rgba(49,46,129,0.8) 100%), url('img/hero.jpg') center/cover no-repeat;overflow:hidden}
.hero__bg-shapes .shape{position:absolute;border-radius:50%;filter:blur(60px);opacity:.15}
.shape-1{width:500px;height:500px;background:#3b82f6;top:-100px;right:-100px}
.shape-2{width:300px;height:300px;background:#ef4444;bottom:100px;left:-50px}
.shape-3{width:200px;height:200px;background:#8b5cf6;top:50%;right:20%}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(15,23,42,.4),rgba(15,23,42,.1))}
.hero__content{position:relative;z-index:2;padding:120px 24px 80px;text-align:center}
.hero__badge{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:#fff;padding:10px 20px;border-radius:50px;font-size:.85rem;font-weight:600;margin-bottom:28px;letter-spacing:.5px}
.hero__title{color:#fff;margin-bottom:20px}
.hero__subtitle{color:rgba(255,255,255,.8);font-size:clamp(1rem,2vw,1.2rem);margin-bottom:40px;line-height:1.8}
.hero__actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:60px}
.hero__stats{display:inline-flex;align-items:center;gap:32px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-lg);padding:20px 40px;flex-wrap:wrap;justify-content:center}
.stat{text-align:center;color:#fff}
.stat__number{display:block;font-size:1.8rem;font-weight:900}
.stat__label{display:block;font-size:.75rem;color:rgba(255,255,255,.7);font-weight:500}
.stat__divider{width:1px;height:40px;background:rgba(255,255,255,.2)}
.hero__scroll-indicator{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.6);font-size:1.2rem;animation:bounce 2s infinite;cursor:pointer;z-index:2}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
.notification-banner{display:none !important;}
@keyframes slideUpNotif{from{transform:translateY(100%)}to{transform:translateY(0)}}
.urgencias-banner__inner{display:flex;align-items:center;gap:20px;flex-wrap:nowrap;justify-content:center;text-align:left;position:relative;width:100%;max-width:1200px;margin:0 auto;padding:0 60px 0 20px}
.notification-close{position:absolute;right:15px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.2);border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.3s;z-index:2}
.notification-close:hover{background:rgba(255,255,255,0.4)}
.urgencias-banner__icon{font-size:2rem;animation:heartbeat 1.5s infinite}
@keyframes heartbeat{0%,100%{transform:scale(1)}14%{transform:scale(1.15)}28%{transform:scale(1)}42%{transform:scale(1.1)}}
.urgencias-banner__text{flex:1}
.urgencias-banner__text h2{color:#fff;margin-bottom:2px;font-size:1.2rem;font-weight:700}
.urgencias-banner__text p{color:rgba(255,255,255,.9);font-size:0.9rem;margin:0}
.urgencias-banner__actions{display:flex;gap:10px;flex-wrap:nowrap}
@media (max-width:768px){.urgencias-banner__inner{flex-wrap:wrap;gap:10px;text-align:center;padding-right:30px}.urgencias-banner__text{flex:100%}.urgencias-banner__actions{width:100%;justify-content:center}}
.section{padding:90px 0}
.section__header{text-align:center;max-width:700px;margin:0 auto 60px}
.section__tag{display:inline-block;background:linear-gradient(135deg,#eff6ff,#f0f9ff);color:var(--primary);border:1px solid #bfdbfe;padding:6px 16px;border-radius:50px;font-size:.8rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:16px}
.section__title{margin-bottom:16px}
.section__subtitle{color:var(--text-light);font-size:1.05rem;line-height:1.8}
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px}
.service-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);transition:var(--transition);position:relative;overflow:hidden;display:flex;flex-direction:column}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--blue));opacity:0;transition:var(--transition);z-index:10}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:transparent}
.service-card:hover::before{opacity:1}
.service-card--featured{background:linear-gradient(135deg,var(--bg-light),var(--bg-card));border-color:var(--accent)}
.service-card--featured::before{background:linear-gradient(90deg,var(--accent),#f97316);opacity:1}
.service-card__image { width: 100%; height: 180px; object-fit: cover; border-bottom: 1px solid var(--border); }
.service-card__content { padding: 24px; flex-grow: 1; display: flex; flex-direction: column; }
.service-card__icon-wrap{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:15px;margin-top:-48px;position:relative;z-index:2;box-shadow:var(--shadow-sm);border:2px solid var(--bg-card)}
.service-card__icon-wrap--red{background:#fee2e2;color:var(--accent)}
.service-card__icon-wrap--blue{background:#dbeafe;color:var(--blue)}
.service-card__icon-wrap--green{background:#d1fae5;color:var(--green-dark)}
.service-card__icon-wrap--purple{background:#ede9fe;color:var(--purple)}
.service-card__icon-wrap--orange{background:#ffedd5;color:var(--orange)}
.service-card__icon-wrap--teal{background:#ccfbf1;color:var(--teal)}
.service-card__icon-wrap--pink{background:#fce7f3;color:var(--pink)}
.service-card__icon-wrap--yellow{background:#fef9c3;color:#ca8a04}
.service-card__icon-wrap--indigo{background:#e0e7ff;color:#4f46e5}
.service-card h3{margin-bottom:10px;font-size:1.1rem}
.service-card p{color:var(--text-light);font-size:.9rem;line-height:1.7;margin-bottom:15px;flex-grow:1}
.service-card__list { list-style: none; padding: 0; margin: 0 0 20px; text-align: left; }
.service-card__list li { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; color: var(--text-body); font-size: 0.9rem; }
.service-card__list li i { color: #10b981; font-size: 0.9rem; }
.service-card__cta{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-size:.85rem;font-weight:600;margin-top:auto}
.service-card__cta:hover{gap:10px}

/* Instalaciones Grid */
.instalaciones { background: var(--bg-light); }
.instalaciones-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 240px; gap: 20px; }
.instalacion-block { position: relative; border-radius: var(--radius-lg); overflow: hidden; text-align: center; color: #fff; display: flex; flex-direction: column; justify-content: center; align-items: center; transition: transform 0.3s, box-shadow 0.3s; box-shadow: var(--shadow-sm); }
.instalacion-block:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.instalacion-block:first-child { grid-row: span 2; }
.instalacion-block--img { background-size: cover; background-position: center; }
.instalacion-block__overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 1; }
.instalacion-block__overlay--blue { background: rgba(30, 58, 138, 0.75); }
.instalacion-block__overlay--green { background: rgba(16, 185, 129, 0.75); }
.instalacion-block__overlay--purple { background: rgba(139, 92, 246, 0.75); }
.instalacion-block__content { position: relative; z-index: 2; padding: 20px; }
.instalacion-block__content i { font-size: 2.5rem; margin-bottom: 15px; }
.instalacion-block__content h3 { font-size: 1.3rem; font-weight: 700; margin: 0; color: #fff; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.why-us{background:linear-gradient(to bottom,var(--bg-light),var(--bg-card))}
.why-us__inner{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center}
.why-us__visual{position:relative;display:flex;align-items:center;justify-content:center;height:400px}
.why-us__circle-bg{width:300px;height:300px;border-radius:50%;background:linear-gradient(135deg,#eff6ff,#f0f4ff);border:2px dashed #bfdbfe}
.why-us__paw-icon{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--primary);font-size:4rem}
.why-us__paw-icon span{font-size:.9rem;font-weight:700;color:var(--primary)}
.why-us__card-float{position:absolute;background:var(--bg-card);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-lg);font-size:.85rem;font-weight:600;color:var(--text-dark);white-space:nowrap}
.why-us__card-float--top{top:30px;right:0}
.why-us__card-float--bottom{bottom:30px;left:0}
.why-us__lead{color:var(--text-light);font-size:1.05rem;margin-bottom:32px;line-height:1.8}
.why-us__features{display:flex;flex-direction:column;gap:20px;margin-bottom:32px}
.feature{display:flex;gap:16px;align-items:flex-start}
.feature__icon{width:44px;height:44px;min-width:44px;background:#dbeafe;color:var(--blue);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem}
.feature__text h4{font-size:1rem;margin-bottom:4px}
.feature__text p{color:var(--text-light);font-size:.9rem}
.why-us__actions{display:flex;gap:16px;flex-wrap:wrap}
.pets-section{background:var(--bg-light)}
.pets-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.pet-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:40px 24px;text-align:center;border:1px solid var(--border);transition:var(--transition)}
.pet-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.pet-card__emoji{font-size:3.5rem;margin-bottom:16px}
.pet-card h3{margin-bottom:8px}
.pet-card p{color:var(--text-light);font-size:.9rem}
.galeria{background:var(--bg-card)}
.gallery-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:250px 250px;gap:16px}
.gallery-item{border-radius:var(--radius-lg);overflow:hidden;position:relative}
.gallery-item--1{grid-row:span 2}
.gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#1e3a5f,#1e40af);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:rgba(255,255,255,.9);font-size:2.5rem;font-weight:600;transition:var(--transition);cursor:pointer}
.gallery-item--2 .gallery-placeholder{background:linear-gradient(135deg,#059669,#10b981)}
.gallery-item--3 .gallery-placeholder{background:linear-gradient(135deg,#7c3aed,#8b5cf6)}
.gallery-item--4 .gallery-placeholder{background:linear-gradient(135deg,#d97706,#f59e0b)}
.gallery-item--5 .gallery-placeholder{background:linear-gradient(135deg,#db2777,#ec4899)}
.gallery-placeholder span{font-size:1rem;font-weight:600}
.gallery-placeholder:hover{transform:scale(1.02)}
.gallery-note{text-align:center;margin-top:24px;color:var(--text-light);font-size:.95rem}
.gallery-note a{color:var(--primary);font-weight:600}
.gallery-note a:hover{color:var(--facebook)}
.testimonios{background:linear-gradient(to bottom,var(--bg-light),var(--bg-card))}
.testimonios-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testimonio-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:32px;border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:var(--transition)}
.testimonio-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.testimonio-card__stars{font-size:1.1rem;margin-bottom:16px}
.testimonio-card__text{color:var(--text-body);line-height:1.8;font-size:.95rem;margin-bottom:24px;font-style:italic}
.testimonio-card__author{display:flex;align-items:center;gap:12px}
.testimonio-card__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--blue));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem}
.testimonio-card__author-info{display:flex;flex-direction:column}
.testimonio-card__author-info strong{font-size:.95rem;color:var(--text-dark)}
.testimonio-card__author-info span{font-size:.8rem;color:var(--text-light)}
.contacto{background:var(--bg-card)}
.contacto__inner{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;align-items:start}
.contacto__info{display:flex;flex-direction:column;gap:16px}
.contact-card{display:flex;align-items:center;gap:16px;background:var(--bg-light);border-radius:var(--radius);padding:18px 20px;border:1px solid var(--border);transition:var(--transition)}
.contact-card:hover{box-shadow:var(--shadow);border-color:#bfdbfe}
.contact-card__icon{width:44px;height:44px;min-width:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem}
.contact-card__icon--red{background:#fee2e2;color:var(--accent)}
.contact-card__icon--green{background:#d1fae5;color:var(--green-dark)}
.contact-card__icon--blue{background:#dbeafe;color:var(--facebook)}
.contact-card__icon--orange{background:#ffedd5;color:var(--orange)}
.contact-card__text{display:flex;flex-direction:column}
.contact-card__text h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);margin-bottom:2px}
.contact-card__value{font-size:1.05rem;font-weight:600;color:var(--text-dark)}
.contact-card__value:hover{color:var(--primary)}
.contact-card__note{font-size:.8rem;color:var(--text-light)}
.quick-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.mapa-wrapper{width:100%;height:400px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:16px}
.footer{background:#020617;color:#94a3b8;padding:0;position:relative;margin-top:100px;font-family:'Inter', sans-serif}
.footer__cta-banner{display:none !important;}
.footer__cta-actions{display:flex;gap:16px;flex-wrap:wrap}
.footer__inner{padding:20px 0 0}
.footer__top{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:60px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,0.05)}
.footer__logo{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.footer__logo-img{width:60px;height:auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,0.3))}
.footer__logo-name{display:block;font-size:1.5rem;font-weight:800;color:#f8fafc;letter-spacing:-0.5px}
.footer__logo-sub{display:block;font-size:0.75rem;color:#64748b;text-transform:uppercase;letter-spacing:1px;font-weight:600}
.footer__tagline{font-size:1rem;margin-bottom:32px;line-height:1.7;color:#94a3b8}
.footer__social{display:flex;gap:16px}
.social-btn{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:rgba(255,255,255,0.03);color:#e2e8f0;border:1px solid rgba(255,255,255,0.05);transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}
.social-btn:hover{background:#3b82f6;color:#fff;transform:translateY(-4px) scale(1.05);box-shadow:0 10px 20px -5px rgba(59,130,246,0.5);border-color:#3b82f6}
.footer__links-group h4{color:#f8fafc;font-size:1.1rem;font-weight:700;margin-bottom:28px;position:relative}
.footer__links-group h4::after{content:'';position:absolute;bottom:-10px;left:0;width:24px;height:3px;background:#3b82f6;border-radius:3px}
.footer__links-group ul{display:flex;flex-direction:column;gap:14px;list-style:none;padding:0;margin:0}
.footer__links-group a{font-size:0.95rem;color:#94a3b8;transition:all 0.3s ease;display:inline-block;position:relative;text-decoration:none}
.footer__links-group a:hover{color:#3b82f6;transform:translateX(6px)}
.footer__contact-group h4{color:#f8fafc;font-size:1.1rem;font-weight:700;margin-bottom:28px;position:relative}
.footer__contact-group h4::after{content:'';position:absolute;bottom:-10px;left:0;width:24px;height:3px;background:#3b82f6;border-radius:3px}
.footer__contact-item{display:flex;align-items:center;gap:14px;margin-bottom:16px;color:#94a3b8;font-size:0.95rem}
.footer__contact-item i{width:36px;height:36px;background:rgba(59,130,246,0.1);color:#3b82f6;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;transition:all 0.3s ease}
.footer__contact-item:hover i{background:#3b82f6;color:#fff;transform:scale(1.1)}
.footer__contact-item a{color:#94a3b8;text-decoration:none;transition:color 0.3s ease}
.footer__contact-item a:hover{color:#fff}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;padding:30px 0 calc(30px + env(safe-area-inset-bottom, 20px));font-size:0.9rem;color:#64748b;flex-wrap:wrap;gap:16px}
.footer__bottom a{color:#64748b;text-decoration:none;transition:color 0.3s ease}
.footer__bottom a:hover{color:#f8fafc}
.floating-buttons{position:fixed;bottom:calc(30px + env(safe-area-inset-bottom));right:30px;display:flex;flex-direction:column;gap:12px;z-index:10001;transition:bottom 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)}
.banner-active .floating-buttons{bottom:calc(95px + env(safe-area-inset-bottom))}
.float-btn{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#fff;box-shadow:var(--shadow-xl);transition:var(--transition);position:relative}
.float-btn:hover{transform:scale(1.1)}
.float-btn--call{background:linear-gradient(135deg,var(--accent),var(--accent-dark));animation:pulse-call 3s infinite}
@keyframes pulse-call{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5)}50%{box-shadow:0 0 0 15px rgba(239,68,68,0)}}
.float-btn--whatsapp{background:linear-gradient(135deg,#25d366,#128c4e)}
.float-btn__tooltip{position:absolute;right:70px;background:rgba(0,0,0,.8);color:#fff;padding:6px 12px;border-radius:8px;font-size:.78rem;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transform:translateX(10px);transition:var(--transition)}
.float-btn:hover .float-btn__tooltip{opacity:1;transform:translateX(0)}
/* ==========================================================================
   Animations & Reveal Classes
   ========================================================================== */
.reveal {
  opacity: 0;
  transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.active {
  opacity: 1;
  transform: translate(0, 0) scale(1) !important;
  filter: blur(0) !important;
}
.fade-up {
  transform: translateY(60px);
  filter: blur(4px);
}
.slide-in-left {
  transform: translateX(-80px);
  filter: blur(3px);
}
.slide-in-right {
  transform: translateX(80px);
  filter: blur(3px);
}
.slide-in-bottom {
  transform: translateY(40px);
}
.hover-lift {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.hover-lift:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-xl);
}

/* Staggered card animations */
.service-card, .pet-card, .contact-card, .testimonio-card, .instalacion-block, .pricing-card {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.active .service-card,
.reveal.active .pet-card,
.reveal.active .contact-card,
.reveal.active .testimonio-card,
.reveal.active .instalacion-block,
.reveal.active .pricing-card {
  opacity: 1;
  transform: translateY(0);
}
.reveal.active .service-card:nth-child(1),
.reveal.active .pet-card:nth-child(1),
.reveal.active .instalacion-block:nth-child(1) { transition-delay: 0.05s; }
.reveal.active .service-card:nth-child(2),
.reveal.active .pet-card:nth-child(2),
.reveal.active .instalacion-block:nth-child(2) { transition-delay: 0.1s; }
.reveal.active .service-card:nth-child(3),
.reveal.active .pet-card:nth-child(3),
.reveal.active .instalacion-block:nth-child(3) { transition-delay: 0.15s; }
.reveal.active .service-card:nth-child(4),
.reveal.active .pet-card:nth-child(4),
.reveal.active .instalacion-block:nth-child(4) { transition-delay: 0.2s; }
.reveal.active .service-card:nth-child(5) { transition-delay: 0.25s; }
.reveal.active .service-card:nth-child(6) { transition-delay: 0.3s; }
.reveal.active .service-card:nth-child(7) { transition-delay: 0.35s; }
.reveal.active .service-card:nth-child(8) { transition-delay: 0.4s; }
.reveal.active .service-card:nth-child(9) { transition-delay: 0.45s; }
.reveal.active .service-card:nth-child(10) { transition-delay: 0.5s; }

/* Hero entrance animations */
.hero__badge { animation: heroFadeDown 1s 0.2s cubic-bezier(0.16, 1, 0.3, 1) both; }
.hero__title { animation: heroFadeUp 1s 0.4s cubic-bezier(0.16, 1, 0.3, 1) both; }
.hero__subtitle { animation: heroFadeUp 1s 0.6s cubic-bezier(0.16, 1, 0.3, 1) both; }
.hero__actions { animation: heroFadeUp 1s 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; }
.hero__stats { animation: heroScale 0.8s 1s cubic-bezier(0.16, 1, 0.3, 1) both; }

@keyframes heroFadeDown {
  from { opacity: 0; transform: translateY(-30px); filter: blur(8px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(40px); filter: blur(6px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@keyframes heroScale {
  from { opacity: 0; transform: scale(0.8); filter: blur(4px); }
  to { opacity: 1; transform: scale(1); filter: blur(0); }
}

/* Section title animation */
.reveal.active .section__header {
  animation: sectionTitle 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes sectionTitle {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ==========================================================================
   Page: Nosotros
   ========================================================================== */
.page-nosotros .nosotros-hero {
  text-align: center;
  padding: 180px 24px 100px;
  background: linear-gradient(160deg, rgba(15,23,42,0.85) 0%, rgba(30,58,95,0.75) 100%), url('img/nosotros-hero.webp') top center/cover no-repeat;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  color: #fff;
}
.page-nosotros .nosotros-hero .hero__subtitle {
  color: rgba(255,255,255,0.9);
  max-width: 800px;
  margin: 0 auto;
}
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.about-text p {
  color: var(--text-body);
  font-size: 1.1rem;
  line-height: 1.8;
  margin-top: 16px;
}
.about-values {
  display: grid;
  gap: 20px;
}
.value-card {
  background: var(--bg-card);
  padding: 24px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: var(--shadow-sm);
}
.value-card i {
  font-size: 2rem;
  color: var(--primary);
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 32px;
  margin-top: 40px;
}
.team-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 32px 24px;
  text-align: center;
}
.team-avatar {
  width: 100px;
  height: 100px;
  margin: 0 auto 20px;
  background: linear-gradient(135deg, var(--primary), var(--blue));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.text-center { text-align: center; }

/* ==========================================================================
   Page: Aviso de Privacidad
   ========================================================================== */
.legal-content {
  max-width: 800px;
  margin: 0 auto;
}
.legal-text {
  background: var(--bg-card);
  padding: 40px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
.legal-text h2 {
  font-size: 1.3rem;
  margin: 30px 0 16px;
  color: var(--primary);
}
.legal-text p, .legal-text ul {
  font-size: 1.05rem;
  color: var(--text-body);
  margin-bottom: 16px;
  line-height: 1.8;
}
.legal-text ul {
  padding-left: 24px;
  list-style: disc;
}

/* ==========================================================================
   Pricing Section
   ========================================================================== */
.precios { background: var(--bg-light); }
.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; margin-top: 40px; }
.pricing-card { background: var(--bg-card); border-radius: var(--radius-lg); padding: 40px 30px; text-align: center; border: 1px solid var(--border); transition: var(--transition); position: relative; }
.pricing-card--featured { box-shadow: var(--shadow-xl); border: 2px solid var(--primary); transform: scale(1.05); z-index: 2; }
.pricing-card__badge { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); background: var(--primary); color: #fff; padding: 6px 20px; border-radius: 50px; font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; box-shadow: 0 4px 10px rgba(59,130,246,0.3); }
.pricing-card__header h3 { font-size: 1.4rem; color: var(--text-dark); margin-bottom: 15px; }
.pricing-card__price { font-size: 3rem; font-weight: 800; color: var(--text-dark); display: flex; align-items: flex-start; justify-content: center; gap: 4px; margin-bottom: 15px; line-height: 1; }
.pricing-card__price span:first-child { font-size: 1.4rem; margin-top: 5px; color: var(--text-light); }
.pricing-card__price span:last-child { font-size: 1rem; align-self: flex-end; margin-bottom: 8px; color: var(--text-light); }
.pricing-card__header p { color: var(--text-light); font-size: 0.95rem; margin-bottom: 30px; line-height: 1.6; }
.pricing-card__features { list-style: none; padding: 0; margin: 0 0 35px; text-align: left; }
.pricing-card__features li { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; color: var(--text-body); font-size: 1rem; }
.pricing-card__features li i { color: #10b981; font-size: 1.1rem; }
.pricing-card__features li.disabled { color: #94a3b8; text-decoration: line-through; }
.pricing-card__features li.disabled i { color: #cbd5e1; }
@media (max-width: 992px) { .pricing-card--featured { transform: scale(1); } }

/* ==========================================================================
   Testimonios Carousel
   ========================================================================== */
.testimonios-carousel {
  overflow: hidden;
  position: relative;
  width: 100%;
  padding: 20px 0;
}
.testimonios-track {
  display: flex;
  gap: 24px;
  width: calc(400px * 9);
  animation: scroll-testimonios 30s linear infinite;
}
.testimonios-carousel:hover .testimonios-track {
  animation-play-state: paused;
}
.testimonios-track .testimonio-card {
  width: 400px;
  flex-shrink: 0;
}
@keyframes scroll-testimonios {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(-400px * 6 - 24px * 6)); }
}

/* ==========================================================================
   Footer Logo
   ========================================================================== */
.logo-icon-bg {
  width: 64px;
  height: 64px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  box-shadow: 0 4px 15px rgba(255, 255, 255, 0.1);
}
.footer__logo-img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

@media(max-width:1024px){
  .why-us__inner{grid-template-columns:1fr}
  .why-us__visual{display:flex; transform: scale(0.8); margin-bottom: 30px; justify-content: center;}
  .footer__top{grid-template-columns:1fr 1fr}
  .about-grid{grid-template-columns:1fr;gap:40px;}
}
@media(max-width:768px){
  .emergency-bar__divider{display:none}
  .header__nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg-card);flex-direction:column;padding:20px;border-bottom:1px solid var(--border);box-shadow:var(--shadow-lg)}
  .header__nav.open{display:flex}
  .hamburger{display:flex}
  .hero__content{padding:80px 24px 60px}
  .hero__actions{flex-direction:column;align-items:stretch}
  .hero__stats{gap:20px;padding:16px 24px}
  .stat__divider{display:none}
  .services-grid{grid-template-columns:1fr}
  .instalaciones-grid{grid-template-columns:1fr}
  .pets-grid{grid-template-columns:repeat(2,1fr)}
  .testimonios-track { width: calc(300px * 9); }
  .testimonios-track .testimonio-card { width: 300px; }
  @keyframes scroll-testimonios { 0% { transform: translateX(0); } 100% { transform: translateX(calc(-300px * 6 - 24px * 6)); } }
  .contacto__inner{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .gallery-item--1{grid-row:span 1}
  .footer__top{grid-template-columns:1fr;gap:32px}
  .footer__bottom{flex-direction:column;text-align:center}
  .footer__cta-banner{padding:32px 20px;flex-direction:column;text-align:center;gap:24px}
  .footer__cta-actions{justify-content:center}
  .urgencias-banner__inner{flex-direction:column;padding-right:30px}
  .floating-buttons{bottom:calc(20px + env(safe-area-inset-bottom));right:20px}
  .banner-active .floating-buttons{bottom:calc(20px + env(safe-area-inset-bottom))}
}
@media(max-width:480px){
  .container{padding:0 16px}
  .section{padding:60px 0}
  .pets-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:1fr}
  .gallery-item{height:200px}
  .why-us__actions{flex-direction:column}
  .float-btn{width:50px;height:50px;font-size:1.2rem}
  .float-btn__tooltip{display:none}
  .testimonios-track { width: calc(280px * 9); }
  .testimonios-track .testimonio-card { width: 280px; }
  @keyframes scroll-testimonios { 0% { transform: translateX(0); } 100% { transform: translateX(calc(-280px * 6 - 24px * 6)); } }
}

/* ========================================================================== 
   Production visual system and responsive polish
   ========================================================================== */
:root {
  --primary: #173f52;
  --primary-dark: #0f2e3d;
  --accent: #dc3545;
  --accent-dark: #b91c2c;
  --blue: #247fa1;
  --teal: #169b8c;
  --green: #19a463;
  --green-dark: #117a4a;
  --radius: 14px;
  --radius-lg: 22px;
  --transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
[data-theme="dark"] {
  --primary: #56c7e8;
  --primary-dark: #32a9ca;
  --accent: #f04c5b;
  --accent-dark: #cf2f40;
  --blue: #58b9d7;
  --teal: #42c7b5;
  --green: #35c77b;
  --green-dark: #22a863;
}

body { overflow-x: hidden; }
.gradient-text { background: linear-gradient(120deg, #2487a8, #18a493); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 3px solid #38bdf8; outline-offset: 3px; }

.btn--emergency { background: linear-gradient(135deg, var(--accent), var(--accent-dark)); box-shadow: 0 10px 24px rgba(185, 28, 44, 0.26); }
.btn--emergency::before, .btn--emergency::after { display: none; }
.btn--emergency:hover { background: linear-gradient(135deg, #e33e4e, #a71525); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(185, 28, 44, 0.32); }
.btn--facebook { transform: none; box-shadow: 0 8px 20px rgba(24, 119, 242, 0.22); }
.btn--facebook:hover { transform: translateY(-2px); }

.emergency-bar { min-height: 44px; padding: 9px 0; background: #0b1d2a; }
.header { top: 44px; }
.header.header-hidden { transform: translateY(calc(-100% - 44px)); }
.header__inner { padding-top: 10px; padding-bottom: 10px; }
.header__logo-img { width: 56px; height: 56px; }

.hero {
  min-height: 100svh;
  padding-top: 132px;
  background: linear-gradient(110deg, rgba(7, 25, 38, 0.88) 0%, rgba(14, 49, 66, 0.76) 50%, rgba(12, 64, 73, 0.58) 100%), url('img/hero-meriva.webp') center/cover no-repeat;
}
.hero__overlay { background: linear-gradient(to bottom, rgba(5, 18, 28, 0.12), rgba(5, 18, 28, 0.52)); }
.hero__content { max-width: 940px; padding: 82px 24px 88px; }
.hero__badge { margin-bottom: 22px; animation-duration: .55s; animation-delay: .05s; }
.hero__title { max-width: 900px; margin-inline: auto; font-size: clamp(2.45rem, 5.6vw, 4.45rem); letter-spacing: -0.045em; animation-duration: .55s; animation-delay: .12s; }
.hero__subtitle { max-width: 720px; margin: 0 auto 34px; color: rgba(255,255,255,.88); animation-duration: .55s; animation-delay: .2s; }
.hero__actions { margin-bottom: 42px; animation-duration: .55s; animation-delay: .28s; }
.hero__stats { animation-duration: .5s; animation-delay: .34s; }
.hero .gradient-text { background: linear-gradient(120deg, #67e1d0, #7dd3fc); -webkit-background-clip: text; background-clip: text; }

.servicio-domicilio { padding: 72px 0 88px; background: var(--bg-light); }
.domicilio-wrapper {
  position: relative;
  display: grid;
  grid-template-columns: 1.06fr .94fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
  overflow: hidden;
  padding: clamp(32px, 5vw, 64px);
  border-radius: 32px;
  color: #fff;
  background: radial-gradient(circle at 105% -5%, rgba(73, 208, 190, .22), transparent 34%), linear-gradient(145deg, #102f40, #174d5d);
  box-shadow: 0 28px 70px rgba(15, 46, 61, .24);
}
.domicilio-wrapper::after { content: ''; position: absolute; width: 260px; height: 260px; left: -130px; bottom: -150px; border-radius: 50%; background: rgba(255,255,255,.045); }
.domicilio-content, .domicilio-image { position: relative; z-index: 1; min-width: 0; }
.section__tag--inverse { color: #d6fff8; background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18); }
.section__tag--inverse i { margin-right: 6px; }
.domicilio-content h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.035em; margin: 8px 0 18px; }
.domicilio-content h2 span { display: block; color: #6ee7d6; }
.domicilio-lead { max-width: 620px; color: rgba(255,255,255,.84); font-size: 1.05rem; line-height: 1.75; }
.domicilio-services { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; margin: 28px 0; }
.domicilio-services li { display: flex; gap: 9px; align-items: flex-start; color: rgba(255,255,255,.92); font-size: .92rem; }
.domicilio-services i { color: #62d8a0; margin-top: 4px; }
.domicilio-zones { padding: 18px 20px; margin-bottom: 26px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(4, 19, 27, .26); }
.domicilio-zones strong { display: block; color: #fff; margin-bottom: 5px; }
.domicilio-zones strong i { color: #6ee7d6; margin-right: 7px; }
.domicilio-zones p { color: rgba(255,255,255,.7); font-size: .84rem; line-height: 1.6; }
.domicilio-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.domicilio-image img { width: 100%; min-height: 500px; object-fit: cover; border-radius: 24px; box-shadow: 0 24px 52px rgba(0,0,0,.3); }
.domicilio-image__badge { position: absolute; left: 18px; right: 18px; bottom: 18px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.25); border-radius: 16px; background: rgba(6, 28, 39, .82); backdrop-filter: blur(12px); }
.domicilio-image__badge i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; color: #0e5349; background: #75e4d4; }
.domicilio-image__badge span { display: flex; flex-direction: column; color: rgba(255,255,255,.72); font-size: .78rem; }
.domicilio-image__badge strong { color: #fff; font-size: .9rem; }

.services-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.service-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.service-card:hover { transform: translateY(-4px); }
.service-card__image { height: 190px; }
.service-card__cta--urgent { color: var(--accent); }
.service-card--secondary { display: none; }
.services-grid.is-expanded .service-card--secondary { display: flex; }
.services-toggle-wrap { display: flex; justify-content: center; margin-top: 34px; }
.services-toggle i { transition: transform .2s ease; }

.pet-card__image { width: 84px; height: 84px; margin: 0 auto 15px; border-radius: 50%; background-position: center; background-size: cover; box-shadow: 0 5px 16px rgba(15, 46, 61, .14); }

.testimonios-carousel { overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; scrollbar-width: thin; scrollbar-color: rgba(36,127,161,.5) transparent; padding: 20px 2px 30px; }
.testimonios-track { width: max-content; animation: none; }
.testimonios-track .testimonio-card { width: min(380px, 82vw); scroll-snap-align: start; }
.testimonios-carousel:hover .testimonios-track { animation-play-state: initial; }

.mobile-action-bar { display: none; }
.page-nosotros .header, .page-legal .header { top: 0; }
.page-nosotros .header.header-hidden, .page-legal .header.header-hidden { transform: translateY(-100%); }
.page-legal .legal-content { padding-top: 150px; }
.error-page { min-height: 100svh; display: grid; place-items: center; padding: 28px; background: radial-gradient(circle at top, #e8f7f4, #f8fafc 48%); }
.error-page__main { width: min(680px, 100%); padding: clamp(30px, 7vw, 64px); text-align: center; border: 1px solid var(--border); border-radius: 28px; background: var(--bg-card); box-shadow: var(--shadow-xl); }
.error-page__main img { width: 92px; height: 92px; margin: 0 auto 20px; }
.error-page__main h1 { margin: 8px 0 14px; font-size: clamp(2rem, 6vw, 3.2rem); letter-spacing: -.04em; }
.error-page__main p { max-width: 520px; margin: 0 auto 28px; color: var(--text-light); }
.error-page__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }

@media (max-width: 960px) {
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .domicilio-wrapper { grid-template-columns: 1fr; }
  .domicilio-image img { min-height: 0; height: 420px; }
}

@media (max-width: 768px) {
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .emergency-bar { height: 44px; min-height: 44px; padding: 0; }
  .emergency-bar__inner { height: 44px; flex-wrap: nowrap; justify-content: center; gap: 8px; }
  .emergency-bar__pulse { white-space: nowrap; font-size: .7rem; letter-spacing: .7px; }
  .emergency-bar__link { width: 34px; height: 34px; justify-content: center; padding: 0; font-size: 0; border: 1px solid rgba(255,255,255,.1); }
  .emergency-bar__link i { font-size: .95rem; }
  .header { top: 44px; }
  .header.header-hidden { transform: translateY(calc(-100% - 44px)); }
  .header__inner { min-height: 64px; padding: 8px 16px; gap: 8px; }
  .header__logo { gap: 8px; }
  .header__logo-img { width: 44px; height: 44px; }
  .logo-text__main { font-size: .95rem; }
  .logo-text__sub { font-size: .55rem; }
  .header__cta { gap: 3px; }
  .header__cta > .btn { display: none; }
  .theme-toggle, .hamburger { width: 36px; height: 36px; }
  .header__nav { top: 100%; padding: 12px 16px 18px; gap: 4px; }
  .header__nav .nav-link { width: 100%; text-align: center; padding: 12px; }

  .hero { min-height: 100svh; padding-top: 108px; }
  .hero__content { padding: 56px 16px 74px; }
  .hero__badge { padding: 8px 12px; font-size: .68rem; margin-bottom: 18px; }
  .hero__title { font-size: clamp(2.15rem, 10.5vw, 3rem); line-height: 1.04; }
  .hero__subtitle { font-size: 1rem; line-height: 1.65; margin-bottom: 26px; }
  .hero__actions { gap: 11px; margin-bottom: 30px; }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .hero__stats { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 15px 8px; }
  .stat__number { font-size: 1.45rem; }
  .stat__label { padding: 0 4px; font-size: .65rem; line-height: 1.25; }
  .hero__scroll-indicator { display: none; }

  .section { padding: 64px 0; }
  .section__header { margin-bottom: 38px; }
  .servicio-domicilio { padding: 52px 0 66px; }
  .domicilio-wrapper { padding: 26px 22px; border-radius: 24px; gap: 30px; }
  .domicilio-content h2 { font-size: 2.25rem; }
  .domicilio-services { grid-template-columns: 1fr; gap: 10px; }
  .domicilio-actions { flex-direction: column; }
  .domicilio-actions .btn { width: 100%; justify-content: center; }
  .domicilio-image img { height: 310px; border-radius: 18px; }
  .domicilio-image__badge { left: 10px; right: 10px; bottom: 10px; }

  .services-grid { grid-template-columns: 1fr; }
  .service-card__image { height: 215px; }
  .testimonios-track { width: max-content; }
  .testimonios-track .testimonio-card { width: min(320px, 82vw); }

  .floating-buttons { display: none; }
  .mobile-action-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 12000; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(7, 25, 38, .95); box-shadow: 0 -8px 30px rgba(2, 15, 23, .2); backdrop-filter: blur(16px); }
  .mobile-action { min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 9px; border-radius: 13px; color: #fff; font-weight: 800; }
  .mobile-action i { font-size: 1.05rem; }
  .mobile-action span { display: flex; flex-direction: column; line-height: 1.1; }
  .mobile-action small { margin-bottom: 3px; font-size: .62rem; font-weight: 500; opacity: .78; }
  .mobile-action--call { background: var(--accent); }
  .mobile-action--whatsapp { background: #149a55; }
  .footer { margin-top: 58px; }
  .page-legal .legal-content { padding-top: 110px; }
}

@media (max-width: 420px) {
  .logo-text__sub { display: none; }
  .domicilio-image__badge span { font-size: .7rem; }
  .domicilio-image__badge strong { font-size: .82rem; }
  .pets-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal, .service-card, .pet-card, .contact-card, .testimonio-card, .pricing-card { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* ========================================================================== 
   Interface-led redesign
   ========================================================================== */
.header__logo-img { object-fit: contain; }
.hero { min-height: 780px; }
.hero__layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .72fr);
  gap: clamp(42px, 6vw, 84px);
  align-items: center;
  width: 100%;
  padding-top: clamp(82px, 10vh, 120px);
  padding-bottom: clamp(76px, 9vh, 108px);
}
.hero__content { max-width: 700px; padding: 0; text-align: left; animation: hero-copy-in .8s cubic-bezier(.16,1,.3,1) both; }
.hero__badge { margin-bottom: 24px; }
.hero__title { max-width: 700px; margin: 0 0 22px; font-size: clamp(3rem, 5.2vw, 5rem); line-height: .99; }
.hero__subtitle { max-width: 640px; margin: 0 0 34px; font-size: clamp(1.02rem, 1.7vw, 1.18rem); }
.hero__actions { justify-content: flex-start; margin-bottom: 30px; }
.hero__trust { display: flex; flex-wrap: wrap; gap: 10px 18px; color: rgba(255,255,255,.8); font-size: .83rem; font-weight: 650; }
.hero__trust span { display: inline-flex; align-items: center; gap: 7px; }
.hero__trust i { color: #75e4d4; }
.hero-command {
  position: relative;
  overflow: hidden;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 28px;
  background: linear-gradient(160deg, rgba(255,255,255,.17), rgba(255,255,255,.075));
  box-shadow: 0 34px 80px rgba(2,15,23,.36), inset 0 1px 0 rgba(255,255,255,.16);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  animation: hero-panel-in .9s .12s cubic-bezier(.16,1,.3,1) both;
}
.hero-command::before { content: ''; position: absolute; inset: -45% 0 auto; height: 55%; background: linear-gradient(to bottom, transparent, rgba(117,228,212,.12), transparent); animation: panel-scan 5.5s 1.2s ease-in-out infinite; pointer-events: none; }
.hero-command__status { position: relative; display: flex; align-items: center; gap: 8px; margin-bottom: 22px; color: rgba(255,255,255,.74); font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.hero-command__status span { width: 9px; height: 9px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 5px rgba(74,222,128,.12); animation: status-breathe 2.2s ease-in-out infinite; }
.hero-command__heading { position: relative; display: flex; align-items: center; gap: 14px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.13); }
.hero-command__icon { display: grid; place-items: center; width: 52px; height: 52px; flex: 0 0 auto; border-radius: 16px; color: #0d4b4a; background: linear-gradient(145deg, #7fe7d9, #54c6d7); box-shadow: 0 12px 24px rgba(18,168,152,.24); font-size: 1.3rem; }
.hero-command__heading small { color: #87eadc; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hero-command__heading h2 { margin-top: 3px; color: #fff; font-size: 1.25rem; }
.hero-command__options { position: relative; display: grid; gap: 10px; margin-top: 16px; }
.hero-option { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; min-width: 0; padding: 13px 14px; border: 1px solid rgba(255,255,255,.11); border-radius: 16px; color: #fff; background: rgba(4,22,32,.28); transition: transform .25s ease, border-color .25s ease, background .25s ease; }
.hero-option > i:first-child { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; color: #79dfd2; background: rgba(121,223,210,.11); }
.hero-option > i:last-child { color: rgba(255,255,255,.45); font-size: .78rem; transition: transform .25s ease; }
.hero-option span { display: flex; min-width: 0; flex-direction: column; }
.hero-option strong { font-size: .9rem; }
.hero-option small { overflow: hidden; margin-top: 2px; color: rgba(255,255,255,.6); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.hero-option:hover { transform: translateX(4px); border-color: rgba(117,228,212,.45); background: rgba(22,155,140,.14); }
.hero-option:hover > i:last-child { transform: translateX(3px); }
.hero-option--call { border-color: rgba(244,91,104,.32); background: rgba(185,28,44,.13); }
.hero-option--call > i:first-child { color: #fff; background: linear-gradient(135deg, #f04c5b, #b91c2c); }
.hero-option--location > i:first-child { color: #052c32; background: linear-gradient(135deg, #72e2d0, #4fbdd7); }
.hero-command__note { position: relative; margin-top: 15px; color: rgba(255,255,255,.5); font-size: .67rem; text-align: center; }
.hero-command__note i { margin-right: 5px; }

.service-card__image { transition: transform .5s cubic-bezier(.16,1,.3,1), filter .3s ease; }
.service-card:hover .service-card__image { transform: scale(1.035); filter: saturate(1.06); }
.service-card__content { position: relative; z-index: 2; background: var(--bg-card); }

.why-us { overflow: hidden; background: radial-gradient(circle at 8% 12%, rgba(23,159,142,.1), transparent 31%), var(--bg-card); }
.why-us__inner { grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(48px,7vw,90px); align-items: center; }
.why-us__text-col { max-width: 560px; }
.why-us__lead { margin-bottom: 26px; }
.why-us__proofs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 30px; }
.why-us__proofs span { display: flex; align-items: center; gap: 9px; padding: 12px 13px; border: 1px solid var(--border); border-radius: 13px; color: var(--text-body); background: var(--bg-light); font-size: .8rem; font-weight: 700; }
.why-us__proofs i { color: var(--teal); }
.care-console { position: relative; overflow: hidden; padding: clamp(24px,4vw,34px); border-radius: 30px; color: #fff; background: radial-gradient(circle at 100% 0, rgba(79,189,215,.22), transparent 34%), linear-gradient(145deg,#0d2939,#123f4d); box-shadow: 0 30px 70px rgba(8,35,49,.24); }
.care-console::after { content: ''; position: absolute; width: 220px; height: 220px; right: -125px; bottom: -120px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: 0 0 0 32px rgba(255,255,255,.025), 0 0 0 64px rgba(255,255,255,.018); }
.care-console__top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.care-console__eyebrow { display: block; margin-bottom: 5px; color: #78ddcf; font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.care-console__top h3 { color: #fff; font-size: clamp(1.35rem,2vw,1.75rem); }
.care-console__signal { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(117,228,212,.24); border-radius: 15px; color: #75e4d4; background: rgba(117,228,212,.08); animation: signal-wave 2.8s ease-in-out infinite; }
.care-steps { position: relative; z-index: 1; display: grid; gap: 12px; counter-reset: care; }
.care-steps::before { content: ''; position: absolute; top: 32px; bottom: 32px; left: 22px; width: 1px; background: linear-gradient(#63d8ca,rgba(99,216,202,.08)); }
.care-step { position: relative; display: grid; grid-template-columns: 44px 1fr 36px; gap: 14px; align-items: center; padding: 16px; border: 1px solid rgba(255,255,255,.1); border-radius: 18px; background: rgba(255,255,255,.055); backdrop-filter: blur(10px); transition: transform .25s ease, background .25s ease, border-color .25s ease; }
.care-step:hover { transform: translateX(5px); border-color: rgba(117,228,212,.32); background: rgba(117,228,212,.09); }
.care-step__number { position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; color: #0c4350; background: #75e4d4; font-size: .72rem; font-weight: 900; }
.care-step strong { display: block; color: #fff; font-size: .9rem; }
.care-step p { margin-top: 3px; color: rgba(255,255,255,.61); font-size: .73rem; line-height: 1.5; }
.care-step > i { color: rgba(117,228,212,.7); }
.care-console__footer { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 14px; margin-top: 22px; padding-top: 19px; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.62); font-size: .72rem; }
.care-console__footer a { color: #75e4d4; font-weight: 800; }
.care-console__footer i { margin: 0 5px; }

.google-reviews { background: var(--bg-light); }
.google-reviews__panel { position: relative; display: grid; grid-template-columns: 1.05fr .75fr; gap: clamp(36px,7vw,96px); align-items: center; overflow: hidden; padding: clamp(34px,6vw,74px); border-radius: 34px; color: #fff; background: radial-gradient(circle at 90% 0, rgba(66,199,181,.22), transparent 31%), linear-gradient(140deg,#0b2432,#163e4d 58%,#0f4e52); box-shadow: 0 30px 75px rgba(10,40,53,.22); }
.google-reviews__panel::before { content: ''; position: absolute; width: 340px; height: 340px; right: -165px; bottom: -195px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: 0 0 0 45px rgba(255,255,255,.018),0 0 0 90px rgba(255,255,255,.012); }
.google-reviews__content, .google-reviews__preview { position: relative; z-index: 1; }
.google-reviews__brand { display: inline-flex; align-items: center; gap: 11px; margin-bottom: 20px; }
.google-reviews__brand > span:last-child { display: flex; flex-direction: column; line-height: 1.06; }
.google-reviews__brand small { color: rgba(255,255,255,.58); font-size: .63rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.google-reviews__brand strong { color: #fff; font-size: 1rem; }
.google-mark { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #4285f4; background: #fff; box-shadow: 0 8px 22px rgba(0,0,0,.18); font-size: 1.55rem; font-weight: 900; font-family: Arial,sans-serif; }
.google-mark--sm { width: 28px; height: 28px; box-shadow: none; font-size: 1rem; }
.google-reviews__content h2 { margin-bottom: 17px; color: #fff; font-size: clamp(2.15rem,4.6vw,3.9rem); letter-spacing: -.045em; line-height: 1.03; }
.google-reviews__content h2 span { color: #75e4d4; }
.google-reviews__content p { max-width: 600px; color: rgba(255,255,255,.72); font-size: 1rem; line-height: 1.75; }
.google-reviews__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.btn--google { color: #183447; background: #fff; box-shadow: 0 12px 25px rgba(2,15,23,.2); }
.btn--google:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(2,15,23,.28); }
.btn--google i { color: #4285f4; }
.btn--review-outline { color: #fff; border: 1px solid rgba(255,255,255,.32); background: rgba(255,255,255,.06); }
.btn--review-outline:hover { color: #fff; border-color: #75e4d4; background: rgba(117,228,212,.1); transform: translateY(-2px); }
.google-reviews__preview { width: min(360px,100%); justify-self: end; padding: 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 25px; background: rgba(255,255,255,.11); box-shadow: 0 24px 55px rgba(2,15,23,.28); backdrop-filter: blur(12px); transform: rotate(2deg); transition: transform .5s cubic-bezier(.16,1,.3,1); }
.google-reviews__panel:hover .google-reviews__preview { transform: rotate(0) translateY(-4px); }
.review-searchbar { display: grid; grid-template-columns: 28px 1fr auto; gap: 9px; align-items: center; padding: 9px 11px; border-radius: 15px; color: #52606d; background: #fff; font-size: .8rem; }
.review-searchbar i { color: #84919c; }
.review-preview__body { margin-top: 9px; padding: 24px 18px 20px; border-radius: 17px; color: #173443; background: #fff; text-align: center; }
.review-preview__label { display: inline-block; margin-bottom: 10px; color: #5f6b75; font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.review-preview__body img { width: 76px; height: 76px; margin: 0 auto 8px; object-fit: contain; }
.review-preview__body h3 { margin-bottom: 6px; color: #173443; font-size: 1.1rem; }
.review-preview__stars { display: flex; justify-content: center; gap: 3px; color: #f5b400; font-size: .84rem; }
.review-preview__body p { margin: 7px 0 12px; color: #64727c; font-size: .75rem; }
.review-preview__verified { display: inline-flex; align-items: center; gap: 5px; padding: 7px 9px; border-radius: 9px; color: #27715c; background: #eaf7f2; font-size: .63rem; font-weight: 750; }

.contacto { background: var(--bg-card); }
.contacto .section__header { max-width: 820px; }
.mapa-wrapper { box-shadow: 0 20px 50px rgba(15,46,61,.13); }
.footer { margin-top: 0; }
.footer__inner { padding-top: 64px; }
.logo-icon-bg { width: 58px; height: 58px; border-radius: 0; background: transparent; box-shadow: none; }
.footer__logo-img { width: 58px; height: 58px; }
.footer__local-summary { display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.07); color: #718096; font-size: .76rem; line-height: 1.6; }
.footer__local-summary strong { color: #cbd5e1; }
.footer__designer-credit { display: flex; align-items: center; justify-content: center; gap: 5px; padding: 23px 0; border-bottom: 1px solid rgba(255,255,255,.07); color: #718096; font-size: .78rem; }
.footer__designer-credit a { color: #cbd5e1; font-weight: 750; text-decoration: none; transition: color .2s ease; }
.footer__designer-credit a:hover, .footer__designer-credit a:focus-visible { color: #75e4d4; }
.footer__bottom { padding: 24px 0 28px; }
.footer__legal { display: flex; align-items: center; gap: 10px; }

[data-theme="dark"] .why-us__proofs span { background: rgba(255,255,255,.035); }
[data-theme="dark"] .google-reviews { background: var(--bg-light); }

@keyframes hero-copy-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes hero-panel-in { from { opacity: 0; transform: translate3d(34px,18px,0) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes panel-scan { 0%,18% { transform: translateY(-70%); opacity: 0; } 36% { opacity: 1; } 70%,100% { transform: translateY(390%); opacity: 0; } }
@keyframes status-breathe { 0%,100% { box-shadow: 0 0 0 5px rgba(74,222,128,.11); } 50% { box-shadow: 0 0 0 9px rgba(74,222,128,0); } }
@keyframes signal-wave { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); box-shadow: 0 10px 25px rgba(66,199,181,.12); } }

@media (max-width: 1024px) {
  .hero__layout { grid-template-columns: 1fr 380px; gap: 34px; }
  .hero__title { font-size: clamp(2.7rem,5.6vw,4.2rem); }
  .why-us__inner { grid-template-columns: 1fr 1.05fr; gap: 40px; }
}

@media (max-width: 880px) {
  .hero { min-height: auto; }
  .hero__layout { grid-template-columns: 1fr; max-width: 720px; padding-top: 76px; }
  .hero__content { max-width: 680px; }
  .hero-command { width: 100%; max-width: 600px; }
  .why-us__inner { grid-template-columns: 1fr; }
  .why-us__text-col { max-width: 680px; }
  .care-console { max-width: 680px; }
  .google-reviews__panel { grid-template-columns: 1fr .62fr; gap: 30px; }
}

@media (max-width: 768px) {
  .hero { padding-top: 108px; background-position: 58% center; }
  .hero__layout { padding: 48px 16px 70px; }
  .hero__content { padding: 0; text-align: left; }
  .hero__title { margin-inline: 0; font-size: clamp(2.45rem,11.5vw,3.35rem); }
  .hero__subtitle { margin-inline: 0; }
  .hero__actions { margin-bottom: 23px; }
  .hero__trust { display: grid; gap: 8px; }
  .hero-command { padding: 18px; border-radius: 22px; }
  .hero-command__heading h2 { font-size: 1.08rem; }
  .hero-option { padding: 11px; }
  .hero-option small { white-space: normal; }
  .why-us__proofs { grid-template-columns: 1fr; }
  .why-us__actions { flex-direction: column; }
  .why-us__actions .btn { width: 100%; justify-content: center; }
  .care-console { padding: 22px 18px; border-radius: 24px; }
  .care-step { grid-template-columns: 40px 1fr; }
  .care-step__number { width: 40px; height: 40px; }
  .care-step > i { display: none; }
  .care-steps::before { left: 19px; }
  .care-console__footer { flex-direction: column; }
  .google-reviews__panel { grid-template-columns: 1fr; padding: 30px 22px; border-radius: 26px; }
  .google-reviews__content h2 { font-size: 2.35rem; }
  .google-reviews__actions { flex-direction: column; }
  .google-reviews__actions .btn { width: 100%; justify-content: center; }
  .google-reviews__preview { justify-self: center; transform: none; }
  .footer__inner { padding-top: 48px; }
  .footer__local-summary { grid-template-columns: 1fr; gap: 9px; text-align: left; }
  .footer__bottom { padding: 22px 0 calc(108px + env(safe-area-inset-bottom)); }
  .footer__legal { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__content, .hero-command, .hero-command::before, .hero-command__status span, .care-console__signal { animation: none !important; }
}

/* Google review carousel */
.google-testimonials {
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 20%, rgba(66, 133, 244, .08), transparent 28%),
    radial-gradient(circle at 92% 78%, rgba(66, 199, 181, .11), transparent 30%),
    var(--bg-light);
}
.reviews-heading { max-width: 760px; }
.reviews-heading .section__tag { gap: 7px; }
.reviews-heading__google-logo { display: block; width: 17px; height: 17px; object-fit: contain; }
.reviews-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 22px;
  padding: 14px 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: color-mix(in srgb, var(--bg-card) 88%, transparent);
  box-shadow: var(--shadow-sm);
}
.reviews-toolbar__summary { display: flex; align-items: center; gap: 11px; color: var(--text-dark); }
.reviews-toolbar__summary strong { font-size: .92rem; }
.review-google-logo {
  display: block;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 0;
  object-fit: contain;
  background: transparent;
}
.reviews-motion-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 13px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text-body);
  background: var(--bg-card);
  font: inherit;
  font-size: .78rem;
  font-weight: 750;
  cursor: pointer;
  transition: var(--transition);
}
.reviews-motion-toggle:hover,
.reviews-motion-toggle:focus-visible { color: var(--primary); border-color: rgba(36, 127, 161, .35); transform: translateY(-1px); }
.reviews-motion-toggle[aria-pressed="true"] { color: #fff; border-color: var(--primary); background: var(--primary); }
.reviews-carousel {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  padding: 10px 0 24px;
  mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.reviews-track {
  display: flex;
  width: max-content;
  animation: reviews-loop 38s linear infinite;
  will-change: transform;
}
.reviews-group { display: flex; gap: 20px; padding-right: 20px; }
.reviews-carousel:hover .reviews-track,
.reviews-carousel:focus-within .reviews-track,
.reviews-carousel.is-paused .reviews-track { animation-play-state: paused; }
.review-card {
  position: relative;
  display: flex;
  flex: 0 0 clamp(292px, 29vw, 390px);
  min-height: 276px;
  flex-direction: column;
  padding: 25px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 24px;
  color: var(--text-body);
  background: var(--bg-card);
  box-shadow: 0 15px 38px rgba(15, 46, 61, .09);
  text-decoration: none;
  transition: transform .35s cubic-bezier(.16, 1, .3, 1), border-color .35s ease, box-shadow .35s ease;
}
.review-card::after {
  content: '\201C';
  position: absolute;
  right: 18px;
  bottom: -30px;
  color: rgba(66, 133, 244, .06);
  font-family: Georgia, serif;
  font-size: 9rem;
  line-height: 1;
  pointer-events: none;
}
.review-card:hover,
.review-card:focus-visible { transform: translateY(-6px); border-color: rgba(66, 133, 244, .32); box-shadow: 0 22px 48px rgba(15, 46, 61, .15); outline: none; }
.review-card__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.review-card__avatar {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  color: #fff;
  background: linear-gradient(135deg, var(--primary), #42c7b5);
  box-shadow: 0 9px 20px rgba(36, 127, 161, .22);
  font-size: .86rem;
  font-weight: 850;
  letter-spacing: .04em;
}
.review-card__stars { display: inline-flex; align-items: center; gap: 4px; color: #fbbc04; font-size: .9rem; }
.review-card > .review-card__stars { margin-bottom: 17px; }
.review-card p { max-width: 285px; margin: 0 0 22px; color: var(--text-body); font-size: .96rem; line-height: 1.72; }
.review-card__author { display: flex; flex-direction: column; gap: 4px; margin-top: auto; }
.review-card__author strong { color: var(--text-dark); font-size: .94rem; }
.review-card__author span { color: var(--text-light); font-size: .75rem; }
.review-card__link { display: inline-flex; align-items: center; gap: 7px; margin-top: 17px; color: #4285f4; font-size: .76rem; font-weight: 800; }
.review-card__link i { font-size: .66rem; }
.reviews-cta { display: flex; justify-content: center; margin-top: 22px; }
.reviews-cta .btn i { color: #fff; }
@keyframes reviews-loop { to { transform: translate3d(-50%, 0, 0); } }

@media (max-width: 768px) {
  .reviews-toolbar { align-items: flex-start; }
  .reviews-toolbar__summary { flex-wrap: wrap; }
  .reviews-toolbar__summary strong { width: 100%; }
  .reviews-motion-toggle span { display: none; }
  .reviews-carousel { mask-image: linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%); }
  .review-card { flex-basis: min(82vw, 330px); min-height: 264px; padding: 22px; }
  .reviews-track { animation-duration: 32s; }
  .reviews-cta .btn { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .reviews-carousel { overflow-x: auto; mask-image: none; scroll-snap-type: x mandatory; }
  .reviews-track { animation: none !important; }
  .reviews-group[aria-hidden="true"] { display: none; }
  .review-card { scroll-snap-align: center; }
  .reviews-motion-toggle { display: none; }
}
