/* Home hero carousel — full-bleed photo + gradient overlay (Vetro-like) */
.hc{
  position:relative;
  width:100%;
  background:#dfe6eb;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
.hc-viewport{
  position:relative;
  width:100%;
  min-height:clamp(420px,56vh,620px);
  overflow:hidden;
}
.hc-track{
  display:flex;
  height:100%;
  min-height:inherit;
  transition:transform .75s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}
.hc-slide{
  position:relative;
  flex:0 0 100%;
  width:100%;
  min-height:inherit;
  overflow:hidden;
  background:#e8eef2;
}

/* product plane — one continuous field, no hard split */
.hc-media{
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(ellipse 55% 70% at 68% 48%,#ffffff 0%,#e8eef2 55%,#d5dee6 100%);
}
.hc-media img{
  position:absolute;
  top:50%;
  right:clamp(-2%,4vw,6%);
  width:min(58vw,620px);
  max-height:92%;
  height:auto;
  transform:translateY(-46%) scale(.96);
  object-fit:contain;
  object-position:center;
  mix-blend-mode:multiply;
  opacity:.9;
  transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .6s;
  pointer-events:none;
  user-select:none;
}
.hc-slide.is-active .hc-media img{
  transform:translateY(-50%) scale(1);
  opacity:1;
}

/* gradient ON TOP of the photo — readable text, unified banner */
.hc-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(10,26,40,.94) 0%,
      rgba(13,34,54,.88) 22%,
      rgba(13,34,54,.55) 42%,
      rgba(13,34,54,.18) 62%,
      rgba(13,34,54,0) 78%),
    linear-gradient(180deg,
      rgba(10,26,40,.2) 0%,
      transparent 28%,
      transparent 70%,
      rgba(10,26,40,.35) 100%);
}
.hc-slide[data-tone="2"] .hc-shade{
  background:
    linear-gradient(90deg,
      rgba(18,36,28,.93) 0%,
      rgba(28,52,42,.82) 24%,
      rgba(28,52,42,.4) 48%,
      transparent 76%),
    linear-gradient(180deg,rgba(10,26,40,.15),transparent 30%,rgba(10,26,40,.3) 100%);
}
.hc-slide[data-tone="2"] .hc-media{
  background:radial-gradient(ellipse 55% 70% at 68% 48%,#fff8f0 0%,#ebe4d8 60%,#d9d0c2 100%);
}
.hc-slide[data-tone="3"] .hc-shade{
  background:
    linear-gradient(90deg,
      rgba(8,22,36,.95) 0%,
      rgba(12,38,58,.85) 24%,
      rgba(12,38,58,.4) 48%,
      transparent 76%),
    linear-gradient(180deg,rgba(8,22,36,.2),transparent 30%,rgba(8,22,36,.35) 100%);
}
.hc-slide[data-tone="4"] .hc-shade{
  background:
    linear-gradient(90deg,
      rgba(36,24,12,.94) 0%,
      rgba(58,40,18,.78) 26%,
      rgba(58,40,18,.35) 50%,
      transparent 76%),
    linear-gradient(180deg,rgba(20,14,8,.2),transparent 30%,rgba(20,14,8,.35) 100%);
}
.hc-slide[data-tone="4"] .hc-media{
  background:radial-gradient(ellipse 55% 70% at 68% 48%,#fffaf3 0%,#f0e6d6 55%,#ddd0bc 100%);
}
.hc-slide[data-tone="5"] .hc-shade{
  background:
    linear-gradient(90deg,
      rgba(12,12,14,.95) 0%,
      rgba(22,22,26,.86) 24%,
      rgba(22,22,26,.4) 48%,
      transparent 76%),
    linear-gradient(180deg,rgba(0,0,0,.25),transparent 30%,rgba(0,0,0,.4) 100%);
}
.hc-slide[data-tone="5"] .hc-media{
  background:radial-gradient(ellipse 55% 70% at 68% 48%,#f2f2f2 0%,#e0e0e0 55%,#c8c8c8 100%);
}
.hc-slide[data-tone="5"] .hc-media img{mix-blend-mode:darken}

.hc-copy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
  min-height:inherit;
  width:min(520px,58%);
  padding:48px clamp(20px,4vw,56px) 88px;
}
.hc-sku{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brass-2);
  display:flex;
  align-items:center;
  gap:10px;
}
.hc-sku::before{
  content:"";
  width:28px;
  height:2px;
  background:var(--brass);
  flex-shrink:0;
}
.hc-copy h2{
  font-family:var(--disp);
  font-weight:700;
  font-size:clamp(34px,4.6vw,58px);
  line-height:.94;
  letter-spacing:.01em;
  text-transform:uppercase;
  color:#fff;
  margin:0;
  text-shadow:0 2px 24px rgba(0,0,0,.25);
}
.hc-copy h2 em{
  font-style:normal;
  color:var(--brass-soft);
  display:block;
}
.hc-copy p{
  font-family:var(--sans);
  font-size:clamp(14px,1.15vw,16.5px);
  line-height:1.45;
  color:rgba(255,255,255,.82);
  max-width:34ch;
  margin:0;
}
.hc-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  align-self:flex-start;
  margin-top:6px;
  height:46px;
  padding:0 22px;
  background:var(--brass);
  color:#241402;
  font-family:var(--disp);
  font-weight:600;
  font-size:13.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  border:none;
  transition:background .2s,transform .25s;
}
.hc-cta svg{width:15px;height:15px}
.hc-cta:hover{background:var(--brass-2);transform:translateX(3px)}

.hc-copy > *{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1);
}
.hc-slide.is-active .hc-copy > *{
  opacity:1;
  transform:none;
}
.hc-slide.is-active .hc-copy > *:nth-child(1){transition-delay:.08s}
.hc-slide.is-active .hc-copy > *:nth-child(2){transition-delay:.16s}
.hc-slide.is-active .hc-copy > *:nth-child(3){transition-delay:.24s}
.hc-slide.is-active .hc-copy > *:nth-child(4){transition-delay:.32s}

.hc-nav{
  position:absolute;
  top:50%;
  z-index:5;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border:1.5px solid rgba(255,255,255,.35);
  background:rgba(13,34,54,.4);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  backdrop-filter:blur(6px);
  transition:border-color .2s,background .2s,color .2s;
}
.hc-nav svg{width:18px;height:18px}
.hc-nav:hover{border-color:var(--brass);color:var(--brass-2);background:rgba(13,34,54,.65)}
.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-family:var(--mono);
  font-size:13px;
  letter-spacing:.08em;
  color:rgba(255,255,255,.55);
  display:flex;
  align-items:baseline;
  gap:6px;
}
.hc-frac b{
  font-weight:600;
  font-size:18px;
  color:var(--brass-2);
  letter-spacing:.04em;
}
.hc-dots{
  display:flex;
  align-items:center;
  gap:8px;
}
.hc-dot{
  width:36px;
  height:3px;
  padding:0;
  border:none;
  background:rgba(255,255,255,.3);
  cursor:pointer;
  transition:background .25s,width .25s;
}
.hc-dot:hover{background:rgba(255,255,255,.55)}
.hc-dot.is-on{
  background:var(--brass);
  width:52px;
}

@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:300px;
    flex-shrink:0;
  }
  .hc-media img{
    right:50%;
    width:min(78%,360px);
    max-height:88%;
    transform:translate(50%,-46%) scale(.96);
  }
  .hc-slide.is-active .hc-media img{
    transform:translate(50%,-50%) scale(1);
  }
  .hc-shade{
    background:
      linear-gradient(180deg,
        rgba(10,26,40,.96) 0%,
        rgba(13,34,54,.92) 55%,
        rgba(13,34,54,.55) 78%,
        rgba(13,34,54,.15) 100%) !important;
  }
  .hc-copy{
    order:1;
    width:100%;
    min-height:0;
    padding:32px var(--gutter) 24px;
  }
  .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:32px}
  .hc-media{height:260px}
  .hc-dot{width:28px}
  .hc-dot.is-on{width:40px}
}

/* L1 category tiles — mini banners after heading */
.home-cats{
  padding:8px 0 48px;
  background:
    linear-gradient(180deg,#f2f5f7 0%,#fff 40%);
  border-bottom:1px solid var(--line);
}
.hcats-head{
  font-family:var(--disp);
  font-weight:600;
  font-size:clamp(18px,1.8vw,24px);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink);
  margin:0 0 18px;
  display:flex;
  align-items:center;
  gap:12px;
}
.hcats-head::before{
  content:"";
  width:28px;
  height:2px;
  background:var(--brass);
  flex-shrink:0;
}
.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;
  background:#1a2430;
  isolation:isolate;
  transition:transform .28s cubic-bezier(.22,1,.36,1);
}
.hcat:hover{transform:translateY(-3px)}
.hcat:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

.hcat-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:#1a2430;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.hcat:hover .hcat-media{transform:scale(1.05)}
.hcat-media img{
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  transform:none;
  pointer-events:none;
  user-select:none;
  filter:saturate(.92) contrast(1.04);
  opacity:1;
}

/* light-transmitting overlay: keep midtones, darken for type */
.hcat-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg,
      rgba(8,18,28,.12) 0%,
      rgba(8,18,28,.08) 28%,
      rgba(8,18,28,.35) 52%,
      rgba(6,14,22,.72) 78%,
      rgba(4,10,18,.92) 100%),
    linear-gradient(90deg,
      rgba(6,14,22,.28) 0%,
      rgba(6,14,22,.08) 38%,
      transparent 68%);
  mix-blend-mode:multiply;
  opacity:.88;
}
.hcat-shade::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,
      transparent 40%,
      rgba(4,10,18,.55) 78%,
      rgba(4,10,18,.82) 100%);
  mix-blend-mode:normal;
  pointer-events:none;
}
.hcat:hover .hcat-shade{opacity:.78}
.hcat:nth-child(5n+2) .hcat-shade{
  background:
    linear-gradient(180deg,
      rgba(10,28,22,.1) 0%,
      rgba(10,28,22,.08) 30%,
      rgba(8,24,18,.38) 55%,
      rgba(6,18,14,.74) 80%,
      rgba(4,14,10,.93) 100%),
    linear-gradient(90deg,rgba(6,18,14,.25) 0%,transparent 65%);
  mix-blend-mode:multiply;
  opacity:.88;
}
.hcat:nth-child(5n+3) .hcat-shade{
  background:
    linear-gradient(180deg,
      rgba(36,24,10,.12) 0%,
      rgba(32,22,8,.1) 30%,
      rgba(28,18,6,.4) 55%,
      rgba(18,12,4,.76) 80%,
      rgba(14,8,2,.94) 100%),
    linear-gradient(90deg,rgba(18,12,4,.25) 0%,transparent 65%);
  mix-blend-mode:multiply;
  opacity:.88;
}
.hcat:nth-child(5n+4) .hcat-shade{
  background:
    linear-gradient(180deg,
      rgba(16,16,20,.14) 0%,
      rgba(14,14,18,.1) 30%,
      rgba(10,10,12,.42) 55%,
      rgba(6,6,8,.78) 80%,
      rgba(4,4,6,.95) 100%),
    linear-gradient(90deg,rgba(6,6,8,.28) 0%,transparent 65%);
  mix-blend-mode:multiply;
  opacity:.88;
}
.hcat:nth-child(5n+5) .hcat-shade{
  background:
    linear-gradient(180deg,
      rgba(12,28,44,.12) 0%,
      rgba(10,24,38,.1) 30%,
      rgba(8,20,34,.4) 55%,
      rgba(6,14,26,.76) 80%,
      rgba(4,10,20,.94) 100%),
    linear-gradient(90deg,rgba(6,14,26,.25) 0%,transparent 65%);
  mix-blend-mode:multiply;
  opacity:.88;
}

.hcat-title{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:14px 12px 12px;
  display:flex;
  flex-direction:column;
  gap:5px;
  align-items:flex-start;
}
.hcat-title::before{
  content:"";
  display:block;
  width:22px;
  height:2px;
  background:var(--brass);
  margin-bottom:2px;
}
.hcat:hover .hcat-title::before{width:34px;transition:width .25s}
.hcat-name{
  font-family:var(--disp);
  font-weight:600;
  font-size:clamp(12.5px,1.05vw,15px);
  line-height:1.15;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 1px 12px rgba(0,0,0,.4);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.hcat-desc{
  font-family:var(--sans);
  font-weight:400;
  font-size:11.5px;
  line-height:1.3;
  letter-spacing:0;
  text-transform:none;
  color:rgba(255,255,255,.72);
  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));gap:10px}
  .hcat-title{padding:12px 11px 11px}
  .hcat-name{font-size:13px}
}
@media(max-width:400px){
  .hcats{grid-template-columns:1fr}
  .hcat{aspect-ratio:1.35 / 1}
}
