/* HansamBio Brand Polish v9
   Goal: consumer brand, clean & elegant, keep tech credibility.
   Safe overlay: do not break legacy layout; override visuals only.
*/

:root{
  --hsb-radius: 18px;
  --hsb-radius-lg: 22px;
  --hsb-shadow: 0 18px 60px rgba(0,0,0,.35);
  --hsb-shadow-soft: 0 10px 35px rgba(0,0,0,.28);
  --hsb-border: rgba(255,255,255,.12);
  --hsb-border2: rgba(255,255,255,.18);
  --hsb-glass: rgba(255,255,255,.06);
  --hsb-glass2: rgba(255,255,255,.09);
  --hsb-text: var(--text, #e9eefc);
  --hsb-muted: var(--muted, rgba(233,238,252,.78));
  --hsb-surface: var(--surface, rgba(16,20,28,.75));
}

body.theme-light{
  --hsb-border: rgba(0,0,0,.10);
  --hsb-border2: rgba(0,0,0,.16);
  --hsb-glass: rgba(255,255,255,.72);
  --hsb-glass2: rgba(255,255,255,.85);
  --hsb-shadow: 0 18px 60px rgba(17,24,39,.18);
  --hsb-shadow-soft: 0 10px 35px rgba(17,24,39,.14);
}

/* ===== Background polish: subtle pattern + noise ===== */
body{
  color: var(--hsb-text);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-2;
  opacity:.55;
  /* subtle dot pattern via SVG */
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Ccircle cx='2' cy='2' r='1' fill='rgba(255,255,255,0.12)'/%3E%3Ccircle cx='42' cy='24' r='1' fill='rgba(255,255,255,0.08)'/%3E%3Ccircle cx='64' cy='62' r='1' fill='rgba(255,255,255,0.10)'/%3E%3C/svg%3E");
  background-size: 120px 120px;
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  opacity:.22;
  background:
    radial-gradient(1200px 500px at 20% 10%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(900px 420px at 80% 20%, rgba(255,255,255,.08), transparent 58%),
    radial-gradient(700px 420px at 40% 85%, rgba(255,255,255,.06), transparent 60%);
}

/* ===== Header: cleaner, elegant ===== */
.site-header{
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--hsb-border);
  background: linear-gradient(180deg, rgba(0,0,0,.34), rgba(0,0,0,.16));
}
body.theme-light .site-header{
  background: linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.62));
}

.site-header .nav a{
  font-weight: 700;
  letter-spacing: .2px;
  opacity: .92;
}
.site-header .nav a:hover{ opacity: 1; }

.site-header .brand a{
  font-weight: 900;
  letter-spacing: .4px;
}

/* ===== Section headings: visual hierarchy ===== */
.hsb-kicker,
.page-title .kicker,
.section-kicker{
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 800;
  color: var(--hsb-muted);
}

.hsb-title,
.page-title h1,
.page-title h2,
.section-title{
  letter-spacing: -0.02em;
}

/* Decorative underline for major titles */
.hsb-title::after,
.page-title h1::after{
  content:"";
  display:block;
  height:3px;
  width:72px;
  margin-top:14px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--accent, #7aa7ff), var(--accent2, #57e3ff), var(--accent3, #9a7bff));
  opacity:.85;
}

/* ===== Cards: glass + hover elevation ===== */
.hsb-card,
.card,
.card-prod,
.card-news,
.partner-card{
  border-radius: var(--hsb-radius);
  border: 1px solid var(--hsb-border);
  background: linear-gradient(180deg, var(--hsb-glass2), var(--hsb-glass));
  box-shadow: 0 1px 0 rgba(255,255,255,.05) inset;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.hsb-card:hover,
.card:hover,
.card-prod:hover,
.card-news:hover,
.partner-card:hover{
  transform: translateY(-4px);
  border-color: var(--hsb-border2);
  box-shadow: var(--hsb-shadow-soft);
}

/* Thumb polish */
.hsb-card .thumb,
.card-prod .thumb,
.card-news .thumb{
  border-top-left-radius: var(--hsb-radius);
  border-top-right-radius: var(--hsb-radius);
  overflow:hidden;
  background: rgba(0,0,0,.22);
}

.hsb-card .thumb img,
.card-prod .thumb img,
.card-news .thumb img,
.hsb-card .thumb video{
  transform: scale(1.02);
  transition: transform .35s ease;
}

.hsb-card:hover .thumb img,
.hsb-card:hover .thumb video,
.card-prod:hover .thumb img,
.card-news:hover .thumb img{ transform: scale(1.06); }

/* Body text clarity */
.hsb-card .body .t,
.card-prod .t,
.card-news .t{
  color: var(--hsb-text);
  font-weight: 850;
}
.hsb-card .body .d,
.card-prod .d,
.card-news .d{
  color: var(--hsb-muted);
}

/* ===== Buttons: CTA friendly ===== */
.hsb-btn,
.btn{
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: .2px;
  border: 1px solid var(--hsb-border);
  background: rgba(255,255,255,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.hsb-btn:hover,
.btn:hover{ transform: translateY(-1px); border-color: var(--hsb-border2); box-shadow: 0 14px 40px rgba(0,0,0,.25); }

.hsb-btn.primary,
.btn.primary{
  border: 0;
  background: linear-gradient(90deg, var(--accent, #7aa7ff), var(--accent2, #57e3ff));
  color: #0b1020;
}

/* ===== Pills / badges ===== */
.hsb-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--hsb-border);
  background: rgba(0,0,0,.18);
  color: var(--hsb-muted);
  font-weight: 800;
  font-size: .82rem;
}
body.theme-light .hsb-badge{ background: rgba(255,255,255,.7); }

/* ===== Page container & spacing rhythm ===== */
.container,
.hsb-wrap{
  padding-left: clamp(16px, 3vw, 28px);
  padding-right: clamp(16px, 3vw, 28px);
}

.section,
.hsb-fp{
  scroll-margin-top: 84px;
}

/* ===== Reveal animation (paired with reveal.r1.js) ===== */
.reveal{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .45s ease, transform .45s ease;
}
.reveal.in{
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ===== Home: make it feel like a brand page, not admin dashboard ===== */
.hsb-home .hsb-mini{
  border: 1px solid var(--hsb-border);
  border-radius: var(--hsb-radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  box-shadow: 0 1px 0 rgba(255,255,255,.06) inset;
}

.hsb-home .hsb-mini-item b{
  display:inline-block;
  min-width: 70px;
  padding: 4px 10px;
  border-radius: 999px;
  margin-right: 10px;
  background: rgba(0,0,0,.18);
  border: 1px solid var(--hsb-border);
}

/* Make home grids breathe */
.hsb-home .hsb-grid{ gap: 18px; }

/* Partner logos: clean cards */
.hsb-card.r1x1 .thumb{
  background: rgba(255,255,255,.92);
}
body.theme-dark .hsb-card.r1x1 .thumb{
  background: rgba(255,255,255,.96);
}

/* ===== Mobile polish ===== */
@media (max-width: 860px){
  .site-header{ padding: 10px 12px; }
  .site-header .nav{ display:none; }
  .hsb-btn{ width: 100%; justify-content:center; }
  .hsb-cta{ gap: 10px; }
}

@media (max-width: 520px){
  .hsb-title::after,
  .page-title h1::after{ width: 56px; }
  .hsb-card:hover,
  .card:hover{ transform:none; }
}
