/* Calculator layout and functional states. Shared values: visual-tokens.css. */
.building-calculator-open { text-decoration: none; }
.building-calculator, .building-calculator.fancybox__content {
    box-sizing: border-box;
    width: min(1180px, calc(100vw - 32px));
    max-width: 1180px;
    max-height: calc(100vh - 32px);
    padding: var(--seacan-space-5);
    overflow: auto;
    border-radius: var(--seacan-radius-card);
    color: var(--seacan-color-text);
    background: var(--seacan-color-surface);
    font: inherit;
}
.building-calculator *, .building-calculator *::before, .building-calculator *::after { box-sizing: border-box; }
.building-calculator [hidden] { display: none !important; } /* Preserve steps and conditional fields against legacy display rules. */
.building-calculator button, .building-calculator input, .building-calculator select, .building-calculator textarea { font-family: inherit; }
#building-calculator :is(button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--seacan-color-brand); outline-offset: 3px; }
.building-calculator > .carousel__button.is-close { top: 16px; right: 16px; }
.building-calculator__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-right: 40px; }
.building-calculator__eyebrow { margin: 0 0 8px; color: var(--seacan-color-brand); font-size: var(--seacan-label-size); font-weight: 700; }
.building-calculator .building-calculator__title { margin: 0; font-size: var(--seacan-heading-size); font-weight: 600; line-height: 1.2; text-transform: none; }
.building-calculator__step-counter { flex: none; padding: 10px 12px; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-pill); font-size: var(--seacan-small-size); white-space: nowrap; }
.building-calculator__progress { height: 4px; margin: 24px 0 16px; overflow: hidden; border-radius: var(--seacan-radius-pill); background: var(--seacan-color-control); }
.building-calculator__progress span { display: block; width: 10%; height: 100%; background: var(--seacan-color-action); }
.building-calculator__step-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.building-calculator__step-nav button { min-height: 40px; padding: 8px 12px; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-control); color: var(--seacan-color-muted); background: var(--seacan-color-surface); font-size: var(--seacan-small-size); cursor: pointer; white-space: nowrap; }
.building-calculator__step-nav button[aria-current] { color: var(--seacan-color-text); border-color: var(--seacan-color-brand); background: var(--seacan-color-subtle); }
.building-calculator__layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; }
.building-calculator__main { min-width: 0; }
.building-calculator__step h3 { margin: 0 0 12px; font-size: var(--seacan-card-title-size); font-weight: 600; line-height: 1.3; text-transform: none; }
#building-calculator .building-calculator__step h3:focus { outline: none; }
.building-calculator__hint { margin: 0 0 24px; color: var(--seacan-color-muted); font-size: var(--seacan-small-size); line-height: 1.55; }
.building-calculator__group + .building-calculator__group { margin-top: 24px; }
.building-calculator__group h4, .building-calculator__contacts h4 { margin: 0 0 16px; font-size: var(--seacan-body-size); font-weight: 600; line-height: 1.4; }
.building-calculator__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.building-calculator__field { min-width: 0; margin: 0; }
.building-calculator__field--full { grid-column: 1 / -1; }
.building-calculator .form__label { position: static; display: block; margin: 0 0 8px; padding: 0; font-size: var(--seacan-small-size); line-height: 1.4; background: transparent; }
.building-calculator .form__input { min-height: var(--seacan-control-height); height: auto; padding: 12px; border-radius: var(--seacan-radius-control); line-height: 1.4; }
.building-calculator select.form__input { padding-right: 28px; text-overflow: ellipsis; }
.building-calculator textarea.form__input { min-height: 110px; resize: vertical; }
.building-calculator .form__input::placeholder { color: var(--seacan-color-muted); opacity: 1; }
.building-calculator__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 12px; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-control); font-size: var(--seacan-body-size); line-height: 1.4; }
.building-calculator__row.is-selected { border-color: var(--seacan-color-brand); }
.building-calculator__container-option { display: flex; gap: 12px; align-items: center; margin: 0; min-width: 0; }
.building-calculator__container-image { width: 90px; height: 60px; object-fit: contain; flex: none; }
.building-calculator__counter { display: grid; grid-template-columns: 40px 56px 40px; gap: 4px; align-items: center; }
.building-calculator__counter button { width: 40px; height: 44px; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-control); color: var(--seacan-color-text); background: var(--seacan-color-surface); font-size: 22px; cursor: pointer; }
.building-calculator__counter button:disabled { opacity: .4; cursor: default; }
.building-calculator__counter input { width: 100%; min-width: 0; height: 44px; padding: 4px; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-control); color: var(--seacan-color-text); background: var(--seacan-color-surface); font-size: var(--seacan-body-size); text-align: center; appearance: textfield; -moz-appearance: textfield; }
.building-calculator__counter input::-webkit-inner-spin-button, .building-calculator__counter input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.building-calculator__check-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.building-calculator__check-group legend { float: none; width: auto; margin: 0 0 12px; font-size: var(--seacan-small-size); line-height: 1.4; }
.building-calculator__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.building-calculator__check { display: flex; align-items: flex-start; gap: 10px; min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-control); font-size: var(--seacan-body-size); line-height: 1.4; cursor: pointer; }
.building-calculator__check:has(input:checked) { border-color: var(--seacan-color-brand); background: var(--seacan-color-subtle); }
.building-calculator input[type="checkbox"] { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--seacan-color-brand); }
.building-calculator__nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; }
.building-calculator__nav-btn:disabled { opacity: .4; cursor: default; }
.building-calculator__next, .building-calculator__submit { border: 0; }
.building-calculator__aside { position: sticky; top: 0; min-width: 0; }
.building-calculator__summary { max-height: calc(100vh - 100px); padding: 16px; overflow: auto; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-card); }
.building-calculator__summary > summary { color: var(--seacan-color-text); font-size: var(--seacan-body-size); font-weight: 600; cursor: pointer; }
.building-calculator__summary-list { display: grid; gap: 16px; margin-top: 16px; font-size: var(--seacan-small-size); line-height: 1.55; overflow-wrap: anywhere; }
.building-calculator__summary-group strong { display: block; margin-bottom: 8px; font-weight: 600; }
.building-calculator__summary-list ul, .building-calculator__review ul { margin: 0; padding-left: 18px; color: var(--seacan-color-muted); white-space: pre-line; }
.building-calculator__summary-list li + li, .building-calculator__review li + li { margin-top: 8px; }
.building-calculator.is-review .building-calculator__layout { grid-template-columns: 1fr; }
.building-calculator.is-review .building-calculator__aside { display: none; }
.building-calculator__review { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.building-calculator__review details { min-width: 0; padding: 20px; border: 1px solid var(--seacan-color-border); border-radius: var(--seacan-radius-card); overflow-wrap: anywhere; font-size: var(--seacan-body-size); line-height: 1.55; }
.building-calculator__review summary { font-weight: 600; cursor: pointer; }
.building-calculator__review ul { margin-top: 16px; }
.building-calculator__review button { margin-top: 16px; padding: 4px 0; border: 0; color: var(--seacan-color-text); background: none; text-decoration: underline; font-size: var(--seacan-small-size); cursor: pointer; }
.building-calculator__download { margin-top: 24px; }
.building-calculator__contacts { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--seacan-color-border); }
.building-calculator__contact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.building-calculator__attachment { margin-top: 24px; }
.building-calculator__attachment input { max-width: 100%; font-size: var(--seacan-small-size); }
.building-calculator__attachment .building-calculator__hint { margin: 8px 0 0; }
.building-calculator__agree { margin: 24px 0 0; font-size: var(--seacan-small-size); line-height: 1.55; }
.building-calculator__agree label { display: flex; align-items: flex-start; gap: 10px; margin: 0; cursor: pointer; }
.building-calculator__step-error { margin: 16px 0 0; color: #b73524; font-size: var(--seacan-small-size); line-height: 1.55; }
.building-calculator__message { margin-top: 16px; }
/* The local modal fallback and third-party chat protection must stay functional. */
body.building-calculator-modal-open .fancybox__container { z-index: 2147483000 !important; }
body.building-calculator-modal-open :is(jdiv.notranslate, jdiv#jcont, jdiv.jv-mouse-track, iframe[id*="jivo"], iframe[src*="jivo"]) { display: none !important; visibility: hidden !important; pointer-events: none !important; }
body.building-calculator-fallback-open { overflow: hidden; }
.building-calculator-fallback-overlay { position: fixed; inset: 0; z-index: 9998; background: rgba(23, 38, 38, .62); }
.building-calculator-fallback-overlay[hidden] { display: none; }
body.building-calculator-fallback-open .building-calculator { position: fixed; top: 50%; left: 50%; z-index: 9999; transform: translate(-50%, -50%); display: block !important; }
.building-calculator__fallback-close { position: absolute; top: 16px; right: 16px; display: none; width: 34px; height: 34px; border: 0; border-radius: var(--seacan-radius-pill); color: var(--seacan-color-text); background: var(--seacan-color-control); font-size: 26px; cursor: pointer; }
body.building-calculator-fallback-open .building-calculator__fallback-close { display: block; }
@media (max-width: 1000px) {
    .building-calculator, .building-calculator.fancybox__content { padding: 24px; }
    .building-calculator__layout { grid-template-columns: 1fr; gap: 24px; }
    .building-calculator__aside { position: static; }
    .building-calculator__summary { max-height: none; }
    .building-calculator__head { flex-direction: column; gap: 12px; }
    .building-calculator__step-nav { flex-wrap: nowrap; max-width: 100%; padding: 4px; margin: -4px -4px 24px; overflow-x: auto; }
}
@media (max-width: 700px) {
    .building-calculator, .building-calculator.fancybox__content { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); padding: 48px 16px 20px; }
    .building-calculator__head { padding-right: 0; }
    .building-calculator .building-calculator__title { font-size: 26px; }
    .building-calculator__fields, .building-calculator__choices, .building-calculator__review, .building-calculator__contact-grid { grid-template-columns: 1fr; }
    .building-calculator__row { grid-template-columns: 1fr; gap: 12px; }
    .building-calculator__counter { grid-template-columns: 44px minmax(0, 1fr) 44px; }
    .building-calculator__counter button { width: 44px; }
    .building-calculator__review details { padding: 16px; }
    .building-calculator__nav { flex-wrap: wrap; }
    .building-calculator__next, .building-calculator__submit { flex: 1; }
}
@media (max-width: 380px) {
    .building-calculator__nav { flex-direction: column-reverse; align-items: stretch; }
    .building-calculator__nav > button { width: 100%; }
}
