/* Home: carousel + L1 tiles — TEKI style, source structure from tcmo3 */
.hc{
  position:relative;
  width:100%;
  background:
    radial-gradient(920px 320px at 0% -10%,rgba(29,78,216,.12),transparent 58%),
    linear-gradient(165deg,#f8fafc 0%,#eef3fa 48%,#e8eef7 100%);
  color:var(--ink);
  overflow:hidden;
  isolation:isolate;
}
.hc-viewport{
  position:relative;
  width:100%;
  min-height:clamp(420px,52vh,560px);
  overflow:hidden;
}
.hc-track{
  display:flex;
  height:100%;
  min-height:inherit;
  transition:transform .75s var(--ease);
  will-change:transform;
}
.hc-slide{
  position:relative;
  flex:0 0 100%;
  width:100%;
  min-height:inherit;
  overflow:hidden;
  background:transparent;
}
.hc-media{
  position:absolute;
  inset:0;
  z-index:0;
}
.hc-media img{
  position:absolute;
  top:50%;
  right:0;
  height:100%;
  width:auto;
  max-width:none;
  transform:translateY(-50%);
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 18%,#000 48%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 18%,#000 48%);
}
.hc-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,#eef3fa 0%,rgba(238,243,250,.96) 28%,rgba(238,243,250,.7) 48%,rgba(238,243,250,.28) 70%,rgba(238,243,250,0) 100%);
}
.hc-copy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:14px;
  min-height:inherit;
  width:min(560px,58%);
  padding:48px clamp(20px,4vw,56px) 88px;
}
.hc-sku{
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--blue);
}
.hc-copy h2{
  font-weight:800;
  font-size:clamp(32px,4.4vw,56px);
  line-height:1.05;
  letter-spacing:-.045em;
  color:var(--ink);
  margin:0;
}
.hc-copy h2 em{font-style:normal;color:var(--blue);display:block}
.hc-copy p{
  font-size:16px;
  line-height:1.55;
  color:var(--ink-soft);
  max-width:42ch;
  margin:0;
}
.hc-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  align-self:flex-start;
  margin-top:6px;
  height:44px;
  padding:0 18px;
  background:var(--blue);
  color:#fff;
  font-weight:650;
  font-size:14px;
  text-decoration:none;
  border:none;
  border-radius:var(--radius-sm);
  box-shadow:0 8px 16px rgba(29,78,216,.28);
  transition:background .2s var(--ease);
}
.hc-cta svg{width:15px;height:15px}
.hc-cta:hover{background:var(--blue-deep)}

.hc-copy > *{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.hc-slide.is-active .hc-copy > *{opacity:1;transform:none}
.hc-slide.is-active .hc-copy > *:nth-child(1){transition-delay:.05s}
.hc-slide.is-active .hc-copy > *:nth-child(2){transition-delay:.1s}
.hc-slide.is-active .hc-copy > *:nth-child(3){transition-delay:.16s}
.hc-slide.is-active .hc-copy > *:nth-child(4){transition-delay:.22s}

.hc-nav{
  position:absolute;
  top:50%;
  z-index:5;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  cursor:pointer;
  display:grid;
  place-items:center;
  border-radius:999px;
  box-shadow:var(--shadow);
  transition:background .15s,border-color .15s;
}
.hc-nav svg{width:18px;height:18px}
.hc-nav:hover{background:var(--ink);color:#fff;border-color:transparent}
.hc-prev{left:max(10px,calc(var(--gutter) - 2px))}
.hc-next{right:max(10px,calc(var(--gutter) - 2px))}

.hc-pager{
  position:absolute;
  left:0;right:0;bottom:0;z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:0 var(--gutter) 22px;
  pointer-events:none;
}
.hc-pager > *{pointer-events:auto}
.hc-frac{
  font-size:13px;
  color:var(--ink-faint);
  display:flex;
  align-items:baseline;
  gap:6px;
}
.hc-frac b{font-weight:800;font-size:18px;color:var(--ink)}
.hc-dots{display:flex;align-items:center;gap:8px}
.hc-dot{
  width:28px;height:4px;padding:0;border:none;border-radius:999px;
  background:#c7d2fe;cursor:pointer;transition:background .25s,width .25s;
}
.hc-dot:hover{background:#93c5fd}
.hc-dot.is-on{background:var(--blue);width:44px}

@media(max-width:900px){
  .hc-viewport{min-height:auto}
  .hc-slide{display:flex;flex-direction:column;min-height:0}
  .hc-media{position:relative;inset:auto;order:2;height:280px;flex-shrink:0}
  .hc-media img{
    right:50%;height:100%;
    transform:translate(50%,0);
    -webkit-mask-image:none;mask-image:none;
  }
  .hc-shade{
    background:linear-gradient(180deg,#eef3fa 0%,rgba(238,243,250,.9) 55%,rgba(238,243,250,.2) 100%);
  }
  .hc-copy{order:1;width:100%;min-height:0;padding:28px var(--gutter) 16px}
  .hc-nav{top:auto;bottom:72px;transform:none}
  .hc-prev{left:var(--gutter)}
  .hc-next{right:var(--gutter)}
}
@media(max-width:560px){
  .hc-copy h2{font-size:30px}
  .hc-media{height:240px}
}

.home-cats{padding:8px 0 48px;background:#fff}
.page-home .cathead{padding:22px 0 4px}
.page-home .cathead .grid-bg{display:none}
.page-home .cathead .wrap{padding:8px var(--gutter) 0}
.page-home .cat-tag{font-size:12.5px;font-weight:600;color:var(--blue);margin-bottom:10px}
.page-home .cathead h1{font-weight:800;line-height:1.05;letter-spacing:-.04em;font-size:clamp(28px,4vw,44px)}
.page-home .cathead h1 em{font-style:normal;color:var(--blue)}
.hcats-head{
  font-weight:800;font-size:clamp(20px,2vw,28px);letter-spacing:-.03em;
  color:var(--ink);margin:0 0 18px;
}
.hcats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.hcat{
  position:relative;display:block;aspect-ratio:1/1.05;overflow:hidden;
  text-decoration:none;color:#fff;border-radius:16px;
  border:1px solid rgba(29,78,216,.1);
  box-shadow:var(--shadow);
  transition:transform .2s var(--ease),box-shadow .2s;
}
.hcat:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.hcat-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.hcat:hover .hcat-media{transform:scale(1.04);transition:transform .45s var(--ease)}
.hcat-media img{width:100%;height:100%;max-width:none;object-fit:cover}
.hcat-shade{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(15,23,42,.08) 0%,rgba(15,23,42,.55) 62%,rgba(15,23,42,.88) 100%);
}
.hcat-title{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:14px 14px 14px;display:flex;flex-direction:column;gap:4px;
}
.hcat-name{
  font-weight:750;font-size:clamp(13px,1.05vw,15px);line-height:1.2;
  color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.hcat-desc{
  font-size:12px;line-height:1.3;color:rgba(255,255,255,.78);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

@media(max-width:1200px){.hcats{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.hcats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.hcats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.hcats{grid-template-columns:1fr}.hcat{aspect-ratio:1.35/1}}
