
/* ════════════════════════════════════════════════════════════════════
   FINDYA · CSS DEFINITIVO
   Inspirado en Apple Vision Pro · Oryzo.ai
   ════════════════════════════════════════════════════════════════════ */

/* ── DESIGN TOKENS ── */
:root{
  /* Colores Findya */
  --g50:#e8faf0; --g100:#c3efce; --g200:#8ddea8; --g300:#43d077;
  --g400:#22c55e; --g500:#16a34a; --g600:#15803d; --g700:#166534;
  --b50:#eff6ff; --b100:#dbeafe; --b200:#93c5fd; --b400:#3b82f6;
  --b500:#2563eb; --b600:#1d4ed8;
  /* Neutrales */
  --dark:#0a0e1a; --dark2:#1a1f2e; --dark3:#2d3748;
  --gray:#64748b; --gray2:#94a3b8; --gray3:#cbd5e1; --gray4:#e2e8f0; --gray5:#f1f5f9; --gray6:#f8fafc;
  --text:#0f172a; --text-light:#475569;
  /* Geometría */
  --r:14px; --r2:20px; --r3:32px;
  /* Sombras (estilo Apple) */
  --sh-sm:0 1px 2px rgba(0,0,0,.05);
  --sh:0 4px 16px rgba(0,0,0,.08);
  --sh-md:0 8px 32px rgba(0,0,0,.10);
  --sh-lg:0 16px 48px rgba(0,0,0,.12);
  --sh-xl:0 24px 64px rgba(0,0,0,.15);
  --sh-glow:0 0 32px rgba(34,197,94,.25);
  /* Transiciones premium */
  --tr-fast:.2s cubic-bezier(.16,1,.3,1);
  --tr:.35s cubic-bezier(.16,1,.3,1);
  --tr-slow:.6s cubic-bezier(.16,1,.3,1);
  --tr-spring:.5s cubic-bezier(.34,1.56,.64,1);
  /* Glassmorphism */
  --glass-bg:rgba(255,255,255,.72);
  --glass-border:rgba(255,255,255,.3);
  --glass-blur:saturate(180%) blur(24px);
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  scroll-behavior:auto;
  -webkit-text-size-adjust:100%;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body{
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  color:var(--text);
  background:#fff;
  overflow-x:hidden;
  font-size:16px;
  line-height:1.65;
  font-weight:400;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
h1,h2,h3,h4,h5,h6{
  font-family:'Bricolage Grotesque',-apple-system,sans-serif;
  line-height:1.1;
  letter-spacing:-.02em;
  font-weight:700;
  color:var(--text);
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%;height:auto;transform:translateZ(0);image-rendering:-webkit-optimize-contrast}
ul{list-style:none}
button,input,select,textarea{font-family:inherit;outline:none}
button{cursor:pointer;border:none;background:none}

/* ════════════════════════════════════════════════════════════════════
   ANIMACIONES (KEYFRAMES)
   ════════════════════════════════════════════════════════════════════ */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes blurIn{from{opacity:0;filter:blur(20px)}to{opacity:1;filter:blur(0)}}
@keyframes zoomIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes morphBlob{0%,100%{border-radius:60% 40% 70% 30%/50% 60% 40% 60%}33%{border-radius:40% 60% 30% 70%/60% 30% 70% 40%}66%{border-radius:50% 50% 60% 40%/40% 70% 30% 60%}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes glow{0%,100%{box-shadow:0 0 20px rgba(34,197,94,.3)}50%{box-shadow:0 0 30px rgba(34,197,94,.5)}}
@keyframes slideInDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}
@keyframes spinSlow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes backdropIn{from{opacity:0}to{opacity:1}}
#modal-confirmar-servicio{display:none;position:fixed;inset:0;z-index:9998;align-items:center;justify-content:center;padding:1.2rem}
#modal-confirmar-servicio.open{display:flex}
#modal-confirmar-servicio .mc-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.52);backdrop-filter:blur(5px);animation:backdropIn .2s ease}
#modal-confirmar-servicio .mc-box{position:relative;background:#fff;border-radius:22px;padding:2.3rem 2rem 2rem;max-width:440px;width:100%;box-shadow:0 28px 80px rgba(0,0,0,.22),0 0 0 1px rgba(0,0,0,.05);animation:modalIn .28s cubic-bezier(.34,1.56,.64,1)}

/* ════════════════════════════════════════════════════════════════════
   SCROLL REVEAL (Sistema premium estilo Oryzo.ai)
   ════════════════════════════════════════════════════════════════════ */
.reveal,
.fade-in,
.slide-up,
.slide-left,
.slide-right,
.zoom-in,
.blur-in{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  transition:none!important;
}

.reveal.is-visible,
.fade-in.is-visible,
.slide-up.is-visible,
.slide-left.is-visible,
.slide-right.is-visible,
.zoom-in.is-visible,
.blur-in.is-visible{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
}

/* Delays escalonados */
[data-delay="100"]{transition-delay:.1s}
[data-delay="200"]{transition-delay:.2s}
[data-delay="300"]{transition-delay:.3s}
[data-delay="400"]{transition-delay:.4s}
[data-delay="500"]{transition-delay:.5s}
[data-delay="600"]{transition-delay:.6s}
[data-delay="700"]{transition-delay:.7s}

/* ════════════════════════════════════════════════════════════════════
   PAGE SYSTEM
   ════════════════════════════════════════════════════════════════════ */
.page{
  display:none;
}
.page.active{
  display:block;
  min-height:calc(100svh - 68px);
}
#page-home.active,#page-chat.active{min-height:unset}
#page-account.active{min-height:calc(100svh - 68px)}

/* ════════════════════════════════════════════════════════════════════
   PROGRESS BAR
   ════════════════════════════════════════════════════════════════════ */
#prog{
  position:fixed;top:0;left:0;height:3px;z-index:9999;
  background:linear-gradient(90deg,var(--g400),var(--b400));
  width:0%;
  transition:width .15s ease-out;
  box-shadow:0 0 12px rgba(34,197,94,.5);
}

/* ════════════════════════════════════════════════════════════════════
   NAVBAR (Glassmorphism Apple style)
   ════════════════════════════════════════════════════════════════════ */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:78px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  padding:0 2.5rem;
  gap:1rem;
  background:rgba(255,255,255,.72);
  backdrop-filter:saturate(180%) blur(24px);
  -webkit-backdrop-filter:saturate(180%) blur(24px);
  border-bottom:1px solid rgba(0,0,0,.06);
  transition:all var(--tr);
}
#nav.scrolled{
  background:rgba(255,255,255,.85);
  box-shadow:0 4px 32px rgba(0,0,0,.08);
}

.logo-wrap{
  display:flex;align-items:center;
  cursor:pointer;
  padding:0;
  margin-top:-8px;
  margin-left:-9px;
  transition:transform var(--tr-spring);
}
.logo-wrap:hover{transform:scale(1.03)}
.logo-img{
  height:44px;
  width:auto;
  object-fit:contain;
  display:flex;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.04));
  image-rendering:high-quality;
  flex-shrink:0;
  min-height:36px;
}

.nav-mid{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.3rem;
}
.nl{
  padding:.55rem 1.05rem;
  border-radius:50px;
  font-size:.92rem;
  font-weight:500;
  color:var(--text);
  cursor:pointer;
  transition:all var(--tr-fast);
  white-space:nowrap;
  user-select:none;
  position:relative;
  background:rgba(255,255,255,.15);
  border:1.5px solid var(--gray3);
  backdrop-filter:none;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.nl::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:50px;
  background:var(--g50);
  opacity:0;
  transition:opacity var(--tr-fast);
  z-index:-1;
}
.nl:hover{color:var(--g600)}
.nl:hover::before{opacity:1}
.nl.on{
  background:var(--g50);
  color:var(--g600);
  font-weight:600;
}

.nav-right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.7rem;
}

/* ════════════════════════════════════════════════════════════════════
   BOTONES PREMIUM (Nítidos, sin blur)
   ════════════════════════════════════════════════════════════════════ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:.72rem 1.6rem;
  border-radius:50px;
  font-weight:600;
  font-size:.92rem;
  cursor:pointer;
  transition:all var(--tr);
  border:none;
  white-space:nowrap;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.01em;
  position:relative;
  overflow:hidden;
}
.btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);
  opacity:0;
  transition:opacity var(--tr);
}
.btn:hover::before{opacity:1}

.btn-ghost{
  padding:.55rem 1.15rem;
  border:1.5px solid var(--gray3);
  border-radius:50px;
  font-size:.88rem;
  font-weight:500;
  background:rgba(255,255,255,.15);
  color:var(--text);
  cursor:pointer;
  transition:all var(--tr);
  white-space:nowrap;
  backdrop-filter:none;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.btn-ghost:hover{
  border-color:var(--g400);
  color:var(--g600);
  background:var(--g50);
}

.btn-cta{
  padding:.62rem 1.35rem;
  background:var(--g500);
  color:#fff;
  border:none;
  border-radius:50px;
  font-size:.88rem;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
  box-shadow:0 4px 16px rgba(22,163,74,.35);
  transition:all var(--tr);
  letter-spacing:.01em;
  text-shadow:0 1px 2px rgba(0,0,0,.05);
}
.btn-cta:hover{
  background:var(--g600);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(22,163,74,.45),0 0 30px rgba(22,163,74,.25);
}
.btn-cta:active{transform:translateY(0)}

.btn-p{
  background:var(--g500);
  color:#fff;
  box-shadow:0 4px 16px rgba(22,163,74,.3);
}
.btn-p:hover{
  background:var(--g600);
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(22,163,74,.45);
}
.btn-b{background:var(--b500);color:#fff;box-shadow:0 4px 16px rgba(37,99,235,.25)}
.btn-b:hover{background:var(--b600);transform:translateY(-2px)}
.btn-o{
  background:#fff;
  border:1.5px solid var(--gray3);
  color:var(--text);
}
.btn-o:hover{
  border-color:var(--g400);
  color:var(--g600);
  background:var(--g50);
  transform:translateY(-1px);
}
.btn-dk{background:var(--dark);color:#fff}
.btn-dk:hover{background:var(--dark2);transform:translateY(-1px)}
.btn-sm{padding:.45rem 1rem;font-size:.82rem}
.btn-lg{padding:.95rem 2.2rem;font-size:1rem}

/* ════════════════════════════════════════════════════════════════════
   LAYOUT
   ════════════════════════════════════════════════════════════════════ */
.wrap{max-width:1200px;margin:0 auto;padding:0 1.5rem}
.pt{padding-top:88px}
.pt.sec{padding-top:88px}
.sec{padding:3rem 0}
@media (max-width:768px){
  .sec{padding:1.5rem 0}
}
.sec-sm{padding:3.5rem 0}

/* ════════════════════════════════════════════════════════════════════
   TIPOGRAFÍA (Nítida, alto contraste)
   ════════════════════════════════════════════════════════════════════ */
.sec-label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--g600);
  margin-bottom:1rem;
}
.sec-label::before{
  content:'';
  width:18px;
  height:2.5px;
  background:linear-gradient(90deg,var(--g400),var(--b400));
  border-radius:2px;
}
.sec-title{
  font-size:clamp(1.8rem,3.5vw,2.8rem);
  font-weight:800;
  color:var(--text);
  margin-bottom:.85rem;
  line-height:1.1;
  letter-spacing:-.02em;
}
.sec-sub{
  font-size:1rem;
  color:var(--text-light);
  max-width:560px;
  font-weight:400;
  line-height:1.65;
}
.hl{
  background:linear-gradient(135deg,var(--g500),var(--b400));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ════════════════════════════════════════════════════════════════════
   CARDS GLASSMORPHISM
   ════════════════════════════════════════════════════════════════════ */
.card{
  background:#fff;
  border-radius:var(--r2);
  border:1.5px solid var(--gray3);
  overflow:hidden;
  transition:all var(--tr);
  position:relative;
}
.card:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-6px);
  border-color:var(--g200);
}

.glass-card{
  background:rgba(255,255,255,.6);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border:1px solid rgba(255,255,255,.5);
  border-radius:var(--r2);
  box-shadow:var(--sh);
}

/* ════════════════════════════════════════════════════════════════════
   CATEGORÍAS
   ════════════════════════════════════════════════════════════════════ */
.cat-card{
  background:#fff;
  border-radius:var(--r2);
  padding:1.6rem 1.1rem;
  text-align:center;
  border:1.5px solid var(--gray3);
  transition:all var(--tr);
  cursor:pointer;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.cat-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:0;
  background:linear-gradient(180deg,var(--g50),transparent);
  transition:height var(--tr);
}
.cat-card:hover::before{height:100%}
.cat-card:hover{
  border-color:var(--g300);
  box-shadow:0 12px 32px rgba(34,197,94,.18);
  transform:translateY(-8px);
}
.cat-ico{
  width:62px;
  height:62px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.7rem;
  margin:0 auto 1rem;
  position:relative;
  transition:transform var(--tr-spring);
}
.cat-card:hover .cat-ico{transform:scale(1.15) rotate(8deg)}
.cat-name{
  font-weight:700;
  font-size:.92rem;
  color:var(--text);
  position:relative;
  min-height:2.4rem;
  display:flex;
  align-items:center;
  justify-content:center;
}
.cat-cnt{
  font-size:.76rem;
  color:var(--text-light);
  margin-top:auto;
  padding-top:.5rem;
  position:relative;
}

/* ════════════════════════════════════════════════════════════════════
   SERVICE CARDS
   ════════════════════════════════════════════════════════════════════ */
.svc-card{
  background:#fff;
  border-radius:var(--r2);
  border:1.5px solid var(--gray3);
  overflow:hidden;
  transition:all var(--tr);
  cursor:pointer;
  display:flex;
  flex-direction:column;
}
.svc-card:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-6px);
  border-color:var(--g200);
}
.svc-img-wrap{
  position:relative;
  overflow:hidden;
  height:175px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.svc-img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.svc-card:hover .svc-img{transform:scale(1.08)}
.svc-body{padding:1.15rem;display:flex;flex-direction:column;flex:1}
.svc-title{
  font-weight:700;
  font-size:.95rem;
  color:var(--text);
  margin-bottom:.4rem;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp: 2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.4;
}
.svc-price{
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:1.15rem;
  font-weight:800;
  color:var(--g600);
}
.svc-foot{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:.8rem;
  border-top:1px solid var(--gray4);
  margin-top:auto;
}

/* ════════════════════════════════════════════════════════════════════
   Helper CARDS
   ════════════════════════════════════════════════════════════════════ */
.hlp-card{
  background:#fff;
  border-radius:var(--r2);
  border:1.5px solid var(--gray3);
  padding:1.4rem;
  transition:all var(--tr);
  position:relative;
  overflow:hidden;
  cursor:pointer;
}
.hlp-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg,var(--g400),var(--b400));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--tr);
}
.hlp-card:hover{
  box-shadow:var(--sh-lg);
  transform:translateY(-6px);
  border-color:var(--g200);
}
.hlp-card:hover::before{transform:scaleX(1)}

/* ════════════════════════════════════════════════════════════════════
   STEP CARDS
   ════════════════════════════════════════════════════════════════════ */
.step-card{
  padding:2rem 1.8rem;
  border-radius:var(--r2);
  border:1.5px solid var(--gray3);
  transition:all var(--tr);
  background:#fff;
  position:relative;
  overflow:hidden;
  text-align:center;
}
.step-card::before{
  content:'';
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  background:linear-gradient(135deg,var(--g50) 0%,transparent 50%);
  opacity:0;
  transition:opacity var(--tr);
}
.step-card:hover::before{opacity:1}
.step-card:hover{
  border-color:var(--g200);
  box-shadow:0 12px 32px rgba(34,197,94,.12);
  transform:translateY(-6px);
}
.step-num{
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:3.4rem;
  font-weight:800;
  background:linear-gradient(135deg,var(--g300),var(--b300));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  line-height:1;
  margin-bottom:.8rem;
  position:relative;
}

/* ════════════════════════════════════════════════════════════════════
   BADGES & TAGS (Nítidos)
   ════════════════════════════════════════════════════════════════════ */
.badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:.22rem .68rem;
  border-radius:50px;
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.01em;
}
.bgg{background:var(--g50);color:var(--g700)}
.bgb{background:var(--b50);color:var(--b600)}
.bgr{background:var(--gray5);color:var(--text-light)}

.stars{
  color:#f59e0b;
  letter-spacing:1.5px;
  font-size:.85rem;
}

.tag{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:.32rem .85rem;
  border-radius:50px;
  font-size:.81rem;
  background:var(--gray5);
  color:var(--text);
  cursor:pointer;
  transition:all var(--tr-fast);
  border:1px solid transparent;
  user-select:none;
  font-weight:500;
}
.tag:hover,.tag.on{
  background:var(--g50);
  color:var(--g700);
  border-color:var(--g200);
  transform:translateY(-1px);
}

/* ════════════════════════════════════════════════════════════════════
   SEARCH BAR (Premium glass)
   ════════════════════════════════════════════════════════════════════ */
.sbar{
  display:flex;
  align-items:center;
  background:rgba(255,255,255,.97);
  border:2px solid var(--gray3);
  border-radius:70px;
  padding:.65rem .65rem .65rem 1.5rem;
  box-shadow:0 2px 12px rgba(34,197,94,.1);
  max-width:740px;
  width:100%;
  transition:all .25s ease;
}
.sbar:focus-within{
  border-color:var(--g400);
  box-shadow:0 16px 56px rgba(34,197,94,.25);
  transform:translateY(-3px);
  background:#fff;
}
.sbar input{
  flex:1;
  border:none;
  outline:none;
  font-size:1rem;
  color:var(--text);
  background:transparent;
  font-weight:400;
  min-width:0;
}
.sbar input::placeholder{color:var(--gray2);font-size:.95rem}
@media(max-width:640px){
  .sbar{padding:.45rem .45rem .45rem 1.1rem}
  .sbtn{padding:.75rem 1.2rem;font-size:.88rem}
  .sbar input::placeholder{font-size:.85rem}
  #btn-toggle-filtros{padding:.65rem 1rem;font-size:.92rem;border-radius:14px}
  #search-filtros-movil{margin-bottom:.75rem}
  .s-count{font-size:.78rem;padding:.3rem .75rem}
  .s-orden span{display:none}
  .s-orden #f-orden{font-size:.9rem;padding:.5rem .65rem}
  .s-badges span{font-size:.74rem;padding:.35rem .5rem}
  .sbar{margin-bottom:.6rem !important}
  .hero-tags{display:grid !important;grid-template-columns:1fr 1fr;gap:.5rem;max-width:320px}
  .hero-tags .tag{text-align:center;justify-content:center}
  #diff-grid{grid-template-columns:1fr !important}
  #testimonios-container{grid-template-columns:1fr !important}
  .s-resultados{padding-top:.5rem !important}
  #page-search .pt.sec{padding-bottom:1rem}
  [style*="minmax(240px"]{grid-template-columns:1fr !important}
  #reviews-lista{grid-template-columns:1fr !important}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.82rem}
}
.sbtn{
  background:linear-gradient(135deg,var(--g600),var(--g400));
  color:#fff;
  border:none;
  border-radius:60px;
  padding:.85rem 1.7rem;
  font-size:.95rem;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
  transition:all .25s ease;
  flex-shrink:0;
  box-shadow:0 6px 20px rgba(22,163,74,.4);
  letter-spacing:.01em;
}
.sbtn:hover{
  background:linear-gradient(135deg,var(--g700),var(--g600));
  transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(22,163,74,.5);
}
.sbtn svg{width:16px;height:16px}

/* ════════════════════════════════════════════════════════════════════
   FORMS
   ════════════════════════════════════════════════════════════════════ */
.fg{display:flex;flex-direction:column;gap:.42rem;margin-bottom:1.2rem}
.fl{font-size:.84rem;font-weight:600;color:var(--text)}
.fi{
  padding:.72rem 1.05rem;
  border:1.5px solid var(--gray3);
  border-radius:var(--r);
  font-size:.92rem;
  outline:none;
  transition:all var(--tr-fast);
  color:var(--text);
  background:#fff;
  width:100%;
}
.fi:focus{
  border-color:var(--g400);
  box-shadow:0 0 0 3px rgba(34,197,94,.1);
}
.ft{resize:vertical;min-height:115px}
.fsel{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:2.5rem;
}

/* ════════════════════════════════════════════════════════════════════
   TIMELINE
   ════════════════════════════════════════════════════════════════════ */
.tl{display:flex;flex-direction:column}
.tli{display:flex;gap:1rem;position:relative;padding-bottom:1.4rem}
.tli:last-child{padding-bottom:0}
.tli::before{
  content:'';
  position:absolute;
  left:16px;top:34px;bottom:0;
  width:2px;
  background:var(--gray3);
}
.tli:last-child::before{display:none}
.tldot{
  width:34px;height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.82rem;
  font-weight:600;
  flex-shrink:0;
  transition:all var(--tr);
}
.tl-done .tldot{background:var(--g500);color:#fff;box-shadow:0 0 0 4px rgba(34,197,94,.15)}
.tl-now .tldot{background:var(--b500);color:#fff;box-shadow:0 0 0 5px rgba(59,130,246,.2);animation:pulse 2s infinite}
.tl-pend .tldot{background:var(--gray5);color:var(--gray2)}

/* ════════════════════════════════════════════════════════════════════
   ACCORDION
   ════════════════════════════════════════════════════════════════════ */
.acc{
  border:1.5px solid var(--gray3);
  border-radius:var(--r);
  margin-bottom:.6rem;
  overflow:hidden;
  transition:border-color var(--tr-fast);
  background:#fff;
}
.acc:hover{border-color:var(--g300)}
.acc.open{border-color:var(--g300);box-shadow:0 4px 16px rgba(34,197,94,.08)}
.acc-h{
  padding:1rem 1.2rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  cursor:pointer;
  font-weight:600;
  font-size:.92rem;
  transition:background var(--tr-fast);
  color:var(--text);
}
.acc-h:hover{background:var(--gray6)}
.acc-b{
  max-height:0;
  overflow:hidden;
  transition:max-height .4s ease,padding .4s ease;
  font-size:.9rem;
  color:var(--text-light);
  line-height:1.75;
}
.acc.open .acc-b{max-height:600px;padding:.2rem 1.2rem 1.1rem}
.arr{
  display:inline-block;
  font-size:.78rem;
  color:var(--gray2);
  transition:transform var(--tr);
}
.acc.open .arr{transform:rotate(180deg);color:var(--g500)}

/* ════════════════════════════════════════════════════════════════════
   COOKIE BANNER (RGPD compliant)
   ════════════════════════════════════════════════════════════════════ */
#cookie-banner{
  position:fixed;
  bottom:1.5rem;left:1.5rem;right:1.5rem;
  max-width:480px;
  margin:0 auto;
  background:rgba(255,255,255,.95);
  backdrop-filter:saturate(180%) blur(24px);
  -webkit-backdrop-filter:saturate(180%) blur(24px);
  border:1px solid rgba(255,255,255,.5);
  border-radius:var(--r2);
  padding:1.5rem;
  box-shadow:0 20px 60px rgba(0,0,0,.18);
  z-index:9000;
  transform:translateY(120%);
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
#cookie-banner.show{transform:translateY(0)}
.cookie-title{
  font-weight:700;
  font-size:1.05rem;
  color:var(--text);
  margin-bottom:.5rem;
  display:flex;
  align-items:center;
  gap:.5rem;
}
.cookie-text{
  font-size:.85rem;
  color:var(--text-light);
  line-height:1.6;
  margin-bottom:1rem;
}
.cookie-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.cookie-actions .btn{padding:.55rem 1.1rem;font-size:.85rem}

/* ════════════════════════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════════════════════════ */
footer{
  background:var(--dark);
  padding:5rem 1.5rem calc(2.5rem + env(safe-area-inset-bottom, 0px));
  margin-top:auto;
  position:relative;
  overflow:hidden;
}
footer::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(34,197,94,.4),transparent);
}
.f-grid{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr 1fr;
  gap:2.5rem;
}
.f-brand .logo-img{
  height:42px;
  filter:brightness(1) drop-shadow(0 2px 8px rgba(0,0,0,.3));
}
.fb-desc{
  font-size:.86rem;
  color:rgba(255,255,255,.5);
  line-height:1.75;
  max-width:280px;
  margin-top:1.1rem;
}
.f-soc{display:flex;gap:.6rem;margin-top:1.4rem}
.sico{
  width:38px;height:38px;
  border-radius:10px;
  background:rgba(255,255,255,.06);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.78rem;
  font-weight:700;
  color:rgba(255,255,255,.5);
  cursor:pointer;
  transition:all var(--tr);
  border:1px solid rgba(255,255,255,.06);
}
.sico:hover{
  background:rgba(34,197,94,.18);
  color:var(--g300);
  border-color:rgba(34,197,94,.3);
  transform:translateY(-2px);
}
.fc h4{
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.35);
  margin-bottom:1rem;
}
.fc ul{display:flex;flex-direction:column;gap:.62rem}
.fc a{
  font-size:.87rem;
  color:rgba(255,255,255,.55);
  transition:color var(--tr-fast);
  cursor:pointer;
}
.fc a:hover{color:var(--g300)}
.fbot{
  max-width:1200px;
  margin:3rem auto 0;
  padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
}
.fbot p{font-size:.8rem;color:rgba(255,255,255,.32)}
.fstripe{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:50px;
  padding:.32rem .95rem;
  font-size:.76rem;
  color:rgba(255,255,255,.42);
}

/* ════════════════════════════════════════════════════════════════════
   UTILITIES
   ════════════════════════════════════════════════════════════════════ */
.flex{display:flex}
.flex-col{flex-direction:column}
.aic{align-items:center}
.jcb{justify-content:space-between}
.jcc{justify-content:center}
.g05{gap:.4rem}.g1{gap:.7rem}.g2{gap:1rem}.g3{gap:1.5rem}
.mt1{margin-top:.5rem}.mt2{margin-top:1rem}.mt3{margin-top:1.5rem}
.mt4{margin-top:2rem}.mt5{margin-top:2.5rem}.mt6{margin-top:3rem}
.mb1{margin-bottom:.5rem}.mb2{margin-bottom:1rem}
.mb3{margin-bottom:1.5rem}.mb4{margin-bottom:2rem}
.tc{text-align:center}
.ts{font-size:.85rem}.txs{font-size:.76rem}
.tg{color:var(--text-light)}.tdk{color:var(--text)}.tw{color:#fff}
.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}
.wf{width:100%}
.rel{position:relative}
.oh{overflow:hidden}

.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}input[type="date"],input[type="time"]{box-sizing:border-box;width:100%;-webkit-appearance:none;appearance:none;min-height:48px;line-height:1.4;font-size:1rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.gauto{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:1.3rem}
.gauto-sm{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1rem}

/* ════════════════════════════════════════════════════════════════════
   HERO BLOBS (Parallax)
   ════════════════════════════════════════════════════════════════════ */
.blob{
  position:absolute;
  border-radius:50%;
  filter:blur(90px);
  pointer-events:none;
  animation:morphBlob 16s ease-in-out infinite;
  will-change:transform;
}

/* ════════════════════════════════════════════════════════════════════
   PULSE DOT
   ════════════════════════════════════════════════════════════════════ */
.pdot{
  display:inline-block;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--g400);
  animation:pulse 2s infinite;
  box-shadow:0 0 0 0 rgba(34,197,94,.4);
}

/* ════════════════════════════════════════════════════════════════════
   SCROLLBAR
   ════════════════════════════════════════════════════════════════════ */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--gray3);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--gray2)}

/* ════════════════════════════════════════════════════════════════════
   LEGAL PAGES
   ════════════════════════════════════════════════════════════════════ */
.legal-content{
  max-width:800px;
  margin:0 auto;
  font-size:.95rem;
  line-height:1.8;
  color:var(--text);
}
.legal-content h2{
  font-size:1.4rem;
  margin:2.2rem 0 .8rem;
  color:var(--text);
}
.legal-content h3{
  font-size:1.1rem;
  margin:1.5rem 0 .6rem;
  color:var(--text);
}
.legal-content p{margin-bottom:1rem}
.legal-content ul{
  margin:.8rem 0 1.2rem 1.5rem;
  list-style:disc;
}
.legal-content ul li{margin-bottom:.5rem}
.legal-content strong{color:var(--text);font-weight:700}
.legal-content a{color:var(--g600);font-weight:500;text-decoration:underline}

/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════════ */
@media(max-width:1024px){
  #diff-extra:not(.show){display:none !important}
  #diff-toggle{display:block !important}
  #diff-grid{grid-template-columns:repeat(2,1fr) !important}
  [style*="minmax(240px"]{grid-template-columns:repeat(2,1fr) !important}
  [style*="minmax(240px"]{grid-template-columns:1fr !important}
  #nav{padding:0 1.5rem;grid-template-columns:auto 1fr auto}
  .nav-mid{gap:.1rem}
  .nl{padding:.45rem .75rem;font-size:.85rem}
  .f-grid{grid-template-columns:2fr 1fr 1fr;gap:2rem}
}
.notif-badge{
  position:absolute;top:-6px;right:-6px;
  background:#ef4444;color:#fff;
  font-size:.65rem;font-weight:700;
  border-radius:50%;width:18px;height:18px;
  display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;
}
.hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  background:none;border:none;cursor:pointer;padding:.4rem;margin-left:.5rem;
}
.hamburger span{
  display:block;width:24px;height:2px;background:var(--text);
  border-radius:2px;transition:all .3s;
}
#mobile-menu{
  display:none;flex-direction:column;
  position:fixed;top:68px;left:0;right:0;
  background:#f1f5f9;
  backdrop-filter:blur(20px);
  border-bottom:none;
  padding:1.7rem 1rem 1.2rem;
  z-index:999;
  box-shadow:0 8px 32px rgba(0,0,0,.12);
}
#mobile-menu .mnl{
  padding:.85rem 1rem;font-size:1rem;font-weight:600;
  color:var(--text);cursor:pointer;border-radius:var(--r);
  transition:background .2s;
}
#mobile-menu .mnl{
  background:#fff;
  border-radius:var(--r);
  margin-bottom:.4rem;
  color:var(--text);
  font-weight:600;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
#mobile-menu .mnl:last-child{margin-bottom:0}
#mobile-menu .mnl:hover{background:var(--g50)}
@media(max-width:860px){
  #page-account .wrap{overflow-x:hidden}
  #page-account{overflow-x:hidden}
  .nav-mid{display:none}
  .pt{padding-top:96px}
  .pt.sec{padding-top:96px}
  #page-home > section:first-child{padding-top:100px !important;align-items:flex-start}
  #page-account .wrap > div[style*="grid-template-columns:1fr 320px"]{grid-template-columns:1fr !important;gap:0 !important;width:100% !important}
  #page-account #mis-anuncios-lista .card{max-width:100%;box-sizing:border-box}
  #page-account .wrap{max-width:100vw;padding:0 1rem;box-sizing:border-box}
  #page-account [style*="display:flex;align-items:center;gap:1.5rem"]{flex-wrap:wrap;gap:1rem}
  .notif-badge{
  position:absolute;top:-6px;right:-6px;
  background:#ef4444;color:#fff;
  font-size:.65rem;font-weight:700;
  border-radius:50%;width:18px;height:18px;
  display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;
}
.hamburger{display:flex}
  #mobile-menu.open{display:flex}
  .grid4{grid-template-columns:repeat(2,1fr)}
  [style*="minmax(260px,1fr)"]{grid-template-columns:1fr !important}
  #reviews-lista{grid-template-columns:1fr !important}
  .grid3{grid-template-columns:repeat(2,1fr)}
  .f-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .sec{padding:4rem 0}
  .wrap[style*="gap:5rem"]{grid-template-columns:repeat(4,1fr) !important;display:grid !important;gap:1.5rem !important}
  .wrap[style*="gap:5rem"] .tc > div:first-child{font-size:3rem !important}
  .wrap[style*="gap:5rem"] .tc > div:last-child{font-size:.75rem !important}
}
@media(max-width:600px){
  #nav{padding:0 1rem;height:68px}
  .pt{padding-top:100px}
  .pt.sec{padding-top:100px}
  .logo-img{height:40px !important}
  .grid2,.grid3,.grid4{grid-template-columns:1fr;gap:.3rem}
  .f-grid{grid-template-columns:1fr;gap:2rem}
  .sec{padding:3rem 0}
  #cookie-banner{left:.8rem;right:.8rem;bottom:.8rem;padding:1.2rem}
  .btn-cta{padding:.55rem 1rem;font-size:.82rem}
  #page-chat > div:first-child { padding-top: 68px; }
  #chat-layout { height: calc(100svh - 68px); display:block; }
  #chat-lista-panel { width:100%; height:100%; }
  #chat-panel { width:100%; height:100%; }
  @media(max-width:640px){
  #reviews-resumen{grid-template-columns:1fr !important;gap:1.5rem !important;}
  #reviews-resumen > div:first-child{border-right:none !important;border-bottom:1px solid var(--gray4);padding-right:0 !important;padding-bottom:1.5rem !important;}
}

  /* Hero */
  .hero-content{padding:1.5rem 1rem}
  .hero{min-height:85svh}
  #page-home > section:first-child{min-height:100svh;padding-top:88px !important;align-items:flex-start !important;padding-bottom:3rem}
  #page-home > section:first-child .hero-content{padding-top:1rem}
  #hero-video{object-position:center 30%}
  #hero-video{display:none !important}
  #hero-video-mobile{display:block !important}

  /* Galería de servicio: columna única en móvil */
  [style*="grid-template-columns:2fr 1fr 1fr"]{
    grid-template-columns:1fr !important;
    grid-template-rows:auto !important;
  }
  /* Stats de Helper: 2 columnas en móvil */
  [style*="grid-template-columns:repeat(4,1fr)"]{
    grid-template-columns:repeat(2,1fr) !important;
  }
  /* Servicios de Helper: columna única */
  [style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:1fr !important;
  }
  /* Layout de 2 columnas con sidebar fijo: apilado */
  [style*="grid-template-columns:1fr 320px"]{
    grid-template-columns:1fr !important;
  }
  /* Chat: ocultar lista en móvil cuando hay conversación activa */
  .chat-list{font-size:.82rem}

  /* Botones en fila: apilar */
  [style*="display:flex;gap:.75rem"]{flex-direction:column}

  /* Textos legales */
  .legal-content{font-size:.88rem}

  /* Formularios: inputs a ancho completo */
  .fi{font-size:1rem}

  /* Página Servicios: layout en columna, sidebar oculto, botón filtros visible */
  #page-search .wrap > div[style*="display:flex;gap:2rem"]{flex-direction:column !important}
  #search-sidebar-filtros{display:none !important}
  #search-sidebar-filtros[data-mobile-open="1"]{display:block !important;width:100% !important;margin-bottom:1rem}
  #search-filtros-movil{display:block !important}

  /* Página Helpers: layout en columna */
  #page-Helpers .wrap > div[style*="display:flex"]{flex-direction:column !important}
  #page-Helpers .wrap > div[style*="display:flex"] > div[style*="width:"]{width:100% !important}

  /* Grids interiores */
  .step-grid{grid-template-columns:1fr !important}
  .blog-grid{grid-template-columns:1fr !important}

  /* Cuenta: columna única en móvil */
  #page-account .wrap > div[style*="grid-template-columns:1fr 320px"]{grid-template-columns:1fr !important}
  #page-account .wrap > div[style*="grid-template-columns:1fr 320px"] > div[style*="display:flex;flex-direction:column"]{order:-1}
  /* Cabecera cuenta: foto+nombre no se cortan */
  #page-account [style*="display:flex;align-items:center;gap:1.5rem"]{flex-wrap:wrap;gap:1rem}

  /* Sacar sidebar del flex para que aparezca encima en móvil */
  #page-search .wrap > div[style*="display:flex;gap:2rem"]{display:block !important}
  
}

/* ════════════════════════════════════════════════════════════════════
   PRINT
   ════════════════════════════════════════════════════════════════════ */

/* ── MODALES ── */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(10,14,26,.55);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  z-index:8000;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .3s cubic-bezier(.16,1,.3,1);
}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-box{
  background:#fff;
  border-radius:var(--r2);
  padding:2rem;
  width:100%;max-width:480px;
  margin:1rem;
  max-height:calc(100vh - 2rem);
  max-height:calc(100dvh - 2rem);
  overflow-y:auto;
  box-shadow:0 32px 80px rgba(0,0,0,.22);
  transform:scale(.93) translateY(24px);
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.modal-overlay.open .modal-box{transform:scale(1) translateY(0)}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.modal-title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.2rem;font-weight:700;color:var(--text)}
.modal-close{width:32px;height:32px;border-radius:50%;background:var(--gray5);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;color:var(--gray);transition:background .2s;border:none}
.modal-close:hover{background:var(--gray4);color:var(--text)}
.modal-field{margin-bottom:1.1rem}
.modal-field label{display:block;font-size:.78rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem}
.modal-field input{width:100%;padding:.72rem 1rem;border:1.5px solid var(--gray4);border-radius:var(--r);font-size:1rem;color:var(--text);transition:border-color .2s;background:#fff}
.modal-field input:focus{border-color:var(--g500);outline:none;box-shadow:0 0 0 3px rgba(34,197,94,.1)}
.modal-field input:disabled{background:var(--gray5);color:var(--gray);cursor:not-allowed}
.modal-hint{font-size:.8rem;color:var(--text-light);margin-top:.3rem}
.modal-divider{border:none;border-top:1px solid var(--gray4);margin:1.3rem 0}
.modal-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0}
.modal-row-label{font-size:.95rem;color:var(--text);font-weight:500}
.modal-row-sub{font-size:.78rem;color:var(--text-light);margin-top:.1rem}
.tog{position:relative;width:44px;height:24px;flex-shrink:0}
.tog input{opacity:0;width:0;height:0;position:absolute}
.tog-slider{position:absolute;inset:0;background:var(--gray3);border-radius:24px;cursor:pointer;transition:.3s}
.tog-slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.tog input:checked + .tog-slider{background:var(--g500)}
.tog input:checked + .tog-slider::before{transform:translateX(20px)}

.ck-slider{position:absolute;inset:0;background:#ccc;border-radius:99px;transition:.3s}
.ck-slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}
input:checked+.ck-slider{background:var(--g500)}
input:checked+.ck-slider::before{transform:translateX(20px)}
@media print{
  #nav,#cookie-banner,#prog,footer{display:none}
}

