.tu-configurator {
  --tu-configurator-brand: var(--tu-brand-500, #ff791f);
  --tu-configurator-text: #191919;
  --tu-configurator-muted: #626262;
  --tu-configurator-border: #dedede;
  --tu-configurator-soft: #f6f6f6;
  --tu-ink-900: #191919;
  --tu-ink-700: #333;
  --tu-ink-500: #626262;
  --tu-ink-400: #767676;
  --tu-border-soft: #ededed;
  --tu-border-strong: #dedede;
  --tu-surface-page: #fff;
  --tu-surface-subtle: #f6f6f6;
  --tu-shadow-card: 0 .2rem .8rem rgba(0, 0, 0, .05);
  --tu-shadow-hover: 0 .4rem 1.6rem rgba(0, 0, 0, .1);
  width: 100%;
  color: var(--tu-configurator-text);
  background: #fff;
  font-family: inherit;
  font-size: 1.4rem;
  line-height: 1.6;
}

.tu-configurator *,
.tu-configurator *::before,
.tu-configurator *::after { box-sizing: border-box; }
.tu-configurator [hidden] { display: none !important; }
.tu-configurator .tu-configurator__shell { width: 100%; }
.tu-configurator button,
.tu-configurator input,
.tu-configurator select { font-family: inherit; font-size: inherit; }
.tu-configurator button { cursor: pointer; }
.tu-configurator button:disabled { cursor: not-allowed; opacity: .48; }
.tu-configurator button:focus-visible,
.tu-configurator input:focus-visible,
.tu-configurator select:focus-visible,
.tu-configurator summary:focus-visible { outline: 3px solid var(--tu-configurator-brand); outline-offset: 4px; }
.tu-configurator .tu-configurator__title:focus { outline: none; }
.tu-configurator .tu-configurator__header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.6rem; margin-bottom: 2.4rem; }
.tu-configurator .tu-configurator__eyebrow { margin: 0; color: var(--tu-configurator-muted); font-size: 1.4rem; font-weight: 600; }
.tu-configurator .tu-configurator__title { width: 100%; margin: 0 0 1.6rem; color: inherit; font-size: clamp(2.6rem, 3vw, 3.6rem); font-weight: 700; line-height: 1.2; letter-spacing: -.02em; overflow-wrap: anywhere; }
.tu-configurator .tu-configurator__intro { max-width: 72rem; margin: 0 0 3.2rem; color: var(--tu-configurator-muted); }
.tu-configurator .tu-configurator__intro--result { width: 100%; max-width: none; }
.tu-configurator .tu-configurator__choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem; }
.tu-configurator .tu-configurator__choices--detail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tu-configurator .tu-configurator__choice { position: relative; display: flex; flex-direction: column; gap: .8rem; min-width: 0; min-height: 14rem; padding: 1.6rem 4.8rem 1.6rem 1.6rem; border: 1px solid var(--tu-configurator-border); border-radius: var(--tu-radius-lg, 1.4rem); color: inherit; background: #fff; text-align: left; appearance: none; transition: border-color .15s; }
.tu-configurator .tu-configurator__choice:hover { border-color: var(--tu-configurator-brand); }
.tu-configurator .tu-configurator__choice-title { font-size: 1.9rem; font-weight: 600; line-height: 1.3; }
.tu-configurator .tu-configurator__choice-description { font-size: 1.4rem; color: var(--tu-configurator-muted); }
.tu-configurator .tu-configurator__choice-icon { display: block; flex: 0 0 auto; width: 2.8rem; height: 2.8rem; margin-top: auto; color: var(--tu-configurator-brand); }
.tu-configurator .tu-configurator__choice-icon svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.tu-configurator .tu-configurator__choice-arrow { position: absolute; right: 1.6rem; top: 1.6rem; color: var(--tu-configurator-brand); font-size: 2rem; line-height: 1; }
.tu-configurator .tu-configurator__text-button,
.tu-configurator .tu-configurator__back { display: inline-block; width: auto; padding: .4rem 0; border: 0; border-radius: 0; color: inherit; background: transparent; text-decoration: underline; text-underline-offset: .3rem; font-weight: 500; appearance: none; }
.tu-configurator .tu-configurator__back { margin: 0 0 2.4rem; font-size: 1.4rem; }
.tu-configurator .tu-configurator__context { margin: 0 0 1.6rem; font-weight: 600; }
.tu-configurator .tu-configurator__progress-text { margin: 0 0 .8rem; font-size: 1.4rem; color: var(--tu-configurator-muted); }
.tu-configurator .tu-configurator__progress { display: block; width: 100%; height: .5rem; margin: 0 0 3.2rem; overflow: hidden; border: 0; border-radius: .5rem; color: var(--tu-configurator-brand); background: #ebebeb; appearance: none; }
.tu-configurator .tu-configurator__progress::-webkit-progress-bar { background: #ebebeb; }
.tu-configurator .tu-configurator__progress::-webkit-progress-value { background: var(--tu-configurator-brand); }
.tu-configurator .tu-configurator__progress::-moz-progress-bar { background: var(--tu-configurator-brand); }
.tu-configurator .tu-configurator__fieldset { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.tu-configurator .tu-configurator__question { display: block; float: none; padding: 0; font-size: clamp(2.3rem, 2.5vw, 3rem); }
.tu-configurator .tu-configurator__help { max-width: 72rem; margin: 0 0 2.4rem; color: var(--tu-configurator-muted); }
.tu-configurator .tu-configurator__help:empty { display: none; }
.tu-configurator .tu-configurator__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.tu-configurator .tu-configurator__option { display: flex; align-items: flex-start; gap: 1.2rem; min-width: 0; min-height: 6rem; margin: 0; padding: 1.6rem 2rem; border: 1px solid var(--tu-configurator-border); border-radius: var(--tu-radius-md, .8rem); color: var(--tu-configurator-text); background: #fff; cursor: pointer; overflow-wrap: anywhere; }
.tu-configurator .tu-configurator__option:hover { border-color: #999; }
.tu-configurator .tu-configurator__option.is-selected { border-color: var(--tu-configurator-brand); box-shadow: inset 0 0 0 1px var(--tu-configurator-brand); }
.tu-configurator .tu-configurator__option input,
.tu-configurator .tu-configurator__unknown input { flex: 0 0 auto; width: 1.8rem; height: 1.8rem; margin: .3rem 0 0; padding: 0; accent-color: var(--tu-configurator-brand); appearance: auto; }
.tu-configurator .tu-configurator__label { display: block; margin: 0 0 .8rem; color: var(--tu-configurator-text); font-weight: 600; }
.tu-configurator .tu-configurator__number-row { display: flex; align-items: center; gap: 1.2rem; width: 100%; max-width: 48rem; }
.tu-configurator .tu-configurator__input,
.tu-configurator .tu-configurator__select { min-width: 0; min-height: 5rem; padding: 1.2rem 1.6rem; border: 1px solid var(--tu-configurator-border); border-radius: var(--tu-radius-md, .8rem); color: var(--tu-configurator-text); background: #fff; line-height: 1.5; }
.tu-configurator .tu-configurator__input { width: 100%; }
.tu-configurator .tu-configurator__input--wide { display: block; max-width: 64rem; }
.tu-configurator .tu-configurator__select { width: auto; min-width: 9rem; }
.tu-configurator .tu-configurator__input:disabled,
.tu-configurator .tu-configurator__select:disabled { background: var(--tu-configurator-soft); color: var(--tu-configurator-muted); }
.tu-configurator .tu-configurator__unit { flex-shrink: 0; color: var(--tu-configurator-muted); }
.tu-configurator .tu-configurator__unknown { display: flex; align-items: flex-start; gap: 1.2rem; margin: 2rem 0 0; color: var(--tu-configurator-text); cursor: pointer; }
.tu-configurator .tu-configurator__model-unknown { margin-top: 1.2rem; }
.tu-configurator .tu-configurator__input-error { margin: 1.2rem 0 0; color: #b42318; }
.tu-configurator .tu-configurator__input-error:empty { display: none; }
.tu-configurator .tu-configurator__actions { display: flex; justify-content: flex-end; gap: 1.6rem; margin-top: 3.2rem; }
.tu-configurator .tu-configurator__button { display: inline-flex; justify-content: center; align-items: center; min-height: 4.8rem; width: auto; margin: 0; padding: 1.2rem 2.4rem; border: 1px solid transparent; border-radius: var(--tu-radius-md, .8rem); font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; }
.tu-configurator .tu-configurator__button--primary { color: #fff; background: linear-gradient(135deg, var(--tu-configurator-brand), #cc5200); }
.tu-configurator .tu-configurator__button--primary:hover:not(:disabled) { filter: brightness(.95); }
.tu-configurator .tu-configurator__status { padding: 2rem; margin: 0 0 2.4rem; border-radius: var(--tu-radius-md, .8rem); background: var(--tu-configurator-soft); }
.tu-configurator .tu-configurator__error { margin: 0 0 2.4rem; color: #b42318; }
.tu-configurator .tu-configurator__notice { margin: 0 0 2.4rem; padding: 1.6rem 2rem; border-left: 3px solid var(--tu-configurator-brand); background: var(--tu-configurator-soft); }
.tu-configurator .tu-configurator__checks,
.tu-configurator .tu-configurator__unknowns { margin-bottom: 2.4rem; }
.tu-configurator .tu-configurator__small-title { margin: 0 0 .8rem; color: inherit; font-size: 1.7rem; font-weight: 600; }
.tu-configurator .tu-configurator__list { margin: 0; padding-left: 2.4rem; }
.tu-configurator .tu-configurator__list li { margin: .4rem 0; }
.tu-configurator .tu-configurator__products { width: 100%; margin: 3.2rem 0; }
.tu-configurator .tu-configurator__product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem; }
.tu-configurator .tu-configurator__product-item { min-width: 0; }
.tu-configurator .tu-configurator__recap { margin-top: 3.2rem; padding: 2rem 0 0; border-top: 1px solid var(--tu-configurator-border); }
.tu-configurator .tu-configurator__recap summary { cursor: pointer; font-weight: 600; }
.tu-configurator .tu-configurator__answers { margin: 2rem 0 0; }
.tu-configurator .tu-configurator__answer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: start; gap: 1.6rem; padding: 1.6rem 0; border-bottom: 1px solid #ededed; }
.tu-configurator .tu-configurator__answer dt { font-weight: 500; }
.tu-configurator .tu-configurator__answer dd { min-width: 0; margin: 0; color: var(--tu-configurator-text); overflow-wrap: anywhere; }
.tu-configurator .tu-configurator__answer button { font-size: 1.4rem; }

@media (max-width: 991px) {
  .tu-configurator .tu-configurator__choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tu-configurator .tu-configurator__product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tu-configurator .tu-configurator__choice--accessories { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .tu-configurator .tu-configurator__header { align-items: flex-start; gap: .8rem 1.6rem; margin-bottom: 2rem; }
  .tu-configurator .tu-configurator__intro { margin-bottom: 2.4rem; }
  .tu-configurator .tu-configurator__choices,
  .tu-configurator .tu-configurator__choices--detail { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
  .tu-configurator .tu-configurator__choice { min-height: 0; padding: 1.6rem 4.8rem 1.6rem 1.6rem; }
  .tu-configurator .tu-configurator__choice-title { font-size: 1.8rem; }
  .tu-configurator .tu-configurator__options { grid-template-columns: minmax(0, 1fr); }
  .tu-configurator .tu-configurator__product-grid { grid-template-columns: minmax(0, 1fr); }
  .tu-configurator .tu-configurator__option { padding: 1.6rem; }
  .tu-configurator .tu-configurator__actions { margin-top: 2.4rem; }
  .tu-configurator .tu-configurator__button { width: 100%; }
  .tu-configurator .tu-configurator__answer { grid-template-columns: minmax(0, 1fr) auto; gap: .8rem 1.6rem; }
  .tu-configurator .tu-configurator__answer dt { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .tu-configurator .tu-configurator__choice { transition: none; }
}
