/* =====================================================
   CONSULTORIOS PSICOLÓGICOS VEC — Hoja de estilos
   ===================================================== */

/* ---- Variables ---- */
:root {
  --p1:  #854b88;
  --p2:  #703c87;
  --p3:  #a66daa;
  --cr:  #f7e8d3;
  --cr2: #fdf6ef;
  --cr3: #edd5b3;
  --wh:  #ffffff;
  --t1:  #2c1f3a;
  --t2:  #5a4a6b;
  --t3:  #8a7a9b;
  --sh1: 0 4px 20px rgba(133,75,136,.10);
  --sh2: 0 8px 40px rgba(133,75,136,.18);
  --sh3: 0 16px 60px rgba(133,75,136,.25);
  --r1:  14px;
  --r2:  22px;
  --tr:  all .3s ease;
  --trs: all .5s ease;
}

/* ---- Reset ---- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: 'Nunito', sans-serif;
  color: var(--t1);
  background: var(--wh);
  line-height: 1.75;
  overflow-x: hidden;
}
h1,h2,h3,h4,h5 { font-family:'Playfair Display',serif; line-height:1.28; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
img { max-width:100%; display:block; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }

/* ---- Layout ---- */
.container { max-width:1140px; margin:0 auto; padding:0 24px; }

/* ---- Tags / badges ---- */
.tag {
  display:inline-block;
  font-size:.75rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase;
  color:var(--p1); background:rgba(133,75,136,.1);
  padding:6px 14px; border-radius:50px; margin-bottom:14px;
}
.tag-light { color:var(--cr); background:rgba(247,232,211,.18); }
.badge {
  display:inline-block;
  font-size:.75rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--cr); background:rgba(247,232,211,.18);
  padding:7px 16px; border-radius:50px; margin-bottom:18px;
  border:1px solid rgba(247,232,211,.3);
}

/* ---- Section headers ---- */
.section-title {
  font-size:clamp(1.75rem,3.8vw,2.6rem);
  color:var(--t1); margin-bottom:14px;
}
.section-title em { font-style:italic; color:var(--p1); }
.section-title.light { color:var(--wh); }
.section-title.light em { color:var(--cr); }
.section-sub { font-size:1.02rem; color:var(--t2); max-width:540px; margin:0 auto; }
.section-header { text-align:center; margin-bottom:60px; }

/* ---- Buttons ---- */
.btn {
  display:inline-flex; align-items:center; gap:9px;
  padding:13px 28px; border-radius:50px;
  font-family:'Nunito',sans-serif; font-weight:800; font-size:.93rem;
  transition:var(--tr); border:2px solid transparent; cursor:pointer;
}
.btn-primary {
  background:linear-gradient(135deg,var(--p1),var(--p2));
  color:var(--wh);
  box-shadow:0 4px 20px rgba(133,75,136,.35);
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(133,75,136,.48); }
.btn-white {
  background:var(--wh); color:var(--p1);
  box-shadow:0 4px 20px rgba(0,0,0,.12);
}
.btn-white:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.18); }
.btn-ghost {
  background:rgba(255,255,255,.12); color:var(--wh);
  border-color:rgba(255,255,255,.45);
  backdrop-filter:blur(10px);
}
.btn-ghost:hover { background:rgba(255,255,255,.22); border-color:var(--wh); }
.btn-outline-white {
  background:transparent; color:var(--wh);
  border-color:rgba(255,255,255,.5);
}
.btn-outline-white:hover { background:rgba(255,255,255,.14); border-color:var(--wh); }
.btn-full { width:100%; justify-content:center; }


/* =====================================================
   NAVBAR
   ===================================================== */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:900;
  padding:20px 0; transition:var(--trs);
}
.navbar.scrolled {
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  box-shadow:0 2px 30px rgba(133,75,136,.11);
  padding:13px 0;
}
.nav-container {
  max-width:1140px; margin:0 auto; padding:0 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.nav-logo { display:flex; flex-direction:column; line-height:1; }
.logo-text {
  font-family:'Playfair Display',serif; font-size:1.55rem; font-weight:700;
  color:var(--wh); letter-spacing:.06em; transition:var(--tr);
}
.logo-sub {
  font-size:.62rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:rgba(255,255,255,.75); transition:var(--tr);
}
.navbar.scrolled .logo-text { color:var(--t1); }
.navbar.scrolled .logo-sub  { color:var(--t3); }
.nav-menu {
  display:flex; align-items:center; gap:4px;
}
.nav-link {
  font-weight:700; font-size:.88rem;
  color:rgba(255,255,255,.9); padding:8px 13px; border-radius:50px;
  transition:var(--tr);
}
.nav-link:hover { color:var(--wh); background:rgba(255,255,255,.14); }
.navbar.scrolled .nav-link { color:var(--t1); }
.navbar.scrolled .nav-link:hover { color:var(--p1); background:rgba(133,75,136,.07); }
.nav-link.nav-cta {
  background:rgba(255,255,255,.18); color:var(--wh);
  border:1.5px solid rgba(255,255,255,.45);
}
.nav-link.nav-cta:hover {
  background:var(--wh); color:var(--p1); border-color:var(--wh);
}
.navbar.scrolled .nav-link.nav-cta {
  background:var(--p1); color:var(--wh); border-color:var(--p1);
}
.navbar.scrolled .nav-link.nav-cta:hover { background:var(--p2); border-color:var(--p2); }
.nav-toggle {
  display:none; flex-direction:column; gap:5px; padding:4px;
}
.nav-toggle span {
  display:block; width:24px; height:2px;
  background:var(--wh); border-radius:2px; transition:var(--tr);
}
.navbar.scrolled .nav-toggle span { background:var(--t1); }
.nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.nav-overlay {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.35);
  z-index:898; opacity:0; transition:opacity .35s ease;
}
.nav-overlay.show { display:block; opacity:1; }


/* =====================================================
   HERO
   ===================================================== */
.hero {
  min-height:100vh;
  background:linear-gradient(140deg, var(--p2) 0%, var(--p1) 55%, #9d5ca0 100%);
  position:relative; display:flex; align-items:center;
  overflow:hidden; padding:110px 0 70px;
}
.hero-shapes { position:absolute; inset:0; pointer-events:none; }
.shape {
  position:absolute; border-radius:50%; opacity:.13;
}
.s1 {
  width:520px; height:520px; background:var(--cr);
  top:-160px; right:-110px;
  animation:floatShape 9s ease-in-out infinite;
}
.s2 {
  width:300px; height:300px; background:var(--wh);
  bottom:-100px; left:-80px;
  animation:floatShape 11s ease-in-out infinite reverse;
}
.s3 {
  width:180px; height:180px; background:var(--cr);
  top:42%; left:28%;
  animation:floatShape 13s ease-in-out infinite;
}
@keyframes floatShape {
  0%,100% { transform:translateY(0) scale(1); }
  50%      { transform:translateY(-28px) scale(1.05); }
}
.hero-container {
  max-width:1140px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:60px; position:relative; z-index:1;
}
.hero h1 {
  font-size:clamp(2rem,5vw,3.5rem);
  color:var(--wh); line-height:1.18; margin-bottom:20px;
}
.hero h1 em { font-style:italic; color:var(--cr); }
.hero-sub {
  font-size:1.08rem; color:rgba(255,255,255,.85);
  margin-bottom:34px; line-height:1.85;
}
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; }
.hero-card-wrap { display:flex; justify-content:center; }
.hero-card {
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.22); border-radius:24px;
  padding:40px 36px; max-width:310px; text-align:center;
  color:var(--wh);
  transition:var(--tr);
}
.hero-card:hover { transform:translateY(-6px); }
.hc-icon { font-size:2.8rem; margin-bottom:14px; }
.hc-quote {
  font-family:'Playfair Display',serif; font-style:italic;
  font-size:1.1rem; line-height:1.6; margin-bottom:22px; opacity:.95;
}
.hc-pills { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.hc-pills span {
  background:rgba(255,255,255,.18); padding:5px 12px;
  border-radius:50px; font-size:.78rem; font-weight:700;
  border:1px solid rgba(255,255,255,.25);
}
.hero-scroll {
  position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:7px;
  color:rgba(255,255,255,.65); font-size:.75rem; letter-spacing:.12em;
  text-transform:uppercase; z-index:1; animation:heroScrollBounce 2.2s ease-in-out infinite;
}
@keyframes heroScrollBounce {
  0%,100% { transform:translateX(-50%) translateY(0); }
  50%      { transform:translateX(-50%) translateY(-9px); }
}


/* =====================================================
   NOSOTROS
   ===================================================== */
.about { padding:100px 0; background:var(--wh); }
.about-grid {
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:80px;
}
.about-visual { position:relative; height:400px; }
.blob-bg {
  position:absolute; width:360px; height:360px;
  background:linear-gradient(135deg,rgba(133,75,136,.08),rgba(247,232,211,.55));
  border-radius:60% 40% 70% 30% / 50% 60% 40% 50%;
  top:50%; left:50%; transform:translate(-50%,-50%);
  animation:morphBlob 9s ease-in-out infinite;
}
@keyframes morphBlob {
  0%,100% { border-radius:60% 40% 70% 30% / 50% 60% 40% 50%; }
  25%      { border-radius:40% 60% 30% 70% / 60% 40% 60% 40%; }
  50%      { border-radius:50% 50% 60% 40% / 40% 70% 30% 60%; }
  75%      { border-radius:70% 30% 40% 60% / 50% 40% 70% 30%; }
}
.stat-card {
  position:absolute; z-index:1;
  background:var(--wh); border-radius:18px;
  padding:20px 24px;
  box-shadow:var(--sh2);
  transition:var(--tr);
}
.stat-card:hover { transform:translateY(-5px); box-shadow:var(--sh3); }
.sc1 { top:24px; left:20px; display:flex; flex-direction:column; align-items:center; }
.sc2 { bottom:44px; right:10px; display:flex; flex-direction:column; align-items:center; }
.sc3 { bottom:28px; left:32px; display:flex; align-items:center; gap:12px; }
.sc3 i { color:var(--p1); font-size:1.4rem; }
.sc-num {
  font-family:'Playfair Display',serif; font-size:2.5rem;
  font-weight:700; color:var(--p1); line-height:1;
}
.sc-label { font-size:.8rem; font-weight:700; color:var(--t2); text-align:center; }
.about-content .section-title { text-align:left; }
.about-content p { color:var(--t2); margin-bottom:14px; font-size:1rem; }
.values-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:10px; margin:26px 0;
}
.value-item {
  display:flex; align-items:center; gap:10px;
  background:var(--cr2); padding:11px 15px; border-radius:11px;
  font-weight:700; font-size:.88rem; color:var(--t1); transition:var(--tr);
}
.value-item:hover { background:rgba(133,75,136,.09); color:var(--p1); }
.value-item i { color:var(--p1); width:17px; }


/* =====================================================
   SERVICIOS
   ===================================================== */
.services { padding:100px 0; background:var(--cr2); }
.services-grid {
  display:grid; grid-template-columns:1.4fr 1fr 1fr;
  gap:22px; align-items:start;
}
.svc-card {
  background:var(--wh); border-radius:var(--r2);
  padding:36px 32px; box-shadow:var(--sh1);
  transition:var(--tr); position:relative; overflow:hidden;
}
.svc-card::after {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--p1),var(--p3));
  transform:scaleX(0); transition:var(--tr); transform-origin:left;
}
.svc-card:hover::after { transform:scaleX(1); }
.svc-card:hover { transform:translateY(-7px); box-shadow:var(--sh2); }
.svc-main { background:linear-gradient(160deg,var(--wh) 70%,rgba(133,75,136,.03)); }
.svc-purple {
  background:linear-gradient(145deg,var(--p2) 0%,var(--p1) 100%);
  color:var(--wh);
}
.svc-purple::after { display:none; }
.svc-purple:hover { transform:translateY(-7px); }
.svc-icon {
  width:54px; height:54px;
  background:rgba(133,75,136,.11); border-radius:15px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px; transition:var(--tr);
}
.svc-card:hover .svc-icon { background:linear-gradient(135deg,var(--p1),var(--p2)); }
.svc-card:hover .svc-icon i { color:var(--wh); }
.svc-icon-light { background:rgba(255,255,255,.18); }
.svc-card:hover .svc-icon-light { background:rgba(255,255,255,.28); }
.svc-icon i { font-size:1.45rem; color:var(--p1); transition:var(--tr); }
.svc-icon-light i { color:var(--cr); }
.svc-card h3 { font-size:1.25rem; color:var(--t1); margin-bottom:9px; }
.svc-purple h3 { color:var(--wh); }
.svc-card > p { font-size:.93rem; color:var(--t2); margin-bottom:18px; }
.svc-purple > p { color:rgba(255,255,255,.85); }
.svc-tags { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:22px; }
.svc-tags span {
  display:inline-flex; align-items:center; gap:5px;
  background:var(--cr2); padding:5px 11px; border-radius:50px;
  font-size:.8rem; font-weight:700; color:var(--t1); transition:var(--tr);
}
.svc-tags span:hover { background:rgba(133,75,136,.1); color:var(--p1); }
.svc-tags span i { font-size:.72rem; color:var(--p1); }
.svc-card blockquote {
  border-left:2px solid rgba(255,255,255,.4); padding-left:14px;
  font-style:italic; font-size:.9rem; line-height:1.65;
  color:rgba(255,255,255,.9); margin:14px 0 22px;
}
.svc-link {
  display:inline-flex; align-items:center; gap:8px;
  font-weight:800; font-size:.85rem; color:var(--p1);
  padding-bottom:2px; border-bottom:1.5px solid rgba(133,75,136,.2);
  transition:var(--tr);
}
.svc-link:hover { gap:13px; border-color:var(--p1); }
.svc-link-light { color:var(--cr); border-color:rgba(247,232,211,.35); }
.svc-link-light:hover { color:var(--wh); border-color:var(--wh); }


/* =====================================================
   TALLERES
   ===================================================== */
.workshops {
  padding:100px 0;
  background:linear-gradient(135deg,var(--p2) 0%,var(--p1) 60%,#9d5ca0 100%);
  position:relative; overflow:hidden;
}
.ws-deco { position:absolute; inset:0; pointer-events:none; }
.ws-deco-1 {
  position:absolute; width:420px; height:420px;
  background:rgba(247,232,211,.06); border-radius:50%;
  top:-150px; right:-110px;
}
.ws-deco-2 {
  position:absolute; width:260px; height:260px;
  background:rgba(255,255,255,.05); border-radius:50%;
  bottom:-80px; left:8%;
}
.ws-grid {
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:80px; position:relative; z-index:1;
}
.ws-text > p {
  color:rgba(255,255,255,.85); font-size:1rem;
  margin-bottom:30px; line-height:1.85;
}
.ws-features { display:flex; flex-direction:column; gap:18px; margin-bottom:34px; }
.ws-feat {
  display:flex; align-items:flex-start; gap:14px; color:var(--wh);
}
.ws-feat-icon {
  width:44px; height:44px; flex-shrink:0;
  background:rgba(247,232,211,.18); border-radius:12px;
  display:flex; align-items:center; justify-content:center;
}
.ws-feat-icon i { color:var(--cr); font-size:1.05rem; }
.ws-feat h4 { font-family:'Nunito',sans-serif; font-weight:800; font-size:.93rem; margin-bottom:2px; }
.ws-feat p { font-size:.86rem; opacity:.78; }
.ws-card {
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.2); border-radius:24px;
  padding:48px 38px; text-align:center; color:var(--wh);
}
.ws-card-icon { font-size:3.2rem; margin-bottom:18px; }
.ws-card h4 { font-size:1.35rem; margin-bottom:11px; color:var(--wh); }
.ws-card p { font-size:.93rem; opacity:.85; margin-bottom:26px; line-height:1.7; }


/* =====================================================
   FAQ
   ===================================================== */
.faq { padding:100px 0; background:var(--wh); }
.faq-list {
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  max-width:960px; margin:0 auto;
}
.faq-item {
  border:1.5px solid rgba(133,75,136,.13); border-radius:var(--r1);
  overflow:hidden; transition:var(--tr);
}
.faq-item:hover { border-color:rgba(133,75,136,.28); }
.faq-item.open  { border-color:rgba(133,75,136,.4); box-shadow:var(--sh1); }
.faq-q {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:20px 22px; gap:14px; font-weight:700; font-size:.92rem;
  color:var(--t1); text-align:left; transition:var(--tr);
}
.faq-q:hover { background:rgba(133,75,136,.04); }
.faq-item.open .faq-q { background:rgba(133,75,136,.06); color:var(--p1); }
.faq-q i { flex-shrink:0; font-size:.82rem; color:var(--p1); transition:var(--tr); }
.faq-item.open .faq-q i { transform:rotate(45deg); }
.faq-a {
  max-height:0; overflow:hidden;
  transition:max-height .4s ease, padding .3s ease;
  padding:0 22px;
}
.faq-item.open .faq-a { max-height:220px; padding:0 22px 20px; }
.faq-a p { font-size:.9rem; color:var(--t2); line-height:1.75; }


/* =====================================================
   SEDES
   ===================================================== */
.locations { padding:100px 0; background:var(--cr2); }
.loc-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.loc-card {
  background:var(--wh); border-radius:var(--r2);
  overflow:hidden; box-shadow:var(--sh1); transition:var(--tr);
}
.loc-card:hover { transform:translateY(-5px); box-shadow:var(--sh2); }
.loc-info {
  display:flex; align-items:flex-start; gap:15px;
  padding:26px 28px 18px;
}
.loc-icon {
  width:44px; height:44px; flex-shrink:0;
  background:linear-gradient(135deg,var(--p1),var(--p2));
  border-radius:12px; display:flex; align-items:center; justify-content:center;
}
.loc-icon i { color:var(--wh); font-size:.95rem; }
.loc-info h3 { font-family:'Nunito',sans-serif; font-weight:800; font-size:1.05rem; color:var(--t1); margin-bottom:4px; }
.loc-addr { font-size:.88rem; color:var(--t2); line-height:1.65; margin-bottom:9px; }
.loc-link {
  display:inline-flex; align-items:center; gap:5px;
  font-size:.8rem; font-weight:800; color:var(--p1); transition:var(--tr);
}
.loc-link:hover { color:var(--p2); }
.loc-map { overflow:hidden; }
.loc-map iframe {
  display:block; filter:saturate(.7) contrast(.95);
  transition:var(--tr);
}
.loc-card:hover .loc-map iframe { filter:saturate(1) contrast(1); }


/* =====================================================
   CONTACTO
   ===================================================== */
.contact { padding:100px 0; background:var(--wh); }
.contact-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:start;
}
.contact-info .section-title { text-align:left; margin-bottom:14px; }
.contact-info > p { color:var(--t2); margin-bottom:32px; font-size:1rem; }
.contact-methods { display:flex; flex-direction:column; gap:11px; margin-bottom:24px; }
.cmethod {
  display:flex; align-items:center; gap:15px;
  padding:15px 19px; border-radius:13px; background:var(--cr2);
  border:1.5px solid transparent; transition:var(--tr);
}
.cmethod:hover {
  background:var(--wh); border-color:rgba(133,75,136,.2);
  box-shadow:var(--sh1); transform:translateX(5px);
}
.cmethod-wa { background:rgba(37,211,102,.07); border-color:rgba(37,211,102,.2); }
.cmethod-wa:hover { background:rgba(37,211,102,.12); border-color:rgba(37,211,102,.38); }
.cmethod-wa .cmethod-icon { background:#25d366; }
.cmethod-wa .cmethod-icon i { color:var(--wh); }
.cmethod-icon {
  width:44px; height:44px; flex-shrink:0;
  background:linear-gradient(135deg,var(--p1),var(--p2));
  border-radius:12px; display:flex; align-items:center; justify-content:center;
}
.cmethod-icon i { color:var(--wh); font-size:1.1rem; }
.cmethod-label { display:block; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--t3); }
.cmethod-val   { display:block; font-size:.93rem; font-weight:700; color:var(--t1); }
.contact-hours {
  display:flex; align-items:flex-start; gap:13px;
  padding:15px 19px; background:rgba(133,75,136,.06); border-radius:13px;
  color:var(--t2);
}
.contact-hours i { color:var(--p1); font-size:1.05rem; margin-top:3px; }
.contact-hours strong { display:block; font-size:.86rem; color:var(--t1); margin-bottom:2px; }
.contact-hours p { font-size:.84rem; }

/* Form */
.contact-form-wrap { position:relative; }
.contact-form {
  background:var(--wh); border-radius:var(--r2); padding:40px;
  box-shadow:var(--sh2); border:1px solid rgba(133,75,136,.08);
}
.contact-form h3 { font-size:1.4rem; color:var(--t1); margin-bottom:26px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-group { margin-bottom:16px; }
.form-group label {
  display:block; font-size:.82rem; font-weight:800; color:var(--t2); margin-bottom:7px;
}
.form-group input,
.form-group select,
.form-group textarea {
  width:100%; padding:12px 15px;
  border:1.5px solid rgba(133,75,136,.15); border-radius:11px;
  font-family:'Nunito',sans-serif; font-size:.93rem; color:var(--t1);
  background:var(--cr2); outline:none; resize:none; transition:var(--tr);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color:var(--p1); background:var(--wh);
  box-shadow:0 0 0 3px rgba(133,75,136,.1);
}
.form-group select {
  cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23854b88' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
  background-size:10px;
}
.form-note {
  display:flex; align-items:center; gap:7px;
  margin-top:13px; font-size:.78rem; color:var(--t3);
}
.form-note i { color:var(--p1); }
.form-success {
  display:none; text-align:center; padding:56px 40px;
  background:var(--wh); border-radius:var(--r2);
  box-shadow:var(--sh2); border:1px solid rgba(133,75,136,.08);
}
.form-success.show { display:block; animation:fadein .45s ease; }
.success-check {
  width:64px; height:64px;
  background:linear-gradient(135deg,var(--p1),var(--p2));
  color:var(--wh); font-size:1.8rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin:0 auto 18px;
}
.form-success h3 { font-size:1.4rem; color:var(--t1); margin-bottom:11px; }
.form-success p  { color:var(--t2); margin-bottom:22px; font-size:.95rem; }
@keyframes fadein { from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }


/* =====================================================
   FOOTER
   ===================================================== */
.footer { background:var(--t1); }
.footer-top { padding:68px 0; }
.footer-grid {
  display:grid; grid-template-columns:1.8fr 1fr 1fr 1.5fr; gap:36px;
}
.footer-logo { margin-bottom:14px; }
.footer-brand .logo-text { color:var(--cr); }
.footer-brand .logo-sub  { color:rgba(247,232,211,.55); }
.footer-brand p {
  color:rgba(255,255,255,.45); font-size:.86rem; line-height:1.75;
  max-width:250px; margin-bottom:18px;
}
.footer-social { display:flex; gap:11px; }
.footer-social a {
  width:40px; height:40px;
  background:rgba(255,255,255,.08); border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.55); font-size:.95rem; transition:var(--tr);
}
.footer-social a:hover { background:var(--p1); color:var(--wh); }
.footer-col h4 {
  font-family:'Nunito',sans-serif; font-size:.75rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.4); margin-bottom:16px;
}
.footer-col ul { display:flex; flex-direction:column; gap:8px; }
.footer-col ul li a { font-size:.88rem; color:rgba(255,255,255,.55); transition:var(--tr); }
.footer-col ul li a:hover { color:var(--cr); }
.fc-item {
  display:flex; align-items:flex-start; gap:9px;
  margin-bottom:11px; color:rgba(255,255,255,.55); font-size:.86rem;
}
.fc-item i { color:var(--p3); font-size:.82rem; margin-top:2px; flex-shrink:0; }
.fc-item a { color:rgba(255,255,255,.55); transition:var(--tr); }
.fc-item a:hover { color:var(--cr); }
.footer-bottom {
  border-top:1px solid rgba(255,255,255,.06); padding:18px 0;
}
.footer-bottom .container {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px;
}
.footer-bottom p { font-size:.8rem; color:rgba(255,255,255,.3); }
.footer-love { display:flex; align-items:center; gap:4px; }
.footer-love i { color:var(--p3); font-size:.75rem; }


/* =====================================================
   WHATSAPP FLOTANTE
   ===================================================== */
.wa-float {
  position:fixed; bottom:26px; right:26px;
  width:60px; height:60px; border-radius:50%;
  background:#25d366;
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; color:var(--wh);
  box-shadow:0 6px 24px rgba(37,211,102,.45);
  z-index:950; transition:var(--tr);
  animation:waPulse 2.6s ease-in-out infinite;
}
.wa-float:hover {
  transform:scale(1.12);
  box-shadow:0 10px 36px rgba(37,211,102,.6);
  animation:none;
}
.wa-tooltip {
  position:absolute; right:72px;
  background:var(--t1); color:var(--wh);
  font-size:.8rem; font-weight:700; padding:7px 13px;
  border-radius:8px; white-space:nowrap;
  opacity:0; transform:translateX(6px); transition:var(--tr); pointer-events:none;
}
.wa-tooltip::after {
  content:''; position:absolute; right:-5px; top:50%; transform:translateY(-50%);
  border:5px solid transparent; border-right:none; border-left-color:var(--t1);
}
.wa-float:hover .wa-tooltip { opacity:1; transform:translateX(0); }
@keyframes waPulse {
  0%,100% { box-shadow:0 6px 24px rgba(37,211,102,.45); }
  50%      { box-shadow:0 6px 40px rgba(37,211,102,.7), 0 0 0 10px rgba(37,211,102,.1); }
}


/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width:1060px) {
  .services-grid { grid-template-columns:1fr 1fr; }
  .svc-main { grid-column:1 / -1; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
}

@media (max-width:800px) {
  /* Nav mobile */
  .nav-toggle { display:flex; }
  .nav-menu {
    position:fixed; top:0; right:-100%; height:100vh; width:280px;
    background:var(--wh); flex-direction:column; align-items:flex-start;
    padding:80px 28px 30px; box-shadow:-8px 0 40px rgba(0,0,0,.14);
    transition:right .4s cubic-bezier(.4,0,.2,1); gap:3px; z-index:899;
  }
  .nav-menu.open { right:0; }
  .nav-link { color:var(--t1); width:100%; padding:12px 15px; }
  .nav-link:hover { background:rgba(133,75,136,.07); color:var(--p1); }
  .nav-link.nav-cta {
    background:var(--p1); color:var(--wh); border-color:var(--p1); margin-top:8px;
  }

  /* Layout */
  .hero-container { grid-template-columns:1fr; text-align:center; }
  .hero-btns { justify-content:center; }
  .hero-card-wrap { display:none; }
  .about-grid { grid-template-columns:1fr; gap:36px; }
  .about-visual { display:none; }
  .services-grid { grid-template-columns:1fr; }
  .svc-main { grid-column:1; }
  .ws-grid { grid-template-columns:1fr; gap:38px; }
  .faq-list { grid-template-columns:1fr; }
  .loc-grid { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; gap:44px; }
  .values-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
  .form-row { grid-template-columns:1fr; }
}

@media (max-width:480px) {
  .hero h1 { font-size:1.85rem; }
  .section-title { font-size:1.65rem; }
  .contact-form { padding:26px 20px; }
  .ws-card { padding:34px 24px; }
  .hero { padding:90px 0 60px; }
  .footer-grid { grid-template-columns:1fr; }
  .wa-float { bottom:18px; right:18px; }
}
