/* ===================================================
   Bodas Momentos — Hoja de estilos principal
   Paleta: Rosa/Malva · Dorado · Azul oscuro · Crema
   =================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Poppins:wght@300;400;500;600&display=swap');

/* ─── Variables ──────────────────────────────────── */
:root {
  --primary:        #B5748C;
  --primary-dark:   #8E5570;
  --primary-light:  #F0D9E2;
  --secondary:      #C9A234;
  --secondary-light:#F5E8C0;
  --dark:           #2C3344;
  --dark-80:        rgba(44,51,68,.8);
  --text:           #3A3A3A;
  --text-muted:     #6B7280;
  --bg:             #FDFAF7;
  --bg-card:        #FFFFFF;
  --border:         #EAE0D8;
  --shadow-sm:      0 2px 8px rgba(44,51,68,.07);
  --shadow:         0 4px 20px rgba(44,51,68,.10);
  --shadow-lg:      0 8px 40px rgba(44,51,68,.15);
  --radius-sm:      8px;
  --radius:         12px;
  --radius-lg:      20px;
  --transition:     .25s ease;
  --font-body:      'Poppins', sans-serif;
  --font-display:   'Playfair Display', serif;
}

/* ─── Reset / Base ───────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:15px;color:var(--text);background:var(--bg);line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--primary-dark)}
ul{list-style:none}
input,textarea,select,button{font-family:inherit;font-size:inherit}

/* ─── Utilidades ─────────────────────────────────── */
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.text-center{text-align:center}
.text-muted{color:var(--text-muted)}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}
.d-flex{display:flex}.align-center{align-items:center}.justify-between{justify-content:space-between}
.gap-1{gap:.5rem}.gap-2{gap:1rem}
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .7rem;border-radius:20px;font-size:.75rem;font-weight:600}
.badge--gold{background:var(--secondary-light);color:#7a5c00}
.badge--rose{background:var(--primary-light);color:var(--primary-dark)}
.badge--green{background:#d1fae5;color:#065f46}
.section-title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;color:var(--dark)}
.section-subtitle{color:var(--text-muted);font-size:.95rem;margin-top:.5rem}
.divider{width:60px;height:3px;background:var(--primary);border-radius:2px;margin:1rem auto}

/* ─── Botones ────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.75rem 1.8rem;border-radius:var(--radius-sm);border:2px solid transparent;
  font-weight:600;cursor:pointer;transition:all var(--transition);white-space:nowrap
}
.btn--primary{background:var(--primary);color:#fff}
.btn--primary:hover{background:var(--primary-dark);color:#fff}
.btn--secondary{background:var(--secondary);color:#fff}
.btn--secondary:hover{background:#a8831f;color:#fff}
.btn--outline{background:transparent;border-color:var(--primary);color:var(--primary)}
.btn--outline:hover{background:var(--primary);color:#fff}
.btn--outline-white{background:transparent;border-color:#fff;color:#fff}
.btn--outline-white:hover{background:#fff;color:var(--primary)}
.btn--dark{background:var(--dark);color:#fff}
.btn--dark:hover{background:#1a1f2b;color:#fff}
.btn--sm{padding:.5rem 1.2rem;font-size:.85rem}
.btn--lg{padding:1rem 2.5rem;font-size:1.05rem}
.btn--full{width:100%}
.btn:disabled{opacity:.6;cursor:not-allowed}

/* ─── Formularios ────────────────────────────────── */
.form-group{margin-bottom:1.2rem}
.form-group label{display:block;font-weight:500;margin-bottom:.4rem;font-size:.9rem;color:var(--dark)}
.form-group label .required{color:var(--primary);margin-left:2px}
.form-control{
  width:100%;padding:.75rem 1rem;border:1.5px solid var(--border);
  border-radius:var(--radius-sm);background:#fff;color:var(--text);
  transition:border var(--transition),box-shadow var(--transition)
}
.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(181,116,140,.15)}
.form-control.error{border-color:#ef4444}
.form-error{font-size:.8rem;color:#ef4444;margin-top:.3rem}
.form-hint{font-size:.8rem;color:var(--text-muted);margin-top:.3rem}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}
.alert{padding:1rem 1.2rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem;display:flex;align-items:flex-start;gap:.7rem}
.alert--success{background:#d1fae5;color:#065f46;border-left:4px solid #10b981}
.alert--error{background:#fee2e2;color:#991b1b;border-left:4px solid #ef4444}
.alert--info{background:#dbeafe;color:#1e40af;border-left:4px solid #3b82f6}
.alert--warning{background:#fef3c7;color:#92400e;border-left:4px solid #f59e0b}

/* ─── Topbar ─────────────────────────────────────── */
.topbar{background:var(--dark);color:#ccc;font-size:.8rem;padding:.4rem 0}
.topbar__inner{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.topbar__inner i{margin-right:.3rem;color:var(--primary)}
.topbar__right{margin-left:auto;display:flex;align-items:center;gap:1rem}
.topbar__right a{color:#ccc;transition:color var(--transition)}
.topbar__right a:hover{color:var(--primary)}
.btn-topbar{background:var(--primary);color:#fff!important;padding:.25rem .8rem;border-radius:20px;font-weight:600}
.btn-topbar:hover{background:var(--primary-dark)!important}

/* ─── Navbar ─────────────────────────────────────── */
.navbar{
  position:sticky;top:0;z-index:1000;background:#fff;
  box-shadow:0 2px 12px rgba(44,51,68,.08);
  padding:.8rem 0
}
.navbar__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.navbar__logo{display:flex;align-items:baseline;gap:0;text-decoration:none}
.logo-text{font-family:var(--font-display);font-size:1.5rem;color:var(--dark)}
.logo-text strong{color:var(--primary)}
.logo-dot{color:var(--secondary);font-weight:700;font-size:1.2rem}
.navbar__menu{display:flex;align-items:center;gap:1.5rem}
.navbar__menu a{color:var(--dark);font-weight:500;font-size:.9rem;transition:color var(--transition)}
.navbar__menu a:hover{color:var(--primary)}
.nav-dropdown{position:relative}
.nav-dropdown__trigger{display:flex;align-items:center;gap:.3rem;cursor:pointer}
.nav-dropdown__panel{
  position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);
  padding:.8rem;min-width:260px;display:grid;grid-template-columns:1fr 1fr;gap:.3rem;
  opacity:0;pointer-events:none;transition:opacity var(--transition),top var(--transition)
}
.nav-dropdown:hover .nav-dropdown__panel{opacity:1;pointer-events:all;top:calc(100% + 8px)}
.nav-dropdown__panel a{
  display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;
  border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;font-weight:500
}
.nav-dropdown__panel a:hover{background:var(--primary-light);color:var(--primary-dark)}
.nav-dropdown__panel a i{width:16px;color:var(--primary);font-size:.85rem}
.navbar__hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.navbar__hamburger span{display:block;width:24px;height:2px;background:var(--dark);border-radius:2px;transition:all var(--transition)}
@media(max-width:900px){
  .navbar__menu{
    display:none;position:fixed;inset:0;background:#fff;
    flex-direction:column;align-items:flex-start;padding:5rem 2rem 2rem;
    gap:1rem;overflow-y:auto;z-index:999
  }
  .navbar__menu.open{display:flex}
  .nav-dropdown__panel{position:static;transform:none;opacity:1;pointer-events:all;box-shadow:none;grid-template-columns:1fr;padding:0 0 0 1rem}
  .navbar__hamburger{display:flex;z-index:1001}
}

/* ─── Hero ───────────────────────────────────────── */
.hero{
  min-height:88vh;display:flex;align-items:center;
  background:linear-gradient(135deg,var(--dark) 0%,#4a3050 50%,#7a4060 100%);
  position:relative;overflow:hidden
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:url('/assets/images/hero-bg.jpg') center/cover no-repeat;
  opacity:.25
}
.hero__content{position:relative;z-index:1;text-align:center;color:#fff;max-width:800px;margin:0 auto;padding:4rem 1rem}
.hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;padding:.4rem 1rem;border-radius:20px;font-size:.85rem;margin-bottom:1.5rem}
.hero__title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.15;margin-bottom:1rem}
.hero__title em{color:var(--secondary);font-style:normal}
.hero__subtitle{font-size:1.1rem;opacity:.9;margin-bottom:2.5rem}
.hero__search{
  display:flex;background:#fff;border-radius:50px;
  padding:.35rem;box-shadow:var(--shadow-lg);max-width:700px;margin:0 auto 2rem
}
.hero__search select,.hero__search input{
  border:none;outline:none;background:transparent;padding:.6rem 1rem;
  color:var(--text);font-size:.9rem;flex:1
}
.hero__search select{border-right:1px solid var(--border);min-width:180px;cursor:pointer}
.hero__search .btn{border-radius:40px;padding:.7rem 2rem}
.hero__stats{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap;margin-top:2rem}
.hero__stat span{font-family:var(--font-display);font-size:2rem;color:var(--secondary);display:block}
.hero__stat p{font-size:.85rem;opacity:.8}
@media(max-width:600px){
  .hero__search{flex-direction:column;border-radius:var(--radius);padding:.5rem}
  .hero__search select{border-right:none;border-bottom:1px solid var(--border)}
  .hero__stats{gap:1.5rem}
}

/* ─── Categorías ─────────────────────────────────── */
.categories{padding:5rem 0;background:#fff}
.categories__grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:1rem;margin-top:2.5rem
}
.cat-card{
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
  padding:1.5rem 1rem;border-radius:var(--radius);border:1.5px solid var(--border);
  cursor:pointer;transition:all var(--transition);text-align:center;text-decoration:none;color:var(--text)
}
.cat-card:hover{border-color:var(--primary);background:var(--primary-light);transform:translateY(-4px);box-shadow:var(--shadow)}
.cat-card__icon{
  width:56px;height:56px;border-radius:50%;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;color:var(--primary);transition:all var(--transition)
}
.cat-card:hover .cat-card__icon{background:var(--primary);color:#fff}
.cat-card__name{font-size:.8rem;font-weight:600;color:var(--dark)}
.cat-card__count{font-size:.72rem;color:var(--text-muted)}
@media(max-width:1100px){.categories__grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.categories__grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:380px){.categories__grid{grid-template-columns:repeat(2,1fr)}}

/* ─── Tarjeta de servicio ─────────────────────────── */
.service-card{
  background:#fff;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);border:1px solid var(--border);
  transition:all var(--transition);position:relative
}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.service-card__img{
  position:relative;height:200px;overflow:hidden;background:var(--primary-light)
}
.service-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.service-card:hover .service-card__img img{transform:scale(1.05)}
.service-card__img-placeholder{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:3rem;color:var(--primary);opacity:.4
}
.service-card__badges{position:absolute;top:.7rem;left:.7rem;display:flex;flex-wrap:wrap;gap:.3rem}
.service-card__body{padding:1.2rem}
.service-card__category{font-size:.75rem;color:var(--primary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.service-card__title{font-family:var(--font-display);font-size:1.05rem;color:var(--dark);margin:.3rem 0 .5rem;line-height:1.3}
.service-card__location{font-size:.82rem;color:var(--text-muted);display:flex;align-items:center;gap:.3rem}
.service-card__rating{display:flex;align-items:center;gap:.4rem;font-size:.82rem;margin:.5rem 0}
.stars{color:var(--secondary);letter-spacing:1px}
.service-card__price{font-weight:600;color:var(--dark);font-size:.9rem;margin-top:.5rem}
.service-card__footer{padding:.8rem 1.2rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.service-card__footer a{font-size:.82rem;color:var(--primary);font-weight:600}

.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem
}
@media(max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:550px){.services-grid{grid-template-columns:1fr}}

/* ─── Sección destacados ──────────────────────────── */
.featured{padding:5rem 0;background:var(--bg)}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:2.5rem}
.section-header__text .section-title{margin-bottom:.3rem}

/* ─── Cómo funciona ───────────────────────────────── */
.how-it-works{padding:5rem 0;background:#fff}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem;position:relative}
.steps::before{content:'';position:absolute;top:48px;left:calc(16.67% + 30px);right:calc(16.67% + 30px);height:2px;background:linear-gradient(90deg,var(--primary),var(--secondary));z-index:0}
.step{text-align:center;position:relative;z-index:1}
.step__number{
  width:80px;height:80px;border-radius:50%;background:var(--primary);color:#fff;
  font-family:var(--font-display);font-size:1.8rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;
  box-shadow:0 4px 16px rgba(181,116,140,.35)
}
.step:nth-child(2) .step__number{background:var(--secondary)}
.step:nth-child(3) .step__number{background:var(--dark)}
.step h3{font-family:var(--font-display);font-size:1.15rem;margin-bottom:.5rem;color:var(--dark)}
.step p{font-size:.88rem;color:var(--text-muted)}
@media(max-width:700px){.steps::before{display:none}.steps{grid-template-columns:1fr}}

/* ─── Planes/Precios ──────────────────────────────── */
.plans{padding:5rem 0;background:var(--bg)}
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem;align-items:start}
.plan-card{
  background:#fff;border-radius:var(--radius-lg);border:2px solid var(--border);
  padding:2rem;text-align:center;position:relative;transition:all var(--transition)
}
.plan-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.plan-card--popular{border-color:var(--primary);transform:scale(1.04)}
.plan-card--popular:hover{transform:scale(1.04) translateY(-6px)}
.plan-badge{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--primary);color:#fff;padding:.3rem 1.2rem;border-radius:20px;
  font-size:.8rem;font-weight:600;white-space:nowrap
}
.plan-card__icon{font-size:2.5rem;margin-bottom:1rem}
.plan-card__name{font-family:var(--font-display);font-size:1.4rem;color:var(--dark);margin-bottom:.5rem}
.plan-card__price{margin:1rem 0}
.plan-card__price .price-amount{font-family:var(--font-display);font-size:2.2rem;font-weight:700;color:var(--primary)}
.plan-card__price .price-period{font-size:.82rem;color:var(--text-muted)}
.plan-features{margin:1.5rem 0;text-align:left}
.plan-features li{padding:.45rem 0;border-bottom:1px solid var(--border);font-size:.88rem;display:flex;align-items:center;gap:.6rem}
.plan-features li:last-child{border-bottom:none}
.plan-features i.fa-check{color:#10b981}
.plan-features i.fa-times{color:#d1d5db}
@media(max-width:800px){.plans-grid{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}.plan-card--popular{transform:none}}

/* ─── Testimonios ─────────────────────────────────── */
.testimonials{padding:5rem 0;background:linear-gradient(135deg,var(--dark),#4a3050)}
.testimonials .section-title,.testimonials .section-subtitle{color:#fff}
.testimonials .divider{background:var(--secondary)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem}
.testimonial-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);padding:1.8rem;backdrop-filter:blur(4px)}
.testimonial-card__stars{color:var(--secondary);font-size:1.1rem;letter-spacing:2px;margin-bottom:.8rem}
.testimonial-card__text{color:#e5e7eb;font-size:.9rem;line-height:1.7;margin-bottom:1.2rem}
.testimonial-card__author{display:flex;align-items:center;gap:.8rem}
.testimonial-card__avatar{width:44px;height:44px;border-radius:50%;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--primary-dark);font-size:.9rem;flex-shrink:0}
.testimonial-card__name{font-weight:600;color:#fff;font-size:.88rem}
.testimonial-card__role{font-size:.78rem;color:rgba(255,255,255,.6)}
@media(max-width:800px){.testimonials-grid{grid-template-columns:1fr}}

/* ─── CTA vendedores ──────────────────────────────── */
.cta-vendors{padding:5rem 0;background:#fff;text-align:center}
.cta-vendors__inner{max-width:680px;margin:0 auto}
.cta-vendors .section-title{margin-bottom:.8rem}
.cta-vendors p{color:var(--text-muted);margin-bottom:2rem}
.cta-vendors__btns{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}

/* ─── Página de servicios ─────────────────────────── */
.page-hero{
  background:linear-gradient(135deg,var(--dark),#4a3050);
  padding:3rem 0;color:#fff;text-align:center
}
.page-hero .section-title{color:#fff}
.page-hero p{opacity:.85;margin-top:.5rem}
.services-page{padding:3rem 0}
.services-layout{display:grid;grid-template-columns:280px 1fr;gap:2rem;align-items:start}
.sidebar{background:#fff;border-radius:var(--radius);border:1px solid var(--border);padding:1.5rem;position:sticky;top:90px}
.sidebar h3{font-family:var(--font-display);font-size:1rem;color:var(--dark);margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}
.filter-group{margin-bottom:1.5rem}
.filter-group label{font-size:.85rem;font-weight:500;color:var(--dark);display:flex;align-items:center;gap:.6rem;cursor:pointer;padding:.3rem 0}
.filter-group label input[type=checkbox]{accent-color:var(--primary);width:15px;height:15px}
.sidebar .btn{width:100%;margin-top:.5rem}
.services-main .services-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.results-count{font-size:.88rem;color:var(--text-muted)}
.sort-select{padding:.5rem .8rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text);background:#fff;cursor:pointer}
@media(max-width:800px){.services-layout{grid-template-columns:1fr}.sidebar{position:relative;top:0}}

/* ─── Detalle de servicio ─────────────────────────── */
.service-detail{padding:3rem 0}
.detail-layout{display:grid;grid-template-columns:1fr 360px;gap:2.5rem;align-items:start}
.detail-gallery{
  background:#f0ede8;border-radius:var(--radius);
  padding:1rem;text-align:center;min-height:240px;cursor:zoom-in
}
.detail-gallery img{
  max-width:100%;max-height:500px;
  width:auto;height:auto;display:inline-block;border-radius:6px
}
@media(max-width:600px){
  .detail-gallery img{max-height:320px}
}
.gallery-thumbnails{display:flex;gap:.5rem;margin-top:.5rem;overflow-x:auto;padding-bottom:.2rem}
.gallery-thumbs img{width:70px;height:70px;object-fit:contain;background:#f0f0f0;border-radius:6px;cursor:pointer;opacity:.6;transition:opacity var(--transition);border:2px solid transparent}
.gallery-thumbs img.active,.gallery-thumbs img:hover{opacity:1;border-color:var(--primary)}
.detail-info h1{font-family:var(--font-display);font-size:clamp(1.4rem,2.5vw,2rem);color:var(--dark);margin:.5rem 0 .8rem}
.detail-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--text-muted);margin-bottom:1.2rem}
.detail-meta span{display:flex;align-items:center;gap:.3rem}
.detail-meta i{color:var(--primary)}
.detail-description{color:var(--text);line-height:1.8;font-size:.95rem}
.contact-card{background:#fff;border-radius:var(--radius);border:1.5px solid var(--border);padding:1.5rem;position:sticky;top:90px}
.contact-card h3{font-family:var(--font-display);font-size:1.1rem;color:var(--dark);margin-bottom:1rem}
@media(max-width:900px){.detail-layout{grid-template-columns:1fr}}

/* ─── Registro ───────────────────────────────────── */
.auth-page{min-height:100vh;display:flex;align-items:center;background:var(--bg);padding:2rem 1rem}
.auth-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:560px;margin:0 auto;overflow:hidden}
.auth-card__header{background:linear-gradient(135deg,var(--dark),#4a3050);padding:2rem;text-align:center;color:#fff}
.auth-card__header .logo-text strong{color:var(--secondary)}
.auth-card__header h2{font-family:var(--font-display);font-size:1.4rem;margin-top:.8rem}
.auth-card__header p{opacity:.8;font-size:.88rem;margin-top:.3rem}
.auth-card__body{padding:2rem}
.auth-type-tabs{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--radius-sm);overflow:hidden;border:1.5px solid var(--border);margin-bottom:1.8rem}
.auth-type-tab{padding:.8rem;text-align:center;cursor:pointer;font-weight:500;font-size:.88rem;transition:all var(--transition);border:none;background:transparent;color:var(--text-muted)}
.auth-type-tab.active{background:var(--primary);color:#fff}
.auth-footer{padding:1.2rem 2rem;text-align:center;border-top:1px solid var(--border);font-size:.88rem;color:var(--text-muted)}
.auth-footer a{color:var(--primary);font-weight:600}
.step-wizard{display:flex;gap:.3rem;justify-content:center;margin-bottom:2rem}
.wizard-step{width:32px;height:4px;border-radius:2px;background:var(--border);transition:background var(--transition)}
.wizard-step.active{background:var(--primary)}
.wizard-step.done{background:var(--secondary)}
.reg-step{display:none}
.reg-step.active{display:block}

/* ─── Panel de vendedor ───────────────────────────── */
.dashboard-layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 110px)}
.dashboard-sidebar{background:var(--dark);padding:1.5rem 0;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}
.dashboard-sidebar .logo{padding:1rem 1.5rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);color:#fff}
.dashboard-sidebar .logo strong{color:var(--secondary)}
.sidebar-nav{margin-top:.5rem}
.sidebar-nav a{
  display:flex;align-items:center;gap:.8rem;padding:.75rem 1.5rem;
  color:rgba(255,255,255,.7);font-size:.88rem;font-weight:500;transition:all var(--transition)
}
.sidebar-nav a:hover,.sidebar-nav a.active{color:#fff;background:rgba(255,255,255,.08);border-left:3px solid var(--primary)}
.sidebar-nav a i{width:18px;font-size:.95rem;color:var(--primary)}
.sidebar-nav .nav-section{padding:.6rem 1.5rem .3rem;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.35);margin-top:.5rem}
.dashboard-content{padding:2rem;background:var(--bg)}
.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
.dashboard-header h1{font-family:var(--font-display);font-size:1.5rem;color:var(--dark)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
.stat-card{background:#fff;border-radius:var(--radius);padding:1.3rem;border:1px solid var(--border);display:flex;align-items:center;gap:1rem}
.stat-card__icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.stat-card__icon--rose{background:var(--primary-light);color:var(--primary)}
.stat-card__icon--gold{background:var(--secondary-light);color:var(--secondary)}
.stat-card__icon--blue{background:#dbeafe;color:#2563eb}
.stat-card__icon--green{background:#d1fae5;color:#059669}
.stat-card__value{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--dark);line-height:1}
.stat-card__label{font-size:.78rem;color:var(--text-muted);margin-top:.2rem}
.content-card{background:#fff;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;margin-bottom:1.5rem}
.content-card__header{padding:1.2rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
.content-card__header h3{font-family:var(--font-display);font-size:1rem;color:var(--dark)}
.content-card__body{padding:1.5rem}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;min-width:500px}
thead th{text-align:left;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:.7rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap}
tbody td{padding:.8rem 1rem;border-bottom:1px solid var(--border);font-size:.88rem;vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--bg)}
.suscripcion-banner{border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.suscripcion-banner--free{background:var(--bg);border:1.5px dashed var(--border)}
.suscripcion-banner--plus{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px solid var(--secondary)}
.suscripcion-banner--premium{background:linear-gradient(135deg,var(--primary-light),#f0d9e2);border:1.5px solid var(--primary)}
/* Dashboard grilla de tarjetas (servicios + mensajes) */
.dash-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}

/* ─── Dashboard Mobile ──────────────────────────── */
@media(max-width:900px){
  .dashboard-layout{grid-template-columns:1fr;padding-bottom:70px}
  /* Barra de navegación inferior */
  .dashboard-sidebar{
    position:fixed;bottom:0;left:0;right:0;
    height:64px;padding:0;z-index:900;
    display:flex;align-items:stretch;
    box-shadow:0 -2px 12px rgba(44,51,68,.15)
  }
  .dashboard-sidebar .logo{display:none}
  .sidebar-nav{
    display:flex;flex-direction:row;width:100%;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none
  }
  .sidebar-nav::-webkit-scrollbar{display:none}
  .sidebar-nav a{
    flex:1;min-width:64px;
    flex-direction:column;align-items:center;justify-content:center;
    padding:.5rem .3rem;gap:.2rem;
    font-size:.6rem;font-weight:500;white-space:nowrap;
    color:rgba(255,255,255,.6);border-left:none!important;
    border-top:3px solid transparent
  }
  .sidebar-nav a:hover,.sidebar-nav a.active{
    color:#fff;background:rgba(255,255,255,.1);
    border-top-color:var(--primary);border-left:none!important
  }
  .sidebar-nav a i{font-size:1.15rem;width:auto}
  .sidebar-nav .nav-section{display:none}
  /* Contenido */
  .dashboard-content{padding:1rem;padding-bottom:80px;background:var(--bg)}
  .dashboard-header{margin-bottom:1.2rem}
  .dashboard-header h1{font-size:1.2rem}
  .stats-grid{grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.2rem}
  .stat-card{padding:.9rem;gap:.6rem}
  .stat-card__icon{width:36px;height:36px;font-size:.9rem}
  .stat-card__value{font-size:1.2rem}
  .stat-card__label{font-size:.68rem}
  .dash-cards-grid{grid-template-columns:1fr}
  .suscripcion-banner{flex-direction:column;align-items:flex-start;padding:1rem}
}
@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr 1fr}
  .dashboard-content{padding:.8rem;padding-bottom:80px}
}

/* ─── Upload de fotos ─────────────────────────────── */
.photo-upload-area{
  border:2px dashed var(--border);border-radius:var(--radius);
  padding:2.5rem;text-align:center;cursor:pointer;transition:all var(--transition)
}
.photo-upload-area:hover,.photo-upload-area.dragover{border-color:var(--primary);background:var(--primary-light)}
.photo-upload-area i{font-size:2.5rem;color:var(--primary);margin-bottom:.8rem;display:block}
.photo-upload-area p{font-size:.88rem;color:var(--text-muted)}
.photo-upload-area input{display:none}
.photo-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:1rem}
.photo-preview-item{
  position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;
  background:var(--border)
}
.photo-preview-item img{width:100%;height:100%;object-fit:cover}
.photo-preview-item .remove-photo{
  position:absolute;top:4px;right:4px;background:rgba(0,0,0,.6);color:#fff;
  border:none;border-radius:50%;width:22px;height:22px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:.7rem
}
.photo-preview-item .primary-badge{
  position:absolute;bottom:4px;left:4px;background:var(--secondary);color:#fff;
  font-size:.65rem;padding:.1rem .4rem;border-radius:3px;font-weight:600
}

/* ─── Plan selector en registro ──────────────────── */
.plan-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}
.plan-option{
  border:2px solid var(--border);border-radius:var(--radius);padding:1.2rem;
  cursor:pointer;text-align:center;transition:all var(--transition);position:relative
}
.plan-option:hover{border-color:var(--primary)}
.plan-option.selected{border-color:var(--primary);background:var(--primary-light)}
.plan-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.plan-option__name{font-family:var(--font-display);font-weight:700;color:var(--dark);font-size:1rem}
.plan-option__price{color:var(--primary);font-weight:700;font-size:1.1rem;margin:.3rem 0}
.plan-option__features{font-size:.78rem;color:var(--text-muted);line-height:1.6}
.plan-option--popular{border-color:var(--secondary)}
.plan-option--popular::before{content:'Popular';position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--secondary);color:#fff;font-size:.7rem;padding:.1rem .7rem;border-radius:10px;font-weight:600}
@media(max-width:550px){.plan-selector{grid-template-columns:1fr}}

/* ─── Pago con Wompi ──────────────────────────────── */
.checkout-page{min-height:100vh;background:var(--bg);padding:3rem 1rem}
.checkout-card{max-width:520px;margin:0 auto;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.checkout-header{background:linear-gradient(135deg,var(--dark),#4a3050);padding:1.8rem;text-align:center;color:#fff}
.checkout-header h2{font-family:var(--font-display);font-size:1.3rem;margin-top:.5rem}
.checkout-body{padding:2rem}
.order-summary{background:var(--bg);border-radius:var(--radius-sm);padding:1.2rem;margin-bottom:1.5rem}
.order-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.9rem}
.order-row--total{font-weight:700;font-size:1rem;border-top:1.5px solid var(--border);margin-top:.5rem;padding-top:.8rem}
.wompi-security{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted);justify-content:center;margin-top:1rem}
.wompi-security i{color:#10b981}

/* ─── Pago exitoso / fallido ─────────────────────── */
.payment-result{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:2rem}
.payment-result__card{text-align:center;background:#fff;border-radius:var(--radius-lg);padding:3rem;box-shadow:var(--shadow-lg);max-width:480px;width:100%}
.payment-result__icon{font-size:4rem;margin-bottom:1rem}
.payment-result__icon--success{color:#10b981}
.payment-result__icon--fail{color:#ef4444}
.payment-result h2{font-family:var(--font-display);font-size:1.6rem;color:var(--dark);margin-bottom:.5rem}
.payment-result p{color:var(--text-muted);margin-bottom:1.5rem}

/* ─── Footer ─────────────────────────────────────── */
.footer{background:var(--dark);color:rgba(255,255,255,.7)}
.footer__top{padding:4rem 0 2rem}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:3rem}
.footer__logo{font-family:var(--font-display);font-size:1.4rem;color:#fff;text-decoration:none}
.footer__logo strong{color:var(--primary)}
.footer__logo span{color:var(--secondary);font-weight:700}
.footer__brand p{font-size:.85rem;margin-top:.8rem;line-height:1.7}
.footer__social{display:flex;gap:.8rem;margin-top:1.2rem}
.footer__social a{
  width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;
  font-size:.88rem;transition:all var(--transition)
}
.footer__social a:hover{background:var(--primary);color:#fff}
.footer__col h4{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#fff;margin-bottom:1rem}
.footer__col ul li{margin-bottom:.5rem}
.footer__col ul li a{color:rgba(255,255,255,.6);font-size:.85rem;transition:color var(--transition)}
.footer__col ul li a:hover{color:var(--primary)}
.footer__col ul li i{margin-right:.4rem;color:var(--primary);font-size:.75rem}
.footer__bottom{border-top:1px solid rgba(255,255,255,.08);padding:1.2rem 0}
.footer__bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.footer__bottom p,.footer__legal a{font-size:.8rem;color:rgba(255,255,255,.45)}
.footer__legal{display:flex;gap:1.5rem}
.footer__legal a:hover{color:var(--primary)}
@media(max-width:900px){.footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:550px){.footer__grid{grid-template-columns:1fr}}

/* ─── Lightbox ───────────────────────────────────── */
#lightbox{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center}
#lightbox.activo{display:flex}
#lb-overlay{position:absolute;inset:0;background:rgba(0,0,0,.93)}
#lb-container{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;padding:60px 70px
}
#lb-img{
  max-width:100%;max-height:100%;
  width:auto;height:auto;
  display:block;border-radius:4px;
  box-shadow:0 8px 40px rgba(0,0,0,.7);
  user-select:none;-webkit-user-drag:none
}
/* Botón cerrar — esquina superior derecha */
#lb-close{
  position:fixed;top:14px;right:16px;z-index:2;
  background:rgba(255,255,255,.18);backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.25);border-radius:50%;
  color:#fff;font-size:1.3rem;width:42px;height:42px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s
}
#lb-close:hover{background:rgba(255,255,255,.35)}
/* Botones anterior / siguiente — pegados a los bordes */
#lb-prev,#lb-next{
  position:fixed;top:50%;transform:translateY(-50%);z-index:2;
  background:rgba(255,255,255,.15);backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.2);border-radius:50%;
  color:#fff;font-size:2rem;width:52px;height:52px;
  cursor:pointer;display:none;align-items:center;justify-content:center;
  transition:background .2s,transform .2s;line-height:1
}
#lb-prev{left:12px}
#lb-next{right:12px}
#lb-prev:hover{background:rgba(255,255,255,.3);transform:translateY(-50%) scale(1.1)}
#lb-next:hover{background:rgba(255,255,255,.3);transform:translateY(-50%) scale(1.1)}
#lb-prev.visible,#lb-next.visible{display:flex}
/* Contador centrado abajo */
#lb-counter{
  position:fixed;bottom:16px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.8);font-size:.82rem;font-family:var(--font-body);
  background:rgba(0,0,0,.5);padding:.3rem 1rem;border-radius:20px;
  letter-spacing:.5px
}
/* Hint de deslizar en móvil */
#lb-swipe-hint{
  position:fixed;bottom:46px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.45);font-size:.72rem;white-space:nowrap
}
@media(max-width:600px){
  #lb-container{padding:50px 14px}
  #lb-prev{left:6px}
  #lb-next{right:6px}
  #lb-prev,#lb-next{width:40px;height:40px;font-size:1.5rem}
}

/* ─── Loader / Spinner ───────────────────────────── */
.spinner{
  width:20px;height:20px;border:2px solid rgba(255,255,255,.3);
  border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block
}
@keyframes spin{to{transform:rotate(360deg)}}
.page-loading{position:fixed;inset:0;background:#fff;display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .3s}
.page-loading.hidden{opacity:0;pointer-events:none}

/* ─── Toast / Notificaciones ─────────────────────── */
.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem}
.toast{
  background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);
  padding:.8rem 1.2rem;display:flex;align-items:center;gap:.7rem;
  min-width:240px;max-width:380px;animation:slideIn .3s ease
}
.toast i{font-size:1rem}
.toast--success i{color:#10b981}
.toast--error i{color:#ef4444}
.toast--info i{color:var(--primary)}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}

/* ─── Responsive helpers ──────────────────────────── */
@media(max-width:600px){
  .hide-mobile{display:none!important}
  .topbar__inner>span{display:none}
  .topbar__right{margin-left:0}
}
@media(min-width:601px){.show-mobile{display:none!important}}

/* ─── Mejoras globales mobile (≤ 600px) ─────────── */
@media(max-width:600px){
  /* Topbar más compacto */
  .topbar{font-size:.72rem;padding:.3rem 0}
  .topbar__right{gap:.6rem}

  /* Navbar */
  .navbar{padding:.6rem 0}
  .logo-text{font-size:1.2rem}

  /* Hero */
  .hero{min-height:auto;padding:2rem 0}
  .hero__content{padding:2.5rem 1rem}
  .hero__title{font-size:1.8rem}
  .hero__subtitle{font-size:.9rem}
  .hero__stats{gap:1.2rem}
  .hero__stat span{font-size:1.5rem}
  .hero__stat p{font-size:.75rem}

  /* Búsqueda hero */
  .hero__search{flex-direction:column;border-radius:var(--radius);padding:.4rem}
  .hero__search select{border-right:none;border-bottom:1px solid var(--border)}
  .hero__search input{padding:.5rem 1rem}
  .hero__search .btn{border-radius:8px;width:100%}

  /* Categorías */
  .categories{padding:3rem 0}
  .categories__grid{grid-template-columns:repeat(3,1fr);gap:.6rem}
  .cat-card{padding:1rem .5rem;gap:.4rem}
  .cat-card__icon{width:44px;height:44px;font-size:1.1rem}
  .cat-card__name{font-size:.72rem}
  .cat-card__count{display:none}

  /* Sección destacados */
  .featured{padding:3rem 0}
  .services-grid{grid-template-columns:1fr}
  .section-header{flex-direction:column;align-items:flex-start;gap:.5rem}

  /* Cómo funciona */
  .how-it-works{padding:3rem 0}
  .steps{grid-template-columns:1fr;gap:1.5rem}
  .step__number{width:60px;height:60px;font-size:1.4rem}

  /* Planes */
  .plans{padding:3rem 0}
  .plans-grid{grid-template-columns:1fr;max-width:100%}
  .plan-card--popular{transform:none}
  .plan-card{padding:1.5rem}

  /* Testimonios */
  .testimonials{padding:3rem 0}
  .testimonials-grid{grid-template-columns:1fr}

  /* CTA */
  .cta-vendors{padding:3rem 0}
  .cta-vendors__btns{flex-direction:column}
  .cta-vendors__btns .btn{width:100%}

  /* Página de servicios */
  .services-layout{grid-template-columns:1fr}
  .sidebar{display:none}
  .services-grid[style*="repeat(2"]{grid-template-columns:1fr!important}

  /* Detalle de servicio */
  .detail-layout{grid-template-columns:1fr}
  .detail-gallery{border-radius:var(--radius-sm)}

  /* Auth / Registro */
  .auth-card{border-radius:0;min-height:100vh}
  .auth-page{padding:0;align-items:flex-start}
  .auth-card__body{padding:1.2rem}
  .auth-card__header{padding:1.5rem}
  .plan-selector{grid-template-columns:1fr}

  /* Footer */
  .footer__grid{grid-template-columns:1fr}
  .footer__top{padding:2.5rem 0 1.5rem}
  .footer__legal{flex-direction:column;gap:.5rem}

  /* Checkout / pago */
  .checkout-page{padding:0}
  .checkout-card{border-radius:0;min-height:100vh}
  .payment-result__card{border-radius:var(--radius);padding:2rem 1.2rem;margin:1rem}

  /* Tablas en móvil */
  .table-responsive{border-radius:var(--radius-sm);border:1px solid var(--border)}
  table{min-width:400px}

  /* Botones pantalla completa en formularios clave */
  .btn--full-mobile{width:100%}

  /* Foto preview grid */
  .photo-preview-grid{grid-template-columns:repeat(3,1fr)}
}

/* ─── Tablet (601px — 900px) ─────────────────────── */
@media(min-width:601px) and (max-width:900px){
  .categories__grid{grid-template-columns:repeat(4,1fr)}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .plans-grid{grid-template-columns:1fr;max-width:440px;margin:2.5rem auto 0}
  .hero__search{flex-wrap:wrap}
  .hero__search select{min-width:100%;border-right:none;border-bottom:1px solid var(--border)}
  .detail-layout{grid-template-columns:1fr}
}
