/* ============================================================
   UNITE HPC — Apple-inspired design system (Phase 1)
   Brand red · restraint · hierarchy · generous spacing.
   Layered over the existing shell; overrides by source order.
   ============================================================ */
:root{
  /* Brand */
  --brand:#e01021; --brand-hi:#ff2033; --brand-deep:#9c0a16;
  --brand-grad:linear-gradient(135deg,#ff2233 0%,#e01021 46%,#a30d18 100%);
  /* Surfaces */
  --page:#f5f5f7; --surface:#ffffff; --surface-2:#fafafc;
  --ink:#1d1d1f; --ink-2:#6e6e73; --ink-on-brand:#ffffff;
  --border:rgba(0,0,0,.10);
  /* Radius */
  --r-ctrl:999px; --r-sm:12px; --r-md:20px; --r-lg:28px; --r-xl:36px;
  /* Shadow */
  --sh-sm:0 4px 18px rgba(0,0,0,.06);
  --sh-md:0 20px 50px rgba(0,0,0,.12);
  --sh-brand:0 24px 60px rgba(176,12,24,.32);
  /* Spacing */
  --pad:clamp(20px,5vw,72px);
  --maxw:1180px;
}

body{
  background:var(--page) !important;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif !important;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}

/* ---------- Top bar: thin, translucent, blurred ---------- */
.app .topbar{
  position:sticky; top:0; z-index:100;
  background:rgba(224,16,33,.92) !important;
  border-bottom:1px solid rgba(0,0,0,.14) !important;
  box-shadow:0 2px 14px rgba(120,8,16,.22) !important;
  backdrop-filter:saturate(160%) blur(18px); -webkit-backdrop-filter:saturate(160%) blur(18px);
}
.app .topbar .brand span{font-weight:650; letter-spacing:-.02em; color:#fff !important;}
.app .topbar .brand small{color:rgba(255,255,255,.85) !important; font-weight:500;}
.app .topbar .top-label{color:rgba(255,255,255,.92) !important; font-weight:600; letter-spacing:-.01em;}
.app .topbar .icon-button svg,.app .topbar .zoom-lens svg{stroke:#fff !important;}
.app .topbar .brand img{filter:brightness(0) invert(1);}
.app .topbar .zoom-button{border-radius:var(--r-ctrl) !important; border:1px solid rgba(255,255,255,.55) !important; background:rgba(255,255,255,.14) !important; color:#fff !important;}
.app .topbar .zoom-button:hover{background:rgba(255,255,255,.24) !important;}
.app .header-search input{border-radius:var(--r-ctrl) !important;}

/* ---------- Hero: cinematic red ---------- */
.home .home-hero.home-hero-calendar{
  position:relative; overflow:hidden;
  border-radius:var(--r-xl) !important;
  background:var(--brand-grad) !important;
  color:var(--ink-on-brand) !important;
  padding:clamp(40px,7vw,92px) clamp(28px,6vw,88px) !important;
  border:0 !important; box-shadow:var(--sh-brand) !important;
  display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:clamp(28px,5vw,64px);
  margin-bottom:clamp(28px,5vw,64px);
}
.home .home-hero.home-hero-calendar::after{
  content:""; position:absolute; inset:-30% -10% auto auto; width:60%; height:120%;
  background:radial-gradient(circle at 70% 30%,rgba(255,255,255,.22),transparent 60%); pointer-events:none;
}
.home .home-hero .eyebrow{
  color:rgba(255,255,255,.86) !important; font-weight:650; letter-spacing:.02em;
  text-transform:uppercase; font-size:.9rem; margin-bottom:16px;
}
.home .home-hero h1{
  margin:0; font-size:clamp(3rem,7vw,6.2rem); font-weight:700; line-height:.92;
  letter-spacing:-.05em; color:#fff !important;
}
.home .home-hero p{
  max-width:34ch; margin-top:22px; color:rgba(255,255,255,.9) !important;
  font-size:clamp(1.1rem,1.7vw,1.5rem); font-weight:500; line-height:1.35; letter-spacing:-.02em;
}
.home .home-hero .hero-calendar-action{
  display:inline-flex; align-items:center; gap:.4em; margin-top:30px;
  min-height:46px; padding:12px 26px; border-radius:var(--r-ctrl);
  background:#fff; color:var(--brand-deep); font-weight:650; letter-spacing:-.01em;
  box-shadow:0 10px 30px rgba(0,0,0,.18); transition:transform .18s ease, box-shadow .18s ease;
}
.home .home-hero .hero-calendar-action:hover{transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,.24);}
.home .home-hero img{
  width:100%; border-radius:var(--r-md);
  box-shadow:0 40px 80px rgba(0,0,0,.35); background:#fff;
}
@media (max-width:820px){
  .home .home-hero.home-hero-calendar{grid-template-columns:1fr; text-align:left;}
}

/* ---------- Latest update: quiet elevated card ---------- */
.home .home-latest-update{
  background:var(--surface) !important; border:1px solid var(--border) !important;
  border-radius:var(--r-lg) !important; box-shadow:var(--sh-sm) !important;
  padding:clamp(24px,4vw,44px) !important; margin-bottom:clamp(28px,5vw,56px);
}
.home .home-latest-update .latest-kicker{
  color:var(--brand) !important; font-weight:650; letter-spacing:-.01em; text-transform:none;
}
.home .home-latest-update h2{
  margin:.4em 0 .2em; font-size:clamp(1.6rem,3vw,2.6rem); font-weight:700;
  letter-spacing:-.03em; line-height:1.05; color:var(--ink) !important;
}
.home .home-latest-update p{color:var(--ink-2) !important; font-size:clamp(1.05rem,1.6vw,1.25rem); line-height:1.4; max-width:60ch;}

/* ---------- Buttons ---------- */
.home .primary,.cookie-banner .primary{
  min-height:46px; padding:12px 24px; border:0 !important; border-radius:var(--r-ctrl) !important;
  background:var(--brand) !important; color:#fff !important; font-weight:600; letter-spacing:-.01em;
  cursor:pointer; transition:background .18s ease, transform .12s ease;
}
.home .primary:hover,.cookie-banner .primary:hover{background:var(--brand-hi) !important;}
.home .primary:active,.cookie-banner .primary:active{transform:scale(.97);}
.home .secondary,.cookie-banner .secondary{
  min-height:46px; padding:12px 22px; border:1px solid var(--border) !important; border-radius:var(--r-ctrl) !important;
  background:#fff !important; color:var(--ink) !important; font-weight:600; cursor:pointer;
  transition:transform .12s ease, border-color .18s ease;
}
.home .secondary:hover{border-color:rgba(0,0,0,.22) !important; transform:translateY(-1px);}

/* ---------- Section titles ---------- */
.home .quick-title h2{
  font-size:clamp(1.9rem,4vw,3.2rem); font-weight:700; letter-spacing:-.04em; line-height:1;
  color:var(--ink) !important; margin:0;
}
.home .quick-title p{color:var(--ink-2) !important; margin-top:.4em; font-size:clamp(1.05rem,1.6vw,1.3rem);}
.home .quick-title{margin:clamp(32px,6vw,72px) 0 clamp(18px,3vw,28px) !important;}

/* ---------- Bento cards ---------- */
.home .home-grid{
  display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(14px,1.6vw,22px);
}
.home .home-card{
  position:relative; text-align:left; grid-column:span 2;
  min-height:210px; padding:clamp(22px,2.4vw,32px) !important;
  background:var(--surface) !important; border:1px solid var(--border) !important;
  border-radius:var(--r-lg) !important; box-shadow:var(--sh-sm) !important;
  display:flex; flex-direction:column; gap:8px; cursor:pointer;
  transition:transform .2s cubic-bezier(.22,1,.36,1), box-shadow .2s ease;
}
.home .home-card:hover{transform:translateY(-3px); box-shadow:var(--sh-md) !important;}
/* First card dominant */
.home .home-card:first-child{grid-column:span 3; min-height:260px;}
.home .home-card:nth-child(2){grid-column:span 3;}
.home .home-card-icon{
  display:inline-grid; place-items:center; width:44px; height:44px; margin-bottom:6px;
  border-radius:14px; background:linear-gradient(135deg,var(--brand),var(--brand-deep));
  color:#fff !important; font-weight:700; font-size:.9rem; letter-spacing:-.02em;
  box-shadow:0 8px 20px rgba(176,12,24,.28);
}
.home .home-card h3{margin:0; font-size:clamp(1.25rem,1.9vw,1.7rem); font-weight:650; letter-spacing:-.03em; color:var(--ink) !important;}
.home .home-card p{margin:0; color:var(--ink-2) !important; font-size:1rem; line-height:1.35; flex:1;}
.home .home-card .go{margin-top:6px; color:var(--brand) !important; font-weight:600; letter-spacing:-.01em;}
@media (max-width:820px){
  .home .home-grid{grid-template-columns:1fr;}
  .home .home-card,.home .home-card:first-child,.home .home-card:nth-child(2){grid-column:1/-1; min-height:0;}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important; animation-duration:.01ms !important;}
}
