/* Banner - mirrors .showroom_banner on the Showrooms page */
.bespoke_banner{position:relative;width:100%;border-radius:12px;overflow:hidden;max-height:90vh;margin-top:25px}
.bespoke_banner_img{width:100%;aspect-ratio:11/5;object-fit:cover;display:block}
.bespoke_overlay{position:absolute;inset:0;background:rgba(0,0,0,.30);display:flex;justify-content:center;align-items:center;text-align:center;padding:20px}
.bespoke_overlay h1{margin:0;color:#fff;font-weight:600;font-size:clamp(28px,3.6vw,54px);line-height:1.2;text-transform:capitalize}
@media (max-width:767px){.bespoke_banner_img{aspect-ratio:4/3}}
.bespoke-section{max-width:1920px;margin:0 auto;padding:clamp(16px,2vw,28px) clamp(12px,2vw,24px) 0}
/* Slider: big centre slide + neighbours, many images, infinite loop */
.bespoke-slider{position:relative;--gap:12px;--side:300px;--center:600px;--cl:0px;--cw:600px}
.bespoke-slider__viewport{position:relative;overflow:hidden;height:clamp(280px,40vw,640px)}
.bespoke-slider__track{display:flex;gap:var(--gap);height:100%;width:max-content;will-change:transform}
.bespoke-slide{position:relative;flex:0 0 var(--side);height:100%;min-width:0;overflow:hidden;transition:flex-basis .7s cubic-bezier(.65,0,.35,1)}
.bespoke-slide.is-active{flex-basis:var(--center)}
.is-jumping .bespoke-slide{transition:none}
.bespoke-slide img,.bespoke-slide video{width:100%;height:100%;object-fit:cover;display:block}
.bespoke-slider.is-static .bespoke-slide{flex-basis:100%}
.bespoke-slider.is-static .bespoke-slider__track{width:100%}
.bespoke-slider__arrow{position:absolute;top:calc(clamp(280px,40vw,640px) / 2);transform:translateY(-50%);z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#111;font-size:28px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 3px;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.bespoke-slider__arrow--prev{left:14px}.bespoke-slider__arrow--next{right:14px}
@media (max-width:767px){
  .bespoke-slider__viewport,.bespoke-slider__arrow{--h:75vw}
  .bespoke-slider__viewport{height:75vw}
  .bespoke-slider__arrow{top:37.5vw;width:34px;height:34px;font-size:22px}
}
.bespoke-copy{max-width:1200px;margin:clamp(20px,3vw,40px) auto;text-align:center}
.bespoke-copy h2{font-size:clamp(18px,1.6vw,22px);font-weight:700;margin:0 0 10px}
.bespoke-copy__text{font-size:clamp(14px,1.1vw,16px);line-height:1.6}
.bespoke-copy__text p{margin:0 0 .8em}
.bespoke-copy__text>:last-child{margin-bottom:0}
.bespoke-copy__text ul,.bespoke-copy__text ol{display:inline-block;text-align:left;margin:0 0 .8em}
.bespoke-carousel{overflow:hidden;margin:clamp(16px,3vw,48px) 0}
.bespoke-carousel__track{display:flex;gap:clamp(24px,5vw,80px);align-items:center;width:max-content;will-change:transform;padding:0 clamp(12px,2vw,24px)}
.bespoke-carousel__track img{height:clamp(110px,16vw,240px);width:auto;display:block;flex:none}
.bespoke-divider{border:0;border-top:2px solid #000;margin:clamp(20px,3vw,40px) 0}
.bespoke-request{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;margin:clamp(24px,4vw,56px) 0}
.bespoke-request__img img{width:100%;height:auto;display:block;border-radius:12px}
.bespoke-request__text{text-align:center;padding:24px}
.bespoke-request__text h2{font-size:clamp(22px,2.4vw,34px);font-weight:700;margin:0 0 14px}
.bespoke-request__text a{color:#111;font-weight:700;text-decoration:underline;font-size:clamp(15px,1.2vw,18px)}
@media (max-width:767px){
  
  .bespoke-request{grid-template-columns:1fr}
}


/* Per-slide caption: only the big (active) slide shows its title + subtitle over a dark overlay */
.bespoke-slide__caption{box-sizing:border-box;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:16px;pointer-events:none;opacity:0;transition:opacity .6s ease}
.bespoke-slide.is-active .bespoke-slide__caption{opacity:1}
.bespoke-slide__caption h2{margin:0;color:#fff;font-size:clamp(18px,2.4vw,34px);font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.bespoke-slide__caption p{margin:0;color:#fff;font-size:clamp(13px,1.2vw,18px)}
.bespoke-slide .bespoke-slide__logo{width:clamp(60px,7vw,110px);height:auto;max-height:90px;object-fit:contain;display:block;margin:0 0 6px}
.bespoke-slide__caption.has-overlay{background:rgba(0,0,0,.30)}
.bespoke-slide__caption h2,.bespoke-slide__caption p{text-shadow:0 1px 8px rgba(0,0,0,.35)}
