/* ============================================================
   PORTADA — MR Constructor (prefijo hm-)
   ============================================================ */
.hm-section { padding: 76px 0; }
.hm-eyebrow { display:inline-block; font-size:.78rem; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:#e8940f; margin-bottom:10px; }
.hm-title { font-size:2.15rem; font-weight:800; color:#2b1d12; margin:0 0 12px; letter-spacing:-.4px; }
.hm-lead { color:#6a5a49; font-size:1.08rem; max-width:640px; }
.hm-head { text-align:center; margin-bottom:46px; }
.hm-head .hm-lead { margin: 0 auto; }

/* ---------- HERO ---------- */
.hm-hero { position:relative; overflow:hidden; color:#fff;
  background: radial-gradient(1100px 500px at 85% -10%, rgba(244,168,37,.18), transparent 60%),
              linear-gradient(135deg, #1f150c 0%, #2b1d12 45%, #4A2F1A 100%);
  padding: 84px 0 96px; }
.hm-hero.has-photo { background-size: cover; background-position: center; }
.hm-hero.has-photo::before { content:''; position:absolute; inset:0; background: linear-gradient(100deg, rgba(31,21,12,.93) 25%, rgba(31,21,12,.55)); }
.hm-hero::after { content:''; position:absolute; inset:0; background-image: radial-gradient(rgba(244,168,37,.10) 1px, transparent 1px); background-size: 28px 28px; opacity:.5; pointer-events:none; }
.hm-hero .container { position:relative; z-index:2; }
.hm-hero-tag { display:inline-flex; align-items:center; gap:8px; background:rgba(244,168,37,.14); border:1px solid rgba(244,168,37,.45); color:#f8d488; padding:8px 16px; border-radius:50px; font-weight:600; font-size:.88rem; margin-bottom:22px; }
.hm-hero h1 { font-size:3.1rem; font-weight:800; line-height:1.12; letter-spacing:-1px; margin:0 0 18px; }
.hm-hero h1 em { font-style:normal; color:#f4a825; }
.hm-hero p.hm-sub { font-size:1.18rem; color:#e8ddcf; max-width:560px; margin-bottom:30px; }
.hm-cta-row { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:26px; }
.hm-btn { display:inline-flex; align-items:center; gap:10px; padding:15px 28px; border-radius:13px; font-weight:800; font-size:1.02rem; text-decoration:none; transition:all .28s ease; border:2px solid transparent; }
.hm-btn-gold { background:linear-gradient(135deg,#f4a825,#e8940f); color:#2b1d12 !important; box-shadow:0 10px 26px rgba(244,168,37,.4); }
.hm-btn-gold:hover { transform:translateY(-3px); box-shadow:0 16px 34px rgba(244,168,37,.55); }
.hm-btn-ghost { background:rgba(255,255,255,.06); color:#fff !important; border-color:rgba(255,255,255,.35); }
.hm-btn-ghost:hover { background:rgba(255,255,255,.14); border-color:#f4a825; color:#f4a825 !important; }
.hm-btn-dark { background:#2b1d12; color:#fff !important; } .hm-btn-dark:hover { background:#4A2F1A; transform:translateY(-3px); }
.hm-hero-points { display:flex; flex-wrap:wrap; gap:10px 26px; color:#d9c7b2; font-size:.93rem; }
.hm-hero-points span i { color:#f4a825; margin-right:7px; }

/* Cotización rápida (tarjeta del hero) */
.hm-quick { background:#fff; border-radius:20px; padding:30px; box-shadow:0 30px 70px rgba(0,0,0,.35); color:#2b1d12; }
.hm-quick h3 { font-size:1.35rem; font-weight:800; margin:0 0 4px; }
.hm-quick p { color:#7a6a58; font-size:.93rem; margin-bottom:18px; }
.hm-quick label { font-weight:700; font-size:.85rem; color:#4a3525; margin-bottom:5px; }
.hm-quick .form-control { border:2px solid #e5ddd1; border-radius:11px; padding:11px 14px; background:#fdfcfa; }
.hm-quick .form-control:focus { border-color:#f4a825; box-shadow:0 0 0 4px rgba(244,168,37,.14); background:#fff; }
.hm-quick .hm-btn { width:100%; justify-content:center; margin-top:6px; }
.hm-quick .hm-msg { display:none; margin-top:12px; border-radius:10px; padding:12px 14px; font-weight:600; font-size:.92rem; }
.hm-quick .hm-msg.ok { display:block; background:#eaf7ef; color:#1e6b3a; }
.hm-quick .hm-msg.err { display:block; background:#fdeeee; color:#96313b; }
.hm-quick .hm-link { display:block; text-align:center; margin-top:12px; font-weight:700; color:#6B4423; text-decoration:none; font-size:.92rem; }
.hm-quick .hm-link:hover { color:#e8940f; }

/* ---------- Franja de confianza ---------- */
.hm-trust { background:#fff; border-bottom:1px solid #ece5da; }
.hm-trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.hm-trust-item { display:flex; align-items:center; gap:14px; padding:22px 18px; border-right:1px solid #f0e9de; }
.hm-trust-item:last-child { border-right:none; }
.hm-trust-item i { width:46px; height:46px; flex-shrink:0; border-radius:13px; background:linear-gradient(135deg,rgba(244,168,37,.2),rgba(244,168,37,.08)); color:#e8940f; display:flex; align-items:center; justify-content:center; font-size:1.15rem; }
.hm-trust-item strong { display:block; color:#2b1d12; font-size:.98rem; }
.hm-trust-item span { color:#8a7a68; font-size:.84rem; }

/* ---------- Categorías con imagen ---------- */
.hm-cats { background:#faf7f2; }
.hm-cat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.hm-cat { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:340px; border-radius:22px; overflow:hidden; text-decoration:none; color:#fff !important;
  background:linear-gradient(160deg,#4A2F1A,#1f150c); box-shadow:0 14px 36px rgba(43,29,18,.16); transition:transform .35s ease, box-shadow .35s ease; }
.hm-cat:hover { transform:translateY(-8px); box-shadow:0 26px 54px rgba(43,29,18,.28); }
.hm-cat-bg { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s ease; }
.hm-cat:hover .hm-cat-bg { transform:scale(1.07); }
.hm-cat-icon { position:absolute; top:26px; left:26px; width:62px; height:62px; border-radius:18px; background:rgba(244,168,37,.16); border:1px solid rgba(244,168,37,.5); color:#f4a825; display:flex; align-items:center; justify-content:center; font-size:1.6rem; }
.hm-cat::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 30%, rgba(31,21,12,.92)); }
.hm-cat-body { position:relative; z-index:2; padding:28px; }
.hm-cat h3 { font-size:1.5rem; font-weight:800; margin:0 0 6px; }
.hm-cat p { color:#e0d3c1; margin:0 0 14px; font-size:.97rem; }
.hm-cat-go { font-weight:800; color:#f4a825; }
.hm-cat-go i { margin-left:6px; transition:transform .25s; } .hm-cat:hover .hm-cat-go i { transform:translateX(6px); }

.hm-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:34px; }
.hm-chip { display:inline-flex; align-items:center; gap:8px; background:#fff; border:2px solid #e5ddd1; color:#4a3525 !important; padding:11px 20px; border-radius:50px; font-weight:700; text-decoration:none; transition:all .25s; font-size:.94rem; }
.hm-chip i { color:#e8940f; }
.hm-chip:hover { border-color:#f4a825; background:#fff8ea; transform:translateY(-3px); box-shadow:0 8px 20px rgba(244,168,37,.2); }

/* ---------- Banner cotizador de perfiles ---------- */
.hm-band { background:linear-gradient(120deg,#6B4423,#4A2F1A); color:#fff; padding:46px 0; position:relative; overflow:hidden; }
.hm-band::before { content:'\f1ec'; font-family:'Font Awesome 6 Free'; font-weight:900; position:absolute; right:4%; top:50%; transform:translateY(-50%) rotate(-10deg); font-size:210px; color:rgba(244,168,37,.08); }
.hm-band .container { position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; }
.hm-band h3 { font-size:1.65rem; font-weight:800; margin:0 0 4px; } .hm-band p { margin:0; color:#e8d9c6; }

/* ---------- Productos destacados ---------- */
.hm-featured { background:#fff; }
.hm-featured ul.products { margin-bottom:0 !important; }
.hm-more { text-align:center; margin-top:34px; }

/* ---------- Cómo cotizar ---------- */
.hm-steps { background:#faf7f2; }
.hm-steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; position:relative; }
.hm-step { background:#fff; border-radius:20px; padding:34px 28px; text-align:center; border:1px solid #ece5da; box-shadow:0 10px 28px rgba(43,29,18,.06); position:relative; }
.hm-step-num { width:64px; height:64px; border-radius:50%; margin:0 auto 18px; background:linear-gradient(135deg,#f4a825,#e8940f); color:#2b1d12; font-size:1.6rem; font-weight:800; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(244,168,37,.4); }
.hm-step h4 { font-weight:800; color:#2b1d12; font-size:1.2rem; margin-bottom:8px; }
.hm-step p { color:#6a5a49; margin:0; }

/* ---------- Vestuario ---------- */
.hm-vest { background:linear-gradient(135deg,#1f150c,#2b1d12); color:#fff; }
.hm-vest .hm-title { color:#fff; } .hm-vest .hm-lead { color:#d9c7b2; }
.hm-vest-list { list-style:none; padding:0; margin:22px 0 28px; display:grid; gap:10px; }
.hm-vest-list li { color:#e8ddcf; } .hm-vest-list i { color:#f4a825; margin-right:10px; }
.hm-vest-box { background:rgba(244,168,37,.08); border:1px solid rgba(244,168,37,.3); border-radius:22px; padding:44px 34px; text-align:center; }
.hm-vest-box i { font-size:5rem; color:#f4a825; margin-bottom:16px; }

/* ---------- Ubicación ---------- */
.hm-where { background:#fff; }
.hm-info { display:grid; gap:14px; margin-top:26px; }
.hm-info-row { display:flex; gap:14px; align-items:flex-start; }
.hm-info-row i { width:44px; height:44px; flex-shrink:0; border-radius:12px; background:#fff3dc; color:#e8940f; display:flex; align-items:center; justify-content:center; }
.hm-info-row strong { display:block; color:#2b1d12; } .hm-info-row span, .hm-info-row a { color:#6a5a49; text-decoration:none; }
.hm-map { border-radius:22px; overflow:hidden; box-shadow:0 18px 44px rgba(43,29,18,.16); border:1px solid #ece5da; height:100%; min-height:360px; }
.hm-map iframe { width:100%; height:100%; min-height:360px; border:0; display:block; }

/* ---------- FAQ ---------- */
.hm-faq { background:#faf7f2; }
.hm-faq .accordion-item { border:1px solid #ece5da; border-radius:14px !important; overflow:hidden; margin-bottom:12px; background:#fff; }
.hm-faq .accordion-button { font-weight:700; color:#2b1d12; background:#fff; padding:18px 22px; box-shadow:none; }
.hm-faq .accordion-button:not(.collapsed) { background:#fff8ea; color:#6B4423; }
.hm-faq .accordion-body { color:#6a5a49; padding:6px 22px 20px; }

/* ---------- CTA final ---------- */
.hm-final { background:linear-gradient(135deg,#6B4423,#2b1d12); color:#fff; text-align:center; padding:84px 0; position:relative; overflow:hidden; }
.hm-final::before { content:''; position:absolute; inset:0; background-image:radial-gradient(rgba(244,168,37,.12) 1px,transparent 1px); background-size:26px 26px; }
.hm-final .container { position:relative; }
.hm-final h2 { font-size:2.3rem; font-weight:800; margin-bottom:12px; }
.hm-final p { color:#e8d9c6; font-size:1.1rem; margin-bottom:28px; }
.hm-final .hm-cta-row { justify-content:center; margin:0; }

/* Marca de validación (visible solo para administradores) */
.hm-admin-note { background:#fff3cd; color:#7a5b00; font-size:.78rem; padding:6px 12px; text-align:center; }

@media (max-width:991px) {
  .hm-section { padding:54px 0; } .hm-hero { padding:48px 0 56px; }
  .hm-hero h1 { font-size:2.2rem; } .hm-title { font-size:1.75rem; }
  .hm-trust-grid { grid-template-columns:repeat(2,1fr); } .hm-trust-item:nth-child(2) { border-right:none; } .hm-trust-item { border-bottom:1px solid #f0e9de; }
  .hm-cat-grid, .hm-steps-grid { grid-template-columns:1fr; } .hm-cat { min-height:260px; }
  .hm-quick { margin-top:34px; }
  .hm-band .container { flex-direction:column; text-align:center; }
  .hm-final h2 { font-size:1.7rem; }
}
@media (max-width:575px) {
  .hm-hero h1 { font-size:1.85rem; } .hm-hero p.hm-sub { font-size:1.02rem; }
  .hm-btn { width:100%; justify-content:center; padding:14px 18px; }
  .hm-trust-grid { grid-template-columns:1fr; } .hm-trust-item { border-right:none; padding:16px 14px; }
  .hm-quick { padding:22px 18px; }
}

/* ============================================================
   CORRECCIÓN: la regla global de h1–h6 (styles.css) fija un color
   propio y pisa el del contenedor. En superficies oscuras se fuerza.
   ============================================================ */
.hm-hero h1, .hm-cat h3, .hm-band h3, .hm-final h2, .hm-vest .hm-title, .hm-vest-box h4,
.svc-hero h1, .ls-hero h1, .ls-box.dark h5, .svc-contacto h5 { color: #fff; }
.hm-hero h1 em, .svc-hero h1 i, .ls-hero h1 i, .hm-band h3 i { color: #f4a825; }
.ls-box.dark h5, .svc-contacto h5 { color: #f4a825; }
.hm-quick h3, .hm-step h4, .hm-head .hm-title, .hm-featured .hm-title, .hm-title { color: #2b1d12; }
.hm-vest .hm-title, .hm-final h2 { color: #fff; }

/* Filas de Bootstrap con gutter grande: en celular el margen negativo superaba el padding del contenedor */
@media (max-width: 575.98px) {
  .row.g-5 { --bs-gutter-x: 1.5rem; --bs-gutter-y: 1.75rem; }
  .row.g-4 { --bs-gutter-x: 1.5rem; }
}

/* ============================================================
   AJUSTES VISUALES DE PORTADA (v25)
   Textos claros sobre fondos oscuros, tarjetas y banner más elegantes.
   Los colores llevan !important para que ninguna regla global de
   títulos ni caché de estilos los deje grises.
   ============================================================ */

/* ---- Hero ---- */
.hm-hero h1 { color: #ffffff !important; text-shadow: 0 2px 22px rgba(0,0,0,.35); }
.hm-hero h1 em { color: #f4a825 !important; }
.hm-hero p.hm-sub { color: #f1e7d8 !important; }

/* ---- Tarjetas de categoría ---- */
.hm-cat-grid { gap: 26px; }
.hm-cat, .hm-cat:hover, .hm-cat:focus, .hm-cat * { text-decoration: none !important; }
.hm-cat {
  min-height: 400px; border-radius: 24px; color: #fff !important; isolation: isolate;
  background: radial-gradient(520px 260px at 100% 0%, rgba(244,168,37,.16), transparent 62%), linear-gradient(165deg, #3b2716 0%, #24170c 55%, #170f07 100%);
  border: 1px solid rgba(244,168,37,.22);
  box-shadow: 0 16px 40px rgba(43,29,18,.22);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.hm-cat:hover { transform: translateY(-8px); border-color: rgba(244,168,37,.65); box-shadow: 0 28px 56px rgba(43,29,18,.34); }
.hm-cat::after { z-index: 0; background: linear-gradient(180deg, rgba(23,15,7,0) 25%, rgba(23,15,7,.55) 100%); }
.hm-cat-bg { z-index: 0; }
.hm-cat-mark { position: absolute; right: -26px; top: -18px; font-size: 190px; color: rgba(244,168,37,.08); transform: rotate(-10deg); pointer-events: none; z-index: 0; transition: transform .5s ease, color .35s ease; }
.hm-cat:hover .hm-cat-mark { transform: rotate(-4deg) scale(1.06); color: rgba(244,168,37,.14); }
.hm-cat-body { position: relative; z-index: 2; padding: 30px 28px 28px; display: flex; flex-direction: column; flex: 1; justify-content: flex-end; }
.hm-cat-top { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.hm-cat-icon { position: static !important; width: 52px; height: 52px; border-radius: 15px; background: linear-gradient(135deg, #f4a825, #e8940f); border: none; color: #2b1d12; display: inline-flex; align-items: center; justify-content: center; font-size: 1.35rem; box-shadow: 0 8px 20px rgba(244,168,37,.35); }
.hm-cat-kicker { font-size: .72rem; font-weight: 800; letter-spacing: 1.6px; text-transform: uppercase; color: #f8d488; }
.hm-cat h3 { color: #ffffff !important; font-size: 1.75rem; font-weight: 800; letter-spacing: -.3px; margin: 0 0 8px; text-shadow: 0 2px 14px rgba(0,0,0,.4); }
.hm-cat p { color: #f1e7d8 !important; font-size: 1rem; line-height: 1.55; margin: 0 0 16px; }
.hm-cat-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; }
.hm-cat-tags li { font-size: .8rem; font-weight: 600; color: #fbeccb; background: rgba(255,255,255,.07); border: 1px solid rgba(244,168,37,.35); padding: 5px 12px; border-radius: 50px; }
.hm-cat-go { align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px; border-radius: 12px; font-weight: 800; font-size: .95rem; color: #2b1d12 !important; background: linear-gradient(135deg, #f4a825, #e8940f); box-shadow: 0 8px 20px rgba(244,168,37,.3); transition: all .25s ease; }
.hm-cat:hover .hm-cat-go { box-shadow: 0 12px 26px rgba(244,168,37,.5); }
.hm-cat-go i { transition: transform .25s ease; } .hm-cat:hover .hm-cat-go i { transform: translateX(6px); }

/* ---- Banner Cotizador de Perfiles ---- */
.hm-band { background: linear-gradient(115deg, #1f150c 0%, #3a2616 55%, #4f3320 100%); padding: 0; position: relative; overflow: hidden; border-top: 3px solid #f4a825; border-bottom: 1px solid rgba(244,168,37,.25); }
.hm-band::before { content: '\f1ec'; font-family: 'Font Awesome 6 Free'; font-weight: 900; position: absolute; right: 22%; top: 50%; transform: translateY(-50%) rotate(-10deg); font-size: 230px; color: rgba(244,168,37,.06); pointer-events: none; }
.hm-band .container { display: block; position: relative; }
.hm-band-inner { display: flex; align-items: center; gap: 28px; padding: 44px 0; }
.hm-band-icon { flex: 0 0 78px; width: 78px; height: 78px; border-radius: 22px; background: linear-gradient(135deg, #f4a825, #e8940f); color: #2b1d12; font-size: 2rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 12px 28px rgba(244,168,37,.35); }
.hm-band-text { flex: 1; min-width: 0; }
.hm-band-kicker { display: block; font-size: .74rem; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; color: #f4a825; margin-bottom: 4px; }
.hm-band h3 { color: #ffffff !important; font-size: 1.9rem; font-weight: 800; letter-spacing: -.3px; margin: 0 0 6px; }
.hm-band p { color: #f1e7d8 !important; margin: 0 0 14px; font-size: 1.02rem; }
.hm-band-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.hm-band-chips li { font-size: .8rem; font-weight: 600; color: #fbeccb; border: 1px solid rgba(244,168,37,.4); background: rgba(255,255,255,.06); padding: 5px 13px; border-radius: 50px; }
.hm-band .hm-btn { flex-shrink: 0; }

/* ---- Caja "Pedidos para equipos" ---- */
.hm-vest-box { background: linear-gradient(160deg, rgba(244,168,37,.14), rgba(244,168,37,.05)); border: 1px solid rgba(244,168,37,.45); border-radius: 24px; padding: 46px 34px; text-align: center; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.hm-vest-badge { width: 92px; height: 92px; border-radius: 26px; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #f4a825, #e8940f); color: #2b1d12; font-size: 2.6rem; box-shadow: 0 14px 30px rgba(244,168,37,.4); }
.hm-vest-box i { font-size: inherit; margin: 0; color: inherit; }
.hm-vest-box h4 { color: #ffffff !important; font-size: 1.65rem; font-weight: 800; margin: 0 0 8px; }
.hm-vest-box p { color: #f1e7d8 !important; margin: 0; font-size: 1.03rem; }

/* Títulos de las demás secciones oscuras: siempre claros */
.hm-vest .hm-title, .hm-vest h2 { color: #ffffff !important; }
.hm-vest .hm-lead { color: #eadfce !important; }

@media (max-width: 991.98px) {
  .hm-cat { min-height: 340px; }
  .hm-cat h3 { font-size: 1.5rem; }
  .hm-band-inner { flex-direction: column; text-align: center; gap: 20px; padding: 38px 0; }
  .hm-band-chips { justify-content: center; }
  .hm-band::before { right: -30px; }
  .hm-band h3 { font-size: 1.6rem; }
}
@media (max-width: 575.98px) {
  .hm-cat { min-height: 320px; border-radius: 20px; }
  .hm-cat-body { padding: 24px 20px 22px; }
  .hm-cat-go { width: 100%; justify-content: center; }
  .hm-band .hm-btn { width: 100%; justify-content: center; }
  .hm-vest-box { padding: 34px 22px; }
}

.hm-chips-label { text-align: center; margin: 44px 0 20px; font-size: .74rem; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; color: #9a8873; }
