/* A consistent studio presentation for the ViroGene catalogue. */
.product-card{padding:0;overflow:hidden;min-width:0}
.product-photo{aspect-ratio:3/2;overflow:hidden;background:#f6f8fa;border-bottom:1px solid var(--line)}
.product-photo img{width:100%;height:100%;object-fit:contain;transition:transform .25s ease}
.product-visual{position:relative;aspect-ratio:3/2;width:100%;overflow:hidden}
.product-visual>img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.product-card{transition:border-color .2s,box-shadow .2s,transform .25s ease}
.product-card:hover{transform:translateY(-3px)}
.product-card-copy{padding:24px;display:flex;flex-direction:column;flex:1}
.product-card .eyebrow{font-size:12px;letter-spacing:.06em;line-height:1.5}
.product-card h2{font-size:23px;line-height:1.25;overflow-wrap:break-word}
.product-card .text-link{font-size:14px}
.product-main{min-width:0}
.product-content{font-size:16px}
.kit-feature{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:white;display:flex;flex-direction:column}
.kit-feature-image{display:block;background:#f7f9fb;border-bottom:1px solid var(--line)}
.kit-feature-image .product-visual{width:100%}
.kit-feature-copy{padding:28px 32px;display:flex;flex-direction:column;flex:1}
.kit-feature-copy .eyebrow{font-size:12px;letter-spacing:.08em;color:#6c7781;margin-bottom:14px}
.kit-feature-copy h3{font-size:29px;line-height:1.15;margin-bottom:22px;max-width:430px}
.kit-feature-copy .text-link{margin-top:auto}
.equipment-card{border-radius:10px}
.equipment-visual,.equipment-visual.extractor{height:310px;background:#fff;border-bottom:1px solid var(--line)}
.equipment-visual img,.equipment-visual.extractor img{width:100%;height:100%;object-fit:contain;padding:22px 28px}
.equipment-copy .eyebrow{font-size:12px}
.equipment-copy p,.agency{font-size:14px}
.instrument-image,.instrument-image.bio{background:#fff;border:1px solid var(--line);aspect-ratio:3/2;border-radius:12px}
.instrument-image img,.instrument-image.bio img{width:100%;height:100%;max-height:none;object-fit:contain;padding:28px}
.event-photo{display:block;position:relative;overflow:hidden;width:100%;background:#e9eef1;isolation:isolate}
.event-photo img{position:absolute!important;max-width:none!important;height:auto!important;bottom:auto!important;object-fit:initial!important;object-position:initial!important;border:0!important;border-radius:0!important}
.news-card-image{height:auto;aspect-ratio:4/3;overflow:hidden}
.news-card-image>.event-photo{width:100%;min-height:100%}
.news-card-copy .eyebrow{font-size:12px;line-height:1.5}
.news-card-copy p{font-size:16px}
.news-card-copy .text-link{font-size:14px}
.news-gallery{margin:0;align-self:start;display:grid;gap:18px}
.news-gallery>.event-photo{border-radius:8px}
.news-gallery figcaption{font-size:13px;line-height:1.6;color:#647585;margin-top:-4px}
.news-gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.news-gallery-pair .event-photo{border-radius:6px}
.installation-photo{height:auto;aspect-ratio:auto;background:none;overflow:hidden;border-radius:10px}
.installation-photo>.event-photo{width:100%}
@media(max-width:1050px){
 .product-card-copy{padding:21px}
 .product-card h2{font-size:21px}
 .kit-feature-copy{padding:25px}
 .kit-feature-copy h3{font-size:26px}
 .equipment-visual,.equipment-visual.extractor{height:270px}
}
@media(max-width:760px){
 .product-grid{gap:16px}
 .product-card-copy{padding:18px}
 .product-card h2{font-size:21px}
 .product-card .eyebrow{font-size:12px}
 .product-card .text-link{font-size:14px}
 .product-content{font-size:16px}
 .kit-feature-copy{padding:25px}
 .equipment-visual,.equipment-visual.extractor{height:280px;aspect-ratio:auto}
 .equipment-visual img,.equipment-visual.extractor img{padding:20px}
 .instrument-image img,.instrument-image.bio img{padding:18px}
 .news-card-image{height:auto;aspect-ratio:4/3}
 .news-body p{font-size:16px}
 .news-gallery{max-width:560px;width:100%}
}
@media(max-width:520px){.product-grid{grid-template-columns:1fr}.product-card-copy{padding:23px}.product-card h2{font-size:24px}.product-photo{aspect-ratio:3/2}}
@media(prefers-reduced-motion:reduce){.product-visual>img{transition:none}.product-card:hover{transform:none}}
@media print{.product-card{break-inside:avoid}}

/* Interior headers: scientific products, instruments, company and editorial. */
.inner-hero{padding:25px 0 56px;background:linear-gradient(120deg,#021c2f,#073751);isolation:isolate}
.inner-hero .container{position:relative}
.inner-hero .breadcrumbs{position:relative;z-index:2;font-size:12px;margin-bottom:25px;line-height:1.6}
.inner-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:64px;min-height:340px}
.inner-hero-copy{position:relative;z-index:2;min-width:0;padding:20px 0}
.inner-hero .eyebrow{display:block;font-size:12px;line-height:1.6;letter-spacing:.15em;margin-bottom:18px}
.inner-hero h1{font-size:clamp(2.3rem,4vw,3.8rem);line-height:1.08;letter-spacing:-.045em;margin-bottom:24px;overflow-wrap:break-word}
.inner-hero h1.long-title{font-size:clamp(2rem,3.35vw,3.15rem);line-height:1.12}
.inner-hero-copy>p{font-size:17px;line-height:1.7;max-width:490px}
.hero-rule{display:block;width:62px;height:4px;background:var(--orange);margin-top:30px;border-radius:5px}
.page-hero-media{position:relative;min-width:0;z-index:1;border-radius:28px 28px 28px 6px;background:#f4f8fb;box-shadow:0 28px 70px #00172730;isolation:isolate}
.page-hero-media::before{content:"";position:absolute;inset:-10px 10px 10px -10px;border:1px solid #ff941855;border-radius:30px 30px 30px 8px;z-index:-1}
.page-hero-media>.product-visual{border-radius:inherit;background:#f6f9fc}
.hero-media-caption{display:block;position:absolute;right:15px;bottom:12px;font-size:11px;line-height:1.4;color:#496172;background:#ffffffd9;padding:4px 8px;border-radius:5px}
.explore-hero,.contact-hero{background:linear-gradient(115deg,#f5f9fc,#eaf2f7);color:var(--navy)}
.explore-hero .breadcrumbs,.contact-hero .breadcrumbs{color:#5e7587}
.explore-hero .eyebrow,.contact-hero .eyebrow{color:#a34f08}
.explore-hero p,.contact-hero p{color:#536b7d}
.explore-hero .page-hero-media,.contact-hero .page-hero-media{box-shadow:0 22px 60px #072f4612}
.contact-hero .inner-hero-grid{grid-template-columns:1.15fr 1fr}
.brand-hero{padding-bottom:64px;min-height:470px}
.brand-hero .inner-hero-grid{display:block;min-height:310px}
.brand-hero .inner-hero-copy{max-width:800px;margin:30px auto 0;text-align:center}
.brand-hero h1{font-size:clamp(2.7rem,5.5vw,4.8rem)}
.brand-hero .hero-rule{margin-inline:auto}
.brand-hero .page-hero-media{position:absolute;inset:-110px calc((1180px - 100vw)/2) -85px;z-index:-1;background:none;box-shadow:none;border-radius:0;opacity:.52;overflow:hidden}
.brand-hero .page-hero-media::before{display:none}
.brand-hero-image{width:100%;height:100%;object-fit:cover;object-position:center}
.brand-hero .page-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#021c2f00,#021c2f99 33%,#021c2f99 67%,#021c2f00)}
.hero-device{aspect-ratio:3/2;padding:25px;background:white;border-radius:inherit;overflow:hidden}
.hero-device img{width:100%;height:100%;object-fit:contain}
.hero-instrument-pair{display:grid;grid-template-columns:1fr 1.15fr;gap:8px;align-items:center;background:white;padding:30px 18px;border-radius:inherit;aspect-ratio:3/2}
.hero-instrument-pair img{width:100%;height:100%;object-fit:contain;min-width:0;min-height:0}
.instrument-summary{display:grid;grid-template-columns:1.3fr .8fr;gap:100px;padding-block:50px 60px;align-items:center}
.instrument-summary h2{font-size:32px;line-height:1.15;margin-bottom:16px}
.instrument-summary p{font-size:16px;line-height:1.8;margin:0;max-width:650px}
.instrument-summary .agency{border:0;padding:0;margin:0 0 16px;font-size:15px}
.instrument-summary .instrument-contact{margin-top:17px}
.editorial-hero{background:#f1f6f9;color:var(--navy)}
.editorial-hero .breadcrumbs{color:#5e7587}
.editorial-hero .eyebrow{color:#a34f08}
.editorial-hero .inner-hero-copy>p{color:#536b7d}
.editorial-hero .page-hero-media{border-radius:16px;box-shadow:0 22px 50px #082c4324;overflow:hidden}
.editorial-hero .page-hero-media::before{display:none}
.editorial-hero .inner-hero-grid{gap:55px;grid-template-columns:1.15fr 1fr}
@media(prefers-reduced-motion:no-preference){
 .inner-hero-copy{animation:hero-arrive .65s ease-out both}
 .inner-hero:not(.brand-hero) .page-hero-media{animation:hero-arrive .8s ease-out .08s both}
 @keyframes hero-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
}
@media(max-width:1050px){
 .inner-hero-grid,.editorial-hero .inner-hero-grid{gap:36px;min-height:290px}
 .inner-hero h1{font-size:clamp(2.2rem,4.3vw,3.3rem)}
 .inner-hero h1.long-title{font-size:clamp(2rem,3.5vw,2.8rem)}
 .inner-hero-copy>p{font-size:16px}
 .instrument-summary{gap:50px}
 .brand-hero .page-hero-media{left:-60px;right:-60px}
}
@media(max-width:760px){
 .inner-hero{padding:22px 0 36px}
 .inner-hero .breadcrumbs{font-size:12px;gap:7px;margin-bottom:13px}
 .inner-hero-grid,.editorial-hero .inner-hero-grid,.contact-hero .inner-hero-grid{grid-template-columns:1fr;gap:27px;min-height:0}
 .inner-hero-copy{padding:10px 0 0}
 .inner-hero h1,.inner-hero h1.long-title{font-size:clamp(1.9rem,7.4vw,2.75rem);line-height:1.12;margin-bottom:16px}
 .inner-hero .eyebrow{font-size:12px;letter-spacing:.12em;margin-bottom:12px}
 .hero-rule{width:46px;height:3px;margin-top:22px}
 .page-hero-media{width:100%;max-width:480px;margin:0 auto;border-radius:20px 20px 20px 5px}
 .page-hero-media::before{inset:-6px 6px 6px -6px;border-radius:22px}
 .hero-media-caption{font-size:11px;bottom:8px;right:9px}
 .brand-hero{min-height:340px;padding-bottom:40px}
 .brand-hero .inner-hero-grid{min-height:235px}
 .brand-hero .inner-hero-copy{margin:30px 0 0}
 .brand-hero .page-hero-media{max-width:none;width:auto;margin:0;inset:-80px -150px -90px}
 .brand-hero h1{font-size:clamp(2.4rem,10vw,3.2rem)}
 .hero-device{padding:15px}
 .hero-instrument-pair{padding:18px 12px}
 .instrument-summary{grid-template-columns:1fr;gap:25px;padding-block:32px 40px}
 .instrument-summary h2{font-size:28px}
 .instrument-summary .agency{margin-bottom:14px}
}
@media print{.inner-hero{padding:12px 0;background:#fff;color:#000}.inner-hero-grid{display:block;min-height:0}.page-hero-media,.hero-rule{display:none}.inner-hero h1,.inner-hero h1.long-title{font-size:25pt}.inner-hero .eyebrow{color:#333}.inner-hero-copy{animation:none}}

/* Restore the approved homepage composition: glass DNA at both edges. */
.hero{min-height:0;height:auto;min-height:clamp(490px,38.5vw,590px);background:#001c2f;border-radius:0 0 50% 50% / 0 0 9% 9%}
.hero-art{object-fit:cover;object-position:center;opacity:1}
.hero::after{background:linear-gradient(90deg,transparent 22%,#001c2f14 37%,#001c2f14 63%,transparent 78%)}
.hero-copy{max-width:820px;padding:66px 24px 82px}
.hero .eyebrow{display:block;font-size:12px;letter-spacing:.24em;color:#d3dde3;margin-bottom:19px;line-height:1.5}
.hero h1{font-size:clamp(2.8rem,5.25vw,5rem);line-height:1.04;letter-spacing:-.045em;font-weight:750;margin-bottom:24px}
.hero h1 span{color:#ff941c}
.hero p{font-size:18px;line-height:1.48;max-width:460px;color:#e1e8ed;margin:0 auto 27px}
.hero .button{padding:15px 25px;font-size:15px;border-radius:11px;box-shadow:0 8px 22px #00000016}
@media(max-width:760px){
 .hero{min-height:490px;border-radius:0 0 50% 50% / 0 0 5% 5%}
 .hero-art{display:none}
 .hero::before,.hero::after{content:"";position:absolute;top:0;bottom:0;width:39%;z-index:-1;background-image:url('/assets/home-hero-reference.webp');background-repeat:no-repeat;background-size:auto 100%;opacity:.9}
 .hero::before{left:0;background-position:left center;mask-image:linear-gradient(90deg,#000 0%,#000b 45%,transparent 100%)}
 .hero::after{left:auto;right:0;background-position:right center;mask-image:linear-gradient(270deg,#000 0%,#000b 45%,transparent 100%)}
 .hero-copy{padding:62px 22px 72px;max-width:530px}
 .hero .eyebrow{font-size:10px;letter-spacing:.16em;max-width:300px;margin:0 auto 23px}
 .hero h1{font-size:clamp(2.55rem,8vw,3.5rem);line-height:1.07;margin-bottom:23px}
 .hero p{font-size:16px;max-width:325px;line-height:1.5;margin-bottom:26px}
 .hero .button{font-size:14px;padding:14px 22px}
}
