/* AvanzaDesign — refresh de estilo (se carga DESPUÉS del css de cada página) */
:root { --av-orange:#f36e21; --av-orange-dark:#d95a12; --av-ink:#1b1b1b; --av-peach:#fdeee3; --av-gray:#555; }

body { font-family:'Poppins',Arial,sans-serif; background:#fff; color:var(--av-ink); }

/* ---------- Header blanco: el logo ya no se pierde ---------- */
header { background:#fff; color:var(--av-ink); padding:10px 0; box-shadow:0 2px 14px rgba(0,0,0,.08); }
header .header-container { max-width:1400px; margin:0 auto; padding:0 32px; gap:24px; }
header .logo { height:68px; width:auto; max-width:none; display:block; }
header nav ul { align-items:center; gap:4px; }
header nav ul li { margin:0; }
header nav ul li a { color:#2a2a2a; font-size:14.5px; font-weight:500; padding:8px 10px; white-space:nowrap; display:block; border-bottom:2px solid transparent; }
header nav ul li a:hover { color:var(--av-orange); }
header nav ul li a.active { color:var(--av-orange); border-bottom-color:var(--av-orange); }
header nav ul li a.nav-pegalo { color:#e91280; font-weight:600; }
header nav ul li.nav-cta-item { margin-left:12px; }
header nav ul li a.nav-cta { background:var(--av-orange); color:#fff; border-radius:6px; padding:11px 18px; display:flex; align-items:center; gap:10px; font-weight:500; border-bottom:0; box-shadow:0 4px 12px rgba(243,110,33,.35); white-space:nowrap; }
header nav ul li a.nav-cta:hover { background:var(--av-orange-dark); color:#fff; }
header nav ul li a.nav-cta svg { width:20px; height:20px; }
header nav ul li.nav-cta-alt-item { margin-left:18px; padding-left:18px; border-left:1px solid #e2e2e2; }
header nav ul li.nav-cta-alt-item + li.nav-cta-item { margin-left:10px; }
header nav ul li a.nav-cta.nav-cta-alt { background:#fff; color:var(--av-orange); border:1.5px solid var(--av-orange); box-shadow:none; padding:10.5px 18px; }
header nav ul li a.nav-cta.nav-cta-alt:hover { background:var(--av-orange); color:#fff; }
header .menu-toggle { display:none; color:var(--av-ink); font-size:28px; }

@media (max-width:1279px) {
  header .header-container { padding:0 18px; }
  header .logo { height:50px; }
  header .menu-toggle { display:block; }
  header #mobile-menu { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; padding:10px 18px 18px; box-shadow:0 10px 20px rgba(0,0,0,.1); }
  header #mobile-menu.show { display:block; }
  header nav ul { flex-direction:column; align-items:stretch; }
  header nav ul li.nav-cta-item { margin:10px 0 0; }
  header nav ul li.nav-cta-alt-item { border-left:0; padding-left:0; margin-left:0; }
  header nav ul li.nav-cta-alt-item + li.nav-cta-item { margin-left:0; }
  header nav ul li a.nav-cta { justify-content:center; }
}

/* ---------- Hero ---------- */
#servicios, #inicio { scroll-margin-top:calc(var(--header-h,100px) + 8px); }
.hero2 { background:linear-gradient(100deg,#fff 58%,var(--av-peach) 100%); }
.hero2-inner { max-width:1400px; margin:0 auto; padding:56px 32px 40px; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; }
.hero2 .eyebrow { font-size:13px; letter-spacing:.28em; color:var(--av-gray); font-weight:500; margin:0 0 18px; }
.hero2 h1 { font-size:clamp(2.3rem,4.4vw,4.4rem); line-height:.98; letter-spacing:-.035em; font-weight:800; margin:0 0 22px; color:var(--av-ink); text-shadow:none; }
.hero2 h1 em { font-style:normal; color:var(--av-orange); }
.hero2 .lead { font-size:clamp(1rem,1.5vw,1.3rem); line-height:1.5; color:#333; max-width:560px; margin:0 0 30px; text-shadow:none; }
.hero2-ctas { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:38px; }
.btn { display:inline-flex; align-items:center; gap:14px; padding:15px 26px; border-radius:6px; font-weight:500; font-size:1rem; text-decoration:none; border:1.5px solid var(--av-orange); transition:background .2s,color .2s; }
.btn-primary { background:var(--av-orange); color:#fff; }
.btn-primary:hover { background:var(--av-orange-dark); }
.btn-outline { background:#fff; color:var(--av-orange); }
.btn-outline:hover { background:var(--av-orange); color:#fff; }
.btn:focus-visible, header a:focus-visible { outline:3px solid #1b1b1b; outline-offset:2px; }

.hero-cats { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; list-style:none; margin:0; padding:0; max-width:700px; }
.hero-cats a { display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; color:#333; text-decoration:none; font-size:.82rem; line-height:1.25; }
.hero-cats .ico { width:68px; height:68px; border-radius:50%; background:var(--av-peach); display:grid; place-items:center; }
.hero-cats svg { width:32px; height:32px; stroke:var(--av-orange); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.hero-cats a:hover .ico { background:var(--av-orange); }
.hero-cats a:hover svg { stroke:#fff; }

/* Collage de fotos reales */
.hero-visual { position:relative; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:14px; padding:18px; }
.hero-visual::before { content:''; position:absolute; inset:0 0 0 12%; background:var(--av-orange); border-radius:22px; transform:rotate(2.5deg); opacity:.14; }
.hero-visual figure { position:relative; margin:0; border-radius:16px; overflow:hidden; box-shadow:0 14px 30px rgba(0,0,0,.18); background:#fff; }
.hero-visual img { width:100%; height:100%; object-fit:cover; display:block; }
.hv-a { grid-row:span 2; } .hv-c, .hv-d { aspect-ratio:1/1; }
.hv-badge { position:absolute; left:34px; bottom:34px; background:var(--av-ink); color:#fff; font-weight:800; letter-spacing:-.02em; padding:10px 18px; border-radius:6px; font-size:clamp(.95rem,1.6vw,1.3rem); }
.hv-badge b { color:var(--av-orange); }

/* Franja oscura de valores */
.hero-values { background:#2b2b2b; color:#fff; }
.hero-values ul { max-width:1100px; margin:0 auto; padding:26px 32px; list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.hero-values li { display:flex; align-items:center; gap:18px; font-size:1.02rem; line-height:1.3; }
.hero-values li + li { border-left:1px solid rgba(255,255,255,.3); padding-left:24px; }
.hero-values svg { width:46px; height:46px; flex:none; stroke:#fff; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

@media (max-width:900px) {
  .hero2-inner { grid-template-columns:1fr; padding:36px 20px 28px; }
  .hero-cats { grid-template-columns:repeat(3,1fr); gap:18px 8px; }
  .hero-values ul { grid-template-columns:1fr; }
  .hero-values li + li { border-left:0; padding-left:0; }
}
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; } }

/* Tarjetas de servicios: limpiar sobre fondo blanco */
#servicios h2 { color:var(--av-ink); }
.service-card { box-sizing:border-box; box-shadow:0 6px 20px rgba(0,0,0,.08); }

/* Tarjeta Corona Digital */
.logo-tile { aspect-ratio:1/1; background:#efecfb; border-radius:8px; display:grid; place-items:center; margin-bottom:20px; }
.logo-tile img { width:46%; height:auto; margin:0; border-radius:0; }
.service-card .card-link { display:inline-block; margin-top:10px; color:#fff; padding:8px 18px; border-radius:20px; text-decoration:none; font-weight:bold; }

/* Servicios: más ancho y tarjetas parejas */
.services-container { max-width:1000px; margin:0 auto; }
.service-card > img { aspect-ratio:1/1; object-fit:cover; }
.service-card > img[src*="pegalo-logo"] { object-fit:contain; background:#fff; }
.logo-tile.tile-invite { background:#fff1e6; }
.logo-tile svg { width:46%; height:auto; stroke:var(--av-orange); fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }

/* Catálogo: el menú lateral nace debajo del header (no lo corta) */
.catalog-layout { display:grid; grid-template-columns:220px minmax(0,1fr); flex:1; align-items:start; }
#sidebar { position:sticky; top:var(--header-h,100px); bottom:auto; left:auto; width:auto; height:calc(100vh - var(--header-h,100px)); overflow-y:auto; background:#fff; color:var(--av-ink); border-right:1px solid #ececec; padding:12px 0 0; z-index:5; }
#sidebar ul { list-style:none; margin:0; padding:10px 12px; }
#sidebar ul li { margin:0 0 6px; }
#sidebar ul li a { color:#2a2a2a; font-size:15px; padding:11px 14px; border-radius:6px; display:block; text-decoration:none; }
#sidebar ul li a:hover { background:var(--av-peach); color:var(--av-orange); }
#sidebar ul li a.active { background:var(--av-orange); color:#fff; }
#catalogo-content { margin:0; padding:28px 36px 40px; background:#fff; min-height:60vh; }
.catalog-section { text-align:left; padding:0; }
.catalog-section h2 { margin:0 0 6px; font-size:1.8rem; font-weight:800; letter-spacing:-.02em; }
.catalog-section h3 { margin:30px 0 4px; font-size:1.15rem; }
.cat-note { color:var(--av-gray); margin:0 0 14px; }
.catalog-section iframe { width:100%; height:82vh; min-height:520px; aspect-ratio:auto; border:1px solid #e5e5e5; border-radius:8px; margin:10px 0 6px; background:#f7f7f7; }
.pdf-open { display:inline-block; color:var(--av-orange); font-weight:500; text-decoration:none; margin-bottom:10px; }
.pdf-open:hover { text-decoration:underline; }
.catalog-section a img { max-width:100%; }
@media (max-width:900px) {
  .catalog-layout { grid-template-columns:minmax(0,1fr); }
  #sidebar { position:static; height:auto; min-width:0; border-right:0; border-bottom:1px solid #ececec; padding:0; overflow-x:auto; overflow-y:hidden; }
  #sidebar ul { display:flex; gap:8px; overflow-x:auto; padding:10px 14px; white-space:nowrap; }
  #sidebar ul li { margin:0; }
  #catalogo-content { padding:18px 14px 30px; }
  .catalog-section iframe { height:70vh; min-height:420px; }
}

.catalog-section { scroll-margin-top:calc(var(--header-h,90px) + 16px); }

#servicios { width:100%; max-width:1400px; margin-left:auto; margin-right:auto; box-sizing:border-box; }

/* Galería: las 5 fotos SIEMPRE del mismo tamaño y alineadas (nunca crecen para llenar una fila) */
#galeria .gallery { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; max-width:1400px; margin:0 auto; padding:0 20px; }
#galeria .gallery-item { flex:0 0 calc((100% - 80px) / 5); max-width:calc((100% - 80px) / 5); }
#galeria .gallery-item img { width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; display:block; }
@media (max-width:999px) {
  #galeria .gallery-item { flex-basis:calc((100% - 40px) / 3); max-width:calc((100% - 40px) / 3); }
}
@media (max-width:639px) {
  #galeria .gallery { gap:12px; padding:0 14px; }
  #galeria .gallery-item { flex-basis:calc((100% - 12px) / 2); max-width:calc((100% - 12px) / 2); }
}
