/*
Theme Name: Divi BioExtracto
Theme URI: https://bioextracto.mx
Description: Child theme de Divi para BioExtracto, con panel de administración personalizado para gestionar imágenes, textos y colores desde WP-Admin.
Author: BioExtracto
Template: Divi
Version: 1.0.0
Text Domain: divi-bioextracto
*/

:root{
  --bx-ind:#4747AC; --bx-ind-d:#3F3F9E; --bx-ind-x:#33338A;
  --bx-peri:#E9EDF7; --bx-peri2:#D8E1F3; --bx-red:#E23B2E; --bx-red-d:#C62F22;
  --bx-green:#2E9E44; --bx-green-d:#1F7A33; --bx-ink:#2A2A55; --bx-gray:#5C6178;
  --bx-blanco:#fff; --bx-sombra:0 14px 38px rgba(42,42,85,.14); --bx-radio:14px;
}
.bioex-page{margin:0;padding:0;box-sizing:border-box}
.bioex-page *{margin:0;padding:0;box-sizing:border-box}
.bioex-page{font-family:'Poppins',sans-serif;color:var(--bx-ink);background:var(--bx-peri);line-height:1.6;overflow-x:hidden}
.bioex-page img{max-width:100%;display:block}
.bioex-page a{text-decoration:none;color:inherit}
.bioex-page ul{list-style:none}
.bioex-page button{font-family:inherit;cursor:pointer}
html{scroll-behavior:smooth;scroll-padding-top:88px}
.bx-wrap{width:min(1180px,93%);margin:0 auto}
.bx-sec{padding:74px 0}
.bx-h2{text-align:center;font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--bx-ind-d);margin-bottom:44px}
.bx-h2::after{content:"";display:block;width:64px;height:3px;background:var(--bx-green);border-radius:2px;margin:12px auto 0}

/* ===== HEADER ===== */
#bxNav{position:fixed;top:0;left:0;right:0;z-index:900;background:var(--bx-ind);transition:box-shadow .3s}
#bxNav.bx-scrolled{box-shadow:0 8px 26px rgba(51,51,138,.4)}
#bxNav .bx-wrap{width:min(1560px,96%)} /* el nav necesita más ancho que el resto de secciones (evita que se encimen los enlaces) */
.bx-nav-in{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:10px 0;gap:16px;flex-wrap:nowrap}
.bx-logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;letter-spacing:1.5px;color:#fff;white-space:nowrap;flex:none}
.bx-logo svg{width:44px;height:44px;flex:none}
.bx-logo-img{width:var(--bx-logo-nav-size) !important;height:var(--bx-logo-nav-size) !important;object-fit:contain;flex:none;border-radius:6px;background:#fff}
.bx-links{display:flex;gap:16px;align-items:center;flex-wrap:nowrap;justify-content:flex-end}
.bx-links a{font-size:.66rem;font-weight:600;letter-spacing:1.1px;text-transform:uppercase;color:#fff;padding:6px 2px;position:relative;white-space:nowrap}
.bx-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:#9FE8AC;transition:width .3s}
.bx-links a:hover::after{width:100%}
#bxMenuBtn{display:none;background:none;border:none;width:42px;height:42px;flex-direction:column;justify-content:center;gap:5px;align-items:center;flex:none}
#bxMenuBtn span{display:block;width:22px;height:2.5px;background:#fff;border-radius:2px;transition:.35s}
#bxMenuBtn.bx-open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
#bxMenuBtn.bx-open span:nth-child(2){opacity:0}
#bxMenuBtn.bx-open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.bx-lang-switch{display:flex;gap:6px;align-items:center;margin-left:6px;padding-left:14px;border-left:1px solid rgba(255,255,255,.25)}
.bx-lang-link{font-size:.64rem;font-weight:700;letter-spacing:1px;color:rgba(255,255,255,.65);border:1px solid rgba(255,255,255,.4);border-radius:5px;padding:4px 8px;transition:.25s}
.bx-lang-link:hover{color:#fff;border-color:#fff}
.bx-lang-link.bx-lang-active{color:#fff;background:rgba(255,255,255,.18);border-color:#fff}
.bx-lang-switch-mobile{border-left:none;padding-left:0;margin:14px 0 0;justify-content:center}
#bxMobile{position:fixed;inset:76px 0 auto 0;background:var(--bx-ind-d);z-index:890;transform:translateY(-130%);transition:transform .4s ease;padding:16px 6%;box-shadow:0 20px 40px rgba(0,0,0,.25);max-height:calc(100vh - 76px);overflow-y:auto}
#bxMobile.bx-show{transform:translateY(0)}
#bxMobile a{display:block;padding:11px 4px;font-size:.74rem;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:#fff;border-bottom:1px solid rgba(255,255,255,.14)}
@media(max-width:900px){.bx-links{display:none}#bxMenuBtn{display:flex}}

/* ===== BANDA DE LOGO (isotipo grande + nombre, debajo de la barra de menú) ===== */
.bx-logoband{background:#fff;padding:112px 0 26px;text-align:center}
.bx-logoband-in{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap}
.bx-logoband-img{width:var(--bx-logo-band-size) !important;height:var(--bx-logo-band-size) !important;object-fit:contain}
.bx-logoband-text{font-size:clamp(1.9rem,5vw,3.4rem);font-weight:700;letter-spacing:2px;color:var(--bx-ind-d);text-transform:uppercase;line-height:1}

/* ===== HERO CARRUSEL ===== */
.bx-hero{position:relative;height:540px;overflow:hidden;background:#0d3a33}
.bx-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease}
.bx-slide.bx-active{opacity:1}
.bx-slide img{width:100%;height:100%;object-fit:cover}
.bx-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(51,51,138,.18),rgba(13,58,51,.28))}
.bx-slide-caption{position:absolute;left:0;right:0;bottom:64px;z-index:4;text-align:center;padding:0 6%;text-shadow:0 4px 18px rgba(0,0,0,.45)}
.bx-slide-caption h2{color:var(--bx-caption) !important;font-size:clamp(1.3rem,3.4vw,2.3rem);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:10px}
.bx-slide-caption p{color:var(--bx-caption) !important;font-size:clamp(.85rem,1.6vw,1.05rem);font-weight:400;max-width:640px;margin:0 auto;opacity:.95}
.bx-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.88);color:var(--bx-ind-d);font-size:1.25rem;display:grid;place-items:center;transition:background .3s,transform .3s;box-shadow:0 8px 20px rgba(0,0,0,.25)}
.bx-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.08)}
#bxPrev{left:18px}#bxNext{right:18px}
#bxDots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:5;display:flex;gap:9px}
.bx-dot{width:11px;height:11px;border-radius:50%;border:none;background:rgba(255,255,255,.5);transition:background .3s,transform .3s;padding:0}
.bx-dot.bx-on{background:#fff;transform:scale(1.25)}

/* ===== SERVICIOS (carrusel con video) ===== */
#servicios{background:var(--bx-peri)}
.bx-serv-carousel{position:relative;display:flex;align-items:center;gap:16px}
.bx-serv-carousel .bx-arrow{position:static;transform:none;flex:0 0 auto}
.bx-serv-carousel .bx-arrow:hover{transform:none;scale:1.08}
.bx-serv-viewport{overflow:hidden;flex:1;min-width:0}
.bx-serv-track{display:flex;gap:26px;transition:transform .5s ease}
.bx-serv-card{background:linear-gradient(165deg,#5A5AC0 0%,var(--bx-ind-d) 70%);border-radius:var(--bx-radio);padding:20px 20px 26px;box-shadow:var(--bx-sombra);flex:0 0 calc((100% - 52px)/3);min-width:0;display:flex;flex-direction:column}
.bx-serv-media{position:relative;width:100%;height:150px;border-radius:10px;overflow:hidden;margin-bottom:18px;background:#000}
.bx-serv-poster{width:100%;height:100%;object-fit:cover;display:block}
.bx-serv-media video,.bx-serv-media iframe{width:100%;height:100%;border:0;display:block}
.bx-serv-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;border:none;background:rgba(255,255,255,.16);backdrop-filter:blur(1px);display:grid;place-items:center;transition:transform .3s,background .3s;padding:0}
.bx-serv-play:hover{transform:translate(-50%,-50%) scale(1.08);background:rgba(255,255,255,.3)}
.bx-serv-play svg{width:100%;height:100%}
.bx-serv-body{display:flex;flex-direction:column;flex:1}
.bx-serv-body h3{color:#fff;font-size:.92rem;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:6px;line-height:1.4}
.bx-serv-desc{color:rgba(255,255,255,.85);font-size:.82rem;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bx-serv-more{margin-top:auto;align-self:flex-start;border:1.5px solid rgba(255,255,255,.55);border-radius:999px;padding:8px 22px;background:transparent;color:#fff !important;font-size:.68rem;letter-spacing:1.6px;text-transform:uppercase;transition:background .25s,transform .25s;text-decoration:none !important;display:inline-block}
.bx-serv-more:hover{background:rgba(255,255,255,.16);transform:translateY(-2px)}
@media(max-width:960px){.bx-serv-card{flex-basis:calc((100% - 26px)/2)}}
@media(max-width:640px){.bx-serv-card{flex-basis:100%}.bx-serv-carousel{gap:8px}}

/* ===== PRODUCTOS ===== */
#productos{background:var(--bx-blanco)}
.bx-prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.bx-prod{background:var(--bx-blanco);border-radius:var(--bx-radio);overflow:hidden;box-shadow:var(--bx-sombra);display:flex;flex-direction:column;transition:transform .35s}
.bx-prod:hover{transform:translateY(-9px)}
.bx-prod-img{height:210px;overflow:hidden}
.bx-prod-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.bx-prod:hover .bx-prod-img img{transform:scale(1.07)}
.bx-prod-body{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1}
.bx-prod-body h3{color:var(--bx-ind-d);font-size:1rem;letter-spacing:.6px;margin-bottom:8px}
.bx-prod-body p{font-size:.84rem;color:var(--bx-gray);flex:1}
.bx-prod-body button{margin-top:16px;align-self:flex-start;background:none;border:none;color:var(--bx-ind);font-weight:600;font-size:.82rem;letter-spacing:.5px;transition:transform .3s}
.bx-prod-body button:hover{transform:translateX(4px)}

/* ===== CATALOGO ===== */
#catalogo{background:var(--bx-peri)}
.bx-cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.bx-cat-img-col{display:flex;flex-direction:column;gap:16px}
.bx-cat-img{border-radius:16px;overflow:hidden;box-shadow:var(--bx-sombra)}
.bx-cat-img img{width:100%;height:340px;object-fit:cover}
.bx-cat-subtitulo{color:var(--bx-gray);font-size:.92rem;line-height:1.6}
.bx-cat-form h3{color:var(--bx-ind-d);font-size:1.05rem;letter-spacing:1px;margin-bottom:18px}
.bx-field{margin-bottom:14px}
.bx-field input,.bx-field textarea{width:100% !important;box-sizing:border-box !important;border:1px solid #C9D1EA;border-radius:8px;padding:12px 16px;font-family:inherit;font-size:.88rem;background:#fff;transition:border-color .3s,box-shadow .3s}
.bx-field textarea{resize:vertical;min-height:96px !important;height:auto !important}
.bx-field input:focus,.bx-field textarea:focus{outline:none;border-color:var(--bx-ind);box-shadow:0 0 0 4px rgba(71,71,172,.14)}
.bx-err{border-color:var(--bx-red)!important}
.bx-btn-red{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--bx-red);color:#fff;border:none;border-radius:8px;padding:14px 26px;font-weight:600;font-size:.85rem;letter-spacing:1.5px;text-transform:uppercase;transition:background .3s,transform .3s;box-shadow:0 10px 26px rgba(226,59,46,.35)}
.bx-btn-red:hover{background:var(--bx-red-d);transform:translateY(-2px)}
.bx-btn-outline{display:inline-flex !important;align-items:center;justify-content:center;gap:10px;background:transparent !important;color:var(--bx-ind-d) !important;border:2px solid var(--bx-ind-d) !important;border-radius:8px !important;padding:13px 26px !important;font-weight:700 !important;font-size:.82rem !important;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none !important;transition:background .3s,color .3s,transform .3s;box-shadow:0 8px 20px rgba(51,51,138,.12)}
.bx-btn-outline:hover{background:var(--bx-ind-d) !important;color:#fff !important;transform:translateY(-2px)}

/* ===== BLOG ===== */
#blog{background:var(--bx-blanco)}
.bx-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.bx-post{border-radius:var(--bx-radio);overflow:hidden;box-shadow:var(--bx-sombra);display:flex;flex-direction:column;background:var(--bx-ind-d)}
.bx-post-img{height:170px;overflow:hidden}
.bx-post-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.bx-post:hover .bx-post-img img{transform:scale(1.08)}
.bx-post-body{padding:22px;display:flex;flex-direction:column;flex:1}
.bx-post-body h3{font-size:.85rem;letter-spacing:1.6px;text-transform:uppercase;color:#fff;margin-bottom:9px;line-height:1.5}
.bx-post-body p{font-size:.8rem;color:rgba(255,255,255,.82)}
@keyframes bxFade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.bx-post-link{display:inline-block;margin-top:14px;align-self:flex-start;color:#fff !important;font-weight:700;font-size:.78rem;letter-spacing:.6px;text-decoration:none !important;transition:transform .3s;opacity:.92}
.bx-post-link:hover{opacity:1;text-decoration:underline !important;transform:translateX(4px)}

/* ===== HISTORIA ===== */
#historia{background:var(--bx-peri2)}
.bx-hist-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
#historia h2{font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--bx-ind-d);margin-bottom:20px}
#historia p{color:var(--bx-gray);font-size:.92rem;margin-bottom:14px}
.bx-hist-img{border-radius:16px;overflow:hidden;box-shadow:var(--bx-sombra)}
.bx-hist-img img{width:100%;height:340px;object-fit:cover}

/* ===== CERTIFICACIONES ===== */
#certificaciones{background:var(--bx-blanco)}
.bx-badges{display:flex;justify-content:center;gap:70px;flex-wrap:wrap}
.bx-badge{width:170px;height:170px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#4CBB5F,var(--bx-green-d));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff;text-align:center;box-shadow:0 16px 40px rgba(46,158,68,.4),inset 0 0 0 6px rgba(255,255,255,.22);transition:transform .35s}
.bx-badge-img{width:40px;height:40px;object-fit:contain}
.bx-badge:hover{transform:scale(1.06) rotate(-2deg)}
.bx-badge svg{width:34px;height:34px;stroke:#fff}
.bx-badge b{font-size:.92rem;letter-spacing:1px;line-height:1.3}

/* ===== INSTALACIONES ===== */
#instalaciones{background:var(--bx-peri)}
.bx-inst-texto{max-width:760px;margin:0 auto 44px !important;text-align:center;color:var(--bx-gray);font-size:.95rem;line-height:1.7}
.bx-inst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.bx-inst{border-radius:var(--bx-radio);overflow:hidden;box-shadow:var(--bx-sombra)}
.bx-inst img{width:100%;height:230px;object-fit:cover;transition:transform .6s}
.bx-inst:hover img{transform:scale(1.07)}

/* ===== CONTACTO ===== */
#contacto{background:var(--bx-blanco)}
.bx-cont-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.bx-cont-item{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px}
.bx-cont-item .bx-ico{min-width:48px;height:48px;border-radius:10px;background:var(--bx-ind);display:grid;place-items:center}
.bx-cont-item .bx-ico svg{width:21px;height:21px;stroke:#fff}
.bx-cont-item h4{font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--bx-ind-d);margin-bottom:3px}
.bx-cont-item span{font-size:.9rem;color:var(--bx-ink);font-weight:500}
.bx-cont-img{border-radius:16px;overflow:hidden;box-shadow:var(--bx-sombra)}
.bx-cont-img img{width:100%;height:360px;object-fit:cover}

/* ===== FOOTER ===== */
.bioex-page footer{background:var(--bx-ind-x);color:rgba(255,255,255,.8);padding:44px 0 0;text-align:center}
.bx-foot-logo{display:inline-flex;align-items:center;gap:9px;font-weight:700;letter-spacing:1.5px;color:#fff;font-size:1.05rem}
.bx-foot-logo svg{width:30px;height:30px}
.bx-social{display:flex;gap:12px;justify-content:center;margin:22px 0}
.bx-social a{width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);display:grid;place-items:center;transition:background .3s,transform .3s,border-color .3s}
.bx-social a:hover{background:var(--bx-green);border-color:var(--bx-green);transform:translateY(-4px)}
.bx-social svg{width:17px;height:17px;fill:#fff}
.bx-foot-bar{border-top:1px solid rgba(255,255,255,.14);padding:18px 0;font-size:.74rem;letter-spacing:.6px}

/* Toast + top */
#bxToast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,150%);background:var(--bx-ind-x);color:#fff;padding:13px 26px;border-radius:999px;font-size:.84rem;z-index:1100;transition:transform .45s ease;box-shadow:0 16px 40px rgba(0,0,0,.3)}
#bxToast.bx-show{transform:translate(-50%,0)}
#bxTop{position:fixed;bottom:22px;right:22px;width:46px;height:46px;border-radius:50%;background:var(--bx-ind);color:#fff;border:none;font-size:1.05rem;z-index:950;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;box-shadow:0 12px 28px rgba(51,51,138,.4)}
#bxTop.bx-show{opacity:1;pointer-events:auto}
#bxTop:hover{transform:translateY(-4px)}

.bx-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.bx-reveal.bx-in{opacity:1;transform:none}

/* ===== PÁGINA DE DETALLE (servicio individual / lista de PDFs) ===== */
.bx-service-detail{padding-top:130px}
.bx-wrap-narrow{width:min(820px,93%);margin:0 auto}
.bx-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--bx-ind-d);font-weight:600;font-size:.82rem;letter-spacing:.4px;text-decoration:none;margin-bottom:22px}
.bx-back-link:hover{text-decoration:underline}
.bx-service-detail-title{color:var(--bx-ind-d);font-size:clamp(1.4rem,3.4vw,2.1rem);font-weight:700;letter-spacing:.5px;margin-bottom:22px;line-height:1.3}
.bx-service-detail-media{position:relative;width:100%;height:auto !important;aspect-ratio:16/9;border-radius:var(--bx-radio);overflow:hidden;margin-bottom:26px;background:#000;box-shadow:var(--bx-sombra)}
.bx-service-detail-media .bx-serv-poster{width:100%;height:100%;object-fit:cover}
.bx-service-detail-media video,.bx-service-detail-media iframe{width:100%;height:100%;border:0;display:block}
.bx-service-detail-media .bx-serv-play{width:76px;height:76px}
.bx-service-detail-img{width:100%;max-height:460px;object-fit:cover;border-radius:var(--bx-radio);margin-bottom:26px;box-shadow:var(--bx-sombra)}
.bx-service-detail-body p{color:var(--bx-ink);font-size:1rem;line-height:1.8;white-space:pre-line}

/* ===== TARJETAS DE CATÁLOGOS EN PDF ===== */
.bx-pdf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:26px;margin-top:10px}
.bx-pdf-card{background:#fff;border-radius:var(--bx-radio);overflow:hidden;box-shadow:var(--bx-sombra);display:flex;flex-direction:column;transition:transform .3s}
.bx-pdf-card:hover{transform:translateY(-6px)}
.bx-pdf-card-img{height:170px;overflow:hidden}
.bx-pdf-card-img img{width:100%;height:100%;object-fit:cover}
.bx-pdf-card-icon{height:170px;display:flex;align-items:center;justify-content:center;background:var(--bx-peri)}
.bx-pdf-card-icon svg{width:52px;height:52px}
.bx-pdf-card-body{padding:20px 20px 24px;display:flex;flex-direction:column;gap:14px;flex:1}
.bx-pdf-card-label{font-weight:600;color:var(--bx-ink);font-size:.95rem;line-height:1.4;flex:1}
.bx-pdf-download{width:100%;justify-content:center}

@media(max-width:640px){
  .bx-service-detail{padding-top:112px}
}

@media(max-width:960px){
  .bx-prod-grid,.bx-blog-grid,.bx-inst-grid{grid-template-columns:1fr 1fr}
  .bx-cat-grid,.bx-hist-grid,.bx-cont-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .bx-prod-grid,.bx-blog-grid,.bx-inst-grid{grid-template-columns:1fr}
  .bx-hero{height:400px}
  .bx-logoband{padding:100px 0 20px}
  .bx-logoband-img{width:min(64px,var(--bx-logo-band-size)) !important;height:min(64px,var(--bx-logo-band-size)) !important}
  .bx-sec{padding:58px 0}
  .bx-badges{gap:34px}
  .bx-slide-caption{bottom:52px}
}
