.bsc-booking{--booking-ink:var(--ast-global-color-2,#171717);--booking-accent:var(--ast-global-color-0,#b35f42);max-width:1080px;margin:0 auto;color:var(--booking-ink)}
.bsc-booking *{box-sizing:border-box}.bsc-booking__return{padding:18px;margin:0 0 28px;background:#e5f2e8;border-left:4px solid #2c7640;font-weight:700}.bsc-booking__intro{max-width:720px;margin-bottom:36px}.bsc-booking__eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;margin:0 0 8px}.bsc-booking__intro h2{margin:0 0 14px;font-size:clamp(34px,5vw,64px);line-height:1}.bsc-booking__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:1px}.bsc-booking__steps span{padding:13px;background:#f1f0ed;font-size:13px}.bsc-booking__steps .is-active{background:var(--booking-ink);color:#fff}.bsc-booking__panel{padding:clamp(22px,4vw,44px);border:1px solid #deddd9;margin-bottom:-1px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.bsc-booking label,.bsc-booking legend{font-weight:650}.bsc-booking label{display:grid;gap:8px}.bsc-booking input,.bsc-booking select,.bsc-booking textarea{width:100%;min-height:48px;border:1px solid #bab8b2;border-radius:0;background:#fff;padding:10px 12px;font:inherit;color:inherit}.bsc-booking fieldset{border:0;padding:0;margin:0}.bsc-booking legend{margin-bottom:10px}.bsc-booking__projects{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.bsc-booking__projects label{display:block}.bsc-booking__projects input{position:absolute;opacity:0;pointer-events:none}.bsc-booking__projects span{display:grid;gap:4px;height:100%;border:1px solid #bab8b2;padding:16px;cursor:pointer;background:#fff}.bsc-booking__projects small{font-weight:400}.bsc-booking__projects input:checked+span{background:var(--booking-ink);border-color:var(--booking-ink);color:#fff}.bsc-booking__slots{display:flex;flex-wrap:wrap;gap:8px}.bsc-booking__slots label{display:block}.bsc-booking__slots input{position:absolute;opacity:0;pointer-events:none}.bsc-booking__slots span{display:block;border:1px solid #bab8b2;padding:12px 16px;cursor:pointer;background:#fff}.bsc-booking__slots input:checked+span{background:var(--booking-ink);border-color:var(--booking-ink);color:#fff}.bsc-booking__duration,.bsc-booking__estimate{display:grid;align-content:center;gap:3px;padding:16px;background:#f1f0ed}.bsc-booking__duration{border-left:3px solid var(--booking-ink)}.bsc-booking__estimate{border-left:3px solid var(--booking-accent)}.bsc-booking__duration strong,.bsc-booking__estimate strong{font-size:24px}.bsc-booking__duration small,.bsc-booking__estimate small{font-weight:400}.bsc-booking__sleeve{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:18px;background:#f1f0ed}.bsc-booking__sleeve span{flex:1}.bsc-booking__sleeve a{font-weight:700;color:inherit}.bsc-booking__wide{grid-column:1/-1}.bsc-booking__consent{display:flex!important;grid-template-columns:auto 1fr;align-items:start;font-weight:400!important}.bsc-booking__consent input{width:auto;min-height:0;margin-top:5px}.bsc-booking__submit{margin-top:22px;border:0;border-radius:0;padding:16px 24px;background:var(--booking-accent);color:#fff;font:inherit;font-weight:700;cursor:pointer}.bsc-booking__submit:disabled{opacity:.55}.bsc-booking__message{margin-top:16px;font-weight:650}.bsc-booking__message.is-error{color:#a32020}.bsc-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
.bsc-booking__steps .is-complete{background:#dfe8e1;color:var(--booking-ink)}.bsc-booking__assistant{display:grid;grid-template-columns:minmax(170px,.6fr) 1.4fr;gap:20px;align-items:start;padding:18px 20px;background:#f7f4ef;border-left:4px solid var(--booking-accent)}.bsc-booking__assistant strong{font-size:20px;line-height:1.2;outline:0}.bsc-booking__assistant span{color:#555}.bsc-booking__nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px}.bsc-booking:not(.is-enhanced) [data-bsc-next],.bsc-booking:not(.is-enhanced) [data-bsc-back]{display:none}.bsc-booking__next,.bsc-booking__back{border:0;border-radius:0;padding:14px 20px;font:inherit;font-weight:700;cursor:pointer}.bsc-booking__next{margin-left:auto;background:var(--booking-accent);color:#fff}.bsc-booking__back{background:transparent;color:inherit;text-decoration:underline;text-underline-offset:4px}.bsc-booking__summary{padding:20px;background:var(--booking-ink);color:#fff}.bsc-booking__summary>strong{display:block;margin-bottom:12px;font-size:20px}.bsc-booking__summary dl{display:grid;grid-template-columns:auto 1fr;gap:7px 18px;margin:0}.bsc-booking__summary dt{opacity:.7}.bsc-booking__summary dd{margin:0;font-weight:700}.bsc-booking__nav .bsc-booking__submit{margin:0}.bsc-booking__contact{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:24px;border:1px solid #deddd9;background:#fff}.bsc-booking__contact>div:first-child{display:grid;gap:5px}.bsc-booking__contact>div:first-child strong{font-size:20px}.bsc-booking__contact-actions{display:flex;flex-wrap:wrap;gap:8px}.bsc-booking__contact-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 18px;border:1px solid var(--booking-ink);color:var(--booking-ink);font-weight:700;text-decoration:none}.bsc-booking__contact-button.is-whatsapp{background:#1f7a4d;border-color:#1f7a4d;color:#fff}
.bsc-booking__summary:empty{display:none}
.bsc-booking__form[hidden],.bsc-booking__form [hidden]{display:none!important}
.bsc-booking [data-bsc-booking-fields]{min-width:0}
.bsc-booking__projects input,.bsc-booking__slots input{width:1px;height:1px;min-height:0;padding:0}
.bsc-booking__projects input:focus-visible+span,.bsc-booking__slots input:focus-visible+span{outline:3px solid var(--booking-accent);outline-offset:2px}
.bsc-booking__suggestions{display:grid;gap:12px;padding:18px;background:#f7f4ef;border:1px solid #deddd9}.bsc-booking__suggestions>p{margin:0}.bsc-booking__suggestion-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.bsc-booking__suggestion{display:grid;gap:3px;text-align:left;padding:14px;border:1px solid #bab8b2;background:#fff;color:inherit;font:inherit;cursor:pointer}.bsc-booking__suggestion:hover,.bsc-booking__suggestion:focus{border-color:var(--booking-accent);outline:2px solid transparent}.bsc-booking__suggestion span{font-size:14px;color:#555}
@media(max-width:680px){.bsc-booking__steps{font-size:11px}.bsc-booking__steps span{padding:10px 7px}.bsc-booking__panel{grid-template-columns:1fr;padding:22px 16px;gap:20px}.bsc-booking__wide,.bsc-booking__sleeve{grid-column:auto}.bsc-booking__projects{grid-template-columns:1fr 1fr}.bsc-booking__projects span{padding:13px}.bsc-booking__sleeve{align-items:flex-start;flex-direction:column;gap:6px}.bsc-booking__submit{width:100%;min-height:54px}.bsc-booking__slots span{min-width:68px;text-align:center}}
@media(max-width:680px){.bsc-booking__assistant{grid-template-columns:1fr;gap:7px}.bsc-booking__nav{align-items:stretch;flex-direction:column-reverse}.bsc-booking__next,.bsc-booking__back{width:100%;min-height:50px;margin:0}.bsc-booking__contact{align-items:stretch;flex-direction:column}.bsc-booking__contact-actions{display:grid;grid-template-columns:1fr 1fr}.bsc-booking__contact-button{width:100%}.bsc-booking__summary dl{grid-template-columns:1fr;gap:2px}.bsc-booking__summary dd{margin-bottom:8px}.bsc-booking__suggestion-list{grid-template-columns:1fr}}

/* 6.0 — real wizard navigation, accessible step controls and reliable focus. */
.bsc-booking__panel[hidden]{display:none!important}.bsc-booking__panel{scroll-margin-top:110px}.bsc-booking__steps button{min-height:48px;padding:13px;border:0;background:#f1f0ed;color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer}.bsc-booking__steps button:disabled{cursor:not-allowed;opacity:.62}.bsc-booking__steps button.is-active{background:var(--booking-ink);color:#fff;opacity:1}.bsc-booking__steps button.is-complete{background:#dfe8e1;color:var(--booking-ink)}.bsc-booking__steps button:focus-visible{position:relative;z-index:1;outline:3px solid var(--booking-accent);outline-offset:-3px}.bsc-booking__contact:focus{outline:3px solid var(--booking-accent);outline-offset:4px}
@media(max-width:680px){.bsc-booking__steps button{padding:10px 7px;font-size:11px;text-align:center}.bsc-booking__panel{scroll-margin-top:82px}}

/* Keep the booking module readable when the page container reaches mobile edges. */
@media(max-width:767.98px){
  .bsc-booking{box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:32px 16px;font-size:16px;line-height:1.5}
  /* Keep Spectra's negative background layer above the hero photograph. */
  .bsc-booking-hero-title{isolation:isolate}
  .bsc-booking__intro{max-width:100%;margin-bottom:24px}
  .bsc-booking__intro h2{font-size:clamp(30px,8vw,38px);line-height:1.12;overflow-wrap:anywhere}
  .bsc-booking__intro p:last-child{margin-bottom:0;line-height:1.6}
  .bsc-booking__steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .bsc-booking__steps button{min-width:0;min-height:48px;padding:10px 6px;font-size:12px;line-height:1.25;letter-spacing:0;text-align:center;text-transform:none;white-space:normal}
  .bsc-booking__panel{grid-template-columns:minmax(0,1fr);padding:20px 14px;gap:18px;scroll-margin-top:82px}
  .bsc-booking__panel>*,.bsc-booking label,.bsc-booking fieldset{min-width:0}
  .bsc-booking__wide,.bsc-booking__sleeve{grid-column:auto}
  .bsc-booking input,.bsc-booking select,.bsc-booking textarea{max-width:100%;font-size:16px}
  .bsc-booking__assistant{grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 12px}
  .bsc-booking__assistant strong{font-size:18px;line-height:1.3}
  .bsc-booking__projects{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bsc-booking__projects span{min-height:88px;padding:12px;overflow-wrap:anywhere}
  .bsc-booking__projects small{font-size:13px;line-height:1.4}
  .bsc-booking__duration,.bsc-booking__estimate{padding:14px}
  .bsc-booking__duration small,.bsc-booking__estimate small{font-size:13px;line-height:1.5}
  .bsc-booking__sleeve{align-items:flex-start;flex-direction:column;gap:8px;padding:14px}
  .bsc-booking__nav{align-items:stretch;flex-direction:column-reverse}
  .bsc-booking__next,.bsc-booking__back,.bsc-booking__submit{width:100%;min-height:50px;margin:0;padding:13px 12px;font-size:16px;line-height:1.4;white-space:normal}
  .bsc-booking__summary{padding:16px;overflow-wrap:anywhere}
  .bsc-booking__summary dl{grid-template-columns:minmax(0,1fr);gap:2px}
  .bsc-booking__summary dd{margin-bottom:8px}
  .bsc-booking__suggestions{padding:14px}
  .bsc-booking__suggestion-list{grid-template-columns:minmax(0,1fr)}
  .bsc-booking__suggestion{min-height:48px}
  .bsc-booking .bsc-booking__suggestion:hover,.bsc-booking .bsc-booking__suggestion:focus-visible{background:var(--booking-ink);color:var(--ast-global-color-5,#fff);border-color:var(--booking-ink)}
  .bsc-booking .bsc-booking__suggestion:hover span,.bsc-booking .bsc-booking__suggestion:focus-visible span{color:inherit}
  .bsc-booking__contact{align-items:stretch;flex-direction:column;gap:16px;margin-top:24px;padding:18px;scroll-margin-top:82px}
  .bsc-booking__contact>div{min-width:0}
  .bsc-booking__contact>div:first-child strong{font-size:20px;line-height:1.3}
  .bsc-booking__contact-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .bsc-booking__contact-button{width:100%;min-width:0;min-height:48px;padding:10px 12px;font-size:16px;line-height:1.3;white-space:normal}
}

/* Gallery context stays visible throughout the three booking steps. */
.bsc-booking__references{margin:0 0 24px;padding:18px;background:var(--ast-global-color-5,#f7f6f2);border:1px solid #d8ddd8;min-width:0}
.bsc-booking__references>p{margin:6px 0 14px;font-size:14px}
.bsc-booking__reference-list{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;max-width:100%}
.bsc-booking__reference-list figure{flex:0 0 112px;margin:0}
.bsc-booking__reference-list img{display:block;width:96px;height:96px;object-fit:cover}
.bsc-booking__reference-list figcaption{font-size:12px;line-height:1.4;margin-top:6px;overflow-wrap:anywhere}
.bsc-booking__references button{min-height:44px;white-space:normal;text-align:left}
