/* ====================================================================
   NME · Nutrición Médica Estética — Hoja de estilos principal
   Las variables se inyectan dinámicamente desde el Personalizador (wp_head).
   ==================================================================== */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--nme-font-b);color:var(--nme-text);background:var(--nme-bg);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--nme-primary);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--nme-accent)}
h1,h2,h3,h4,h5{font-family:var(--nme-font-h);color:var(--nme-text);line-height:1.2;letter-spacing:-.01em;margin:0 0 .5em;font-weight:600}
h1{font-size:clamp(2.2rem,5vw,3.4rem)}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem)}
h3{font-size:1.35rem}
h4{font-size:1.15rem}
p{margin:0 0 1rem}
small{color:var(--nme-muted)}
hr{border:0;border-top:1px solid var(--nme-border);margin:2rem 0}

.container{width:100%;max-width:1240px;margin:0 auto;padding:0 24px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;top:-40px;left:0;background:var(--nme-primary);color:#fff;padding:8px 16px;z-index:9999}
.skip-link:focus{top:0}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:999px;font-weight:600;font-size:.95rem;line-height:1;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;text-decoration:none}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--nme-primary);color:#fff}
.btn-primary:hover{background:#16304F;color:#fff}
.btn-ghost{background:transparent;color:var(--nme-primary);border-color:var(--nme-border)}
.btn-ghost:hover{border-color:var(--nme-primary);color:var(--nme-primary)}
.btn-accent{background:var(--nme-accent);color:#fff}
.btn-accent:hover{background:#4a8676;color:#fff}

/* ===== Topbar & Header ===== */
.nme-topbar{background:var(--nme-primary);color:#fff;font-size:.85rem}
.nme-topbar p{margin:0;padding:.55rem 0;text-align:center;letter-spacing:.01em}
.site-header{position:fixed;top:0;left:0;right:0;background:var(--nme-bg);z-index:50;border-bottom:1px solid var(--nme-border);box-shadow:0 1px 0 rgba(15,23,42,0.04)}
body{padding-top:var(--nme-header-h,76px)}
.nme-topbar+#masthead.site-header,
.nme-topbar~#masthead.site-header{top:var(--nme-topbar-h,40px)}
.nme-topbar{position:fixed;top:0;left:0;right:0;z-index:51;background:var(--nme-primary);color:#fff;font-size:.82rem;padding:.5rem 0;text-align:center}
.nme-topbar p{margin:0}
body:has(.nme-topbar){padding-top:calc(var(--nme-header-h,76px) + var(--nme-topbar-h,40px))}
.site-header__inner{display:flex;align-items:center;gap:1.5rem;padding:1rem 0}
.site-branding img,.custom-logo{max-height:54px;width:auto}
.site-title{font-family:var(--nme-font-h);font-weight:600;font-size:1.35rem;color:var(--nme-primary)}
.primary-nav{flex:1}
.primary-nav .menu{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem;align-items:center}
.primary-nav .menu a{color:var(--nme-text);font-weight:500;font-size:.95rem;padding:14px 8px;min-height:44px;display:inline-flex;align-items:center;position:relative}
.primary-nav .menu a::after{content:"";position:absolute;left:8px;right:8px;bottom:6px;width:0;height:2px;background:var(--nme-accent);transition:width .25s ease}
.primary-nav .menu a:hover::after,.primary-nav .menu .current-menu-item>a::after{width:calc(100% - 16px)}
.header-actions{display:flex;align-items:center;gap:.75rem}
.header-actions button,.header-actions a{background:transparent;border:0;color:var(--nme-text);width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background-color .2s ease}
.header-actions button:hover,.header-actions a:hover{background:var(--nme-bg-soft);color:var(--nme-primary)}
.header-cart .cart-count{position:absolute;top:2px;right:2px;background:var(--nme-accent);color:#fff;font-size:11px;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}
.mobile-menu-toggle{display:none;flex-direction:column;gap:4px}
.mobile-menu-toggle span{width:20px;height:2px;background:var(--nme-text);display:block}
.header-search-panel{border-top:1px solid var(--nme-border);padding:1rem 0;background:var(--nme-bg-soft)}

/* ===== Breadcrumbs ===== */
.nme-breadcrumbs ol{list-style:none;display:flex;gap:.5rem;flex-wrap:wrap;padding:1.25rem 0;margin:0;color:var(--nme-muted);font-size:.85rem}
.nme-breadcrumbs li+li::before{content:"/";margin-right:.5rem;color:var(--nme-border)}
.nme-breadcrumbs a{color:var(--nme-muted)}
.nme-breadcrumbs a:hover{color:var(--nme-primary)}

/* ===== Hero (home) ===== */
.hero{padding:4rem 0 3rem;background:linear-gradient(180deg,var(--nme-bg) 0%,var(--nme-bg-soft) 100%)}
.hero__inner{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center}
.hero__eyebrow{font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:var(--nme-accent);font-weight:600;margin-bottom:1rem}
.hero__title{margin-bottom:1.5rem}
.hero__lede{font-size:1.15rem;color:var(--nme-muted);max-width:54ch;margin-bottom:2rem}
.hero__cta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
.hero__trust{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:1.25rem;color:var(--nme-muted);font-size:.9rem}
.hero__media{position:relative;aspect-ratio:1/1;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--nme-accent) 28%,transparent),transparent 60%),radial-gradient(circle at 70% 70%,color-mix(in srgb,var(--nme-primary) 22%,transparent),transparent 60%),var(--nme-bg-soft);border-radius:50%;max-width:480px;margin-left:auto}
.hero__shape{position:absolute;inset:15%;border:1px dashed color-mix(in srgb,var(--nme-primary) 30%,transparent);border-radius:50%;animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== Section heads ===== */
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}
.section-head h2{margin:0}
.section-head__link{color:var(--nme-primary);font-weight:600;font-size:.95rem}

/* ===== Cards ===== */
.posts-grid,.pa-archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.75rem}
.posts-grid--3{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.post-card,.pa-card{background:var(--nme-bg);border:1px solid var(--nme-border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;position:relative}
.post-card:hover,.pa-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(15,23,42,.18);border-color:color-mix(in srgb,var(--nme-primary) 25%,var(--nme-border))}
.post-card__media,.pa-card__media{display:block;aspect-ratio:16/10;background:var(--nme-bg-soft);overflow:hidden}
.post-card__media img,.pa-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post-card:hover .post-card__media img,.pa-card:hover .pa-card__media img{transform:scale(1.04)}
.pa-card__placeholder{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--nme-bg-soft),color-mix(in srgb,var(--nme-accent) 18%,var(--nme-bg-soft)))}
.post-card__body,.pa-card__body{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.post-card__meta,.pa-card__meta{font-size:.8rem;color:var(--nme-muted);margin:0}
.post-card__title,.pa-card__title{margin:0;font-size:1.2rem;line-height:1.3}
.post-card__title a,.pa-card__title a{color:var(--nme-text)}
.post-card__title a:hover,.pa-card__title a:hover{color:var(--nme-primary)}
.post-card__excerpt,.pa-card__excerpt{color:var(--nme-muted);font-size:.95rem;margin:0;flex:1}
.post-card__cta,.pa-card__cta{align-self:start;font-weight:600;color:var(--nme-primary)}

/* ===== Principio activo single ===== */
.pa-single{padding-bottom:4rem}
.pa-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:2rem 0 3rem}
.pa-hero__eyebrow{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--nme-accent);font-weight:600;margin-bottom:1rem}
.pa-hero__title{margin-bottom:.5rem}
.pa-hero__cientifico{color:var(--nme-muted);font-size:1.1rem;margin-bottom:1rem}
.pa-hero__lede{font-size:1.1rem;color:var(--nme-muted);margin-bottom:1rem}
.pa-hero__sino{font-size:.95rem;color:var(--nme-muted)}
.pa-hero__cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.pa-hero__media{border-radius:24px;overflow:hidden;background:var(--nme-bg-soft);aspect-ratio:4/5;box-shadow:0 30px 60px -30px rgba(15,23,42,.25)}
.pa-hero__media img{width:100%;height:100%;object-fit:cover}
.pa-toc{position:sticky;top:80px;background:var(--nme-bg-soft);border:1px solid var(--nme-border);border-radius:14px;padding:1rem 1.25rem;margin:2rem 0;z-index:5}
.pa-toc ul{list-style:none;margin:0;padding:0;display:flex;gap:.5rem 1.25rem;flex-wrap:wrap}
.pa-toc a{font-size:.9rem;color:var(--nme-muted);font-weight:500}
.pa-toc a:hover{color:var(--nme-primary)}
.pa-body{max-width:780px;margin:0 auto}
.pa-body section{margin:3rem 0;scroll-margin-top:120px}
.pa-body h2{font-size:1.7rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--nme-border)}
.pa-benefits{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.pa-benefits li{padding-left:1.75rem;position:relative}
.pa-benefits li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;border-radius:50%;background:var(--nme-accent)}
.pa-warning{background:color-mix(in srgb,var(--nme-warning) 6%,var(--nme-bg));border-left:4px solid var(--nme-warning);padding:1.25rem 1.5rem;border-radius:0 12px 12px 0}
.pa-warning h2{border-bottom:0;margin-top:0}
.pa-faq details{border:1px solid var(--nme-border);border-radius:12px;padding:1rem 1.25rem;margin-bottom:.75rem;background:var(--nme-bg)}
.pa-faq summary{font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;color:var(--nme-text)}
.pa-faq summary::after{content:"+";font-size:1.4rem;color:var(--nme-accent);transition:transform .2s ease}
.pa-faq details[open] summary::after{content:"−"}
.pa-faq details>div{padding-top:.75rem;color:var(--nme-muted)}
.pa-related-products{margin-top:4rem}
.pa-related-products__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem}
.pa-product-card{border:1px solid var(--nme-border);border-radius:14px;padding:1rem;background:var(--nme-bg);display:flex;flex-direction:column;gap:.5rem;color:var(--nme-text);transition:border-color .2s,transform .25s}
.pa-product-card:hover{transform:translateY(-3px);border-color:var(--nme-primary)}
.pa-product-card img{aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--nme-bg-soft)}
.pa-product-card h3{font-size:1rem;margin:.25rem 0}
.pa-product-card .price{font-weight:600;color:var(--nme-primary);margin:0}

/* ===== Single post / page ===== */
.single-post,.single-page{max-width:760px;margin:0 auto;padding:2rem 0 4rem}
.single-post__header,.single-page__header{margin-bottom:1.5rem}
.single-post__meta{color:var(--nme-muted);font-size:.85rem;margin-bottom:.75rem}
.single-post__lede{font-size:1.2rem;color:var(--nme-muted)}
.single-post__hero,.single-page__hero{margin:2rem 0;border-radius:18px;overflow:hidden}
.single-post__hero img,.single-page__hero img{width:100%;height:auto;object-fit:cover}
.prose{font-size:1.05rem;line-height:1.75;color:var(--nme-text)}
.prose h2{margin-top:2.5rem}
.prose h3{margin-top:1.75rem}
.prose blockquote{border-left:4px solid var(--nme-accent);padding:.5rem 0 .5rem 1.5rem;color:var(--nme-muted);font-style:italic;margin:2rem 0}
.prose ul,.prose ol{padding-left:1.25rem}
.prose img{border-radius:12px;margin:2rem 0}
.post-tags{margin-top:2rem;font-size:.9rem;color:var(--nme-muted)}

/* ===== Archive hero ===== */
.archive-hero{padding:2.5rem 0 2rem;max-width:780px}
.archive-hero__eyebrow{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--nme-accent);font-weight:600;margin-bottom:1rem}
.archive-hero__lede{font-size:1.1rem;color:var(--nme-muted)}

/* ===== Footer ===== */
.site-footer{margin-top:5rem;background:var(--nme-bg-soft);border-top:1px solid var(--nme-border);padding:4rem 0 1.5rem;font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:2rem;margin-bottom:2.5rem}
.footer-brand .site-title{font-size:1.4rem;margin-bottom:.5rem;display:block}
.footer-about{color:var(--nme-muted);max-width:38ch}
.footer-col .widget-title,.footer-col h4{font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;color:var(--nme-text);margin:0 0 1rem}
.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}
.footer-col a{color:var(--nme-muted)}
.footer-col a:hover{color:var(--nme-primary)}
.footer-disclaimer{font-size:.8rem;color:var(--nme-muted);padding:1rem 1.25rem;background:var(--nme-bg);border:1px dashed var(--nme-border);border-radius:10px;margin-bottom:1.5rem}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:1.5rem;border-top:1px solid var(--nme-border);color:var(--nme-muted);font-size:.85rem}
.legal-menu{list-style:none;padding:0;margin:0;display:flex;gap:1.25rem}
.legal-menu a{color:var(--nme-muted)}

/* ===== Newsletter ===== */
.home-newsletter{padding:4rem 0}
.newsletter-card{background:var(--nme-primary);color:#fff;border-radius:24px;padding:3rem;display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;position:relative;overflow:hidden}
.newsletter-card::before{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:color-mix(in srgb,var(--nme-accent) 30%,transparent)}
.newsletter-card>*{position:relative;z-index:1}
.newsletter-card h2{color:#fff}
.newsletter-card p{color:rgba(255,255,255,.85);margin:0}
.newsletter-form{display:flex;gap:.5rem;flex-wrap:wrap}
.newsletter-form input{flex:1;min-width:220px;padding:.85rem 1.1rem;border-radius:999px;border:0;background:rgba(255,255,255,.95);color:var(--nme-text);font-size:.95rem}

/* ===== WooCommerce overrides ===== */
.nme-wc{padding:2rem 0 4rem}
.woocommerce ul.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important;gap:1.75rem;margin:0;padding:0;list-style:none}
.woocommerce ul.products li.product{width:100%!important;margin:0!important;padding:0!important;float:none!important;background:var(--nme-bg);border:1px solid var(--nme-border);border-radius:16px;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.woocommerce ul.products li.product:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(15,23,42,.18);border-color:color-mix(in srgb,var(--nme-primary) 25%,var(--nme-border))}
.woocommerce ul.products li.product>a{padding:0;display:block;color:var(--nme-text)}
.woocommerce ul.products li.product img{margin:0!important;aspect-ratio:1;object-fit:cover;background:var(--nme-bg-soft)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{padding:1rem 1.25rem .25rem!important;font-size:1.05rem!important;font-family:var(--nme-font-h)!important;font-weight:600!important}
.woocommerce ul.products li.product .price{padding:0 1.25rem;color:var(--nme-primary)!important;font-weight:600;font-size:1.1rem}
.woocommerce ul.products li.product .button{margin:1rem 1.25rem 1.25rem;width:calc(100% - 2.5rem);background:var(--nme-primary)!important;color:#fff!important;border-radius:999px!important;padding:.75rem 1rem!important;text-align:center;border:0;font-weight:600}
.woocommerce ul.products li.product .button:hover{background:var(--nme-accent)!important}
.woocommerce span.onsale{background:var(--nme-accent)!important;color:#fff!important;border-radius:999px!important;padding:.25rem .75rem!important;min-width:auto!important;line-height:1.4!important;font-size:.8rem!important;top:12px!important;left:12px!important;right:auto!important}
.woocommerce div.product div.summary{padding:1rem 0}
.woocommerce div.product .product_title{font-family:var(--nme-font-h)}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--nme-primary);font-weight:600}
.woocommerce div.product .woocommerce-product-rating{margin-bottom:1rem}
.woocommerce .quantity .qty{border-radius:999px;border:1px solid var(--nme-border);padding:.6rem .9rem}
.woocommerce button.button,.woocommerce a.button,.woocommerce input.button,.woocommerce #respond input#submit{background:var(--nme-primary)!important;color:#fff!important;border-radius:999px!important;padding:.85rem 1.5rem!important;font-weight:600!important;border:0!important}
.woocommerce button.button:hover,.woocommerce a.button:hover{background:var(--nme-accent)!important;color:#fff!important}
.woocommerce-tabs .tabs{border-bottom:1px solid var(--nme-border)!important;padding:0!important;display:flex;gap:.5rem;flex-wrap:wrap}
.woocommerce-tabs .tabs li{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important}
.woocommerce-tabs .tabs li a{padding:1rem 1.25rem!important;color:var(--nme-muted)!important;font-weight:600;position:relative}
.woocommerce-tabs .tabs li.active a{color:var(--nme-primary)!important}
.woocommerce-tabs .tabs li.active a::after{content:"";position:absolute;bottom:-1px;left:1.25rem;right:1.25rem;height:2px;background:var(--nme-accent)}
.nme-ficha-list{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.nme-ficha-list li{padding:.6rem .85rem;background:var(--nme-bg-soft);border-radius:10px;font-size:.95rem}
.nme-pa-links{padding-left:1rem}
.nme-pa-links a{color:var(--nme-primary);font-weight:500}

/* ===== Search form ===== */
.search-form{display:flex;gap:.5rem}
.search-field{flex:1;padding:.85rem 1.25rem;border-radius:999px;border:1px solid var(--nme-border);background:var(--nme-bg);font-size:.95rem;color:var(--nme-text)}
.search-submit{padding:.85rem 1.5rem;border-radius:999px;border:0;background:var(--nme-primary);color:#fff;font-weight:600;cursor:pointer}

/* ===== 404 ===== */
.error-404{padding:5rem 0;text-align:center;max-width:560px;margin:0 auto}
.error-404__eyebrow{font-size:5rem;font-family:var(--nme-font-h);color:var(--nme-accent);font-weight:600;line-height:1;margin-bottom:1rem}
.error-404__actions{display:flex;gap:1rem;justify-content:center;margin:2rem 0;flex-wrap:wrap}

/* ===== Pagination ===== */
.pagination,.woocommerce-pagination{margin:3rem 0;display:flex;justify-content:center}
.page-numbers{list-style:none;display:flex;gap:.4rem;padding:0;margin:0;flex-wrap:wrap}
.page-numbers li a,.page-numbers li span,.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .75rem;border-radius:999px;border:1px solid var(--nme-border);color:var(--nme-text);font-weight:500}
.page-numbers li .current,.page-numbers .current,.page-numbers li span.current,.page-numbers > .current,span.page-numbers.current,a.page-numbers.current,.pagination .current,.woocommerce-pagination .current,.nav-links .current,.nav-links span.current,.nav-links span[aria-current="page"]{background:var(--nme-primary)!important;color:#fff!important;border-color:var(--nme-primary)!important;font-weight:700!important;box-shadow:0 4px 12px -4px var(--nme-primary)!important}
.page-numbers li a:hover,.page-numbers a.page-numbers:hover{background:#F1F5F9;color:var(--nme-primary);border-color:var(--nme-primary)}

/* ===== Responsive ===== */
@media (max-width:960px){
        .hero__inner,.pa-hero,.newsletter-card{grid-template-columns:1fr;gap:2rem}
        .hero__media,.pa-hero__media{max-width:380px;margin:0 auto}
        .footer-grid{grid-template-columns:1fr 1fr}
        .content-with-sidebar{display:block}
        .sidebar-area{margin-top:3rem}
}
@media (max-width:720px){
        .footer-grid{grid-template-columns:1fr;gap:1.5rem}
        .footer-bottom{flex-direction:column;align-items:flex-start}
        .newsletter-card{padding:2rem}
}

/* ============================================================
   NDL-LIKE HOME STRUCTURE (NME custom · v1.1)
   ============================================================ */

/* Promo bar marquee */
.nme-topbar { overflow: hidden; }
.nme-topbar p { padding: 0.55rem 0; }

/* Hero slider */
.hero-slider { padding: 24px 0 48px; }
.hero-slider-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.hero-banner { position: relative; aspect-ratio: 7/4; border-radius: 22px; overflow: hidden; background: #EFE7D8; display: flex; align-items: center; padding: 56px 60px; color: var(--nme-text); transition: transform 0.35s; }
.hero-banner:hover { transform: translateY(-4px); }
.hero-banner.is-dark { background: var(--nme-primary); color: #fff; }
.hero-banner.is-mint { background: #E8F1ED; }
.hero-banner.is-blush { background: #F4E6E0; }
.hero-banner-body { position: relative; max-width: 56%; z-index: 1; }
.hero-banner-eyebrow { font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; margin-bottom: 14px; color: var(--nme-accent); }
.hero-banner-title { font-family: var(--nme-font-h); font-size: clamp(1.7rem, 2.8vw, 2.7rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 12px; font-weight: 600; }
.hero-banner-sub { font-size: 0.95rem; opacity: 0.85; margin: 0 0 24px; max-width: 36ch; }
.hero-banner-cta { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; background: #fff; color: var(--nme-primary); border-radius: 999px; font-weight: 600; font-size: 0.86rem; }
.hero-banner.is-dark .hero-banner-cta { background: var(--nme-accent); color: #fff; }
.hero-banner-cta:hover { background: var(--nme-primary); color: #fff; }
.hero-banner.is-dark .hero-banner-cta:hover { background: #fff; color: var(--nme-primary); }

/* Brand story */
.brand-story { padding: 80px 0; }
.brand-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.brand-story-media { aspect-ratio: 4/5; border-radius: 24px; overflow: hidden; background: #F1EBE0; }
.brand-story-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, #F1EBE0 0%, #E8F1ED 100%); }
.brand-story-text h2 { font-family: var(--nme-font-h); font-size: clamp(2rem, 3.6vw, 3.2rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 24px; font-weight: 600; }
.brand-story-text h2 em { font-style: italic; color: var(--nme-accent); font-weight: 500; }
.brand-story-text p { color: var(--nme-muted); font-size: 1.05rem; margin: 0 0 16px; }
.brand-story-text .btn { margin-top: 16px; }

/* Big statement */
.big-statement { padding: 70px 0; background: var(--nme-bg-soft); text-align: center; }
.big-statement h2 { font-family: var(--nme-font-h); font-size: clamp(2.4rem, 4.6vw, 4rem); line-height: 1.02; letter-spacing: -0.025em; margin: 0 auto 24px; font-weight: 600; max-width: 18ch; }
.big-statement h2 em { font-style: italic; color: var(--nme-accent); font-weight: 500; }
.big-statement p { color: var(--nme-muted); font-size: 1.1rem; max-width: 58ch; margin: 0 auto; }

/* Categories grid */
.cat-section { padding: 70px 0; }
.cat-head { text-align: center; margin-bottom: 48px; }
.cat-head h2 { font-family: var(--nme-font-h); font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin: 0; line-height: 1.1; }
.cat-head p { color: var(--nme-muted); margin: 12px auto 0; max-width: 50ch; }
.cat-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.cat-card { display: block; text-align: center; cursor: pointer; transition: transform 0.25s; color: inherit; text-decoration: none; }
.cat-card:hover { transform: translateY(-4px); }
.cat-card-img { aspect-ratio: 1; border-radius: 22px; overflow: hidden; margin-bottom: 14px; background: var(--nme-bg-soft); display: grid; place-items: center; position: relative; }
.cat-card-img img { width: 100%; height: 100%; object-fit: cover; }
.cat-card-emoji { font-family: var(--nme-font-h); font-weight: 700; font-size: 2.6rem; color: var(--nme-primary); }
.cat-card-name { font-size: 0.94rem; font-weight: 600; color: var(--nme-text); }

/* Recommender */
.recommender { padding: 0 0 80px; }
.recommender-card { border-radius: 28px; overflow: hidden; background: var(--nme-primary); color: #fff; display: grid; grid-template-columns: 1.2fr 1fr; min-height: 320px; }
.recommender-card-text { padding: 60px; }
.recommender-card-text .eyebrow { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 12px; }
.recommender-card-text h2 { font-family: var(--nme-font-h); font-size: clamp(1.8rem, 3.2vw, 2.6rem); line-height: 1.05; margin: 0 0 14px; color: #fff; }
.recommender-card-text p { color: rgba(255,255,255,0.85); margin: 0 0 28px; max-width: 44ch; }
.btn-light { background: var(--nme-accent); color: #fff; padding: 14px 26px; border-radius: 999px; font-weight: 600; display: inline-flex; align-items: center; gap: 10px; border: 0; text-decoration: none; }
.btn-light:hover { background: #fff; color: var(--nme-primary); }
.recommender-card-img { background-position: center; background-size: cover; background-image: linear-gradient(135deg, rgba(91,155,138,0.5), rgba(30,58,95,0.5)), radial-gradient(circle, var(--nme-accent) 0%, var(--nme-primary) 100%); }

/* Products section */
.products-section { padding: 70px 0; }
.products-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 36px; gap: 24px; flex-wrap: wrap; }
.products-head h2 { font-family: var(--nme-font-h); font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin: 0; line-height: 1.1; }
.products-head a { color: var(--nme-primary); font-weight: 600; font-size: 0.94rem; }

/* Filter pills */
.filter-section { padding: 50px 0 80px; }
.filter-eyebrow { text-align: center; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 20px; }
.filter-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.filter-card { position: relative; aspect-ratio: 5/3; border-radius: 16px; overflow: hidden; cursor: pointer; transition: transform 0.25s; text-decoration: none; color: #fff; display: block; }
.filter-card:hover { transform: translateY(-3px); }
.filter-card-bg { position: absolute; inset: 0; background: linear-gradient(135deg, var(--nme-accent) 0%, var(--nme-primary) 100%); background-size: cover; background-position: center; }
.filter-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 23, 42, 0.05) 0%, rgba(15, 23, 42, 0.65) 100%); }
.filter-card-label { position: absolute; bottom: 14px; left: 18px; right: 18px; color: #fff; font-weight: 700; font-size: 0.88rem; letter-spacing: 0.1em; text-transform: uppercase; z-index: 1; }

/* Reviews */
.reviews-section { padding: 80px 0; background: var(--nme-bg-soft); }
.reviews-head { text-align: center; margin-bottom: 48px; }
.reviews-head h2 { font-family: var(--nme-font-h); font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin: 0 0 8px; line-height: 1.1; }
.reviews-head p { color: var(--nme-muted); margin: 0; font-size: 1rem; }
.reviews-head .stars-big { color: #E8C547; font-size: 1.3rem; letter-spacing: 3px; margin-bottom: 8px; }
.reviews-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.review-card { background: #fff; padding: 24px; border-radius: 16px; display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--nme-border); }
.review-stars { color: #E8C547; font-size: 0.95rem; letter-spacing: 1px; }
.review-title { font-family: var(--nme-font-h); font-weight: 600; font-size: 1.05rem; margin: 0; }
.review-body { color: var(--nme-muted); font-size: 0.92rem; margin: 0; line-height: 1.55; }
.review-meta { display: flex; justify-content: space-between; color: var(--nme-muted); font-size: 0.78rem; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--nme-border); }
.review-product { color: var(--nme-primary); font-weight: 600; font-size: 0.78rem; }

/* Articles */
.articles-section { padding: 80px 0; }
.articles-head { text-align: center; margin-bottom: 48px; }
.articles-head .eyebrow { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 12px; }
.articles-head h2 { font-family: var(--nme-font-h); font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin: 0; line-height: 1.1; }
.articles-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.article-card { cursor: pointer; transition: transform 0.25s; }
.article-card:hover { transform: translateY(-4px); }
.article-card-media { aspect-ratio: 4/5; border-radius: 16px; overflow: hidden; margin-bottom: 16px; background: var(--nme-bg-soft); }
.article-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.article-card:hover .article-card-media img { transform: scale(1.05); }
.article-card-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, #F1EBE0, #E8F1ED); }
.article-card-cat { font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 8px; }
.article-card-title { font-family: var(--nme-font-h); font-weight: 600; font-size: 1.1rem; margin: 0 0 10px; line-height: 1.25; }
.article-card-title a { color: var(--nme-text); }
.article-card-title a:hover { color: var(--nme-primary); }
.article-card-link { color: var(--nme-primary); font-weight: 600; font-size: 0.86rem; }

/* Press */
.press-section { padding: 70px 0; border-top: 1px solid var(--nme-border); border-bottom: 1px solid var(--nme-border); }
.press-head { text-align: center; margin-bottom: 36px; }
.press-head h3 { font-family: var(--nme-font-h); font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin: 0; color: var(--nme-text); font-weight: 600; }
.press-logos { display: flex; justify-content: center; align-items: center; gap: 48px; flex-wrap: wrap; }
.press-logo { font-family: var(--nme-font-h); font-weight: 700; font-size: 1.4rem; color: var(--nme-muted); opacity: 0.6; transition: opacity 0.2s, color 0.2s; letter-spacing: 0.05em; }
.press-logo:hover { opacity: 1; color: var(--nme-primary); }
.press-logo.italic { font-style: italic; }
.press-logo.upper { text-transform: uppercase; font-size: 1.1rem; letter-spacing: 0.15em; }

/* Newsletter */
.newsletter-section { padding: 90px 0; }
.newsletter-card { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: center; background: #F1EBE0; border-radius: 28px; overflow: hidden; }
.newsletter-form-wrap { padding: 60px; }
.newsletter-form-wrap .eyebrow { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 12px; }
.newsletter-form-wrap h2 { font-family: var(--nme-font-h); font-size: clamp(1.7rem, 3vw, 2.4rem); margin: 0 0 14px; line-height: 1.1; }
.newsletter-form-wrap p { color: var(--nme-muted); margin: 0 0 28px; }
.newsletter-form { display: flex; gap: 10px; margin-bottom: 16px; }
.newsletter-form input { flex: 1; padding: 14px 20px; border-radius: 999px; border: 1px solid var(--nme-border); background: #fff; font-size: 0.95rem; }
.newsletter-form button { padding: 14px 28px; background: var(--nme-primary); color: #fff; border-radius: 999px; border: 0; font-weight: 600; font-size: 0.9rem; cursor: pointer; }
.newsletter-form button:hover { background: var(--nme-accent); }
.newsletter-legal { font-size: 0.78rem; color: var(--nme-muted); }
.newsletter-legal a { color: var(--nme-primary); text-decoration: underline; }
.newsletter-media { aspect-ratio: 4/5; background: linear-gradient(135deg, #E8F1ED 0%, #F1EBE0 100%); background-size: cover; background-position: center; height: 100%; min-height: 320px; }

/* Responsive */
@media (max-width: 1100px) {
  .cat-grid { grid-template-columns: repeat(4, 1fr); }
  .filter-grid { grid-template-columns: repeat(3, 1fr); }
  .reviews-grid, .articles-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .hero-slider-grid, .brand-story-grid, .recommender-card, .newsletter-card { grid-template-columns: 1fr !important; gap: 24px; }
  .hero-banner { padding: 36px 28px; }
  .hero-banner-body { max-width: 100%; }
  .cat-grid { grid-template-columns: repeat(3, 1fr); }
  .filter-grid { grid-template-columns: repeat(2, 1fr); }
  .reviews-grid, .articles-grid { grid-template-columns: 1fr; }
  .recommender-card-text, .newsletter-form-wrap { padding: 36px 28px; }
}

/* ============================================================
   SUPERSMART-LIKE SOBER HOME (NME v1.2)
   ============================================================ */
.container-narrow { max-width: 980px; margin: 0 auto; padding: 0 28px; }

.nme-hero { padding: 90px 0 70px; text-align: center; }
.nme-hero h1 { font-family: var(--nme-font-h); font-size: clamp(2.5rem, 5.4vw, 4.4rem); line-height: 1.02; letter-spacing: -0.025em; margin: 0 auto 28px; max-width: 16ch; font-weight: 600; }
.nme-hero h1 em { font-style: italic; color: var(--nme-accent); font-weight: 500; }
.nme-hero-intro { max-width: 56ch; margin: 0 auto 36px; color: var(--nme-muted); font-size: 1.1rem; }
.nme-hero-cta { display: inline-flex; align-items: center; gap: 10px; padding: 16px 32px; background: var(--nme-primary); color: #fff; border-radius: 999px; font-weight: 600; font-size: 0.95rem; text-decoration: none; transition: background 0.2s, transform 0.15s; }
.nme-hero-cta:hover { background: var(--nme-accent); transform: translateY(-2px); color: #fff; }

.nme-trust-banner { background: var(--nme-bg-soft); padding: 50px 0; }
.nme-trust-inner { display: grid; grid-template-columns: 1fr 1.5fr; gap: 60px; align-items: center; }
.nme-trust-headline { font-family: var(--nme-font-h); font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin: 0; line-height: 1.15; font-weight: 600; }
.nme-trust-headline span { color: var(--nme-accent); }
.nme-trust-rating { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-top: 14px; }
.nme-trust-rating .label { font-weight: 700; }
.nme-trust-rating .stars { color: #E5B100; letter-spacing: 2px; }
.nme-trust-rating small { color: var(--nme-muted); font-size: 0.85rem; }
.nme-reviews-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.nme-mini-review { background: #fff; padding: 16px; border-radius: 10px; border: 1px solid var(--nme-border); }
.nme-mini-review .stars { color: #E5B100; font-size: 0.85rem; }
.nme-mini-review h4 { margin: 8px 0 4px; font-size: 0.92rem; }
.nme-mini-review p { margin: 0; font-size: 0.85rem; color: var(--nme-muted); }

.nme-section-head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.nme-section-head h2 { font-family: var(--nme-font-h); font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin: 0 0 14px; line-height: 1.1; font-weight: 600; }
.nme-section-head p { color: var(--nme-muted); margin: 0; }
.nme-section-head.light h2 { color: #fff; }
.nme-section-head.light p { color: rgba(255,255,255,0.78); }

.nme-pillars { padding: 80px 0; }
.nme-pillars-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.nme-pillar { text-align: center; }
.nme-pillar-icon { width: 64px; height: 64px; margin: 0 auto 18px; background: var(--nme-bg-soft); border-radius: 50%; display: grid; place-items: center; color: var(--nme-primary); font-size: 1.8rem; }
.nme-pillar h3 { font-family: var(--nme-font-h); font-size: 1.2rem; margin: 0 0 8px; font-weight: 600; line-height: 1.2; }
.nme-pillar p { font-size: 0.92rem; color: var(--nme-muted); margin: 0; max-width: 22ch; margin-left: auto; margin-right: auto; }

.nme-section { padding: 80px 0; }

.nme-health { padding: 90px 0; background: var(--nme-bg-soft); }
.nme-health-list { columns: 4; column-gap: 36px; list-style: none; padding: 0; margin: 0; }
.nme-health-list li { padding: 10px 0; border-bottom: 1px solid var(--nme-border); break-inside: avoid; font-size: 0.95rem; cursor: pointer; transition: color 0.2s, padding-left 0.2s; }
.nme-health-list li:hover { color: var(--nme-accent); padding-left: 6px; }

.nme-ingredients { padding: 90px 0; }
.nme-ingredients-intro { max-width: 70ch; margin: 0 auto 50px; text-align: center; color: var(--nme-muted); }
.nme-ingredients-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.nme-ingredient-card { background: var(--nme-bg-soft); border-radius: 16px; padding: 36px 32px; }
.nme-ingredient-icon { width: 72px; height: 72px; border-radius: 50%; background: #fff; display: grid; place-items: center; margin-bottom: 22px; color: var(--nme-primary); font-size: 2rem; border: 1px solid var(--nme-border); }
.nme-ingredient-icon--img { padding: 8px; overflow: hidden; }
.nme-ingredient-icon--img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.nme-ingredient-card h3 { font-family: var(--nme-font-h); font-size: 1.3rem; margin: 0 0 4px; font-weight: 600; }
.nme-ing-sub { font-size: 0.82rem; color: var(--nme-accent); font-weight: 600; margin-bottom: 18px; }
.nme-ing-divider { width: 40px; height: 2px; background: var(--nme-accent); margin: 12px 0 18px; }
.nme-ing-qa { margin-bottom: 14px; }
.nme-ing-qa strong { display: block; font-size: 0.85rem; margin-bottom: 4px; font-weight: 700; }
.nme-ing-qa p { font-size: 0.88rem; color: var(--nme-muted); margin: 0; }

.nme-science { padding: 90px 0; background: var(--nme-primary); color: #fff; }
.nme-science-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; max-width: 1080px; margin: 0 auto; }
.nme-science-step { display: flex; gap: 20px; align-items: flex-start; }
.nme-science-step .num { font-family: var(--nme-font-h); font-size: 3rem; line-height: 1; color: var(--nme-accent); font-weight: 600; min-width: 50px; }
.nme-science-step h3 { font-family: var(--nme-font-h); font-size: 1.25rem; margin: 0 0 10px; font-weight: 600; color: #fff; }
.nme-science-step p { font-size: 0.92rem; color: rgba(255,255,255,0.82); margin: 0; }

.nme-experts { padding: 90px 0; }
.nme-experts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.nme-expert-card { background: #fff; border: 1px solid var(--nme-border); border-radius: 16px; padding: 32px 28px; text-align: center; }
.nme-expert-photo { width: 96px; height: 96px; border-radius: 50%; background: var(--nme-bg-soft); margin: 0 auto 20px; display: grid; place-items: center; font-family: var(--nme-font-h); font-size: 1.8rem; color: var(--nme-primary); font-weight: 600; }
.nme-expert-quote { font-size: 0.95rem; color: var(--nme-text); line-height: 1.65; margin: 0 0 20px; font-style: italic; }
.nme-expert-name { font-family: var(--nme-font-h); font-weight: 600; font-size: 1.05rem; }
.nme-expert-role { font-size: 0.82rem; color: var(--nme-muted); }

.nme-faq { padding: 90px 0; background: var(--nme-bg-soft); }
.nme-faq-list { max-width: 820px; margin: 0 auto; }
.nme-faq-item { border-bottom: 1px solid var(--nme-border); }
.nme-faq-item summary { padding: 22px 4px; cursor: pointer; font-weight: 600; font-size: 1.05rem; display: flex; justify-content: space-between; align-items: center; gap: 16px; list-style: none; }
.nme-faq-item summary::-webkit-details-marker { display: none; }
.nme-faq-body { padding: 0 4px 24px; color: var(--nme-muted); font-size: 0.95rem; line-height: 1.65; }

.nme-trust-bar { padding: 36px 0; background: var(--nme-bg-soft); border-top: 1px solid var(--nme-border); border-bottom: 1px solid var(--nme-border); }
.nme-trust-bar-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.nme-trust-bar-grid > div { text-align: center; font-size: 0.9rem; }
.nme-trust-bar-grid strong::before { content: "✓ "; color: var(--nme-accent); font-weight: 700; }

@media (max-width: 1100px) {
  .nme-pillars-grid, .nme-ingredients-grid, .nme-science-grid, .nme-experts-grid { grid-template-columns: repeat(2, 1fr); }
  .nme-health-list { columns: 3; }
  .nme-trust-bar-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .nme-trust-inner, .nme-pillars-grid, .nme-ingredients-grid, .nme-science-grid, .nme-experts-grid { grid-template-columns: 1fr !important; gap: 28px; }
  .nme-health-list { columns: 2; }
}
@media (max-width: 540px) {
  .nme-health-list { columns: 1; }
  .nme-trust-bar-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   NME v1.3 — Logo tooltip · Nav bold · Search dropdown · IG · AI regen
   ============================================================ */

/* Logo + tooltip */
.brand { position: relative; display: inline-flex; align-items: center; }
.brand .custom-logo, .brand img { max-height: 56px; width: auto; }
.brand-tooltip { position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%) translateY(-4px); background: var(--nme-primary); color: #fff; padding: 10px 16px; border-radius: 10px; font-size: 0.82rem; line-height: 1.35; white-space: nowrap; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.2s, transform 0.2s, visibility 0.2s; z-index: 60; box-shadow: 0 12px 30px -10px rgba(15,23,42,0.4); }
.brand-tooltip::before { content: ""; position: absolute; left: 50%; top: -5px; transform: translateX(-50%) rotate(45deg); width: 10px; height: 10px; background: var(--nme-primary); }
.brand-tooltip strong { display: block; font-family: var(--nme-font-h); font-weight: 600; font-size: 0.92rem; }
.brand-tooltip span { display: block; font-size: 0.7rem; opacity: 0.78; letter-spacing: 0.08em; text-transform: uppercase; margin-top: 2px; }
.brand:hover .brand-tooltip, .brand:focus-within .brand-tooltip { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }

/* Nav bold */
.primary-nav .menu a { font-weight: 700; font-size: 0.92rem; }

/* Search dropdown panel */
.header-search-panel { position: absolute; left: 0; right: 0; top: 100%; padding: 0; background: #fff; border-bottom: 1px solid var(--nme-border); box-shadow: 0 20px 50px -20px rgba(15,23,42,0.2); z-index: 49; }
.header-search-panel .container { padding-top: 28px; padding-bottom: 28px; max-width: 880px; }
.search-suggestions { margin-top: 18px; }
.suggestions-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--nme-muted); font-weight: 600; margin-bottom: 10px; }
.suggestions-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.suggestion-tag { padding: 8px 14px; background: var(--nme-bg-soft); border: 1px solid var(--nme-border); border-radius: 999px; color: var(--nme-text); font-size: 0.85rem; text-decoration: none; transition: all 0.2s; }
.suggestion-tag:hover { background: var(--nme-primary); color: #fff; border-color: var(--nme-primary); }
.header-search-toggle.is-active { background: var(--nme-primary); color: #fff; }

/* === Defensa GLOBAL contra scroll horizontal en móvil + header siempre visible === */
html, body { max-width: 100vw; overflow-x: hidden !important; }
html { scroll-behavior: smooth; }
@media (max-width: 960px) {
        /* Header SIEMPRE fijo en móvil, sin importar el scroll. */
        body .site-header,
        html body .site-header { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; max-width: 100vw !important; z-index: 80 !important; transform: none !important; }
        body { padding-top: var(--nme-header-h, 60px) !important; }
        /* Forzar contención horizontal en TODOS los wrappers posibles */
        html, body, #page, .site, main, .site-main, .site-footer { max-width: 100vw !important; overflow-x: hidden !important; box-sizing: border-box; }
        /* Cualquier imagen/iframe/embed grande NO debe forzar scroll lateral */
        img, iframe, video, embed, object, svg { max-width: 100%; height: auto; }
        /* Si algún producto/hero tiene padding lateral 0, forzar 0 sin scroll */
        .container, .nme-narrow { max-width: 100% !important; }
}

/* Products compact + responsive */
.woocommerce ul.products.products-grid-compact,
.products-grid-compact { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 18px !important; }
.woocommerce ul.products.products-grid-compact li.product { padding: 0 !important; min-width: 0 !important; }
@media (max-width: 1100px) {
  .woocommerce ul.products.products-grid-compact,
  .products-grid-compact { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 720px) {
  .woocommerce ul.products.products-grid-compact,
  .products-grid-compact { grid-template-columns: repeat(2, 1fr) !important; gap: 14px !important; }
}
@media (max-width: 380px) {
  .woocommerce ul.products.products-grid-compact,
  .products-grid-compact { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
}
/* Cards de producto: forzar contenido a no desbordar (textos en columnas estrechas en móvil) */
.woocommerce ul.products li.product {
        min-width: 0 !important;
        overflow: hidden;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
        word-wrap: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        font-size: 0.95rem !important;
        line-height: 1.3 !important;
}
.woocommerce ul.products li.product .price { font-size: 0.95rem !important; word-wrap: break-word; }
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product a img {
        width: 100% !important;
        height: auto !important;
        display: block !important;
        aspect-ratio: 1 / 1;
        object-fit: contain;
        background: #F8FAFC;
        margin: 0 0 12px !important;
}
/* Márgenes laterales coherentes en la tienda en móvil (iguales al resto del sitio). */
@media (max-width: 720px) {
        .nme-wc { padding: 1.5rem 0 3rem !important; }
        .nme-wc > .container,
        .woocommerce .container,
        .woocommerce-page .container,
        main.nme-wc > .container { padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box; }
        .woocommerce ul.products,
        .woocommerce-page ul.products { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
        .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 14px !important; }
        .woocommerce-products-header,
        .woocommerce-notices-wrapper,
        .woocommerce-result-count,
        .woocommerce-ordering { padding-left: 0 !important; padding-right: 0 !important; }
        /* Single product (página de producto) — heredar margin del .container del tema */
        .woocommerce div.product,
        .woocommerce #content div.product,
        .single-product.woocommerce div.product { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
        .woocommerce div.product .woocommerce-product-gallery,
        .woocommerce div.product .summary,
        .woocommerce div.product .product_title,
        .woocommerce div.product p.price,
        .woocommerce div.product .woocommerce-product-details__short-description,
        .woocommerce div.product .cart,
        .woocommerce div.product .product_meta,
        .woocommerce div.product .woocommerce-tabs { padding-left: 0 !important; padding-right: 0 !important; }
}
@media (max-width: 480px) {
        .woocommerce ul.products { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
        .nme-wc > .container,
        main.nme-wc > .container { padding-left: 18px !important; padding-right: 18px !important; }
}

/* Instagram section */
.nme-instagram { padding: 90px 0; }
.nme-ig-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 40px; flex-wrap: wrap; }
.nme-ig-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 8px; }
.nme-ig-head h2 { font-family: var(--nme-font-h); font-size: clamp(1.6rem, 3vw, 2.4rem); margin: 0 0 8px; line-height: 1.1; font-weight: 600; }
.nme-ig-head p { color: var(--nme-muted); margin: 0; font-size: 0.95rem; max-width: 50ch; }
.nme-ig-follow { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; background: var(--nme-primary); color: #fff; border-radius: 999px; font-weight: 700; font-size: 0.88rem; text-decoration: none; transition: background 0.2s, transform 0.15s; }
.nme-ig-follow:hover { background: var(--nme-accent); color: #fff; transform: translateY(-2px); }
.nme-ig-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.nme-ig-post { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 8px; background: var(--nme-bg-soft); display: block; text-decoration: none; }
.nme-ig-post img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s, filter 0.3s; }
.nme-ig-post:hover img { transform: scale(1.08); filter: brightness(0.7); }
.nme-ig-placeholder { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(135deg, var(--nme-accent), var(--nme-primary)); color: #fff; font-family: var(--nme-font-h); font-weight: 700; font-size: 1.5rem; }
.nme-ig-overlay { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; opacity: 0; transition: opacity 0.25s; }
.nme-ig-post:hover .nme-ig-overlay { opacity: 1; }
@media (max-width: 720px) { .nme-ig-grid { grid-template-columns: repeat(3, 1fr); } }
/* Modo externo (Smash Balloon, Spotlight, etc.): contenedor neutro que respeta
   los estilos del propio plugin pero garantiza max-width y margin. */
.nme-ig-external-feed { margin-top: 18px; }
.nme-ig-external-feed > div, .nme-ig-external-feed .sbi, .nme-ig-external-feed #sb_instagram { max-width: 100%; }

/* ============================================================
   NME v1.4 — Mega-menu · Hamburger · Quiz IA · Sober blog/Single-product
   ============================================================ */

/* Hamburger button polished */
.mobile-menu-toggle { display: none; flex-direction: column; gap: 5px; background: transparent; border: 0; padding: 8px; cursor: pointer; border-radius: 6px; transition: background 0.2s; }
.mobile-menu-toggle:hover { background: var(--nme-bg-soft); }
.mobile-menu-toggle span { width: 22px; height: 2px; background: var(--nme-text); display: block; transition: transform 0.25s, opacity 0.2s; transform-origin: center; }
.mobile-menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mobile-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.mobile-menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mega-menu */
.has-megamenu { position: relative; }
.has-megamenu > a .chevron { display: inline-block; font-size: 1.05em; line-height: 1; font-weight: 700; vertical-align: -1px; margin-left: 6px; color: var(--nme-accent, #5B9B8A); transition: transform 0.25s; }
.has-megamenu.is-open > a .chevron { transform: rotate(180deg); }
/* Puente invisible: cuando el menú está abierto, el trigger se "extiende" 24px hacia abajo
   para que el cursor no caiga en zona sin hover al bajar al mega-panel. */
.has-megamenu.is-open::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 28px; background: transparent; }
.nme-megamenu { position: absolute; left: 0; right: 0; top: calc(100% + 12px); background: #fff; border-bottom: 1px solid var(--nme-border); box-shadow: 0 24px 60px -28px rgba(15,23,42,0.32); z-index: 48; padding: 40px 0; opacity: 0; pointer-events: none; transform: translateY(-6px); transition: opacity 0.2s, transform 0.25s; }
.nme-megamenu.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
.nme-megamenu[hidden] { display: none; }
.nme-megamenu-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
.nme-megamenu-col h5 { font-family: var(--nme-font-h); font-weight: 700; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.16em; margin: 0 0 16px; color: var(--nme-muted); }
.nme-megamenu-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.nme-megamenu-col ul a { color: var(--nme-text); font-weight: 500; font-size: 0.94rem; transition: color 0.2s, padding-left 0.2s; }
.nme-megamenu-col ul a:hover { color: var(--nme-accent); padding-left: 4px; }
.nme-megamenu-feature { background: var(--nme-bg-soft); border-radius: 14px; padding: 24px; }
.nme-megamenu-tag { display: inline-block; font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 12px; }
.nme-megamenu-feature h4 { font-family: var(--nme-font-h); font-size: 1.15rem; margin: 0 0 10px; line-height: 1.25; font-weight: 600; }
.nme-megamenu-feature p { font-size: 0.88rem; color: var(--nme-muted); margin: 0 0 14px; }
.nme-megamenu-cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 22px; background: var(--nme-primary); color: #fff; border-radius: 999px; font-weight: 700; font-size: 0.88rem; line-height: 1; text-decoration: none; transition: background 0.2s, color 0.2s, transform 0.2s; white-space: nowrap; min-height: 42px; }
.nme-megamenu-cta:hover { background: var(--nme-accent); color: #fff; transform: translateY(-1px); }

/* Header utility */
.hide-sm { }
@media (max-width: 720px) { .hide-sm { display: none !important; } }

/* ============================================================
   STICKY CTA — banner persistente en el pie de viewport.
   Editable desde Apariencia → Personalizar → NME · Marca y Estilo.
============================================================ */
.nme-sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: #1E3A5F; color: #fff; box-shadow: 0 -8px 24px -10px rgba(15, 23, 42, 0.35); display: flex; align-items: stretch; transform: translateY(0); transition: transform 0.3s ease; }
.nme-sticky-cta__link { flex: 1; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 22px; color: #fff !important; text-decoration: none; font-weight: 700; font-size: 0.98rem; line-height: 1.3; text-align: center; min-width: 0; }
.nme-sticky-cta__text { display: block; flex: 0 1 auto; min-width: 0; text-align: center; white-space: normal; word-wrap: break-word; }
.nme-sticky-cta__link:hover { background: rgba(255,255,255,0.06); }
.nme-sticky-cta__arrow { font-weight: 800; transition: transform 0.18s; flex-shrink: 0; }
.nme-sticky-cta__link:hover .nme-sticky-cta__arrow { transform: translateX(4px); }
.nme-sticky-cta__close { background: transparent; border: 0; color: rgba(255,255,255,0.7); padding: 0 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: color 0.2s; flex-shrink: 0; }
.nme-sticky-cta__close:hover { color: #fff; }
@media (max-width: 600px) {
        .nme-sticky-cta__link { padding: 10px 12px; font-size: 0.72rem; line-height: 1.2; gap: 4px; }
        .nme-sticky-cta__close { padding: 0 8px; }
        .nme-sticky-cta__close svg { width: 12px; height: 12px; }
        .nme-sticky-cta__arrow { font-size: 0.85rem; }
}
@media (max-width: 380px) {
        .nme-sticky-cta__link { font-size: 0.66rem; padding: 9px 10px; }
}
/* Hueco al final del body para que el contenido no quede tapado bajo el sticky. */
body:has(.nme-sticky-cta) { padding-bottom: 60px; }
@media (max-width: 600px) {
        body:has(.nme-sticky-cta) { padding-bottom: 54px; }
}

/* ============================================================
   MENÚ MÓVIL — DROPDOWN bajo el header (sin cajón lateral, sin velo).
   Patrón a prueba de bombas: simple <nav> que aparece debajo del header.
============================================================ */
.nme-nav-backdrop { display: none !important; }
.nme-mobile-drawer { display: contents; }
.primary-nav-close { display: none !important; }
.primary-nav-cta { display: none !important; }
@media (max-width: 960px) {
        .mobile-menu-toggle { display: flex; order: -1; position: relative; z-index: 50; }
        /* El "drawer" en móvil es un dropdown debajo del header. */
        .nme-mobile-drawer {
                display: block !important;
                position: fixed !important;
                top: var(--nme-header-h, 60px);
                left: 0; right: 0;
                background: #ffffff !important;
                border: 0;
                box-shadow: none;
                max-height: 0;
                overflow: hidden;
                transition: max-height 0.35s cubic-bezier(0.32, 0.72, 0, 1);
                z-index: 49;
                filter: none !important;
                -webkit-backdrop-filter: none !important;
                backdrop-filter: none !important;
        }
        .nme-mobile-drawer.is-open {
                max-height: calc(100vh - var(--nme-header-h, 60px));
                overflow-y: auto;
                -webkit-overflow-scrolling: touch;
                border-bottom: 1px solid var(--nme-border);
                box-shadow: 0 16px 32px -16px rgba(15, 23, 42, 0.18);
        }
        .primary-nav { position: static !important; padding: 12px 22px 22px !important; background: none; border: 0; box-shadow: none; }
        .primary-nav .menu { flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 0; list-style: none; }
        .primary-nav .menu > li { margin: 0; }
        .primary-nav .menu a { font-size: 1.05rem; padding: 16px 4px; border-bottom: 1px solid var(--nme-border); display: block; width: 100%; color: var(--nme-text); text-decoration: none; }
        .primary-nav .menu a::after { display: none; }
        .primary-nav .has-megamenu > a .chevron { float: right; transition: transform .25s; }
        .primary-nav .has-megamenu.is-open > a .chevron { transform: rotate(180deg); }
        .primary-nav .nme-megamenu { position: static; box-shadow: none; padding: 4px 0 14px; border: 0; opacity: 1; transform: none; pointer-events: auto; background: transparent; }
        .primary-nav .nme-megamenu[hidden] { display: none; }
        .primary-nav .nme-megamenu .container { padding: 0; max-width: none; }
        .primary-nav .nme-megamenu-grid { display: flex; flex-direction: column; gap: 14px; }
        .primary-nav .nme-megamenu-col { padding: 10px 0 0 14px; border-left: 2px solid var(--nme-accent, #5B9B8A); }
        .primary-nav .nme-megamenu-col h5 { margin: 0 0 8px; font-size: 0.7rem; }
        .primary-nav .nme-megamenu-col ul { gap: 4px; }
        .primary-nav .nme-megamenu-col ul a { padding: 8px 0; font-size: 0.94rem; border-bottom: 0; }
        .primary-nav .nme-megamenu-feature { padding: 16px; border-radius: 12px; margin-top: 6px; }
        .primary-nav .nme-megamenu-feature h4 { font-size: 1rem; }
        .nme-post-footer { flex-direction: column !important; align-items: flex-start !important; }
        .nme-share { flex-wrap: wrap !important; }
        /* Hamburguesa "abierta" → convertir en X */
        .mobile-menu-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
        .mobile-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
        .mobile-menu-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
        .mobile-menu-toggle span { transition: transform 0.25s, opacity 0.2s; transform-origin: center; }
}
/* NOTA: ya no hay scroll-lock ni position:fixed body. El dropdown coexiste con la página. */

/* =========================================================
 *  Touch-friendly nav — accesibilidad táctil
 *  En dispositivos sin hover real (tablets, móviles, surface-touch)
 *  ampliamos el área de tap a 48 px (recomendación WCAG 2.5.5 / Apple HIG / Material).
 *  El usuario antes tenía que apuntar con precisión a un texto de ~36 px de alto;
 *  esto resolvía mal en iPad/Galaxy Tab landscape donde se ve el layout desktop.
 * ========================================================= */
@media (hover: none), (pointer: coarse) {
        .primary-nav .menu a { padding: 16px 10px; min-height: 48px; }
        .primary-nav .menu .has-megamenu > a { cursor: pointer; padding-right: 32px; position: relative; }
        .primary-nav .menu .has-megamenu > a .chevron { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 14px; opacity: .75; }
        .primary-nav .menu .has-megamenu.is-open > a .chevron { transform: translateY(-50%) rotate(180deg); }
        /* Botones del header (cuenta, carrito, búsqueda, hamburguesa) → 48 × 48. */
        .header-actions button, .header-actions a { width: 48px; height: 48px; }
        .mobile-menu-toggle { min-width: 48px; min-height: 48px; padding: 12px; }
        /* Quitamos hover-transform que se queda "pegado" tras un tap. */
        .post-card:hover, .pa-card:hover, .article-card:hover, .filter-card:hover, .cat-card:hover { transform: none; }
}

/* ===== QUIZ IA ===== */
.nme-quiz { padding: 80px 0; background: linear-gradient(180deg, var(--nme-bg) 0%, var(--nme-bg-soft) 100%); }
.nme-quiz-card { background: #fff; border-radius: 24px; padding: 56px 60px; box-shadow: 0 36px 80px -40px rgba(15,23,42,0.25); border: 1px solid var(--nme-border); position: relative; overflow: hidden; }
.nme-quiz-card::after { content: ""; position: absolute; right: -120px; top: -120px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--nme-accent) 12%, transparent), transparent 70%); pointer-events: none; }
.nme-quiz-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; background: color-mix(in srgb, var(--nme-accent) 14%, var(--nme-bg)); color: var(--nme-accent); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; border-radius: 999px; margin-bottom: 22px; position: relative; z-index: 1; }
.nme-quiz-intro h2 { font-family: var(--nme-font-h); font-size: clamp(1.7rem, 3vw, 2.3rem); margin: 0 0 12px; font-weight: 600; line-height: 1.15; }
.nme-quiz-sub { color: var(--nme-muted); margin: 0 0 28px; max-width: 60ch; font-size: 0.98rem; }
.nme-quiz-progress { height: 6px; background: var(--nme-bg-soft); border-radius: 999px; overflow: hidden; margin: 0 0 32px; position: relative; z-index: 1; }
.nme-quiz-progress-bar { height: 100%; width: 0; background: var(--nme-accent); transition: width 0.4s ease; border-radius: 999px; }
.nme-quiz-step-host { position: relative; z-index: 1; }
.nme-quiz-step-host h3 { font-family: var(--nme-font-h); font-size: 1.25rem; margin: 0 0 20px; font-weight: 600; }
.nme-quiz-options { display: flex; flex-wrap: wrap; gap: 10px; }
.nme-quiz-option { padding: 12px 22px; background: var(--nme-bg-soft); border: 1px solid var(--nme-border); border-radius: 999px; cursor: pointer; font-size: 0.92rem; font-weight: 500; color: var(--nme-text); transition: all 0.2s; }
.nme-quiz-option:hover { background: var(--nme-primary); color: #fff; border-color: var(--nme-primary); transform: translateY(-2px); }
.nme-quiz-textarea { width: 100%; padding: 14px 18px; border: 1px solid var(--nme-border); border-radius: 14px; background: var(--nme-bg-soft); font-family: inherit; font-size: 0.95rem; color: var(--nme-text); resize: vertical; margin-bottom: 16px; }
.nme-quiz-textarea:focus { outline: 2px solid var(--nme-accent); outline-offset: 2px; background: #fff; }
.nme-quiz-cta { padding: 14px 28px; background: var(--nme-primary); color: #fff; border-radius: 999px; border: 0; font-weight: 600; cursor: pointer; transition: background 0.2s, transform 0.15s; }
.nme-quiz-cta:hover { background: var(--nme-accent); transform: translateY(-2px); }
.nme-quiz-loading { display: flex; align-items: center; gap: 14px; padding: 24px; color: var(--nme-muted); font-style: italic; }
.nme-quiz-spinner { width: 24px; height: 24px; border-radius: 50%; border: 2.5px solid var(--nme-bg-soft); border-top-color: var(--nme-accent); animation: nme-spin 0.9s linear infinite; }
@keyframes nme-spin { to { transform: rotate(360deg); } }
.nme-quiz-results h2 { font-family: var(--nme-font-h); font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 600; margin: 0 0 10px; }
/* Productos del quiz · layout vertical contenido en card */
.nme-quiz-products { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 14px 0 6px; }
.nme-quiz-product { display: flex; flex-direction: column; gap: 12px; padding: 20px; background: var(--nme-bg-soft); border-radius: 18px; border: 1px solid var(--nme-border); overflow: hidden; min-width: 0; }
.nme-quiz-product-head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.nme-quiz-product-num { flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--nme-accent); color: #fff; font-family: var(--nme-font-h); font-weight: 700; font-size: 0.92rem; display: grid; place-items: center; }
.nme-quiz-product-title { font-family: var(--nme-font-h); font-size: 1.05rem; margin: 0; font-weight: 600; line-height: 1.25; color: var(--nme-text); overflow-wrap: anywhere; min-width: 0; }
.nme-quiz-product-img { width: 84px; height: 84px; border-radius: 12px; overflow: hidden; background: #fff; align-self: flex-start; border: 1px solid var(--nme-border); }
.nme-quiz-product-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nme-quiz-product-body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.nme-quiz-product-why { font-size: 0.88rem; color: var(--nme-muted); margin: 0; line-height: 1.5; overflow-wrap: break-word; }
.nme-quiz-product-price { font-family: var(--nme-font-h); font-weight: 700; color: var(--nme-primary); font-size: 1.05rem; margin: 0; }
.nme-quiz-product-cta { display: inline-block; align-self: flex-start; background: var(--nme-accent); color: #fff !important; text-decoration: none; padding: 10px 18px; border-radius: 999px; font-size: 0.85rem; font-weight: 600; letter-spacing: 0.01em; transition: filter 0.2s ease, transform 0.2s ease; }
.nme-quiz-product-cta:hover { filter: brightness(1.06); transform: translateY(-1px); }
.nme-quiz-disclaimer { padding: 16px 20px; background: color-mix(in srgb, var(--nme-warning) 8%, var(--nme-bg)); border-left: 4px solid var(--nme-warning); border-radius: 0 12px 12px 0; font-size: 0.86rem; color: var(--nme-text); margin: 20px 0; line-height: 1.55; }
.nme-quiz-restart { padding: 12px 24px; background: transparent; color: var(--nme-primary); border: 1px solid var(--nme-border); border-radius: 999px; cursor: pointer; font-weight: 600; font-size: 0.88rem; transition: all 0.2s; }
.nme-quiz-restart:hover { background: var(--nme-primary); color: #fff; border-color: var(--nme-primary); }

/* Pills ingredientes esenciales · color heredado de pa_familia (var --pa-c) */
.nme-quiz-essentials { margin: 24px 0 10px; }
.nme-quiz-essentials-label, .nme-quiz-products-label { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--nme-muted); font-weight: 600; margin: 0 0 10px; }
.nme-quiz-essentials-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.nme-quiz-essential-pill {
        --pa-c: var(--nme-accent);
        display: inline-flex; align-items: center; gap: 8px;
        padding: 9px 18px;
        background: color-mix(in srgb, var(--pa-c) 12%, #fff);
        color: var(--pa-c);
        border: 1.5px solid color-mix(in srgb, var(--pa-c) 36%, transparent);
        border-radius: 999px;
        font-size: 0.94rem; font-weight: 600; letter-spacing: 0.01em;
        text-decoration: none;
        transition: background 0.2s ease, color 0.2s ease, transform 0.18s ease, box-shadow 0.2s ease;
}
a.nme-quiz-essential-pill:hover {
        background: var(--pa-c); color: #fff; transform: translateY(-1px);
        box-shadow: 0 8px 20px -10px color-mix(in srgb, var(--pa-c) 80%, transparent);
}
.nme-quiz-essential-dot {
        width: 8px; height: 8px; border-radius: 50%;
        background: var(--pa-c); flex: none;
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--pa-c) 22%, transparent);
        transition: background 0.2s ease, box-shadow 0.2s ease;
}
a.nme-quiz-essential-pill:hover .nme-quiz-essential-dot {
        background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,0.28);
}
.nme-quiz-essential-arrow {
        font-size: 0.86rem; opacity: 0.7;
        transition: transform 0.2s ease, opacity 0.2s ease;
}
a.nme-quiz-essential-pill:hover .nme-quiz-essential-arrow { transform: translateX(3px); opacity: 1; }

/* CTA destacado a la calculadora completa */
.nme-quiz-calc-cta {
        display: flex; align-items: center; gap: 18px; padding: 22px 26px; margin: 28px 0 6px;
        background: linear-gradient(135deg, var(--nme-primary) 0%, color-mix(in srgb, var(--nme-primary) 88%, #000) 100%);
        color: #fff; text-decoration: none; border-radius: 16px; transition: transform .18s ease, box-shadow .18s ease;
        box-shadow: 0 12px 28px -16px color-mix(in srgb, var(--nme-primary) 70%, transparent);
}
.nme-quiz-calc-cta:hover { transform: translateY(-2px); box-shadow: 0 18px 38px -16px color-mix(in srgb, var(--nme-primary) 80%, transparent); color: #fff; }
.nme-quiz-calc-icon {
        flex: none; width: 48px; height: 48px; display: grid; place-items: center;
        background: color-mix(in srgb, var(--nme-accent) 22%, transparent); color: var(--nme-accent);
        border-radius: 12px;
}
.nme-quiz-calc-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nme-quiz-calc-text strong { font-size: 1.02rem; line-height: 1.35; font-weight: 600; letter-spacing: -0.01em; }
.nme-quiz-calc-sub { font-size: 0.82rem; color: rgba(255,255,255,0.78); letter-spacing: 0.01em; }

@media (max-width: 720px) {
        .nme-quiz-products { grid-template-columns: 1fr; gap: 14px; }
        .nme-quiz-product { padding: 16px; }
        .nme-quiz-product-img { width: 72px; height: 72px; }
        .nme-quiz-calc-cta { flex-direction: row; padding: 18px 18px; gap: 14px; }
        .nme-quiz-calc-icon { width: 42px; height: 42px; }
        .nme-quiz-calc-text strong { font-size: 0.94rem; }
        .nme-quiz-calc-sub { font-size: 0.78rem; }
}

@media (max-width: 720px) {
        .nme-quiz-card { padding: 36px 24px; border-radius: 18px; }
}

/* ===== SUPER-SOBER BLOG (single + archive) ===== */
.nme-blog-archive { padding: 60px 0 80px; }
.nme-blog-archive .archive-hero { max-width: 720px; margin: 0 auto 60px; text-align: center; padding: 30px 0 0; }
.nme-blog-archive .archive-hero__title { font-family: var(--nme-font-h); font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 14px; font-weight: 600; }
.nme-blog-archive .archive-hero__lede { color: var(--nme-muted); font-size: 1.05rem; max-width: 56ch; margin: 0 auto; }
.nme-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.nme-blog-card { background: #fff; border: 1px solid var(--nme-border); border-radius: 16px; overflow: hidden; transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s; display: flex; flex-direction: column; }
.nme-blog-card:hover { transform: translateY(-4px); box-shadow: 0 22px 50px -25px rgba(15,23,42,0.18); border-color: color-mix(in srgb, var(--nme-primary) 22%, var(--nme-border)); }
.nme-blog-card__media { aspect-ratio: 16/10; overflow: hidden; background: var(--nme-bg-soft); }
.nme-blog-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.nme-blog-card:hover .nme-blog-card__media img { transform: scale(1.04); }
.nme-blog-card__placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--nme-bg-soft) 0%, color-mix(in srgb, var(--nme-accent) 18%, var(--nme-bg-soft)) 100%); }
.nme-blog-card__body { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.nme-blog-card__cat { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; }
.nme-blog-card__title { font-family: var(--nme-font-h); font-size: 1.2rem; margin: 0; line-height: 1.3; font-weight: 600; }
.nme-blog-card__title a { color: var(--nme-text); }
.nme-blog-card__title a:hover { color: var(--nme-primary); }
.nme-blog-card__excerpt { color: var(--nme-muted); font-size: 0.94rem; margin: 0; flex: 1; }
.nme-blog-card__meta { font-size: 0.78rem; color: var(--nme-muted); display: flex; gap: 8px; align-items: center; padding-top: 10px; border-top: 1px solid var(--nme-border); }

@media (max-width: 960px) { .nme-blog-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (max-width: 640px) { .nme-blog-grid { grid-template-columns: 1fr; } }

/* Single post sober */
.nme-single-post { padding: 40px 0 80px; }
.nme-single-post__container { max-width: 740px; margin: 0 auto; }
.nme-single-post__head { text-align: center; margin-bottom: 36px; }
.nme-single-post__cat { display: inline-block; font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 14px; }
.nme-single-post__title { font-family: var(--nme-font-h); font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 18px; line-height: 1.12; font-weight: 600; }
.nme-single-post__lede { color: var(--nme-muted); font-size: 1.12rem; line-height: 1.6; max-width: 60ch; margin: 0 auto 18px; }
.nme-single-post__meta { font-size: 0.85rem; color: var(--nme-muted); display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.nme-single-post__hero { margin: 30px 0 50px; border-radius: 20px; overflow: hidden; }
.nme-single-post__hero img { width: 100%; height: auto; display: block; }
.nme-single-post__body { font-size: 1.06rem; line-height: 1.78; color: var(--nme-text); }
.nme-single-post__body h2 { font-family: var(--nme-font-h); font-size: 1.7rem; margin: 2.2em 0 0.7em; font-weight: 600; }
.nme-single-post__body h3 { font-family: var(--nme-font-h); font-size: 1.3rem; margin: 1.8em 0 0.6em; font-weight: 600; }
.nme-single-post__body p { margin: 0 0 1.3em; }
.nme-single-post__body a { color: var(--nme-primary); text-decoration: underline; text-underline-offset: 4px; }
.nme-single-post__body a:hover { color: var(--nme-accent); }
.nme-single-post__body blockquote { border-left: 3px solid var(--nme-accent); padding: 6px 0 6px 24px; margin: 2em 0; font-style: italic; color: var(--nme-muted); font-size: 1.1rem; }
.nme-single-post__body ul, .nme-single-post__body ol { padding-left: 1.4em; margin: 1em 0 1.4em; }
.nme-single-post__body li { margin-bottom: 0.5em; }
.nme-single-post__body img { border-radius: 14px; margin: 2em 0; }
.nme-single-post__footer { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--nme-border); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }

/* === Footer del artículo (ancho 1240px, no 740px) === */
.nme-post-footer-wrap { margin-top: 30px; padding-top: 30px; border-top: 1px solid var(--nme-border); }
.nme-post-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; padding-bottom: 30px; }
.nme-post-footer .post-tags { font-size: 0.85rem; color: var(--nme-muted); }
.nme-post-footer .post-tags a { color: var(--nme-primary); text-decoration: underline; text-underline-offset: 3px; margin: 0 4px; }

/* === Botones de compartir (azul oscuro pequeño) === */
.nme-share { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nme-share__label { font-size: 0.82rem; font-weight: 600; color: var(--nme-muted); margin-right: 4px; text-transform: uppercase; letter-spacing: 0.08em; }
.nme-share__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background: var(--nme-primary, #1E3A5F);
        color: #fff;
        text-decoration: none;
        border: 0;
        cursor: pointer;
        transition: background .2s, transform .15s, box-shadow .2s;
        padding: 0;
}
.nme-share__btn:hover {
        background: #16294A;
        color: #fff;
        transform: translateY(-2px);
        box-shadow: 0 4px 12px -4px rgba(30,58,95,0.45);
}
.nme-share__btn svg { display: block; }
.nme-share__btn.is-copied { background: var(--nme-accent, #5B9B8A); }

/* ===== SOBER SINGLE-PRODUCT (WooCommerce) ===== */
.woocommerce.single-product .nme-wc { padding: 50px 0 80px; }
.single-product div.product { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: start; max-width: 1200px; margin: 0 auto; }
.single-product div.product .woocommerce-product-gallery { width: 100% !important; float: none !important; border-radius: 18px; overflow: hidden; background: var(--nme-bg-soft); }
.single-product div.product .summary { width: 100% !important; float: none !important; padding: 0 !important; }
.single-product div.product .product_title { font-family: var(--nme-font-h) !important; font-size: clamp(1.8rem, 3vw, 2.6rem) !important; line-height: 1.1 !important; margin: 0 0 14px !important; font-weight: 600 !important; }
.single-product div.product .woocommerce-product-rating { margin-bottom: 18px !important; }
.single-product div.product .price { font-family: var(--nme-font-h) !important; font-size: 1.6rem !important; color: var(--nme-primary) !important; font-weight: 700 !important; margin-bottom: 24px !important; }
.single-product div.product .woocommerce-product-details__short-description { font-size: 1rem; color: var(--nme-muted); line-height: 1.65; padding-bottom: 20px; margin-bottom: 24px; border-bottom: 1px solid var(--nme-border); }
.single-product div.product .cart { padding: 24px 0 !important; border-bottom: 1px solid var(--nme-border) !important; margin-bottom: 28px !important; display: flex !important; gap: 14px !important; align-items: center !important; flex-wrap: wrap !important; }
.single-product div.product .quantity .qty { width: 70px; padding: 12px 14px !important; border-radius: 12px !important; border: 1px solid var(--nme-border); font-size: 1rem; }
.single-product div.product form.cart .button { background: var(--nme-primary) !important; color: #fff !important; padding: 14px 32px !important; border-radius: 999px !important; font-weight: 700 !important; letter-spacing: 0.04em; font-size: 0.95rem !important; }
.single-product div.product form.cart .button:hover { background: var(--nme-accent) !important; }
.single-product div.product .product_meta { padding-top: 18px; font-size: 0.85rem; color: var(--nme-muted); }
.single-product div.product .product_meta > span { display: block; margin-bottom: 6px; }
.single-product div.product .product_meta a { color: var(--nme-primary); }

.nme-trust-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 26px 0; padding: 20px 0; border-top: 1px solid var(--nme-border); border-bottom: 1px solid var(--nme-border); }
.nme-trust-strip > div { font-size: 0.82rem; color: var(--nme-muted); display: flex; align-items: center; gap: 8px; }
.nme-trust-strip strong { display: block; color: var(--nme-text); font-size: 0.88rem; }

.woocommerce-tabs { margin-top: 80px !important; max-width: 1200px; margin-left: auto; margin-right: auto; }
.woocommerce-tabs .tabs { display: flex; gap: 0 !important; border-bottom: 1px solid var(--nme-border) !important; flex-wrap: wrap; padding-left: 0 !important; }
.woocommerce-tabs .tabs li { background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-tabs .tabs li a { padding: 18px 28px !important; font-family: var(--nme-font-h); font-weight: 600; color: var(--nme-muted) !important; font-size: 0.95rem; }
.woocommerce-tabs .tabs li.active a { color: var(--nme-primary) !important; }
.woocommerce-tabs .tabs li.active a::after { content: ""; position: absolute; bottom: -1px; left: 28px; right: 28px; height: 3px; background: var(--nme-accent); }
.woocommerce-tabs .panel { padding: 36px 0 !important; max-width: 760px; line-height: 1.75; }
.woocommerce-tabs .panel h2 { font-family: var(--nme-font-h); font-size: 1.4rem !important; margin-top: 0 !important; font-weight: 600; }

@media (max-width: 860px) {
        .single-product div.product { grid-template-columns: 1fr; gap: 32px; }
        .nme-trust-strip { grid-template-columns: 1fr; gap: 8px; }
        .woocommerce-tabs .tabs li a { padding: 14px 18px !important; font-size: 0.88rem; }
}

/* ============================================================
   NME v1.5 — Sticky banner (lead magnet)
   ============================================================ */
.nme-banner { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(120%); z-index: 999; width: min(720px, calc(100vw - 32px)); background: var(--nme-primary); color: #fff; border-radius: 20px; box-shadow: 0 30px 70px -20px rgba(15,23,42,0.6); padding: 24px 28px; transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s; opacity: 0; }
.nme-banner.is-visible { transform: translateX(-50%) translateY(0); opacity: 1; }
.nme-banner-inner { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; align-items: center; position: relative; }
.nme-banner-text { padding-right: 24px; }
.nme-banner-kicker { display: inline-block; font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nme-accent); font-weight: 700; margin-bottom: 6px; }
.nme-banner-title { font-family: var(--nme-font-h); font-size: 1.05rem; line-height: 1.25; margin: 0 0 6px; font-weight: 600; color: #fff; }
.nme-banner-sub { font-size: 0.84rem; color: rgba(255,255,255,0.78); margin: 0; line-height: 1.4; }
.nme-banner-form { display: flex; gap: 8px; }
.nme-banner-form input { flex: 1; padding: 12px 16px; border-radius: 999px; border: 0; font-size: 0.92rem; color: var(--nme-text); background: #fff; outline: 2px solid transparent; transition: outline 0.2s; }
.nme-banner-form input:focus { outline: 2px solid var(--nme-accent); }
.nme-banner-cta { padding: 12px 22px; background: var(--nme-accent); color: #fff; border: 0; border-radius: 999px; font-weight: 700; font-size: 0.86rem; cursor: pointer; transition: background 0.2s, transform 0.15s; white-space: nowrap; text-decoration: none; display: inline-block; line-height: 1.2; }
.nme-banner-cta:hover:not(:disabled) { background: #fff; color: var(--nme-primary); transform: translateY(-2px); }
.nme-banner-cta:disabled { opacity: 0.6; cursor: wait; }
.nme-banner-close { position: absolute; top: -6px; right: -8px; background: rgba(255,255,255,0.14); border: 0; color: #fff; width: 32px; height: 32px; border-radius: 50%; cursor: pointer; font-size: 1.2rem; line-height: 1; transition: background 0.2s; }
.nme-banner-close:hover { background: rgba(255,255,255,0.28); }
.nme-banner-legal { grid-column: 1 / -1; font-size: 0.7rem; color: rgba(255,255,255,0.55); margin: 4px 0 0; line-height: 1.4; }
.nme-banner-result { grid-column: 1 / -1; padding: 14px 16px; background: rgba(255,255,255,0.08); border-radius: 12px; }
.nme-banner-success { font-size: 0.92rem; font-weight: 600; margin: 0 0 8px; color: #fff; }
.nme-banner-error { font-size: 0.88rem; color: #FFC2C2; margin: 0; }
.nme-banner-coupon { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; }
.nme-banner-coupon span { font-family: var(--nme-font-h); font-weight: 700; font-size: 1.2rem; letter-spacing: 0.05em; background: var(--nme-accent); padding: 8px 16px; border-radius: 8px; }
.nme-banner-coupon button { background: transparent; border: 1px solid rgba(255,255,255,0.4); color: #fff; padding: 8px 16px; border-radius: 8px; cursor: pointer; font-size: 0.82rem; font-weight: 600; transition: background 0.2s; }
.nme-banner-coupon button:hover { background: rgba(255,255,255,0.15); }
.nme-banner-result small { font-size: 0.78rem; color: rgba(255,255,255,0.7); }

@media (max-width: 720px) {
        .nme-banner { width: 100%; left: 0; right: 0; transform: none; padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px)); border-radius: 16px 16px 0 0; bottom: 0; box-shadow: 0 -16px 40px -10px rgba(15,23,42,0.5); max-height: 78vh; overflow-y: auto; }
        .nme-banner.is-visible { transform: none; }
        .nme-banner-inner { grid-template-columns: 1fr; gap: 10px; }
        .nme-banner-text { padding-right: 40px; }
        .nme-banner-kicker { font-size: 0.62rem; margin-bottom: 4px; }
        .nme-banner-title { font-size: 0.95rem; line-height: 1.2; }
        .nme-banner-sub { font-size: 0.78rem; }
        /* 🆕 Banner móvil: el form pasa a multi-fila (wrap). Nombre + Apellidos
           comparten la primera línea al 50/50, email ocupa toda la segunda línea
           y CTA toda la tercera, así nada queda apretado en móvil pequeño. */
        .nme-banner-form {
                display: flex;
                flex-wrap: wrap;
                gap: 8px;
                width: 100%;
        }
        .nme-banner-form input {
                box-sizing: border-box;
                padding: 12px 14px;
                font-size: 0.92rem;
                min-width: 0;
                width: 100%;
                flex: 1 1 100%;
        }
        /* Si el admin tiene firstname Y lastname activos, los ponemos 50/50. */
        .nme-banner-form input#nme-banner-firstname,
        .nme-banner-form input#nme-banner-lastname {
                flex: 1 1 calc(50% - 4px);
                width: calc(50% - 4px);
                min-width: 0;
        }
        .nme-banner-cta {
                box-sizing: border-box;
                padding: 13px 16px;
                font-size: 0.92rem;
                width: 100%;
                flex: 1 1 100%;
                text-align: center;
        }
        .nme-banner-close { top: 4px; right: 4px; width: 30px; height: 30px; background: rgba(255,255,255,0.18); }
        .nme-banner-legal { font-size: 0.66rem; margin-top: 2px; line-height: 1.4; }
        .nme-banner-coupon span { font-size: 1.05rem; padding: 6px 12px; }
        .nme-banner-terms { font-size: 0.72rem !important; }
}
/* 🆕 Móviles ultra-estrechos tipo Z Fold cerrado (~280-380px): nombre + apellidos
   también se apilan a 100% para que se lean correctamente. */
@media (max-width: 380px) {
        .nme-banner { padding: 14px 12px calc(14px + env(safe-area-inset-bottom, 0px)); }
        .nme-banner-form input#nme-banner-firstname,
        .nme-banner-form input#nme-banner-lastname {
                flex: 1 1 100%;
                width: 100%;
        }
        .nme-banner-title { font-size: 0.92rem; }
        .nme-banner-sub { font-size: 0.74rem; }
        .nme-banner-form input { padding: 11px 12px; font-size: 0.88rem; }
        .nme-banner-cta { padding: 12px 14px; font-size: 0.88rem; }
}
@media (min-width: 721px) {
        .nme-banner { transform: translateX(-50%) translateY(120%); }
        .nme-banner.is-visible { transform: translateX(-50%) translateY(0); }
}

/* ============================================================
   NME v1.6 — CMP Cookies (RGPD/AEPD)
   ============================================================ */
.nme-cmp { position: fixed; inset: 0; pointer-events: none; z-index: 9998; }
/* FIX P0: el atributo HTML [hidden] debe ocultar realmente el contenedor y el modal,
   para que NO intercepten clicks cuando están cerrados (bug: display:flex sobreescribía [hidden]). */
.nme-cmp[hidden],
.nme-cmp-banner[hidden],
.nme-cmp-modal[hidden] { display: none !important; }
.nme-cmp-banner { pointer-events: auto; position: fixed; left: 16px; right: 16px; bottom: 16px; max-width: 720px; margin: 0 auto; background: #fff; border-radius: 16px; box-shadow: 0 30px 80px -20px rgba(15,23,42,0.45); padding: 22px 26px; border: 1px solid var(--nme-border); transform: translateY(140%); opacity: 0; transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s; }
.nme-cmp-banner.is-visible { transform: translateY(0); opacity: 1; }
.nme-cmp-banner-inner { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; }
.nme-cmp-title { font-family: var(--nme-font-h); font-size: 1rem; margin: 0 0 6px; font-weight: 600; color: var(--nme-text); }
.nme-cmp-body { font-size: 0.84rem; line-height: 1.5; color: var(--nme-muted); margin: 0; }
.nme-cmp-policy { color: var(--nme-primary); text-decoration: underline; text-underline-offset: 3px; }
.nme-cmp-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.nme-cmp-btn { padding: 10px 18px; border-radius: 999px; font-size: 0.84rem; font-weight: 600; cursor: pointer; border: 0; font-family: inherit; transition: background 0.2s, color 0.2s, transform 0.15s; white-space: nowrap; }
.nme-cmp-btn-primary { background: var(--nme-primary); color: #fff; }
.nme-cmp-btn-primary:hover { background: var(--nme-accent); }
.nme-cmp-btn-ghost { background: var(--nme-bg-soft); color: var(--nme-text); border: 1px solid var(--nme-border); }
.nme-cmp-btn-ghost:hover { background: #fff; border-color: var(--nme-primary); color: var(--nme-primary); }

/* Modal preferencias */
.nme-cmp-modal { pointer-events: auto; position: fixed; inset: 0; background: rgba(15,23,42,0.5); display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; transition: opacity 0.25s; backdrop-filter: blur(3px); z-index: 9999; }
.nme-cmp-modal.is-visible { opacity: 1; }
.nme-cmp-modal-content { background: #fff; border-radius: 18px; width: 100%; max-width: 560px; max-height: 86vh; display: flex; flex-direction: column; box-shadow: 0 40px 100px -20px rgba(15,23,42,0.55); }
.nme-cmp-modal-head { padding: 22px 24px; border-bottom: 1px solid var(--nme-border); display: flex; justify-content: space-between; align-items: center; }
.nme-cmp-modal-head h3 { font-family: var(--nme-font-h); font-size: 1.15rem; margin: 0; font-weight: 600; }
.nme-cmp-close { background: var(--nme-bg-soft); border: 0; width: 32px; height: 32px; border-radius: 50%; cursor: pointer; font-size: 1.3rem; line-height: 1; transition: background 0.2s; color: var(--nme-text); }
.nme-cmp-close:hover { background: var(--nme-border); }
.nme-cmp-modal-body { padding: 18px 24px; overflow-y: auto; flex: 1; }
.nme-cmp-cat { padding: 16px 0; border-bottom: 1px solid var(--nme-border); }
.nme-cmp-cat:last-of-type { border-bottom: 0; }
.nme-cmp-cat-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.nme-cmp-cat-head h4 { font-family: var(--nme-font-h); font-size: 0.98rem; margin: 0; font-weight: 600; }
.nme-cmp-cat p { font-size: 0.84rem; line-height: 1.55; color: var(--nme-muted); margin: 0; }
.nme-cmp-switch { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; }
.nme-cmp-switch input { opacity: 0; width: 0; height: 0; }
.nme-cmp-slider { position: absolute; cursor: pointer; inset: 0; background: var(--nme-border); border-radius: 24px; transition: background 0.25s; }
.nme-cmp-slider::before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform 0.25s; box-shadow: 0 2px 4px rgba(0,0,0,0.15); }
.nme-cmp-switch input:checked + .nme-cmp-slider { background: var(--nme-accent); }
.nme-cmp-switch input:checked + .nme-cmp-slider::before { transform: translateX(20px); }
.nme-cmp-switch input:disabled + .nme-cmp-slider { background: color-mix(in srgb, var(--nme-primary) 60%, var(--nme-border)); cursor: not-allowed; opacity: 0.7; }
.nme-cmp-disclaimer { font-size: 0.74rem; padding: 14px 16px; background: var(--nme-bg-soft); border-radius: 10px; color: var(--nme-muted); line-height: 1.55; margin: 18px 0 0; border-left: 3px solid var(--nme-accent); }
.nme-cmp-modal-foot { padding: 18px 24px; border-top: 1px solid var(--nme-border); display: flex; gap: 10px; justify-content: flex-end; }
body.nme-cmp-open { overflow: hidden; }

/* Botón flotante reabrir */
.nme-cmp-reopen { position: fixed; left: 16px; bottom: 16px; z-index: 65; background: #fff; border: 1px solid var(--nme-border); padding: 8px 12px; border-radius: 999px; cursor: pointer; display: flex; align-items: center; gap: 6px; font-size: 0.78rem; font-weight: 600; color: var(--nme-text); box-shadow: 0 10px 28px -10px rgba(15,23,42,0.25); transition: transform 0.2s, box-shadow 0.2s; pointer-events: auto; }
.nme-cmp-reopen:hover { transform: translateY(-2px); box-shadow: 0 16px 36px -12px rgba(15,23,42,0.3); }
.nme-cmp-reopen svg { color: var(--nme-primary); }

@media (max-width: 720px) {
        .nme-cmp-banner { left: 0; right: 0; bottom: 0; max-width: 100%; border-radius: 16px 16px 0 0; padding: 18px 18px calc(18px + env(safe-area-inset-bottom, 0px)); }
        .nme-cmp-banner-inner { grid-template-columns: 1fr; gap: 14px; }
        .nme-cmp-actions { justify-content: stretch; }
        .nme-cmp-actions .nme-cmp-btn { flex: 1; min-width: 0; padding: 11px 10px; font-size: 0.78rem; }
        .nme-cmp-modal-content { max-height: 92vh; border-radius: 16px 16px 0 0; align-self: flex-end; }
        .nme-cmp-modal { align-items: flex-end; padding: 0; }
        /* En móvil ocultamos el icono persistente de cookies: ya está disponible
           en el footer ("Configurar cookies") y libera el espacio del sticky CTA. */
        .nme-cmp-reopen { display: none !important; }
}

/* =========================================================
 * NME · LOTE v1.7.0 — Estilo "laboratorio" cuadrado + Stanger
 * - Quita redondeos exagerados (>8px) → bordes rectos/sutiles.
 * - Fuentes Stanger empaquetadas con el tema.
 * - Botón Calculadora en header.
 * ========================================================= */

/* Fuente del logo de la marca (Stanger). Empaquetada en assets/fonts/. */
@font-face {
        font-family: 'Stanger';
        src: url('../fonts/Stanger-Regular.otf') format('opentype');
        font-weight: 400 700;
        font-style: normal;
        font-display: swap;
}
@font-face {
        font-family: 'Stanger';
        src: url('../fonts/Stanger-Italic.otf') format('opentype');
        font-weight: 400 700;
        font-style: italic;
        font-display: swap;
}

/* === Estilo cuadrado "laboratorio médico" ===
   Sobreescribe todos los radios >8px del CSS anterior. */
:root { --nme-radius: 2px; --nme-radius-sm: 0px; --nme-radius-md: 2px; --nme-radius-lg: 4px; }

.btn,
.nme-megamenu-cta,
.mega-feature-cta,
.nme-quiz-cta,
.nme-banner-cta,
.nme-cmp-btn,
.nme-cmp-banner,
.nme-cmp-modal-content,
.nme-cmp-reopen,
.header-calculadora,
.post-card, .pa-card,
.pa-toc, .pa-faq details, .pa-product-card,
.single-post__hero, .single-page__hero,
.footer-disclaimer,
.newsletter-card, .newsletter-form input,
.search-field, .search-submit,
.page-numbers li a, .page-numbers li span, .pagination .page-numbers,
.hero-banner, .brand-story-media,
.woocommerce ul.products li.product,
.woocommerce ul.products li.product .button,
.woocommerce span.onsale,
.woocommerce .quantity .qty,
.woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit,
.nme-ficha-list li,
.header-actions button, .header-actions a {
        border-radius: var(--nme-radius) !important;
}

/* El carrito (badge num) puede quedar circular (mejor UX). */
.header-cart .cart-count { border-radius: 50% !important; }

/* Hero circular forzado a cuadrado sutil. */
.hero__media, .hero__shape { border-radius: var(--nme-radius-lg) !important; }
.pa-hero__media { border-radius: var(--nme-radius) !important; }
.pa-benefits li::before { border-radius: 0 !important; transform: rotate(45deg); }
.newsletter-card::before { display: none; }

/* === Header link "Calculadora" === */
.header-calculadora {
        display: inline-flex; align-items: center; gap: 6px;
        padding: 8px 14px;
        background: transparent; color: var(--nme-text);
        border: 1px solid var(--nme-border) !important;
        font-size: 0.86rem; font-weight: 600;
        font-family: var(--nme-font-ui, inherit);
        text-decoration: none;
        transition: background 0.2s, color 0.2s, border-color 0.2s;
        height: 38px; width: auto !important;
}
.header-calculadora:hover {
        background: var(--nme-primary); color: #fff;
        border-color: var(--nme-primary) !important;
}
.header-calculadora svg { color: var(--nme-accent); }
.header-calculadora:hover svg { color: #fff; }

/* === Header siempre fijo: compensa altura del topbar si existe === */
.site-header { transition: none; }
.site-header__inner { min-height: 60px; }


/* =========================================================
 * NME · HERO SLIDER (v1.7.0)
 * - Hasta 3 slides con texto + imagen.
 * - Autoplay 6s, controles, dots, accesible.
 * ========================================================= */
.nme-hero-slider { position: relative; padding: 0; overflow: hidden; background: var(--nme-bg); }
/* === Grid stacking pattern ===
   Todas las slides comparten la celda 1/1 → el contenedor adopta la altura
   de la slide más alta (auto). Antes usábamos position:absolute + min-height
   fijo, lo cual hacía que en móvil/Z Fold el CTA quedara DEBAJO de los dots
   (porque el contenido natural superaba el min-height). Con grid el botón
   siempre queda dentro del padding-bottom reservado para los dots. */
.nme-hero-slides { position: relative; display: grid; }
.nme-hero-slide { grid-column: 1; grid-row: 1; opacity: 0; pointer-events: none; visibility: hidden; transition: opacity .55s ease, visibility 0s linear .55s; padding: 90px 0 110px; display: flex; align-items: center; width: 100%; min-width: 0; }
.nme-hero-slide.is-active { opacity: 1; pointer-events: auto; visibility: visible; transition: opacity .55s ease, visibility 0s linear 0s; }
.nme-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 56px; width: 100%; }
.nme-hero-grid.no-media { grid-template-columns: 1fr; text-align: center; max-width: 880px; margin: 0 auto; }
.nme-hero-text h1 { font-family: var(--nme-font-h); font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.04; letter-spacing: -0.02em; margin: 0 0 22px; font-weight: 600; }
.nme-hero-text h1 em { font-style: italic; color: var(--nme-accent); }
.nme-hero-text .nme-hero-intro { font-size: clamp(1rem, 1.4vw, 1.18rem); color: var(--nme-muted); margin: 0 0 28px; line-height: 1.55; max-width: 56ch; }
.nme-hero-grid.no-media .nme-hero-intro { margin-left: auto; margin-right: auto; }
.nme-hero-text .nme-hero-cta { display: inline-flex; align-items: center; gap: 8px; padding: 14px 28px; background: var(--nme-primary); color: #fff; font-weight: 700; font-size: 0.95rem; text-decoration: none; transition: background .2s, transform .15s; border: 0; }
.nme-hero-text .nme-hero-cta:hover { background: var(--nme-accent); transform: translateY(-2px); }
.nme-hero-media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--nme-bg-soft); display: block; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease; }
.nme-hero-media:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -16px rgba(15,23,42,.28); }
.nme-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.nme-hero-media:hover img { transform: scale(1.02); }
/* Arrows con borde y sombra reforzados para que destaquen tanto sobre la zona
   blanca del texto como sobre la imagen oscura del producto (visibles en tablet
   incluido Z Fold abierto ≈ 717-884 px). */
.nme-hero-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 1.5px solid var(--nme-primary); background: #fff; color: var(--nme-primary); font-size: 22px; line-height: 1; cursor: pointer; z-index: 5; transition: background .2s, color .2s, transform .15s; padding: 0; border-radius: 999px; box-shadow: 0 4px 14px -3px rgba(15,23,42,.22); display: inline-flex; align-items: center; justify-content: center; }
.nme-hero-arrow:hover { background: var(--nme-primary); color: #fff; transform: translateY(-50%) scale(1.05); }
.nme-hero-arrow-prev { left: 16px; }
.nme-hero-arrow-next { right: 16px; }
.nme-hero-dots { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 4; }
.nme-hero-dot { width: 28px; height: 4px; background: var(--nme-border); border: 0; cursor: pointer; padding: 0; transition: background .2s, width .2s; }
.nme-hero-dot.is-active { background: var(--nme-primary); width: 42px; }

/* Tablet (Z Fold abierto ≈ 717-884 px, tablets normales 768-1024 px) — arrows
   ligeramente más pequeños pero siempre visibles. */
@media (max-width: 1024px) {
        .nme-hero-arrow { width: 42px; height: 42px; }
        .nme-hero-arrow-prev { left: 12px; }
        .nme-hero-arrow-next { right: 12px; }
}
@media (max-width: 820px) {
        .nme-hero-slide { padding: 70px 0 130px; }
        .nme-hero-grid { grid-template-columns: 1fr; text-align: center; gap: 28px; }
        .nme-hero-grid .nme-hero-intro { margin-left: auto; margin-right: auto; }
        .nme-hero-media { order: -1; aspect-ratio: 16/9; }
        .nme-hero-arrow { width: 40px; height: 40px; font-size: 20px; }
        .nme-hero-arrow-prev { left: 10px; }
        .nme-hero-arrow-next { right: 10px; }
        /* Más espacio bajo el CTA para evitar que choque con los dots en pantallas
           estrechas con título de 3+ líneas (Z Fold cerrado 344px, móviles). */
        .nme-hero-text .nme-hero-cta { margin-bottom: 8px; }
}
/* Z Fold cerrado / móviles muy estrechos (<420px): aún más aire. */
@media (max-width: 420px) {
        .nme-hero-slide { padding: 60px 0 140px; }
        .nme-hero-text h1 { font-size: clamp(1.9rem, 8vw, 2.3rem); }
        .nme-hero-dots { bottom: 28px; }
}
/* Móvil estrecho (Samsung S26 Ultra ≈ 480px, iPhone 14 Pro Max ≈ 430px, etc.):
   las flechas vivían a top:50% lo que las hacía caer ENCIMA del título (porque
   la imagen está arriba y el texto debajo en este breakpoint). FIX: las movemos
   al borde inferior del slider, alineadas con los dots — patrón móvil estándar
   [‹  • • •  ›] que elimina cualquier solapamiento con el texto. */
@media (max-width: 640px) {
        .nme-hero-arrow {
                top: auto;
                bottom: 18px;
                transform: none;
                width: 36px;
                height: 36px;
                font-size: 18px;
        }
        .nme-hero-arrow:hover { transform: scale(1.05); }
        .nme-hero-arrow-prev { left: 16px; }
        .nme-hero-arrow-next { right: 16px; }
        /* Reservamos algo más de bottom-padding para no solapar dots con arrows. */
        .nme-hero-slide { padding-bottom: 96px; }
        .nme-hero-dots { bottom: 30px; }
}

/* === Cápsula esquemática (ingredientes sin imagen) === */
.pa-card__media { position: relative; aspect-ratio: 1/1; overflow: hidden; display: block; }
.pa-card__media .pa-capsule { display: block; width: 100%; height: 100%; }
.pa-card--has-capsule .pa-card__placeholder { display: none; }
.pa-card__cat { display: inline-block; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.16em; font-weight: 700; margin-bottom: 8px; }
.pa-hero__media--capsule { display: flex; align-items: center; justify-content: center; padding: 30px; }
.pa-hero__media--capsule .pa-capsule { max-width: 320px; max-height: 320px; }
.pa-card__fam-pill{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--fam-c,#E2E8F0);border-radius:999px;padding:4px 10px 4px 8px;font-size:10.5px;font-weight:700;color:var(--fam-c,#1E3A5F);text-decoration:none;line-height:1.2;letter-spacing:0.01em;z-index:3;max-width:calc(100% - 20px);box-shadow:0 2px 8px -3px rgba(15,23,42,0.18);transition:all .2s;}
.pa-card__fam-pill--body{display:none;}
.is-list .pa-card__fam-pill--media{display:none !important;}
.is-list .pa-card__fam-pill--body{display:inline-flex !important;}
.pa-card__fam-pill:hover{background:var(--fam-c,#1E3A5F);color:#fff;transform:translateY(-1px);box-shadow:0 6px 14px -6px var(--fam-c,#1E3A5F);}
.pa-card__fam-pill:hover .pa-card__fam-dot{background:#fff !important;}
.pa-card__fam-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}




/* =========================================================
 * NME · LOTE v1.7.1 — Overrides DEFINITIVOS (max priority)
 * Estos selectores ganan a WooCommerce y a cualquier plugin
 * porque están al final del archivo y usan !important.
 * ========================================================= */

/* === HEADER 100% FIJO sin saltos === */
#masthead.site-header,
header#masthead.site-header,
.site-header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        transform: none !important;
        transition: none !important;
}
body.admin-bar #masthead.site-header,
body.admin-bar header#masthead.site-header { top: 32px !important; }
@media (max-width: 782px) {
        body.admin-bar #masthead.site-header { top: 46px !important; }
}

/* Si hay topbar, el header se posiciona DEBAJO de la topbar. */
.nme-topbar { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 52 !important; }
body.admin-bar .nme-topbar { top: 32px !important; }

/* === Padding-top global: el contenido NO se pega al header fijo === */
:root { --nme-header-h: 88px; }
body { padding-top: var(--nme-header-h) !important; }
body.admin-bar { padding-top: calc(var(--nme-header-h) + 32px) !important; }
body:has(.nme-topbar) { padding-top: calc(var(--nme-header-h) + 40px) !important; }
body.admin-bar:has(.nme-topbar) { padding-top: calc(var(--nme-header-h) + 32px + 40px) !important; }
@media (max-width: 782px) {
        body.admin-bar { padding-top: calc(var(--nme-header-h) + 46px) !important; }
}
/* Aire entre header y heros / títulos de producto */
.woocommerce div.product .product_title,
.single-product .product_title,
.archive-hero, .pa-hero, .nme-hero, .nme-hero-slider,
.single-post__hero, .single-page__hero,
.site-main > .container:first-child,
main#main > .container:first-child { padding-top: 24px !important; }
/* Anchors respetan header */
html { scroll-padding-top: calc(var(--nme-header-h) + 20px); }

/* === BORDES CUADRADOS (override final, gana a WooCommerce) === */
.btn, .btn-primary, .btn-ghost, .btn-accent,
.nme-hero-cta,
.nme-megamenu-cta, .mega-feature-cta,
.nme-quiz-cta, .nme-quiz-option, .nme-quiz-restart,
.nme-banner-cta, .nme-banner-input, .nme-banner-close,
.nme-cmp-btn, .nme-cmp-banner, .nme-cmp-modal-content, .nme-cmp-reopen,
.post-card, .pa-card, .pa-card__media,
.pa-toc, .pa-faq details, .pa-product-card,
.pa-warning, .pa-product-card img,
.single-post__hero, .single-page__hero, .prose img,
.footer-disclaimer, .newsletter-card, .newsletter-form input,
.search-field, .search-submit,
.page-numbers li a, .page-numbers li span, .pagination .page-numbers,
.hero-banner, .hero-banner-cta, .brand-story-media,
.nme-ficha-list li,
.nme-cmp-modal-foot button,
input[type="text"], input[type="email"], input[type="search"], input[type="number"], input[type="tel"], input[type="url"], input[type="password"],
select, textarea,
button.button, a.button, input.button, input[type="submit"],
.woocommerce ul.products li.product,
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .price,
.woocommerce span.onsale,
.woocommerce .quantity .qty,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-cart-form table.cart,
.woocommerce table.shop_table,
.woocommerce-page table.shop_table,
.woocommerce-checkout #payment,
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment div.payment_box,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-MyAccount-navigation ul li a,
.woocommerce div.product form.cart .button,
.woocommerce div.product p.price,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-dropdown {
        border-radius: 2px !important;
}

/* Imagen redonda del hero original → fuera. */
.hero__media,
.hero__shape,
.pa-hero__media,
.newsletter-card,
.newsletter-card::before {
        border-radius: 2px !important;
}
.newsletter-card::before { display: none !important; }

/* El badge contador del carrito puede seguir circular (UX) — opt-in. */
.header-cart .cart-count,
.pa-benefits li::before {
        border-radius: 50% !important;
}
/* "Bolita" del listado de beneficios → cuadrada estilo lab. */
.pa-benefits li::before { border-radius: 0 !important; transform: rotate(45deg); }

/* Inputs, selects, textarea: bordes cuadrados estilo formulario clínico. */
input, select, textarea, button { border-radius: 2px !important; }

/* === Quitar el link Calculadora del header (no se usa) === */
.header-calculadora { display: none !important; }


/* =========================================================
 * NME · FOOTER v1.8.0 + LANDING EN CONSTRUCCIÓN
 * ========================================================= */

.site-footer { background: var(--nme-primary, #1E3A5F); color: rgba(255,255,255,0.82); padding: 70px 0 0; margin-top: 100px; font-size: 0.92rem; }
.site-footer a { color: rgba(255,255,255,0.82); text-decoration: none; transition: color .2s; }
.site-footer a:hover { color: #fff; }

.footer-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding-bottom: 50px; border-bottom: 1px solid rgba(255,255,255,0.12); }
.footer-trust__item { display: flex; flex-direction: column; gap: 4px; }
.footer-trust__item strong { color: #fff; font-weight: 700; font-size: 0.95rem; }
.footer-trust__item span { font-size: 0.82rem; color: rgba(255,255,255,0.6); }

.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 50px; padding: 60px 0 40px; }
.footer-col h5 { font-family: var(--nme-font-h); color: #fff; font-size: 1rem; margin: 0 0 18px; font-weight: 700; }
.footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; }
.footer-col li a { font-size: 0.9rem; }
.footer-col--brand .site-title, .footer-col--brand .custom-logo-link img { color: #fff; max-height: 56px; width: auto; margin-bottom: 18px; }
.footer-about { color: rgba(255,255,255,0.7); line-height: 1.6; margin: 0 0 18px; font-size: 0.9rem; }
.footer-legal-data { font-style: normal; font-size: 0.82rem; color: rgba(255,255,255,0.6); line-height: 1.65; margin: 0 0 18px; }
.footer-legal-data strong { color: rgba(255,255,255,0.85); }

.footer-social { display: flex; gap: 10px; list-style: none; padding: 0; margin: 0; }
.footer-social a { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.15); border-radius: 2px !important; transition: background .2s, border-color .2s; }
.footer-social a:hover { background: var(--nme-accent, #5B9B8A); border-color: var(--nme-accent, #5B9B8A); color: #fff; }

.footer-disclaimer { background: rgba(255,255,255,0.04); border-left: 3px solid var(--nme-accent, #5B9B8A); padding: 16px 22px; font-size: 0.78rem; color: rgba(255,255,255,0.65); line-height: 1.55; margin: 0 0 30px; }
.footer-payments { font-size: 0.82rem; color: rgba(255,255,255,0.55); padding: 16px 0; border-top: 1px solid rgba(255,255,255,0.08); border-bottom: 1px solid rgba(255,255,255,0.08); }
.footer-payments span { color: #fff; font-weight: 600; margin-right: 8px; }

.footer-bottom { display: flex; justify-content: space-between; align-items: center; padding: 28px 0; gap: 24px; flex-wrap: wrap; font-size: 0.82rem; color: rgba(255,255,255,0.55); }
.legal-menu { list-style: none; padding: 0; margin: 0; display: flex; gap: 22px; flex-wrap: wrap; }
.legal-menu a { font-size: 0.82rem; }

@media (max-width: 920px) {
        .footer-trust { grid-template-columns: 1fr 1fr; gap: 24px; padding-bottom: 36px; }
        .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; padding: 40px 0 28px; }
        .footer-col--brand { grid-column: 1 / -1; }
        .footer-bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 540px) {
        .footer-grid { grid-template-columns: 1fr; }
        .footer-trust { grid-template-columns: 1fr; }
}

/* === LANDING EN CONSTRUCCIÓN === */
.nme-uc-hero { padding: 80px 0 40px; text-align: center; }
.nme-uc-eyebrow { font-size: 0.74rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nme-accent, #5B9B8A); font-weight: 700; margin: 0 0 16px; }
.nme-uc-title { font-family: var(--nme-font-h); font-size: clamp(2.4rem, 5vw, 4rem); margin: 0 0 18px; line-height: 1.05; letter-spacing: -0.02em; font-weight: 600; }
.nme-uc-lede { font-size: clamp(1rem, 1.4vw, 1.18rem); color: var(--nme-muted); max-width: 60ch; margin: 0 auto 24px; line-height: 1.55; }
.nme-uc-alert { display: inline-block; padding: 12px 22px; font-size: 0.95rem; margin-top: 12px; border-radius: 2px; }
.nme-uc-alert--ok { background: color-mix(in srgb, var(--nme-accent, #5B9B8A) 12%, #fff); color: var(--nme-accent, #5B9B8A); border: 1px solid var(--nme-accent, #5B9B8A); }
.nme-uc-alert--err { background: #fef2f2; color: #b91c1c; border: 1px solid #b91c1c; }

.nme-uc-grid .container { display: grid; grid-template-columns: 1.1fr 1fr; grid-template-rows: auto auto; gap: 28px; padding: 24px 0 80px; }
.nme-uc-card { background: var(--nme-bg, #fff); border: 1px solid var(--nme-border); padding: 32px; border-radius: 2px; }
.nme-uc-card h2 { font-family: var(--nme-font-h); font-size: 1.45rem; margin: 0 0 14px; font-weight: 600; }
.nme-uc-card--map { grid-row: span 2; }
.nme-uc-card--map .nme-uc-map { margin-top: 12px; border-radius: 2px; overflow: hidden; }
.nme-uc-card--map iframe { display: block; min-height: 360px; }
.nme-uc-address { color: var(--nme-muted); margin: 0 0 10px; font-size: 0.92rem; }

.nme-uc-form { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.nme-uc-form input[type="text"], .nme-uc-form input[type="email"], .nme-uc-form textarea {
        padding: 12px 16px; border: 1px solid var(--nme-border); background: #fff; font-size: 0.95rem; font-family: inherit; color: var(--nme-text); border-radius: 2px !important;
}
.nme-uc-form input:focus, .nme-uc-form textarea:focus { outline: 2px solid var(--nme-accent, #5B9B8A); outline-offset: -1px; border-color: var(--nme-accent); }
.nme-uc-check { display: flex; gap: 10px; align-items: flex-start; font-size: 0.82rem; color: var(--nme-muted); line-height: 1.45; }
.nme-uc-check input { margin-top: 3px; }
.nme-uc-check a { color: var(--nme-primary); text-decoration: underline; }
.nme-uc-form button { margin-top: 6px; }

@media (max-width: 820px) {
        .nme-uc-grid .container { grid-template-columns: 1fr; }
        .nme-uc-card--map { grid-row: auto; }
}



/* =========================================================
 * NME · FAQ v1.9.0 — Home grid + Página completa con filtro
 * ========================================================= */

.nme-faq { padding: 80px 0; background: var(--nme-bg-soft, #F6F8FA); }
.nme-faq .nme-section-head { text-align: center; margin: 0 auto 40px; max-width: 700px; }
.nme-section-eyebrow { font-size: 0.74rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nme-accent, #5B9B8A); font-weight: 700; margin: 0 0 12px; }
.nme-section-lede { color: var(--nme-muted); font-size: 1rem; line-height: 1.55; margin: 14px 0 0; }
.nme-faq-grid { display: flex; flex-direction: column; max-width: 880px; margin: 0 auto; border: 1px solid var(--nme-border); background: #fff; }
.nme-faq-home-grid { display: flex; flex-direction: column; max-width: 880px; margin: 0 auto; border: 1px solid var(--nme-border); background: #fff; }
.nme-faq-grid .nme-faq-item,
.nme-faq-home-grid .nme-faq-item { background: #fff; border: 0; border-bottom: 1px solid var(--nme-border); padding: 0; transition: background .2s, box-shadow .2s; }
.nme-faq-grid .nme-faq-item:last-child,
.nme-faq-home-grid .nme-faq-item:last-child { border-bottom: 0; }
/* Zebra striping (filas alternas) */
.nme-faq-grid .nme-faq-item:nth-child(even),
.nme-faq-home-grid .nme-faq-item:nth-child(even) { background: #F1F5F9; }
.nme-faq-grid .nme-faq-item:hover,
.nme-faq-home-grid .nme-faq-item:hover { background: #E2E8F0; }
/* Estado abierto: azul tintado FUERTE para destacar (override del zebra) */
.nme-faq-grid .nme-faq-item[open],
.nme-faq-grid .nme-faq-item[open]:nth-child(even),
.nme-faq-home-grid .nme-faq-item[open],
.nme-faq-home-grid .nme-faq-item[open]:nth-child(even) { background: rgba(30, 58, 95, 0.18); box-shadow: inset 4px 0 0 var(--nme-primary, #1E3A5F); }
.nme-faq-item summary { padding: 18px 22px; font-weight: 600; font-size: 0.98rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 14px; color: var(--nme-text); line-height: 1.45; }
.nme-faq-item summary::-webkit-details-marker { display: none; }
.nme-faq-item summary:hover { color: var(--nme-primary); }
.nme-faq-item[open] summary { color: var(--nme-primary, #1E3A5F); font-weight: 700; }
/* Icono +/- (único, a la derecha). Círculo coloreado con símbolo dibujado por ::before. */
.nme-faq-icon { font-size: 0 !important; line-height: 0; width: 30px; height: 30px; flex-shrink: 0; position: relative; display: inline-block; border-radius: 50%; background: var(--nme-accent, #5B9B8A); color: #fff; transition: background .2s, transform .2s; }
.nme-faq-icon::before { content: "+"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 1.25rem; font-weight: 700; line-height: 1; color: #fff; }
.nme-faq-item[open] .nme-faq-icon { background: var(--nme-primary, #1E3A5F); }
.nme-faq-item[open] .nme-faq-icon::before { content: "−"; font-size: 1.45rem; }
.nme-faq-body { padding: 0 22px 22px; color: var(--nme-muted); line-height: 1.65; font-size: 0.94rem; }
.nme-faq-item[open] .nme-faq-body { color: #1E293B; }
.nme-faq-body p:first-child { margin-top: 0; }
.nme-faq-body ul, .nme-faq-body ol { padding-left: 22px; margin: 10px 0; }
.nme-faq-body li { margin-bottom: 5px; }
.nme-faq-body em { color: var(--nme-muted); font-size: 0.85rem; display: block; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--nme-border); font-style: italic; }
.nme-faq-cta-row { text-align: center; margin: 40px 0 0; }
.nme-faq-cta { display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px; background: transparent; color: var(--nme-primary); border: 1px solid var(--nme-primary); font-weight: 700; font-size: 0.92rem; text-decoration: none; transition: background .2s, color .2s; }
.nme-faq-cta:hover { background: var(--nme-primary); color: #fff; }
.nme-faq-disclaimer-home { max-width: 880px; margin: 36px auto 0; padding: 14px 18px; background: rgba(91, 155, 138, 0.06); border-left: 3px solid var(--nme-accent, #5B9B8A); font-size: 0.82rem; line-height: 1.55; color: var(--nme-muted); }
.nme-faq-empty-hint { text-align: center; color: var(--nme-muted); font-size: 0.88rem; padding: 30px; border: 1px dashed var(--nme-border); margin: 0 auto; max-width: 600px; }

/* === Página completa de FAQs === */
.nme-faq-page { max-width: 940px; margin: 0 auto; padding: 40px 0 80px; }
.nme-faq-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; justify-content: center; }
.nme-faq-chip { padding: 8px 18px; background: transparent; border: 1px solid var(--nme-border); color: var(--nme-text); font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: all .2s; }
.nme-faq-chip:hover { border-color: var(--nme-primary); color: var(--nme-primary); }
.nme-faq-chip.is-active { background: var(--nme-primary); color: #fff; border-color: var(--nme-primary); }
.nme-faq-chip span { opacity: 0.65; font-weight: 400; margin-left: 4px; }
.nme-faq-list--full { display: grid; grid-template-columns: 1fr; gap: 12px; }
.nme-faq-list--full .nme-faq-item { font-size: 1rem; }
.nme-faq-disclaimer { margin-top: 40px; padding: 22px 26px; background: rgba(91, 155, 138, 0.06); border-left: 3px solid var(--nme-accent, #5B9B8A); font-size: 0.88rem; line-height: 1.65; color: var(--nme-muted); }
.nme-faq-disclaimer strong { color: var(--nme-primary); }

@media (max-width: 740px) {
        .nme-faq-grid { grid-template-columns: 1fr; }
        .nme-faq-item summary { padding: 16px 18px; font-size: 0.94rem; }
        .nme-faq-body { padding: 0 18px 20px; }
}



/* =========================================================
 * NME · v1.10.0 — Checkout Button + Payment Icons
 * ========================================================= */

/* ===== Botón "Finalizar compra" del carrito ahora es un botón AZUL destacado ===== */
.woocommerce a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block button,
.wc-block-cart .wc-block-components-checkout-place-order-button,
.woocommerce-cart-form ~ .cart_totals .checkout-button,
a.wc-forward,
.woocommerce .cart-collaterals .checkout-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: var(--nme-primary, #1E3A5F) !important;
        color: #fff !important;
        font-weight: 700 !important;
        font-size: 1rem !important;
        letter-spacing: 0.02em !important;
        padding: 16px 28px !important;
        min-height: 52px !important;
        width: 100% !important;
        border: 0 !important;
        border-radius: 2px !important;
        text-decoration: none !important;
        text-transform: none !important;
        transition: background .2s, transform .15s, box-shadow .2s !important;
        box-shadow: 0 4px 14px -4px rgba(30, 58, 95, 0.35) !important;
        cursor: pointer !important;
}
.woocommerce a.checkout-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-cart .wc-block-components-checkout-place-order-button:hover,
a.wc-forward:hover {
        background: #16294A !important;
        color: #fff !important;
        transform: translateY(-1px) !important;
        box-shadow: 0 8px 22px -6px rgba(30, 58, 95, 0.5) !important;
}
/* Botón secundario (Continuar comprando) */
.woocommerce .return-to-shop .button,
.woocommerce-cart-form .button[name="update_cart"] {
        background: transparent !important;
        color: var(--nme-primary, #1E3A5F) !important;
        border: 1px solid var(--nme-primary, #1E3A5F) !important;
}

/* ===== Iconos de pago en el footer ===== */
.footer-payments {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 14px 18px !important;
        padding: 22px 0 !important;
        border-top: 1px solid rgba(255,255,255,0.08) !important;
        border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
.footer-payments-label {
        font-size: 0.78rem !important;
        color: rgba(255,255,255,0.6) !important;
        font-weight: 600 !important;
        letter-spacing: 0.06em !important;
        text-transform: uppercase;
        margin: 0 !important;
}
.footer-payments-list {
        list-style: none !important;
        display: inline-flex !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        padding: 0 !important;
        margin: 0 !important;
        align-items: center !important;
        overflow-x: auto !important;
        scrollbar-width: thin;
}
/* En móvil, los logos de pago HACEN WRAP y se centran (no más overflow horizontal). */
@media (max-width: 720px) {
        .footer-payments { flex-direction: column !important; align-items: center !important; gap: 8px !important; }
        .footer-payments-label { text-align: center !important; font-size: 0.78rem !important; }
        .footer-payments-list { flex-wrap: wrap !important; justify-content: center !important; overflow-x: visible !important; gap: 4px !important; max-width: 100% !important; padding: 0 8px !important; }
        .footer-pay-item { flex: 0 0 auto; }
        .footer-pay-item svg { width: 26px !important; height: 18px !important; }
}
@media (max-width: 380px) {
        .footer-payments-list { gap: 3px !important; }
        .footer-pay-item svg { width: 22px !important; height: 16px !important; }
}
.footer-pay-item {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: 30px;
        width: 46px;
        min-width: 46px;
        max-width: 46px;
        padding: 0;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.12);
        color: rgba(255, 255, 255, 0.92);
        border-radius: 2px !important;
        transition: background 0.2s, border-color 0.2s, transform 0.15s;
        cursor: help;
        flex: 0 0 46px;
}
.footer-pay-item:hover {
        background: var(--nme-accent, #5B9B8A);
        border-color: var(--nme-accent, #5B9B8A);
        color: #fff;
        transform: translateY(-1px);
}
.footer-pay-item svg {
        display: block;
        width: 32px !important;
        height: 20px !important;
        max-width: 32px !important;
        max-height: 20px !important;
}
/* Tooltip visible al hover (sobreescribe el style inline opacity:0) */
.footer-pay-item:hover .footer-pay-tooltip,
.footer-pay-item:focus-within .footer-pay-tooltip {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateX(-50%) translateY(0) !important;
        transition: opacity 0.2s, transform 0.2s;
}
.footer-pay-tooltip::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        border: 4px solid transparent;
        border-top-color: #0F172A;
}
@media (max-width: 540px) {
        .footer-pay-item { width: 38px; min-width: 38px; max-width: 38px; height: 26px; flex: 0 0 38px; }
        .footer-pay-item svg { width: 28px !important; height: 18px !important; max-width: 28px !important; max-height: 18px !important; }
}



/* ============================================================
   🔒 LOGO · tamaño constante entre Home e inner pages (mobile)
   ----------------------------------------------------------------
   Bug reportado: en móvil el logo se veía MÁS GRANDE en la Home y
   MÁS PEQUEÑO en /blog y otros inners (o viceversa) por el cambio
   de ancho ocupado por el ícono hamburguesa + carrito + cuenta,
   más los width/height nativos del <img> generado por WP. Forzamos
   un tamaño FIJO en móvil/tablet para que sea idéntico en todas
   las páginas. NO afecta desktop. */
@media (max-width: 960px) {
        .brand,
        .brand .custom-logo-link {
                display: inline-flex !important;
                align-items: center;
                max-height: 44px;
        }
        .brand img,
        .brand .custom-logo,
        .brand .custom-logo-link img,
        .site-branding img {
                height: 40px !important;
                max-height: 40px !important;
                width: auto !important;
                max-width: 200px !important;
                object-fit: contain !important;
        }
}
@media (max-width: 480px) {
        .brand img,
        .brand .custom-logo,
        .brand .custom-logo-link img,
        .site-branding img {
                height: 34px !important;
                max-height: 34px !important;
                max-width: 160px !important;
        }
}

/* ============================================================
   ✉ Footer · Email link en dos líneas
   Línea 1: icono + etiqueta corta (ej. "✉ Email")
   Línea 2: dirección real (más pequeña, con word-break por si es larga)
============================================================ */
.footer-email-li { line-height: 1.35; }
.footer-email-link { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px; line-height: 1.3; }
.footer-email-link .footer-email-line1 { font-weight: 600; }
.footer-email-link .footer-email-line2 {
        font-size: 0.82em;
        opacity: 0.78;
        word-break: break-all;
        overflow-wrap: anywhere;
        max-width: 100%;
}
.footer-email-link:hover .footer-email-line2 { opacity: 1; text-decoration: underline; }

