/* Home: carousel + L1 tiles — TEKI style, source structure from tcmo3 */
.hc{
  position:relative;
  width:100%;
  background:#0f172a;
  color:#fff;
  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:#0f172a;
}
.hc-media{
  position:absolute;
  inset:0;
  z-index:0;
  background:#0f172a;
}
.hc-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.04);
  pointer-events:none;
  user-select:none;
  transition:transform 8s ease-out;
}
.hc-slide.is-active .hc-media img{
  transform:scale(1);
}
.hc-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(15,23,42,.7) 0%,
      rgba(15,23,42,.55) 16%,
      rgba(15,23,42,.38) 32%,
      rgba(15,23,42,.2) 48%,
      rgba(15,23,42,.08) 64%,
      rgba(15,23,42,.03) 78%,
      transparent 100%),
    linear-gradient(180deg,
      rgba(15,23,42,.1) 0%,
      transparent 28%,
      transparent 78%,
      rgba(15,23,42,.12) 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:#93c5fd;
}
.hc-copy h2{
  font-weight:800;
  font-size:clamp(32px,4.4vw,56px);
  line-height:1.05;
  letter-spacing:-.045em;
  color:#fff;
  margin:0;
  text-shadow:0 8px 28px rgba(15,23,42,.35);
}
.hc-copy h2 em{font-style:normal;color:#93c5fd;display:block}
.hc-copy p{
  font-size:16px;
  line-height:1.55;
  color:rgba(226,232,240,.86);
  max-width:42ch;
  margin:0;
}
.hc-points{margin:0;max-width:42ch}
.hc-points p{margin:0 0 8px}
.hc-copy ul{
  margin:0;
  padding:0 0 0 1.15em;
  font-size:16px;
  line-height:1.5;
  color:rgba(226,232,240,.86);
}
.hc-copy ul li{margin:0 0 4px}
.hc-copy h2.hc-h2-sm{font-size:clamp(28px,3.6vw,44px)}
.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 rgba(255,255,255,.28);
  background:rgba(15,23,42,.42);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  border-radius:999px;
  box-shadow:none;
  backdrop-filter:blur(8px);
  transition:background .15s,border-color .15s;
}
.hc-nav svg{width:18px;height:18px}
.hc-nav:hover{background:var(--blue);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:rgba(226,232,240,.55);
  display:flex;
  align-items:baseline;
  gap:6px;
}
.hc-frac b{font-weight:800;font-size:18px;color:#fff}
.hc-dots{display:flex;align-items:center;gap:8px}
.hc-dot{
  width:28px;height:4px;padding:0;border:none;border-radius:999px;
  background:rgba(147,197,253,.32);cursor:pointer;transition:background .25s,width .25s;
}
.hc-dot:hover{background:rgba(147,197,253,.6)}
.hc-dot.is-on{background:#fff;width:44px}

@media(max-width:900px){
  .hc-viewport{min-height:clamp(380px,70vh,520px)}
  .hc-slide{display:block;min-height:inherit}
  .hc-media{position:absolute;inset:0;height:auto}
  .hc-media img{object-position:center 40%}
  .hc-shade{
    background:
      linear-gradient(180deg,
        rgba(15,23,42,.82) 0%,
        rgba(15,23,42,.58) 38%,
        rgba(15,23,42,.18) 72%,
        rgba(15,23,42,.06) 100%) !important;
  }
  .hc-copy{width:100%;min-height:inherit;padding:28px var(--gutter) 72px}
  .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}
}

.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}}

/* === teki2-mobile === */
@media(max-width:900px){
  .hc-copy{padding:24px var(--gutter) 14px}
  .hc-cta{min-height:44px}
}
@media(max-width:560px){
  .hc-copy h2{font-size:clamp(24px,8vw,30px)}
  .hc-copy p{font-size:14px}
  .hc-nav{width:40px;height:40px;bottom:64px}
  .hc-pager{padding:0 var(--gutter) 16px}
  .hcat-title{padding:10px}
  .hcat-name{font-size:13px}
}
@media(max-width:400px){
  .hcats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hcat{aspect-ratio:1.2/1}
}

/* Glass production banner — static illustrated services */
.glass-works{
  padding:28px 0 64px;
  background:#fff;
  border-top:1px solid var(--line);
}
.gw-head{margin-bottom:8px}
.gw-head h2{
  font-weight:800;line-height:1.12;letter-spacing:-.04em;
  font-size:clamp(24px,3.2vw,36px);color:var(--ink);margin:0;
}
.gw-head h2 em{font-style:normal;color:var(--blue)}
.gw-cards{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;
  margin-top:22px;
}
.gw-card{
  position:relative;display:block;aspect-ratio:1/1.05;overflow:hidden;
  border-radius:16px;border:1px solid rgba(29,78,216,.1);
  box-shadow:var(--shadow);color:#fff;
}
.gw-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.gw-media img{width:100%;height:100%;max-width:none;object-fit:cover}
.gw-shade{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(15,23,42,.06) 0%,rgba(15,23,42,.52) 58%,rgba(15,23,42,.88) 100%);
}
.gw-copy{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:14px;display:flex;flex-direction:column;gap:4px;
}
.gw-name{
  font-weight:750;font-size:clamp(14px,1.1vw,16px);line-height:1.2;color:#fff;
}
.gw-hint{font-size:12.5px;line-height:1.3;color:rgba(255,255,255,.78)}
.gw-foot{margin-top:20px;display:flex;justify-content:flex-start}
.glass-works .hc-cta{
  position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:0 18px;border-radius:999px;
  background:var(--blue);color:#fff;text-decoration:none;font-weight:700;font-size:14px;
}
.glass-works .hc-cta svg{width:16px;height:16px}
@media(max-width:900px){.gw-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
  .gw-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .glass-works{padding:20px 0 48px}
  .gw-copy{padding:10px}
}
