/* ============================================================
   SUPER 313 — Immersive Lookbook Catalogue  (namespace: .lb-)
   Full-screen cinematic stage → design/size toggles → gallery.
   Uses site palette vars from style.css.
   ============================================================ */
.lb { position: relative; background: #0b0a08; color: #fff; overflow: hidden; padding: 0; }
.lb-step[hidden] { display: none; }

/* ---------------- THE STAGE ---------------- */
.lb-stage { position: relative; min-height: 100vh; min-height: 100svh; }

.lb-bg { position: absolute; inset: 0; z-index: 0; }
.lb-layer {
  position: absolute; inset: 0; background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1.1s var(--ease); will-change: opacity, transform;
}
.lb-layer.on { opacity: 1; animation: lbKen 16s ease forwards; }
@keyframes lbKen { from { transform: scale(1.03); } to { transform: scale(1.13); } }

.lb-shade {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(10,9,7,.92) 0%, rgba(10,9,7,.5) 38%, rgba(10,9,7,.22) 58%, rgba(10,9,7,.66) 100%),
    linear-gradient(0deg, rgba(10,9,7,.9) 0%, rgba(10,9,7,0) 46%);
}

.lb-inner {
  position: relative; z-index: 2; min-height: 100vh; min-height: 100svh;
  padding: clamp(6.5rem, 14vh, 9rem) var(--pad) clamp(2.6rem, 7vh, 4.6rem);
  display: flex; flex-direction: column; justify-content: flex-end;
}

.lb-eyebrow {
  position: absolute; top: clamp(6.4rem, 13vh, 8.4rem); left: var(--pad);
  font-size: .58rem; letter-spacing: .42em; text-transform: uppercase; color: #E8D9B8;
}

/* index rail (right, vertical) */
.lb-index {
  position: absolute; top: 50%; right: var(--pad); left: auto; width: max-content; transform: translateY(-50%);
  display: flex; flex-direction: column; gap: .45rem; align-items: flex-end; z-index: 4;
  text-shadow: 0 1px 18px rgba(8,6,4,.85), 0 1px 4px rgba(8,6,4,.6);
}
.lb-item {
  display: inline-flex; align-items: baseline; gap: 1rem; justify-content: flex-end;
  background: none; border: 0; cursor: pointer; color: rgba(255,255,255,.82);
  padding: .5rem 0; transition: color .4s var(--ease), transform .4s var(--ease);
}
.lb-item:hover { color: #fff; transform: translateX(-6px); }
.lb-item .lb-num { font-size: .68rem; letter-spacing: .18em; font-variant-numeric: tabular-nums; color: var(--gold); opacity: .85; }
.lb-item .lb-lbl { font-family: var(--serif); font-weight: 400; font-size: clamp(1.5rem, 2vw, 1.9rem); line-height: 1.1; }
.lb-item.is-on { color: var(--gold); }
.lb-item.is-on .lb-lbl { font-style: italic; }
.lb-item:not(.is-on) .lb-num { color: rgba(255,255,255,.55); }

/* panel (lower-left) — absolute-anchored so the CTA always clears the fold */
.lb-panel { position: absolute; left: var(--pad); bottom: clamp(2rem, 5vh, 3.4rem); z-index: 3; max-width: min(48rem, 70%); }
.lb-kind { display: block; font-size: .58rem; letter-spacing: .32em; text-transform: uppercase; color: var(--gold); margin-bottom: .85rem; }
.lb-name { font-family: var(--serif); font-weight: 300; font-size: clamp(2.4rem, 5.4vw, 4.6rem); line-height: 1; letter-spacing: -.02em; margin-bottom: .85rem; }
.lb-name em { font-style: italic; color: #E8D9B8; }
.lb-blurb { max-width: 32rem; font-size: .92rem; line-height: 1.55; color: rgba(255,255,255,.78); }

.lb-rule { width: 100%; max-width: 38rem; height: 1px; background: rgba(255,255,255,.16); margin: clamp(1.1rem, 2.2vh, 1.7rem) 0; }

/* design + size toggles */
.lb-controls { display: flex; flex-wrap: wrap; gap: clamp(1.5rem, 3vw, 2.8rem); margin-bottom: clamp(1.4rem, 2.6vh, 1.9rem); }
.lb-seg-cap { display: block; font-size: .55rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-bottom: .85rem; }
.lb-seg-row { display: flex; gap: 1.7rem; flex-wrap: wrap; }
.lb-opt {
  position: relative; background: none; border: 0; cursor: pointer; color: rgba(255,255,255,.55);
  font-family: var(--serif); font-size: 1.15rem; padding: .1rem 0 .55rem; transition: color .35s var(--ease);
}
.lb-opt::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: var(--gold); transition: right .45s var(--ease); }
.lb-opt:hover { color: #fff; }
.lb-opt.is-on { color: #fff; }
.lb-opt.is-on::after { right: 0; }

/* view CTA */
.lb-cta { display: flex; align-items: center; gap: 1.3rem; flex-wrap: wrap; }
.lb-view {
  display: inline-flex; align-items: center; gap: 1rem; background: none;
  border: 1px solid rgba(255,255,255,.45); color: #fff; cursor: pointer;
  font-size: .64rem; letter-spacing: .28em; text-transform: uppercase; padding: 1.05rem 2.1rem;
  transition: background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease);
}
.lb-view .lb-line { width: 30px; height: 1px; background: currentColor; transition: width .4s var(--ease); display: inline-block; }
.lb-view:hover { background: var(--gold); border-color: var(--gold); color: #111; }
.lb-view:hover .lb-line { width: 46px; }
.lb-view:disabled { opacity: .4; cursor: not-allowed; }

/* huge ghost index number */
.lb-ghost {
  position: absolute; right: calc(var(--pad) + 6.5rem); bottom: -1.5rem; z-index: 3;
  font-family: var(--serif); font-weight: 300; font-style: italic; font-size: 20vw; line-height: 1;
  color: rgba(255,255,255,.05); pointer-events: none; user-select: none;
}

/* ---------------- THE PRODUCTS ---------------- */
.lb-products { position: relative; background: var(--bg); color: #171717; padding: clamp(5rem, 10vh, 7.5rem) var(--pad) clamp(4rem, 9vh, 7rem); min-height: 100vh; animation: lbUp .7s var(--ease) both; }
@keyframes lbUp { from { opacity: 0; transform: translateY(38px); } to { opacity: 1; transform: none; } }
.lb-back { background: none; border: 0; cursor: pointer; color: rgba(23,23,23,.6); font-size: .64rem; letter-spacing: .24em; text-transform: uppercase; display: inline-flex; align-items: center; gap: .6rem; margin-bottom: clamp(2rem, 4vw, 3rem); transition: color .3s; }
.lb-back::before { content: "\2190"; font-size: 1rem; }
.lb-back:hover { color: var(--gold); }

.lb-prod-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 1.7rem; margin-bottom: clamp(2.2rem, 4.5vw, 3.4rem); }
.lb-prod-kind { display: block; font-size: .58rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold); margin-bottom: .8rem; }
.lb-prod-title { font-family: var(--serif); font-weight: 300; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1; letter-spacing: -.01em; }
.lb-prod-title em { font-style: italic; color: var(--gold); }
.lb-prod-count { font-size: .85rem; color: rgba(23,23,23,.55); white-space: nowrap; }

.lb-prod-grid { display: grid; gap: clamp(1rem, 1.5vw, 1.5rem); grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .lb-prod-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px)  { .lb-prod-grid { grid-template-columns: repeat(2, 1fr); } }

.lb-card { position: relative; display: block; overflow: hidden; background: var(--dark); aspect-ratio: 4 / 5; color: #fff; text-decoration: none; isolation: isolate; box-shadow: 0 20px 50px -30px rgba(12,10,8,.5); }
.lb-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.lb-card:hover img { transform: scale(1.07); }
.lb-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,9,7,0) 40%, rgba(10,9,7,.82) 100%); }
.lb-ph { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(145deg, #1b1a17, #2c2a25 55%, #141310); }
.lb-ph-mono { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 2.4rem; color: rgba(184,155,94,.5); }
.lb-card-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 1.1rem 1.2rem 1.15rem;
  display: flex; flex-direction: column; align-items: flex-start; }
.lb-card-code, .lb-card-name { display: block; }
.lb-card-code { font-size: .54rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
.lb-card-name { font-family: var(--serif); font-weight: 400; font-size: 1.12rem; line-height: 1.1; margin-top: .18rem; }
.lb-card-enq { display: inline-flex; align-items: center; gap: .4rem; font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.85); margin-top: .55rem; opacity: 0; transform: translateY(6px); transition: opacity .4s var(--ease), transform .4s var(--ease); }
.lb-card:hover .lb-card-enq { opacity: 1; transform: none; }

/* ============================================================
   LIGHT-BACKGROUND PAGES — make the fixed nav readable straight away.
   (site default is white nav text, which only flips dark on .scrolled)
   ============================================================ */
nav.solid-nav {
  background: rgba(248,247,243,.86);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  border-bottom: 1px solid var(--line-soft);
}
nav.solid-nav .logo { color: var(--ink); }
nav.solid-nav ul a { color: rgba(23,23,23,.75); }
nav.solid-nav ul a.active { color: var(--ink); }
nav.solid-nav .btn { color: var(--ink); }
nav.solid-nav .lang-btn { color: var(--ink); border-color: rgba(23,23,23,.35); }
nav.solid-nav .lang-btn:hover { color: #fff; border-color: var(--gold); }
nav.solid-nav .burger { color: var(--ink); }

/* ============================================================
   PRODUCT DETAIL PAGE (.pd-)
   ============================================================ */
.pd { background: var(--bg); color: #171717; padding: clamp(6.5rem, 13vh, 9rem) var(--pad) clamp(4rem, 9vh, 7rem); min-height: 100vh; }
.pd-inner { max-width: 1240px; margin: 0 auto; }

/* it's a <nav>, so undo the site-wide `nav{position:fixed}` rule */
.pd-crumb { position: static; inset: auto; z-index: auto; padding: 0; background: none; border: 0;
  font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(23,23,23,.5); margin-bottom: clamp(1.8rem, 4vw, 2.8rem); display: flex; gap: .55rem; flex-wrap: wrap; align-items: center; }
.pd-crumb a { color: rgba(23,23,23,.5); text-decoration: none; transition: color .3s; }
.pd-crumb a:hover { color: var(--gold); }
.pd-crumb b { color: #111; font-weight: 500; }

.pd-grid { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (max-width: 900px) { .pd-grid { grid-template-columns: 1fr; } }

.pd-media { position: relative; overflow: hidden; background: var(--dark); aspect-ratio: 4 / 5; box-shadow: 0 30px 70px -35px rgba(12,10,8,.55); }
.pd-media img { width: 100%; height: 100%; object-fit: cover; }

.pd-kind { display: block; font-size: .58rem; letter-spacing: .32em; text-transform: uppercase; color: var(--gold); margin-bottom: .9rem; }
.pd-title { font-family: var(--serif); font-weight: 300; font-size: clamp(2.1rem, 5vw, 3.6rem); line-height: 1.02; letter-spacing: -.02em; }
.pd-code { margin-top: .6rem; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(23,23,23,.55); }
.pd-note { margin-top: 1.3rem; font-size: .95rem; line-height: 1.65; color: rgba(23,23,23,.72); max-width: 34rem; }

.pd-specs { margin-top: clamp(1.8rem, 3.5vw, 2.6rem); border-top: 1px solid var(--line); }
.pd-row { display: grid; grid-template-columns: 12rem 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line-soft); }
@media (max-width: 560px) { .pd-row { grid-template-columns: 8.5rem 1fr; gap: .6rem; } }
.pd-row dt { font-size: .6rem; letter-spacing: .24em; text-transform: uppercase; color: rgba(23,23,23,.5); padding-top: .25rem; }
.pd-row dd { font-family: var(--serif); font-size: 1.02rem; color: #171717; }

.pd-actions { display: flex; gap: .9rem; flex-wrap: wrap; margin-top: clamp(1.8rem, 3.5vw, 2.4rem); }
.pd-cta { display: inline-flex; align-items: center; justify-content: center; background: #111; color: #fff; text-decoration: none; font-size: .64rem; letter-spacing: .26em; text-transform: uppercase; padding: 1.05rem 2rem; transition: background .4s var(--ease), color .4s var(--ease); }
.pd-cta:hover { background: var(--gold); }
.pd-cta.ghost { background: transparent; color: #171717; border: 1px solid rgba(23,23,23,.3); }
.pd-cta.ghost:hover { border-color: var(--gold); color: var(--gold); background: transparent; }
.pd-fine { margin-top: 1.6rem; font-size: .76rem; line-height: 1.6; color: rgba(23,23,23,.5); max-width: 34rem; }

.pd-more { margin-top: clamp(3.5rem, 8vw, 6rem); border-top: 1px solid var(--line); padding-top: clamp(2rem, 4vw, 3rem); }
.pd-more-head { margin-bottom: 1.8rem; }
.pd-more-head h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(1.4rem, 3vw, 2.1rem); margin-top: .5rem; }
.pd-more-grid { display: grid; gap: clamp(1rem, 1.5vw, 1.4rem); grid-template-columns: repeat(6, 1fr); }
@media (max-width: 1000px) { .pd-more-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 620px)  { .pd-more-grid { grid-template-columns: repeat(2, 1fr); } }

.pd-back { display: inline-block; margin-top: clamp(2.5rem, 5vw, 3.5rem); font-size: .64rem; letter-spacing: .24em; text-transform: uppercase; color: rgba(23,23,23,.6); text-decoration: none; transition: color .3s; }
.pd-back::before { content: "\2190"; margin-right: .55rem; }
.pd-back:hover { color: var(--gold); }
.pd-missing { text-align: center; padding: 4rem 0; }
.pd-missing p { margin: 1rem 0 2rem; color: rgba(23,23,23,.6); }

/* ---------------- responsive ---------------- */
@media (max-width: 780px) {
  .lb-inner { justify-content: flex-start; padding-top: 6rem; }
  .lb-eyebrow { position: static; margin-bottom: 1.1rem; }
  .lb-index {
    position: static; transform: none; flex-direction: row; align-items: center;
    gap: 1.3rem; overflow-x: auto; margin-bottom: 1.6rem; padding-bottom: .4rem;
    -webkit-overflow-scrolling: touch;
  }
  .lb-item { padding: .3rem 0; white-space: nowrap; }
  .lb-item .lb-lbl { font-size: .98rem; }
  .lb-panel { position: static; left: auto; bottom: auto; max-width: 100%; margin-top: auto; }
  .lb-ghost { display: none; }
}
