/* =============================================
   LEÓN SOLEDAD — Premium Design System
   ============================================= */

/* 1. RESET */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { font-family:var(--font-body); font-size:1rem; font-weight:400; line-height:1.7; color:var(--dark); background:var(--cream); overflow-x:hidden; }
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; transition:color var(--dur) var(--ease); }
ul,ol { list-style:none; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }

/* 1.2 MAC-STYLE SCROLLBAR */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--dark); }
::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--white); }
* { scrollbar-width: thin; scrollbar-color: var(--gold) var(--dark); }

/* 1.5 PRELOADER */
.preloader { position:fixed; inset:0; background:var(--dark); z-index:9999; display:flex; flex-direction:column; align-items:center; justify-content:center; transition:opacity 0.6s var(--ease), visibility 0.6s; }
.preloader.hidden { opacity:0; visibility:hidden; }
.preloader__logo-wrapper { width:140px; height:140px; position:relative; margin-bottom:var(--sp-xl); }
.preloader__outline { width:100%; height:100%; opacity:0.15; position:absolute; inset:0; object-fit:contain; }
.preloader__water { width:100%; height:100%; position:absolute; inset:0; object-fit:contain; clip-path:inset(100% 0 0 0); animation:water-fill 0.9s cubic-bezier(0.4, 0, 0.2, 1) forwards; }
@keyframes water-fill { 0% { clip-path:inset(100% 0 0 0); } 40% { clip-path:inset(50% 0 0 0); } 100% { clip-path:inset(0 0 0 0); } }
.preloader__text { font-family:var(--font-heading); font-size:1.4rem; color:var(--white); letter-spacing:1px; font-weight:500; animation:fade-in-up 1.5s var(--ease) forwards; opacity:0; transform:translateY(15px); }
@keyframes fade-in-up { to { opacity:1; transform:translateY(0); } }
body.loading { overflow:hidden; }

/* 2. CUSTOM PROPERTIES */
:root {
  --cream:#FDFCF8; --cream-dk:#F9F7F1;
  --dark:#000000; --dark-soft:#111111;
  --brown:#000000; --brown-lt:#444444;
  --gold:#C9A96E; --gold-lt:#E8D5A9; --gold-dk:#A07C45;
  --gold-text:#8A6A38; /* dorado legible (4.87:1) para texto sobre fondos claros */
  --terra:#000000; --terra-dk:#222222;
  --white:#FDFCF8; --gray-lt:#F0EDE8; --gray:#999999;
  --overlay-dk:rgba(28,20,16,.65); --overlay-md:rgba(28,20,16,.45);
  --font-heading:'EB Garamond',Georgia,serif;
  --font-body:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  --sp-xs:.5rem; --sp-sm:1rem; --sp-md:1.5rem; --sp-lg:2.5rem; --sp-xl:4rem; --sp-2xl:6rem; --sp-3xl:8rem;
  --shadow-sm:0 2px 8px rgba(28,20,16,.06); --shadow-md:0 4px 20px rgba(28,20,16,.08);
  --shadow-lg:0 8px 40px rgba(28,20,16,.12); --shadow-xl:0 20px 60px rgba(28,20,16,.15);
  --radius-sm:4px; --radius-md:8px; --radius-lg:16px;
  --ease:cubic-bezier(.4,0,.2,1); --ease-out:cubic-bezier(0,0,.2,1);
  --dur:.3s; --dur-slow:.6s;
  --container:1200px; --container-narrow:800px; --container-wide:1400px;
  --nav-h:80px;
}

/* 3. TYPOGRAPHY */
h1,h2,h3,h4,h5,h6 { font-family:var(--font-heading); font-weight:600; line-height:1.2; color:var(--dark); }
h1 { font-size:clamp(2.2rem,5vw,3.8rem); }
h2 { font-size:clamp(1.8rem,3.5vw,2.8rem); }
h3 { font-size:clamp(1.4rem,2.5vw,1.8rem); }
h4 { font-size:1.25rem; }
p  { margin-bottom:1rem; color:var(--brown); }
.text-gold { color:var(--gold); }
.text-cream { color:var(--cream); }

.section__label {
  display:inline-block; font-family:var(--font-body); font-size:.8rem; font-weight:500;
  letter-spacing:3px; text-transform:uppercase; color:var(--gold-text);
  margin-bottom:var(--sp-sm); position:relative; padding-bottom:.75rem;
}
.section__label::after {
  content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:40px; height:2px; background:var(--gold);
}
.section__label--left::after { left:0; transform:none; }
.section__label--gold { color:var(--gold-lt); }
.section__label--gold::after { background:var(--gold-lt); }

/* 4. LAYOUT — mobile base: 6rem padding, enhanced to 8rem at 768px+ */
.container { width:100%; max-width:var(--container); margin:0 auto; padding:0 var(--sp-md); }
.container--narrow { max-width:var(--container-narrow); }
.container--wide { max-width:var(--container-wide); }
.section { padding:var(--sp-2xl) 0; }
.section--cream { background:var(--cream-dk); }
.section--dark { background:var(--dark); color:var(--cream); }
.section--dark h2,.section--dark h3 { color:var(--cream); }
.section--dark p { color:var(--gray-lt); }
.section--dark .section__label { color:var(--gold-lt); }
.section--light { background:var(--cream); }
.section__header { text-align:center; max-width:700px; margin:0 auto var(--sp-xl); }
.section__header p { margin-top:var(--sp-sm); font-size:1.05rem; color:var(--brown-lt); }

/* 5. BUTTONS */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 2rem; font-family:var(--font-body); font-size:.9rem; font-weight:500;
  letter-spacing:.5px; border-radius:var(--radius-sm); transition:all var(--dur) var(--ease);
  cursor:pointer; border:2px solid transparent;
}
.btn--primary { background:var(--terra); color:var(--white); border-color:var(--terra); }
.btn--primary:hover { background:var(--terra-dk); border-color:var(--terra-dk); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn--secondary { background:transparent; color:var(--white); border-color:var(--gold-lt); }
.btn--secondary:hover { background:var(--gold); color:var(--dark); border-color:var(--gold); transform:translateY(-2px); }
.btn--outline { background:transparent; color:var(--terra); border-color:var(--terra); }
.btn--outline:hover { background:var(--terra); color:var(--white); transform:translateY(-2px); }
.btn--gold { background:var(--gold); color:var(--dark); border-color:var(--gold); }
.btn--gold:hover { background:var(--gold-dk); border-color:var(--gold-dk); transform:translateY(-2px); }
.btn--large { padding:1.1rem 2.5rem; font-size:1rem; }
.btn--whatsapp { background:#25D366; color:var(--white); border-color:#25D366; }
.btn--whatsapp:hover { background:#20BA5A; border-color:#20BA5A; transform:translateY(-2px); }

/* 6. NAVIGATION — mobile panel by default, desktop layout via min-width:1024px */
.navbar {
  position:fixed; top:0; left:0; width:100%; z-index:1000;
  padding:var(--sp-sm) var(--sp-md) 0; transition:all var(--dur) var(--ease); background:transparent;
}
.navbar.scrolled { padding:0 var(--sp-md); background:rgba(0,0,0,.95); backdrop-filter:blur(10px); box-shadow:0 2px 20px rgba(0,0,0,.15); }
.navbar__inner { display:flex; align-items:center; justify-content:space-between; height:var(--nav-h); max-width:var(--container-wide); margin:0 auto; }
.navbar__logo { display:flex; align-items:center; }
.navbar__logo-img { max-height:75px; width:auto; transition:all var(--dur) var(--ease); filter:invert(1); }
.navbar.scrolled .navbar__logo-img { filter:invert(1); }
/* Mobile: show mobile logo, hide desktop logo */
.navbar__logo--mobile { display:flex; z-index:1001; }
/* Altura concreta: el SVG con width:auto colapsa a 0 dentro del flex del nav */
.navbar__logo--mobile .navbar__logo-img { height:52px; width:auto; max-height:none; }
.navbar__logo--desktop { display:none; }
/* Mobile menu: off-canvas panel */
.navbar__menu { position:fixed; top:0; right:-100%; width:320px; height:100vh; background:var(--dark); display:flex; flex-direction:column; align-items:flex-start; padding:calc(var(--nav-h) + var(--sp-lg)) var(--sp-lg) var(--sp-lg); gap:0; transition:right var(--dur) var(--ease); overflow-y:auto; justify-content:flex-start; }
.navbar__menu.open { right:0; }
.navbar__menu-group { display:flex; flex-direction:column; align-items:flex-start; width:100%; gap:0; }
.navbar__link { font-size:1rem; font-weight:400; color:rgba(255,255,255,.85); letter-spacing:.5px; transition:color var(--dur) var(--ease); position:relative; padding:.75rem 0; width:100%; border-bottom:1px solid rgba(255,255,255,.06); }
.navbar__link:hover,.navbar__link.active { color:var(--gold); }
.navbar__link::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1.5px; background:var(--gold); transition:width var(--dur) var(--ease); }
.navbar__link:hover::after,.navbar__link.active::after { width:100%; }
/* Dropdown: inline panel on mobile */
.navbar__dropdown { position:relative; }
.navbar__dropdown-trigger::after { content:''; display:inline-block; width:0; height:0; margin-left:5px; border-left:4px solid transparent; border-right:4px solid transparent; border-top:4px solid currentColor; vertical-align:middle; }
.navbar__dropdown-menu { position:static; transform:none; min-width:auto; background:rgba(255,255,255,.05); border-radius:var(--radius-sm); box-shadow:none; opacity:1; visibility:visible; padding:var(--sp-xs) 0; margin-top:var(--sp-xs); display:none; transition:none; }
.navbar__dropdown.open .navbar__dropdown-menu { display:block; }
.navbar__dropdown-item { display:block; padding:.5rem 1rem; font-size:.85rem; color:var(--gray); transition:all var(--dur) var(--ease); }
.navbar__dropdown-item:hover { background:transparent; color:var(--gold); padding-left:1.8rem; }
.navbar__cta { margin-left:0; margin-top:var(--sp-md); }
.navbar__cta .btn { padding:.6rem 1.5rem; font-size:.8rem; }
/* Hamburger toggle: visible by default on mobile */
.navbar__toggle { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; cursor:pointer; padding:10px; margin:-10px; min-width:44px; min-height:44px; z-index:1001; }
.navbar__toggle span { width:24px; height:2px; background:var(--white); transition:all var(--dur) var(--ease); }
.navbar__toggle.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.navbar__toggle.active span:nth-child(2) { opacity:0; }
.navbar__toggle.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* 7. HERO */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; background:var(--dark); }
.hero__bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.hero__bg::after { content:''; position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,.75) 0%, rgba(0,0,0,.5) 40%, rgba(0,0,0,.2) 100%); }
.hero__content { position:relative; z-index:2; max-width:800px; padding:0 var(--sp-md); }
.hero__label { display:inline-block; font-family:var(--font-body); font-size:.8rem; font-weight:500; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:var(--sp-md); }
.hero h1 { color:var(--white); margin-bottom:var(--sp-md); font-weight:500; line-height:1.15; }
.hero__subtitle { color:rgba(255,255,255,.8); font-size:1.1rem; line-height:1.7; margin-bottom:var(--sp-xl); max-width:600px; margin-left:auto; margin-right:auto; }
/* Mobile: stack CTAs vertically */
.hero__ctas { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-sm); flex-wrap:wrap; }
.hero__ctas .btn { width:100%; max-width:280px; }
.hero__scroll { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.5rem; color:rgba(255,255,255,.5); font-size:.7rem; letter-spacing:2px; text-transform:uppercase; animation:float 2s ease-in-out infinite; }
.hero__scroll-line { width:1px; height:40px; background:linear-gradient(to bottom,var(--gold),transparent); }
/* Mobile base: compact subpage heights. padding-top evita que el contenido
   centrado (etiqueta del hero) se encime con el logo fijo del navbar. */
.hero--page { min-height:50vh; padding-top:calc(var(--nav-h) + var(--sp-lg)); }
.hero--subpage { min-height:65vh; padding-top:calc(var(--nav-h) + var(--sp-lg)); }
.hero--small { min-height:50vh; padding-top:calc(var(--nav-h) + var(--sp-lg)); }
/* Fondo elegante sin foto (secciones sin imagen real, p.ej. corporativos/alimentación) */
.bg-elegant-dark { background:radial-gradient(circle at 72% 22%, rgba(201,169,110,.18), transparent 52%), linear-gradient(155deg, #161616 0%, #000 100%); }

/* 8. STATS BAR — single column on mobile */
.stats { background:var(--dark); padding:var(--sp-xl) 0; border-bottom:1px solid rgba(201,169,110,.2); }
.stats__grid { display:grid; grid-template-columns:1fr; gap:var(--sp-md); text-align:center; }
.stats__item { position:relative; }
.stats__item::after { display:none; }
.stats__number { font-family:var(--font-heading); font-size:2.2rem; font-weight:600; color:var(--gold); display:block; margin-bottom:.3rem; }
.stats__text { font-size:.8rem; letter-spacing:1px; text-transform:uppercase; color:var(--gray); }

/* 9. CLIENT CARDS — single column on mobile */
.client-cards { display:grid; grid-template-columns:1fr; max-width:500px; margin:0 auto; gap:var(--sp-md); }
.client-card { position:relative; height:380px; border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; display:block; }
/* On mobile all cards equal height; tall variant applied at 1024px+ */
.client-card:nth-child(1),
.client-card:nth-child(2) { height:380px; }
.client-card__bg { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform var(--dur-slow) var(--ease); }
.client-card:hover .client-card__bg { transform:scale(1.05); }
.client-card__overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.18) 55%, transparent 100%); transition:background .5s var(--ease); }
.client-card:hover .client-card__overlay { background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.35) 65%); }
/* Title always visible; description & link appear on hover */
.client-card__content { position:absolute; bottom:0; left:0; right:0; padding:var(--sp-lg); z-index:2; }
.client-card__content p, .client-card__content .client-card__link { opacity:0; transform:translateY(10px); transition:all .4s var(--ease); }
.client-card:hover .client-card__content p,
.client-card:hover .client-card__content .client-card__link { opacity:1; transform:translateY(0); }
.client-card__icon { font-size:1.5rem; color:var(--gold); margin-bottom:var(--sp-sm); }
.client-card h3 { color:var(--white); margin-bottom:var(--sp-xs); font-size:2.8rem; line-height:1.1; transition:transform .4s var(--ease); }
.client-card:hover h3 { transform:translateY(-4px); }
.client-card p { color:rgba(255,255,255,.8); font-size:.9rem; margin-bottom:var(--sp-md); }
.client-card__link { display:inline-flex; align-items:center; gap:.5rem; color:var(--gold); font-size:.85rem; font-weight:500; letter-spacing:.5px; transition:gap var(--dur) var(--ease); }
.client-card:hover .client-card__link { gap:.8rem; }
/* Touch devices: always show full content */
@media (hover:none) {
  .client-card__content p, .client-card__content .client-card__link { opacity:1; transform:none; }
}
.service-choice-help { max-width:640px; margin:var(--sp-xl) auto 0; text-align:center; }
.service-choice-help p { color:var(--brown-lt); margin-bottom:var(--sp-sm); }
/* Uniform-height variant for style-inspiration grids */
.client-cards--uniform .client-card,
.client-cards--uniform .client-card:nth-child(1),
.client-cards--uniform .client-card:nth-child(2) { height:480px; }

/* 10. SERVICES GRID — single column on mobile */
.services-grid { display:grid; grid-template-columns:1fr; gap:var(--sp-lg); max-width:400px; margin:0 auto; }
.service-item { text-align:center; padding:var(--sp-lg) var(--sp-md); border-radius:var(--radius-lg); background:var(--white); transition:all var(--dur) var(--ease); }
.service-item:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.service-item__icon { width:60px; height:60px; margin:0 auto var(--sp-md); display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--cream); color:var(--gold); font-size:1.4rem; transition:all var(--dur) var(--ease); }
.service-item:hover .service-item__icon { background:var(--gold); color:var(--white); }
.service-item h4 { margin-bottom:var(--sp-xs); font-family:var(--font-heading); font-size:1.05rem; }
.service-item p { font-size:.85rem; color:var(--brown-lt); line-height:1.6; margin-bottom:0; }

/* 11. GALLERY — single column on mobile */
.gallery__filters { display:flex; justify-content:center; flex-wrap:wrap; gap:var(--sp-xs); margin-bottom:var(--sp-xl); }
.gallery__filter { padding:.5rem 1.25rem; font-size:.85rem; font-weight:500; color:var(--brown-lt); border:1px solid var(--gray-lt); border-radius:var(--radius-sm); cursor:pointer; transition:all var(--dur) var(--ease); background:transparent; font-family:var(--font-body); }
.gallery__filter:hover,.gallery__filter.active { background:var(--terra); color:var(--white); border-color:var(--terra); }
.gallery__grid { display:grid; grid-template-columns:1fr; gap:var(--sp-sm); }
.gallery__item { position:relative; aspect-ratio:4/3; border-radius:var(--radius-md); overflow:hidden; cursor:pointer; }
.gallery__item img { width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease); }
.gallery__item:hover img { transform:scale(1.08); }
.gallery__item-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(28,20,16,.7) 0%,transparent 60%); opacity:0; transition:opacity var(--dur) var(--ease); display:flex; align-items:flex-end; padding:var(--sp-md); }
.gallery__item:hover .gallery__item-overlay { opacity:1; }
.gallery__item-overlay span { color:var(--white); font-size:.75rem; font-weight:500; letter-spacing:1px; text-transform:uppercase; display:block; margin-bottom:4px; }
.gallery__item-overlay h3 { color:var(--white); font-size:1.05rem; margin:0; }

/* 12. PROCESS — single column on mobile */
.process-grid { display:grid; grid-template-columns:1fr; gap:var(--sp-md); max-width:400px; margin:0 auto; position:relative; }
.process-grid::before { display:none; }
.process-step { text-align:center; position:relative; z-index:1; }
.process-step__img { width:100%; aspect-ratio:3/4; border-radius:var(--radius-lg); overflow:hidden; margin-bottom:var(--sp-md); }
.process-step__img img { width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease); filter:grayscale(30%); }
.process-step:hover .process-step__img img { transform:scale(1.05); filter:grayscale(0%); }
.process-step__number { font-family:var(--font-heading); font-size:2.5rem; font-weight:600; color:var(--dark); letter-spacing:2px; margin-bottom:var(--sp-xs); }
.process-step h4 { margin-bottom:var(--sp-xs); font-family:var(--font-heading); font-size:1.1rem; }
.process-step p { font-size:.85rem; color:var(--brown-lt); }

/* 13. TESTIMONIALS */
.testimonials__carousel { position:relative; max-width:800px; margin:0 auto; overflow:hidden; }
.testimonials__track { display:flex; transition:transform var(--dur-slow) var(--ease); }
.testimonial { min-width:100%; text-align:center; padding:0 var(--sp-lg); }
/* Mobile base: smaller quote */
.testimonial__quote { font-family:var(--font-heading); font-size:1.1rem; font-style:italic; font-weight:400; color:var(--dark); line-height:1.8; margin-bottom:var(--sp-lg); position:relative; }
.testimonial__quote::before { content:'\201C'; font-family:var(--font-heading); font-size:4rem; color:var(--gold); position:absolute; top:-1.5rem; left:-.5rem; line-height:1; }
.testimonial__author { display:flex; flex-direction:column; align-items:center; gap:.25rem; }
.testimonial__name { font-weight:600; font-size:.95rem; color:var(--dark); }
.testimonial__event { font-size:.8rem; color:var(--gold); letter-spacing:1px; text-transform:uppercase; }
.testimonials__dots { display:flex; justify-content:center; gap:.5rem; margin-top:var(--sp-lg); }
.testimonials__dot { width:10px; height:10px; border-radius:50%; background:var(--gray-lt); cursor:pointer; transition:all var(--dur) var(--ease); border:none; }
.testimonials__dot.active { background:var(--gold); transform:scale(1.2); }

/* 13.5 PROCESS EN DETALLE (CÓMO TRABAJAMOS) — stacked on mobile */
.process-detailed-list { display:flex; flex-direction:column; gap:calc(var(--sp-xl) + var(--sp-md)); margin-top:var(--sp-xl); }
/* Mobile: column layout (no !important needed — mobile is the base) */
.process-item { display:flex; flex-direction:column; align-items:center; gap:0; text-align:center; background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease); padding:0; position:relative; }
.process-item:hover { transform:translateY(-8px); box-shadow:var(--shadow-xl); }
/* Even items: same column layout on mobile */
.process-item:nth-child(even) { flex-direction:column; text-align:center; }
.process-item:nth-child(even) .process-item__num { left:20px; right:auto; }
.process-item__content { flex:1; padding:var(--sp-lg); position:relative; }
.process-item__num { font-family:var(--font-heading); font-size:6rem; font-weight:700; color:var(--cream-dk); position:absolute; top:-30px; left:20px; z-index:0; user-select:none; line-height:1; }
.process-item__content h3 { font-size:1.7rem; color:var(--dark); margin-bottom:var(--sp-sm); position:relative; z-index:1; font-family:var(--font-heading); }
.process-item__content p { color:var(--brown-lt); font-size:1.05rem; line-height:1.7; position:relative; z-index:1; margin-bottom:0; }
/* Mobile: full-width image, compact height */
.process-item__visual { flex:1; height:300px; min-width:100%; width:100%; }
.process-item__visual img { width:100%; height:100%; object-fit:cover; }

/* 14. CTA BANNER — compact padding on mobile */
.cta-banner { position:relative; padding:var(--sp-2xl) var(--sp-md); text-align:center; overflow:hidden; }
.cta-banner__bg { position:absolute; inset:0; background-size:cover; background-position:center; background-attachment:scroll; }
.cta-banner__bg::after { content:''; position:absolute; inset:0; background:var(--overlay-dk); }
.cta-banner__content { position:relative; z-index:2; max-width:650px; margin:0 auto; padding:0 var(--sp-md); }
/* Mobile: explicit size since clamp is small at narrow widths */
.cta-banner h2 { color:var(--white); margin-bottom:var(--sp-md); font-weight:500; font-size:2.2rem; }
.cta-banner p { color:rgba(255,255,255,.8); font-size:1.05rem; margin-bottom:var(--sp-lg); }

/* 15. FOOTER — single column, centered on mobile */
.footer { background:var(--dark); color:var(--gray); padding:var(--sp-3xl) 0 var(--sp-lg); }
.footer__grid { display:grid; grid-template-columns:1fr; gap:var(--sp-xl); margin-bottom:var(--sp-2xl); text-align:center; }
.footer__brand { max-width:300px; margin:0 auto; }
.footer__logo-link { display:inline-block; margin-bottom:var(--sp-md); }
.footer__logo-img { max-height:50px; width:auto; filter:invert(1); transition:opacity var(--dur) var(--ease); }
.footer__logo-img:hover { opacity:.8; }
.footer__desc { font-size:.9rem; line-height:1.7; margin-bottom:var(--sp-md); }
.footer__social { display:flex; gap:var(--sp-sm); justify-content:center; }
.footer__social a { width:40px; height:40px; border-radius:50%; border:1px solid rgba(201,169,110,.3); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:.9rem; transition:all var(--dur) var(--ease); }
.footer__social a:hover { background:var(--gold); color:var(--dark); border-color:var(--gold); }
.footer h4 { font-family:var(--font-heading); font-size:1rem; color:var(--white); margin-bottom:var(--sp-md); font-weight:500; }
.footer__links li { margin-bottom:.6rem; }
.footer__links a { font-size:.88rem; color:var(--gray); transition:all var(--dur) var(--ease); }
.footer__links a:hover { color:var(--gold); padding-left:4px; }
.footer__contact-item { display:flex; align-items:flex-start; gap:.75rem; margin-bottom:var(--sp-sm); font-size:.88rem; justify-content:center; }
.footer__contact-item i { color:var(--gold); margin-top:3px; width:16px; }
.footer__bottom { border-top:1px solid rgba(255,255,255,.08); padding-top:var(--sp-md); display:flex; flex-direction:column; gap:var(--sp-sm); align-items:center; font-size:.8rem; text-align:center; }
.footer__bottom a { color:var(--gold); }
.footer__credit { color:var(--gold); text-decoration:none; transition:color var(--dur) var(--ease); }
.footer__credit:hover { color:var(--white); }

/* 16. FORMS — single column, 1rem inputs (16px prevents iOS zoom) */
.form-group { margin-bottom:var(--sp-md); }
.form-group label { display:block; font-size:.85rem; font-weight:500; color:var(--dark); margin-bottom:.4rem; }
.form-group input,.form-group select,.form-group textarea { width:100%; padding:.85rem 1rem; font-family:var(--font-body); font-size:1rem; color:var(--dark); background:var(--white); border:1px solid var(--gray-lt); border-radius:var(--radius-sm); transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease); outline:none; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,169,110,.15); }
.form-group textarea { resize:vertical; min-height:120px; }
.form-row { display:grid; grid-template-columns:1fr; gap:var(--sp-md); }

/* 17. FAQ */
.faq__item { border-bottom:1px solid var(--gray-lt); }
.faq__question { width:100%; padding:var(--sp-md) 0; display:flex; justify-content:space-between; align-items:center; font-family:var(--font-heading); font-size:1.1rem; font-weight:500; color:var(--dark); cursor:pointer; text-align:left; background:none; border:none; }
.faq__icon { font-size:1.2rem; color:var(--gold); transition:transform var(--dur) var(--ease); flex-shrink:0; }
.faq__item.active .faq__icon { transform:rotate(45deg); }
/* h4 inside .faq__question overrides global h4 {font-size:1.25rem} */
.faq__question h4 { font-size:1.05rem; font-weight:500; color:inherit; margin:0; }
/* Fallback: catch unclassed chevron icons inside .faq__question */
.faq__question i:not(.faq__icon) { font-size:1.1rem; color:var(--gold); transition:transform var(--dur) var(--ease); flex-shrink:0; }
.faq__item.active .faq__question i:not(.faq__icon) { transform:rotate(180deg); }
.faq__answer { max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq__answer p { padding-bottom:var(--sp-md); font-size:.95rem; color:var(--brown-lt); line-height:1.7; margin-bottom:0; }

/* 18. ANIMATIONS */
@keyframes float { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-8px)} }
.animate-on-scroll { will-change:opacity,transform; }
.stagger-children > * { will-change:opacity,transform; }

/* 19. UTILITIES */
.text-center { text-align:center; }
.gold-line { width:60px; height:2px; background:var(--gold); margin:var(--sp-md) auto; }
.gold-line--left { margin-left:0; }
.mobile-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:999; opacity:0; visibility:hidden; transition:all var(--dur) var(--ease); }
.mobile-overlay.active { opacity:1; visibility:visible; }

/* 20. PROPOSAL MODAL — full width on mobile */
.proposal-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:2000;
  opacity:0; visibility:hidden; transition:all .35s var(--ease);
  backdrop-filter:blur(4px);
}
.proposal-overlay.active { opacity:1; visibility:visible; }

.proposal-modal {
  position:fixed; top:0; right:-100%; width:100vw; height:100vh;
  background:var(--cream); z-index:2001; overflow-y:auto;
  transition:right .4s var(--ease-out); box-shadow:-10px 0 40px rgba(0,0,0,.15);
}
.proposal-modal.active { right:0; }

.proposal-modal__header {
  position:sticky; top:0; z-index:10; background:var(--dark); color:var(--white);
  padding:var(--sp-md) var(--sp-lg); display:flex; align-items:center; justify-content:space-between;
}
.proposal-modal__header h3 { color:var(--white); margin:0; font-size:1.2rem; }
.proposal-modal__close {
  width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; color:var(--white);
  font-size:1rem; cursor:pointer; transition:all var(--dur) var(--ease); background:none;
}
.proposal-modal__close:hover { background:rgba(255,255,255,.1); }

/* Mobile: tighter body padding */
.proposal-modal__body { padding:var(--sp-md) var(--sp-sm); }

.pm-card {
  background:var(--white); border:1px solid var(--gray-lt); border-radius:var(--radius-md);
  padding:var(--sp-lg); margin-bottom:var(--sp-md); box-shadow:var(--shadow-sm);
}
.pm-card__head { display:flex; align-items:flex-start; gap:12px; margin-bottom:var(--sp-md); }
.pm-step {
  width:32px; height:32px; border-radius:50%; background:transparent; color:var(--gold);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; flex-shrink:0;
  border:2px solid var(--gold);
}
.pm-card h4 { margin:0; font-family:var(--font-heading); font-size:1.15rem; color:var(--dark); }
.pm-card .pm-sub { font-size:.82rem; color:var(--brown-lt); margin-top:3px; }

.pm-field { margin-bottom:var(--sp-md); }
.pm-field label { display:block; font-size:.82rem; font-weight:600; color:var(--dark); margin-bottom:6px; letter-spacing:.3px; }
/* 1rem = 16px: iOS-safe, no zoom on focus; refined to .9rem at 600px+ */
.pm-field input, .pm-field select, .pm-field textarea {
  width:100%; padding:10px 14px; border:1px solid var(--gray-lt); border-radius:var(--radius-sm);
  font-family:var(--font-body); font-size:1rem; outline:none; transition:border-color var(--dur) var(--ease);
  background:var(--white); color:var(--dark);
}
.pm-field input:focus, .pm-field select:focus, .pm-field textarea:focus { border-color:var(--dark); }
.pm-field textarea { resize:vertical; min-height:90px; }

/* Mobile: single column grids */
.pm-grid { display:grid; gap:10px; }
.pm-grid--2 { grid-template-columns:1fr; }
.pm-grid--3 { grid-template-columns:1fr; }

.pm-choice {
  padding:12px; border:1px solid var(--gray-lt); border-radius:var(--radius-sm);
  background:var(--white); cursor:pointer; transition:all .25s var(--ease); text-align:left;
}
.pm-choice:hover { border-color:var(--dark); background:var(--cream-dk); }
.pm-choice.active { border-color:var(--dark); background:var(--dark); color:var(--white); box-shadow:none; }
.pm-choice.active .pm-choice__title { color:var(--white); }
.pm-choice.active .pm-choice__help { color:rgba(255,255,255,.6); }
.pm-choice__title { font-weight:600; font-size:.85rem; color:var(--dark); }
.pm-choice__help { font-size:.75rem; color:var(--brown-lt); margin-top:3px; }

.pm-hint {
  padding:10px 14px; background:var(--cream-dk); border:1px solid var(--gray-lt);
  border-radius:var(--radius-sm); font-size:.8rem; color:var(--brown-lt); margin:10px 0 12px; line-height:1.5;
}

.pm-summary {
  background:var(--dark); color:var(--white); border-radius:var(--radius-md);
  padding:15px; margin-top:var(--sp-md);
}
.pm-summary h4 { color:var(--white); margin-bottom:var(--sp-sm); font-size:1.45rem; }
/* Mobile: tighter value size */
.pm-summary__value {
  font-family:var(--font-heading); font-size:1.3rem; font-weight:700; color:var(--white);
  margin:var(--sp-xs) 0 var(--sp-sm);
}
.pm-summary__detail { font-size:.82rem; color:rgba(255,255,255,.65); line-height:1.6; margin-bottom:var(--sp-xs); }
.pm-chip-wrap { display:flex; flex-wrap:wrap; gap:6px; margin:var(--sp-sm) 0; }
.pm-chip {
  padding:4px 10px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15);
  border-radius:20px; font-size:.72rem; color:rgba(255,255,255,.8);
}

.pm-wa-btn {
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; padding:16px; background:#25D366; color:var(--white); border-radius:var(--radius-sm);
  text-decoration:none; font-weight:700; font-size:1.05rem; transition:background .3s; margin-top:var(--sp-md);
  border:none; cursor:pointer;
}
.pm-wa-btn:hover { background:#20BA5A; }

.pm-footnote { font-size:.7rem; color:var(--brown-lt); text-align:center; margin-top:var(--sp-sm); }
.pm-summary__includes { font-size:.78rem; color:rgba(255,255,255,.5); margin-bottom:var(--sp-sm); line-height:1.6; }
.pm-summary__reassurance {
  font-size:.78rem; color:var(--gold); margin:8px 0 var(--sp-sm);
  display:flex; align-items:center; gap:7px; opacity:.9;
}

/* Wizard step navigation */
.pm-step-label { font-size:.72rem; color:rgba(255,255,255,.5); letter-spacing:.4px; white-space:nowrap; }
.pm-progress-bar { height:3px; background:rgba(0,0,0,.12); }
.pm-progress-fill { height:100%; background:var(--gold); transition:width .45s var(--ease); }
.pm-panel { display:none; }
@keyframes pmFadeIn {
  from { opacity:0; transform:translateY(10px); }
  to   { opacity:1; transform:translateY(0); }
}
.pm-panel.active { display:block; animation:pmFadeIn .28s ease; }
.pm-nav { display:flex; justify-content:space-between; align-items:center; margin-top:var(--sp-md); gap:10px; }
.pm-btn-next {
  margin-left:auto; background:var(--dark); color:var(--white); border:none;
  padding:13px 28px; border-radius:var(--radius-sm); font-family:var(--font-body);
  font-weight:600; font-size:.9rem; cursor:pointer; display:flex; align-items:center;
  gap:8px; transition:background var(--dur) var(--ease); letter-spacing:.2px;
}
.pm-btn-next:hover { background:#1a1a1a; }
.pm-btn-back {
  background:transparent; border:1px solid var(--gray-lt); color:var(--brown-lt);
  padding:13px 20px; border-radius:var(--radius-sm); font-family:var(--font-body);
  font-size:.9rem; cursor:pointer; display:flex; align-items:center; gap:8px;
  transition:all var(--dur) var(--ease);
}
.pm-btn-back:hover { border-color:var(--dark); color:var(--dark); background:var(--cream-dk); }

/* 7.5 VIDEO TESTIMONIALS */
.video-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:var(--sp-lg); margin-top:var(--sp-xl); }
.video-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease); display:flex; flex-direction:column; }
.video-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-xl); }
.video-card__media { position:relative; width:100%; display:flex; background:var(--dark); }
/* Mobile: shorter video height */
.video-card__player { width:100%; height:auto; max-height:400px; display:block; object-fit:cover; }
.video-play-btn { position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); width:60px; height:60px; border-radius:50%; background:rgba(255,255,255,0.25); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); color:var(--white); font-size:1.5rem; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.4s var(--ease); z-index:2; border: 2px solid rgba(255,255,255,0.8); }
.video-play-btn:hover { background:rgba(255,255,255,0.4); transform:translate(-50%, -50%) scale(1.1); }
.video-card__info { padding:var(--sp-md); text-align:center; display:flex; flex-direction:column; align-items:center; flex-shrink:0; }
.video-card__info h4 { margin-bottom:0; font-family:var(--font-heading); color:var(--dark); font-size:1.3rem; }

/* 20.5 AGENDAR ASESORÍA — mensajes de día y botón segunda opción (reusa modal .pm-*) */
.pm-day-msg { font-size:.8rem; line-height:1.5; margin:-4px 0 12px; }
.pm-day-msg:empty { margin:0; }
.pm-day-msg i { margin-right:5px; }
.pm-day-msg--warn { color:#8a6d00; }
.pm-day-msg--error { color:#b00020; }
.pm-hint--error { background:#fdecea; border-color:#f1b0b7; color:#b00020; }
.ag-add { display:inline-flex; align-items:center; gap:6px; background:none; border:1px dashed var(--gray-lt); color:var(--brown-lt); padding:8px 12px; border-radius:var(--radius-sm); font-family:var(--font-body); font-size:.82rem; cursor:pointer; margin-bottom:12px; transition:all var(--dur) var(--ease); }
.ag-add:hover { border-color:var(--gold-dk); color:var(--gold-dk); }

/* 20.6 PÁGINA LEGAL (privacidad) — reusa tipografía base */
.legal { max-width:var(--container-narrow); margin:0 auto; }
.legal__updated { font-size:.85rem; color:var(--gray); margin-bottom:var(--sp-lg); }
.legal h2 { font-size:1.5rem; margin:var(--sp-xl) 0 var(--sp-sm); }
.legal h3 { font-size:1.15rem; margin:var(--sp-lg) 0 var(--sp-xs); }
.legal p, .legal li { color:var(--brown-lt); line-height:1.8; }
.legal ul { list-style:disc; padding-left:1.4rem; margin:0 0 var(--sp-md); }
.legal li { margin-bottom:.4rem; }
.legal a { color:var(--gold-text); text-decoration:underline; }

/* 20.7 ASISTENTE IA — chat (dialog nativo, panel abajo-derecha) */
.ai-dialog { border:none; padding:0; margin:0; width:min(400px,94vw); height:min(600px,82vh);
  position:fixed; inset:auto 1.25rem 1.25rem auto; border-radius:var(--radius-lg);
  background:var(--cream); color:var(--dark); box-shadow:var(--shadow-xl); overflow:hidden; }
.ai-dialog[open] { display:flex; flex-direction:column; }
.ai-dialog::backdrop { background:rgba(0,0,0,.4); }
.ai-head { background:var(--dark); color:var(--white); padding:.9rem 1rem; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.ai-head__t { font-family:var(--font-heading); font-size:1.05rem; }
.ai-head__t i { color:var(--gold); margin-right:6px; }
.ai-x { width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.2); color:var(--white); background:none; cursor:pointer; }
.ai-x:hover { background:rgba(255,255,255,.1); }
.ai-msgs { flex:1; overflow-y:auto; padding:var(--sp-md); display:flex; flex-direction:column; gap:.55rem; }
.ai-msg { max-width:86%; padding:.6rem .85rem; border-radius:14px; font-size:.92rem; line-height:1.5; word-wrap:break-word; }
.ai-msg--bot { background:var(--white); border:1px solid var(--gray-lt); align-self:flex-start; border-bottom-left-radius:4px; }
.ai-msg--user { background:var(--gold); color:var(--dark); align-self:flex-end; border-bottom-right-radius:4px; }
.ai-msg a { color:var(--gold-dk); text-decoration:underline; }
.ai-thinking { opacity:.55; font-style:italic; }
.ai-chips { display:flex; flex-wrap:wrap; gap:.4rem; padding:0 var(--sp-md) .5rem; }
.ai-chip { border:1px solid var(--gold); color:var(--gold-dk); background:transparent; border-radius:20px; padding:.4rem .8rem; font-size:.82rem; cursor:pointer; font-family:var(--font-body); transition:all var(--dur) var(--ease); }
.ai-chip:hover { background:var(--gold); color:var(--dark); }
.ai-input { display:flex; gap:.5rem; padding:var(--sp-sm) var(--sp-md); align-items:flex-end; border-top:1px solid var(--gray-lt); flex-shrink:0; }
.ai-input textarea { flex:1; resize:none; border:1px solid var(--gray-lt); border-radius:var(--radius-md); padding:.6rem .8rem; font-family:var(--font-body); font-size:1rem; line-height:1.4; max-height:120px; outline:none; background:var(--white); color:var(--dark); }
.ai-input textarea:focus { border-color:var(--gold); }
.ai-send { width:44px; height:44px; border-radius:50%; background:var(--dark); color:var(--white); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.ai-send:disabled { opacity:.4; cursor:default; }
.ai-wa-btn { margin:var(--sp-sm) var(--sp-md) 0; padding:14px; background:#25D366; color:#fff; border:none; border-radius:var(--radius-sm); font-family:var(--font-body); font-weight:700; font-size:1rem; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; }
.ai-wa-btn:hover { background:#20BA5A; }
.ai-escape { background:none; border:none; color:var(--brown-lt); font-size:.8rem; padding:.6rem var(--sp-md) var(--sp-md); cursor:pointer; }
.ai-escape:hover { color:var(--gold-dk); }
@media (max-width:600px) {
  .ai-dialog { inset:auto 0 0 0; width:100vw; height:var(--ai-vh,92vh); max-height:100vh; border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
}

/* 21. FLOATING WHATSAPP BUTTON — mobile-sized by default */
.wa-float {
  position:fixed; bottom:1.25rem; right:1.25rem; z-index:998;
  width:52px; height:52px; border-radius:50%;
  background:#25D366; color:#fff; font-size:1.45rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.45);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  text-decoration:none;
}
.wa-float:hover { transform:scale(1.12); box-shadow:0 8px 32px rgba(37,211,102,.65); color:#fff; }
.wa-float:focus-visible { outline:3px solid #25D366; outline-offset:3px; }

/* ===============================================
   22. RESPONSIVE — MOBILE FIRST (min-width)
   =============================================== */

/* 480px+: 2-column stats and gallery, taller page heroes */
@media(min-width:480px) {
  .stats__grid { grid-template-columns:repeat(2,1fr); }
  .gallery__grid { grid-template-columns:repeat(2,1fr); }
  .hero--page { min-height:60vh; }
}

/* 600px+: modal gains constrained width, wizard grids expand, iOS font-size refined */
@media(min-width:600px) {
  .proposal-modal { width:min(680px,100vw); }
  .proposal-modal__body { padding:var(--sp-lg); }
  .pm-summary { padding:var(--sp-lg); }
  .pm-grid--2 { grid-template-columns:1fr 1fr; }
  .pm-grid--3 { grid-template-columns:1fr 1fr 1fr; }
  .pm-summary__value { font-size:1.6rem; }
  .pm-field input, .pm-field select, .pm-field textarea { font-size:.9rem; }
  .form-group input,.form-group select,.form-group textarea { font-size:.9rem; }
  .video-card__player { max-height:500px; }
}

/* 768px+: section padding, 2-column layouts, footer left-align, hero CTAs inline */
@media(min-width:768px) {
  .section { padding:var(--sp-3xl) 0; }
  .hero__ctas { flex-direction:row; align-items:center; }
  .hero__ctas .btn { width:auto; max-width:none; }
  .stats__grid { grid-template-columns:repeat(3,1fr); gap:var(--sp-md); }
  .stats__item:nth-child(3)::after { display:none; }
  .services-grid { grid-template-columns:repeat(2,1fr); max-width:none; margin:0; }
  .process-grid { grid-template-columns:repeat(2,1fr); max-width:none; margin:0; }
  .gallery__grid { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
  .footer__grid { grid-template-columns:1fr 1fr; text-align:left; }
  .footer__brand { margin:0; }
  .footer__contact-item { justify-content:flex-start; }
  .footer__social { justify-content:flex-start; }
  .footer__bottom { flex-direction:row; justify-content:space-between; align-items:center; gap:0; text-align:left; }
  .form-row { grid-template-columns:1fr 1fr; }
  .testimonial__quote { font-size:1.3rem; }
  .cta-banner { padding:var(--sp-3xl) 0; }
  .cta-banner h2 { font-size:clamp(1.8rem,3.5vw,2.8rem); }
  /* Process detail: side-by-side layout */
  .process-item { flex-direction:row; text-align:left; padding:0; align-items:stretch; }
  .process-item:nth-child(even) { flex-direction:row-reverse; text-align:right; }
  .process-item:nth-child(even) .process-item__num { left:auto; right:20px; }
  .process-item__visual { height:450px; min-width:450px; width:auto; }
  .process-item__content { padding:var(--sp-xl); }
  .wa-float { bottom:1.75rem; right:1.75rem; width:58px; height:58px; font-size:1.6rem; }
}

/* 1024px+: desktop navbar, 4-column grids, full client-card heights, 5-col stats */
@media(min-width:1024px) {
  /* Navbar: switch to full horizontal layout */
  .navbar { padding:var(--sp-md) var(--sp-md) 0; }
  .navbar__toggle { display:none; }
  .navbar__logo--mobile { display:none; }
  .navbar__logo--desktop { display:flex; position:absolute; left:50%; transform:translateX(-50%); width:280px; justify-content:center; }
  .navbar__menu { position:relative; right:auto; top:auto; width:100%; height:auto; background:transparent; flex-direction:row; align-items:center; padding:0; overflow:visible; justify-content:space-between; transition:none; }
  .navbar__menu-group { flex-direction:row; align-items:center; width:auto; gap:var(--sp-md); flex:1; justify-content:flex-end; padding-right:110px; }
  .navbar__menu-group:last-child { justify-content:flex-start; padding-left:110px; padding-right:0; }
  .navbar__link { padding:0; width:auto; font-size:.85rem; border-bottom:none; }
  .navbar__cta { margin-left:var(--sp-sm); margin-top:0; }
  /* Dropdown: hover-based floating panel on desktop */
  .navbar__dropdown-menu { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(10px); min-width:220px; background:var(--white); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); padding:var(--sp-xs) 0; opacity:0; visibility:hidden; display:block; margin-top:0; transition:all var(--dur) var(--ease); }
  .navbar__dropdown:hover .navbar__dropdown-menu,
  .navbar__dropdown.open .navbar__dropdown-menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
  .navbar__dropdown-item { color:var(--dark); padding:.6rem 1.5rem; }
  .navbar__dropdown-item:hover { background:var(--cream); color:var(--terra); padding-left:1.8rem; }
  /* Client cards: 2-column with tall first-row cards */
  .client-cards { grid-template-columns:1fr 1fr; max-width:none; margin:0; }
  .client-card { height:390px; }
  .client-card:nth-child(1),
  .client-card:nth-child(2) { height:780px; }
  /* Uniform variant overrides tall first-row on bodas estilos section */
  .client-cards--uniform .client-card,
  .client-cards--uniform .client-card:nth-child(1),
  .client-cards--uniform .client-card:nth-child(2) { height:480px; }
  /* Services + Process: 4 columns */
  .services-grid { grid-template-columns:repeat(4,1fr); }
  .process-grid { grid-template-columns:repeat(4,1fr); max-width:none; margin:0; }
  /* Stats: 5 columns with separator lines */
  .stats__grid { grid-template-columns:repeat(5,1fr); gap:var(--sp-lg); }
  .stats__item:not(:last-child)::after { content:''; position:absolute; right:0; top:50%; transform:translateY(-50%); width:1px; height:40px; background:rgba(201,169,110,.2); display:block; }
  /* Footer: 4-column layout */
  .footer__grid { grid-template-columns:1.5fr 1fr 1fr 1.2fr; }
}
