/* Labellissimo Hero. Full-width photo slideshow. Everything is prefixed lbo- and protected from theme styles. */
.lbo{--maroon:#5A0F1F;--deep:#3F0A16;--navy:#0E1A3A;--cream:#F6EFE2;--rose:#F4CBD3;
  --sa:.84;--sb:.5;--sc:.1;
  position:relative;width:100%;overflow:hidden;background:#14090d;color:#fff;font-family:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;isolation:isolate;container-type:inline-size}
.lbo *,.lbo *::before,.lbo *::after{box-sizing:border-box}
.lbo-s-light{--sa:.66;--sb:.36;--sc:.04}
.lbo-s-strong{--sa:.92;--sb:.64;--sc:.2}
.lbo-h-tall{height:clamp(540px,calc(100vh - 112px),940px);height:clamp(540px,calc(100svh - 112px),940px)}
.lbo-h-medium{height:clamp(480px,calc(78vh - 56px),780px);height:clamp(480px,calc(78svh - 56px),780px)}
.lbo-h-compact{height:clamp(420px,56vh,620px);height:clamp(420px,56svh,620px)}
.lbo-stage{position:absolute;inset:0}
.lbo-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.3s ease,visibility 0s linear 1.3s}
.lbo-slide.is-active{opacity:1;visibility:visible;transition:opacity 1.3s ease,visibility 0s}
.lbo-media{position:absolute;inset:0;overflow:hidden;background:var(--deep)}
.lbo-media picture{display:block;width:100%;height:100%}
.lbo-media img.lbo-img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--fx,50%) var(--fy,25%);transform:scale(1.02)}
.lbo-slide.is-active .lbo-media img.lbo-img{animation:lboKen 11s cubic-bezier(.2,.55,.3,1) both}
@keyframes lboKen{from{transform:scale(1.15)}to{transform:scale(1.02)}}
.lbo-shade{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(14,26,58,var(--sa)) 0%,rgba(14,26,58,var(--sb)) 38%,rgba(14,26,58,var(--sc)) 68%,rgba(14,26,58,0) 100%),
  linear-gradient(0deg,rgba(14,26,58,.72) 0%,rgba(14,26,58,0) 40%)}
.lbo-a-center .lbo-shade{background:radial-gradient(ellipse at 50% 60%,rgba(14,26,58,var(--sa)) 0%,rgba(14,26,58,var(--sb)) 52%,rgba(14,26,58,.12) 100%),linear-gradient(0deg,rgba(14,26,58,.72) 0%,rgba(14,26,58,0) 40%)}

.lbo-in{position:relative;z-index:3;height:100%;max-width:1620px;margin:0 auto;padding:0 clamp(22px,5.2vw,88px) clamp(104px,14vh,160px);display:flex;align-items:flex-end}
.lbo-copy{max-width:min(980px,100%);display:flex;flex-direction:column;align-items:flex-start}
.lbo-a-center .lbo-in{justify-content:center}
.lbo-a-center .lbo-copy{align-items:center;text-align:center}
.lbo .lbo-eye{display:flex;align-items:center;gap:14px;margin:0;font-size:14px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;line-height:1.3;color:rgba(255,255,255,.92) !important}
.lbo .lbo-eye span{display:block;width:46px;height:1px;background:currentColor;flex:none}
.lbo .lbo-h{margin:clamp(14px,1.8vw,24px) 0 0;font-family:inherit !important;font-weight:300 !important;font-size:clamp(46px,8.4vw,142px);line-height:.95;letter-spacing:-.052em;text-transform:none !important;color:#fff !important;text-wrap:balance;overflow-wrap:anywhere}
.lbo .lbo-h em{font-style:normal;color:var(--rose)}
.lbo .lbo-t{margin:clamp(18px,2vw,28px) 0 0;max-width:48ch;font-size:clamp(16px,1.4vw,21px);line-height:1.62;color:rgba(255,255,255,.93) !important}
.lbo-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(26px,3vw,40px)}
.lbo a.lbo-b{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:58px;padding:0 32px;font-size:16px;font-weight:500;letter-spacing:0;text-transform:none;text-decoration:none;border-radius:0;box-shadow:none;transition:background .35s,color .35s,border-color .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
.lbo a.lbo-b svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.lbo a.lbo-b.solid{background:var(--cream);color:var(--deep)}
.lbo a.lbo-b.solid:hover,.lbo a.lbo-b.solid:focus-visible{background:#fff;color:var(--deep)}
.lbo a.lbo-b.solid:hover svg{transform:translateX(5px)}
.lbo a.lbo-b.ghost{border:1px solid rgba(255,255,255,.72);color:#fff;background:transparent}
.lbo a.lbo-b.ghost:hover,.lbo a.lbo-b.ghost:focus-visible{background:#fff;color:var(--deep);border-color:#fff}
.lbo a.lbo-b:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* words arrive one after another when a slide opens */
.lbo-slide.is-active .lbo-eye{animation:lboUp 1s cubic-bezier(.2,.7,.2,1) .35s both}
.lbo-slide.is-active .lbo-h{animation:lboUp 1.15s cubic-bezier(.2,.7,.2,1) .5s both}
.lbo-slide.is-active .lbo-t{animation:lboUp 1.1s cubic-bezier(.2,.7,.2,1) .72s both}
.lbo-slide.is-active .lbo-btns{animation:lboUp 1.1s cubic-bezier(.2,.7,.2,1) .9s both}
@keyframes lboUp{from{opacity:0;transform:translateY(38px)}to{opacity:1;transform:none}}

/* bottom bar: counter, progress lines, arrows */
.lbo-ui{position:absolute;left:0;right:0;bottom:0;z-index:5}
.lbo-ui-in{max-width:1620px;margin:0 auto;padding:0 clamp(22px,5.2vw,88px) clamp(22px,3vw,40px);display:flex;align-items:center;gap:clamp(18px,2.6vw,36px)}
.lbo .lbo-count{margin:0;display:flex;align-items:baseline;gap:8px;font-size:15px;font-weight:500;letter-spacing:.06em;color:#fff !important;flex:none}
.lbo .lbo-count b{font-weight:500;font-size:22px;letter-spacing:0}
.lbo .lbo-count span{opacity:.65}
.lbo-dots{display:flex;gap:10px;flex:1;max-width:520px}
.lbo-dot{flex:1;height:44px;display:flex;align-items:center;cursor:pointer;outline-offset:2px}
.lbo-dot i{display:block;position:relative;width:100%;height:2px;background:rgba(255,255,255,.3);overflow:hidden}
.lbo-dot b{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left center}
.lbo-dot.done b,.lbo-noauto .lbo-dot.is-on b{transform:scaleX(1)}
.lbo-dot:focus-visible{outline:2px solid #fff}
.lbo.lbo-run:not(.lbo-noauto) .lbo-dot.is-on b{animation:lboFill var(--dur,7s) linear forwards}
@keyframes lboFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.lbo.lbo-run.is-paused:not(.lbo-noauto) .lbo-dot.is-on b{animation-play-state:paused}
.lbo-arrows{display:flex;gap:10px;margin-left:auto}
.lbo-ar{width:54px;height:54px;border:1px solid rgba(255,255,255,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .35s,border-color .35s;outline-offset:3px}
.lbo-ar svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .35s}
.lbo-ar:hover,.lbo-ar:focus-visible{background:#fff;border-color:#fff}
.lbo-ar:hover svg,.lbo-ar:focus-visible svg{stroke:var(--deep)}
.lbo-ar:focus-visible{outline:2px solid #fff}
.lbo-live{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* phones and narrow screens */
@media (max-width:900px){.lbo-arrows{display:none}.lbo-dots{max-width:none}}
@media (max-width:700px){
  .lbo-h-tall{height:clamp(520px,calc(100vh - 100px),780px);height:clamp(520px,calc(100svh - 100px),780px)}
  .lbo-h-medium{height:clamp(480px,70svh,700px)}
  .lbo-in{padding-bottom:clamp(86px,13vh,120px)}
  .lbo .lbo-h{font-size:clamp(40px,12.4vw,66px);line-height:.98}
  .lbo .lbo-eye{font-size:12.5px;letter-spacing:.14em}
  .lbo .lbo-t{font-size:16px;max-width:36ch}
  .lbo-shade,.lbo-a-center .lbo-shade{background:linear-gradient(0deg,rgba(14,26,58,.92) 0%,rgba(14,26,58,.7) 38%,rgba(14,26,58,.18) 70%,rgba(14,26,58,.08) 100%)}
  .lbo-btns{width:100%}
  .lbo a.lbo-b{flex:1 1 100%;min-height:54px}
  .lbo a.lbo-b.ghost{flex:1 1 100%}
  .lbo .lbo-count b{font-size:19px}
}
@media (max-width:380px){.lbo .lbo-h{font-size:clamp(36px,12vw,46px)}.lbo-in{padding-left:18px;padding-right:18px}.lbo-ui-in{padding-left:18px;padding-right:18px}}
@media (max-height:500px) and (orientation:landscape){
  .lbo-h-tall,.lbo-h-medium,.lbo-h-compact{height:max(340px,calc(100vh - 60px))}
  .lbo-in{padding-bottom:70px}.lbo .lbo-h{font-size:clamp(34px,7vw,56px)}.lbo .lbo-t{display:none}
}
@media (prefers-reduced-motion:reduce){
  .lbo *,.lbo *::before,.lbo *::after{animation:none !important;transition:none !important}
  .lbo-media img.lbo-img{transform:none !important}
}
