/* Viofarm 2026: quiet clinical typography, responsive catalog, no external fonts. */
:root { --paper: #f5f8f6; --ink: #173b2d; --muted: #52695e; --green: #104b35; --teal: #176849; --line: #dce7e0; --shadow: 0 12px 36px #153b2410; }
body { background: #f5f8f6; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; line-height: 1.5; }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
:focus-visible { outline: 3px solid #d97516; outline-offset: 4px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 30000; background: white; padding: 12px 20px; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top: 0; background: #fffffffa; border-bottom: 1px solid var(--line); box-shadow: 0 3px 16px #173b2d08; padding: 16px max(24px, calc((100vw - 1280px) / 2)); gap: 20px; grid-template-columns: 44px 220px minmax(180px,1fr) auto; }
.brand, .brand img { min-width: 0; width: 100%; max-width: 220px; }
.header-search { border: 1px solid #cadad0; border-radius: 12px; background: #f7faf8; min-width: 0; }
.header-search input { font-size: 16px; }
.header-actions { gap: 8px; }
.ghost-btn, .cart-btn, .language-toggle, .menu-toggle { min-height: 44px; border-radius: 10px; }
main:not(.article-page):not(.product-detail-page) { display: flex; flex-direction: column; }
.promo-strip, .campaign-rail { display: none; }
.hero { order: 1; width: min(1280px, calc(100% - 48px)); margin: 28px auto 0; border-radius: 24px; min-height: 420px; overflow: hidden; box-shadow: none; }
.hero-overlay { background: linear-gradient(90deg, #083b2bf5 0%, #083b2bdd 40%, #083b2b18 100%); }
.hero-content { width: min(680px, 62%); padding: 48px; margin-left: 0; }
.hero h1 { font-size: clamp(32px,3.5vw,52px); line-height: 1.13; letter-spacing: -.035em; max-width: 600px; }
.hero p:not(.eyebrow) { font-size: 17px; line-height: 1.65; max-width: 540px; }
.hero-quick-links { margin-top: 24px; gap: 8px; }
.hero-quick-links a { border-radius: 8px; padding: 7px 12px; font-size: 13px; }
.trust-strip { order: 2; max-width: 1280px; width: calc(100% - 48px); margin: 16px auto 0; background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: none; }
.trust-strip article { padding: 20px; }
.trust-strip strong { font-size: 15px; }
.trust-strip span { font-size: 13px; line-height: 1.55; }
.top-categories { order: 3; }
.catalog-section-main { order: 4; }
.needs-section { order: 5; }
.brands-section, .brand-marquee { order: 6; }
#ridicare { order: 7; }
#blog { order: 8; }
#contact { order: 9; }
.section, .needs-section, .top-categories, .brands-section { width: min(1280px, calc(100% - 48px)); margin: 56px auto 0; padding: 0; }
.section h2, .needs-head h2 { font-size: clamp(26px,3vw,36px); line-height: 1.2; letter-spacing: -.025em; }
.eyebrow { color: #176849; font-size: 11px; letter-spacing: .13em; }
.hero .eyebrow { color: #d9efdf; }
.top-category-card, .need-card { border-radius: 16px; box-shadow: none; border: 1px solid var(--line); }
.top-categories, .top-category-grid { min-width: 0; }
.top-category-grid { display: grid; overflow: visible; scroll-snap-type: none; }
.top-category-card { min-width: 0; }
.top-category-card:hover, .need-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.catalog-head { gap: 24px; }
.catalog-note { font-size: 14px; color: var(--muted); line-height: 1.65; }
.inventory-notice { background: #edf4f0; border: 1px solid #cfdfd5; border-radius: 12px; padding: 14px 18px; margin: 0 0 22px; color: #335c47; font-size: 13px; }
.catalog-shell { grid-template-columns: minmax(0,1fr); gap: 24px; align-items: start; }
.catalog-results { min-width: 0; width: 100%; }
.catalog-sidebar { border-radius: 16px; background: white; border: 1px solid var(--line); box-shadow: none; position: sticky; top: 110px; }
.product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.product-card { background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: none; overflow: hidden; min-width: 0; }
.product-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: #a9c8b6; }
.product-visual { background: white; height: 210px; min-height: 0; padding: 24px; border-bottom: 1px solid #edf2ef; }
.product-visual img { object-fit: contain; max-width: 100%; max-height: 100%; }
.product-body { padding: 18px; gap: 14px; }
.product-body h3 { display: block; -webkit-line-clamp: unset; overflow: visible; overflow-wrap: anywhere; font-size: 14px; line-height: 1.5; min-height: 63px; font-weight: 600; letter-spacing: 0; }
.product-bottom { align-items: end; gap: 10px; flex-wrap: wrap; }
.availability { color: #104b35; font-size: 20px; }
.stock-pill { font-size: 11px; line-height: 1.5; white-space: normal; }
.stock-out { color: #52695e; }
.price-context { color: #52695e; font-size: 11px; }
.product-tab[data-product-tab="reviews"] { display: none; }
.detail-card-link { padding: 9px 13px; background: #edf5f0; color: #104b35; border: 1px solid #dce8df; border-radius: 8px; text-decoration: none; font-size: 12px; font-weight: 600; min-height: 40px; }
.results-toolbar, .catalog-pager { border-radius: 12px; box-shadow: none; }
.catalog-pager button { min-height: 44px; }
.brand-track { animation: none; width: 100%; flex-wrap: wrap; justify-content: center; gap: 24px; }
.brand-track > :nth-child(n+11) { display: none; }
.brands-marquee { overflow: visible; }
.blog-card { border-radius: 16px; box-shadow: none; border: 1px solid var(--line); }
.blog-card img, .need-card img { object-fit: cover; }
.health-blog.is-collapsed .blog-grid > :nth-child(n+7) { display: none; }
#toggleBlogArticles { margin: 24px auto 0; display: block; }
.contact-section { background: white; border: 1px solid var(--line); border-radius: 20px; padding: 32px !important; display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; }
.contact-section p { color: var(--muted); }
.contact-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.site-footer { margin-top: 56px; background: #103c2c; border-top: 1px solid #285440; }
.primary-btn, .secondary-btn { min-height: 44px; border-radius: 10px; box-shadow: none; font-size: 14px; }
.primary-btn { background: #176849; }
.primary-btn:disabled { background: #e4ebe6; color: #52695e; opacity: 1; cursor: not-allowed; }
.product-detail-page { width: min(1180px, calc(100% - 48px)); margin: 40px auto; }
.product-detail-page { background: transparent; }
.product-detail-hero { padding: 0 0 28px; }
.product-detail-media { background: white; }
.product-detail-media, .product-detail-info, .product-detail-content > *, .rx-leaflet, .rx-reservation { border-radius: 18px; box-shadow: none; }
.product-detail-info h1 { font-size: clamp(28px,3vw,40px); letter-spacing: -.025em; line-height: 1.2; }
.detail-image { max-height: 400px; object-fit: contain; }
.article-site-header { grid-template-columns: 220px 1fr; }
.article-nav { justify-self: end; flex-wrap: wrap; }
.launch-notice-card { border-radius: 20px; max-height: 90dvh; overflow-y: auto; }
.drawer-panel, .modal-panel { max-height: 100dvh; overflow-y: auto; }
.cookie-banner { border: 1px solid var(--line); border-radius: 16px; bottom: max(16px, env(safe-area-inset-bottom)); box-shadow: var(--shadow); }
section[id] { scroll-margin-top: 130px; }
@media (max-width: 1200px) {
  .top-category-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 1000px) {
  .site-header { padding: 12px 20px; grid-template-columns: 44px 180px minmax(120px,1fr) auto; gap: 12px; }
  .catalog-shell { grid-template-columns: 1fr; }
  .catalog-sidebar { position: static; padding: 16px; }
  .category-select { display: block; width: 100%; min-height: 46px; }
  .catalog-sidebar .category-tabs { display: none; }
  .hero-content { width: 75%; padding: 36px; }
  .product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .site-header { grid-template-columns: 44px minmax(85px,1fr) auto; padding: 10px 12px; gap: 8px; }
  .brand, .brand img { min-width: 0; max-width: 170px; }
  .header-actions { gap: 5px; }
  .header-actions .ghost-btn { display: inline-flex; align-items: center; padding: 0 10px; font-size: 12px; }
  .language-toggle { display: none; }
  .cart-btn { height: 44px; min-width: 48px; padding: 0 8px; }
  .header-search { grid-column: 1 / -1; height: 46px; }
  .hero { width: calc(100% - 24px); margin-top: 16px; min-height: 370px; border-radius: 18px; }
  .hero-content { width: 100%; padding: 28px 24px; }
  .hero-overlay { background: linear-gradient(90deg,#083b2bf2,#083b2bc7); }
  .hero h1 { font-size: 34px; }
  .hero p:not(.eyebrow) { font-size: 15px; }
  .hero-actions { flex-wrap: wrap; }
  .trust-strip { width: calc(100% - 24px); grid-template-columns: 1fr; gap: 0; }
  .trust-strip article { padding: 16px 20px; border-bottom: 1px solid #e6ede8; }
  .trust-strip article:last-child { border-bottom: 0; }
  .section, .needs-section, .top-categories, .brands-section { width: calc(100% - 24px); margin-top: 36px; }
  .top-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .top-category-card { padding: 16px; }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .product-visual { height: 160px; padding: 16px; }
  .product-body { padding: 12px; }
  .product-body h3 { font-size: 13px; min-height: 78px; }
  .product-bottom { align-items: start; }
  .availability { font-size: 18px; }
  .detail-card-link { width: 100%; text-align: center; }
  .need-grid, .blog-grid, .contact-section { grid-template-columns: 1fr; }
  .contact-section { padding: 24px !important; }
  .product-detail-page { width: calc(100% - 24px); margin: 24px auto; }
  .product-detail-info { padding: 22px; }
  .product-detail-hero { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .article-site-header { grid-template-columns: 1fr; }
  .article-site-header .brand { max-width: 180px; }
  .article-nav { justify-self: start; gap: 18px; font-size: 13px; }
  .drawer { padding-top: 0; background: #173b2d66; }
  .drawer-panel { height: 100dvh; padding-top: 18px; }
  .launch-notice-modal { padding: 12px; }
  .launch-notice-card { padding: 24px; }
  .cookie-banner { left: 12px; right: 12px; width: auto; padding: 16px; }
}
@media (max-width: 350px) { .hero h1 { font-size: 30px; } .brand, .brand img { max-width: 120px; } .header-actions .ghost-btn { padding: 0 6px; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
