/* ==========================================================================
   Naturaqua Valencia — estilos propios (fuera de Elementor).
   Empezamos por el pie de página rediseñado. Todo va prefijado con .nq-
   para no colisionar con los estilos heredados del tema Houzez.
   ========================================================================== */

.nq-footer {
    --nq-teal: #186b87;
    --nq-teal-deep: #0b3a49;
    --nq-green: #61ce70;
    --nq-ink: #07252f;

    position: relative;
    margin-top: 64px;
    padding: 0 24px 28px;
    color: #e8f3f6;
    background:
        radial-gradient(1200px 380px at 12% -8%, rgba(97, 206, 112, 0.14), transparent 60%),
        radial-gradient(900px 420px at 88% 0%, rgba(86, 184, 214, 0.18), transparent 55%),
        linear-gradient(165deg, #134f63 0%, var(--nq-teal-deep) 60%, var(--nq-ink) 100%);
    font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    overflow: hidden;
}

/* Filo superior: línea de acento agua/verde */
.nq-footer::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--nq-teal) 0%, #4fb0cf 45%, var(--nq-green) 100%);
}

/* Burbujas decorativas muy sutiles */
.nq-footer::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -80px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.06), transparent 70%);
    pointer-events: none;
}

.nq-footer__inner {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 0 auto;
    padding-top: 56px;
}

.nq-footer__grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
    gap: 40px;
}

/* --- Marca ---------------------------------------------------------------- */
.nq-footer__brand-logo {
    display: inline-flex;
    padding: 14px 20px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 18px 40px -18px rgba(0, 0, 0, 0.55);
}
.nq-footer__brand-logo img {
    display: block;
    width: 190px;
    height: auto;
}
.nq-footer__tagline {
    margin: 20px 0 0;
    max-width: 34ch;
    font-size: 0.95rem;
    line-height: 1.6;
    color: rgba(232, 243, 246, 0.78);
}
.nq-footer__tagline strong {
    color: #fff;
    font-weight: 700;
}
.nq-footer__cta {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 22px;
    padding: 12px 22px;
    font-weight: 800;
    font-size: 0.92rem;
    color: #0e4a5c;
    text-decoration: none;
    background: #ffffff;
    border-radius: 8px;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
    box-shadow: 0 12px 26px -14px rgba(0, 0, 0, 0.55);
}
.nq-footer__cta:hover {
    transform: translateY(-2px);
    background: #eafaf3;
    color: #0e4a5c;
}
.nq-footer__cta svg { width: 16px; height: 16px; }

/* --- Columnas ------------------------------------------------------------- */
.nq-footer__col h3 {
    margin: 6px 0 18px;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #fff;
}
.nq-footer__col h3::after {
    content: "";
    display: block;
    width: 30px;
    height: 3px;
    margin-top: 9px;
    border-radius: 3px;
    background: var(--nq-green);
}
.nq-footer__col ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.nq-footer__col li { margin-bottom: 11px; }
.nq-footer__col a {
    display: inline-block;
    color: rgba(232, 243, 246, 0.74);
    text-decoration: none;
    font-size: 0.93rem;
    transition: color 0.16s ease, transform 0.16s ease;
}
.nq-footer__col a:hover {
    color: #fff;
    transform: translateX(4px);
}

/* --- Contacto ------------------------------------------------------------- */
.nq-footer__contact { list-style: none; margin: 0; padding: 0; }
.nq-footer__contact li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}
.nq-footer__ico {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.nq-footer__ico svg { width: 18px; height: 18px; color: var(--nq-green); }
.nq-footer__contact a,
.nq-footer__contact span {
    color: rgba(232, 243, 246, 0.82);
    text-decoration: none;
    font-size: 0.93rem;
    line-height: 1.45;
}
.nq-footer__contact a:hover { color: #fff; }
.nq-footer__contact small {
    display: block;
    color: rgba(232, 243, 246, 0.5);
    font-size: 0.78rem;
}

/* --- Barra inferior ------------------------------------------------------- */
.nq-footer__bottom {
    position: relative;
    z-index: 1;
    max-width: 1180px;
    margin: 44px auto 0;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    font-size: 0.85rem;
    color: rgba(232, 243, 246, 0.6);
}
.nq-footer__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.nq-footer__legal a {
    color: rgba(232, 243, 246, 0.7);
    text-decoration: none;
}
.nq-footer__legal a:hover { color: #fff; }

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 980px) {
    .nq-footer__grid { grid-template-columns: 1fr 1fr; gap: 34px; }
    .nq-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .nq-footer__grid { grid-template-columns: 1fr; }
    .nq-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================================
   Productos / Inicio agrupados por categoría (marco "nqp").
   Las fichas usan el HTML y CSS originales de Elementor; esto solo aporta
   el título, los chips de categoría y los encabezados de sección.
   ========================================================================== */
.nqp-title{max-width:1200px;margin:0 auto;padding:42px 24px 6px;text-align:center}
.nqp-chips{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid #e6eef1}
.nqp-chips__in{max-width:1200px;margin:0 auto;padding:13px 24px;display:flex;gap:10px;flex-wrap:wrap}
.nqp-chip{padding:8px 15px;border-radius:999px;background:#fff;border:1px solid #e6eef1;font-weight:600;font-size:.87rem;color:#102a33;text-decoration:none;font-family:"Plus Jakarta Sans",sans-serif}
.nqp-chip:hover{border-color:#186b87;color:#186b87}
.nqp-chip b{color:#8aa1a9;font-weight:600;margin-left:3px}
.nqp-wrap{max-width:1200px;margin:0 auto;padding:40px 24px}
.nqp-cat{margin-bottom:48px;scroll-margin-top:74px}
.nqp-cat__head{display:flex;align-items:baseline;gap:14px;margin-bottom:20px}
.nqp-cat__head h2{font-size:1.7rem;font-weight:800;margin:0;color:#102a33;font-family:"Plus Jakarta Sans",sans-serif}
.nqp-cat__head h2::before{content:"";display:inline-block;width:9px;height:24px;border-radius:4px;background:linear-gradient(#186b87,#2fb24c);margin-right:12px;vertical-align:-3px}
.nqp-cat__head span{color:#5e747c;font-weight:600;font-size:.9rem;font-family:"Plus Jakarta Sans",sans-serif}
.nqp-item{margin-bottom:14px}

/* Aviso de envío del formulario de contacto */
.nq-formflash{max-width:1100px;margin:18px auto 0;padding:14px 20px;border-radius:12px;font-weight:600;
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;text-align:center}
.nq-formflash--ok{background:#e4f6e8;color:#1c7a35;border:1px solid #b8e6c4}
.nq-formflash--err{background:#fbe6e6;color:#a82626;border:1px solid #f0bcbc}

/* ==========================================================================
   Cabecera propia (sticky, responsive, editable desde el panel).
   Reemplaza la cabecera de Houzez/Elementor. Prefijo .nqh-
   ========================================================================== */
.nqh{position:sticky;top:0;z-index:1000;background:#fff;box-shadow:0 2px 18px -8px rgba(12,63,80,.25);
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
.nqh__bar{max-width:1200px;margin:0 auto;padding:0 24px;height:92px;display:flex;align-items:center;gap:24px}
.nqh__logo{display:inline-flex;align-items:center;gap:12px;margin-right:auto;text-decoration:none}
.nqh__logo img{height:62px;width:auto;display:block}
.nqh__brand{display:flex;flex-direction:column;line-height:1}
.nqh__brand strong{font-size:1.5rem;font-weight:800;color:#186b87;letter-spacing:.01em}
.nqh__brand small{font-size:.7rem;font-weight:600;letter-spacing:.32em;color:#5e8794;margin-top:4px}

.nqh__nav{display:flex;align-items:center;gap:22px}
.nqh__menu{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.nqh__menu>li{position:relative}
.nqh__menu>li>a{display:flex;align-items:center;gap:5px;padding:10px 14px;border-radius:9px;
  color:#13323d;font-weight:600;font-size:.96rem;text-decoration:none;transition:color .15s,background .15s}
.nqh__menu>li>a:hover{color:#186b87;background:#f1f7f9}
.nqh__menu>li.is-active>a{color:#186b87}
.nqh__menu>li.is-active>a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:2px;background:#2fb24c}
.nqh__chev{transition:transform .2s;opacity:.7}
.nqh__menu>li.has-children:hover .nqh__chev{transform:rotate(180deg)}
.nqh__subtoggle{display:none}

/* Submenú (desktop: al pasar el ratón) */
.nqh__sub{position:absolute;top:calc(100% - 4px);left:0;min-width:210px;background:#fff;list-style:none;margin:0;
  padding:8px;border-radius:12px;box-shadow:0 18px 40px -16px rgba(12,63,80,.35);border:1px solid #eef3f5;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s}
.nqh__menu>li.has-children:hover .nqh__sub{opacity:1;visibility:visible;transform:translateY(0)}
.nqh__sub a{display:block;padding:9px 12px;border-radius:8px;color:#3a4f57;text-decoration:none;font-size:.92rem;font-weight:500}
.nqh__sub a:hover{background:#f1f7f9;color:#186b87}
.nqh__sub a.is-active{color:#186b87;background:#eef7f4}

.nqh__cta{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:8px;
  background:linear-gradient(135deg,#186b87,#0e4a5c);color:#fff;font-weight:700;font-size:.9rem;text-decoration:none;
  white-space:nowrap;transition:transform .15s,box-shadow .15s}
.nqh__cta:hover{transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(24,107,135,.7);color:#fff}

/* Hamburguesa (oculta en escritorio) */
.nqh__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;
  border:1px solid #e6eef1;border-radius:10px;background:#fff;cursor:pointer;padding:0}
.nqh__toggle span{display:block;width:20px;height:2px;margin:0 auto;background:#13323d;border-radius:2px;transition:.2s}
.nqh.is-open .nqh__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nqh.is-open .nqh__toggle span:nth-child(2){opacity:0}
.nqh.is-open .nqh__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --- Móvil --- */
@media(max-width:900px){
  .nqh__toggle{display:flex}
  .nqh__nav{position:fixed;top:92px;left:0;right:0;bottom:0;background:#fff;flex-direction:column;align-items:stretch;
    gap:0;padding:14px 18px 28px;overflow-y:auto;transform:translateX(100%);transition:transform .25s;
    box-shadow:0 20px 40px -10px rgba(0,0,0,.2)}
  .nqh.is-open .nqh__nav{transform:translateX(0)}
  .nqh__menu{flex-direction:column;align-items:stretch;gap:2px;width:100%}
  .nqh__menu>li>a{padding:14px 12px;font-size:1.05rem;justify-content:space-between}
  .nqh__menu>li.is-active>a::after{display:none}
  .nqh__menu>li>a{border-bottom:1px solid #f0f4f6;border-radius:0}
  .nqh__chev{display:none}
  .nqh__subtoggle{display:block;position:absolute;top:0;right:0;width:54px;height:52px;background:transparent;border:0;cursor:pointer}
  .nqh__subtoggle::after{content:"+";position:absolute;right:18px;top:13px;font-size:1.5rem;color:#186b87;line-height:1}
  .nqh__menu>li.has-children.open .nqh__subtoggle::after{content:"–"}
  .nqh__sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 6px 10px;
    max-height:0;overflow:hidden;transition:max-height .25s}
  .nqh__menu>li.has-children.open .nqh__sub{max-height:600px}
  .nqh__cta{margin-top:16px;justify-content:center}
}

/* Blindaje: las imágenes que vinieran con lazyload de Houzez deben verse
   siempre (ya no hay JS que las revele). */
img.houzez-lazyload,.houzez-lazyload img{opacity:1!important;visibility:visible!important}

/* Aviso de horario + captcha en la página de contacto */
.nq-horario{display:flex;align-items:center;gap:9px;margin:0 0 18px;padding:12px 16px;border-radius:12px;
  background:#eef7f4;border:1px solid #cfe6df;color:#1c5a4a;font-weight:600;font-size:.92rem;
  font-family:"Plus Jakarta Sans",system-ui,sans-serif}
.nq-horario svg{flex:0 0 auto;color:#2fb24c}

/* Bloque de Horario debajo de email/teléfono en contacto */
.nq-horario-box{margin-top:22px;font-family:"Plus Jakarta Sans",system-ui,sans-serif}
.nq-horario-box h3{margin:0 0 6px;font-size:1.15rem;font-weight:700;color:#13323d}
.nq-horario-box p{margin:0;color:#465c64;font-size:1rem;line-height:1.5}

/* Fix: el texto del botón del pie lo pisaba .nq-footer__col a (color claro).
   Subimos especificidad para que se lea (teal oscuro sobre blanco). */
.nq-footer__col a.nq-footer__cta{color:#0e4a5c}
.nq-footer__col a.nq-footer__cta:hover{color:#0e4a5c}
/* Logo de la cabecera: mostrarlo entero, sin recortes */
.nqh__logo img{object-fit:contain}
/* Texto del horario en contacto */
.nq-horario-text p{color:#465c64;font-size:1rem;line-height:1.5;margin:2px 0 0}

/* Encabezados de categoría en Inicio (estilo moderno como /productos/) */
.nqp-home-cat{position:relative;display:inline-block}
.nqp-home-cat::before{content:"";display:inline-block;width:9px;height:0.85em;border-radius:4px;
  background:linear-gradient(#186b87,#2fb24c);margin-right:14px;vertical-align:-1px}

/* Separación coherente del bloque Horario en contacto */
.nq-horario-wrap{margin-top:28px}
.nq-horario-wrap .nq-horario-text p{color:#465c64;font-size:1rem;line-height:1.5;margin:6px 0 0}

/* GDPR y captcha del formulario: tipografía/color de párrafo normal (no etiqueta) */
.gdpr-text-wrap, .gdpr-text-wrap span, .nq-form-note{
  color:#54595f !important; letter-spacing:normal !important; text-transform:none !important;
  font-weight:400 !important; font-size:.95rem !important; line-height:1.5;
}
.gdpr-text-wrap a{color:#186b87 !important; text-decoration:underline}
.nq-form-note strong{font-weight:700 !important; color:#54595f !important}

/* Validación en tiempo real del formulario */
.elementor-form .form-control.nq-valid{border-color:#2fb24c !important}
.elementor-form .form-control.nq-invalid{border-color:#d63b3b !important;background:#fff6f6}
.elementor-form input[type="checkbox"].nq-invalid{outline:2px solid #d63b3b;outline-offset:2px}

/* GDPR en una sola línea, debajo del teléfono */
.control.control--checkbox{display:flex;align-items:center;gap:9px;margin:0}
.gdpr-text-wrap{display:inline}

/* Menos margen entre la intro y "Email & Teléfono" */
.elementor-element-a2ee9c5{margin-top:-22px}

/* ===== Página de Productos: título + filtro lateral fijo ===== */
/* Ancho unificado de página (igual que las páginas Elementor: content-width 1320). */
.nq-page-title{max-width:1320px;margin:0 auto;padding:50px 16px 6px;text-align:left}
.nq-page-title h1{font-family:"Montserrat","Plus Jakarta Sans",system-ui,sans-serif;font-size:1rem;
  font-weight:600;color:#186b87;margin:0;letter-spacing:.28em;text-transform:uppercase}

/* Alinear el contenido del blog (bootstrap) al mismo ancho que el título. */
.blog-wrap > .container{max-width:1320px}

.nqp-layout{max-width:1320px;margin:0 auto;padding:18px 16px 40px;display:grid;
  grid-template-columns:230px 1fr;gap:36px}
.nqp-side__inner{position:sticky;top:108px;background:#fff;border:1px solid #e6eef1;border-radius:14px;padding:16px 14px}
.nqp-side__inner h3{margin:0 0 10px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#5e747c;font-family:"Plus Jakarta Sans",sans-serif;padding:0 8px}
.nqp-filter{list-style:none;margin:0;padding:0}
.nqp-filter li{margin:0}
.nqp-filter a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:9px;
  color:#33474e;text-decoration:none;font-weight:600;font-size:.92rem;font-family:"Plus Jakarta Sans",sans-serif;transition:.15s}
.nqp-filter a span{font-size:.78rem;color:#8aa1a9;background:#f1f7f9;border-radius:999px;padding:1px 8px}
.nqp-filter a:hover{background:#f1f7f9;color:#186b87}
.nqp-filter a.is-active{background:#186b87;color:#fff}
.nqp-filter a.is-active span{background:rgba(255,255,255,.25);color:#fff}
.nqp-main{min-width:0}
.nqp-main .nqp-cat{margin-bottom:40px;scroll-margin-top:120px}

@media(max-width:880px){
  .nqp-layout{grid-template-columns:1fr;gap:8px;padding-top:8px}
  .nqp-side__inner{position:sticky;top:74px;padding:10px;z-index:20}
  .nqp-filter{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .nqp-filter a{white-space:nowrap}
  .nqp-side__inner h3{display:none}
}

/* Título del blog dentro del contenedor bootstrap: alinear sin margen extra */
.nq-page-title--blog{max-width:none;margin:0;padding:34px 0 8px}
