/* DOC EYES — Lenskart-inspired UX components */

/* ── Sub-nav category bar ── */
.sub-nav{background:var(--surface,#fff);border-bottom:1px solid var(--border,#e2e8f0);position:sticky;top:68px;z-index:90}
.sub-nav-inner{max-width:var(--container,1200px);margin:0 auto;padding:0 var(--gutter,24px);display:flex;gap:0;overflow-x:auto;scrollbar-width:none}
.sub-nav-inner::-webkit-scrollbar{display:none}
.sub-nav-link{padding:12px 20px;font-size:.82rem;font-weight:700;color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s;text-decoration:none}
.sub-nav-link:hover{color:var(--text,#0f172a)}
.sub-nav-link.active{color:var(--grad-blue,#3b82f6);border-bottom-color:var(--grad-blue,#3b82f6)}

/* ── Category tiles ── */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:700px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
.cat-tile{position:relative;aspect-ratio:4/3;border-radius:24px;overflow:hidden;cursor:pointer;transition:transform .3s,box-shadow .3s;display:block;text-decoration:none}
.cat-tile:hover{transform:translateY(-4px);box-shadow:0 25px 50px -12px rgba(0,0,0,.3)}
.cat-tile-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.cat-tile-bg svg,.cat-tile-icon{width:80px!important;height:80px!important;opacity:.12!important;flex-shrink:0}
.cat-tile-content{position:absolute;bottom:0;left:0;right:0;padding:20px;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent);z-index:2}
.cat-tile-label{font-family:var(--font-display,'system-ui');font-weight:800;font-size:clamp(1.1rem,2vw,1.4rem);color:#fff}
.cat-tile-count{font-size:.82rem;color:rgba(255,255,255,.7);margin-top:2px}

/* ── Shape browser ── */
.shape-strip{display:flex;gap:16px;overflow-x:auto;padding:8px 0 16px;scrollbar-width:none}
.shape-strip::-webkit-scrollbar{display:none}
.shape-item{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;transition:transform .2s;text-decoration:none}
.shape-item:hover{transform:translateY(-3px)}
.shape-circle{width:80px;height:80px;border-radius:50%;background:var(--surface,#fff);border:2px solid var(--border,#e2e8f0);display:flex;align-items:center;justify-content:center;transition:border-color .2s,background .2s;overflow:hidden}
.shape-item:hover .shape-circle{border-color:var(--grad-blue,#3b82f6);background:var(--surface-tint-blue,#eff6ff)}
.shape-circle svg{width:52px;height:28px}
.shape-label{font-size:.78rem;font-weight:700;color:var(--text-muted,#64748b);text-align:center}

/* ── Product cards ── */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
@media(max-width:600px){.product-grid{grid-template-columns:1fr 1fr;gap:10px}}
.product-card{background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:24px;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s;cursor:pointer;position:relative}
.product-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px -5px rgba(0,0,0,.15);border-color:var(--grad-blue,#3b82f6)}
.product-img{aspect-ratio:4/3;background:#edf2f7;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;border-bottom:1px solid var(--border,#e2e8f0)}
[data-theme="dark"] .product-img{background:#162243}
.product-img img{width:100%;height:100%;object-fit:contain;object-position:center;padding:12px 16px}
.product-img img[src=""]{display:none}
.product-img .try-badge{position:absolute;top:10px;right:10px;display:flex;align-items:center;gap:5px;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);color:#fff;font-size:.72rem;font-weight:700;padding:5px 10px;border-radius:999px}
.product-img .new-badge{position:absolute;top:10px;left:10px;background:#f59e0b;color:#1a0800;font-size:.68rem;font-weight:800;padding:4px 10px;border-radius:999px}
.product-info{padding:14px 16px 16px}
.product-brand{font-size:.72rem;font-weight:700;color:var(--grad-blue,#3b82f6);letter-spacing:.1em;text-transform:uppercase}
.product-name{font-size:1rem;font-weight:800;color:var(--text,#0f172a);margin:3px 0 2px;letter-spacing:-.2px}
.product-meta{font-size:.8rem;color:var(--text-muted,#64748b);margin-bottom:12px}
.product-bottom{display:flex;align-items:center;justify-content:space-between}
.product-price{font-family:var(--font-display,'system-ui');font-weight:900;font-size:1.2rem;color:var(--text,#0f172a)}
.product-price .cur{font-size:.75rem;font-weight:600;color:var(--text-muted,#64748b);margin-left:2px}
.product-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.product-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:999px;font-size:.78rem;font-weight:700;border:none;cursor:pointer;transition:all .2s;flex-shrink:0;text-decoration:none}
.btn-tryon{background:linear-gradient(135deg,#2dd4bf,#3b82f6);color:#fff}
.btn-tryon:hover{box-shadow:0 4px 14px rgba(59,130,246,.35)}
.btn-rx{background:#1e40af;color:#fff}
.btn-rx:hover{background:#1e3a8a}
.btn-tint{background:#f59e0b;color:#1a0800}

/* ── Brand strip ── */
.brand-strip{display:flex;gap:20px;overflow-x:auto;padding:12px 0;scrollbar-width:none}
.brand-strip::-webkit-scrollbar{display:none}
.brand-chip{flex-shrink:0;padding:12px 28px;background:var(--surface,#fff);border:1.5px solid var(--border,#e2e8f0);border-radius:999px;font-family:var(--font-display,'system-ui');font-weight:800;font-size:.95rem;color:var(--text,#0f172a);letter-spacing:-.2px;cursor:pointer;transition:all .2s;white-space:nowrap;text-decoration:none}
.brand-chip:hover{border-color:var(--grad-blue,#3b82f6);color:var(--grad-blue,#3b82f6);transform:translateY(-2px)}

/* ── Services row ── */
.services-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:800px){.services-row{grid-template-columns:repeat(2,1fr)}}
.service-tile{background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:16px;padding:20px;text-align:center;transition:transform .2s,border-color .2s}
.service-tile:hover{transform:translateY(-2px);border-color:var(--grad-blue,#3b82f6)}
.service-tile-icon{width:48px;height:48px;margin:0 auto 12px;border-radius:14px;display:grid;place-items:center}
.service-tile-title{font-weight:800;font-size:.95rem;color:var(--text,#0f172a);margin-bottom:4px}
.service-tile-desc{font-size:.82rem;color:var(--text-muted,#64748b);line-height:1.4}

/* ── Promo banner ── */
.promo-banner{background:linear-gradient(135deg,#2dd4bf,#3b82f6);border-radius:24px;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff;overflow:hidden;position:relative}
.promo-banner::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.15)}
.promo-text h3{font-size:1.3rem;font-weight:800;color:#fff;margin-bottom:4px}
.promo-text p{font-size:.92rem;color:rgba(255,255,255,.85)}
@media(max-width:640px){.promo-banner{flex-direction:column;text-align:center}}

/* ── Hero with embedded category cards ── */
.hero-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  position: relative;
  z-index: 1;
}
@media (max-width: 900px) {
  .hero-split { grid-template-columns: 1fr; gap: 24px; }
}
.hero-left h1 { color: white; font-size: clamp(2rem, 5vw, 3.2rem); margin: 12px 0 16px; line-height: 1.05; }
.hero-left .hero-lead { color: rgba(255,255,255,0.8); max-width: 480px; font-size: clamp(0.95rem, 1.3vw, 1.1rem); }
.hero-left .hero-buttons { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }

/* Category cards grid in hero */
.hero-cats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.hero-cat-card {
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 16px;
  padding: 18px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: white;
  text-decoration: none;
  transition: background .25s, transform .25s, border-color .25s;
  cursor: pointer;
}
.hero-cat-card:hover {
  background: rgba(255,255,255,0.18);
  transform: translateY(-2px);
  border-color: rgba(255,255,255,0.35);
}
.hero-cat-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(255,255,255,0.15);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.hero-cat-label {
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: -0.1px;
}
.hero-cat-sub {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.6);
  margin-top: 1px;
}

/* Override old hero-inner grid */
.hero .hero-inner {
  display: block !important;
  grid-template-columns: none !important;
  max-width: none !important;
}

/* ── Smooth section transitions ── */
section { transition: opacity 0.3s ease; }

/* ── Insurance badge (compact) ── */
.ins-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: rgba(16,185,129,0.15);
  border: 1px solid rgba(16,185,129,0.25);
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
  margin-top: 16px;
}
.ins-badge svg { flex-shrink: 0; }

/* ── Hero category cards (blurred background style) ── */
.hero-cats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.hero-cat-card {
  position: relative;
  aspect-ratio: 3/4;
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  text-decoration: none;
  display: block;
  border: 1px solid rgba(255,255,255,0.1);
}
.hero-cat-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(0,0,0,0.35);
}
.hero-cat-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: blur(6px) brightness(0.75);
  transform: scale(1.15);
  transition: filter 0.3s ease, transform 0.4s ease;
  z-index: 1;
}
.hero-cat-card:hover .hero-cat-bg {
  filter: blur(3px) brightness(0.6);
  transform: scale(1.2);
}
.hero-cat-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 2;
  background: linear-gradient(to bottom, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.1) 100%);
  text-align: center;
  padding: 20px;
}
.hero-cat-title {
  font-family: var(--font-display, 'system-ui');
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-shadow: 0 4px 15px rgba(0,0,0,0.8), 0 10px 30px rgba(0,0,0,0.6);
  transition: transform 0.3s ease;
  line-height: 1.1;
}
.hero-cat-card:hover .hero-cat-title {
  transform: scale(1.05);
}
.hero-cat-subtitle {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.85);
  margin-top: 8px;
  font-weight: 400;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}
.hero-cat-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: none;
  display: none; /* hidden in this style */
}

/* Override old hero-cat-card styles */
.hero-cat-label, .hero-cat-sub { display: none; }

@media (max-width: 900px) {
  .hero-cats { gap: 10px; }
  .hero-cat-card { aspect-ratio: 1/1; }
  .hero-cat-title { font-size: 1.3rem; }
}
@media (max-width: 500px) {
  .hero-cats { grid-template-columns: 1fr 1fr; }
  .hero-cat-card { aspect-ratio: 3/4; }
}

/* ── 3D Model Viewer in product cards ── */
.product-img model-viewer {
  width: 100%;
  height: 100%;
  --poster-color: transparent;
}
.product-img model-viewer::part(default-progress-bar) {
  background: linear-gradient(135deg, #2DD4BF, #3B82F6);
  height: 3px;
}
.product-card:hover model-viewer {
  --auto-rotate-speed: 60deg;
}
.badge-3d {
  position: absolute;
  bottom: 10px;
  left: 10px;
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(45,212,191,0.15);
  backdrop-filter: blur(8px);
  color: #2DD4BF;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(45,212,191,0.25);
  z-index: 3;
}