/* 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}
}

/* —— Homepage hub (index.html) —— */
.page-home .search input::placeholder{color:var(--ink-faint)}
.page-home .header .wrap{gap:14px}

html:has(body.page-home){scroll-padding-top:96px}
.page-home #directions,
.page-home #why,
.page-home #projects,
.page-home #siteFooter{scroll-margin-top:96px}

.cl-hero-panel.is-active .cl-cta-row,
.cl-hero-panel.is-active .cl-cta-row > *{pointer-events:auto}

/* Hero: multiple copy panels synced with slides */
.cl-hero-slides-copy{
  position:absolute;z-index:2;
  left:0;right:0;top:0;bottom:0;
  pointer-events:none;
}
.cl-hero-panel{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(56px,10vh,100px) max(var(--gutter),4vw);
  max-width:min(640px,92vw);
  pointer-events:none;
  opacity:0;
  transform:translateY(16px);
  transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1);
}
.cl-hero-panel.is-active{
  opacity:1;transform:none;pointer-events:auto;
}
.cl-hero-panel .cl-brand{margin-bottom:18px}
.cl-hero-panel h1{
  font-family:var(--disp);font-weight:700;
  font-size:clamp(36px,6vw,64px);line-height:.95;
  letter-spacing:.01em;text-transform:uppercase;color:#fff;
  max-width:14ch;margin-bottom:16px;
}
.cl-hero-panel h1 em{font-style:normal;color:var(--brass-soft)}
.cl-hero-panel .cl-hero-geo{
  font-family:var(--mono);font-size:12px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--brass-soft);margin:-4px 0 14px;
  white-space:nowrap;
}
.cl-hero-panel .cl-hero-lead{
  font-size:15.5px;line-height:1.55;color:rgba(255,255,255,.78);
  max-width:46ch;margin-bottom:18px;
}

/* Trust strip */
.hm-trust{
  background:var(--ink);color:#fff;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.hm-trust-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
}
.hm-trust-item{
  padding:22px 20px;
  border-right:1px solid rgba(255,255,255,.1);
  display:flex;flex-direction:column;gap:6px;
}
.hm-trust-item:last-child{border-right:none}
.hm-trust-item b{
  font-family:var(--disp);font-weight:700;
  font-size:clamp(22px,2.8vw,32px);
  letter-spacing:.02em;color:var(--brass-soft);
  line-height:1;
}
.hm-trust-item span{
  font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.55);
}

/* Section head + directions (hcat tiles) */
.hm-section-head{margin-bottom:28px;max-width:720px}
.hm-section-head h2{
  font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(30px,4.5vw,48px);line-height:.94;
  letter-spacing:.01em;color:var(--ink);margin:8px 0 14px;
}
.hm-section-head h2 em{font-style:normal;color:var(--blue)}

.hm-directions.home-cats{
  padding:clamp(48px,7vw,88px) 0;
  background:linear-gradient(180deg,#f4f7f9 0%,#fff 55%);
  border-bottom:1px solid var(--line);
}
.hm-directions .hm-section-head{margin-bottom:28px;max-width:720px}
.hm-directions .hm-section-head h2{
  font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(30px,4.5vw,48px);line-height:.94;
  letter-spacing:.01em;color:var(--ink);margin:8px 0 14px;
}
.hm-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}

/* Spotlight */
.hm-spotlight{
  padding:clamp(52px,7vw,96px) 0;
  background:var(--sheet);
  border-bottom:1px solid var(--line);
}
.hm-spotlight-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(24px,4vw,48px);
  align-items:center;
}
.hm-spotlight-media{
  margin:0;position:relative;overflow:hidden;
  border:1.5px solid var(--ink);
  background:#e8eef2;
  min-height:min(52vh,480px);
}
.hm-spotlight-media img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  display:block;min-height:inherit;
}
.hm-spotlight-media figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:12px 14px;
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:#fff;
  background:linear-gradient(transparent,rgba(10,26,40,.85));
}
.hm-spotlight-copy h2{
  font-family:var(--disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(28px,4vw,44px);line-height:.95;
  letter-spacing:.01em;margin:8px 0 14px;color:var(--ink);
}
.hm-spotlight-copy h2 em{font-style:normal;color:var(--blue)}
.hm-spotlight-list{
  list-style:none;margin:0 0 24px;padding:0;
  display:flex;flex-direction:column;gap:10px;
}
.hm-spotlight-list li{
  position:relative;padding-left:18px;
  font-size:15px;line-height:1.45;color:var(--ink-soft);
}
.hm-spotlight-list li::before{
  content:"";position:absolute;left:0;top:.55em;
  width:8px;height:2px;background:var(--brass);
}
.hm-btn-dark{
  border-color:var(--ink) !important;color:var(--ink) !important;
  background:transparent !important;
}
.hm-btn-dark:hover{border-color:var(--brass) !important;color:var(--brass) !important}

.hm-projects .cl-projects-head{margin-bottom:24px}
.hm-projects-more{
  margin:20px 0 0;text-align:right;
  font-family:var(--disp);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;font-size:13px;
}
.hm-projects-more a{color:var(--ink);text-decoration:none;border-bottom:1.5px solid var(--brass)}
.hm-projects-more a:hover{color:var(--brass)}

.hm-close .cl-cta-row{flex-wrap:wrap}

@media(max-width:1100px){
  .hm-cats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hm-trust-grid{grid-template-columns:repeat(2,1fr)}
  .hm-trust-item:nth-child(2){border-right:none}
  .hm-trust-item:nth-child(1),
  .hm-trust-item:nth-child(2){border-bottom:1px solid rgba(255,255,255,.1)}
  .hm-spotlight-grid{grid-template-columns:1fr}
  .hm-spotlight-media{min-height:38vh}
}
@media(max-width:720px){
  .hm-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .hm-trust-item{padding:18px 16px}
  .cl-hero-panel h1{font-size:32px}
}
@media(max-width:480px){
  .hm-cats{grid-template-columns:1fr}
  .hm-directions .hcat{aspect-ratio:1.35 / 1}
  .hm-trust-grid{grid-template-columns:1fr}
  .hm-trust-item{border-right:none;border-bottom:1px solid rgba(255,255,255,.1)}
  .hm-trust-item:last-child{border-bottom:none}
}

@media (prefers-reduced-motion:reduce){
  .hcat,.hcat-media,.cl-hero-panel{transition:none!important}
}
