/* ==========================================================================
   BioVision - responsive overrides (desktop-first breakpoints match Bootstrap)
   ========================================================================== */

@media (max-width: 1399.98px) {
  .bv-nav .nav-link { padding: .6rem .65rem; font-size: .9rem; }
}

@media (max-width: 1199.98px) {
  .bv-nav, .bv-call { display: none !important; }
  .bv-burger { display: grid; }
  .bv-header-actions { margin-left: auto; }
  .bento { grid-template-columns: repeat(3, 1fr); }
  .bento-tile.is-feature { grid-column: span 2; }
  .glass-card.gc-1 { left: -2%; }
  .glass-card.gc-2 { right: 0; }
}

@media (max-width: 991.98px) {
  :root { --bv-header-h: 68px; }
  body { padding-bottom: calc(var(--bv-mobilebar-h) + env(safe-area-inset-bottom)); }
  .bv-mobilebar { display: grid; }
  .back-top { bottom: calc(var(--bv-mobilebar-h) + 1rem); }
  .wa-float { display: none; }

  .hero-visual { max-width: 560px; margin: 2.5rem auto 0; padding: 0; }
  .hero-content { text-align: center; }
  .hero-lead { margin-inline: auto; }
  .hero-ctas, .hero-trust { justify-content: center; }

  .stat-divider { border-left: 0; }
  .feature-list { grid-template-columns: 1fr 1fr; }
  .why-media { max-width: 560px; margin: 0 auto 1rem; }

  .btn-filter-mobile { display: inline-flex; }
  .filter-offcanvas { --bs-offcanvas-height: 85vh; border-radius: var(--bv-radius-lg) var(--bv-radius-lg) 0 0; }
  .filter-offcanvas .filter-panel { border: 0; padding: 0; }
  .filter-offcanvas .filter-list { max-height: none; }
  .filter-apply { position: sticky; bottom: 0; background: #fff; padding: 1rem 0 .25rem; margin-top: 1rem; border-top: 1px solid var(--bv-border); display: flex; gap: .5rem; }
  .filter-apply > * { flex: 1; }

  .pd-gallery, .ceo-card { position: static; }
  .pd-tabs-wrap { display: none; }
  .pd-accordion { display: block; }

  .b-feature { grid-template-columns: 1fr; }
  .b-feature .bf-media { min-height: 240px; }

  .bv-mega { display: none; }
  .page-hero .ph-shape { display: none; }

  .timeline::before { left: 11px; }
  .tl-item, .tl-item:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 1.75rem 2.75rem; }
  .tl-item .tl-dot, .tl-item:nth-child(even) .tl-dot { left: 0; right: auto; }
}

@media (max-width: 767.98px) {
  .bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: minmax(150px, auto); gap: .75rem; }
  .bento-tile { padding: 1rem; }
  .bento-tile.is-feature { grid-column: span 2; grid-row: span 1; min-height: 240px; }
  .bento-tile.is-feature .bt-img { width: 48%; }
  .bento-tile.is-wide { grid-column: span 2; }
  .bento-tile .bt-arrow { width: 32px; height: 32px; top: .8rem; right: .8rem; }
  .bento-tile h3 { font-size: .95rem; padding-right: .5rem; }
  .bento-tile:not(.is-feature):not(.is-wide) .bt-img { width: 50%; opacity: .5; }

  .feature-list { grid-template-columns: 1fr; }
  .why-media { padding: 0 1rem 1.5rem 0; }
  .why-media .wm-badge { left: .5rem; bottom: 12%; padding: .75rem .9rem; }
  .why-media .wm-badge strong { font-size: 1.7rem; }

  .stat-band { margin-top: -56px; }
  .stat-item { flex-direction: column; text-align: center; gap: .6rem; }
  .stat-item .si { width: 46px; height: 46px; font-size: 1.2rem; border-radius: 12px; }

  .glass-card { padding: .6rem .75rem; gap: .55rem; }
  .glass-card .gi { width: 36px; height: 36px; font-size: 1rem; }
  .glass-card strong { font-size: 1rem; }
  .glass-card small { font-size: .7rem; }
  .glass-card.gc-1 { left: 0; top: 6%; }
  .glass-card.gc-2 { right: 0; bottom: 20%; }
  .glass-card.gc-3 { display: none; }
  .hero-ring { width: 100px; height: 100px; right: 0; }

  .p-grid.is-list .p-card { flex-direction: column; }
  .p-grid.is-list .p-card .p-media { width: auto; min-height: 0; aspect-ratio: 5 / 4; }
  .p-grid.is-list .p-card .p-body { padding: 1rem 1.15rem 1.15rem; }
  .toolbar { padding: .75rem; }
  .toolbar .tb-right { width: 100%; }
  .toolbar .form-select { flex: 1; min-width: 0; }

  .pd-facts, .pd-highlights { grid-template-columns: 1fr; }
  .pd-facts div:nth-child(odd) { border-right: 0; }
  .pd-facts div:nth-last-child(2) { border-bottom: 1px solid var(--bv-border); }
  .pd-perks { grid-template-columns: repeat(3, 1fr); gap: .5rem; }
  .pd-perk { padding: .75rem .5rem; }
  .pd-perk strong { font-size: .78rem; }
  .pd-perk small { display: none; }
  .spec-table th { width: 42%; }
  .spec-table th, .spec-table td { padding: .75rem .85rem; font-size: .88rem; }

  .quote-side, .quote-form { padding: 1.5rem; }
  .footer-news { text-align: center; }
  .footer-bottom { text-align: center; }
  .bv-accordion .accordion-body { padding: 0 1.25rem 1.25rem; }
  .cta-band { text-align: center; }
  .cta-band .d-flex { justify-content: center; }
  .g-masonry { columns: 2 160px; column-gap: .75rem; }
  .g-item { margin-bottom: .75rem; }
  .g-item .g-cap { opacity: 1; transform: none; padding: 2rem .75rem .75rem; }
  .g-item .g-cap .gz { display: none; }
  .g-item .g-cap strong { font-size: .85rem; }
  .letter-card p { line-height: 1.95; }
  .article-cover { aspect-ratio: 16 / 10; }
  .section-head-split { align-items: flex-start; }
}

@media (max-width: 575.98px) {
  /* AOS is disabled on phones; content rendered after init must still show */
  [data-aos] { opacity: 1 !important; transform: none !important; }
  .container { padding-inline: 1.1rem; }
  .row.g-5, .row.gx-5 { --bs-gutter-x: 1.5rem; }
  .bv-brand-text strong { font-size: 1.2rem; }
  .bv-brand-mark { width: 38px; height: 38px; }
  .bv-header-actions .btn-bv { display: none; }
  .hero-ctas > * { flex: 1 1 100%; }
  .hero-shape { border-radius: 140px 24px 140px 24px; }
  .hero-title .swash { white-space: normal; }
  .pill-filter { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .35rem; margin-inline: -1.1rem; padding-inline: 1.1rem; scrollbar-width: none; }
  .pill-filter::-webkit-scrollbar { display: none; }
  .pill-filter button { flex-shrink: 0; }
  .az-filter { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-bottom: .35rem; margin-inline: -1.1rem; padding-inline: 1.1rem; scrollbar-width: none; }
  .az-filter::-webkit-scrollbar { display: none; }
  .az-filter button { flex-shrink: 0; }
  .p-card .p-quick { opacity: 1; transform: none; top: .5rem; right: .5rem; gap: .3rem; }
  .p-card .p-quick button, .p-card .p-quick a { width: 32px; height: 32px; font-size: .85rem; }
  .p-card .p-badges { flex-direction: column; align-items: flex-start; top: .5rem; left: .5rem; }
  .p-card .p-chip { font-size: .64rem; padding: .25rem .5rem; }
  .p-card .p-body { padding: .85rem .75rem .9rem; }
  .p-card .p-meta { gap: .2rem; }
  .p-card .p-cat { display: block; width: 100%; font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .p-card .p-cat::before { display: none; }
  .p-card .p-title { font-size: .9rem; }
  .p-card .p-model { font-size: .74rem; margin-bottom: .75rem; }
  .p-card .p-actions { gap: .35rem; }
  .p-card .p-actions .btn-bv-outline { --pad-x: .4rem; min-height: 38px; font-size: .76rem; min-width: 0; white-space: nowrap; }
  .p-card .p-actions .btn-quote { width: 38px; min-height: 38px; flex-shrink: 0; }
  .pd-tabs .nav-link { padding: .7rem 1rem; }
  .pd-cta > * { flex: 1 1 100%; }
  .news-form { flex-direction: column; border-radius: var(--bv-radius); padding: .5rem; }
  .news-form input { min-height: 46px; }
  .cert-card .cc-since { position: static; display: inline-block; margin-bottom: 1rem; }
  .b-card .b-body { padding: 1.4rem 1.1rem 1.15rem; }
  .doc-item { flex-wrap: wrap; }
  .modal-dialog { margin: .75rem; }
}

@media (max-width: 380px) {
  .bento { grid-template-columns: 1fr; }
  .bento-tile.is-feature, .bento-tile.is-wide { grid-column: span 1; }
  .bento-tile:not(.is-feature):not(.is-wide) .bt-img { width: 36%; }
  .bv-mobilebar a, .bv-mobilebar button { font-size: .64rem; }
  .stat-item .num { font-size: 1.5rem; }
  .glass-card.gc-2 { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .marquee-track { animation: none; }
  [data-aos] { opacity: 1 !important; transform: none !important; }
}
