/* ─────────────────────────────────────────────────────────────────────────────
   LUX — the shared design system for every page (loaded site-wide in _Layout).
   Obsidian + midnight sapphire, platinum type, Didone display (Libre Bodoni), gold hairlines.
   Brand pages (finlap.css, nordia*.css) build on these tokens. Classes are prefixed lx-.
   ───────────────────────────────────────────────────────────────────────────── */
:root {
  --lx-ink: #05060a; --lx-night: #0a1030; --lx-deep: #070a1f; --lx-cobalt: #2236c9; --lx-ice: #a9c4ff;
  --lx-plat: #e6e9ef; --lx-mist: #9aa3b5; --lx-soft: #c3c9d6; --lx-gold: #d8b56a;
  --lx-serif: "Libre Bodoni", Georgia, serif; --lx-sans: Epilogue, Arial, sans-serif;
  --lx-ease: cubic-bezier(.2,.7,.2,1);
}
.lx { background: var(--lx-ink); color: var(--lx-plat); font-family: var(--lx-sans); overflow-x: clip; }
.lx h1, .lx h2, .lx h3, .lx h4 { color: inherit; font-style: normal; max-width: none; }
.lx a { color: inherit; }
.lx-wrap { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 64px); }
.lx-wrap--narrow { max-width: 860px; }

/* Type */
.lx-kicker { letter-spacing: .42em; text-transform: uppercase; font-size: clamp(.66rem, .8vw, .76rem); color: var(--lx-mist); margin: 0 0 1.6rem; font-weight: 400; }
.lx-kicker--gold { color: var(--lx-gold); }
.lx-display { font-family: var(--lx-serif); font-weight: 400; font-size: clamp(2.6rem, 6.4vw, 6.2rem); line-height: 1.02; margin: 0; letter-spacing: -.005em; }
.lx-h2 { font-family: var(--lx-serif); font-weight: 400; font-size: clamp(2.2rem, 4.8vw, 4.4rem); line-height: 1.06; margin: 0; }
.lx-h3 { font-family: var(--lx-serif); font-weight: 400; font-size: clamp(1.4rem, 2vw, 1.9rem); line-height: 1.2; margin: 0 0 .7rem; }
.lx-display em, .lx-h2 em { font-style: italic; color: var(--lx-ice); }
.lx-lede { color: var(--lx-soft); font-size: clamp(1rem, 1.2vw, 1.15rem); line-height: 1.75; max-width: 56ch; margin: 1.6rem 0 0; }
.lx-lede--center { margin-left: auto; margin-right: auto; }
.lx-center { text-align: center; }
.lx-rule { display: block; width: 64px; height: 3px; border-top: 1px solid var(--lx-gold); border-bottom: 1px solid var(--lx-gold); margin: 1.8rem 0; opacity: .85; }
.lx-center .lx-rule { margin-left: auto; margin-right: auto; }

/* Buttons */
.lx-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 2.4rem; }
.lx-center .lx-actions { justify-content: center; }
.lx-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 34px; background: var(--lx-plat); color: var(--lx-ink) !important;
  border: 1px solid var(--lx-plat); text-decoration: none; letter-spacing: .26em; text-transform: uppercase; font-size: .72rem; font-family: var(--lx-sans);
  cursor: pointer; transition: background .4s, color .4s; }
.lx-btn:hover { background: transparent; color: var(--lx-plat) !important; }
.lx-btn--ghost { background: transparent; color: var(--lx-plat) !important; }
.lx-btn--ghost:hover { background: var(--lx-plat); color: var(--lx-ink) !important; }
.lx-link { text-decoration: none; letter-spacing: .22em; text-transform: uppercase; font-size: .74rem; border-bottom: 1px solid currentColor; padding-bottom: 4px; }

/* Sections */
.lx-section { position: relative; padding: clamp(5.5rem, 11vw, 9.5rem) 0; }
.lx-section--night { background: radial-gradient(ellipse 60% 55% at 50% 0%, rgba(34,54,201,.22), transparent 70%), var(--lx-night); }
.lx-section--deep { background: radial-gradient(ellipse 50% 50% at 50% 60%, #121c55, var(--lx-ink) 70%); }
.lx-section--gold { background: linear-gradient(180deg, var(--lx-ink), #0b0a07 50%, var(--lx-ink)); }

/* Hero: full-bleed image/video with an overlay; copy left or centred */
.lx-hero { position: relative; min-height: max(100vh, 680px); display: flex; align-items: center; overflow: hidden; isolation: isolate; }
.lx-hero--short { min-height: max(62vh, 480px); }
.lx-hero__media { position: absolute; inset: 0; z-index: -1; }
.lx-hero__media img, .lx-hero__media video { width: 100%; height: 100%; object-fit: cover; display: block; animation: lx-kenburns 16s var(--lx-ease) both; }
.lx-hero__media::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(5,6,10,.55) 0%, rgba(5,6,10,.25) 35%, rgba(5,6,10,.55) 70%, var(--lx-ink) 100%); }
.lx-hero--left .lx-hero__media::after { background: linear-gradient(90deg, rgba(5,6,10,.92) 0%, rgba(5,6,10,.6) 45%, rgba(5,6,10,.15) 100%), linear-gradient(0deg, var(--lx-ink), transparent 30%); }
@keyframes lx-kenburns { from { transform: scale(1.1); } to { transform: scale(1); } }
.lx-hero__copy { width: 100%; padding-top: 120px; padding-bottom: 80px; }
.lx-hero--center .lx-hero__copy { text-align: center; }
.lx-hero--center .lx-lede { margin-left: auto; margin-right: auto; }
.lx-hero--center .lx-actions { justify-content: center; }
.lx-hero__logo { width: clamp(150px, 18vw, 230px); height: auto; margin: 0 auto 2rem; display: block; }
.lx-scroll { position: absolute; left: 50%; bottom: 26px; width: 26px; height: 44px; margin-left: -13px; border: 1px solid var(--lx-plat); border-radius: 14px; opacity: .55; }
.lx-scroll span { position: absolute; left: 50%; top: 9px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--lx-plat); animation: lx-scroll 2s infinite; }
@keyframes lx-scroll { 0% { opacity: 0; transform: translateY(-4px); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* Full-bleed band with copy anchored bottom-left */
.lx-band { position: relative; min-height: 92vh; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; padding-bottom: clamp(4rem, 9vw, 7rem); }
.lx-band__media { position: absolute; inset: -10% 0; z-index: -1; }
.lx-band__media img { width: 100%; height: 100%; object-fit: cover; }
.lx-band__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--lx-ink) 0%, rgba(5,6,10,0) 25%, rgba(5,6,10,.25) 55%, rgba(5,6,10,.93) 100%); }

/* Split: image + copy */
.lx-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.lx-split--flip .lx-split__media { order: 2; }
.lx-split__media { position: relative; overflow: hidden; }
.lx-split__media img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; display: block; transition: transform 1.6s var(--lx-ease); }
.lx-split__media:hover img { transform: scale(1.04); }

/* Brand panels (homepage) */
.lx-brand { position: relative; min-height: 100vh; display: flex; align-items: center; overflow: hidden; isolation: isolate; text-decoration: none; color: var(--lx-plat); }
.lx-brand__media { position: absolute; inset: 0; z-index: -1; }
.lx-brand__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 2.4s var(--lx-ease); }
.lx-brand:hover .lx-brand__media img { transform: scale(1.04); }
.lx-brand__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,6,10,.85) 0%, rgba(5,6,10,.45) 42%, rgba(5,6,10,0) 70%), linear-gradient(0deg, rgba(5,6,10,.6), transparent 35%); }
.lx-brand--light .lx-brand__media::after { background: linear-gradient(90deg, rgba(247,247,245,.88) 0%, rgba(247,247,245,.5) 40%, rgba(247,247,245,0) 65%); }
.lx-brand--light { color: #15171b; }
.lx-brand--light .lx-lede { color: #3c4048; }
.lx-brand--light .lx-kicker { color: #4a4f59; }
.lx-brand__name { font-family: var(--lx-serif); font-weight: 400; letter-spacing: .12em; font-size: clamp(3.2rem, 9vw, 8rem); line-height: .95; margin: 0; }
.lx-brand__tag { font-family: var(--lx-serif); font-style: italic; font-size: clamp(1.25rem, 2vw, 1.8rem); margin: 1rem 0 0; color: var(--lx-ice); }
.lx-brand--light .lx-brand__tag { color: #5e7d96; }
.lx-brand--light .lx-btn--ghost { color: #15171b !important; border-color: #15171b; }
.lx-brand--light .lx-btn--ghost:hover { background: #15171b; color: #fff !important; }
.lx-medals { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 2rem; text-decoration: none; }
.lx-medals img { height: 78px; width: auto; filter: drop-shadow(0 8px 16px rgba(0,0,0,.55)); transition: transform .5s var(--lx-ease); }
.lx-medals:hover img { transform: translateY(-4px); }

/* Cards (Innovation Lab steps etc.) */
.lx-cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; margin-top: clamp(3rem, 6vw, 4.5rem); background: rgba(216,181,106,.22); border: 1px solid rgba(216,181,106,.22); }
.lx-card { background: var(--lx-ink); padding: 2.4rem 1.6rem 2.2rem; transition: background .5s; }
.lx-card:hover { background: #0b0d18; }
.lx-card__num { font-family: var(--lx-serif); color: var(--lx-gold); letter-spacing: .3em; font-size: .85rem; }
.lx-card__icon { width: 44px; height: 44px; margin: 1.4rem 0 1.2rem; filter: invert(1) brightness(1.2); opacity: .9; }
.lx-card h3 { font-family: var(--lx-serif); font-weight: 400; font-size: 1.35rem; line-height: 1.2; margin: 0 0 .7rem; }
.lx-card p { color: var(--lx-mist); line-height: 1.65; margin: 0; font-size: .95rem; }

/* Stats */
.lx-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(3rem, 6vw, 4.5rem); border-top: 1px solid rgba(230,233,239,.14); }
.lx-stat { padding: 2rem 1.5rem 0; border-left: 1px solid rgba(230,233,239,.14); }
.lx-stat:first-child { border-left: 0; padding-left: 0; }
.lx-stat strong { display: block; font-family: var(--lx-serif); font-weight: 400; font-size: clamp(2.6rem, 5vw, 4.4rem); line-height: 1; color: #fff; }
.lx-stat span { display: block; margin-top: .8rem; color: var(--lx-mist); letter-spacing: .16em; text-transform: uppercase; font-size: .72rem; line-height: 1.6; }

/* Contact block (info + form) */
.lx-contact { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.lx-contact__info dl { margin: 2.4rem 0 0; display: grid; gap: 1.4rem; }
.lx-contact__info dt { letter-spacing: .3em; text-transform: uppercase; font-size: .68rem; color: var(--lx-mist); margin-bottom: .35rem; }
.lx-contact__info dd { margin: 0; font-family: var(--lx-serif); font-size: 1.25rem; }
.lx-contact__info dd a { text-decoration: none; border-bottom: 1px solid rgba(230,233,239,.25); }
.lx-form { background: linear-gradient(180deg, rgba(14,18,36,.85), rgba(7,9,18,.92)); border: 1px solid rgba(216,181,106,.25); padding: clamp(1.8rem, 4vw, 3rem); }
.lx-form form { display: grid; gap: 1.1rem; margin: 0; }
.lx-form label { display: grid; gap: .5rem; margin: 0; font-weight: 400; letter-spacing: .26em; text-transform: uppercase; font-size: .66rem; color: var(--lx-mist); }
.lx-form input:not([type=submit]):not([name=website]), .lx-form textarea { width: 100%; box-sizing: border-box; background: rgba(255,255,255,.04);
  border: 1px solid rgba(230,233,239,.2); color: #fff; padding: 14px 16px; font-family: var(--lx-sans); font-size: 1rem; letter-spacing: normal; text-transform: none;
  border-radius: 0; outline: none; transition: border-color .3s, background .3s; margin: 0; height: auto; }
.lx-form textarea { min-height: 150px; resize: vertical; }
.lx-form input:focus, .lx-form textarea:focus { border-color: var(--lx-gold); background: rgba(216,181,106,.06); }
.lx-form .lx-btn { width: 100%; margin-top: .6rem; }
.lx-form .w-form-done, .lx-form .w-form-fail { background: transparent; padding: 1.4rem 0 0; text-align: left; font-family: var(--lx-serif); font-size: 1.15rem; }
.lx-form .w-form-done { color: #fff; } .lx-form .w-form-fail { color: #f0a5a5; margin-top: .6rem; }
.lx-form__note { margin: 0 0 .4rem; color: var(--lx-mist); font-size: .9rem; line-height: 1.6; }

/* Prose (legal pages) */
.lx-prose { color: var(--lx-soft); font-size: 1.02rem; line-height: 1.8; }
.lx-prose h1 { display: none; } /* page title is in the hero */
.lx-prose h2, .lx-prose h3, .lx-prose h4, .lx-prose h5, .lx-prose strong:first-child { color: #fff; }
.lx-prose h2, .lx-prose h3, .lx-prose h4, .lx-prose h5 { font-family: var(--lx-serif); font-weight: 400; font-size: 1.5rem; line-height: 1.3; margin: 2.6rem 0 .8rem; }
.lx-prose p, .lx-prose li { margin: 0 0 1.1rem; max-width: 72ch; }
.lx-prose a { color: var(--lx-ice); }
.lx-prose ul, .lx-prose ol { padding-left: 1.2rem; }

/* Footer */
.lx-footer { background: #030407; border-top: 1px solid rgba(216,181,106,.22); padding: clamp(4rem, 8vw, 6rem) 0 2rem; color: var(--lx-mist); }
.lx-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.4rem; }
.lx-footer__logo { width: 150px; height: auto; display: block; }
.lx-footer__tag { margin: 1.4rem 0 0; font-family: var(--lx-serif); font-style: italic; color: var(--lx-soft); font-size: 1.05rem; max-width: 26ch; line-height: 1.5; }
.lx-footer h2 { font-family: var(--lx-sans); font-weight: 400; letter-spacing: .32em; text-transform: uppercase; font-size: .68rem; color: var(--lx-gold); margin: .4rem 0 1.2rem; }
.lx-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.lx-footer a { color: var(--lx-plat); text-decoration: none; font-size: .95rem; transition: color .3s; }
.lx-footer a:hover, .lx-footer a.w--current { color: var(--lx-gold); }
.lx-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: 1.6rem;
  border-top: 1px solid rgba(230,233,239,.1); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }

/* Responsive */
@media (max-width: 1100px) { .lx-cards { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 991px) {
  .lx-split, .lx-contact { grid-template-columns: 1fr; }
  .lx-split--flip .lx-split__media { order: 0; }
  .lx-split__media img { min-height: 320px; max-height: 70vh; }
  .lx-brand__media::after { background: linear-gradient(0deg, rgba(5,6,10,.9) 0%, rgba(5,6,10,.5) 45%, rgba(5,6,10,.1) 75%); }
  .lx-brand--light .lx-brand__media::after { background: linear-gradient(0deg, rgba(247,247,245,.92) 0%, rgba(247,247,245,.6) 45%, rgba(247,247,245,0) 72%); }
  .lx-brand { align-items: flex-end; }
  .lx-brand .lx-wrap { padding-bottom: 4rem; }
  .lx-hero--left .lx-hero__media::after { background: linear-gradient(0deg, var(--lx-ink) 0%, rgba(5,6,10,.7) 45%, rgba(5,6,10,.35) 100%); }
  .lx-footer__grid { grid-template-columns: 1fr 1fr; }
  .lx-stats { grid-template-columns: 1fr; }
  .lx-stat { border-left: 0; padding-left: 0; border-bottom: 1px solid rgba(230,233,239,.14); padding-bottom: 1.6rem; }
}
@media (max-width: 600px) {
  .lx-cards { grid-template-columns: 1fr; }
  .lx-actions .lx-btn { flex: 1 1 100%; }
  .lx-footer__grid { grid-template-columns: 1fr; }
  .lx-medals img { height: 58px; }
}
@media (prefers-reduced-motion: reduce) { .lx-hero__media img, .lx-hero__media video, .lx-scroll span { animation: none; } }

/* Pricing cards + checklist (pallet storage) */
.lx-prices { display: grid; grid-template-columns: repeat(2, minmax(0, 360px)); justify-content: center; gap: 1.6rem; margin-top: clamp(3rem, 6vw, 4.5rem); }
.lx-price { border: 1px solid rgba(216,181,106,.28); background: linear-gradient(180deg, rgba(216,181,106,.07), transparent 65%); padding: 2.6rem 2rem; text-align: center; }
.lx-price__name { letter-spacing: .32em; text-transform: uppercase; font-size: .7rem; color: var(--lx-gold); }
.lx-price__amount { font-family: var(--lx-serif); font-size: clamp(3.4rem, 6vw, 4.6rem); line-height: 1; margin: 1.2rem 0 .4rem; color: #fff; }
.lx-price__amount sup { font-size: .4em; vertical-align: .9em; margin-right: .1em; }
.lx-price__per { color: var(--lx-mist); letter-spacing: .14em; text-transform: uppercase; font-size: .72rem; }
.lx-price p { color: var(--lx-soft); line-height: 1.7; margin: 1.4rem 0 0; font-size: .95rem; }
.lx-checks { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 2rem; }
.lx-checks li { position: relative; padding-left: 1.8rem; color: var(--lx-soft); line-height: 1.5; }
.lx-checks li::before { content: ""; position: absolute; left: 0; top: .45em; width: .9rem; height: .45rem; border-left: 1px solid var(--lx-gold); border-bottom: 1px solid var(--lx-gold); transform: rotate(-45deg); }
.lx-plan { background: #0b0d18; border: 1px solid rgba(230,233,239,.12); padding: 1.2rem; }
.lx-plan img { width: 100%; height: auto; display: block; }
.lx-plan figcaption { margin-top: .9rem; letter-spacing: .26em; text-transform: uppercase; font-size: .68rem; color: var(--lx-mist); }
@media (max-width: 767px) { .lx-prices { grid-template-columns: 1fr; } .lx-checks { grid-template-columns: 1fr; } }

/* ── Refinements ── */
.lx-hero--center .lx-rule { margin-left: auto; margin-right: auto; }
.lx-hero .lx-display { font-size: clamp(2.4rem, 5vw, 5rem); max-width: 18ch; }
.lx-hero--center .lx-display { margin-left: auto; margin-right: auto; }
.lx .lx-brand { color: var(--lx-plat); }
.lx .lx-brand--light { color: #15171b; }
.lx-brand .lx-wrap { width: 100%; }
.lx-brand .lx-wrap > * { max-width: 560px; }
.lx-brand__name { font-size: clamp(3rem, 7vw, 6.4rem); }
.lx-card__icon { filter: brightness(0) invert(1); opacity: .75; }
@media (max-width: 991px) { .lx-brand .lx-wrap > * { max-width: none; } }
.lx-band--dark .lx-band__media::after { background: linear-gradient(90deg, rgba(10,8,6,.95) 0%, rgba(10,8,6,.85) 45%, rgba(10,8,6,.35) 80%), linear-gradient(0deg, var(--lx-ink), transparent 30%); }
.lx-hero--short .lx-hero__media::after { background: linear-gradient(180deg, rgba(5,6,10,.7) 0%, rgba(5,6,10,.55) 50%, var(--lx-ink) 100%); }
@media (max-width: 991px) { .lx-band--dark .lx-band__media::after { background: linear-gradient(0deg, rgba(10,8,6,.96) 0%, rgba(10,8,6,.8) 55%, rgba(10,8,6,.45) 100%); } }
/* Visually hidden but read by screen readers and search engines (e.g. the rest of a one-word display H1). */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.lx-card__icon { filter: none; opacity: 1; }
@media (max-width: 991px) { .lx-brand--light .lx-brand__media img { object-position: 86% 50% !important; } }

/* Large "Since 1860" year (About heritage band) */
.lx-year { font-family: var(--lx-serif); line-height: .85; margin: 0 0 1.6rem; display: flex; flex-direction: column; }
.lx-year span:last-child { font-size: clamp(5.5rem, 15vw, 13rem); font-weight: 400; color: #fff; }
.lx-year__since { letter-spacing: .4em; text-transform: uppercase; font-size: clamp(.85rem, 1.3vw, 1.1rem); margin-bottom: .6rem; color: var(--lx-gold); }
/* Bands grow with their content (e.g. the About heritage band) instead of clipping under the nav. */
.lx-band { padding-top: clamp(7rem, 12vw, 9rem); }
.lx-form__hint { letter-spacing: normal; text-transform: none; font-size: .78rem; color: var(--lx-mist); }
.lx-form__hint.is-error { color: #f0a5a5; }
.lx-form input[aria-invalid="true"] { border-color: #f0a5a5; }
.lx-form__note strong { color: #fff; font-weight: 400; }

/* ── Homepage hero: smaller, more refined headline ── */
.lx-hero .lx-display--hero { font-size: clamp(1.9rem, 3.4vw, 3.4rem); line-height: 1.15; letter-spacing: .02em; max-width: 24ch; font-weight: 400; }
.lx-display--hero em { display: block; margin-top: .3em; font-size: .78em; letter-spacing: .03em; }

/* ── Homepage Finlap panel: wolf under the aurora + the bottle standing in the snow ── */
.lx-brand--finlap .lx-brand__media img { object-position: 62% 50%; }
.lx-brand--finlap .lx-brand__media::after { background: linear-gradient(90deg, rgba(3,5,12,.9) 0%, rgba(3,5,12,.55) 38%, rgba(3,5,12,0) 60%), linear-gradient(0deg, rgba(3,5,12,.65), transparent 30%); }
.lx-brand__bottle { position: absolute; z-index: 0; right: 9%; bottom: 6%; height: min(74vh, 720px); width: auto; pointer-events: none;
  filter: drop-shadow(0 30px 40px rgba(0,0,0,.65)) drop-shadow(0 0 40px rgba(120,200,255,.18)); }
.lx-brand--finlap .lx-wrap { position: relative; z-index: 1; }
@media (max-width: 991px) {
  .lx-brand--finlap .lx-brand__media img { object-position: 70% 50%; }
  .lx-brand__bottle { right: 4%; bottom: auto; top: 14%; height: 46vh; }
}
@media (max-width: 600px) { .lx-brand__bottle { height: 38vh; right: 2%; top: 12%; } }

/* ── Innovation Lab: a process, not boxes ── */
.lab__intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.lab__photo { margin: 0; position: relative; overflow: hidden; }
.lab__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 1.6s var(--lx-ease); }
.lab__photo:hover img { transform: scale(1.04); }
.lab__photo figcaption { position: absolute; left: 1.2rem; bottom: 1.1rem; letter-spacing: .3em; text-transform: uppercase; font-size: .66rem; color: #fff; }
.lab__photo::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(216,181,106,.35); pointer-events: none; }
.lab__sign { font-family: var(--lx-serif); font-style: italic; color: var(--lx-gold); font-size: clamp(1.2rem, 1.8vw, 1.6rem); margin: 1.6rem 0 0; }
.lab__label { margin: clamp(4rem, 8vw, 6rem) 0 0; text-align: center; letter-spacing: .42em; text-transform: uppercase; font-size: .7rem; color: var(--lx-mist); }
.lab__steps { list-style: none; margin: 2.6rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.6rem; position: relative; }
.lab__steps::before { content: ""; position: absolute; top: 34px; left: 10%; right: 10%; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(216,181,106,.6) 8%, rgba(216,181,106,.6) 92%, transparent); }
.lab__step { position: relative; text-align: center; padding: 0 .4rem; }
.lab__dot { position: relative; z-index: 1; display: grid; place-items: center; width: 68px; height: 68px; margin: 0 auto 1.4rem; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #18204f, #0a1030 70%); border: 1px solid rgba(216,181,106,.55);
  box-shadow: 0 0 0 6px var(--lx-night), 0 10px 30px rgba(0,0,0,.5); transition: transform .5s var(--lx-ease), border-color .5s; }
.lab__dot img { width: 30px; height: 30px; }
.lab__step:hover .lab__dot { transform: translateY(-4px); border-color: var(--lx-gold); }
.lab__num { display: block; font-family: var(--lx-serif); color: var(--lx-gold); letter-spacing: .3em; font-size: .8rem; margin-bottom: .5rem; }
.lab__step h3 { font-family: var(--lx-serif); font-weight: 400; font-size: 1.3rem; line-height: 1.2; margin: 0 0 .6rem; color: #fff; }
.lab__step p { color: var(--lx-mist); font-size: .93rem; line-height: 1.6; margin: 0; }
.lab__cta { justify-content: center; margin-top: clamp(3rem, 6vw, 4rem); }
@media (max-width: 991px) {
  .lab__intro { grid-template-columns: 1fr; }
  .lab__photo img { aspect-ratio: 16 / 10; }
  .lab__steps { grid-template-columns: 1fr; gap: 0; max-width: 560px; margin-left: auto; margin-right: auto; }
  .lab__steps::before { top: 0; bottom: 0; left: 34px; right: auto; width: 1px; height: auto;
    background: linear-gradient(180deg, transparent, rgba(216,181,106,.6) 6%, rgba(216,181,106,.6) 94%, transparent); }
  .lab__step { display: grid; grid-template-columns: 68px 1fr; column-gap: 1.4rem; text-align: left; padding: 0 0 2.2rem; }
  .lab__dot { grid-row: span 3; margin: 0; }
  .lab__num { margin-top: .4rem; }
}
/* wolf stands to the left of the bottle (desktop); on phones the bottle moves left, the wolf right */
.lx-brand--finlap .lx-brand__media img { object-position: 92% 50%; }
.lx-brand__bottle { right: 5%; }
@media (max-width: 991px) {
  .lx-brand--finlap .lx-brand__media img { object-position: 72% 50%; }
  .lx-brand__bottle { right: auto; left: 7%; top: 12%; height: 36vh; }
}
/* Finlap panel: zoom the scene toward the aurora so the photo's dark left rocks fall outside the frame on wide screens,
   and keep the text overlay lighter (the wrapper scales; the img itself carries the parallax transform). */
.lx-brand--finlap .lx-brand__media { transform: scale(1.22); transform-origin: 97% 45%; }
.lx-brand--finlap .lx-brand__media::after { background: linear-gradient(90deg, rgba(3,5,12,.7) 0%, rgba(3,5,12,.35) 32%, rgba(3,5,12,0) 52%), linear-gradient(0deg, rgba(3,5,12,.55), transparent 28%); }
@media (max-width: 991px) { .lx-brand--finlap .lx-brand__media { transform: none; } }
