/*
Theme Name: AMIS Propuesta B (Header/Footer for Elementor)
Theme URI: https://example.com/
Author: ChatGPT
Author URI: https://chat.openai.com/
Description: Tema minimal que provee solo el menú de navegación y el pie de página, pensado para maquetar el resto con Elementor. Páginas con Elementor van a 100% de ancho; las que no, tienen un contenedor centrado.
Version: 1.0.0
Text Domain: amis-propuesta-b
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
:root{
  --brand:#0E6FFF;           /* Azul primario sugerido */
  --brand-2:#183153;         /* Azul oscuro de apoyo */
  --accent:#00B38F;          /* Verde acento opcional */
  --text:#111827;
  --muted:#6B7280;
  --bg:#ffffff;
  --footer-bg:#0a0f1c;
  --footer-text:#cbd5e1;
  --maxw:1200px;
  --gutter:20px;
}

/* Reset moderno mínimo */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Ubuntu,"Helvetica Neue",Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
/* Contenido por defecto (no Elementor) */
.site-content{padding:40px 0}
.site-content .content-inner{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px}

/* HEADER */
.site-header{position:relative;top:0;z-index:50;background:#fff;border-bottom:1px solid #e5e7eb}
.topbar{background:#f3f6fb;color:#1f2937;font-size:14px}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px var(--gutter)}
.brand-note{font-weight:600}
.brand-note em{font-style:normal;color:var(--brand)}
/* Main nav */
.navbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px}
.brand .logo{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,var(--brand),#6aa8ff);display:inline-block}
.brand .title{font-weight:800;letter-spacing:0.2px;color:#0f172a}
/* Menu */
.primary-menu{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.primary-menu a{color:#111827;font-weight:600;padding:8px 10px;border-radius:10px}
.primary-menu a:hover{background:#f3f6fb;text-decoration:none}
/* Mobile toggle */
.nav-toggle{display:none;border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:10px 12px}
.nav-toggle span{display:block;width:22px;height:2px;background:#111;margin:4px 0;border-radius:2px}
/* Offcanvas */
.offcanvas{position:fixed;inset:0 0 0 auto;transform:translateX(100%);transition:transform .3s ease;background:#fff;max-width:320px;width:100%;z-index:60;border-left:1px solid #e5e7eb;display:flex;flex-direction:column}
.offcanvas.open{transform:translateX(0)}
.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e5e7eb}
.offcanvas-nav{display:grid;padding:12px 16px;gap:8px}
.offcanvas-nav a{padding:12px;border-radius:12px;font-weight:700;color:#0f172a;background:#f8fafc}
.offcanvas-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:55}
.offcanvas-backdrop.open{opacity:1;pointer-events:auto}

/* FOOTER */
.site-footer{background:var(--footer-bg);color:var(--footer-text);margin-top:40px}
.footer-top{border-top:2px solid rgba(255,255,255,.06)}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:36px 0}
.footer-brand{display:flex;align-items:flex-start;gap:14px}
.footer-logo{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,var(--brand),#6aa8ff)}
.footer-title{font-weight:900;letter-spacing:0.3px;font-size:18px;color:#e2e8f0}
.footer-desc{color:#94a3b8;font-size:14px;margin-top:6px}
.footer-menu{display:flex;flex-wrap:wrap;gap:12px}
.footer-menu a{color:#cbd5e1;font-weight:700;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04)}
.footer-menu a:hover{background:rgba(255,255,255,.09);text-decoration:none}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:14px 0;color:#94a3b8;font-size:13px}

/* Elementor: ancho completo */
.elementor-page .site-content,
.page.elementor-page .site-content{padding:0}
.elementor-page .content-inner{padding:0;border:none;border-radius:0}
/* El wrapper que imprime Elementor ya maneja su propio ancho; garantizamos 100% */
.elementor-section{width:100%}

/* Responsivo */
@media (max-width:1024px){
  .primary-menu{display:none}
  .nav-toggle{display:inline-block}
  .footer-grid{grid-template-columns:1fr;gap:18px}
}


/* ==== HARD RESET FOR WP MENUS ==== */
nav .menu,
nav .menu ul,
.footer-menu .menu,
.primary-menu .menu,
.menu--inline,
.menu--footer {
  list-style: none !important;
  margin: 0;
  padding: 0;
}

.menu--inline {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: flex-end;
}

.menu--inline > li { display: inline-block; }

.menu--inline a {
  display: block;
  padding: 8px 12px;
  border-radius: 10px;
  font-weight: 600;
  color: #111827;
}

.menu--inline a:hover { background:#f3f6fb; text-decoration: none; color: var(--brand); }

/* Footer layout */
.menu--footer {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.menu--footer a{
  display:block;
  padding:10px 12px;
  border-radius:10px;
  font-weight:700;
  color:#cbd5e1;
  background:rgba(255,255,255,.04);
}
.menu--footer a:hover{ background:rgba(255,255,255,.09); text-decoration:none; }




/* ===== MENÚ DESPLEGABLE RESPONSIVO ===== */
.navbar ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
}

.navbar ul li {
  position: relative;
}

.navbar ul li a {
  display: block;
  padding: 12px 16px;
  color: #333;
  text-decoration: none;
}

.navbar ul li ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background: #fff;
  border: 1px solid #ccc;
  min-width: 180px;
  z-index: 1000;
}

.navbar ul li:hover > ul {
  display: block;
}

.navbar ul li ul li a {
  padding: 10px 14px;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .navbar ul {
    flex-direction: column;
  }

  .navbar ul li ul {
    position: static;
    border: none;
  }

  .navbar ul li:hover > ul {
    display: block;
  }
}

/* ===============================
   MENÚ COMO SEPARADORES DE CARPETAS COLORIDOS
=============================== */
.navbar .menu > li {
  position: relative;
  margin: 0 6px;
  border-radius: 6px 6px 0 0;
  background: #e0e0e0;
  overflow: hidden;
  min-width: 120px;
}

.navbar .menu > li:nth-child(1) { background: #008000; } /* Verde AMIS */
.navbar .menu > li:nth-child(2) { background: #0000cc; } /* Azul */
.navbar .menu > li:nth-child(3) { background: #cc0000; } /* Rojo */
.navbar .menu > li:nth-child(4) { background: #ffcc00; } /* Amarillo */
.navbar .menu > li:nth-child(5) { background: #008080; }
.navbar .menu > li:nth-child(6) { background: #9932CC; }

.navbar .menu > li > a {
  color: white;
  font-weight: bold;
  padding: 12px 18px;
  display: block;
  text-align: center;
  text-transform: uppercase;
}

.navbar .menu > li > a:hover {
  background-color: rgba(255,255,255,0.2);
}

/* Submenú desplegable */
.navbar .menu li ul.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  display: none;
  z-index: 100;
  border: 1px solid #ccc;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  min-width: 200px;
}

.navbar .menu li:hover > ul.sub-menu {
  display: block;
}

.navbar .menu li ul.sub-menu li a {
  padding: 10px 15px;
  font-size: 14px;
  color: #333;
  display: block;
}

.navbar .menu li ul.sub-menu li a:hover {
  background: #f0f0f0;
}

/* ===============================
   MENÚ COMO SEPARADORES DE CARPETAS COLORIDOS (PC)
=============================== */
@media (min-width: 900px) {
  .navbar .menu {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: center;
  }

  .navbar .menu > li {
    position: relative;
    border-radius: 8px 8px 0 0;
    overflow: hidden;
    min-width: 140px;
  }

  .navbar .menu > li:nth-child(1) { background: #008000; } /* Verde */
  .navbar .menu > li:nth-child(2) { background: #0000cc; } /* Azul */
  .navbar .menu > li:nth-child(3) { background: #cc0000; } /* Rojo */
  .navbar .menu > li:nth-child(4) { background: #ffcc00; } /* Amarillo */
  .navbar .menu > li:nth-child(5) { background: #008080; }
  .navbar .menu > li:nth-child(6) { background: #9932CC; }

  .navbar .menu > li > a {
    color: white;
    font-weight: bold;
    padding: 14px 20px;
    display: block;
    text-align: center;
    text-transform: uppercase;
  }

  .navbar .menu > li > a:hover {
    background-color: rgba(255,255,255,0.2);
  }

  .navbar .menu li ul.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    display: none;
    z-index: 100;
    border: 1px solid #ccc;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    min-width: 200px;
  }

  .navbar .menu li:hover > ul.sub-menu {
    display: block;
  }

  .navbar .menu li ul.sub-menu li a {
    padding: 10px 15px;
    font-size: 14px;
    color: #333;
    display: block;
  }

  .navbar .menu li ul.sub-menu li a:hover {
    background: #f0f0f0;
  }
}

/* ===============================
   MÓVIL: SUBMENÚ TIPO ACORDEÓN
=============================== */
@media (max-width: 899px) {
  .offcanvas .menu {
    flex-direction: column;
    gap: 0;
  }

  .offcanvas .menu li {
    width: 100%;
  }

  .offcanvas .menu a {
    padding: 12px 15px;
    display: block;
    border-bottom: 1px solid #e5e5e5;
  }

  .offcanvas .sub-menu {
    position: relative;
    top: 0;
    left: 0;
    background: #f9f9f9;
    border-left: 3px solid #dcdcdc;
    display: none;
    padding: 5px 0;
  }

  .offcanvas .sub-menu a {
    padding: 10px 25px;
    font-size: 14px;
  }
}


/* =========================
OFFCANVAS MOBILE MENU
========================= */

.offcanvas{
    position:fixed;
    top:0;
    right:-320px;
    width:320px;
    height:100%;
    background:#fff;
    z-index:99999;
    transition:0.3s ease;
    overflow-y:auto;
}

.offcanvas.active{
    right:0;
}

.offcanvas-backdrop{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.5);
    opacity:0;
    visibility:hidden;
    transition:0.3s ease;
    z-index:99998;
}

.offcanvas-backdrop.active{
    opacity:1;
    visibility:visible;
}

body.menu-open{
    overflow:hidden;
}

.offcanvas-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:20px;
}

.offcanvas .menu{
    list-style:none;
    margin:0;
    padding:0;
}

.offcanvas .menu li{
    border-bottom:1px solid #eee;
}

.offcanvas .menu a{
    display:block;
    padding:14px 20px;
    text-decoration:none;
    color:#111;
}

.nav-toggle{
    cursor:pointer;
    background:none;
    border:none;
}

/* =========================
OFFCANVAS MENU FIX
========================= */

.offcanvas{
    position:fixed !important;
    top:0 !important;
    right:-320px !important;
    width:320px !important;
    height:100vh !important;
    background:#fff !important;
    z-index:999999 !important;
    transition:right .3s ease !important;
    overflow-y:auto !important;
    box-shadow:-5px 0 20px rgba(0,0,0,.15);
}

.offcanvas.active{
    right:0 !important;
}

.offcanvas-backdrop{
    position:fixed !important;
    inset:0 !important;
    background:rgba(0,0,0,.45) !important;
    z-index:999998 !important;
    opacity:0;
    visibility:hidden;
    transition:.3s ease;
}

.offcanvas-backdrop.active{
    opacity:1;
    visibility:visible;
}

.offcanvas-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:20px;
    border-bottom:1px solid #eee;
}

.offcanvas .menu{
    margin:0;
    padding:0;
    list-style:none;
}

.offcanvas .menu li{
    border-bottom:1px solid #f1f1f1;
}

.offcanvas .menu a{
    display:block;
    padding:16px 20px;
    text-decoration:none;
    color:#111;
    font-size:16px;
}

.nav-toggle.close{
    font-size:28px;
    background:none;
    border:none;
    cursor:pointer;
}

body.menu-open{
    overflow:hidden;
}