.msb-experience-configurator {
  --ink:#173327;
  --forest:#234c38;
  --sand:#eee8dc;
  --cream:#f7f3eb;
  --white:#fffdf8;
  --line:rgba(23,51,39,.25);
  --serif:Iowan Old Style,Baskerville,Georgia,serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --text-h2:clamp(2.9rem,6.4vw,6.7rem);
  --text-action:.9rem;
  --text-small:16px;
  --text-secondary:17px;
  --text-body:18px;
  --text-lead:22px;
  --leading-small:1.65;
  --leading-body:1.8;
  --leading-lead:1.7;
  --measure-lead:65ch;
  --measure-body:68ch;
  --page-x:clamp(22px,8vw,128px);
  --section-y:clamp(96px,10vw,140px);
  --max-width:1600px;
  --ease:cubic-bezier(.22,1,.36,1);
  width:100%;
  max-width:100%;
  color:var(--ink);
  background:var(--cream);
  font-family:var(--sans);
}
.msb-experience-configurator,
.msb-experience-configurator * { box-sizing:border-box; }
.msb-experience-configurator h2,
.msb-experience-configurator h3 { font-family:var(--serif) !important; font-weight:400 !important; }
.msb-experience-configurator h2 { font-size:var(--text-h2) !important; line-height:.96 !important; letter-spacing:-.05em !important; }
.msb-experience-configurator p { max-width:var(--measure-body); font-size:var(--text-body); font-weight:400; line-height:var(--leading-body); }
.msb-experience-configurator button { font:inherit; }
.msb-experience-configurator .button {
  min-height:56px;
  padding:0 27px;
  border:1px solid var(--ink);
  border-radius:100px;
  color:var(--ink);
  background:transparent;
  font-size:var(--text-action);
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  cursor:pointer;
}
.msb-experience-configurator .button:hover { color:var(--white); background:var(--ink); }
.msb-experience-configurator .journey{ padding: 0 var(--page-x) var(--section-y); }
.msb-experience-configurator .journey__shell{ width: min(100%, var(--max-width)); min-height: 760px; display: grid; grid-template-columns: .7fr 2.3fr; gap: calc(7vw + 16px); margin-inline: auto; padding-top: clamp(48px, 6vw, 82px); border-top: 1px solid var(--line); }
.msb-experience-configurator .journey__progress{ height: fit-content; position: sticky; top: 50px; }
.msb-experience-configurator .journey__progress p{ margin-bottom: 18px; font-size: var(--text-action); font-weight: 800; letter-spacing: .14em; }
.msb-experience-configurator .journey__line{ width: 100%; max-width: 180px; height: 2px; background: rgba(23,51,39,.14); }
.msb-experience-configurator .journey__line span{ display: block; width: 20%; height: 3px; background: var(--forest); transform: translateY(-.5px); transition: width .45s var(--ease); }
.msb-experience-configurator .journey__steps{ display: grid; gap: 0; margin: 28px 0 0; padding: 0; list-style: none; }
.msb-experience-configurator .journey__steps li{ display: grid; grid-template-columns: 28px 1fr; gap: 12px; padding: 11px 0; color: rgba(23, 51, 39, .44); border-bottom: 1px solid var(--line); font-size: var(--text-small); font-weight: 700; letter-spacing: .07em; line-height: 1.4; text-transform: uppercase; transition: color .2s ease, font-weight .2s ease; }
.msb-experience-configurator .journey__steps li:first-child{ border-top: 1px solid var(--line); }
.msb-experience-configurator .journey__steps li span{ font-variant-numeric: tabular-nums; }
.msb-experience-configurator .journey__steps li.is-active{ color: var(--forest); font-weight: 850; letter-spacing: .085em; }
.msb-experience-configurator .journey__steps li.is-active span{ color: var(--forest); font-size: 1.08em; font-weight: 900; }
.msb-experience-configurator .journey__form{ max-width: 900px; }
.msb-experience-configurator .journey-step{ animation: page-enter .55s var(--ease); }
.msb-experience-configurator .journey-step[hidden]{ display: none; }
@keyframes page-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.msb-experience-configurator .journey-step h2{ max-width: 850px; margin: 36px 0 60px; }
.msb-experience-configurator .selection-context{ max-width: 720px; margin: -30px 0 46px; padding-left: 22px; border-left: 2px solid var(--forest); color: rgba(23,51,39,.72); font-size: var(--text-secondary); line-height: var(--leading-small); }
.msb-experience-configurator .selection-context > strong{ display: block; max-width: var(--measure-lead); margin-bottom: 14px; color: var(--ink); font-family: var(--serif); font-size: var(--text-lead); font-weight: 400; line-height: var(--leading-lead); letter-spacing: 0; }
.msb-experience-configurator .selection-context p{ max-width: 660px; margin: 0 0 12px; }
.msb-experience-configurator .selection-context p:last-child{ margin: 18px 0 0; }
.msb-experience-configurator.configurator-page :focus-visible{ outline-color: var(--forest); }
.msb-experience-configurator .step-copy{ max-width: var(--measure-body); margin: -30px 0 55px; font-size: var(--text-body); line-height: var(--leading-body); }

.msb-experience-configurator .choice-list{ border-top: 1px solid var(--line); }
.msb-experience-configurator .choice-list label{ position: relative; display: block; border-bottom: 1px solid var(--line); cursor: pointer; }
.msb-experience-configurator .choice-list input,
.msb-experience-configurator .room-choices input,
.msb-experience-configurator .experience-choices input{ position: absolute; opacity: 0; }
.msb-experience-configurator .choice-list span{ display: grid; grid-template-columns: 30px 1fr; gap: 22px; align-items: center; padding: 28px 0; font-family: var(--serif); font-size: var(--text-lead); line-height: 1.45; transition: padding-left .2s ease, background-color .2s ease; }
.msb-experience-configurator .choice-list span::before{ width: 18px; aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; content: ""; transition: background-color .2s ease, box-shadow .2s ease; }
.msb-experience-configurator .choice-list input:checked + span::before{ background: var(--ink); box-shadow: inset 0 0 0 4px var(--cream); }
.msb-experience-configurator .choice-list input:checked + span{ padding-left: 16px; background: var(--sand); }

.msb-experience-configurator .date-pair{ display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.msb-experience-configurator .date-pair label > span{ display: block; margin-bottom: 15px; font-size: var(--text-action); font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.msb-experience-configurator .date-pair input{ width: 100%; padding: 15px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; color: var(--ink); background: transparent; font-family: var(--serif); font-size: 1.35rem; }
.msb-experience-configurator .field-message,
.msb-experience-configurator .journey__error{ min-height: 24px; margin: 16px 0 0; color: #7c352f; font-size: var(--text-small); }
.msb-experience-configurator .room-question{ max-width: var(--measure-lead); margin: 46px 0 22px; font-family: var(--serif); font-size: var(--text-lead); line-height: var(--leading-lead); }

.msb-experience-configurator .room-choices{ display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.msb-experience-configurator .room-choices label,
.msb-experience-configurator .experience-choices label{ position: relative; cursor: pointer; }
.msb-experience-configurator .room-choices label > span{ min-height:430px; display:grid !important; grid-template-rows:auto auto auto; align-content:end; padding:clamp(34px,4vw,54px); border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:color .25s, background .25s; }
.msb-experience-configurator .room-choices small,
.msb-experience-configurator .experience-choices small{ display:block !important; margin-top:26px !important; font-size:var(--text-small) !important; font-weight:800 !important; letter-spacing:.11em !important; line-height:1.7 !important; text-transform:uppercase; }
.msb-experience-configurator .room-choices strong,
.msb-experience-configurator .experience-choices strong{ margin-top: auto; font-family: var(--serif); font-size: clamp(2rem, 3.5vw, 3.4rem); font-weight: 400; letter-spacing: -.045em; }
.msb-experience-configurator .room-choices strong{ display:block !important; align-self:end; margin:0 !important; font-size:clamp(2.5rem,3.2vw,3.6rem) !important; line-height:1.12 !important; overflow-wrap:normal; word-break:normal; hyphens:none; white-space:nowrap; }
.msb-experience-configurator .room-pricing{ display:grid !important; gap:12px; margin-top:32px !important; font-size:var(--text-secondary) !important; line-height:1.75 !important; }
.msb-experience-configurator .room-pricing strong{ margin: 0; font-family: var(--sans); font-size: var(--text-body); font-weight: 700; letter-spacing: 0; }
.msb-experience-configurator .room-pricing .room-pricing__total{ margin-top: 5px; font-weight: 700; }
.msb-experience-configurator .room-choices input:checked + span,
.msb-experience-configurator .experience-choices input:checked + span{ color: var(--white); background: var(--forest); }

.msb-experience-configurator .experience-choices{ display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.msb-experience-configurator .experience-choices span{ min-height: 300px; display: flex; flex-direction: column; justify-content: center; padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: color .25s, background .25s; }
.msb-experience-configurator .experience-choices strong{ margin: 0 0 12px; text-transform: none; }
.msb-experience-configurator .experience-choices em{ max-width: 260px; font-size: var(--text-secondary); font-style: normal; line-height: var(--leading-small); }
.msb-experience-configurator .experience-choices b{ margin-top: 22px; font-size: 1rem; font-weight: 800; letter-spacing: .08em; }

.msb-experience-configurator .cross-sell-label{ margin: 0 0 24px; }
.msb-experience-configurator .cross-sell-choices span{ min-height: 470px; justify-content: flex-start; }
.msb-experience-configurator .cross-sell-choices strong{ margin: 0 0 12px; }
.msb-experience-configurator .cross-sell-choices small{ margin-top: 28px; }
.msb-experience-configurator .cross-sell-choices ul{ display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.msb-experience-configurator .cross-sell-choices li{ font-size: var(--text-secondary); line-height: var(--leading-small); }
.msb-experience-configurator .cross-sell-choices li::before{ content: "— "; }
.msb-experience-configurator .cross-sell-choices b{ margin-top: auto; padding-top: 26px; }
.msb-experience-configurator .selection-status{ margin-top: 18px; font-size: var(--text-small); font-style: normal; font-weight: 700; letter-spacing: .04em; }
.msb-experience-configurator .cross-sell-choices .no-complement{ grid-column: 1 / -1; }
.msb-experience-configurator .cross-sell-choices .no-complement > span{ min-height: 150px; justify-content: center; }
.msb-experience-configurator .cross-sell-choices .no-complement strong{ font-size: clamp(1.7rem, 2.5vw, 2.5rem); }

.msb-experience-configurator .smart-situation[hidden]{ display: none; }
.msb-experience-configurator .smart-fields{ display: grid; grid-template-columns: 1fr 1fr; gap: 34px clamp(34px, 5vw, 72px); margin-top: 52px; }
.msb-experience-configurator .smart-fields label{ display: flex; min-width: 0; flex-direction: column; }
.msb-experience-configurator .smart-fields label > span{ min-height: 3.4em; margin-bottom: 14px; font-size: var(--text-secondary); font-weight: 650; line-height: 1.55; }
.msb-experience-configurator .smart-fields textarea,
.msb-experience-configurator .smart-fields select{ width: 100%; min-height: 58px; padding: 14px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; color: var(--ink); background: transparent; font: inherit; line-height: 1.55; }
.msb-experience-configurator .smart-fields textarea{ min-height: 130px; resize: vertical; }
.msb-experience-configurator .smart-fields select{ appearance: none; cursor: pointer; }

.msb-experience-configurator .experience-summary{ margin-bottom: 40px; padding: clamp(30px, 5vw, 65px); border: 1px solid var(--line); background: var(--sand); }
.msb-experience-configurator .experience-summary dl{ margin: 0; }
.msb-experience-configurator .experience-summary dl > div{ display: grid; grid-template-columns: .8fr 1.2fr; gap: 2rem; padding: 20px 0; border-bottom: 1px solid var(--line); }
.msb-experience-configurator .experience-summary dt{ font-size: var(--text-action); font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.msb-experience-configurator .experience-summary dd{ margin: 0; font-family: var(--serif); font-size: var(--text-body); line-height: var(--leading-body); text-align: right; }
.msb-experience-configurator .experience-summary__price dd{ font-size: 1.65rem; }
.msb-experience-configurator .experience-summary > p{ margin: 30px 0 0; font-size: var(--text-small); }
.msb-experience-configurator .coexistence-confirmation{ max-width: 780px; margin: 0 0 38px; padding: clamp(28px, 4vw, 46px) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.msb-experience-configurator .coexistence-confirmation[hidden]{ display: none; }
.msb-experience-configurator .coexistence-confirmation h3{ margin: 0 0 18px; font-size: clamp(1.7rem, 2.8vw, 2.5rem); }
.msb-experience-configurator .coexistence-confirmation > p{ max-width: var(--measure-body); margin: 0 0 28px; font-size: var(--text-secondary); line-height: var(--leading-small); }
.msb-experience-configurator .coexistence-acceptance{ display: grid; grid-template-columns: 22px 1fr; gap: 15px; align-items: start; cursor: pointer; }
.msb-experience-configurator .coexistence-acceptance input{ width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--forest); }
.msb-experience-configurator .coexistence-acceptance span{ max-width: 650px; font-size: var(--text-secondary); line-height: var(--leading-small); }
.msb-experience-configurator .coexistence-details{ max-width: 650px; margin-top: 25px; }
.msb-experience-configurator .coexistence-details summary{ width: fit-content; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: var(--text-action); font-weight: 700; letter-spacing: .06em; cursor: pointer; }
.msb-experience-configurator .coexistence-details ul{ display: grid; gap: 10px; margin: 22px 0 0; padding-left: 20px; font-size: var(--text-small); line-height: var(--leading-small); }
.msb-experience-configurator .project-context{ display: block; }
.msb-experience-configurator .project-context span{ display: block; margin-bottom: 16px; font-size: var(--text-action); font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.msb-experience-configurator .project-context textarea{ width: 100%; resize: vertical; padding: 22px; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: transparent; font-family: var(--serif); font-size: var(--text-body); line-height: var(--leading-body); }
.msb-experience-configurator .journey__controls{ display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-top: 54px; }
.msb-experience-configurator .journey-back{ padding: 0 0 6px; border: 0; border-bottom: 1px solid currentColor; color: var(--ink); background: none; font-size: var(--text-action); font-weight: 800; letter-spacing: .11em; text-transform: uppercase; cursor: pointer; }

/* Ancho y tipografía del componente instalable. */
.msb-experience-configurator {
  width: 100%;
  max-width: none;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.msb-experience-configurator .journey,
.msb-experience-configurator .journey__shell {
  width: 100%;
  max-width: none;
}
.msb-experience-configurator .journey__form {
  width: 100%;
  max-width: 980px;
}
.msb-experience-configurator .msb-fluentform-bridge {
  display: none !important;
}

@media (max-width:900px) {
  .msb-experience-configurator .journey__shell,
  .msb-experience-configurator .date-pair,
  .msb-experience-configurator .room-choices,
  .msb-experience-configurator .experience-choices,
  .msb-experience-configurator .smart-fields { grid-template-columns:1fr; }
  .msb-experience-configurator .journey__progress { position:static; }
  .msb-experience-configurator .room-choices strong{ white-space:normal; }
}

/* Recorrido legible en móvil y en navegadores que conservan un viewport amplio. */
@media (max-width:1100px) {
  .msb-experience-configurator {
    --page-x:clamp(22px,6vw,56px);
    --section-y:clamp(52px,8vw,76px);
  }
  .msb-experience-configurator .journey {
    padding-inline:var(--page-x);
  }
  .msb-experience-configurator .journey__shell {
    display:block !important;
    min-height:0 !important;
    padding-top:38px !important;
  }
  .msb-experience-configurator .journey__progress {
    position:static !important;
    width:100% !important;
    margin:0 0 38px !important;
  }
  .msb-experience-configurator .journey__steps {
    display:none !important;
  }
  .msb-experience-configurator .journey__form,
  .msb-experience-configurator .journey-step {
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }
  .msb-experience-configurator .journey-step h2 {
    max-width:100% !important;
    margin:0 0 28px !important;
    font-size:clamp(2.8rem,11vw,4.4rem) !important;
    line-height:1.02 !important;
    overflow-wrap:anywhere !important;
  }
  .msb-experience-configurator .step-copy {
    margin:0 0 30px !important;
    font-size:clamp(17px,4.5vw,21px) !important;
    line-height:1.55 !important;
  }
  .msb-experience-configurator .experience-choices,
  .msb-experience-configurator .room-choices {
    grid-template-columns:1fr !important;
    width:100% !important;
  }
  .msb-experience-configurator .experience-choices span,
  .msb-experience-configurator .room-choices label > span {
    min-height:190px !important;
    padding:28px 24px !important;
  }
  .msb-experience-configurator .experience-choices strong,
  .msb-experience-configurator .room-choices strong {
    max-width:100% !important;
    font-size:clamp(2rem,9vw,3rem) !important;
    line-height:1.08 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
  .msb-experience-configurator .experience-choices em {
    max-width:100% !important;
    font-size:16px !important;
    line-height:1.55 !important;
  }
  .msb-experience-configurator .date-pair {
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  .msb-experience-configurator .journey__controls {
    align-items:stretch !important;
    flex-direction:column-reverse !important;
    gap:22px !important;
    margin-top:36px !important;
  }
  .msb-experience-configurator .journey__controls .button,
  .msb-experience-configurator [data-submit-request] {
    width:100% !important;
  }
}
