/*
Theme Name: CleanMax Elementor
Theme URI: https://cleanmax.pe
Author: CleanMax
Description: Tema corporativo de CleanMax optimizado para Elementor Free. Al activarlo, crea y pre-arma las 5 páginas completas en Elementor — todo se edita directamente en el editor visual, sin paneles separados.
Version: 3.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cleanmax
*/

/* ── VARIABLES ── */
:root {
  --blue:  #2C5697;
  --navy:  #1d3869;
  --navy2: #162340;
  --yel:   #FFC700;
  --yel-dk:#e6ae00;
  --white: #ffffff;
  --gray:  #f5f5f5;
  --txt:   #111111;
  --txt2:  #555555;
  --muted: #888888;
  --border:#e2e2e2;
  --r:     8px;
  --rlg:   12px;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Open Sans',sans-serif; color:var(--txt); background:#fff; -webkit-font-smoothing:antialiased; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }

/* ── ELEMENTOR FULL-WIDTH ── */
.elementor-section.elementor-section-boxed > .elementor-container { max-width:1140px; }
body.elementor-page { overflow-x:hidden; }

/* ── HEADER ── */
.site-header { position:sticky; top:0; z-index:999; background:#fff; border-bottom:1px solid var(--border); height:66px; display:flex; align-items:center; }
.header-inner { max-width:1140px; margin:0 auto; padding:0 48px; width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.header-logo img { height:44px; width:auto; display:block; }
.site-nav { display:flex; align-items:center; gap:2px; flex:1; justify-content:center; }
.nav-a { padding:7px 13px; border-radius:6px; font-size:14px; font-weight:500; color:var(--txt2); transition:all .15s; white-space:nowrap; display:block; }
.nav-a:hover { color:var(--txt); background:var(--gray); }
.nav-a.active { color:var(--blue); font-weight:800; }
.nav-item { position:relative; display:flex; align-items:center; }
.nav-a-trigger { display:inline-flex; align-items:center; gap:5px; }
.nav-caret { font-size:9px; transition:transform .2s; opacity:.6; }
.nav-item:hover .nav-caret { transform:rotate(180deg); }
.nav-dropdown { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px); min-width:230px; background:#fff; border:1px solid var(--border); border-radius:10px; box-shadow:0 16px 44px rgba(13,30,58,.14); padding:7px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .16s ease, transform .16s ease; z-index:200; }
.nav-item:hover .nav-dropdown { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(8px); }
.nav-dropdown::before { content:''; position:absolute; bottom:100%; left:0; right:0; height:10px; }
.nav-dd-item { padding:9px 13px; border-radius:7px; display:block; transition:background .13s; font-size:13.5px; font-weight:600; color:var(--txt); }
.nav-dd-item:hover { background:var(--gray); }
.header-cta-btn { background:var(--yel); color:#111; border:none; border-radius:var(--r); padding:9px 18px; font-size:14px; font-weight:700; font-family:'Open Sans',sans-serif; cursor:pointer; white-space:nowrap; flex-shrink:0; display:inline-flex; align-items:center; gap:7px; transition:background .18s; }
.header-cta-btn:hover { background:var(--yel-dk); }
.header-burger { display:none; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:42px; height:42px; border:1px solid var(--border); border-radius:8px; background:#fff; cursor:pointer; flex-shrink:0; }
.header-burger span { display:block; width:20px; height:2px; background:var(--txt); border-radius:2px; transition:transform .25s, opacity .2s; }
.header-burger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.header-burger.open span:nth-child(2) { opacity:0; }
.header-burger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobile-menu { display:none; }

/* ── FOOTER ── */
.site-footer { background:var(--navy2); padding:72px 0 32px; }
.footer-inner { max-width:1140px; margin:0 auto; padding:0 48px; }
.footer-grid { display:grid; grid-template-columns:260px 1fr 1fr auto; gap:48px; margin-bottom:56px; }
.footer-logo-wrap { background:#fff; border-radius:6px; padding:7px 12px; display:inline-flex; align-items:center; margin-bottom:16px; }
.footer-logo-wrap img { height:52px; width:auto; }
.footer-tagline { font-size:13px; color:rgba(255,255,255,.4); line-height:1.7; margin-bottom:22px; max-width:220px; }
.footer-social { display:flex; gap:10px; }
.footer-social a { width:32px; height:32px; border-radius:50%; border:1px solid rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.4); font-size:13px; transition:all .2s; }
.footer-social a:hover { border-color:rgba(255,255,255,.4); color:rgba(255,255,255,.8); }
.footer-col h4 { font-size:11px; font-weight:800; color:rgba(255,255,255,.85); text-transform:uppercase; letter-spacing:2px; margin-bottom:18px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-col ul li a { font-size:14px; color:rgba(255,255,255,.45); transition:color .15s; }
.footer-col ul li a:hover { color:rgba(255,255,255,.85); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding-top:24px; font-size:12px; color:rgba(255,255,255,.25); text-align:center; }
.reclamaciones-box { display:flex; flex-direction:column; align-items:center; gap:8px; }
.reclamaciones-box img { height:64px; width:auto; }

/* ── WHATSAPP FLOAT ── */
.wa-float { position:fixed; right:22px; bottom:22px; z-index:9999; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:27px; box-shadow:0 8px 24px rgba(0,0,0,.22); transition:transform .18s ease; }
.wa-float:hover { transform:translateY(-3px) scale(1.04); }

/* ── ELEMENTOR HELPERS (usados en HTML widgets) ── */
.cm-badge { display:inline-flex;align-items:center;background:rgba(255,199,0,.12);border:1px solid rgba(255,199,0,.32);color:#FFC700;padding:5px 14px;border-radius:100px;font-size:10px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:20px;font-family:'Open Sans',sans-serif; }
.cm-badge-blue { background:rgba(44,86,151,.1);border:1px solid rgba(44,86,151,.25);color:#2C5697; }
.cm-eyebrow { display:block;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#2C5697;margin-bottom:12px;font-family:'Open Sans',sans-serif; }
.cm-pill { display:inline-block;border:1px solid rgba(255,199,0,.4);border-radius:100px;padding:5px 16px;font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#FFC700;margin-bottom:20px;font-family:'Open Sans',sans-serif; }
.cm-stat-card { background:#FFC700;border-radius:10px;padding:16px 22px;display:inline-block;box-shadow:0 12px 36px rgba(0,0,0,.25); }
.cm-stat-card .num { font-size:26px;font-weight:800;color:#111;line-height:1; }
.cm-stat-card .lbl { font-size:11px;color:rgba(0,0,0,.55);margin-top:5px;line-height:1.45; }
.cm-clients-wrap { overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.cm-clients-track { display:flex;gap:18px;width:max-content;animation:cm-scroll 42s linear infinite; }
.cm-clients-track:hover { animation-play-state:paused; }
@keyframes cm-scroll { from{transform:translateX(0)} to{transform:translateX(calc(-50% - 9px))} }
@media (prefers-reduced-motion:reduce){.cm-clients-track{animation:none}}
.cm-client-tile { flex:0 0 200px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e2e2e2;border-radius:12px;height:104px;padding:22px 26px; }
.cm-client-tile img { height:58px;width:auto;max-width:100%;object-fit:contain; }
.cm-steps-grid { display:grid;gap:20px; }
.cm-step { text-align:center; }
.cm-step-circle { width:44px;height:44px;border-radius:50%;border:1.5px solid #2C5697;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#2C5697;margin:0 auto 14px; }
.cm-price-card { border:1px solid #e2e2e2;border-radius:12px;padding:32px 26px;background:#fff;position:relative;display:flex;flex-direction:column; }
.cm-price-card.featured { background:#2C5697;border-color:#2C5697; }
.cm-price-badge { position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:#FFC700;color:#111;font-size:10px;font-weight:800;letter-spacing:1.5px;padding:4px 12px;border-radius:100px;white-space:nowrap;font-family:'Open Sans',sans-serif; }
.cm-timeline { display:flex;flex-direction:column;gap:36px; }
.cm-timeline-item { display:flex;align-items:flex-start;gap:22px; }
.cm-tl-dot { width:40px;height:40px;border-radius:50%;border:2px solid #2C5697;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#2C5697;flex-shrink:0;margin-top:4px;background:#fff; }
.cm-icon-card { background:#fff;border:1px solid #e2e2e2;border-radius:12px;padding:28px; }
.cm-icon-card-dark { background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:28px; }
.cm-icon-wrap { width:48px;height:48px;border-radius:12px;background:rgba(44,86,151,.07);color:#2C5697;display:flex;align-items:center;justify-content:center;margin-bottom:16px; }
.cm-icon-wrap-dark { background:rgba(255,199,0,.12);color:#FFC700; }

/* ── RESPONSIVE ── */
@media (max-width:980px){
  .site-nav,.header-cta-btn{display:none}
  .header-burger{display:flex}
  .mobile-menu{display:block;position:fixed;top:66px;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 14px 30px rgba(13,30,58,.12);max-height:0;overflow:hidden;transition:max-height .3s ease;z-index:998}
  .mobile-menu.open{max-height:calc(100vh - 66px);overflow-y:auto}
  .mobile-menu-inner{padding:12px 24px 24px;display:flex;flex-direction:column;gap:2px}
  .mm-link{padding:15px 10px;font-size:16px;font-weight:600;color:var(--txt);border-bottom:1px solid var(--gray);display:block}
  .mm-cta{margin-top:16px;background:var(--yel);color:#111;border-radius:var(--r);padding:15px;font-size:15px;font-weight:700;font-family:'Open Sans',sans-serif;width:100%;display:block;text-align:center}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .header-inner{padding:0 24px}
}
@media (max-width:600px){
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .footer-inner{padding:0 24px}
}
