.prod-page #main :focus-visible{outline:3px solid var(--teal-light); outline-offset:2px;}
.prod-page #portafolio,
.prod-page #aplicaciones,
.prod-page #catalogo,
.prod-page #hablemos{scroll-margin-top:210px;}

.pb-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.pb-bg{position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none;}
.pb-bg img{width:100%; height:100%; object-fit:cover; object-position:center; display:block;}
.pb-bg::after{content:''; position:absolute; inset:0;}
.prod-hero{
  position:relative; overflow:hidden; isolation:isolate; color:#fff;
  min-height:max(520px, min(640px, calc(100svh - 194px)));
  display:flex; flex-direction:column; justify-content:center;
  padding:56px 0 0; background-color:var(--navy);
}
.prod-hero .pb-bg::after{
  background:linear-gradient(180deg, rgba(8,12,65,.5) 0%, rgba(8,12,65,.1) 32%, rgba(8,12,65,.4) 64%, rgba(8,12,65,.92) 100%), linear-gradient(100deg, rgba(8,12,65,.88) 0%, rgba(21,71,114,.56) 48%, rgba(53,154,204,.08) 100%);
}
.prod-hero .hero-particles{z-index:1;}
.prod-hero-inner{position:relative; z-index:2; width:100%; padding-bottom:64px;}
.pb-breadcrumb{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px;
  font-size:.76rem; font-weight:500; color:#b9cfdb; margin-bottom:22px; letter-spacing:.02em;
}
.pb-breadcrumb a{color:#e3eef4; transition:color .2s;}
.pb-breadcrumb a:hover{color:var(--teal-light);}
.pb-breadcrumb svg{width:12px; height:12px; opacity:.6;}
.prod-hero .hero-badge{color:#e3eef4; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);}
.prod-hero h1{
  font-size:clamp(2.6rem, 5.6vw, 4.8rem); line-height:1; letter-spacing:-.03em;
  margin:6px 0 20px; max-width:900px; text-shadow:0 4px 30px rgba(8,12,65,.45);
}
.prod-hero h1 b{display:block; width:fit-content; font-weight:800; color:transparent;
  background:linear-gradient(90deg, var(--teal-light) 0%, var(--amber) 85%);
  -webkit-background-clip:text; background-clip:text;
}
.prod-hero-lead{
  max-width:620px; font-size:clamp(1.05rem, 1.4vw, 1.2rem); line-height:1.55; color:#eef4f8;
  text-shadow:0 1px 8px rgba(8,12,65,.5);
}
.prod-hero-note{margin-top:10px; max-width:560px; font-size:.92rem; line-height:1.6; color:#b9cfdb;}
.prod-hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:30px;}
.prod-hero-ctas .btn-outline{backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); background:rgba(255,255,255,.06);}
.prod-cta-ico{
  width:24px; height:24px; border-radius:50%; display:grid; place-items:center;
  background:var(--navy); color:var(--amber);
}
.prod-cta-ico svg{width:12px; height:12px;}
.prod-sec{position:relative; padding:104px 0;}
.prod-sec--plain{background:#fff;}
.prod-sec--mist{background:var(--mist);}
.prod-sec h2{font-size:clamp(1.8rem, 3.2vw, 2.6rem); color:var(--navy); line-height:1.15; text-wrap:balance;}
.prod-sec .eyebrow{display:inline-block; margin-bottom:12px;}
.prod-intro{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:end; margin-bottom:56px;}
.prod-intro-text p{color:#33434c; font-size:1rem; line-height:1.75;}
.prod-intro-text .prod-intro-aside{
  margin-top:18px; padding-left:22px; color:var(--steel); font-size:.95rem; line-height:1.7;
  border-left:3px solid transparent;
  border-image:linear-gradient(180deg, var(--teal-light), var(--amber)) 1;
}
.pb-family-grid{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px;}
.pb-family{
  position:relative; display:flex; flex-direction:column; background:#fff; border-radius:20px; overflow:hidden;
  border:1px solid var(--line); box-shadow:0 18px 40px -30px rgba(8,12,65,.4);
  transition:transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.pb-family:hover{transform:translateY(-6px); border-color:var(--teal-light); box-shadow:0 30px 60px -30px rgba(8,12,65,.5);}
.pb-family-media{position:relative; display:block; aspect-ratio:16/11; overflow:hidden; background:var(--navy);}
.pb-family-media img{width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.22,.61,.36,1);}
.pb-family:hover .pb-family-media img{transform:scale(1.07);}
.pb-family-media::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(8,12,65,.55));}
.pb-family-body{display:flex; flex-direction:column; align-items:flex-start; flex-grow:1; padding:0 22px 24px;}
.pb-family-ico{
  position:relative; z-index:2; margin:-24px 0 14px; width:48px; height:48px; border-radius:14px;
  display:grid; place-items:center; background:var(--navy); color:var(--amber);
  box-shadow:0 10px 24px -8px rgba(8,12,65,.6); border:3px solid #fff;
}
.pb-family-ico svg{width:22px; height:22px;}
.pb-family-title{font-size:1.12rem; font-weight:600; color:var(--navy); line-height:1.3;}
.pb-family-desc{margin-top:8px; font-size:.88rem; color:var(--steel); line-height:1.6;}
.pb-family-link{
  margin-top:auto; padding-top:16px; display:inline-flex; align-items:center; gap:6px;
  font-size:.84rem; font-weight:600; color:var(--teal);
}
.pb-family-link svg{width:14px; height:14px; transition:transform .25s ease;}
.pb-family:hover .pb-family-link{color:var(--navy);}
.pb-family:hover .pb-family-link svg{transform:translateX(4px);}
.prod-sectors{
  position:relative; overflow:hidden; padding:104px 0; color:#fff;
  background-color:var(--navy);
}
.prod-sectors .pb-bg img{opacity:.55;}
.prod-sectors .pb-bg::after{background:var(--ph-gradient);}
.prod-sectors .hero-particles{z-index:1;}
.prod-sectors .hero-particles .particle{--rise:520px;}
.prod-sectors .container{position:relative; z-index:2;}
.prod-sectors-grid{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:64px; align-items:center;}
.prod-sectors .eyebrow{display:inline-block; margin-bottom:12px; color:var(--amber);}
.prod-sectors h2{font-size:clamp(1.8rem, 3.2vw, 2.6rem); line-height:1.15; color:#fff;}
.prod-sectors-head p{margin-top:18px; max-width:440px; font-size:1rem; line-height:1.7; color:#c9dbe5;}
.pb-sector-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px;}
.pb-sector{
  position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:16px;
  padding:20px 18px 18px; border-radius:18px; color:#fff;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  transition:background .25s ease, border-color .25s ease, transform .3s cubic-bezier(.22,.61,.36,1);
}
.pb-sector-icon{
  width:46px; height:46px; border-radius:13px; display:grid; place-items:center;
  background:rgba(8,12,65,.55); color:var(--amber); border:1px solid rgba(255,255,255,.14);
  transition:background .25s ease, color .25s ease;
}
.pb-sector-icon svg{width:22px; height:22px;}
.pb-sector-name{font-size:.95rem; font-weight:600; line-height:1.3;}
.pb-sector-go{position:absolute; right:16px; top:20px; width:16px; height:16px; color:#cfe0e9; opacity:.55; transition:transform .25s ease, opacity .25s ease;}
.pb-sector:hover,
.pb-sector:focus-visible{background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.34); transform:translateY(-4px);}
.pb-sector:hover .pb-sector-icon,
.pb-sector:focus-visible .pb-sector-icon{background:var(--amber); color:var(--navy);}
.pb-sector:hover .pb-sector-go,
.pb-sector:focus-visible .pb-sector-go{opacity:1; transform:translateX(3px);}
.prod-page #main .pb-sector:focus-visible{outline-color:var(--amber);}
.prod-head{max-width:740px; margin:0 auto 40px; text-align:center;}
.pb-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:16px 24px; flex-wrap:wrap;
  padding:12px; margin-bottom:34px; background:#fff; border:1px solid var(--line); border-radius:20px;
  box-shadow:0 18px 40px -32px rgba(8,12,65,.45);
}
.pb-tabs{display:flex; gap:6px; flex-wrap:wrap;}
.pb-tab{
  border:none; background:none; padding:10px 18px; border-radius:999px;
  font-size:.86rem; font-weight:600; color:var(--steel);
  transition:background .2s ease, color .2s ease;
}
.pb-tab:hover{background:var(--mist); color:var(--navy);}
.pb-tab[aria-pressed="true"]{background:var(--navy); color:#fff;}
.pb-tools{display:flex; gap:10px; flex-wrap:wrap;}
.pb-search{position:relative;}
.pb-search svg{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:15px; height:15px; color:var(--steel); pointer-events:none;
}
.pb-search input,
.pb-select{
  font-family:inherit; font-size:.86rem; color:var(--navy);
  border:1px solid var(--line); border-radius:999px; background-color:var(--mist);
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.pb-search input{padding:11px 18px 11px 40px; width:240px;}
.pb-search input::placeholder{color:#7d8b93;}
.pb-select{
  font-weight:500; padding:11px 40px 11px 18px; min-width:200px; cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23080C41' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:13px;
}
.pb-search input:focus,
.pb-select:focus{outline:none; border-color:var(--teal-light); background-color:#fff; box-shadow:0 0 0 3px rgba(53,154,204,.18);}
.products-grid{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px;}
.product-card{
  position:relative; display:flex; flex-direction:column; background:#fff; border-radius:20px; overflow:hidden;
  border:1px solid var(--line); box-shadow:0 18px 40px -30px rgba(8,12,65,.4);
  transition:transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.product-card[hidden]{display:none;}
.product-card:hover{transform:translateY(-6px); border-color:var(--teal-light); box-shadow:0 30px 60px -30px rgba(8,12,65,.5);}
.product-img-wrap{
  position:relative; height:176px; display:flex; align-items:center; justify-content:center; padding:16px; overflow:hidden;
  background:radial-gradient(circle at 50% 62%, rgba(53,154,204,.16), transparent 62%), linear-gradient(180deg, #F7FBFD, #EAF1F7);
  border-bottom:1px solid var(--line);
}
.product-img-wrap img,
.product-img-wrap .product-video{
  max-height:118%; max-width:118%; width:auto; height:auto; object-fit:contain;
  transition:transform .45s cubic-bezier(.22,.61,.36,1), opacity .35s ease;
}
.product-poster{opacity:1;}
.product-card:not(.has-video) .product-img-wrap{padding:0;}
.product-card:not(.has-video) .product-poster{width:100%; height:100%; max-width:none; max-height:none; object-fit:cover;}
.product-card.has-video:hover .product-poster,
.product-card.has-video:focus .product-poster{opacity:0;}
.product-video{position:absolute; top:0; left:0; right:0; bottom:0; margin:auto; opacity:0;}
.product-card.has-video:hover .product-video,
.product-card.has-video:focus .product-video{opacity:1;}
.product-card:hover .product-img-wrap img,
.product-card:hover .product-img-wrap .product-video{transform:scale(1.07);}
.product-tag-dev{
  position:absolute; top:12px; left:12px; z-index:2;
  font-size:.6rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  background:var(--navy); color:#fff; padding:5px 10px; border-radius:999px;
}
.product-info{display:flex; flex-direction:column; flex-grow:1; padding:18px 22px 22px;}
.product-family{font-size:.64rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-light); margin-bottom:6px;}
.product-code{font-size:1.2rem; font-weight:700; color:var(--navy); letter-spacing:.01em; line-height:1.2;}
.product-name{font-size:.86rem; font-weight:600; color:var(--teal); margin-top:2px;}
.product-desc{font-size:.84rem; line-height:1.55; color:var(--steel); margin-top:10px;}
.product-arrow{
  margin-top:auto; padding-top:16px; display:inline-flex; align-items:center; gap:6px;
  font-size:.82rem; font-weight:600; color:var(--teal); transition:color .2s ease;
}
.product-arrow svg{width:14px; height:14px; transition:transform .25s ease;}
.product-card:hover .product-arrow{color:var(--navy);}
.product-card:hover .product-arrow svg{transform:translateX(4px);}

.pb-empty{
  display:none; text-align:center; padding:56px 20px; color:var(--steel);
  background:#fff; border:1px dashed var(--line); border-radius:20px; font-size:.95rem;
}
.pb-empty.is-visible{display:block;}
.pb-empty b{display:block; color:var(--navy); font-size:1.05rem; margin-bottom:6px;}

.pb-pagination{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:46px;}
.pb-page{
  min-width:40px; height:40px; padding:0 12px; border-radius:999px; border:1px solid var(--line);
  background:#fff; font-family:inherit; font-size:.88rem; font-weight:600; color:var(--navy);
  display:inline-flex; align-items:center; justify-content:center; transition:.2s ease;
}
.pb-page:hover:not(:disabled):not([aria-current]){border-color:var(--teal-light); color:var(--teal);}
.pb-page[aria-current]{background:var(--navy); border-color:var(--navy); color:#fff;}
.pb-page:disabled{opacity:.35;}
.pb-page svg{width:15px; height:15px;}
.pb-dots{color:var(--steel); padding:0 2px; font-size:.88rem;}
.prod-contact{
  position:relative; overflow:hidden; padding:104px 0 96px; color:#fff; text-align:center;
  background-color:var(--navy);
}
.prod-contact .pb-bg img{object-position:center 30%; opacity:.4;}
.prod-contact .pb-bg::after{background:var(--ph-gradient);}
.prod-contact .hero-particles{z-index:1;}
.prod-contact .hero-particles .particle{--rise:520px;}
.prod-contact .container{position:relative; z-index:2;}
.prod-contact .eyebrow{color:var(--amber);}
.prod-contact h2{font-size:clamp(2rem, 4vw, 3rem); line-height:1.1; margin-top:12px;}
.prod-contact p{max-width:620px; margin:18px auto 0; color:#cfe0e9; font-size:1.02rem; line-height:1.7; text-wrap:pretty;}
.prod-contact-actions{display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin-top:30px;}
.pb-features{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px;
  max-width:860px; margin:54px auto 0;
}
.pb-feature{
  display:flex; align-items:center; gap:14px; padding:16px 18px; text-align:left; border-radius:18px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18);
}
.pb-feature-icon{
  width:44px; height:44px; flex-shrink:0; border-radius:12px; display:grid; place-items:center;
  background:rgba(8,12,65,.55); color:var(--amber); border:1px solid rgba(255,255,255,.14);
}
.pb-feature-icon svg{width:21px; height:21px;}
.pb-feature span{font-size:.88rem; font-weight:500; line-height:1.4; color:#fff;}
@media (max-width:1180px){
  .products-grid{grid-template-columns:repeat(3, minmax(0,1fr));}
}
@media (max-width:1080px){
  .pb-family-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
  .pb-toolbar{flex-direction:column; align-items:stretch; flex-wrap:nowrap;}
  .pb-tabs{justify-content:center;}
  .pb-tools{justify-content:center;}
}
@media (max-width:980px){
  .prod-intro, .prod-sectors-grid{grid-template-columns:1fr; gap:32px;}
  .prod-sectors-head p{max-width:none;}
}
@media (max-width:720px){
  .prod-sec, .prod-sectors{padding:72px 0;}
  .prod-contact{padding:76px 0 72px;}
  .prod-hero{min-height:auto; padding-top:48px;}
  .prod-hero-inner{padding-bottom:48px;}
  .prod-intro{margin-bottom:36px;}
  .pb-family-grid{grid-template-columns:1fr;}
  .pb-sector-grid{grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px;}
  .pb-toolbar{padding:10px; border-radius:18px;}
  .pb-tabs{flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
  .pb-tabs::-webkit-scrollbar{display:none;}
  .pb-tab{white-space:nowrap; flex-shrink:0;}
  .pb-tools{flex-direction:column;}
  .pb-search input, .pb-select{width:100%; min-width:0;}
  .products-grid{grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px;}
  .product-img-wrap{height:132px; padding:12px;}
  .product-info{padding:14px 14px 16px;}
  .product-code{font-size:1.04rem;}
  .product-desc{font-size:.78rem;}
  .pb-features{grid-template-columns:1fr; gap:10px; margin-top:40px;}
  .prod-page #portafolio,
  .prod-page #aplicaciones,
  .prod-page #catalogo,
  .prod-page #hablemos{scroll-margin-top:90px;}
}
@media (prefers-reduced-motion: reduce){
  .pb-family, .pb-family-media img, .product-card, .product-img-wrap img, .pb-sector,
  .pb-sector-icon, .pb-family-link svg, .product-arrow svg{transition:none;}
  .pb-family:hover, .product-card:hover, .pb-sector:hover{transform:none;}
  .pb-family:hover .pb-family-media img{transform:none;}
}
