#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col, #asg-configuratore-wrapper .asg-state-configurator .asg-controls-col {
    position: relative !important;
    top: auto !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    align-self: flex-start !important;
}
#asg-configuratore-wrapper.asg-state-configurator #step-2-view, #asg-configuratore-wrapper .asg-state-configurator #step-2-view {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
}
#asg-configuratore-wrapper.asg-state-configurator #step-2-view .asg-controls-body, #asg-configuratore-wrapper .asg-state-configurator #step-2-view .asg-controls-body {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding-bottom: 24px !important;
}
#asg-configuratore-wrapper .asg-shadow-popover {
    position: fixed !important;
    z-index: 100000;
    right: 24px !important;
    top: 104px !important;
    left: auto !important;
    bottom: auto !important;
    width: min(420px, calc(100vw - 32px)) !important;
    max-width: calc(100vw - 32px) !important;
    transform-origin: top right !important;
}
#asg-configuratore-wrapper .asg-config-nav-pill, #asg-configuratore-wrapper .mc-compare-toggle {
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    min-height: 76px;
    padding: 0 22px;
    border-radius: 24px;
    border: 1px solid rgba(255,255,255,.08) !important;
    background: rgba(255,255,255,.03) !important;
    color: #edf5ff !important;
    font-size: 15px;
    font-weight: 800;
    text-align: left !important;
}
#asg-configuratore-wrapper .asg-config-nav-pill i {
    width: 24px;
    text-align: center;
    font-size: 16px;
}
#asg-configuratore-wrapper .asg-config-nav-pill[data-target="asg-section-dimensions"] i {
    color: #47e5cb !important;
}
#asg-configuratore-wrapper .asg-config-nav-pill[data-target="asg-section-finishes"] i {
    color: #b57cff !important;
}
#asg-configuratore-wrapper .asg-config-nav-pill[data-target="asg-section-optionals"] i {
    color: #ffb348 !important;
}
#asg-configuratore-wrapper .asg-config-nav-pill[data-target="asg-final-summary-card"] i {
    color: #68a4ff !important;
}
#asg-configuratore-wrapper .asg-config-nav-pill.is-active {
    background: linear-gradient(135deg, rgba(0,212,170,.18), rgba(91,154,255,.18)) !important;
    border-color: rgba(67,212,183,.4) !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.05) !important;
}
#asg-configuratore-wrapper #step-2-view .control-group, #asg-configuratore-wrapper #step-2-view .asg-final-summary-card {
    display: none;
    width: 100%;
    margin: 0;
    padding: 22px;
    border-radius: 24px !important;
    background: linear-gradient(180deg, rgba(6,12,26,.98), rgba(4,8,20,.98)) !important;
    border: 1px solid rgba(98,130,190,.14) !important;
    box-shadow: 0 18px 44px rgba(0,0,0,.22) !important;
    overflow: visible !important;
}
#asg-configuratore-wrapper #step-2-view .control-group.active, #asg-configuratore-wrapper #step-2-view .asg-final-summary-card.active {
    display: block !important;
}
#asg-configuratore-wrapper #step-2-view .control-group h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 18px !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase;
}
#asg-configuratore-wrapper #step-2-view .control-group h3 i {
    color: #45e4cb !important;
}
#asg-configuratore-wrapper #asg-section-dimensions .form-row, #asg-configuratore-wrapper #step-2-view .form-row.asg-form-row-lg {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 18px;
    margin-bottom: 0 !important;
}
#asg-configuratore-wrapper #asg-section-dimensions .form-col, #asg-configuratore-wrapper #step-2-view .form-col.asg-form-col-full {
    width: 100% !important;
    min-width: 0 !important;
    padding: 18px;
    border-radius: 20px !important;
    background: rgba(2,8,18,.42) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
}
#asg-configuratore-wrapper #step-2-view .form-col label {
    margin-bottom: 12px !important;
    font-size: 13px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: #97abc8 !important;
    font-weight: 500 !important;
}
#asg-configuratore-wrapper .asg-stepper-boundary-feedback, #asg-configuratore-wrapper .asg-stepper-boundary-feedback::after, #asg-configuratore-wrapper .asg-stepper-boundary-feedback::before {
    display: none !important;
}
#asg-configuratore-wrapper .btn-stepper.is-limit {
    opacity: .92;
    cursor: pointer;
    filter: none;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
}
#asg-configuratore-wrapper #step-2-view .asg-stepper-container, #asg-configuratore-wrapper #asg-section-dimensions .asg-stepper-container {
    display: grid !important;
    grid-template-columns: 48px minmax(132px, 1fr) 48px;
    gap: 12px !important;
    align-items: center !important;
    min-height: 84px;
    width: 100% !important;
    padding: 10px 14px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(0,0,0,.56), rgba(0,0,0,.40)) !important;
    border: 1px solid rgba(28,241,215,.75) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.02), inset 0 8px 24px rgba(0,0,0,.18) !important;
}
#asg-configuratore-wrapper #step-2-view .btn-stepper, #asg-configuratore-wrapper #asg-section-dimensions .btn-stepper {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 15px;
    background: linear-gradient(180deg, rgba(18,27,52,.95), rgba(10,18,36,.98)) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
    color: #fff !important;
    font-size: 18px !important;
    position: relative;
    z-index: 2;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.07), 0 8px 20px rgba(0,0,0,.18);
    opacity: 1;
}
#asg-configuratore-wrapper #step-2-view .stepper-value, #asg-configuratore-wrapper #asg-section-dimensions .stepper-value {
    display: flex !important;
    align-items: baseline !important;
    justify-content: center !important;
    gap: 6px;
    min-width: 0 !important;
    color: #fff !important;
    white-space: nowrap !important;
    writing-mode: horizontal-tb !important;
    font-size: 0 !important;
    position: relative;
    z-index: 1;
}
#asg-configuratore-wrapper #step-2-view .stepper-value-number, #asg-configuratore-wrapper #asg-section-dimensions .stepper-value-number {
    font-size: 22px;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: -.03em !important;
}
#asg-configuratore-wrapper #step-2-view .stepper-value-unit, #asg-configuratore-wrapper #asg-section-dimensions .stepper-value-unit {
    font-size: 12px;
    line-height: 1 !important;
    font-weight: 600 !important;
    color: #a8bbd6 !important;
    text-transform: lowercase;
}
#asg-configuratore-wrapper .asg-final-summary-head {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
}
#asg-configuratore-wrapper .asg-final-summary-kicker {
    color: #8ff4dd !important;
    font-size: 11px;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .12em;
}
#asg-configuratore-wrapper .asg-final-summary-head strong, #asg-configuratore-wrapper #asg-final-summary-title {
    color: #f3f7ff !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
}
#asg-configuratore-wrapper .asg-final-summary-grid {
    display: block;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
#asg-configuratore-wrapper .asg-final-summary-visual, #asg-configuratore-wrapper .asg-final-summary-media {
    min-height: 160px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
}
#asg-configuratore-wrapper .asg-final-summary-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
#asg-configuratore-wrapper .asg-final-summary-topline {
    display: grid;
    justify-content: space-between !important;
    gap: 12px;
    align-items: center !important;
    margin-bottom: 12px !important;
    grid-template-columns: repeat(2, minmax(0,1fr));
}
#asg-configuratore-wrapper .asg-final-summary-code {
    color: #dce8fb !important;
    font-size: 15px !important;
    font-weight: 800 !important;
}
#asg-configuratore-wrapper .asg-final-summary-total {
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}
#asg-configuratore-wrapper .asg-final-summary-list {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 10px;
}
#asg-configuratore-wrapper .asg-final-summary-item {
    display: grid !important;
    grid-template-columns: 110px minmax(0,1fr) !important;
    gap: 8px !important;
    align-items: start !important;
}
#asg-configuratore-wrapper .asg-final-summary-item-label {
    color: #90a4c2 !important;
    font-size: 13px !important;
}
#asg-configuratore-wrapper .asg-final-summary-item-value {
    color: #f4f8ff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}
#asg-configuratore-wrapper .asg-final-summary-note {
    margin-top: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 12px 16px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #e8f0ff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
#asg-configuratore-wrapper .asg-config-header-shell-v2 #asg-dynamic-title {
    font-size: clamp(28px, 3.2vw, 44px);
}
#asg-configuratore-wrapper .asg-config-header-shell-v2 .asg-controls-intro-compact {
    font-size: 13px;
    max-width: 360px;
}
#asg-configuratore-wrapper .asg-dock-eyebrow {
    justify-self: center;
    grid-area: left;
    align-self: start;
    margin: 0 0 8px;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .price-label {
    order: 0;
    font-size: 11px;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .price-value {
    order: 1;
    font-size: clamp(48px, 4vw, 70px);
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-price-meta {
    gap: 6px;
    grid-area: left;
    justify-items: center;
    align-content: start;
    padding-top: 44px;
}
html {
    scrollbar-gutter: stable both-edges;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-dock-main {
    grid-template-columns: minmax(300px, 420px) minmax(340px, 1fr);
    grid-template-areas: "left cta"
    "summary summary";
    align-items: center;
    gap: 18px 28px;
}
#asg-configuratore-wrapper .asg-module-summary {
    display: none;
}
#asg-configuratore-wrapper .asg-price-warning {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    max-width: 100%;
    margin-top: 4px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255, 84, 84, 0.10);
    border: 1px solid rgba(255, 84, 84, 0.22);
    color: #ff8c8c;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}
#asg-configuratore-wrapper.asg-has-unpriced-config .asg-inline-price-panel-docked .price-value {
    font-size: clamp(28px, 2.2vw, 36px);
    line-height: 1.05;
}
#asg-configuratore-wrapper.asg-has-unpriced-config .asg-inline-price-panel-docked .price-label {
    color: #ffb3b3;
}
#asg-configuratore-wrapper .btn-stepper.is-limit, #asg-configuratore-wrapper .btn-stepper.is-limit:hover, #asg-configuratore-wrapper .btn-stepper.is-limit:focus {
    opacity: 1;
    filter: none;
    cursor: pointer;
    transform: none;
}
#asg-configuratore-wrapper #step-2-view .asg-controls-body {
    scrollbar-gutter: stable both-edges;
    gap: 16px;
}
#asg-configuratore-wrapper .asg-stepper-boundary-feedback, #asg-configuratore-wrapper .asg-stepper-boundary-feedback::before, #asg-configuratore-wrapper .asg-stepper-boundary-feedback::after {
    display: none;
}
#asg-configuratore-wrapper #asg-final-summary-title {
    font-size: 20px;
    line-height: 1.3;
}
#asg-configuratore-wrapper .asg-final-summary-visual {
    min-height: 210px;
    border-radius: 20px;
    overflow: hidden;
    width: 100%;
    position: relative;
}
#asg-configuratore-wrapper .asg-final-summary-main {
    display: grid;
    gap: 16px;
    min-width: 0;
}
#asg-configuratore-wrapper .asg-final-summary-meta-block {
    display: grid;
    gap: 6px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.06);
}
#asg-configuratore-wrapper .asg-final-summary-meta-block span {
    font-size: 11px;
    color: #8ea4c2;
    letter-spacing: .08em;
    text-transform: uppercase;
}
#asg-configuratore-wrapper .asg-final-summary-meta-block strong {
    font-size: 19px;
    color: #fff;
    line-height: 1.2;
}
#asg-configuratore-wrapper .asg-final-summary-row {
    display: grid;
    grid-template-columns: 132px minmax(0,1fr);
    gap: 12px;
    align-items: start;
}
#asg-configuratore-wrapper .asg-final-summary-row span {
    font-size: 13px;
    color: #8ea4c2;
}
#asg-configuratore-wrapper .asg-final-summary-row strong {
    font-size: 15px;
    color: #fff;
    line-height: 1.35;
}
#asg-configuratore-wrapper .asg-final-note {
    display: inline-flex;
    padding: 12px 16px;
    border-radius: 999px;
    align-items: center;
}
#asg-configuratore-wrapper.asg-has-unpriced-config .asg-config-status-note.is-warning {
    background: rgba(255, 76, 76, 0.10);
    border: 1px solid rgba(255, 76, 76, 0.24);
    color: #ffb0b0;
}
#asg-configuratore-wrapper.asg-has-unpriced-config #btn-generate-pdf, #asg-configuratore-wrapper.asg-has-unpriced-config #btn-generate-pdf.is-disabled {
    opacity: .55;
    cursor: not-allowed;
    box-shadow: none;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-dock-eyebrow {
    display: none;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    padding: 28px 28px 22px;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(360px, 420px);
    gap: 18px 26px;
    align-items: center;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-meta {
    display: grid;
    gap: 8px;
    align-content: start;
    justify-items: start;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-label {
    order: -1;
    margin: 0 0 2px;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-value {
    margin: 0;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-inline-cta-grid {
    align-self: center;
    justify-self: end;
    margin-top: 0;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock #asg-config-summary-bar {
    margin-top: 18px;
    padding-top: 18px;
}
#asg-configuratore-wrapper #step-2-view .asg-final-summary-card {
    padding: 24px;
}
#asg-configuratore-wrapper .asg-final-summary-layout.asg-final-summary-layout-clean {
    display: grid;
    gap: 18px;
}
#asg-configuratore-wrapper .asg-final-summary-visual-badge {
    position: absolute;
    left: 14px;
    bottom: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(7, 12, 24, 0.82);
    border: 1px solid rgba(255,255,255,.08);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}
#asg-configuratore-wrapper .asg-final-summary-notes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

@media (min-width: 1181px) {
    #asg-configuratore-wrapper .asg-gizmo-overlay {
        top: 82px;
        right: 14px;
        width: 60px;
        height: 60px;
    }
    #asg-configuratore-wrapper .asg-gizmo-overlay canvas {
        width: 60px;
        height: 60px;
        min-width: 60px;
        min-height: 60px;
    }
}

@media (max-width: 1180px) {
    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: 1fr;
        grid-template-areas: "left"
      "cta"
      "summary";
    }
    #asg-configuratore-wrapper .asg-dock-eyebrow, #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-price-meta {
        justify-self: center;
    }
}

@media (max-width: 767px) {
    #asg-configuratore-wrapper .asg-config-nav-pill, #asg-configuratore-wrapper .mc-compare-toggle {
        min-height: 70px;
        font-size: 14px;
    }
    #asg-configuratore-wrapper .asg-final-summary-grid {
        grid-template-columns: 1fr;
    }
    #asg-configuratore-wrapper .asg-final-summary-topline {
        grid-template-columns: 1fr;
    }
    #asg-configuratore-wrapper .asg-final-summary-visual {
        min-height: 170px;
    }
    #asg-configuratore-wrapper .asg-final-summary-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* Blocco D: dock density + dimension stepper stability */
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-dock-inline-meta,
#asg-configuratore-wrapper .asg-viewer-bottom-dock #asg-module-summary,
#asg-configuratore-wrapper .asg-viewer-bottom-dock #asg-price-warning {
    display: none !important;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    padding: 22px 24px 18px;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main {
    grid-template-columns: minmax(260px, 1fr) minmax(300px, 396px);
    gap: 16px 22px;
    align-items: start;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-meta {
    gap: 4px;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-label {
    font-size: 10px;
    letter-spacing: .16em;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-value {
    font-size: clamp(42px, 3.4vw, 60px);
    line-height: .92;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid {
    gap: 12px;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 60px;
    border-radius: 18px;
    padding: 0 16px;
    font-size: 13px;
}
#asg-configuratore-wrapper #asg-config-summary-bar {
    margin-top: 14px;
    padding-top: 14px;
}
#asg-configuratore-wrapper .asg-summary-col {
    gap: 10px;
    padding-top: 8px;
    padding-bottom: 8px;
}
#asg-configuratore-wrapper .asg-summary-col-icon {
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 13px;
    font-size: 16px;
}
#asg-configuratore-wrapper .asg-summary-col-label {
    font-size: 9px;
    letter-spacing: .14em;
}
#asg-configuratore-wrapper .asg-summary-col-value {
    font-size: 14px;
    line-height: 1.25;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}
#asg-configuratore-wrapper #step-2-view .asg-stepper-container,
#asg-configuratore-wrapper #asg-section-dimensions .asg-stepper-container {
    grid-template-columns: 44px minmax(116px, 1fr) 44px;
    gap: 10px !important;
    min-height: 74px;
    padding: 8px 10px;
    border-radius: 18px;
}
#asg-configuratore-wrapper #step-2-view .btn-stepper,
#asg-configuratore-wrapper #asg-section-dimensions .btn-stepper {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 14px;
    font-size: 16px !important;
}
#asg-configuratore-wrapper #step-2-view .stepper-value-number,
#asg-configuratore-wrapper #asg-section-dimensions .stepper-value-number {
    font-size: 20px;
}
#asg-configuratore-wrapper #step-2-view .stepper-value-unit,
#asg-configuratore-wrapper #asg-section-dimensions .stepper-value-unit {
    font-size: 11px;
}
@media (max-width: 1180px) {
    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 900px) {
    #asg-configuratore-wrapper #asg-section-dimensions .form-row,
    #asg-configuratore-wrapper #step-2-view .form-row.asg-form-row-lg {
        grid-template-columns: 1fr !important;
    }
}


/* Blocco E: gizmo più discreto + rimozione preventivo live residuo */
#asg-configuratore-wrapper .asg-dock-eyebrow,
#asg-configuratore-wrapper .asg-config-live-shell {
    display: none !important;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    padding: 20px 24px 16px;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main {
    grid-template-columns: minmax(240px, 1fr) minmax(280px, 380px);
    gap: 14px 20px;
    align-items: center;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-label {
    font-size: 10px;
    letter-spacing: .14em;
}
#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-value {
    font-size: clamp(38px, 3vw, 54px);
    line-height: .92;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid {
    gap: 10px;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 56px;
    border-radius: 17px;
    padding: 0 14px;
    font-size: 12px;
}
#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid .btn i {
    font-size: 13px;
}
#asg-configuratore-wrapper #asg-config-summary-bar {
    margin-top: 12px;
    padding-top: 12px;
}
#asg-configuratore-wrapper .asg-summary-col {
    padding-top: 6px;
    padding-bottom: 6px;
}
#asg-configuratore-wrapper .asg-gizmo-overlay {
    top: 86px;
    right: 14px;
    width: 52px;
    height: 52px;
}
#asg-configuratore-wrapper .asg-gizmo-overlay canvas {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
}
@media (max-width: 1180px) {
    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: 1fr;
    }
}

/* Fase 17 - Definitive frontend polish loaded last: sticky quote dock + model selector. */
#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    position: sticky !important;
    top: 0 !important;
    z-index: 44 !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.22) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    position: sticky !important;
    bottom: 18px !important;
    z-index: 55 !important;
    margin-top: 18px !important;
    width: 100% !important;
    transform: translateZ(0);
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    border-color: rgba(115, 148, 255, 0.26) !important;
    background: linear-gradient(180deg, rgba(5, 11, 26, 0.96), rgba(3, 8, 19, 0.98)) !important;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.46), 0 0 0 1px rgba(255, 255, 255, 0.035) inset !important;
    backdrop-filter: blur(18px) saturate(140%) !important;
}

#asg-configuratore-wrapper .asg-model-choice-guide {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin: 0 24px 18px !important;
    padding: 14px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(120, 150, 210, 0.14) !important;
    background: linear-gradient(135deg, rgba(11, 20, 42, 0.88), rgba(4, 10, 24, 0.92)) !important;
}

#asg-configuratore-wrapper .asg-choice-guide-item {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) !important;
    grid-template-areas: "num title" "num copy" !important;
    gap: 2px 10px !important;
    padding: 12px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(255, 255, 255, 0.065) !important;
    background: rgba(255, 255, 255, 0.035) !important;
}

#asg-configuratore-wrapper .asg-choice-guide-item span {
    grid-area: num !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    border-radius: 12px !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    background: linear-gradient(135deg, rgba(0, 212, 170, 0.95), rgba(70, 120, 255, 0.82)) !important;
}

#asg-configuratore-wrapper .asg-choice-guide-item strong {
    grid-area: title !important;
    color: #f8fbff !important;
    font-size: 13px !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
}

#asg-configuratore-wrapper .asg-choice-guide-item small {
    grid-area: copy !important;
    color: #91a7c5 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-models-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 16px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card.asg-model-card-clean {
    position: relative !important;
    overflow: hidden !important;
    min-height: 286px !important;
    padding: 16px !important;
    border-radius: 28px !important;
    border: 1px solid rgba(133, 164, 230, 0.16) !important;
    background: linear-gradient(180deg, rgba(12, 22, 45, 0.88), rgba(4, 10, 24, 0.96)) !important;
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.22) !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card.asg-model-card-clean:hover,
#asg-configuratore-wrapper.asg-state-models .asg-model-card.asg-model-card-clean:focus-visible {
    border-color: rgba(0, 212, 170, 0.42) !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(0, 212, 170, 0.16) inset !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-visual {
    min-height: 142px !important;
    border-radius: 22px !important;
    border: 1px solid rgba(255, 255, 255, 0.07) !important;
    background-color: rgba(255, 255, 255, 0.04) !important;
    background-size: cover !important;
    background-position: center !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-info h4 {
    font-size: clamp(20px, 2vw, 27px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.04em !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-cta {
    min-height: 42px !important;
    padding: 0 14px !important;
    border-radius: 14px !important;
    color: #fff !important;
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.92), rgba(79, 70, 229, 0.92)) !important;
    box-shadow: 0 12px 28px rgba(59, 130, 246, 0.24) !important;
}

@media (max-width: 980px) {
    #asg-configuratore-wrapper .asg-model-choice-guide {
        grid-template-columns: 1fr !important;
        margin-inline: 18px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        bottom: 10px !important;
    }
}

@media (max-width: 640px) {
    #asg-configuratore-wrapper.asg-state-models .asg-models-grid {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-models .asg-model-card.asg-model-card-clean {
        min-height: auto !important;
        border-radius: 24px !important;
    }
}

/* Fase 18 - Frontend refinement pass: compact dock, sticky desktop, clickable journey, model chooser cleanup, overflow fix. */
html,
body {
    overflow-x: hidden !important;
}

#asg-configuratore-wrapper,
#asg-configuratore-wrapper .asg-plugin-container,
#asg-configuratore-wrapper .asg-layout-shell,
#asg-configuratore-wrapper .asg-main-grid {
    max-width: 100% !important;
    overflow-x: clip !important;
}

#asg-configuratore-wrapper .asg-flow-progress {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-ux-journey {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    display: grid !important;
    position: sticky !important;
    top: 14px !important;
    z-index: 120 !important;
    margin: 0 0 16px !important;
    padding: 8px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(122, 150, 214, 0.18) !important;
    background: linear-gradient(180deg, rgba(6, 12, 25, 0.92), rgba(4, 9, 20, 0.96)) !important;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22) !important;
    backdrop-filter: blur(18px) !important;
}

#asg-configuratore-wrapper .asg-ux-journey-step {
    appearance: none !important;
    cursor: pointer !important;
    min-height: 52px !important;
    padding: 10px 12px !important;
    border: 1px solid transparent !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, 0.03) !important;
    text-align: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease !important;
}

#asg-configuratore-wrapper .asg-ux-journey-step:hover,
#asg-configuratore-wrapper .asg-ux-journey-step:focus-visible {
    border-color: rgba(110, 167, 255, 0.28) !important;
    background: rgba(255, 255, 255, 0.055) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04) !important;
    outline: none !important;
}

#asg-configuratore-wrapper .asg-ux-journey-step strong {
    min-width: 26px !important;
    height: 26px !important;
}

#asg-configuratore-wrapper .asg-model-choice-guide {
    margin: 0 0 20px !important;
    padding: 14px !important;
    border-radius: 28px !important;
    border-color: rgba(122, 150, 214, 0.14) !important;
    background: linear-gradient(135deg, rgba(8, 17, 37, 0.96), rgba(4, 10, 24, 0.96)) !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-controls-col {
    padding-top: 0 !important;
    background: radial-gradient(circle at 18% 0%, rgba(0, 212, 170, 0.08), transparent 30%), linear-gradient(180deg, rgba(3, 8, 19, 0.74), rgba(3, 8, 19, 0.62)) !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-models-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card.asg-model-card-clean {
    display: grid !important;
    grid-template-rows: auto 172px minmax(0, 1fr) auto !important;
    gap: 16px !important;
    min-height: 356px !important;
    padding: 18px !important;
    border-radius: 30px !important;
    border: 1px solid rgba(133, 164, 230, 0.15) !important;
    background: linear-gradient(180deg, rgba(10, 19, 39, 0.96), rgba(4, 10, 24, 0.98)) !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-topline {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-pill,
#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-index {
    min-height: 34px !important;
    padding: 0 12px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    letter-spacing: 0.08em !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-visual {
    min-height: 172px !important;
    border-radius: 24px !important;
    background-size: cover !important;
    background-position: center center !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-main {
    display: grid !important;
    gap: 16px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-info h4 {
    margin: 0 !important;
    font-size: clamp(24px, 2.2vw, 31px) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.045em !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-info p {
    margin: 8px 0 0 !important;
    color: #9fb2cf !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-features {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-features span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    color: #c9d7ec !important;
    font-size: 13px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-top: 0 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-compare-toggle {
    min-height: 46px !important;
    min-width: auto !important;
    padding: 0 14px !important;
    border-radius: 16px !important;
    justify-content: center !important;
    font-size: 12px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-height: 48px !important;
    padding: 0 18px !important;
    border-radius: 16px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0.03em !important;
}

#asg-configuratore-wrapper .asg-gizmo-overlay {
    top: 72px !important;
    right: 16px !important;
    width: 96px !important;
    height: 96px !important;
}

#asg-configuratore-wrapper .asg-gizmo-overlay canvas {
    width: 96px !important;
    height: 96px !important;
    min-width: 96px !important;
    min-height: 96px !important;
}

@media (min-width: 1101px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        position: sticky !important;
        bottom: 14px !important;
        z-index: 110 !important;
        margin-top: 14px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 28px 30px 20px !important;
        border-radius: 32px !important;
        border-color: rgba(118, 143, 212, 0.22) !important;
        background: linear-gradient(180deg, rgba(3, 9, 22, 0.98), rgba(3, 8, 19, 0.99)) !important;
        box-shadow: 0 22px 70px rgba(0, 0, 0, 0.34), 0 0 0 1px rgba(255, 255, 255, 0.03) inset !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: end !important;
        gap: 24px 28px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-inline-price-meta {
        gap: 6px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-label {
        font-size: 13px !important;
        letter-spacing: 0.16em !important;
        text-transform: uppercase !important;
        color: rgba(232, 240, 255, 0.8) !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-value {
        font-size: clamp(52px, 4vw, 84px) !important;
        line-height: 0.88 !important;
        letter-spacing: -0.055em !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .currency {
        font-size: 0.42em !important;
        transform: translateY(0.08em) !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-inline-meta {
        margin-top: 8px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-inline-cta-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
        gap: 10px !important;
        width: min(620px, 100%) !important;
        align-self: center !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        min-height: 58px !important;
        padding: 0 22px !important;
        border-radius: 20px !important;
        font-size: 13px !important;
        font-weight: 800 !important;
    }

    #asg-configuratore-wrapper #asg-config-summary-bar {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 0 !important;
        margin-top: 18px !important;
        padding-top: 18px !important;
        border-top: 1px solid rgba(122, 150, 214, 0.14) !important;
    }

    #asg-configuratore-wrapper .asg-summary-col {
        min-width: 0 !important;
        min-height: 76px !important;
        align-items: center !important;
        gap: 14px !important;
        padding: 4px 16px 4px 0 !important;
    }

    #asg-configuratore-wrapper .asg-summary-col.has-border {
        padding-left: 18px !important;
        border-left: 1px solid rgba(122, 150, 214, 0.14) !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-icon {
        width: 54px !important;
        height: 54px !important;
        border-radius: 18px !important;
        flex: 0 0 54px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-value {
        font-size: 14px !important;
        line-height: 1.35 !important;
        word-break: break-word !important;
    }

    #asg-configuratore-wrapper .asg-dock-footer {
        display: flex !important;
        align-items: flex-end !important;
        justify-content: space-between !important;
        gap: 16px !important;
        margin-top: 14px !important;
        padding-top: 18px !important;
        border-top: 1px solid rgba(122, 150, 214, 0.12) !important;
    }

    #asg-configuratore-wrapper .asg-inline-disclaimer {
        margin: 0 !important;
        max-width: calc(100% - 190px) !important;
        font-size: 13px !important;
        line-height: 1.5 !important;
        color: rgba(200, 214, 236, 0.78) !important;
    }

    #asg-configuratore-wrapper .asg-inline-disclaimer i {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-dock-vat-note {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
        font-size: 13px !important;
        letter-spacing: 0.05em !important;
    }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper .asg-models-grid {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper .asg-gizmo-overlay {
        width: 78px !important;
        height: 78px !important;
    }

    #asg-configuratore-wrapper .asg-gizmo-overlay canvas {
        width: 78px !important;
        height: 78px !important;
        min-width: 78px !important;
        min-height: 78px !important;
    }
}

@media (max-width: 680px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
        display: flex !important;
        overflow-x: auto !important;
        padding-bottom: 10px !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-ux-journey-step {
        flex: 0 0 auto !important;
        min-width: 132px !important;
    }

    #asg-configuratore-wrapper .asg-model-choice-guide,
    #asg-configuratore-wrapper.asg-state-models .asg-model-card.asg-model-card-clean {
        border-radius: 24px !important;
    }

    #asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-features {
        grid-template-columns: 1fr !important;
    }
}

/* Fase 19 - Corrective pass from visual QA screenshots. Loaded last. */
html,
body,
#page,
.site,
.site-content,
.entry-content {
    overflow-x: hidden !important;
}

#asg-configuratore-wrapper,
#asg-configuratore-wrapper * {
    box-sizing: border-box !important;
}

#asg-configuratore-wrapper {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
    padding-inline: clamp(12px, 2vw, 28px) !important;
}

#asg-configuratore-wrapper .asg-flow-progress {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-ux-journey {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-grid {
    display: block !important;
    width: min(100%, 1460px) !important;
    margin: 0 auto !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-viewer-stack,
#asg-configuratore-wrapper.asg-state-models .asg-viewer-col,
#asg-configuratore-wrapper.asg-state-models .asg-viewer-bottom-dock {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-controls-col {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-radius: 30px !important;
    border: 1px solid rgba(107, 132, 190, 0.16) !important;
    background: radial-gradient(circle at 82% 0%, rgba(35, 96, 255, 0.12), transparent 34%), linear-gradient(180deg, rgba(4, 11, 27, 0.96), rgba(3, 8, 20, 0.98)) !important;
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.34) !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-controls-header-models {
    padding: 34px 36px 16px !important;
    background: transparent !important;
    border-bottom: 0 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-controls-header-models .asg-controls-heading h2 {
    font-size: clamp(42px, 4.6vw, 72px) !important;
    line-height: 0.92 !important;
    letter-spacing: -0.07em !important;
    max-width: 720px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-controls-header-models .asg-controls-heading p {
    max-width: 640px !important;
    margin-top: 12px !important;
    color: rgba(214, 225, 244, 0.78) !important;
    font-size: 15px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-models-live-note {
    display: none !important;
}

#asg-configuratore-wrapper .asg-model-choice-guide {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: calc(100% - 72px) !important;
    margin: 0 36px 18px !important;
    padding: 12px !important;
    border-radius: 24px !important;
}

#asg-configuratore-wrapper .asg-choice-guide-item {
    min-height: 72px !important;
    padding: 12px !important;
}

#asg-configuratore-wrapper .asg-model-filter-shell {
    display: grid !important;
    grid-template-columns: minmax(180px, 240px) minmax(240px, 1fr) auto !important;
    gap: 12px !important;
    width: calc(100% - 72px) !important;
    margin: 0 36px 22px !important;
    padding: 14px !important;
    border-radius: 22px !important;
    border: 1px solid rgba(107, 132, 190, 0.12) !important;
    background: rgba(7, 14, 30, 0.82) !important;
}

#asg-configuratore-wrapper .asg-model-filter-field {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 48px !important;
    padding: 0 14px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,0.065) !important;
    background: rgba(255,255,255,0.035) !important;
    color: #8fb0dc !important;
}

#asg-configuratore-wrapper .asg-model-filter-field select,
#asg-configuratore-wrapper .asg-model-filter-field input {
    width: 100% !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: #e8f0ff !important;
    font-size: 13px !important;
    font-weight: 750 !important;
}

#asg-configuratore-wrapper .asg-model-filter-field input::placeholder {
    color: rgba(190, 206, 230, 0.52) !important;
}

#asg-configuratore-wrapper .asg-model-filter-reset {
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 48px !important;
    padding: 0 16px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,0.075) !important;
    background: rgba(255,255,255,0.035) !important;
    color: #dce8ff !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-controls-body {
    padding: 0 36px 36px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-models-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card.asg-model-card-clean {
    min-height: 336px !important;
    grid-template-rows: auto 148px minmax(0, 1fr) auto !important;
    border-radius: 22px !important;
    padding: 12px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-visual {
    min-height: 148px !important;
    border-radius: 18px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-info h4 {
    font-size: clamp(19px, 1.5vw, 24px) !important;
    line-height: 1.05 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-info p {
    font-size: 12px !important;
    line-height: 1.4 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-features {
    gap: 8px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-features span {
    min-height: 34px !important;
    padding: 0 9px !important;
    font-size: 11px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-actions {
    gap: 8px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-cta,
#asg-configuratore-wrapper.asg-state-models .asg-model-card .mc-compare-toggle {
    min-height: 40px !important;
    border-radius: 13px !important;
    font-size: 11px !important;
}

#asg-configuratore-wrapper .asg-model-empty-state {
    grid-column: 1 / -1 !important;
    display: grid !important;
    gap: 6px !important;
    padding: 34px !important;
    border-radius: 22px !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    background: rgba(255,255,255,0.035) !important;
    color: #e8f0ff !important;
}

#asg-configuratore-wrapper .asg-model-empty-state span {
    color: #9fb2cf !important;
}

@media (min-width: 1101px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        position: sticky !important;
        bottom: 12px !important;
        z-index: 130 !important;
        margin-top: 12px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 20px 24px 16px !important;
        border-radius: 26px !important;
        min-height: 0 !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 16px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-label {
        font-size: 11px !important;
        line-height: 1 !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-value {
        font-size: clamp(48px, 3.1vw, 64px) !important;
        line-height: 0.9 !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-inline-meta {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-inline-cta-grid {
        grid-template-columns: repeat(2, minmax(160px, 220px)) !important;
        width: auto !important;
        gap: 10px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        min-height: 48px !important;
        padding: 0 16px !important;
        border-radius: 16px !important;
        font-size: 12px !important;
    }

    #asg-configuratore-wrapper #asg-config-summary-bar {
        margin-top: 14px !important;
        padding-top: 14px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col {
        min-height: 58px !important;
        gap: 10px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-icon {
        width: 42px !important;
        height: 42px !important;
        flex-basis: 42px !important;
        border-radius: 14px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-label {
        font-size: 10px !important;
        letter-spacing: 0.12em !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-value {
        font-size: 13px !important;
        line-height: 1.25 !important;
    }

    #asg-configuratore-wrapper .asg-dock-footer {
        margin-top: 10px !important;
        padding-top: 12px !important;
    }

    #asg-configuratore-wrapper .asg-inline-disclaimer {
        font-size: 12px !important;
        line-height: 1.4 !important;
    }
}

@media (max-width: 1280px) {
    #asg-configuratore-wrapper.asg-state-models .asg-models-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 980px) {
    #asg-configuratore-wrapper.asg-state-models .asg-models-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #asg-configuratore-wrapper .asg-model-filter-shell,
    #asg-configuratore-wrapper .asg-model-choice-guide {
        width: calc(100% - 36px) !important;
        margin-inline: 18px !important;
    }

    #asg-configuratore-wrapper.asg-state-models .asg-controls-body,
    #asg-configuratore-wrapper.asg-state-models .asg-controls-header-models {
        padding-inline: 18px !important;
    }

    #asg-configuratore-wrapper .asg-model-filter-shell {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 640px) {
    #asg-configuratore-wrapper.asg-state-models .asg-models-grid,
    #asg-configuratore-wrapper .asg-model-choice-guide {
        grid-template-columns: 1fr !important;
    }
}

/* Fase 20 - Hotfix finale richiesto: dock più basso, step sticky, select custom, compare smart, overflow strip fix. */
html,
body {
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: #050b18 !important;
    overflow-x: hidden !important;
}

body:has(#asg-configuratore-wrapper) {
    background: #050b18 !important;
    overflow-x: hidden !important;
}

body:has(#asg-configuratore-wrapper)::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: -1 !important;
    background: #050b18 !important;
    pointer-events: none !important;
}

#asg-configuratore-wrapper {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: #050b18 !important;
    overflow-x: clip !important;
    contain: paint !important;
}

#asg-configuratore-wrapper * {
    box-sizing: border-box !important;
}

#asg-configuratore-wrapper .asg-plugin-container,
#asg-configuratore-wrapper .asg-layout-shell,
#asg-configuratore-wrapper .asg-main-grid,
#asg-configuratore-wrapper .asg-step-view,
#asg-configuratore-wrapper .asg-controls-col,
#asg-configuratore-wrapper .asg-viewer-col {
    max-width: 100vw !important;
    overflow-x: clip !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    display: grid !important;
    position: sticky !important;
    top: 76px !important;
    z-index: 180 !important;
    margin: 0 auto 12px !important;
    width: min(100%, 1580px) !important;
    padding: 7px !important;
    border-radius: 22px !important;
    background: rgba(4, 10, 24, 0.88) !important;
    border: 1px solid rgba(98, 132, 203, 0.20) !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.32) !important;
    backdrop-filter: blur(18px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step {
    min-height: 44px !important;
    padding: 8px 10px !important;
    border-radius: 15px !important;
    font-size: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step strong {
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    font-size: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-sections-nav {
    position: sticky !important;
    top: 144px !important;
    z-index: 150 !important;
    background: rgba(4, 10, 24, 0.88) !important;
    border: 1px solid rgba(98, 132, 203, 0.16) !important;
    backdrop-filter: blur(16px) !important;
    border-radius: 22px !important;
    padding: 8px !important;
}

#asg-configuratore-wrapper .asg-native-select-hidden {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper .asg-model-filter-field {
    position: relative !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper .asg-custom-select {
    position: relative !important;
    width: 100% !important;
    z-index: 40 !important;
}

#asg-configuratore-wrapper .asg-custom-select-toggle {
    appearance: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 26px !important;
    border: 0 !important;
    background: transparent !important;
    color: #f1f6ff !important;
    font-size: 13px !important;
    font-weight: 850 !important;
    cursor: pointer !important;
    padding: 0 !important;
}

#asg-configuratore-wrapper .asg-custom-select-toggle i {
    color: #6ea7ff !important;
    font-size: 11px !important;
    transition: transform 160ms ease !important;
}

#asg-configuratore-wrapper .asg-custom-select.is-open .asg-custom-select-toggle i {
    transform: rotate(180deg) !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu {
    position: absolute !important;
    top: calc(100% + 13px) !important;
    left: -42px !important;
    right: -14px !important;
    display: grid !important;
    gap: 6px !important;
    padding: 10px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(116, 150, 218, 0.25) !important;
    background: linear-gradient(180deg, rgba(9, 18, 40, 0.98), rgba(4, 10, 24, 0.99)) !important;
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.42), inset 0 0 0 1px rgba(255,255,255,0.03) !important;
    backdrop-filter: blur(18px) !important;
    max-height: 280px !important;
    overflow-y: auto !important;
    z-index: 999 !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu[hidden] {
    display: none !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu button {
    appearance: none !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 40px !important;
    padding: 0 12px !important;
    border-radius: 12px !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    color: #cbd8f1 !important;
    font-size: 13px !important;
    font-weight: 750 !important;
    text-align: left !important;
    cursor: pointer !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu button:hover,
#asg-configuratore-wrapper .asg-custom-select-menu button.is-selected {
    color: #ffffff !important;
    background: linear-gradient(135deg, rgba(66, 124, 245, 0.32), rgba(0, 212, 170, 0.12)) !important;
    border-color: rgba(116, 150, 218, 0.28) !important;
}

#asg-configuratore-wrapper .asg-model-filter-field select:not(.asg-native-select-hidden) option {
    background: #071124 !important;
    color: #f1f6ff !important;
}

#asg-configuratore-wrapper .asg-compare-ai-box {
    display: grid !important;
    gap: 8px !important;
    margin-top: 14px !important;
    padding: 16px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(0, 212, 170, 0.18) !important;
    background: linear-gradient(135deg, rgba(0, 212, 170, 0.08), rgba(72, 108, 255, 0.08)) !important;
    color: #dfeaff !important;
}

#asg-configuratore-wrapper .asg-compare-ai-box > span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #7fffe4 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.11em !important;
}

#asg-configuratore-wrapper .asg-compare-ai-box p {
    margin: 0 !important;
    color: #c6d4ed !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

#asg-configuratore-wrapper .asg-compare-ai-verdict {
    color: #ffffff !important;
}

#asg-configuratore-wrapper .asg-gizmo-overlay {
    width: 136px !important;
    height: 136px !important;
    top: 84px !important;
    right: 18px !important;
    z-index: 80 !important;
}

#asg-configuratore-wrapper .asg-gizmo-overlay canvas {
    width: 136px !important;
    height: 136px !important;
    min-width: 136px !important;
    min-height: 136px !important;
    image-rendering: auto !important;
}

@media (min-width: 1101px) {
    #asg-configuratore-wrapper .asg-viewer-bottom-dock {
        position: sticky !important;
        bottom: 10px !important;
        z-index: 170 !important;
        margin: 10px 0 0 !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 16px 20px 12px !important;
        border-radius: 24px !important;
        min-height: 0 !important;
        max-height: none !important;
        background: rgba(3, 8, 19, 0.96) !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-dock-main {
        display: grid !important;
        grid-template-columns: minmax(210px, 330px) minmax(320px, auto) !important;
        align-items: center !important;
        gap: 14px !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-price-meta {
        display: grid !important;
        gap: 2px !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .price-label {
        font-size: 10px !important;
        line-height: 1 !important;
        letter-spacing: 0.13em !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .price-value {
        font-size: clamp(42px, 3vw, 58px) !important;
        line-height: 0.86 !important;
        margin: 0 !important;
        letter-spacing: -0.06em !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .currency {
        font-size: 0.38em !important;
        margin-right: 4px !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(150px, 210px)) !important;
        gap: 8px !important;
        justify-content: end !important;
        width: auto !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        min-height: 44px !important;
        padding: 0 14px !important;
        border-radius: 15px !important;
        font-size: 11px !important;
        line-height: 1.08 !important;
        letter-spacing: 0.04em !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid .btn i {
        font-size: 12px !important;
    }

    #asg-configuratore-wrapper #asg-config-summary-bar {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 0 !important;
        margin-top: 10px !important;
        padding-top: 10px !important;
        border-top: 1px solid rgba(122, 150, 214, 0.12) !important;
    }

    #asg-configuratore-wrapper .asg-summary-col {
        min-height: 48px !important;
        gap: 8px !important;
        padding: 0 10px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col:first-child {
        padding-left: 0 !important;
    }

    #asg-configuratore-wrapper .asg-summary-col.has-border {
        border-left: 1px solid rgba(122, 150, 214, 0.14) !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-icon {
        width: 36px !important;
        height: 36px !important;
        flex: 0 0 36px !important;
        border-radius: 12px !important;
        font-size: 13px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-label {
        font-size: 9px !important;
        line-height: 1 !important;
        letter-spacing: 0.11em !important;
        margin: 0 0 3px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-value {
        font-size: 12px !important;
        line-height: 1.15 !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper .asg-dock-footer {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 12px !important;
        margin-top: 8px !important;
        padding-top: 9px !important;
        border-top: 1px solid rgba(122, 150, 214, 0.10) !important;
    }

    #asg-configuratore-wrapper .asg-inline-disclaimer {
        max-width: none !important;
        margin: 0 !important;
        font-size: 11px !important;
        line-height: 1.28 !important;
        color: rgba(201, 215, 236, 0.76) !important;
    }

    #asg-configuratore-wrapper .asg-dock-vat-note {
        font-size: 12px !important;
        letter-spacing: 0.04em !important;
        white-space: nowrap !important;
    }
}

@media (min-width: 1500px) {
    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: minmax(240px, 360px) minmax(420px, auto) !important;
    }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper .asg-gizmo-overlay {
        width: 96px !important;
        height: 96px !important;
    }
    #asg-configuratore-wrapper .asg-gizmo-overlay canvas {
        width: 96px !important;
        height: 96px !important;
        min-width: 96px !important;
        min-height: 96px !important;
    }
}

/* Fase 21 - Emergency layout rollback + final visual corrections.
   Fixes: broken full-bleed shift, left strip, sticky not working, oversized dock, native select, furniture/optional viewer controls. */
html,
body {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    background: #030712 !important;
}

body:has(#asg-configuratore-wrapper),
body:has(#asg-configuratore-wrapper) #page,
body:has(#asg-configuratore-wrapper) .site,
body:has(#asg-configuratore-wrapper) .site-content,
body:has(#asg-configuratore-wrapper) .entry-content,
body:has(#asg-configuratore-wrapper) .wp-site-blocks {
    background: #030712 !important;
    overflow-x: hidden !important;
}

body:has(#asg-configuratore-wrapper) .entry-content {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: none !important;
}

body:has(#asg-configuratore-wrapper)::before {
    background: #030712 !important;
}

.asg-plugin-container {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    justify-content: initial !important;
    padding: 28px clamp(16px, 2.3vw, 36px) 42px !important;
    margin: 0 !important;
    background: #030712 !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    width: min(100%, 1680px) !important;
    max-width: 1680px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    overflow-x: visible !important;
    contain: none !important;
    isolation: isolate !important;
}

#asg-configuratore-wrapper .asg-plugin-container,
#asg-configuratore-wrapper .asg-layout-shell,
#asg-configuratore-wrapper .asg-main-grid,
#asg-configuratore-wrapper .asg-step-view,
#asg-configuratore-wrapper .asg-grid,
#asg-configuratore-wrapper .asg-viewer-stack,
#asg-configuratore-wrapper .asg-viewer-col,
#asg-configuratore-wrapper .asg-controls-col {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: visible !important;
    contain: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(390px, 520px) !important;
    align-items: start !important;
    gap: 22px !important;
    width: 100% !important;
    margin: 0 auto !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-stack,
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-col,
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col {
    width: 100% !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-col {
    min-height: clamp(520px, 58vh, 720px) !important;
    border-radius: 28px !important;
    background: #07101f !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-3d-canvas,
#asg-configuratore-wrapper.asg-state-configurator #asg-3d-canvas canvas {
    width: 100% !important;
    max-width: 100% !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    display: grid !important;
    position: sticky !important;
    top: 78px !important;
    z-index: 220 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 14px !important;
    padding: 7px !important;
    border-radius: 20px !important;
    background: rgba(5, 11, 24, 0.94) !important;
    border: 1px solid rgba(98, 132, 203, 0.18) !important;
    box-shadow: 0 14px 34px rgba(0,0,0,0.32) !important;
    backdrop-filter: blur(18px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step {
    min-height: 42px !important;
    padding: 7px 10px !important;
    border-radius: 14px !important;
    font-size: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-sections-nav {
    position: sticky !important;
    top: 138px !important;
    z-index: 190 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-grid {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-controls-col {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper #btn-toggle-furniture {
    display: inline-flex !important;
}

#asg-configuratore-wrapper .asg-native-select-hidden,
#asg-configuratore-wrapper #asg-model-filter-category {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 1px !important;
    min-height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
}

#asg-configuratore-wrapper .asg-model-filter-field {
    min-height: 50px !important;
    overflow: visible !important;
    isolation: isolate !important;
}

#asg-configuratore-wrapper .asg-custom-select {
    z-index: 300 !important;
}

#asg-configuratore-wrapper .asg-custom-select-toggle {
    min-height: 30px !important;
    color: #f5f8ff !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu {
    left: -42px !important;
    right: -14px !important;
    min-width: 250px !important;
    background: linear-gradient(180deg, rgba(9, 18, 40, 0.99), rgba(3, 8, 20, 0.99)) !important;
    border-color: rgba(112, 148, 218, 0.30) !important;
    z-index: 9999 !important;
}

#asg-configuratore-wrapper .asg-gizmo-overlay {
    width: 180px !important;
    height: 180px !important;
    top: 82px !important;
    right: 14px !important;
    z-index: 110 !important;
}

#asg-configuratore-wrapper .asg-gizmo-overlay canvas {
    width: 180px !important;
    height: 180px !important;
    min-width: 180px !important;
    min-height: 180px !important;
}

@media (min-width: 1101px) {
    #asg-configuratore-wrapper .asg-viewer-bottom-dock {
        position: sticky !important;
        bottom: 12px !important;
        z-index: 210 !important;
        margin-top: 10px !important;
        width: 100% !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 12px 16px 10px !important;
        border-radius: 22px !important;
        min-height: 0 !important;
        background: rgba(3, 8, 19, 0.97) !important;
        box-shadow: 0 18px 44px rgba(0, 0, 0, 0.32), inset 0 0 0 1px rgba(255,255,255,0.025) !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-dock-main {
        display: grid !important;
        grid-template-columns: minmax(190px, 280px) auto !important;
        align-items: center !important;
        gap: 12px !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .price-label {
        font-size: 9px !important;
        letter-spacing: 0.12em !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .price-value {
        font-size: clamp(36px, 2.5vw, 50px) !important;
        line-height: 0.86 !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .currency {
        font-size: 0.38em !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(140px, 190px)) !important;
        justify-content: end !important;
        gap: 8px !important;
        width: auto !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        min-height: 40px !important;
        padding: 0 12px !important;
        border-radius: 14px !important;
        font-size: 10px !important;
        line-height: 1.05 !important;
    }

    #asg-configuratore-wrapper #asg-config-summary-bar {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        margin-top: 8px !important;
        padding-top: 8px !important;
        border-top: 1px solid rgba(122, 150, 214, 0.10) !important;
    }

    #asg-configuratore-wrapper .asg-summary-col {
        min-height: 38px !important;
        gap: 7px !important;
        padding: 0 8px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-icon {
        width: 30px !important;
        height: 30px !important;
        flex: 0 0 30px !important;
        border-radius: 10px !important;
        font-size: 11px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-label {
        font-size: 8px !important;
        line-height: 1 !important;
        letter-spacing: 0.10em !important;
        margin: 0 0 2px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-value {
        display: block !important;
        max-width: 100% !important;
        font-size: 11px !important;
        line-height: 1.12 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    #asg-configuratore-wrapper .asg-dock-footer {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 10px !important;
        margin-top: 6px !important;
        padding-top: 7px !important;
        border-top: 1px solid rgba(122, 150, 214, 0.08) !important;
    }

    #asg-configuratore-wrapper .asg-inline-disclaimer {
        display: block !important;
        max-width: 100% !important;
        margin: 0 !important;
        font-size: 10px !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        color: rgba(201, 215, 236, 0.72) !important;
    }

    #asg-configuratore-wrapper .asg-inline-disclaimer i {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-dock-vat-note {
        font-size: 11px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 1280px) and (min-width: 1101px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 460px) !important;
    }
}

@media (max-width: 1100px) {
    .asg-plugin-container {
        padding-inline: 12px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper .asg-gizmo-overlay {
        width: 118px !important;
        height: 118px !important;
    }

    #asg-configuratore-wrapper .asg-gizmo-overlay canvas {
        width: 118px !important;
        height: 118px !important;
        min-width: 118px !important;
        min-height: 118px !important;
    }
}


/* Phase 2.2.2 - frontend polish: stable gizmo, step navigation, dock cleanup */
#asg-configuratore-wrapper .asg-viewer-col {
    overflow: visible;
}

#asg-configuratore-wrapper .asg-gizmo-overlay {
    top: 18px;
    left: 18px;
    width: 220px;
    height: 220px;
    padding: 10px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(7, 16, 34, 0.34) 0%, rgba(7, 16, 34, 0.12) 100%);
    backdrop-filter: blur(4px);
    overflow: visible;
}

#asg-configuratore-wrapper .asg-gizmo-overlay canvas {
    width: 100% !important;
    height: 100% !important;
    overflow: visible;
}

#asg-configuratore-wrapper .asg-viewer-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    max-width: calc(100% - 48px);
    margin: 0 auto;
}

#asg-configuratore-wrapper .asg-viewer-controls .btn {
    min-width: 146px;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked {
    gap: 22px;
}

#asg-configuratore-wrapper .asg-dock-main {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(320px, 420px);
    gap: 20px;
    align-items: center;
}

#asg-configuratore-wrapper .asg-inline-cta-grid {
    align-items: stretch;
}

#asg-configuratore-wrapper .asg-config-summary-columns {
    row-gap: 14px;
}

#asg-configuratore-wrapper .asg-dock-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    justify-content: space-between;
}

#asg-configuratore-wrapper .asg-inline-disclaimer {
    flex: 1 1 520px;
    margin: 0;
    min-width: 0;
}

#asg-configuratore-wrapper .asg-dock-vat-note {
    flex: 0 0 auto;
}

#asg-configuratore-wrapper .asg-config-section-footer-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(146, 169, 255, 0.12);
    position: sticky;
    bottom: 0;
    background: linear-gradient(180deg, rgba(6, 12, 26, 0.12) 0%, rgba(6, 12, 26, 0.96) 36%);
    backdrop-filter: blur(8px);
    z-index: 8;
}

#asg-configuratore-wrapper .asg-config-step-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 62px;
    border-radius: 18px;
}

#asg-configuratore-wrapper .asg-config-step-btn-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 2px;
}

#asg-configuratore-wrapper .asg-config-step-btn-next .asg-config-step-btn-copy {
    align-items: flex-end;
    text-align: right;
}

#asg-configuratore-wrapper .asg-config-step-btn-copy small {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.7;
}

#asg-configuratore-wrapper .asg-config-step-btn-copy strong {
    display: block;
    font-size: 15px;
    line-height: 1.2;
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper .asg-dock-main {
        grid-template-columns: 1fr;
    }

    #asg-configuratore-wrapper .asg-viewer-controls {
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper .asg-gizmo-overlay {
        top: 12px;
        left: 12px;
        width: 150px;
        height: 150px;
        padding: 6px;
    }

    #asg-configuratore-wrapper .asg-config-section-footer-nav {
        grid-template-columns: 1fr;
        padding-bottom: max(12px, env(safe-area-inset-bottom));
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn {
        min-width: calc(50% - 8px);
        flex: 1 1 calc(50% - 8px);
    }
}


/* Phase 2.2.3 - viewer UX cleanup, no jump, smart furniture, dock match */
#asg-configuratore-wrapper .asg-viewer-overlay {
    pointer-events: none;
}

#asg-configuratore-wrapper .asg-viewer-overlay > * {
    pointer-events: auto;
}

#asg-configuratore-wrapper .asg-viewer-top-info {
    align-items: flex-start;
}

#asg-configuratore-wrapper .asg-gizmo-overlay {
    left: auto !important;
    right: 22px !important;
    top: 22px !important;
    width: 130px !important;
    height: 130px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

#asg-configuratore-wrapper .asg-gizmo-overlay canvas {
    filter: none !important;
}

#asg-configuratore-wrapper .asg-viewer-top-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

#asg-configuratore-wrapper .asg-viewer-dimension-chip {
    min-width: 92px;
}

#asg-configuratore-wrapper .asg-viewer-controls {
    max-width: none !important;
    padding: 10px 12px !important;
    border-radius: 999px !important;
    background: rgba(10, 19, 39, 0.68) !important;
    border: 1px solid rgba(144, 166, 255, 0.18) !important;
    box-shadow: 0 14px 28px rgba(2, 10, 24, 0.32) !important;
    backdrop-filter: blur(10px) !important;
}

#asg-configuratore-wrapper .asg-viewer-controls .btn {
    min-width: 158px !important;
    min-height: 52px;
    border-radius: 999px !important;
    white-space: nowrap;
}

#asg-configuratore-wrapper .asg-viewer-controls #btn-toggle-furniture {
    display: inline-flex !important;
}

#asg-configuratore-wrapper .asg-viewer-bottom-dock {
    margin-top: 18px;
}

#asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    background:
        radial-gradient(circle at top left, rgba(53, 107, 255, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(3, 12, 31, 0.94) 0%, rgba(2, 8, 22, 0.98) 100%) !important;
    border: 1px solid rgba(101, 134, 255, 0.26) !important;
    border-radius: 36px !important;
    box-shadow: 0 28px 60px rgba(0, 5, 18, 0.34) !important;
    padding: 38px 46px 28px !important;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-dock-main {
    grid-template-columns: minmax(260px, 1.05fr) minmax(380px, 0.95fr) !important;
    gap: 28px !important;
    align-items: center !important;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-price-meta {
    align-items: flex-start !important;
    gap: 12px !important;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked .price-label {
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: rgba(239, 245, 255, 0.88) !important;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked .price-value {
    font-size: clamp(62px, 7vw, 96px) !important;
    font-weight: 900 !important;
    line-height: 0.92 !important;
    letter-spacing: -0.05em !important;
    color: #ffffff !important;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked .currency {
    font-size: 0.38em !important;
    transform: translateY(-0.08em) !important;
    margin-right: 8px !important;
}

#asg-configuratore-wrapper .asg-dock-inline-meta,
#asg-configuratore-wrapper #asg-module-summary,
#asg-configuratore-wrapper #asg-price-warning {
    width: 100%;
}

#asg-configuratore-wrapper #asg-module-summary {
    opacity: 0.82;
    font-size: 14px;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 18px !important;
    align-self: start !important;
}

#asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 104px !important;
    padding: 0 28px !important;
    border-radius: 28px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    justify-content: center !important;
    gap: 14px !important;
}

#asg-configuratore-wrapper .asg-primary-quote-cta {
    background: linear-gradient(180deg, #5d9bff 0%, #4078f5 100%) !important;
    border-color: rgba(124, 169, 255, 0.62) !important;
    box-shadow: 0 20px 40px rgba(52, 112, 255, 0.28) !important;
}

#asg-configuratore-wrapper .asg-secondary-contact-cta {
    background: rgba(8, 17, 37, 0.52) !important;
    border: 1px solid rgba(133, 158, 238, 0.2) !important;
    color: #f5f8ff !important;
}

#asg-configuratore-wrapper #asg-config-summary-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding-top: 26px !important;
    margin-top: 22px !important;
    border-top: 1px solid rgba(117, 140, 214, 0.2) !important;
}

#asg-configuratore-wrapper .asg-summary-col {
    display: grid !important;
    grid-template-columns: 72px 1fr !important;
    gap: 18px !important;
    align-items: center !important;
    min-width: 0;
}

#asg-configuratore-wrapper .asg-summary-col.has-border {
    border-left: 1px solid rgba(117, 140, 214, 0.2) !important;
    padding-left: 28px !important;
    margin-left: 28px !important;
}

#asg-configuratore-wrapper .asg-summary-col-icon {
    width: 72px !important;
    height: 72px !important;
    border-radius: 22px !important;
    background: rgba(8, 19, 45, 0.58) !important;
    border: 1px solid rgba(132, 158, 242, 0.24) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.02) !important;
}

#asg-configuratore-wrapper .asg-summary-col-label {
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: 0.12em !important;
    color: rgba(223, 232, 255, 0.74) !important;
}

#asg-configuratore-wrapper .asg-summary-col-value {
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.18 !important;
    color: #ffffff !important;
    word-break: break-word;
}

#asg-configuratore-wrapper .asg-dock-footer {
    margin-top: 24px !important;
    padding-top: 20px !important;
    border-top: 1px solid rgba(117, 140, 214, 0.2) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
}

#asg-configuratore-wrapper .asg-inline-disclaimer {
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: rgba(215, 225, 248, 0.74) !important;
}

#asg-configuratore-wrapper .asg-inline-disclaimer i {
    display: none !important;
}

#asg-configuratore-wrapper .asg-dock-vat-note {
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    color: #ffffff !important;
    white-space: nowrap;
}

@media (max-width: 1180px) {
    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper #asg-config-summary-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px 0 !important;
    }

    #asg-configuratore-wrapper .asg-summary-col.has-border:nth-child(3) {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper .asg-gizmo-overlay {
        top: 14px !important;
        right: 14px !important;
        width: 104px !important;
        height: 104px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls {
        width: calc(100% - 24px) !important;
        justify-content: center !important;
        border-radius: 28px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn {
        min-width: calc(50% - 8px) !important;
        flex: 1 1 calc(50% - 8px) !important;
        min-height: 48px !important;
        font-size: 13px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 24px 18px 18px !important;
        border-radius: 28px !important;
    }

    #asg-configuratore-wrapper .asg-inline-price-panel-docked .asg-inline-cta-grid,
    #asg-configuratore-wrapper #asg-config-summary-bar {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper .asg-summary-col.has-border {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }

    #asg-configuratore-wrapper .asg-dock-footer {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    #asg-configuratore-wrapper .asg-dock-vat-note {
        font-size: 16px !important;
    }
}


/* Phase 2.2.4 - full width price dock + working furniture + gizmo nudge */
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 8px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    padding: 42px 52px 30px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    display: grid !important;
    grid-template-columns: minmax(280px, 1.05fr) minmax(520px, 0.95fr) !important;
    align-items: center !important;
    gap: 36px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    justify-self: end !important;
    width: min(700px, 100%) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 108px !important;
    font-size: 20px !important;
    line-height: 1.08 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 0 !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    display: block !important;
    max-width: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-gizmo-overlay {
    right: 46px !important;
}

#asg-configuratore-wrapper .asg-viewer-controls #btn-toggle-furniture,
#asg-configuratore-wrapper #btn-toggle-furniture {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

#asg-configuratore-wrapper #btn-toggle-furniture.asg-btn-active {
    border-color: rgba(97, 255, 211, 0.48) !important;
    color: #f7fffd !important;
    background: linear-gradient(180deg, rgba(39, 176, 154, 0.28), rgba(8, 20, 38, 0.72)) !important;
    box-shadow: inset 0 0 0 1px rgba(97, 255, 211, 0.08), 0 14px 30px rgba(28, 186, 157, 0.14) !important;
}

@media (max-width: 1180px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        justify-self: stretch !important;
        width: 100% !important;
    }
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 24px 18px 18px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-gizmo-overlay {
        right: 22px !important;
    }
}


/* Phase 2.2.5 - price dock under viewer + sticky price + motion polish */
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-stack {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-column: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    align-self: stretch !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    padding: 28px 32px 24px !important;
    border-radius: 28px !important;
    background:
        radial-gradient(circle at 14% 0%, rgba(69, 119, 255, 0.13), transparent 28%),
        linear-gradient(180deg, rgba(4, 13, 31, 0.95), rgba(2, 8, 21, 0.98)) !important;
    border: 1px solid rgba(107, 137, 218, 0.26) !important;
    box-shadow: 0 22px 52px rgba(0, 5, 18, 0.26), inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    display: grid !important;
    grid-template-columns: minmax(210px, 0.95fr) minmax(300px, 1.05fr) !important;
    align-items: end !important;
    gap: 24px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    gap: 8px !important;
    align-items: flex-start !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 12px !important;
    letter-spacing: 0.16em !important;
    font-weight: 900 !important;
    color: rgba(232, 239, 255, 0.82) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    font-size: clamp(48px, 4.8vw, 68px) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.055em !important;
    white-space: nowrap !important;
    color: #ffffff !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: 0.4em !important;
    transform: translateY(-0.04em) !important;
    margin-right: 6px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    justify-self: end !important;
    width: min(430px, 100%) !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 58px !important;
    padding: 0 18px !important;
    border-radius: 18px !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding-top: 22px !important;
    margin-top: 20px !important;
    border-top: 1px solid rgba(111, 137, 207, 0.18) !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) !important;
    gap: 14px !important;
    align-items: center !important;
    min-width: 0 !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    border-left: 1px solid rgba(111, 137, 207, 0.18) !important;
    padding-left: 18px !important;
    margin-left: 18px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 52px !important;
    height: 52px !important;
    border-radius: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    font-weight: 900 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    font-size: 15px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    display: block !important;
    max-width: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 18px !important;
    align-items: center !important;
    margin-top: 18px !important;
    padding-top: 16px !important;
    border-top: 1px solid rgba(111, 137, 207, 0.18) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    color: rgba(214, 225, 249, 0.72) !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 14px !important;
    font-weight: 900 !important;
    letter-spacing: 0.06em !important;
    color: #ffffff !important;
    white-space: nowrap !important;
}

body #asg-mobile-sticky-price {
    position: fixed !important;
    left: auto !important;
    right: 22px !important;
    bottom: 22px !important;
    width: min(310px, calc(100vw - 44px)) !important;
    z-index: 9998 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding: 12px 16px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(111, 150, 255, 0.26) !important;
    background: linear-gradient(180deg, rgba(7, 16, 36, 0.92), rgba(4, 9, 20, 0.96)) !important;
    box-shadow: 0 18px 46px rgba(0, 5, 18, 0.32), inset 0 1px 0 rgba(255,255,255,0.04) !important;
    color: #ffffff !important;
    backdrop-filter: blur(18px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(14px) scale(0.98) !important;
    transition: opacity .28s ease, transform .28s ease, visibility .28s ease !important;
    cursor: pointer !important;
}

body #asg-mobile-sticky-price::after {
    content: 'PDF';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: linear-gradient(180deg, #5b95ff, #3d73ef);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
    box-shadow: 0 12px 26px rgba(58, 111, 235, 0.28);
}

body #asg-mobile-sticky-price.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
}

body #asg-mobile-sticky-price .asg-mobile-sticky-label {
    display: block !important;
    font-size: 10px !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: rgba(216, 229, 255, 0.72) !important;
    font-weight: 900 !important;
}

body #asg-mobile-sticky-price .asg-mobile-sticky-value {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 4px !important;
    font-size: 30px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: -0.04em !important;
    color: #ffffff !important;
}

body #asg-mobile-sticky-price .currency {
    font-size: 16px !important;
    transform: translateY(-1px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-col,
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel,
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-section.active {
    animation: asgPremiumRise .52s cubic-bezier(.2,.8,.2,1) both;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-controls .btn,
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-cta-grid .btn,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn,
body #asg-mobile-sticky-price {
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease, opacity .22s ease !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-controls .btn:hover,
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-cta-grid .btn:hover,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn:hover,
body #asg-mobile-sticky-price:hover {
    transform: translateY(-2px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-primary-quote-cta {
    position: relative;
    overflow: hidden;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-primary-quote-cta::after {
    content: '';
    position: absolute;
    inset: -80% -30%;
    background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.32) 48%, transparent 62%);
    transform: translateX(-72%);
    animation: asgCtaSheen 4.8s ease-in-out infinite;
    pointer-events: none;
}

@keyframes asgPremiumRise {
    from { opacity: 0; transform: translateY(14px); filter: blur(4px); }
    to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes asgCtaSheen {
    0%, 52% { transform: translateX(-72%); }
    72%, 100% { transform: translateX(72%); }
}

@media (prefers-reduced-motion: reduce) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-col,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel,
    #asg-configuratore-wrapper.asg-state-configurator .asg-controls-col,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section.active,
    #asg-configuratore-wrapper.asg-state-configurator .asg-primary-quote-cta::after {
        animation: none !important;
    }
}

@media (max-width: 1180px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
        grid-template-columns: 1fr 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        justify-self: stretch !important;
        width: 100% !important;
    }
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        grid-template-columns: 1fr !important;
    }

    body #asg-mobile-sticky-price {
        left: 12px !important;
        right: 12px !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
        width: auto !important;
    }
}


/* Phase 2.2.6 - compact dock, dropdown layer fix, stable furniture, compact configurator */
#asg-configuratore-wrapper.asg-state-models,
#asg-configuratore-wrapper.asg-state-models .asg-controls-col,
#asg-configuratore-wrapper.asg-state-models #step-1-view,
#asg-configuratore-wrapper.asg-state-models .asg-controls-body,
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-shell {
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-filter-shell {
    position: relative !important;
    z-index: 9000 !important;
    isolation: isolate !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select {
    position: relative !important;
    z-index: 9100 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select.is-open {
    z-index: 9500 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu {
    z-index: 99999 !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;
    right: auto !important;
    width: min(320px, 88vw) !important;
    max-height: 220px !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-models-grid,
#asg-configuratore-wrapper.asg-state-models .asg-model-card,
#asg-configuratore-wrapper.asg-state-models #asg-model-compare-panel {
    position: relative !important;
    z-index: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-header-config,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    min-height: 0 !important;
    padding: 18px 22px !important;
    border-radius: 28px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    gap: 4px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2,
#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title {
    font-size: clamp(30px, 3.2vw, 44px) !important;
    line-height: .88 !important;
    letter-spacing: -0.055em !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-type-kicker,
#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-type {
    min-height: 36px !important;
    padding: 0 22px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-intro-compact,
#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-subtitle {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-top: 4px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    width: 58px !important;
    height: 58px !important;
    min-width: 58px !important;
    border-radius: 20px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-body {
    gap: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator #step-2-view .control-group,
#asg-configuratore-wrapper.asg-state-configurator #step-2-view .asg-final-summary-card {
    padding: 22px !important;
    border-radius: 26px !important;
}

#asg-configuratore-wrapper.asg-state-configurator #step-2-view .control-group h3 {
    font-size: 18px !important;
    margin-bottom: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-section-microcopy {
    font-size: 13px !important;
    line-height: 1.45 !important;
    margin-bottom: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-stepper-container {
    min-height: 68px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-stepper {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .stepper-value {
    min-height: 58px !important;
    font-size: 25px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
    gap: 12px !important;
    margin-top: 14px !important;
    padding-top: 14px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn {
    min-height: 54px !important;
    padding: 0 18px !important;
    border-radius: 22px !important;
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy small {
    font-size: 9px !important;
    letter-spacing: .12em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy strong {
    font-size: 14px !important;
    line-height: 1.08 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    padding: 22px 30px 18px !important;
    border-radius: 28px !important;
    max-width: 100% !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    grid-template-columns: minmax(190px, .76fr) minmax(320px, .88fr) !important;
    gap: 20px !important;
    margin-bottom: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 12px !important;
    letter-spacing: .13em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    font-size: clamp(46px, 4.7vw, 68px) !important;
    line-height: .9 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .42em !important;
    margin-right: 7px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-inline-meta {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, .92fr) !important;
    gap: 14px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 70px !important;
    padding: 0 20px !important;
    border-radius: 22px !important;
    font-size: 15px !important;
    line-height: 1.08 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    padding-top: 18px !important;
    margin-top: 0 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    grid-template-columns: 48px minmax(0, 1fr) !important;
    gap: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    padding-left: 16px !important;
    margin-left: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: 15px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    font-size: 14px !important;
    line-height: 1.15 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    margin-top: 14px !important;
    padding-top: 12px !important;
    gap: 14px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 11px !important;
    line-height: 1.35 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 13px !important;
}

@media (max-width: 1180px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-controls-header-config,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
        padding: 16px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2,
    #asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title {
        font-size: clamp(29px, 11vw, 38px) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }
}


/* Phase 2.2.7 - hard fixes: dropdown, stable furniture, compact title/nav/dock */
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-shell,
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field {
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field:first-child {
    z-index: 99980 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select {
    position: relative !important;
    width: 100% !important;
    z-index: 99990 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-toggle {
    width: 100% !important;
    height: 52px !important;
    border-radius: 18px !important;
    background: rgba(12, 22, 45, 0.96) !important;
    border: 1px solid rgba(112, 139, 219, 0.22) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 16px 36px rgba(0, 6, 18, .18) !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select.is-open .asg-custom-select-toggle {
    border-radius: 18px 18px 0 0 !important;
    border-bottom-color: rgba(112, 139, 219, 0.08) !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu {
    top: calc(100% - 1px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 8px !important;
    border-radius: 0 0 18px 18px !important;
    background: rgba(8, 18, 39, 0.99) !important;
    border: 1px solid rgba(112, 139, 219, 0.22) !important;
    border-top: 0 !important;
    box-shadow: 0 24px 48px rgba(0, 6, 18, 0.42) !important;
    scrollbar-width: none !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button {
    width: 100% !important;
    min-height: 42px !important;
    border-radius: 13px !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: rgba(235, 242, 255, .78) !important;
    text-align: left !important;
    font-weight: 800 !important;
    letter-spacing: .04em !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button:hover,
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button.is-selected {
    background: rgba(40, 120, 255, .16) !important;
    color: #ffffff !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-header-config,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    padding: 12px 16px !important;
    min-height: 118px !important;
    border-radius: 24px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) 46px !important;
    align-items: center !important;
    column-gap: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    min-width: 0 !important;
    align-items: center !important;
    text-align: center !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2 {
    font-size: clamp(26px, 2.6vw, 36px) !important;
    line-height: .92 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    letter-spacing: -0.055em !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-type,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-type-kicker {
    min-height: 32px !important;
    padding: 0 18px !important;
    font-size: 11px !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-subtitle,
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-intro-compact {
    font-size: 12px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    border-radius: 15px !important;
    align-self: center !important;
    justify-self: center !important;
    font-size: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-body {
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
    position: sticky !important;
    bottom: 18px !important;
    z-index: 8500 !important;
    margin-top: 16px !important;
    padding: 10px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(117, 140, 214, .16) !important;
    background: rgba(4, 12, 28, .88) !important;
    box-shadow: 0 18px 40px rgba(0, 5, 18, .42) !important;
    backdrop-filter: blur(12px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn {
    min-height: 48px !important;
    padding: 0 14px !important;
    border-radius: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy small {
    font-size: 8px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy strong {
    font-size: 12px !important;
    line-height: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    padding: 14px 22px 12px !important;
    border-radius: 24px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    display: grid !important;
    grid-template-columns: minmax(150px, .72fr) minmax(300px, .86fr) !important;
    gap: 16px !important;
    margin-bottom: 10px !important;
    align-items: center !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 10px !important;
    letter-spacing: .14em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    font-size: clamp(38px, 3.6vw, 52px) !important;
    line-height: .88 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .42em !important;
    margin-right: 5px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 50px !important;
    padding: 0 16px !important;
    border-radius: 16px !important;
    font-size: 12px !important;
    line-height: 1.02 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    padding-top: 10px !important;
    border-top: 1px solid rgba(117, 140, 214, .16) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    grid-template-columns: 36px minmax(0, 1fr) !important;
    gap: 8px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    padding-left: 10px !important;
    margin-left: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 36px !important;
    height: 36px !important;
    border-radius: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 8px !important;
    letter-spacing: .1em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    font-size: 11px !important;
    line-height: 1.12 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    margin-top: 8px !important;
    padding-top: 8px !important;
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 9px !important;
    line-height: 1.25 !important;
    max-height: 26px !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 11px !important;
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
        grid-template-columns: 42px minmax(0, 1fr) 42px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
        bottom: 12px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
        grid-template-columns: 1fr !important;
    }
}


/* Phase 2.2.8 - surgical rollback: stable header, untouched dimensions, footer nav, compact dock */
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col {
    position: relative !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #step-2-view.active-step {
    display: flex !important;
    flex-direction: column !important;
    min-height: calc(100vh - 188px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator #step-2-view .asg-controls-body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    gap: 18px !important;
    padding-bottom: 18px !important;
    overflow: visible !important;
}

/* Restore header geometry: buttons small, title readable, no overlap. */
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-header-config,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    min-height: 148px !important;
    padding: 20px 22px !important;
    border-radius: 28px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 62px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 8px !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2 {
    display: block !important;
    width: 100% !important;
    max-width: 360px !important;
    margin: 0 auto !important;
    font-size: clamp(30px, 2.9vw, 42px) !important;
    line-height: 0.94 !important;
    letter-spacing: -0.055em !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    text-wrap: balance;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-type,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-type-kicker {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 22px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-subtitle,
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-intro-compact {
    max-width: 340px !important;
    margin: 0 auto !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    position: absolute !important;
    top: 22px !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    border-radius: 17px !important;
    font-size: 17px !important;
    z-index: 3 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero {
    left: 22px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    right: 22px !important;
}

/* Undo accidental compacting of dimension controls: keep the original stepper proportions. */
#asg-configuratore-wrapper.asg-state-configurator #step-2-view .control-group,
#asg-configuratore-wrapper.asg-state-configurator #step-2-view .asg-final-summary-card {
    padding: 28px !important;
    border-radius: 28px !important;
}

#asg-configuratore-wrapper.asg-state-configurator #step-2-view .control-group h3 {
    font-size: 20px !important;
    margin-bottom: 12px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-section-microcopy {
    font-size: 14px !important;
    line-height: 1.55 !important;
    margin-bottom: 20px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-stepper-container {
    display: grid !important;
    grid-template-columns: 48px minmax(132px, 1fr) 48px !important;
    gap: 12px !important;
    min-height: 84px !important;
    padding: 10px 14px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-stepper {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    border-radius: 15px !important;
    font-size: 18px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .stepper-value {
    min-height: 64px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .stepper-value-number {
    font-size: 22px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .stepper-value-unit {
    font-size: 12px !important;
}

/* Step navigation pinned to the bottom of the control panel, not under the inputs. */
#asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
    position: sticky !important;
    bottom: 18px !important;
    z-index: 8500 !important;
    margin-top: auto !important;
    padding: 8px !important;
    border-radius: 22px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    background: rgba(4, 12, 28, .92) !important;
    border: 1px solid rgba(117, 140, 214, .16) !important;
    box-shadow: 0 18px 42px rgba(0, 5, 18, .42) !important;
    backdrop-filter: blur(12px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn {
    min-height: 50px !important;
    height: 50px !important;
    padding: 0 14px !important;
    border-radius: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy small {
    font-size: 8px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy strong {
    font-size: 12px !important;
    line-height: 1.05 !important;
}

/* Compact dock under the viewer: no tall/stretched block. */
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    display: block !important;
    width: 100% !important;
    margin-top: 14px !important;
    margin-bottom: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    max-width: 100% !important;
    min-height: 0 !important;
    padding: 14px 20px 12px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    display: grid !important;
    grid-template-columns: minmax(150px, 220px) minmax(260px, 1fr) !important;
    gap: 18px !important;
    align-items: center !important;
    margin: 0 0 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    gap: 4px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    font-size: clamp(38px, 3.25vw, 50px) !important;
    line-height: .9 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .42em !important;
    margin-right: 5px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-inline-meta {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, .92fr) !important;
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 48px !important;
    height: 48px !important;
    padding: 0 14px !important;
    border-radius: 16px !important;
    font-size: 12px !important;
    line-height: 1.05 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding-top: 10px !important;
    margin-top: 0 !important;
    border-top: 1px solid rgba(117, 140, 214, .16) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) !important;
    gap: 8px !important;
    align-items: center !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    padding-left: 9px !important;
    margin-left: 9px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 34px !important;
    height: 34px !important;
    border-radius: 11px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 8px !important;
    line-height: 1 !important;
    letter-spacing: .1em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    font-size: 11px !important;
    line-height: 1.12 !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    margin-top: 8px !important;
    padding-top: 8px !important;
    gap: 12px !important;
    border-top: 1px solid rgba(117, 140, 214, .13) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 9px !important;
    line-height: 1.2 !important;
    max-height: 22px !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 11px !important;
    white-space: nowrap !important;
}

/* Model dropdown: keep it attached to the trigger and remove native-looking artefacts. */
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu {
    max-height: none !important;
    overflow: visible !important;
    scrollbar-width: none !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu::-webkit-scrollbar {
    display: none !important;
}

@media (max-width: 1180px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        row-gap: 10px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border:nth-child(3) {
        padding-left: 0 !important;
        margin-left: 0 !important;
        border-left: 0 !important;
    }
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper.asg-state-configurator #step-2-view.active-step {
        min-height: auto !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
        padding: 0 54px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2 {
        font-size: clamp(28px, 9vw, 38px) !important;
        max-width: 300px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        padding-left: 0 !important;
        margin-left: 0 !important;
        border-left: 0 !important;
    }
}


/* Phase 2.2.9 - recovery: independent price dock, restored dimension steppers, bottom nav */
#asg-configuratore-wrapper.asg-state-configurator .asg-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(390px, 520px) !important;
    grid-template-areas:
        "viewer controls"
        "dock dock" !important;
    align-items: start !important;
    gap: 22px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-stack {
    grid-area: viewer !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col {
    grid-area: controls !important;
    position: relative !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-area: dock !important;
    width: min(100%, 1180px) !important;
    max-width: 1180px !important;
    margin: 8px 0 0 !important;
    align-self: start !important;
    justify-self: start !important;
    position: relative !important;
    bottom: auto !important;
    z-index: 4 !important;
    display: block !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 16px 20px 12px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto auto auto !important;
    gap: 10px !important;
    background: linear-gradient(180deg, rgba(5, 13, 31, .96), rgba(3, 8, 20, .98)) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    display: grid !important;
    grid-template-columns: minmax(160px, 220px) minmax(300px, 1fr) !important;
    align-items: center !important;
    gap: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 4px !important;
    min-height: 54px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    font-size: clamp(34px, 3vw, 48px) !important;
    line-height: .88 !important;
    letter-spacing: -.04em !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .42em !important;
    margin-right: 5px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-inline-meta {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 220px) minmax(0, 200px) !important;
    justify-content: end !important;
    align-items: center !important;
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 44px !important;
    height: 44px !important;
    padding: 0 14px !important;
    border-radius: 15px !important;
    font-size: 11px !important;
    line-height: 1.04 !important;
    letter-spacing: .02em !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 8px 0 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(117, 140, 214, .16) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) !important;
    gap: 8px !important;
    align-items: center !important;
    min-width: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    padding-left: 10px !important;
    margin-left: 10px !important;
    border-left: 1px solid rgba(117, 140, 214, .16) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 32px !important;
    height: 32px !important;
    border-radius: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 8px !important;
    line-height: 1 !important;
    letter-spacing: .1em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    font-size: 11px !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 12px !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 8px 0 0 !important;
    border-top: 1px solid rgba(117, 140, 214, .13) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 9px !important;
    line-height: 1.18 !important;
    max-height: 22px !important;
    overflow: hidden !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* Title card recovery: no overlap, readable title, compact buttons only. */
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-header-config,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    min-height: 142px !important;
    padding: 18px 20px !important;
    border-radius: 28px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 76px !important;
    text-align: center !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2 {
    font-size: clamp(28px, 2.4vw, 36px) !important;
    line-height: .94 !important;
    max-width: 310px !important;
    margin: 0 auto !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-wrap: balance;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-type,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-type-kicker {
    height: 31px !important;
    min-height: 31px !important;
    padding: 0 18px !important;
    font-size: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-subtitle,
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-intro-compact {
    max-width: 320px !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    margin: 0 auto !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    border-radius: 16px !important;
    z-index: 4 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero {
    left: 18px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    right: 18px !important;
}

/* Dimension stepper recovery: text centered, buttons aligned, no collision. */
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .form-row.asg-form-row-lg {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 34px !important;
    row-gap: 18px !important;
    align-items: start !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .asg-stepper-container {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 86px !important;
    padding: 0 40px !important;
    gap: 0 !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value {
    width: 100% !important;
    min-height: 66px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 6px !important;
    font-size: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value-number {
    font-size: 22px !important;
    line-height: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value-unit {
    font-size: 12px !important;
    line-height: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper {
    position: absolute !important;
    top: 50% !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    transform: translateY(-50%) !important;
    border-radius: 14px !important;
    z-index: 4 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper:hover {
    transform: translateY(-50%) !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-minus {
    left: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-plus {
    right: 10px !important;
}

/* Footer nav: lower in panel, smaller, no overlap with mini sticky price. */
#asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
    position: sticky !important;
    bottom: 96px !important;
    margin-top: 42px !important;
    padding: 7px !important;
    border-radius: 20px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 9px !important;
    background: rgba(4, 12, 28, .94) !important;
    z-index: 400 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn {
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 12px !important;
    border-radius: 15px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy small {
    font-size: 8px !important;
    line-height: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy strong {
    font-size: 11px !important;
    line-height: 1.05 !important;
}

/* Model dropdown recovery: integrated, no white scrollbar, visually tied to trigger. */
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field {
    position: relative !important;
    z-index: 300 !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select {
    position: relative !important;
    z-index: 320 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu {
    top: calc(100% - 2px) !important;
    left: 0 !important;
    right: 0 !important;
    border-radius: 0 0 18px 18px !important;
    border-top: 0 !important;
    background: linear-gradient(180deg, rgba(10, 23, 52, .98), rgba(6, 16, 38, .98)) !important;
    box-shadow: 0 22px 42px rgba(0, 0, 0, .38) !important;
    max-height: 260px !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
    z-index: 9999 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-custom-select.is-open .asg-custom-select-trigger,
#asg-configuratore-wrapper.asg-state-models .asg-custom-select[aria-expanded="true"] .asg-custom-select-trigger {
    border-radius: 18px 18px 0 0 !important;
    border-bottom-color: rgba(84, 127, 255, .12) !important;
}

body #asg-mobile-sticky-price {
    z-index: 80 !important;
    right: 24px !important;
    bottom: 22px !important;
    width: min(255px, calc(100vw - 44px)) !important;
    padding: 10px 12px !important;
    border-radius: 18px !important;
}

body #asg-mobile-sticky-price::after {
    width: 38px !important;
    height: 38px !important;
    border-radius: 13px !important;
}

@media (max-width: 1280px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 460px) !important;
    }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "viewer"
            "controls"
            "dock" !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .form-row.asg-form-row-lg,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
        padding: 0 58px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2 {
        font-size: clamp(25px, 8vw, 33px) !important;
        max-width: 260px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        margin-left: 0 !important;
        padding-left: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 14px 14px 12px !important;
    }
}


/* Phase 2.3.0 - clean recovery: fixed nav, exact price dock, readable dimensions */
#asg-configuratore-wrapper.asg-state-configurator .asg-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(390px, 520px) !important;
    grid-template-areas:
        "viewer controls"
        "dock dock" !important;
    gap: 24px !important;
    align-items: start !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-stack {
    grid-area: viewer !important;
    min-width: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col {
    grid-area: controls !important;
    min-width: 0 !important;
    padding-bottom: 92px !important;
}

/* Header configuratore: freccia a sinistra, impostazioni a destra, titolo libero al centro. */
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-header-config,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    min-height: 168px !important;
    height: auto !important;
    padding: 24px 88px !important;
    border-radius: 28px !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    width: 100% !important;
    max-width: 360px !important;
    padding: 0 !important;
    margin: 0 auto !important;
    text-align: center !important;
    align-items: center !important;
    justify-content: center !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2 {
    max-width: 340px !important;
    font-size: clamp(34px, 3.1vw, 48px) !important;
    line-height: .9 !important;
    letter-spacing: -.045em !important;
    text-align: center !important;
    margin: 8px auto 6px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-subtitle,
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-intro-compact {
    max-width: 360px !important;
    margin: 0 auto !important;
    text-align: center !important;
    line-height: 1.25 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 18px !important;
    z-index: 6 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero {
    left: 24px !important;
    right: auto !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    right: 24px !important;
    left: auto !important;
}

/* Dimensioni: non sovrapporre più i bottoni al numero. */
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .form-row.asg-form-row-lg {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .asg-stepper-container {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 42px minmax(112px, 1fr) 42px !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 82px !important;
    padding: 0 !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper {
    position: static !important;
    transform: none !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    border-radius: 14px !important;
    z-index: 2 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper:hover,
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper:focus {
    transform: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 66px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 6px !important;
    padding: 0 14px !important;
    white-space: nowrap !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value-number {
    font-size: 23px !important;
    line-height: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value-unit {
    font-size: 12px !important;
    line-height: 1 !important;
}

/* Navigazione: fuori dal pannello, sticky al centro basso del viewport. */
#asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: 22px !important;
    transform: translateX(-50%) !important;
    width: min(560px, calc(100vw - 40px)) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 8px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    background: rgba(3, 10, 24, .78) !important;
    border: 1px solid rgba(112, 139, 220, .22) !important;
    box-shadow: 0 18px 52px rgba(0, 0, 0, .42) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 9990 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn {
    min-height: 54px !important;
    height: 54px !important;
    padding: 0 16px !important;
    border-radius: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy small {
    font-size: 8px !important;
    letter-spacing: .12em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy strong {
    font-size: 12px !important;
    line-height: 1.05 !important;
}

/* Dock prezzo: layout come reference, indipendente dal viewer e senza contenuti compressi. */
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-area: dock !important;
    width: 100% !important;
    max-width: none !important;
    margin: 10px 0 0 !important;
    position: relative !important;
    justify-self: stretch !important;
    align-self: start !important;
    z-index: 3 !important;
    display: block !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    width: 100% !important;
    max-width: none !important;
    min-height: 268px !important;
    height: auto !important;
    padding: 36px 42px 28px !important;
    border-radius: 34px !important;
    overflow: visible !important;
    display: grid !important;
    grid-template-rows: auto auto auto !important;
    gap: 24px !important;
    background: radial-gradient(circle at 8% 0%, rgba(61, 102, 220, .14), transparent 28%), linear-gradient(180deg, rgba(5, 13, 32, .97), rgba(3, 9, 24, .99)) !important;
    border: 1px solid rgba(100, 130, 220, .28) !important;
    box-shadow: 0 32px 70px rgba(0, 5, 18, .36) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    display: grid !important;
    grid-template-columns: minmax(260px, 1fr) minmax(460px, 690px) !important;
    align-items: center !important;
    gap: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    min-height: 102px !important;
    gap: 8px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .14em !important;
    color: rgba(230, 237, 255, .86) !important;
    text-transform: uppercase !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    display: flex !important;
    align-items: flex-start !important;
    font-size: clamp(68px, 6vw, 98px) !important;
    line-height: .86 !important;
    font-weight: 950 !important;
    letter-spacing: -.06em !important;
    color: #fff !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .36em !important;
    line-height: 1 !important;
    margin: .11em 10px 0 0 !important;
    transform: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-inline-meta {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    display: grid !important;
    grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr) !important;
    justify-content: end !important;
    align-items: center !important;
    gap: 20px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 84px !important;
    height: 84px !important;
    padding: 0 30px !important;
    border-radius: 28px !important;
    font-size: 20px !important;
    line-height: 1.08 !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    justify-content: center !important;
    gap: 16px !important;
    white-space: normal !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 22px 0 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(120, 145, 220, .22) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    display: grid !important;
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 18px !important;
    align-items: center !important;
    min-width: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    border-left: 1px solid rgba(120, 145, 220, .22) !important;
    padding-left: 28px !important;
    margin-left: 28px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 66px !important;
    height: 66px !important;
    border-radius: 22px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    color: rgba(224, 232, 255, .72) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    display: block !important;
    font-size: 24px !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
    color: #fff !important;
    white-space: normal !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 24px !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 22px 0 0 !important;
    border-top: 1px solid rgba(120, 145, 220, .22) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 17px !important;
    line-height: 1.35 !important;
    color: rgba(218, 228, 255, .78) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer i {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 22px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    color: #fff !important;
    white-space: nowrap !important;
}

body:has(#asg-configuratore-wrapper.asg-state-configurator) #asg-mobile-sticky-price {
    bottom: 96px !important;
    right: 24px !important;
    z-index: 9980 !important;
}

@media (max-width: 1280px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 470px) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
        grid-template-columns: minmax(220px, .9fr) minmax(380px, 1.1fr) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        grid-template-columns: repeat(2, minmax(190px, 1fr)) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        font-size: 15px !important;
        min-height: 62px !important;
        height: 62px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
        font-size: 15px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
        font-size: 12px !important;
    }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "viewer"
            "controls"
            "dock" !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 24px 22px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }
}


/* Phase 2.3.1 - hard recovery: exact dock, fixed navigation, sticky steps */
:root {
    --asg-public-header-offset: 86px;
    --asg-fixed-nav-height: 76px;
}

#asg-configuratore-wrapper .asg-ux-journey {
    position: sticky !important;
    top: var(--asg-public-header-offset) !important;
    z-index: 9300 !important;
    width: 100% !important;
    margin: 0 auto 18px !important;
    padding: 10px !important;
    border-radius: 18px !important;
    background: rgba(4, 10, 24, 0.86) !important;
    border: 1px solid rgba(93, 125, 210, 0.18) !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28) !important;
    backdrop-filter: blur(14px) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(400px, 520px) !important;
    grid-template-areas:
        "viewer controls"
        "dock dock" !important;
    gap: 24px !important;
    align-items: start !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-stack { grid-area: viewer !important; min-width: 0 !important; }
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col { grid-area: controls !important; min-width: 0 !important; padding-bottom: 0 !important; overflow: visible !important; }
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-area: dock !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 18px 0 0 !important;
    padding: 0 !important;
    position: relative !important;
    display: block !important;
    overflow: visible !important;
    transform: none !important;
    place-self: stretch !important;
}

/* Header configuratore: freccia e settings fuori dal testo, titolo leggibile. */
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-header-config,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    position: relative !important;
    min-height: 164px !important;
    height: auto !important;
    padding: 24px 84px !important;
    border-radius: 28px !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    width: 100% !important;
    max-width: 290px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center h2 {
    display: block !important;
    max-width: 290px !important;
    margin: 8px auto 8px !important;
    font-size: clamp(32px, 2.45vw, 42px) !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-subtitle,
#asg-configuratore-wrapper.asg-state-configurator .asg-controls-intro-compact {
    max-width: 290px !important;
    margin: 0 auto !important;
    text-align: center !important;
    line-height: 1.25 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 18px !important;
    z-index: 5 !important;
    margin: 0 !important;
}
#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero { left: 24px !important; right: auto !important; }
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action { right: 24px !important; left: auto !important; }

/* Dimensioni: valore leggibile, bottoni fuori dal numero. */
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .form-row.asg-form-row-lg {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(180px, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
}
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .form-col,
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .form-col.asg-form-col-full {
    min-width: 0 !important;
    overflow: visible !important;
}
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .asg-stepper-container {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 44px minmax(88px, 1fr) 44px !important;
    gap: 8px !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 76px !important;
    padding: 0 !important;
    overflow: visible !important;
}
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper,
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper.btn-minus,
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper.btn-plus {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    border-radius: 14px !important;
    z-index: 2 !important;
}
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper.btn-minus { grid-column: 1 !important; }
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .btn-stepper.btn-plus { grid-column: 3 !important; }
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value {
    grid-column: 2 !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 64px !important;
    padding: 0 8px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: visible !important;
    z-index: 1 !important;
}
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value-number {
    display: inline-block !important;
    font-size: 23px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    color: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
}
#asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .stepper-value-unit {
    display: inline-block !important;
    font-size: 12px !important;
    line-height: 1 !important;
    margin-left: 5px !important;
    color: rgba(222, 232, 255, .82) !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Navigazione fixed: appare solo quando il configuratore è nello schermo. */
#asg-configuratore-wrapper .asg-config-section-footer-nav {
    display: none !important;
}
body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav {
    position: fixed !important;
    left: 50% !important;
    bottom: 24px !important;
    transform: translateX(-50%) !important;
    width: min(560px, calc(100vw - 42px)) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 8px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    background: rgba(3, 10, 24, .82) !important;
    border: 1px solid rgba(112, 139, 220, .24) !important;
    box-shadow: 0 18px 48px rgba(0,0,0,.42) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 9700 !important;
}
body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn {
    height: 54px !important;
    min-height: 54px !important;
    padding: 0 16px !important;
    border-radius: 16px !important;
}
body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy small {
    font-size: 8px !important;
    letter-spacing: .12em !important;
}
body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-config-step-btn-copy strong {
    font-size: 12px !important;
    line-height: 1.05 !important;
}

/* Sticky prezzo: solo in configuratore visibile, separato dalla nav fixed. */
body:not(.asg-configurator-fixed-ui-active) #asg-mobile-sticky-price,
body:not(.asg-configurator-price-visible) #asg-mobile-sticky-price {
    display: none !important;
}
body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible {
    display: inline-flex !important;
    right: 24px !important;
    bottom: 108px !important;
    z-index: 9600 !important;
}

/* Dock prezzo: reference esatto, niente stretch, niente contenuti collassati. */
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
    position: relative !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 42px 48px 34px !important;
    border-radius: 36px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
    gap: 24px !important;
    overflow: visible !important;
    background: radial-gradient(circle at 6% 0%, rgba(61,102,220,.15), transparent 30%), linear-gradient(180deg, rgba(5,13,32,.98), rgba(3,9,24,.99)) !important;
    border: 1px solid rgba(100,130,220,.28) !important;
    box-shadow: 0 32px 70px rgba(0,5,18,.34) !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta,
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid,
#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar,
#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    position: static !important;
    float: none !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main {
    display: grid !important;
    grid-template-columns: minmax(300px, 1fr) minmax(560px, 700px) !important;
    align-items: center !important;
    gap: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 112px !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .14em !important;
    color: rgba(230,237,255,.86) !important;
    text-transform: uppercase !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    display: flex !important;
    align-items: flex-start !important;
    font-size: clamp(74px, 5.6vw, 98px) !important;
    line-height: .86 !important;
    font-weight: 950 !important;
    letter-spacing: -.06em !important;
    color: #fff !important;
    margin: 0 !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .36em !important;
    margin: .1em 10px 0 0 !important;
    transform: none !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-inline-meta { display: none !important; }
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    align-items: center !important;
    gap: 20px !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 90px !important;
    height: 90px !important;
    padding: 0 30px !important;
    border-radius: 28px !important;
    font-size: 20px !important;
    line-height: 1.08 !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    justify-content: center !important;
    gap: 16px !important;
    white-space: normal !important;
}
#asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 24px 0 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(120,145,220,.22) !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    display: grid !important;
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 18px !important;
    align-items: center !important;
    min-width: 0 !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    border-left: 1px solid rgba(120,145,220,.22) !important;
    padding-left: 28px !important;
    margin-left: 28px !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 66px !important;
    height: 66px !important;
    border-radius: 22px !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    color: rgba(224,232,255,.72) !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    display: block !important;
    font-size: 24px !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
    color: #fff !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 24px !important;
    align-items: center !important;
    padding: 22px 0 0 !important;
    border-top: 1px solid rgba(120,145,220,.22) !important;
    margin: 0 !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 17px !important;
    line-height: 1.35 !important;
    color: rgba(218,228,255,.78) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
}
#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer i { display: none !important; }
#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 22px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    color: #fff !important;
    white-space: nowrap !important;
}

/* Menu categorie: unito al trigger, senza scrollbar bianca, con micro-animazione. */
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-shell { overflow: visible !important; position: relative !important; z-index: 80 !important; }
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field:first-child { overflow: visible !important; position: relative !important; z-index: 100 !important; }
#asg-configuratore-wrapper.asg-state-models .asg-custom-select { position: relative !important; overflow: visible !important; z-index: 110 !important; }
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-toggle {
    border-radius: 18px !important;
    background: rgba(10, 20, 43, .92) !important;
    border: 1px solid rgba(91, 130, 226, .24) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03) !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select.is-open .asg-custom-select-toggle {
    border-bottom-left-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
    border-color: rgba(93, 145, 255, .45) !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu {
    top: calc(100% - 2px) !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    max-height: 310px !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-left-radius: 18px !important;
    border-bottom-right-radius: 18px !important;
    background: rgba(8, 18, 42, .98) !important;
    border: 1px solid rgba(93, 145, 255, .42) !important;
    border-top: 0 !important;
    box-shadow: 0 24px 46px rgba(0,0,0,.45) !important;
    padding: 8px !important;
    transform-origin: top center !important;
    animation: asgCategoryMenuIn .16s ease-out both !important;
    z-index: 9999 !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button {
    min-height: 44px !important;
    border-radius: 12px !important;
    transition: transform .16s ease, background .16s ease, color .16s ease !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button:hover,
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button.is-selected {
    transform: translateX(3px) !important;
    background: rgba(55, 112, 255, .22) !important;
    color: #fff !important;
}
@keyframes asgCategoryMenuIn {
    from { opacity: 0; transform: translateY(-6px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1280px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid { grid-template-columns: minmax(0, 1fr) minmax(380px, 480px) !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main { grid-template-columns: minmax(240px, .9fr) minmax(420px, 1.1fr) !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid { grid-template-columns: repeat(2, minmax(190px, 1fr)) !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn { min-height: 68px !important; height: 68px !important; font-size: 15px !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value { font-size: 16px !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer { font-size: 12px !important; }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: 1fr !important;
        grid-template-areas: "viewer" "controls" "dock" !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid,
    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
        grid-template-columns: 1fr !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 640px) {
    #asg-configuratore-wrapper .asg-ux-journey { top: 68px !important; overflow-x: auto !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 { padding: 24px 66px !important; }
    #asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action { width: 48px !important; height: 48px !important; min-width:48px !important; min-height:48px !important; }
    #asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero { left: 14px !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action { right: 14px !important; }
    #asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title { font-size: 32px !important; max-width: 230px !important; }
    #asg-configuratore-wrapper.asg-state-configurator #asg-section-dimensions .form-row.asg-form-row-lg { grid-template-columns: 1fr !important; }
    body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-config-section-footer-nav { width: calc(100vw - 24px) !important; bottom: 16px !important; }
    body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible { display: none !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked { padding: 24px 18px !important; border-radius: 28px !important; }
}


/* Phase 2.3.2 - final recovery: clean dock, body-fixed nav, stable title, sticky steps */
#asg-configuratore-wrapper {
    overflow: visible !important;
}

#asg-configuratore-wrapper .asg-ux-journey {
    position: sticky !important;
    top: 82px !important;
    z-index: 9300 !important;
    margin-top: 0 !important;
    margin-bottom: 22px !important;
    background: rgba(4, 10, 24, .88) !important;
    border: 1px solid rgba(80, 112, 190, .22) !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .28) !important;
    backdrop-filter: blur(14px) !important;
}

.admin-bar #asg-configuratore-wrapper .asg-ux-journey {
    top: 114px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(410px, 520px) !important;
    grid-template-areas:
        "viewer controls"
        "dock dock" !important;
    gap: 26px !important;
    align-items: start !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-stack {
    grid-area: viewer !important;
    min-width: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-controls-col {
    grid-area: controls !important;
    min-width: 0 !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-area: dock !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 26px 0 0 !important;
    padding: 0 !important;
    display: block !important;
    clear: both !important;
    position: relative !important;
    transform: none !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    min-height: 0 !important;
    height: auto !important;
    position: relative !important;
    transform: none !important;
    padding: clamp(34px, 2.5vw, 54px) clamp(40px, 3vw, 70px) clamp(28px, 2.1vw, 44px) !important;
    border-radius: 36px !important;
    display: grid !important;
    grid-template-columns: minmax(280px, .9fr) minmax(520px, 1fr) !important;
    grid-template-areas:
        "price actions"
        "summary summary"
        "footer footer" !important;
    gap: 28px 48px !important;
    overflow: visible !important;
    background: radial-gradient(circle at 10% 0%, rgba(61, 102, 220, .16), transparent 32%), linear-gradient(180deg, rgba(5, 13, 32, .98), rgba(3, 9, 24, .99)) !important;
    border: 1px solid rgba(100, 130, 220, .30) !important;
    box-shadow: 0 32px 70px rgba(0, 5, 18, .36) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-main {
    display: contents !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    position: static !important;
    transform: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    grid-area: price !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 10px !important;
    min-height: 118px !important;
    height: auto !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    position: static !important;
    transform: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: clamp(13px, .85vw, 17px) !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: rgba(231, 238, 255, .88) !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    font-size: clamp(68px, 6vw, 108px) !important;
    line-height: .88 !important;
    font-weight: 950 !important;
    letter-spacing: -.06em !important;
    color: #fff !important;
    margin: 0 !important;
    white-space: nowrap !important;
    text-align: left !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .36em !important;
    line-height: 1 !important;
    margin: .12em 10px 0 0 !important;
    transform: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-inline-meta {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    grid-area: actions !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 22px !important;
    align-self: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    transform: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: clamp(74px, 5vw, 104px) !important;
    height: auto !important;
    padding: 0 clamp(22px, 2vw, 34px) !important;
    border-radius: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    font-size: clamp(16px, 1.25vw, 22px) !important;
    line-height: 1.06 !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    text-align: center !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > #asg-config-summary-bar {
    grid-area: summary !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    width: 100% !important;
    padding: 26px 0 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(120, 145, 220, .24) !important;
    position: static !important;
    transform: none !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    gap: 18px !important;
    align-items: center !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    border-left: 1px solid rgba(120, 145, 220, .24) !important;
    padding-left: 30px !important;
    margin-left: 30px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 72px !important;
    height: 72px !important;
    min-width: 72px !important;
    min-height: 72px !important;
    border-radius: 22px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-data {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 7px !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    display: block !important;
    font-size: clamp(12px, .75vw, 15px) !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    color: rgba(224, 232, 255, .72) !important;
    white-space: nowrap !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    display: block !important;
    font-size: clamp(18px, 1.35vw, 28px) !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
    color: #fff !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    overflow: visible !important;
    text-overflow: unset !important;
    -webkit-line-clamp: unset !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-footer {
    grid-area: footer !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 28px !important;
    align-items: center !important;
    width: 100% !important;
    padding: 24px 0 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(120, 145, 220, .24) !important;
    position: static !important;
    transform: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    display: block !important;
    font-size: clamp(15px, 1vw, 20px) !important;
    line-height: 1.42 !important;
    color: rgba(218, 228, 255, .78) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer i {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    display: block !important;
    font-size: clamp(18px, 1.35vw, 26px) !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .04em !important;
    color: #fff !important;
    white-space: nowrap !important;
}

/* Header modello: più largo, nessuna sovrapposizione sul titolo. */
#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 176px !important;
    display: grid !important;
    grid-template-columns: 58px minmax(0, 1fr) 58px !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 28px 24px !important;
    border-radius: 30px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 58px !important;
    height: 58px !important;
    min-width: 58px !important;
    min-height: 58px !important;
    margin: 0 !important;
    border-radius: 18px !important;
    z-index: 2 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero {
    grid-column: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    grid-column: 3 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    grid-column: 2 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title {
    max-width: 100% !important;
    width: 100% !important;
    font-size: clamp(35px, 2.4vw, 56px) !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-subtitle {
    max-width: 100% !important;
    margin: 8px auto 0 !important;
}

/* Navigation portal: fixed nel viewport, non dentro pannelli trasformati. */
#asg-config-section-footer-nav.asg-config-section-footer-nav,
body > .asg-config-section-footer-nav {
    display: none !important;
}

body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav {
    position: fixed !important;
    left: 50% !important;
    bottom: 24px !important;
    transform: translateX(-50%) !important;
    width: min(620px, calc(100vw - 42px)) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 8px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    background: rgba(3, 10, 24, .88) !important;
    border: 1px solid rgba(112, 139, 220, .28) !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .46) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 99920 !important;
}

body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav .asg-config-step-btn {
    height: 56px !important;
    min-height: 56px !important;
    padding: 0 18px !important;
    border-radius: 16px !important;
}

body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav .asg-config-step-btn-copy small {
    font-size: 8px !important;
    letter-spacing: .12em !important;
}

body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav .asg-config-step-btn-copy strong {
    font-size: 13px !important;
    line-height: 1.05 !important;
}

body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible {
    bottom: 98px !important;
    right: 28px !important;
    z-index: 99900 !important;
}

@media (max-width: 1280px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: minmax(0, 1fr) minmax(390px, 480px) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
        grid-template-columns: minmax(220px, .8fr) minmax(390px, 1fr) !important;
        gap: 22px 30px !important;
        padding: 34px 38px 28px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
        font-size: clamp(52px, 5vw, 78px) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        min-height: 66px !important;
        font-size: 15px !important;
        border-radius: 22px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
        grid-template-columns: 46px minmax(0, 1fr) !important;
        gap: 12px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        min-height: 46px !important;
        border-radius: 14px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        padding-left: 18px !important;
        margin-left: 18px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
        font-size: 14px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
        font-size: 12px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
        font-size: 16px !important;
    }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: 1fr !important;
        grid-template-areas: "viewer" "controls" "dock" !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
        grid-template-columns: 1fr !important;
        grid-template-areas: "price" "actions" "summary" "footer" !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-footer,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        grid-template-columns: 1fr !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 640px) {
    #asg-configuratore-wrapper .asg-ux-journey {
        top: 68px !important;
        overflow-x: auto !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
        grid-template-columns: 50px minmax(0, 1fr) 50px !important;
        padding: 22px 14px !important;
        min-height: 148px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title {
        font-size: 30px !important;
    }
    body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav {
        width: calc(100vw - 22px) !important;
        bottom: 14px !important;
    }
    body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible {
        display: none !important;
    }
}


/* Phase 2.3.3 - compact dock + real fixed nav + sticky steps */
#asg-configuratore-wrapper,
.asg-plugin-container {
    overflow: visible !important;
}

/* Step bar always sticky under the site header while the plugin is visible. */
#asg-configuratore-wrapper .asg-ux-journey {
    position: sticky !important;
    top: 74px !important;
    z-index: 99940 !important;
    margin: 0 0 18px !important;
    padding: 8px !important;
    background: rgba(4, 10, 24, .92) !important;
    border: 1px solid rgba(86, 119, 210, .24) !important;
    border-radius: 18px !important;
    box-shadow: 0 14px 34px rgba(0,0,0,.30) !important;
    backdrop-filter: blur(16px) !important;
}

.admin-bar #asg-configuratore-wrapper .asg-ux-journey {
    top: 106px !important;
}

#asg-configuratore-wrapper .asg-ux-journey-step {
    min-height: 42px !important;
    border-radius: 13px !important;
    transition: transform .18s ease, background .18s ease, border-color .18s ease, opacity .18s ease !important;
}

#asg-configuratore-wrapper .asg-ux-journey-step:hover,
#asg-configuratore-wrapper .asg-ux-journey-step:focus-visible {
    transform: translateY(-1px) !important;
}

/* Right panel a bit wider, title no longer strangled. */
#asg-configuratore-wrapper.asg-state-configurator .asg-grid {
    grid-template-columns: minmax(0, 1fr) minmax(500px, 620px) !important;
    gap: 24px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 154px !important;
    padding: 22px 20px !important;
    border-radius: 28px !important;
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) 54px !important;
    gap: 14px !important;
    align-items: center !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero,
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 17px !important;
    z-index: 2 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .btn-back-models-hero { grid-column: 1 !important; }
#asg-configuratore-wrapper.asg-state-configurator .asg-config-mode-pill-action { grid-column: 3 !important; }

#asg-configuratore-wrapper.asg-state-configurator .asg-config-header-center {
    grid-column: 2 !important;
    min-width: 0 !important;
    text-align: center !important;
    align-items: center !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title {
    max-width: 100% !important;
    font-size: clamp(34px, 2.45vw, 48px) !important;
    line-height: .94 !important;
    letter-spacing: -.045em !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
}

/* Clean compact dock, same structure as reference, less height. */
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-area: dock !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 0 !important;
    padding: 0 !important;
    position: relative !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 26px 42px 22px !important;
    border-radius: 30px !important;
    display: grid !important;
    grid-template-columns: minmax(250px, .85fr) minmax(460px, 1.05fr) !important;
    grid-template-areas:
        "price actions"
        "summary summary"
        "footer footer" !important;
    gap: 18px 42px !important;
    background: radial-gradient(circle at 10% 0%, rgba(61, 102, 220, .14), transparent 30%), linear-gradient(180deg, rgba(5, 13, 32, .98), rgba(3, 9, 24, .99)) !important;
    border: 1px solid rgba(100, 130, 220, .30) !important;
    box-shadow: 0 24px 54px rgba(0, 5, 18, .32) !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-main {
    display: contents !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    grid-area: price !important;
    min-height: 82px !important;
    gap: 6px !important;
    justify-content: center !important;
    align-items: flex-start !important;
    padding: 0 !important;
    margin: 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 13px !important;
    line-height: 1 !important;
    letter-spacing: .14em !important;
    font-weight: 900 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    font-size: clamp(58px, 4.6vw, 82px) !important;
    line-height: .86 !important;
    letter-spacing: -.055em !important;
    white-space: nowrap !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    font-size: .35em !important;
    margin: .12em 8px 0 0 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-dock-inline-meta {
    display: none !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    grid-area: actions !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 16px !important;
    align-self: center !important;
    width: 100% !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 70px !important;
    height: 70px !important;
    padding: 0 22px !important;
    border-radius: 23px !important;
    font-size: 18px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > #asg-config-summary-bar {
    grid-area: summary !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 18px 0 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(120, 145, 220, .22) !important;
    overflow: visible !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    grid-template-columns: 54px minmax(0, 1fr) !important;
    gap: 14px !important;
    min-width: 0 !important;
    align-items: center !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    padding-left: 22px !important;
    margin-left: 22px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 17px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 12px !important;
    line-height: 1 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    font-size: clamp(15px, 1.05vw, 21px) !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    overflow-wrap: anywhere !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-footer {
    grid-area: footer !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 22px !important;
    align-items: center !important;
    padding: 15px 0 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(120, 145, 220, .22) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 13px !important;
    line-height: 1.35 !important;
    max-height: 38px !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 19px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}

/* Fixed navigation buttons: real viewport sticky with animated enter/exit. */
body > .asg-config-section-footer-nav,
#asg-config-section-footer-nav.asg-config-section-footer-nav {
    position: fixed !important;
    left: 50% !important;
    bottom: 24px !important;
    width: min(620px, calc(100vw - 42px)) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 8px !important;
    border-radius: 22px !important;
    background: rgba(3, 10, 24, .90) !important;
    border: 1px solid rgba(112, 139, 220, .30) !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .46) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 99980 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate(-50%, 18px) scale(.98) !important;
    transition: opacity .24s ease, transform .24s ease, visibility .24s ease !important;
    display: grid !important;
}

body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate(-50%, 0) scale(1) !important;
}

body > .asg-config-section-footer-nav .asg-config-step-btn {
    height: 56px !important;
    min-height: 56px !important;
    padding: 0 18px !important;
    border-radius: 16px !important;
}

body > .asg-config-section-footer-nav .asg-config-step-btn-copy small {
    font-size: 8px !important;
    letter-spacing: .12em !important;
}

body > .asg-config-section-footer-nav .asg-config-step-btn-copy strong {
    font-size: 13px !important;
    line-height: 1.05 !important;
}

/* Sticky mini price: separate from buttons, animated. */
body #asg-mobile-sticky-price {
    bottom: 96px !important;
    right: 28px !important;
    z-index: 99970 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(14px) scale(.98) !important;
    transition: opacity .24s ease, transform .24s ease, visibility .24s ease !important;
}

body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
}

/* Category dropdown: smoother and visually connected. */
#asg-configuratore-wrapper .asg-model-filter-shell,
#asg-configuratore-wrapper .asg-model-filter-field {
    overflow: visible !important;
    z-index: 300 !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu,
#asg-configuratore-wrapper .asg-model-category-menu,
#asg-configuratore-wrapper [data-asg-custom-select-menu] {
    border-radius: 0 0 18px 18px !important;
    margin-top: -2px !important;
    border-top-color: transparent !important;
    scrollbar-width: none !important;
    animation: asgDropdownIn .18s ease both !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu::-webkit-scrollbar,
#asg-configuratore-wrapper .asg-model-category-menu::-webkit-scrollbar,
#asg-configuratore-wrapper [data-asg-custom-select-menu]::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
}

@keyframes asgDropdownIn {
    from { opacity: 0; transform: translateY(-6px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1280px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: minmax(0, 1fr) minmax(460px, 560px) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 22px 32px 20px !important;
        gap: 16px 28px !important;
        grid-template-columns: minmax(220px, .8fr) minmax(390px, 1fr) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
        font-size: clamp(50px, 4.4vw, 70px) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        height: 62px !important;
        min-height: 62px !important;
        font-size: 15px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
        grid-template-columns: 44px minmax(0, 1fr) !important;
        gap: 10px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        border-radius: 14px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value { font-size: 13px !important; }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer { font-size: 11px !important; }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: 1fr !important;
        grid-template-areas: "viewer" "controls" "dock" !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
        grid-template-columns: 1fr !important;
        grid-template-areas: "price" "actions" "summary" "footer" !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-footer,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        grid-template-columns: 1fr !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 640px) {
    #asg-configuratore-wrapper .asg-ux-journey {
        top: 68px !important;
        overflow-x: auto !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2 {
        grid-template-columns: 48px minmax(0, 1fr) 48px !important;
        padding: 18px 12px !important;
        min-height: 138px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator #asg-dynamic-title {
        font-size: 28px !important;
    }
    body > .asg-config-section-footer-nav {
        width: calc(100vw - 20px) !important;
        bottom: 14px !important;
    }
    body #asg-mobile-sticky-price.is-visible {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body > .asg-config-section-footer-nav,
    body #asg-mobile-sticky-price,
    #asg-configuratore-wrapper .asg-ux-journey-step {
        transition: none !important;
        animation: none !important;
    }
}


/* Phase 2.3.4 - narrow dock, vertical steps, fixed nav final */
#asg-configuratore-wrapper.asg-state-configurator .asg-grid {
    grid-template-columns: minmax(0, 1fr) minmax(500px, 620px) !important;
    grid-template-areas:
        "viewer controls"
        "dock controls" !important;
    gap: 24px !important;
    align-items: start !important;
}

/* Dock prezzo: stesso schema, ma largo quanto il viewer, non tutto il blocco pagina. */
#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
    grid-area: dock !important;
    grid-column: 1 / 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 0 !important;
    padding: 0 !important;
    align-self: start !important;
    justify-self: stretch !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px 30px 20px !important;
    border-radius: 28px !important;
    grid-template-columns: minmax(210px, .72fr) minmax(360px, 1fr) !important;
    grid-template-areas:
        "price actions"
        "summary summary"
        "footer footer" !important;
    gap: 16px 28px !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
    min-height: 72px !important;
    gap: 5px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
    font-size: 12px !important;
    letter-spacing: .13em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
    font-size: clamp(48px, 4vw, 66px) !important;
    line-height: .86 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
    margin-right: 7px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
    gap: 14px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
    min-height: 58px !important;
    height: 58px !important;
    padding: 0 18px !important;
    border-radius: 20px !important;
    font-size: 14px !important;
    line-height: 1.06 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > #asg-config-summary-bar {
    padding-top: 15px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
    grid-template-columns: 42px minmax(0, 1fr) !important;
    gap: 10px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
    padding-left: 16px !important;
    margin-left: 16px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    border-radius: 13px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
    font-size: 10px !important;
    letter-spacing: .1em !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
    font-size: clamp(12px, .9vw, 16px) !important;
    line-height: 1.12 !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-footer {
    padding-top: 12px !important;
    gap: 14px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
    font-size: 11px !important;
    line-height: 1.3 !important;
    max-height: 30px !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
    font-size: 15px !important;
}

/* Barra step: verticale a destra, nell'area segnata, solo durante configurazione. */
#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    position: fixed !important;
    top: 184px !important;
    right: 22px !important;
    bottom: 132px !important;
    left: auto !important;
    width: 76px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 8px !important;
    z-index: 99930 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    border-radius: 24px !important;
    background: rgba(4, 10, 24, .74) !important;
    border: 1px solid rgba(98, 129, 220, .26) !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .34) !important;
    backdrop-filter: blur(14px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(18px) scale(.98) !important;
    pointer-events: none !important;
    transition: opacity .24s ease, transform .24s ease, visibility .24s ease !important;
}

body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(0) scale(1) !important;
    pointer-events: auto !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    height: 56px !important;
    padding: 6px 4px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    border-radius: 17px !important;
    font-size: 9px !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: hidden !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step strong {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 10px !important;
    margin: 0 !important;
}

/* Navigazione fixed reale: sempre nel viewport quando il configuratore è visibile. */
body > .asg-config-section-footer-nav,
#asg-config-section-footer-nav.asg-config-section-footer-nav {
    position: fixed !important;
    left: 50% !important;
    bottom: 22px !important;
    width: min(560px, calc(100vw - 44px)) !important;
    padding: 8px !important;
    border-radius: 22px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    background: rgba(3, 10, 24, .90) !important;
    border: 1px solid rgba(112, 139, 220, .30) !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .46) !important;
    backdrop-filter: blur(14px) !important;
    z-index: 99980 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate(-50%, 18px) scale(.98) !important;
    transition: opacity .24s ease, transform .24s ease, visibility .24s ease !important;
}

body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate(-50%, 0) scale(1) !important;
}

body > .asg-config-section-footer-nav .asg-config-step-btn {
    height: 54px !important;
    min-height: 54px !important;
    padding: 0 16px !important;
    border-radius: 16px !important;
}

/* Prezzo sticky: animato, separato dai bottoni. */
body #asg-mobile-sticky-price {
    bottom: 92px !important;
    right: 112px !important;
    z-index: 99970 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(14px) scale(.98) !important;
    transition: opacity .24s ease, transform .24s ease, visibility .24s ease !important;
}

body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
}

@media (max-width: 1380px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: minmax(0, 1fr) minmax(440px, 540px) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
        grid-template-columns: minmax(190px, .72fr) minmax(320px, 1fr) !important;
        padding: 22px 26px 18px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        font-size: 13px !important;
    }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: 1fr !important;
        grid-template-areas: "viewer" "controls" "dock" !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
        left: 12px !important;
        right: 12px !important;
        top: 74px !important;
        bottom: auto !important;
        width: auto !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        border-radius: 18px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step {
        min-width: 92px !important;
        height: 44px !important;
        min-height: 44px !important;
        flex-direction: row !important;
        font-size: 10px !important;
    }
}

@media (max-width: 640px) {
    body > .asg-config-section-footer-nav {
        width: calc(100vw - 20px) !important;
        bottom: 14px !important;
    }
    body #asg-mobile-sticky-price.is-visible {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey,
    body > .asg-config-section-footer-nav,
    body #asg-mobile-sticky-price {
        transition: none !important;
        animation: none !important;
    }
}


/* Phase 2.3.5 - freeze dock, polish dropdown, side steps, fixed nav animation */
#asg-configuratore-wrapper.asg-state-models .asg-controls-body,
#asg-configuratore-wrapper.asg-state-models .asg-models-grid,
#asg-configuratore-wrapper.asg-state-models .asg-model-card {
    overscroll-behavior: auto !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-filter-shell {
    isolation: isolate !important;
    z-index: 600 !important;
}

#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field.has-asg-custom-select,
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field:first-child {
    z-index: 720 !important;
}

#asg-configuratore-wrapper .asg-custom-select {
    position: relative !important;
    width: 100% !important;
    z-index: 730 !important;
}

#asg-configuratore-wrapper .asg-custom-select-toggle {
    width: 100% !important;
    height: 52px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(107, 137, 224, .28) !important;
    background: linear-gradient(180deg, rgba(16, 27, 55, .98), rgba(10, 18, 39, .98)) !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), 0 10px 24px rgba(0,0,0,.18) !important;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

#asg-configuratore-wrapper .asg-custom-select.is-open .asg-custom-select-toggle {
    border-color: rgba(91, 145, 255, .72) !important;
    box-shadow: 0 0 0 3px rgba(72, 132, 255, .16), 0 18px 44px rgba(0,0,0,.34) !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;
    width: min(280px, 100%) !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 10px !important;
    border-radius: 20px !important;
    background: linear-gradient(180deg, rgba(13, 25, 55, .99), rgba(5, 13, 30, .99)) !important;
    border: 1px solid rgba(104, 137, 230, .38) !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.52), 0 0 0 1px rgba(255,255,255,.03) inset !important;
    transform-origin: top left !important;
    animation: asgSelectMenuOpen .18s cubic-bezier(.2,.9,.22,1) both !important;
}

#asg-configuratore-wrapper .asg-custom-select-menu::before {
    content: '';
    position: absolute;
    left: 26px;
    top: -7px;
    width: 12px;
    height: 12px;
    transform: rotate(45deg);
    background: rgba(13, 25, 55, .99);
    border-left: 1px solid rgba(104, 137, 230, .38);
    border-top: 1px solid rgba(104, 137, 230, .38);
}

#asg-configuratore-wrapper .asg-custom-select-option,
#asg-configuratore-wrapper .asg-custom-select-menu button {
    min-height: 42px !important;
    border-radius: 12px !important;
    padding: 0 14px !important;
    transition: transform .16s ease, background .16s ease, color .16s ease !important;
}

#asg-configuratore-wrapper .asg-custom-select-option:hover,
#asg-configuratore-wrapper .asg-custom-select-menu button:hover {
    transform: translateX(3px) !important;
    background: rgba(66, 118, 255, .18) !important;
}

@keyframes asgSelectMenuOpen {
    0% { opacity: 0; transform: translateY(-8px) scale(.97); filter: blur(2px); }
    100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

/* Side step bar: shorter, centered and justified. */
#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    top: 50% !important;
    right: 24px !important;
    bottom: auto !important;
    height: min(430px, calc(100vh - 240px)) !important;
    min-height: 360px !important;
    width: 70px !important;
    padding: 10px 8px !important;
    justify-content: space-between !important;
    gap: 6px !important;
    transform: translate(16px, -50%) scale(.98) !important;
}

body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
    transform: translate(0, -50%) scale(1) !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step {
    min-height: 48px !important;
    height: 48px !important;
    border-radius: 15px !important;
    font-size: 8.5px !important;
}

#asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey-step strong {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    font-size: 9px !important;
}

/* Fixed next/prev: visible in viewport while configurator is active. */
body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav {
    animation: asgFixedNavIn .26s cubic-bezier(.19,1,.22,1) both !important;
}

body:not(.asg-configurator-fixed-ui-active) > .asg-config-section-footer-nav {
    animation: asgFixedNavOut .18s ease both !important;
}

@keyframes asgFixedNavIn {
    from { opacity: 0; transform: translate(-50%, 22px) scale(.96); filter: blur(4px); }
    to { opacity: 1; transform: translate(-50%, 0) scale(1); filter: blur(0); }
}

@keyframes asgFixedNavOut {
    from { opacity: 1; transform: translate(-50%, 0) scale(1); filter: blur(0); }
    to { opacity: 0; transform: translate(-50%, 18px) scale(.98); filter: blur(2px); }
}

/* Sticky price entrance animation only; dock price is intentionally untouched. */
body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible {
    animation: asgStickyPriceIn .28s cubic-bezier(.19,1,.22,1) both !important;
}

@keyframes asgStickyPriceIn {
    0% { opacity: 0; transform: translateY(18px) scale(.94); filter: blur(4px); }
    70% { opacity: 1; transform: translateY(-2px) scale(1.015); filter: blur(0); }
    100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

#asg-configuratore-wrapper .asg-shadow-popover {
    position: fixed !important;
    top: auto !important;
    right: clamp(96px, 8vw, 150px) !important;
    bottom: 96px !important;
    left: auto !important;
    width: min(420px, calc(100vw - 40px)) !important;
    max-width: min(420px, calc(100vw - 40px)) !important;
    border-radius: 24px !important;
    background: linear-gradient(180deg, rgba(11, 22, 48, .98), rgba(4, 11, 26, .98)) !important;
    border: 1px solid rgba(103, 139, 255, .35) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.04) inset !important;
    transform-origin: bottom right !important;
    animation: asgConfigPanelIn .22s cubic-bezier(.19,1,.22,1) both !important;
    z-index: 99990 !important;
}

#asg-configuratore-wrapper .asg-shadow-popover[hidden] {
    display: none !important;
}

@keyframes asgConfigPanelIn {
    from { opacity: 0; transform: translateY(14px) scale(.96); filter: blur(3px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@media (max-width: 1100px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
        top: 74px !important;
        right: 12px !important;
        left: 12px !important;
        height: auto !important;
        min-height: 0 !important;
        width: auto !important;
        justify-content: flex-start !important;
        transform: translateY(-8px) scale(.98) !important;
    }
    body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
        transform: translateY(0) scale(1) !important;
    }
    #asg-configuratore-wrapper .asg-shadow-popover {
        right: 14px !important;
        left: 14px !important;
        bottom: 86px !important;
        width: auto !important;
        max-width: none !important;
    }
}


/* v2.3.9 safe overlay/admin publish patch: do not move modal DOM, do not touch price dock */
#asg-configuratore-wrapper .asg-shadow-popover {
    position: fixed !important;
    left: var(--asg-shadow-popover-left, auto) !important;
    top: var(--asg-shadow-popover-top, 96px) !important;
    right: auto !important;
    bottom: auto !important;
    width: var(--asg-shadow-popover-width, min(380px, calc(100vw - 24px))) !important;
    max-width: calc(100vw - 24px) !important;
    z-index: 2147482500 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(10px) scale(.97) !important;
    transform-origin: top right !important;
    transition: opacity .18s ease, transform .18s cubic-bezier(.19, 1, .22, 1), visibility .18s ease !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg, rgba(9, 20, 44, .98), rgba(4, 10, 24, .98)) !important;
    border: 1px solid rgba(101, 138, 255, .32) !important;
    box-shadow: 0 22px 60px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.05) !important;
}

#asg-configuratore-wrapper .asg-shadow-popover.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) scale(1) !important;
}

#asg-configuratore-wrapper .asg-shadow-popover[aria-hidden="true"]:not(.is-open) {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

#asg-configuratore-wrapper .asg-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: clamp(14px, 2vw, 28px) !important;
    background: rgba(0, 0, 0, .76) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    isolation: isolate !important;
}

#asg-configuratore-wrapper .asg-modal-overlay.active {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

#asg-configuratore-wrapper .asg-modal-content.asg-modal-wide {
    position: relative !important;
    z-index: 2147483001 !important;
    max-height: calc(100vh - 32px) !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
}

html.asg-lead-modal-open,
body.asg-lead-modal-open {
    overflow: hidden !important;
}

@media (max-width: 768px) {
    #asg-configuratore-wrapper .asg-shadow-popover {
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        max-width: none !important;
    }
}


/* v2.4.0 final overlay portal safety */
body > #asg-lead-modal.asg-modal-overlay,
body > .asg-modal-overlay.asg-modal-portalized {
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100vw !important;
    height: 100vh !important;
    padding: clamp(14px, 2vw, 28px) !important;
    z-index: 2147483000 !important;
    background: rgba(0, 0, 0, .78) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    isolation: isolate !important;
}

body > #asg-lead-modal.asg-modal-overlay.active,
body > .asg-modal-overlay.asg-modal-portalized.active {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

body > #asg-lead-modal .asg-modal-content,
body > .asg-modal-overlay.asg-modal-portalized .asg-modal-content {
    position: relative !important;
    z-index: 2147483001 !important;
    max-height: calc(100vh - 32px) !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
}

body > #asg-shadow-popover.asg-shadow-popover,
body > .asg-shadow-popover.asg-shadow-popover-portalized {
    position: fixed !important;
    left: var(--asg-shadow-popover-left, 12px) !important;
    top: var(--asg-shadow-popover-top, 96px) !important;
    right: auto !important;
    bottom: auto !important;
    width: var(--asg-shadow-popover-width, min(360px, calc(100vw - 24px))) !important;
    max-width: calc(100vw - 24px) !important;
    z-index: 2147482500 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(8px) scale(.98) !important;
    transform-origin: top left !important;
    transition: opacity .18s ease, transform .18s cubic-bezier(.19,1,.22,1), visibility .18s ease !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg, rgba(9, 20, 44, .98), rgba(4, 10, 24, .98)) !important;
    border: 1px solid rgba(101, 138, 255, .32) !important;
    box-shadow: 0 22px 60px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.05) !important;
}

body > #asg-shadow-popover.asg-shadow-popover.is-open,
body > .asg-shadow-popover.asg-shadow-popover-portalized.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) scale(1) !important;
}

body > #asg-shadow-popover .asg-shadow-popover-grid,
body > .asg-shadow-popover.asg-shadow-popover-portalized .asg-shadow-popover-grid {
    display: grid !important;
    gap: 14px !important;
}

body > #asg-shadow-popover .asg-shadow-popover-head,
body > .asg-shadow-popover.asg-shadow-popover-portalized .asg-shadow-popover-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
}

html.asg-lead-modal-open,
body.asg-lead-modal-open {
    overflow: hidden !important;
}

@media (max-width: 768px) {
    body > #asg-shadow-popover.asg-shadow-popover,
    body > .asg-shadow-popover.asg-shadow-popover-portalized {
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        max-width: none !important;
    }
}


/* v2.4.1 restore portalized overlay styling */
body > #asg-lead-modal.asg-modal-overlay,
body > #asg-lead-modal.asg-modal-overlay.asg-modal-portalized {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    padding: clamp(18px, 2.4vw, 34px) !important;
    z-index: 2147483000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0, 0, 0, 0.78) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    isolation: isolate !important;
}

body > #asg-lead-modal.asg-modal-overlay.active,
body > #asg-lead-modal.asg-modal-overlay.asg-modal-portalized.active {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

body > #asg-lead-modal .asg-modal-content.asg-modal-wide {
    width: min(1120px, calc(100vw - 48px)) !important;
    max-height: min(92vh, 920px) !important;
    display: flex !important;
    flex-direction: row !important;
    position: relative !important;
    overflow: hidden !important;
    border-radius: 30px !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    background:
        radial-gradient(circle at top left, rgba(0,212,170,0.08), transparent 28%),
        radial-gradient(circle at top right, rgba(91,154,255,0.10), transparent 28%),
        linear-gradient(180deg, #111826 0%, #0a101b 100%) !important;
    box-shadow: 0 38px 100px rgba(0,0,0,0.58), inset 0 1px 0 rgba(255,255,255,0.04) !important;
    transform: translateY(0) scale(1) !important;
}

body > #asg-lead-modal .asg-modal-close-btn {
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;
    z-index: 20 !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 14px !important;
    border: 0 !important;
    background: rgba(255,255,255,0.07) !important;
    color: #9aa9bc !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
}

body > #asg-lead-modal .asg-modal-left {
    flex: 0 0 330px !important;
    padding: 34px 30px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 22px !important;
    background:
        radial-gradient(circle at top left, rgba(0,212,170,0.16), transparent 34%),
        linear-gradient(180deg, rgba(11,19,33,0.84) 0%, rgba(8,14,24,0.98) 100%) !important;
    border-right: 1px solid rgba(255,255,255,0.06) !important;
}

body > #asg-lead-modal .asg-modal-eyebrow {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: fit-content !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: #dffcff !important;
    background: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
}

body > #asg-lead-modal .asg-modal-icon {
    width: 62px !important;
    height: 62px !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, #00d4aa, #0099ff) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 24px !important;
    box-shadow: 0 16px 34px rgba(0,212,170,0.22) !important;
}

body > #asg-lead-modal .asg-modal-copy {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}

body > #asg-lead-modal .asg-modal-copy h3,
body > #asg-lead-modal .asg-modal-left h3 {
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(30px, 3vw, 40px) !important;
    line-height: .96 !important;
    letter-spacing: -0.06em !important;
    font-weight: 900 !important;
}

body > #asg-lead-modal .asg-modal-copy p,
body > #asg-lead-modal .asg-modal-left p {
    margin: 0 !important;
    color: #8ca0bb !important;
    font-size: 15px !important;
    line-height: 1.7 !important;
}

body > #asg-lead-modal .asg-modal-stats {
    display: grid !important;
    gap: 12px !important;
}

body > #asg-lead-modal .asg-modal-stat-card,
body > #asg-lead-modal .asg-modal-card {
    border: 1px solid rgba(255,255,255,0.07) !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,0.035) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.02) !important;
}

body > #asg-lead-modal .asg-modal-stat-card {
    padding: 14px 14px 15px !important;
}

body > #asg-lead-modal .asg-modal-stat-card span,
body > #asg-lead-modal .asg-modal-stat-label {
    display: block !important;
    color: #7e90a8 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    margin-bottom: 8px !important;
}

body > #asg-lead-modal .asg-modal-stat-card strong {
    display: block !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
}

body > #asg-lead-modal .asg-modal-left-footer {
    margin-top: auto !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(255,255,255,0.08) !important;
    color: #7ef2d6 !important;
    font-size: 12px !important;
    line-height: 1.6 !important;
}

body > #asg-lead-modal .asg-modal-left-footer a { color: #7ef2d6 !important; font-weight: 800 !important; }

body > #asg-lead-modal .asg-modal-right {
    flex: 1 1 auto !important;
    padding: 34px 34px 30px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    overflow-y: auto !important;
    min-width: 0 !important;
}

body > #asg-lead-modal .asg-modal-card-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-bottom: 16px !important;
}

body > #asg-lead-modal .asg-modal-card {
    padding: 18px !important;
}

body > #asg-lead-modal .asg-modal-card-option,
body > #asg-lead-modal #asg-contact-message-card {
    grid-column: 1 / -1 !important;
}

body > #asg-lead-modal .asg-modal-section-title {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 14px !important;
    color: #7e90a8 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
}

body > #asg-lead-modal .asg-modal-section-title i { color: #00d4aa !important; }

body > #asg-lead-modal .asg-field-group { margin-bottom: 16px !important; }
body > #asg-lead-modal .asg-field-group:last-child { margin-bottom: 0 !important; }
body > #asg-lead-modal .asg-field-group label {
    display: block !important;
    margin-bottom: 8px !important;
    color: #7e90a8 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}

body > #asg-lead-modal .asg-modal-input {
    width: 100% !important;
    min-height: 54px !important;
    padding: 15px 16px !important;
    border-radius: 16px !important;
    background: rgba(4,10,18,0.62) !important;
    border: 1px solid rgba(140,161,190,0.22) !important;
    color: #eef5ff !important;
    font-size: 15px !important;
    font-family: inherit !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    pointer-events: auto !important;
}

body > #asg-lead-modal .asg-modal-input:focus {
    border-color: rgba(0,212,170,.72) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0,212,170,.14) !important;
}

body > #asg-lead-modal .asg-modal-input::placeholder { color: #60738c !important; }

body > #asg-lead-modal .asg-toggle-option {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    min-height: 62px !important;
    padding: 14px 16px !important;
    border-radius: 18px !important;
    background: rgba(4,11,22,0.58) !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    cursor: pointer !important;
}

body > #asg-lead-modal .asg-toggle-option input[type="checkbox"] { display: none !important; }
body > #asg-lead-modal .asg-toggle-slider {
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 24px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.12) !important;
    position: relative !important;
}
body > #asg-lead-modal .asg-toggle-slider::after {
    content: '' !important;
    position: absolute !important;
    width: 18px !important;
    height: 18px !important;
    left: 3px !important;
    top: 3px !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.75) !important;
    transition: left .2s ease, background .2s ease !important;
}
body > #asg-lead-modal .asg-toggle-option input:checked + .asg-toggle-slider {
    background: #00d4aa !important;
}
body > #asg-lead-modal .asg-toggle-option input:checked + .asg-toggle-slider::after {
    left: 21px !important;
    background: #fff !important;
}
body > #asg-lead-modal .asg-toggle-label {
    color: #eaf2fc !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

body > #asg-lead-modal .asg-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 10px !important;
}
body > #asg-lead-modal .asg-choice-pill { position: relative !important; display: block !important; }
body > #asg-lead-modal .asg-choice-pill input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
body > #asg-lead-modal .asg-choice-pill span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 48px !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    background: rgba(8,16,30,0.88) !important;
    color: #c6d3e4 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: center !important;
}
body > #asg-lead-modal .asg-choice-pill input:checked + span {
    border-color: rgba(0,212,170,0.42) !important;
    background: linear-gradient(135deg, rgba(0,212,170,0.18), rgba(37,99,235,0.16)) !important;
    color: #fff !important;
}

body > #asg-lead-modal .asg-upload-box {
    display: block !important;
    border: 1px dashed rgba(255,255,255,0.14) !important;
    border-radius: 18px !important;
    padding: 16px !important;
    background: rgba(4,11,22,0.46) !important;
    cursor: pointer !important;
}
body > #asg-lead-modal .asg-upload-box input { display: none !important; }
body > #asg-lead-modal .asg-upload-copy {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    color: #d7e4f5 !important;
    text-align: center !important;
}

body > #asg-lead-modal .asg-field-group-consent { margin: 0 !important; }
body > #asg-lead-modal .asg-choice-pill-consent span {
    justify-content: flex-start !important;
    min-height: 44px !important;
}
body > #asg-lead-modal .asg-choice-pill-consent a { color: #87d7ff !important; font-weight: 800 !important; }

body > #asg-lead-modal .asg-lead-modal-status {
    padding: 12px 14px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    background: rgba(255,255,255,.05) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #d8e7fa !important;
}

body > #asg-lead-modal .asg-modal-submit-btn {
    min-height: 60px !important;
    border: 0 !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, #00d4aa, #1687ff) !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    box-shadow: 0 20px 44px rgba(0,153,255,0.22) !important;
}

body > #asg-lead-modal.is-contact-mode #asg-contact-message-card { display: block !important; }
body > #asg-lead-modal.is-contact-mode #asg-pdf-options-card,
body > #asg-lead-modal.is-contact-mode #asg-modal-stats { display: none !important; }

/* Portalized viewer settings popover: preserve original visual language after moving outside wrapper */
body > #asg-shadow-popover.asg-shadow-popover,
body > #asg-shadow-popover.asg-shadow-popover.asg-shadow-popover-portalized {
    position: fixed !important;
    left: var(--asg-shadow-popover-left, 12px) !important;
    top: var(--asg-shadow-popover-top, 96px) !important;
    right: auto !important;
    bottom: auto !important;
    width: var(--asg-shadow-popover-width, min(360px, calc(100vw - 24px))) !important;
    max-width: calc(100vw - 24px) !important;
    z-index: 2147482500 !important;
    padding: 18px !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg, rgba(9, 20, 44, .98), rgba(4, 10, 24, .98)) !important;
    border: 1px solid rgba(101, 138, 255, .32) !important;
    box-shadow: 0 22px 60px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.05) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(8px) scale(.98) !important;
    transform-origin: top left !important;
    transition: opacity .18s ease, transform .18s cubic-bezier(.19,1,.22,1), visibility .18s ease !important;
}
body > #asg-shadow-popover.asg-shadow-popover.is-open,
body > #asg-shadow-popover.asg-shadow-popover.asg-shadow-popover-portalized.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) scale(1) !important;
}
body > #asg-shadow-popover .asg-shadow-popover-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-bottom: 16px !important;
}
body > #asg-shadow-popover .asg-shadow-popover-head strong {
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
body > #asg-shadow-popover .asg-shadow-popover-close {
    width: 34px !important;
    height: 34px !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.06) !important;
    color: #b9c7da !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 20px !important;
}
body > #asg-shadow-popover .asg-shadow-popover-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
}
body > #asg-shadow-popover .asg-shadow-field {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 14px !important;
    border-radius: 16px !important;
    background: rgba(4,11,22,.62) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #d8e6f7 !important;
}
body > #asg-shadow-popover .asg-shadow-field span {
    font-size: 12px !important;
    color: #9aacbf !important;
    font-weight: 800 !important;
}
body > #asg-shadow-popover .asg-shadow-field-toggle {
    justify-content: center !important;
    align-items: flex-start !important;
}
body > #asg-shadow-popover .asg-shadow-field input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    accent-color: #2f7dff !important;
}
body > #asg-shadow-popover .asg-shadow-orientation-pills {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
body > #asg-shadow-popover .asg-shadow-orientation-pill {
    min-height: 34px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,.09) !important;
    background: rgba(255,255,255,.04) !important;
    color: #dbe8fa !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
}
body > #asg-shadow-popover .asg-shadow-orientation-pill.is-active {
    background: linear-gradient(135deg, rgba(47,125,255,.92), rgba(20,184,166,.72)) !important;
    border-color: rgba(130,180,255,.6) !important;
    color: #fff !important;
}
body > #asg-shadow-popover .asg-shadow-native-select {
    display: none !important;
}
body > #asg-shadow-popover input[type="range"] {
    width: 100% !important;
    accent-color: #5a92ff !important;
}
body > #asg-shadow-popover #asg-shadow-hour-label {
    color: #fff !important;
    font-size: 14px !important;
}
body > #asg-shadow-popover .asg-shadow-field:has(input[type="range"]) {
    grid-column: 1 / -1 !important;
}

/* Final model category dropdown polish */
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-shell {
    overflow: visible !important;
    position: relative !important;
    z-index: 140 !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field.has-asg-custom-select,
#asg-configuratore-wrapper.asg-state-models .asg-model-filter-field:first-child {
    overflow: visible !important;
    isolation: isolate !important;
    z-index: 180 !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select {
    position: relative !important;
    z-index: 190 !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-toggle {
    height: 54px !important;
    border-radius: 18px !important;
    background: linear-gradient(180deg, rgba(12,24,50,.98), rgba(7,15,34,.98)) !important;
    border: 1px solid rgba(98,137,255,.28) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 12px 30px rgba(0,0,0,.22) !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select.is-open .asg-custom-select-toggle {
    border-color: rgba(86,150,255,.78) !important;
    border-bottom-left-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;
    width: min(286px, calc(100vw - 36px)) !important;
    max-height: 248px !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
    z-index: 99999 !important;
    padding: 10px !important;
    border-radius: 20px !important;
    background: linear-gradient(180deg, rgba(12,27,61,.99), rgba(6,15,34,.99)) !important;
    border: 1px solid rgba(91,137,255,.34) !important;
    box-shadow: 0 26px 70px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.05) !important;
    transform-origin: top left !important;
    animation: asgModelSelectIn .18s cubic-bezier(.19,1,.22,1) both !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu[hidden] { display: none !important; }
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button {
    width: 100% !important;
    min-height: 42px !important;
    padding: 10px 12px !important;
    border-radius: 13px !important;
    border: 0 !important;
    background: transparent !important;
    color: #d9e6f7 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    text-align: left !important;
    cursor: pointer !important;
    transition: background .16s ease, color .16s ease, transform .16s ease !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button:hover,
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button.is-selected {
    background: rgba(65,118,255,.26) !important;
    color: #fff !important;
    transform: translateX(2px) !important;
}
@keyframes asgModelSelectIn {
    from { opacity: 0; transform: translateY(-6px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 900px) {
    body > #asg-lead-modal .asg-modal-content.asg-modal-wide {
        width: min(100%, 460px) !important;
        max-height: 92dvh !important;
        flex-direction: column !important;
        overflow: hidden !important;
        border-radius: 24px !important;
    }
    body > #asg-lead-modal .asg-modal-left {
        flex: 0 0 auto !important;
        padding: 18px 18px 12px !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    }
    body > #asg-lead-modal .asg-modal-stats,
    body > #asg-lead-modal .asg-modal-left-footer,
    body > #asg-lead-modal .asg-modal-copy p { display: none !important; }
    body > #asg-lead-modal .asg-modal-copy h3,
    body > #asg-lead-modal .asg-modal-left h3 {
        font-size: 2rem !important;
    }
    body > #asg-lead-modal .asg-modal-right {
        padding: 14px !important;
    }
    body > #asg-lead-modal .asg-modal-card-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    body > #asg-shadow-popover .asg-shadow-popover-grid {
        grid-template-columns: 1fr !important;
    }
}

/* v2.4.2 polish: model select + shadow popover controls */
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-toggle {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 0 16px !important;
    min-height: 56px !important;
    border-radius: 18px !important;
    background:
        linear-gradient(180deg, rgba(12,24,50,.96), rgba(7,15,34,.98)) !important;
    border: 1px solid rgba(88,138,255,.24) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.04),
        0 14px 34px rgba(0,0,0,.24) !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-toggle > span {
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    color: #f3f7ff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-toggle > i {
    width: 34px !important;
    height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, rgba(72,132,255,.22), rgba(0,212,170,.12)) !important;
    border: 1px solid rgba(104,156,255,.18) !important;
    color: #cfe0ff !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05) !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select.is-open .asg-custom-select-toggle {
    border-color: rgba(86,150,255,.7) !important;
    box-shadow:
        0 0 0 3px rgba(72,132,255,.14),
        0 20px 46px rgba(0,0,0,.34),
        inset 0 1px 0 rgba(255,255,255,.05) !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    border-radius: 14px !important;
}
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button:hover,
#asg-configuratore-wrapper.asg-state-models .asg-custom-select-menu button.is-selected {
    background: linear-gradient(135deg, rgba(72,132,255,.28), rgba(0,212,170,.14)) !important;
    border-color: rgba(98,160,255,.26) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.04) !important;
    color: #fff !important;
    transform: translateX(2px) !important;
}

body > #asg-shadow-popover .asg-shadow-field {
    position: relative !important;
    border-radius: 18px !important;
    padding: 16px !important;
    background:
        linear-gradient(180deg, rgba(10,21,45,.92), rgba(7,14,31,.92)) !important;
    border: 1px solid rgba(255,255,255,.07) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 14px 30px rgba(0,0,0,.16) !important;
}
body > #asg-shadow-popover .asg-shadow-field span {
    color: #b7c7dc !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: .01em !important;
}
body > #asg-shadow-popover .asg-shadow-field-toggle {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 12px !important;
}
body > #asg-shadow-popover .asg-shadow-field-toggle label,
body > #asg-shadow-popover .asg-shadow-field-toggle .asg-shadow-toggle-label,
body > #asg-shadow-popover .asg-shadow-field-toggle small {
    color: #edf4ff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}
body > #asg-shadow-popover .asg-shadow-field input[type="checkbox"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 22px !important;
    height: 22px !important;
    margin: 0 !important;
    border-radius: 7px !important;
    border: 1px solid rgba(124,162,255,.34) !important;
    background: linear-gradient(180deg, rgba(16,27,52,.96), rgba(8,16,34,.98)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 10px 22px rgba(0,0,0,.12) !important;
    position: relative !important;
    cursor: pointer !important;
}
body > #asg-shadow-popover .asg-shadow-field input[type="checkbox"]:checked {
    border-color: rgba(102,174,255,.68) !important;
    background: linear-gradient(135deg, rgba(72,132,255,.96), rgba(0,212,170,.82)) !important;
    box-shadow: 0 10px 26px rgba(32,112,255,.28), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
body > #asg-shadow-popover .asg-shadow-field input[type="checkbox"]:checked::after {
    content: '' !important;
    position: absolute !important;
    left: 7px !important;
    top: 3px !important;
    width: 5px !important;
    height: 10px !important;
    border: solid #fff !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
}
body > #asg-shadow-popover .asg-shadow-orientation-pills {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
body > #asg-shadow-popover .asg-shadow-orientation-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 40px !important;
    padding: 0 12px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    background: linear-gradient(180deg, rgba(17,28,52,.9), rgba(10,18,36,.96)) !important;
    color: #e5efff !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 10px 24px rgba(0,0,0,.12) !important;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
}
body > #asg-shadow-popover .asg-shadow-orientation-pill:hover {
    transform: translateY(-1px) !important;
    border-color: rgba(126,166,255,.3) !important;
    background: linear-gradient(180deg, rgba(24,38,68,.94), rgba(12,22,42,.98)) !important;
    box-shadow: 0 12px 28px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.04) !important;
}
body > #asg-shadow-popover .asg-shadow-orientation-pill.is-active {
    background: linear-gradient(135deg, rgba(78,137,255,.98), rgba(0,212,170,.78)) !important;
    border-color: rgba(141,192,255,.7) !important;
    color: #fff !important;
    box-shadow: 0 14px 30px rgba(45,115,255,.26), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
body > #asg-shadow-popover input[type="range"] {
    accent-color: #64a2ff !important;
}

/* v2.4.3 - consultation modal restore only */
body > #asg-lead-modal.is-contact-mode.asg-modal-overlay {
    z-index: 999999 !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-content.asg-modal-wide {
    width: min(1060px, calc(100vw - 52px)) !important;
    max-height: min(860px, calc(100vh - 64px)) !important;
    display: grid !important;
    grid-template-columns: 315px minmax(0, 1fr) !important;
    gap: 0 !important;
    overflow: hidden !important;
    border-radius: 24px !important;
    background:
        linear-gradient(90deg, rgba(8, 25, 37, .97) 0 315px, rgba(17, 24, 39, .97) 315px),
        radial-gradient(circle at 20% 12%, rgba(0,212,170,.14), transparent 35%) !important;
    border: 1px solid rgba(135, 165, 255, .18) !important;
    box-shadow: 0 44px 120px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.04) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-left {
    min-height: 0 !important;
    padding: 42px 32px 32px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 22px !important;
    background:
        radial-gradient(circle at 35% 12%, rgba(0,212,170,.18), transparent 36%),
        linear-gradient(180deg, rgba(6, 31, 39, .62), rgba(5, 17, 31, .72)) !important;
    border-right: 1px solid rgba(255,255,255,.06) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-eyebrow {
    align-self: flex-start !important;
    min-height: 36px !important;
    padding: 0 15px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(126, 242, 214, .18) !important;
    color: #dffcf7 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-icon {
    width: 64px !important;
    height: 64px !important;
    border-radius: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, #00d4aa, #0099ff) !important;
    color: #fff !important;
    box-shadow: 0 18px 40px rgba(0, 212, 170, .28) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-copy h3 {
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(28px, 3vw, 40px) !important;
    line-height: .94 !important;
    letter-spacing: -.06em !important;
    font-weight: 950 !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-copy p {
    max-width: 245px !important;
    color: rgba(220, 232, 247, .72) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    margin: 16px 0 0 !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-stats {
    display: grid !important;
    gap: 12px !important;
    margin-top: 8px !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-stat-card {
    display: grid !important;
    gap: 6px !important;
    padding: 18px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.045) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-stat-card .asg-modal-stat-label,
body > #asg-lead-modal.is-contact-mode .asg-modal-stat-card span {
    color: #93a5bd !important;
    font-size: 11px !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    font-weight: 900 !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-stat-card strong {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 850 !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-left-footer {
    margin-top: auto !important;
    display: block !important;
    padding-top: 22px !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    color: #7ef2d6 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-right {
    padding: 36px 34px 34px !important;
    max-height: min(860px, calc(100vh - 64px)) !important;
    overflow-y: auto !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(120,150,190,.5) transparent !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-card-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-card,
body > #asg-lead-modal.is-contact-mode #asg-contact-message-card {
    display: block !important;
    padding: 22px !important;
    border-radius: 22px !important;
    background:
        linear-gradient(180deg, rgba(20,29,46,.88), rgba(15,22,36,.92)) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 20px 50px rgba(0,0,0,.18) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-section-title {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    color: #a9bdd4 !important;
    font-size: 13px !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    font-weight: 900 !important;
    margin-bottom: 16px !important;
}

body > #asg-lead-modal.is-contact-mode .asg-field-group {
    margin-bottom: 16px !important;
}

body > #asg-lead-modal.is-contact-mode .asg-field-group label {
    display: block !important;
    color: #8ea2bc !important;
    font-size: 11px !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    font-weight: 900 !important;
    margin-bottom: 8px !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-input {
    width: 100% !important;
    height: 54px !important;
    border-radius: 16px !important;
    padding: 0 18px !important;
    color: #eaf3ff !important;
    background: rgba(3, 10, 22, .72) !important;
    border: 1px solid rgba(255,255,255,.09) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-input:focus {
    outline: none !important;
    border-color: rgba(0,212,170,.72) !important;
    box-shadow: 0 0 0 4px rgba(0,212,170,.13), inset 0 1px 0 rgba(255,255,255,.04) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

body > #asg-lead-modal.is-contact-mode .asg-choice-pill span {
    min-height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    background: rgba(5,12,25,.58) !important;
    color: #dce8f7 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .02em !important;
    gap: 9px !important;
}

body > #asg-lead-modal.is-contact-mode .asg-choice-pill input:checked + span {
    background: linear-gradient(135deg, rgba(0,212,170,.28), rgba(0,153,255,.2)) !important;
    border-color: rgba(0,212,170,.7) !important;
    color: #fff !important;
    box-shadow: 0 14px 30px rgba(0,212,170,.13) !important;
}

body > #asg-lead-modal.is-contact-mode .asg-upload-box {
    min-height: 96px !important;
    border-radius: 18px !important;
    border: 1px dashed rgba(151,173,210,.28) !important;
    background: rgba(5,12,25,.42) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body > #asg-lead-modal.is-contact-mode .asg-modal-submit-btn {
    width: 100% !important;
    min-height: 58px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, #00d4aa, #0099ff) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    letter-spacing: .03em !important;
    text-transform: uppercase !important;
    box-shadow: 0 20px 45px rgba(0,153,255,.24) !important;
}

@media (max-width: 900px) {
    body > #asg-lead-modal.is-contact-mode .asg-modal-content.asg-modal-wide {
        width: calc(100vw - 26px) !important;
        grid-template-columns: 1fr !important;
        max-height: calc(100vh - 28px) !important;
    }
    body > #asg-lead-modal.is-contact-mode .asg-modal-left {
        padding: 24px !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
    }
    body > #asg-lead-modal.is-contact-mode .asg-modal-stats,
    body > #asg-lead-modal.is-contact-mode .asg-modal-left-footer,
    body > #asg-lead-modal.is-contact-mode .asg-modal-copy p {
        display: none !important;
    }
    body > #asg-lead-modal.is-contact-mode .asg-choice-grid {
        grid-template-columns: 1fr !important;
    }
}


/* v2.4.4 - mobile recovery + performance pass. Desktop frozen. */
@media (max-width: 768px) {
    html, body {
        overflow-x: hidden !important;
    }

    .asg-plugin-container,
    #asg-configuratore-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    #asg-configuratore-wrapper {
        padding-inline: 10px !important;
        padding-bottom: 92px !important;
        border-radius: 0 !important;
        background: #050a13 !important;
    }

    /* Mobile performance: meno blur/ombre pesanti, stesso look ma più leggero. */
    #asg-configuratore-wrapper .asg-viewer-col,
    #asg-configuratore-wrapper .asg-controls-col,
    #asg-configuratore-wrapper .asg-inline-price-panel,
    #asg-configuratore-wrapper .asg-config-header-shell-v2,
    #asg-configuratore-wrapper .control-group,
    #asg-configuratore-wrapper .asg-model-card,
    #asg-configuratore-wrapper .asg-final-summary-card,
    #asg-configuratore-wrapper .asg-shadow-popover,
    body > #asg-shadow-popover.asg-shadow-popover,
    body > #asg-lead-modal .asg-modal-content {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        box-shadow: 0 14px 34px rgba(0,0,0,.30) !important;
    }

    #asg-configuratore-wrapper .asg-model-card:hover,
    #asg-configuratore-wrapper .asg-config-section:hover,
    #asg-configuratore-wrapper .asg-summary-col:hover {
        transform: none !important;
    }

    #asg-configuratore-wrapper .asg-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-stack,
    #asg-configuratore-wrapper .asg-viewer-col,
    #asg-configuratore-wrapper .asg-controls-col,
    #asg-configuratore-wrapper .asg-viewer-bottom-dock {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Barra step mobile: compatta, leggibile, sticky sotto header. */
    #asg-configuratore-wrapper .asg-ux-journey {
        position: sticky !important;
        top: 68px !important;
        z-index: 1200 !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        width: calc(100vw - 20px) !important;
        max-width: calc(100vw - 20px) !important;
        margin: 0 auto 12px !important;
        padding: 8px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: none !important;
        border-radius: 18px !important;
        background: rgba(8,15,30,.96) !important;
        border: 1px solid rgba(95,145,255,.14) !important;
        transform: none !important;
        inset-inline: auto !important;
        height: auto !important;
    }
    #asg-configuratore-wrapper .asg-ux-journey::-webkit-scrollbar { display: none !important; }
    #asg-configuratore-wrapper .asg-ux-journey-step {
        flex: 0 0 auto !important;
        min-width: 92px !important;
        height: 40px !important;
        padding: 0 12px !important;
        border-radius: 14px !important;
        font-size: 11px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }
    #asg-configuratore-wrapper .asg-ux-journey-step strong {
        width: 22px !important;
        height: 22px !important;
        min-width: 22px !important;
        font-size: 10px !important;
    }

    /* Viewer mobile: altezza controllata, niente tagli assurdi. */
    #asg-configuratore-wrapper .asg-viewer-col {
        height: min(62vh, 470px) !important;
        min-height: 360px !important;
        border-radius: 22px !important;
        overflow: hidden !important;
    }
    #asg-configuratore-wrapper #asg-3d-canvas,
    #asg-configuratore-wrapper #asg-3d-canvas canvas {
        width: 100% !important;
        height: 100% !important;
        min-height: 360px !important;
        display: block !important;
    }
    #asg-configuratore-wrapper .asg-viewer-overlay {
        padding: 10px !important;
        pointer-events: none !important;
    }
    #asg-configuratore-wrapper .asg-viewer-top-info,
    #asg-configuratore-wrapper .asg-viewer-controls {
        pointer-events: auto !important;
    }
    #asg-configuratore-wrapper .asg-viewer-controls {
        left: 10px !important;
        right: 10px !important;
        bottom: 10px !important;
        width: auto !important;
        max-width: none !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        padding: 8px !important;
        border-radius: 20px !important;
        background: rgba(7,13,26,.84) !important;
    }
    #asg-configuratore-wrapper .asg-viewer-controls .btn {
        min-width: 0 !important;
        width: 100% !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 10px !important;
        border-radius: 15px !important;
        font-size: 11px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }
    #asg-configuratore-wrapper .asg-badge-live,
    #asg-configuratore-wrapper .asg-viewer-dimension-chip,
    #asg-configuratore-wrapper .asg-drag-hint {
        transform: scale(.88) !important;
        transform-origin: top left !important;
    }

    /* Header modello: largo, pulito, niente titolo tagliato da icone. */
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-header-shell-v2,
    #asg-configuratore-wrapper .asg-config-header-shell-v2 {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 172px !important;
        margin: 0 auto 14px !important;
        padding: 22px 64px 18px !important;
        border-radius: 24px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        overflow: visible !important;
    }
    #asg-configuratore-wrapper .btn-back-models-hero,
    #asg-configuratore-wrapper #btn-back-to-models {
        position: absolute !important;
        left: 14px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        border-radius: 16px !important;
        z-index: 3 !important;
    }
    #asg-configuratore-wrapper .asg-config-mode-pill-action,
    #asg-configuratore-wrapper #btn-open-config-panel {
        position: absolute !important;
        right: 14px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        border-radius: 17px !important;
        z-index: 3 !important;
    }
    #asg-configuratore-wrapper .asg-config-header-center {
        min-width: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 !important;
    }
    #asg-configuratore-wrapper .asg-config-type-kicker {
        margin-bottom: 10px !important;
        max-width: 100% !important;
        font-size: 10px !important;
    }
    #asg-configuratore-wrapper .asg-config-header-center h2,
    #asg-configuratore-wrapper #asg-dynamic-title {
        display: block !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        font-size: clamp(30px, 9vw, 42px) !important;
        line-height: .96 !important;
        letter-spacing: -.055em !important;
        white-space: normal !important;
        overflow: visible !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
        text-wrap: balance !important;
    }
    #asg-configuratore-wrapper .asg-controls-intro-compact,
    #asg-configuratore-wrapper #asg-dynamic-subtitle {
        max-width: 220px !important;
        margin: 10px auto 0 !important;
        font-size: 12px !important;
        line-height: 1.25 !important;
    }

    /* Pannelli configuratore mobile. */
    #asg-configuratore-wrapper .asg-controls-col {
        border-radius: 24px !important;
        padding: 12px !important;
        overflow: visible !important;
    }
    #asg-configuratore-wrapper .asg-controls-body {
        padding: 0 !important;
        overflow: visible !important;
    }
    #asg-configuratore-wrapper .control-group,
    #asg-configuratore-wrapper .asg-config-section,
    #asg-configuratore-wrapper #asg-section-dimensions {
        width: 100% !important;
        padding: 20px 14px !important;
        border-radius: 22px !important;
        overflow: visible !important;
    }
    #asg-configuratore-wrapper .asg-form-row-lg,
    #asg-configuratore-wrapper #asg-section-dimensions .form-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
    #asg-configuratore-wrapper #asg-section-dimensions .form-col,
    #asg-configuratore-wrapper #asg-section-dimensions .asg-form-col-full {
        width: 100% !important;
        max-width: 100% !important;
    }
    #asg-configuratore-wrapper .asg-stepper-container,
    #asg-configuratore-wrapper .stepper-container {
        width: 100% !important;
        min-width: 0 !important;
        height: 74px !important;
        padding: 0 54px !important;
        border-radius: 18px !important;
        overflow: visible !important;
    }
    #asg-configuratore-wrapper .asg-stepper-container .stepper-value,
    #asg-configuratore-wrapper .stepper-container .stepper-value,
    #asg-configuratore-wrapper .stepper-display {
        font-size: 25px !important;
        line-height: 1 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }
    #asg-configuratore-wrapper .asg-stepper-container button,
    #asg-configuratore-wrapper .stepper-container button,
    #asg-configuratore-wrapper .stepper-btn {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        border-radius: 14px !important;
    }

    /* Dock prezzo mobile: niente sovrapposizioni, più compatto. */
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock > .asg-inline-price-panel.asg-inline-price-panel-docked {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 0 !important;
        padding: 18px 14px !important;
        border-radius: 24px !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        grid-template-areas: "main" "summary" "footer" !important;
        gap: 14px !important;
        overflow: hidden !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-main {
        grid-area: main !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
        align-items: stretch !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-price-meta {
        min-width: 0 !important;
        text-align: left !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-label {
        font-size: 11px !important;
        letter-spacing: .1em !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .price-value {
        font-size: clamp(42px, 15vw, 62px) !important;
        line-height: .88 !important;
        letter-spacing: -.06em !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .currency {
        font-size: .42em !important;
        margin-right: 7px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid .btn {
        width: 100% !important;
        min-width: 0 !important;
        height: 50px !important;
        min-height: 50px !important;
        padding: 0 10px !important;
        border-radius: 16px !important;
        font-size: 11px !important;
        line-height: 1.05 !important;
        white-space: normal !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > #asg-config-summary-bar {
        grid-area: summary !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        padding-top: 12px !important;
        border-top: 1px solid rgba(255,255,255,.08) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col {
        display: grid !important;
        grid-template-columns: 36px 1fr !important;
        gap: 9px !important;
        min-width: 0 !important;
        padding: 10px !important;
        border-radius: 16px !important;
        background: rgba(5,11,23,.48) !important;
        border: 1px solid rgba(255,255,255,.055) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 1px solid rgba(255,255,255,.055) !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-icon {
        width: 36px !important;
        height: 36px !important;
        border-radius: 12px !important;
        font-size: 12px !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-label {
        font-size: 9px !important;
        letter-spacing: .08em !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
        font-size: 12px !important;
        line-height: 1.18 !important;
        max-width: 100% !important;
        overflow: hidden !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > .asg-dock-footer {
        grid-area: footer !important;
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 10px !important;
        align-items: end !important;
        padding-top: 4px !important;
        min-width: 0 !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer {
        font-size: 10px !important;
        line-height: 1.35 !important;
        max-height: 28px !important;
        overflow: hidden !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
        font-size: 13px !important;
        white-space: nowrap !important;
    }

    /* Fixed nav mobile: comoda ma non invasiva. */
    body > .asg-config-section-footer-nav {
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 10px) !important;
        width: auto !important;
        max-width: none !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 9px !important;
        padding: 8px !important;
        border-radius: 20px !important;
        z-index: 5000 !important;
        background: rgba(6,12,24,.92) !important;
        border: 1px solid rgba(255,255,255,.08) !important;
        transform: translateY(120%) scale(.98) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: transform .24s cubic-bezier(.19,1,.22,1), opacity .2s ease !important;
    }
    body.asg-configurator-fixed-ui-active > .asg-config-section-footer-nav {
        transform: translateY(0) scale(1) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    body > .asg-config-section-footer-nav .asg-config-step-btn {
        height: 52px !important;
        min-height: 52px !important;
        border-radius: 16px !important;
        padding: 0 10px !important;
        font-size: 11px !important;
        min-width: 0 !important;
        width: 100% !important;
    }
    body > .asg-config-section-footer-nav .asg-config-step-btn-copy small {
        display: none !important;
    }
    body > .asg-config-section-footer-nav .asg-config-step-btn-copy strong {
        font-size: 11px !important;
        line-height: 1.05 !important;
        white-space: normal !important;
    }

    /* Su mobile la mini price sticky crea sovrapposizioni: la dock card resta la fonte visiva. */
    body #asg-mobile-sticky-price,
    body #asg-mobile-sticky-price.is-visible {
        display: none !important;
    }
}

@media (max-width: 480px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked .asg-inline-cta-grid {
        grid-template-columns: 1fr !important;
    }
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked > #asg-config-summary-bar {
        grid-template-columns: 1fr !important;
    }
    #asg-configuratore-wrapper .asg-config-header-shell-v2 {
        padding-inline: 58px !important;
        min-height: 166px !important;
    }
    #asg-configuratore-wrapper .asg-config-header-center h2,
    #asg-configuratore-wrapper #asg-dynamic-title {
        font-size: clamp(28px, 11vw, 38px) !important;
    }
}

/* Phase 2.4.5 - final mobile positioning repair
   Goal: clean mobile hierarchy, zero overlap, lighter sticky UI, correct dock/card placement. */
@media (max-width: 768px) {
    .asg-plugin-container {
        padding-inline: 10px !important;
        overflow-x: hidden !important;
    }

    #asg-configuratore-wrapper,
    #asg-configuratore-wrapper * {
        box-sizing: border-box;
    }

    #asg-configuratore-wrapper {
        --asg-mobile-sticky-top: calc(68px + env(safe-area-inset-top, 0px));
        overflow-x: hidden !important;
    }

    #asg-configuratore-wrapper .asg-grid,
    #asg-configuratore-wrapper.asg-state-configurator .asg-grid,
    #asg-configuratore-wrapper.asg-state-models .asg-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    #asg-configuratore-wrapper .asg-viewer-stack,
    #asg-configuratore-wrapper .asg-viewer-col,
    #asg-configuratore-wrapper .asg-controls-col,
    #asg-configuratore-wrapper .asg-controls-body,
    #asg-configuratore-wrapper .asg-controls-footer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    #asg-configuratore-wrapper .asg-step-view.active-step {
        height: auto !important;
        overflow: visible !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey,
    #asg-configuratore-wrapper.asg-state-models .asg-ux-journey {
        position: sticky !important;
        top: var(--asg-mobile-sticky-top) !important;
        z-index: 120 !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        gap: 8px !important;
        padding: 8px !important;
        margin: 0 0 12px !important;
        border-radius: 18px !important;
        background: rgba(5, 11, 24, 0.96) !important;
        border: 1px solid rgba(98, 132, 203, 0.16) !important;
        box-shadow: 0 12px 28px rgba(0,0,0,0.26) !important;
        backdrop-filter: blur(10px) !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey::-webkit-scrollbar,
    #asg-configuratore-wrapper.asg-state-models .asg-ux-journey::-webkit-scrollbar {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-ux-journey-step {
        flex: 0 0 auto !important;
        min-width: 118px !important;
        min-height: 40px !important;
        padding: 8px 10px !important;
        border-radius: 14px !important;
        font-size: 11px !important;
        line-height: 1.1 !important;
        scroll-snap-align: start !important;
    }

    #asg-configuratore-wrapper .asg-ux-journey-step strong {
        min-width: 22px !important;
        height: 22px !important;
        font-size: 10px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-stack {
        gap: 12px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-col,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-col {
        min-height: clamp(340px, 46vh, 430px) !important;
        border-radius: 24px !important;
        overflow: hidden !important;
    }

    #asg-configuratore-wrapper .asg-viewer-overlay {
        inset: 0 !important;
        pointer-events: none !important;
    }

    #asg-configuratore-wrapper .asg-viewer-top-info {
        top: 12px !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        max-width: calc(100% - 24px) !important;
        padding: 0 !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-top-meta {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        max-width: 100% !important;
    }

    #asg-configuratore-wrapper .asg-viewer-top-info .badge,
    #asg-configuratore-wrapper .asg-viewer-dimension-chip {
        min-height: 30px !important;
        padding: 0 10px !important;
        border-radius: 999px !important;
        font-size: 10px !important;
        line-height: 1 !important;
        max-width: 100% !important;
    }

    #asg-configuratore-wrapper .asg-drag-hint {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls {
        left: 12px !important;
        right: auto !important;
        bottom: 12px !important;
        top: auto !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(52px, 52px)) !important;
        gap: 8px !important;
        padding: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        pointer-events: auto !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper #btn-resume-rotate {
        width: 52px !important;
        min-width: 52px !important;
        height: 52px !important;
        min-height: 52px !important;
        padding: 0 !important;
        justify-content: center !important;
        border-radius: 16px !important;
        background: rgba(6, 12, 24, 0.88) !important;
        border: 1px solid rgba(98, 132, 203, 0.18) !important;
        box-shadow: 0 10px 24px rgba(0,0,0,0.22) !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn span,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm span,
    #asg-configuratore-wrapper #btn-resume-rotate span {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn i,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm i,
    #asg-configuratore-wrapper #btn-resume-rotate i {
        margin: 0 !important;
        font-size: 18px !important;
    }

    #asg-configuratore-wrapper .asg-gizmo-overlay {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-controls-col {
        border-radius: 24px !important;
        overflow: hidden !important;
    }

    #asg-configuratore-wrapper .asg-controls-header.asg-controls-header-compact,
    #asg-configuratore-wrapper .asg-controls-header-config,
    #asg-configuratore-wrapper .asg-config-header-shell-v2 {
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 24px !important;
    }

    #asg-configuratore-wrapper .asg-config-header-shell-v2 {
        min-height: 178px !important;
        padding: 20px 72px 18px !important;
    }

    #asg-configuratore-wrapper .asg-config-header-center {
        gap: 6px !important;
        max-width: 100% !important;
    }

    #asg-configuratore-wrapper .btn-back-models-hero,
    #asg-configuratore-wrapper .asg-config-mode-pill-action {
        top: 16px !important;
        width: 48px !important;
        min-width: 48px !important;
        height: 48px !important;
        border-radius: 16px !important;
    }

    #asg-configuratore-wrapper .btn-back-models-hero {
        left: 14px !important;
    }

    #asg-configuratore-wrapper .asg-config-mode-pill-action {
        right: 14px !important;
    }

    #asg-configuratore-wrapper .btn-back-models-hero i,
    #asg-configuratore-wrapper .asg-config-mode-pill-action i {
        font-size: 18px !important;
    }

    #asg-configuratore-wrapper .asg-config-type-kicker {
        min-height: 34px !important;
        padding: 0 16px !important;
        font-size: 10px !important;
        letter-spacing: 0.12em !important;
    }

    #asg-configuratore-wrapper .asg-config-header-shell-v2 #asg-dynamic-title {
        font-size: clamp(22px, 7.2vw, 32px) !important;
        line-height: 0.98 !important;
        letter-spacing: -0.04em !important;
    }

    #asg-configuratore-wrapper .asg-config-header-shell-v2 .asg-controls-intro-compact {
        font-size: 13px !important;
        line-height: 1.35 !important;
        max-width: 100% !important;
    }

    #asg-configuratore-wrapper #step-2-view .asg-controls-body {
        padding: 14px !important;
        overflow: visible !important;
    }

    #asg-configuratore-wrapper .asg-config-live-shell,
    #asg-configuratore-wrapper .asg-config-live-bar,
    #asg-configuratore-wrapper .control-group,
    #asg-configuratore-wrapper .asg-final-summary-card {
        border-radius: 22px !important;
    }

    #asg-configuratore-wrapper .control-group,
    #asg-configuratore-wrapper .asg-final-summary-card {
        padding: 16px !important;
    }

    #asg-configuratore-wrapper .asg-config-sections-nav {
        position: static !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 10px !important;
        padding: 2px 0 2px !important;
        margin: 4px 0 12px !important;
        scrollbar-width: none !important;
    }

    #asg-configuratore-wrapper .asg-config-sections-nav::-webkit-scrollbar {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-config-nav-pill {
        flex: 0 0 auto !important;
        min-width: max-content !important;
        white-space: nowrap !important;
    }

    #asg-configuratore-wrapper .asg-config-section-footer-nav {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        padding: 0 14px 16px !important;
    }

    #asg-configuratore-wrapper .asg-config-step-btn {
        min-height: 56px !important;
        padding: 12px !important;
        border-radius: 18px !important;
    }

    #asg-configuratore-wrapper .asg-config-step-btn-copy small {
        font-size: 10px !important;
    }

    #asg-configuratore-wrapper .asg-config-step-btn-copy strong {
        font-size: 12px !important;
        line-height: 1.15 !important;
    }

    #asg-configuratore-wrapper .asg-final-summary-grid,
    #asg-configuratore-wrapper .asg-final-summary-layout,
    #asg-configuratore-wrapper .asg-final-summary-layout.asg-final-summary-layout-clean {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    #asg-configuratore-wrapper .asg-final-summary-row,
    #asg-configuratore-wrapper .asg-final-summary-topline {
        gap: 10px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        position: static !important;
        bottom: auto !important;
        margin-top: 0 !important;
        z-index: 1 !important;
        transform: none !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 16px !important;
        border-radius: 24px !important;
        backdrop-filter: none !important;
        box-shadow: 0 14px 32px rgba(0,0,0,0.24) !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked .asg-dock-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
        align-items: start !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-meta {
        gap: 4px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-label {
        font-size: 11px !important;
        letter-spacing: 0.16em !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .price-value {
        font-size: clamp(46px, 13vw, 62px) !important;
        line-height: 0.9 !important;
        word-break: keep-all !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel-docked .currency {
        font-size: 0.42em !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-cta-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 100% !important;
        margin-top: 0 !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-cta-grid .btn {
        min-height: 58px !important;
        padding: 10px 12px !important;
        border-radius: 18px !important;
        font-size: 12px !important;
        line-height: 1.15 !important;
        white-space: normal !important;
    }

    #asg-configuratore-wrapper #asg-config-summary-bar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        margin-top: 14px !important;
        padding-top: 14px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col,
    #asg-configuratore-wrapper .asg-summary-col.has-border {
        display: grid !important;
        grid-template-columns: 40px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
        min-height: 0 !important;
        padding: 0 !important;
        border: 0 !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-icon {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        border-radius: 12px !important;
        font-size: 14px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-label {
        font-size: 10px !important;
        letter-spacing: 0.10em !important;
        line-height: 1.1 !important;
        margin-bottom: 3px !important;
    }

    #asg-configuratore-wrapper .asg-summary-col-value {
        font-size: 13px !important;
        line-height: 1.22 !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: initial !important;
        word-break: break-word !important;
    }

    #asg-configuratore-wrapper .asg-dock-footer {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        margin-top: 14px !important;
        padding-top: 12px !important;
    }

    #asg-configuratore-wrapper .asg-inline-disclaimer {
        display: block !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: initial !important;
    }

    #asg-configuratore-wrapper .asg-dock-vat-note {
        justify-self: start !important;
        font-size: 12px !important;
    }
}

@media (max-width: 420px) {
    #asg-configuratore-wrapper {
        --asg-mobile-sticky-top: calc(62px + env(safe-area-inset-top, 0px));
    }

    #asg-configuratore-wrapper .asg-config-header-shell-v2 {
        min-height: 168px !important;
        padding: 18px 62px 16px !important;
    }

    #asg-configuratore-wrapper .btn-back-models-hero,
    #asg-configuratore-wrapper .asg-config-mode-pill-action {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        border-radius: 14px !important;
        top: 14px !important;
    }

    #asg-configuratore-wrapper .btn-back-models-hero {
        left: 12px !important;
    }

    #asg-configuratore-wrapper .asg-config-mode-pill-action {
        right: 12px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-col,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-col {
        min-height: clamp(320px, 44vh, 400px) !important;
    }

    #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-cta-grid {
        grid-template-columns: 1fr !important;
    }

    #asg-configuratore-wrapper .asg-config-section-footer-nav {
        grid-template-columns: 1fr !important;
    }
}


/* Phase 2.4.6 - mobile control recovery, sticky steps polish, dock order cleanup, adaptive viewer quality */
@media (max-width: 767px) {
    #asg-configuratore-wrapper {
        --asg-mobile-sticky-top: calc(64px + env(safe-area-inset-top, 0px)) !important;
    }

    #asg-configuratore-wrapper .asg-grid,
    #asg-configuratore-wrapper .asg-controls-col,
    #asg-configuratore-wrapper .asg-controls-body,
    #asg-configuratore-wrapper .asg-config-live-shell,
    #asg-configuratore-wrapper .asg-step-view.active-step {
        overflow: visible !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey,
    #asg-configuratore-wrapper.asg-state-models .asg-ux-journey {
        top: var(--asg-mobile-sticky-top) !important;
        z-index: 140 !important;
        margin: 0 0 14px !important;
        padding: 8px !important;
        border-radius: 18px !important;
        scroll-snap-type: x proximity !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls {
        left: 12px !important;
        right: auto !important;
        bottom: 12px !important;
        top: auto !important;
        transform: none !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        grid-template-columns: repeat(2, 52px) !important;
        gap: 8px !important;
        align-items: stretch !important;
        justify-items: stretch !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper #btn-resume-rotate {
        width: 52px !important;
        min-width: 52px !important;
        max-width: 52px !important;
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn:last-child,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm:last-child {
        grid-column: auto !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        position: relative !important;
        bottom: auto !important;
        top: auto !important;
        z-index: 20 !important;
        margin-top: 14px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 18px 16px 14px !important;
        border-radius: 22px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked .asg-dock-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas:
            "left"
            "cta"
            "summary"
            "footer" !important;
        gap: 14px !important;
        align-items: stretch !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-meta {
        grid-area: left !important;
        display: grid !important;
        gap: 8px !important;
        padding-top: 0 !important;
        align-items: start !important;
        justify-items: start !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .price-value {
        display: inline-flex !important;
        align-items: baseline !important;
        gap: 4px !important;
        font-size: clamp(42px, 11vw, 56px) !important;
        line-height: .96 !important;
        letter-spacing: -0.05em !important;
        white-space: nowrap !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .currency {
        font-size: 22px !important;
        transform: translateY(0) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid {
        grid-area: cta !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        justify-self: stretch !important;
        align-self: stretch !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 52px !important;
        height: auto !important;
        padding: 0 16px !important;
        border-radius: 16px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        font-size: 13px !important;
        line-height: 1.15 !important;
        overflow: visible !important;
        box-shadow: 0 12px 24px rgba(0,0,0,0.18) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn i {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        font-size: 16px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
        grid-area: summary !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0 !important;
        margin-top: 0 !important;
        padding-top: 12px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col,
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        border-top: 1px solid rgba(98,130,190,.14) !important;
        padding: 12px 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar .asg-summary-col:first-child {
        border-top: 0 !important;
        padding-top: 4px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: initial !important;
        word-break: break-word !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
        grid-area: footer !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        align-items: start !important;
        margin-top: 0 !important;
        padding-top: 12px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer,
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
        justify-self: start !important;
        white-space: normal !important;
        text-align: left !important;
    }
}

/* Phase 2.4.7 - sticky mobile journey, viewer control toasts, dock mobile restructure */
@media (max-width: 767px) {
    #asg-configuratore-wrapper {
        --asg-mobile-sticky-top: calc(70px + env(safe-area-inset-top, 0px)) !important;
        --asg-mobile-journey-height: 74px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
        position: fixed !important;
        top: var(--asg-mobile-sticky-top) !important;
        left: 12px !important;
        right: 12px !important;
        z-index: 180 !important;
        margin: 0 !important;
        padding: 8px !important;
        border-radius: 18px !important;
        background: linear-gradient(180deg, rgba(5, 12, 28, 0.96), rgba(4, 10, 24, 0.92)) !important;
        backdrop-filter: blur(14px) saturate(145%) !important;
        box-shadow: 0 18px 42px rgba(0,0,0,.28) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        padding-top: calc(var(--asg-mobile-journey-height) + 18px) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        overflow: visible !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        padding: 18px 16px 14px !important;
        border-radius: 22px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-main {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 14px !important;
        padding: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-meta {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .price-label {
        font-size: 11px !important;
        line-height: 1.1 !important;
        letter-spacing: .18em !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .price-value {
        display: inline-flex !important;
        align-items: baseline !important;
        gap: 4px !important;
        width: auto !important;
        max-width: 100% !important;
        font-size: clamp(44px, 11vw, 58px) !important;
        line-height: .95 !important;
        letter-spacing: -.05em !important;
        white-space: nowrap !important;
        overflow: visible !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .currency {
        font-size: 22px !important;
        line-height: 1 !important;
        transform: translateY(0) !important;
        margin-right: 2px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-inline-meta,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock #asg-price-warning,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-module-summary {
        display: none !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        justify-content: stretch !important;
        justify-items: stretch !important;
        align-items: stretch !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn:first-child,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn:last-child {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 54px !important;
        height: auto !important;
        max-height: none !important;
        padding: 0 16px !important;
        border-radius: 16px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        font-size: 13px !important;
        line-height: 1.15 !important;
        text-align: center !important;
        white-space: normal !important;
        overflow: visible !important;
        grid-area: auto !important;
        box-shadow: 0 12px 26px rgba(0,0,0,.18) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn i {
        margin: 0 !important;
        font-size: 16px !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding-top: 12px !important;
        border-top: 1px solid rgba(98,130,190,.14) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col,
    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col.has-border {
        border-left: 0 !important;
        border-top: 1px solid rgba(98,130,190,.14) !important;
        padding: 12px 0 !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator #asg-config-summary-bar .asg-summary-col:first-child {
        border-top: 0 !important;
        padding-top: 4px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-summary-col-value {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: initial !important;
        word-break: break-word !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-footer {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        margin: 0 !important;
        padding-top: 12px !important;
        border-top: 1px solid rgba(98,130,190,.14) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-disclaimer,
    #asg-configuratore-wrapper.asg-state-configurator .asg-dock-vat-note {
        margin: 0 !important;
        text-align: left !important;
        white-space: normal !important;
        justify-self: start !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls {
        left: 12px !important;
        right: auto !important;
        bottom: 12px !important;
        top: auto !important;
        transform: none !important;
        width: auto !important;
        max-width: none !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: repeat(2, 54px) !important;
        gap: 8px !important;
        justify-content: start !important;
        justify-items: stretch !important;
        align-items: stretch !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper #btn-resume-rotate {
        width: 54px !important;
        min-width: 54px !important;
        max-width: 54px !important;
        height: 54px !important;
        min-height: 54px !important;
        max-height: 54px !important;
        padding: 0 !important;
        border-radius: 16px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        overflow: hidden !important;
        font-size: 0 !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn:last-child,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm:last-child {
        grid-column: auto !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn i,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm i {
        margin: 0 !important;
        font-size: 20px !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    #asg-configuratore-wrapper .asg-viewer-control-toast {
        position: absolute !important;
        left: 12px !important;
        right: 12px !important;
        bottom: 136px !important;
        z-index: 40 !important;
        padding: 10px 14px !important;
        border-radius: 14px !important;
        background: rgba(6, 13, 30, 0.92) !important;
        border: 1px solid rgba(113, 150, 255, 0.2) !important;
        color: #edf3ff !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        text-align: center !important;
        box-shadow: 0 14px 30px rgba(0,0,0,.25) !important;
        backdrop-filter: blur(12px) saturate(140%) !important;
        opacity: 0 !important;
        transform: translateY(8px) !important;
        pointer-events: none !important;
        transition: opacity .18s ease, transform .18s ease !important;
    }

    #asg-configuratore-wrapper .asg-viewer-control-toast.is-visible {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
}


/* Phase 2.4.8 - mobile configurator dropdown and centered viewer controls */
#asg-configuratore-wrapper .asg-mobile-step-shell {
    display: none;
}

@media (max-width: 767px) {
    #asg-configuratore-wrapper {
        --asg-mobile-config-top: calc(66px + env(safe-area-inset-top, 0px)) !important;
        --asg-mobile-config-menu-height: 62px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-shell {
        position: fixed !important;
        top: var(--asg-mobile-config-top) !important;
        left: 12px !important;
        right: 12px !important;
        z-index: 220 !important;
        display: block !important;
        pointer-events: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle {
        width: 100% !important;
        min-height: 58px !important;
        border: 1px solid rgba(113, 150, 255, 0.22) !important;
        border-radius: 18px !important;
        padding: 8px 10px !important;
        display: grid !important;
        grid-template-columns: 42px minmax(0, 1fr) 38px !important;
        gap: 10px !important;
        align-items: center !important;
        background:
            radial-gradient(circle at 86% 18%, rgba(79, 140, 255, .24), transparent 34%),
            linear-gradient(180deg, rgba(7, 16, 36, .98), rgba(4, 10, 24, .95)) !important;
        color: #f4f8ff !important;
        box-shadow: 0 18px 40px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.04) !important;
        backdrop-filter: blur(14px) saturate(145%) !important;
        pointer-events: auto !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle-icon,
    #asg-configuratore-wrapper .asg-mobile-step-toggle-chevron {
        width: 38px !important;
        height: 38px !important;
        border-radius: 13px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: rgba(79, 140, 255, .16) !important;
        border: 1px solid rgba(113, 150, 255, .20) !important;
        color: #73a7ff !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle-copy {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
        text-align: left !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle-copy small {
        color: rgba(222, 235, 255, .58) !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        letter-spacing: .16em !important;
        text-transform: uppercase !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle-copy strong {
        color: #fff !important;
        font-size: 14px !important;
        font-weight: 900 !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle-chevron {
        justify-self: end !important;
        transition: transform .22s ease !important;
    }

    #asg-configuratore-wrapper.asg-mobile-steps-open .asg-mobile-step-toggle-chevron {
        transform: rotate(180deg) !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey,
    #asg-configuratore-wrapper.asg-state-models .asg-ux-journey {
        position: fixed !important;
        top: calc(var(--asg-mobile-config-top) + var(--asg-mobile-config-menu-height) + 8px) !important;
        left: 12px !important;
        right: 12px !important;
        z-index: 219 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        max-height: min(66vh, 430px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        margin: 0 !important;
        padding: 10px !important;
        border-radius: 20px !important;
        background: linear-gradient(180deg, rgba(5, 12, 29, .98), rgba(4, 9, 22, .96)) !important;
        border: 1px solid rgba(113, 150, 255, .18) !important;
        box-shadow: 0 24px 60px rgba(0,0,0,.40), inset 0 1px 0 rgba(255,255,255,.035) !important;
        backdrop-filter: blur(16px) saturate(145%) !important;
        opacity: 0 !important;
        transform: translateY(-8px) scale(.98) !important;
        pointer-events: none !important;
        visibility: hidden !important;
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
        scrollbar-width: none !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey::-webkit-scrollbar,
    #asg-configuratore-wrapper.asg-state-models .asg-ux-journey::-webkit-scrollbar {
        display: none !important;
    }

    #asg-configuratore-wrapper.asg-mobile-steps-open .asg-ux-journey {
        opacity: 1 !important;
        transform: translateY(0) scale(1) !important;
        pointer-events: auto !important;
        visibility: visible !important;
    }

    #asg-configuratore-wrapper .asg-ux-journey-step {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 50px !important;
        padding: 10px 12px !important;
        display: grid !important;
        grid-template-columns: 34px minmax(0, 1fr) !important;
        gap: 10px !important;
        align-items: center !important;
        justify-content: start !important;
        text-align: left !important;
        border-radius: 15px !important;
        background: rgba(255,255,255,.035) !important;
        border: 1px solid rgba(255,255,255,.06) !important;
        color: rgba(238, 245, 255, .82) !important;
        font-size: 13px !important;
        line-height: 1.1 !important;
        box-shadow: none !important;
    }

    #asg-configuratore-wrapper .asg-ux-journey-step strong {
        width: 30px !important;
        min-width: 30px !important;
        height: 30px !important;
        border-radius: 11px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        background: rgba(79, 140, 255, .18) !important;
        color: #9fc0ff !important;
        font-size: 10px !important;
    }

    #asg-configuratore-wrapper .asg-ux-journey-step.is-active {
        background: linear-gradient(135deg, rgba(79, 140, 255, .24), rgba(0, 201, 141, .10)) !important;
        border-color: rgba(115, 167, 255, .30) !important;
        color: #fff !important;
    }

    #asg-configuratore-wrapper .asg-ux-journey-step.is-active strong {
        background: linear-gradient(135deg, #4f8cff, #00c98d) !important;
        color: #fff !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-grid,
    #asg-configuratore-wrapper.asg-state-models .asg-grid {
        padding-top: calc(var(--asg-mobile-config-menu-height) + 22px) !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls {
        left: 50% !important;
        right: auto !important;
        bottom: 12px !important;
        top: auto !important;
        transform: translateX(-50%) !important;
        width: max-content !important;
        max-width: calc(100% - 24px) !important;
        display: grid !important;
        grid-template-columns: repeat(2, 54px) !important;
        gap: 8px !important;
        justify-content: center !important;
        justify-items: center !important;
        align-items: center !important;
        padding: 0 !important;
        margin: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper #btn-resume-rotate {
        width: 54px !important;
        min-width: 54px !important;
        max-width: 54px !important;
        height: 54px !important;
        min-height: 54px !important;
        max-height: 54px !important;
        padding: 0 !important;
        font-size: 0 !important;
        overflow: hidden !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn i,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm i {
        font-size: 20px !important;
        margin: 0 !important;
    }
}

/* Phase 2.4.9 - mobile real configuration dropdown */
@media (max-width: 767px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey,
    #asg-configuratore-wrapper.asg-state-models .asg-ux-journey {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel {
        width: 100% !important;
        max-height: min(68vh, 520px) !important;
        margin-top: 8px !important;
        overflow: hidden !important;
        border-radius: 22px !important;
        border: 1px solid rgba(113, 150, 255, .20) !important;
        background:
            radial-gradient(circle at 14% 0%, rgba(0, 201, 141, .12), transparent 30%),
            radial-gradient(circle at 94% 16%, rgba(79, 140, 255, .20), transparent 34%),
            linear-gradient(180deg, rgba(5, 13, 31, .985), rgba(3, 8, 20, .97)) !important;
        box-shadow: 0 24px 70px rgba(0, 0, 0, .46), inset 0 1px 0 rgba(255,255,255,.045) !important;
        backdrop-filter: blur(18px) saturate(150%) !important;
        pointer-events: auto !important;
        opacity: 0 !important;
        transform: translateY(-8px) scale(.985) !important;
        visibility: hidden !important;
        transition: opacity .2s ease, transform .2s ease, visibility .2s ease !important;
    }

    #asg-configuratore-wrapper.asg-mobile-steps-open .asg-mobile-config-panel {
        opacity: 1 !important;
        transform: translateY(0) scale(1) !important;
        visibility: visible !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel[hidden] {
        display: block !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel-head {
        padding: 12px 12px 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        border-bottom: 1px solid rgba(255,255,255,.06) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel-head > div {
        min-width: 0 !important;
        display: grid !important;
        gap: 4px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-kicker {
        color: rgba(222, 235, 255, .58) !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        letter-spacing: .14em !important;
        text-transform: uppercase !important;
    }

    #asg-configuratore-wrapper #asg-mobile-config-title {
        color: #fff !important;
        font-size: 14px !important;
        line-height: 1.15 !important;
        font-weight: 950 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-close {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        border: 1px solid rgba(255,255,255,.08) !important;
        border-radius: 13px !important;
        background: rgba(255,255,255,.045) !important;
        color: #dbe8ff !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tabs {
        padding: 10px 10px 0 !important;
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab {
        min-width: 0 !important;
        min-height: 48px !important;
        padding: 7px 4px !important;
        border: 1px solid rgba(255,255,255,.065) !important;
        border-radius: 14px !important;
        background: rgba(255,255,255,.035) !important;
        color: rgba(231, 240, 255, .72) !important;
        display: grid !important;
        justify-items: center !important;
        gap: 3px !important;
        font-size: 10px !important;
        line-height: 1 !important;
        font-weight: 900 !important;
        letter-spacing: .02em !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab i {
        font-size: 14px !important;
        color: #73a7ff !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab.is-active {
        background: linear-gradient(135deg, rgba(79, 140, 255, .30), rgba(0, 201, 141, .12)) !important;
        border-color: rgba(115, 167, 255, .32) !important;
        color: #fff !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel-body {
        max-height: calc(min(68vh, 520px) - 122px) !important;
        overflow-y: auto !important;
        padding: 12px 10px calc(14px + env(safe-area-inset-bottom, 0px)) !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel-body::-webkit-scrollbar {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section.is-active {
        display: grid !important;
        gap: 12px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-help {
        margin: 0 !important;
        color: rgba(218, 231, 255, .70) !important;
        font-size: 12px !important;
        line-height: 1.45 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-field {
        padding: 12px !important;
        border: 1px solid rgba(255,255,255,.07) !important;
        border-radius: 18px !important;
        background: rgba(255,255,255,.032) !important;
        display: grid !important;
        gap: 10px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-field > span {
        color: rgba(236,244,255,.92) !important;
        font-size: 11px !important;
        font-weight: 950 !important;
        line-height: 1 !important;
        letter-spacing: .10em !important;
        text-transform: uppercase !important;
    }

    #asg-configuratore-wrapper .asg-mobile-choice-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-choice-btn,
    #asg-configuratore-wrapper .asg-mobile-optional-btn {
        min-height: 44px !important;
        border: 1px solid rgba(255,255,255,.075) !important;
        border-radius: 14px !important;
        background: rgba(255,255,255,.045) !important;
        color: #edf5ff !important;
        font-size: 13px !important;
        font-weight: 950 !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        text-align: center !important;
        box-shadow: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-choice-btn small {
        color: rgba(222,235,255,.55) !important;
        font-size: 10px !important;
        font-weight: 800 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-choice-btn.is-active,
    #asg-configuratore-wrapper .asg-mobile-optional-btn.is-active {
        border-color: rgba(0, 201, 141, .55) !important;
        background: linear-gradient(135deg, rgba(0, 201, 141, .20), rgba(79, 140, 255, .18)) !important;
        color: #fff !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 8px 26px rgba(0,201,141,.10) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-empty-state {
        min-height: 48px !important;
        border: 1px dashed rgba(255,255,255,.12) !important;
        border-radius: 14px !important;
        color: rgba(220,232,255,.64) !important;
        font-size: 12px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        padding: 10px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-grid,
    #asg-configuratore-wrapper .asg-mobile-optionals-list {
        display: grid !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-btn {
        min-height: 48px !important;
        border: 1px solid rgba(255,255,255,.075) !important;
        border-radius: 15px !important;
        background: rgba(255,255,255,.04) !important;
        color: #edf5ff !important;
        padding: 8px 10px !important;
        display: grid !important;
        grid-template-columns: 28px minmax(0, 1fr) 18px !important;
        gap: 9px !important;
        align-items: center !important;
        text-align: left !important;
        font-size: 12px !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-dot {
        width: 26px !important;
        height: 26px !important;
        border-radius: 10px !important;
        border: 1px solid rgba(255,255,255,.22) !important;
        background: linear-gradient(135deg, #4f8cff, #00c98d) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.12) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-btn.is-active {
        border-color: rgba(115, 167, 255, .38) !important;
        background: rgba(79, 140, 255, .16) !important;
        color: #fff !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-check {
        width: 18px !important;
        height: 18px !important;
        border-radius: 999px !important;
        border: 1px solid rgba(255,255,255,.18) !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: transparent !important;
        font-size: 10px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-btn.is-active .asg-mobile-swatch-check {
        background: #00c98d !important;
        border-color: #00c98d !important;
        color: #02120e !important;
    }

    #asg-configuratore-wrapper .asg-mobile-optional-row {
        border: 1px solid rgba(255,255,255,.075) !important;
        border-radius: 15px !important;
        background: rgba(255,255,255,.04) !important;
        padding: 10px !important;
        display: grid !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-optional-row label,
    #asg-configuratore-wrapper .asg-mobile-optional-row span {
        color: #edf5ff !important;
        font-size: 12px !important;
        font-weight: 900 !important;
        line-height: 1.25 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-optional-select,
    #asg-configuratore-wrapper .asg-mobile-optional-number {
        width: 100% !important;
        min-height: 42px !important;
        border-radius: 13px !important;
        border: 1px solid rgba(115, 167, 255, .20) !important;
        background: rgba(2, 8, 20, .86) !important;
        color: #fff !important;
        padding: 0 12px !important;
        font-size: 13px !important;
        font-weight: 800 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-card {
        border-radius: 20px !important;
        border: 1px solid rgba(115, 167, 255, .24) !important;
        background: radial-gradient(circle at 90% 18%, rgba(79,140,255,.24), transparent 32%), rgba(255,255,255,.045) !important;
        padding: 14px !important;
        display: grid !important;
        gap: 3px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-card span,
    #asg-configuratore-wrapper .asg-mobile-summary-card small {
        color: rgba(225, 237, 255, .62) !important;
        font-size: 11px !important;
        font-weight: 900 !important;
        text-transform: uppercase !important;
        letter-spacing: .10em !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-card strong {
        color: #fff !important;
        font-size: clamp(28px, 11vw, 42px) !important;
        font-weight: 950 !important;
        letter-spacing: -.05em !important;
        line-height: .95 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-lines {
        display: grid !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-line {
        display: grid !important;
        grid-template-columns: 96px minmax(0, 1fr) !important;
        gap: 10px !important;
        padding: 10px 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.07) !important;
        color: #f2f7ff !important;
        font-size: 12px !important;
        line-height: 1.25 !important;
        font-weight: 850 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-line span:first-child {
        color: rgba(225,237,255,.55) !important;
        text-transform: uppercase !important;
        letter-spacing: .08em !important;
        font-size: 10px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-action {
        min-height: 46px !important;
        border-radius: 15px !important;
        border: 1px solid rgba(115,167,255,.22) !important;
        background: rgba(255,255,255,.04) !important;
        color: #edf5ff !important;
        font-size: 12px !important;
        font-weight: 950 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-summary-action.is-primary {
        border-color: rgba(79,140,255,.42) !important;
        background: linear-gradient(135deg, #4f8cff, #2f68ff) !important;
        color: #fff !important;
    }
}


/* Phase 2.5.0 - mobile dropdown is the only configurator surface */
@media (max-width: 767px) {
    /* Da mobile il pannello sotto sparisce: si configura solo dal menu Configura. */
    #asg-configuratore-wrapper.asg-state-configurator .asg-controls-col {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-stack {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Il dropdown diventa operativo: niente tab nascoste, tutte le sezioni sono visibili in verticale. */
    #asg-configuratore-wrapper .asg-mobile-config-tabs {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel {
        max-height: min(76vh, 680px) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel-body {
        max-height: calc(min(76vh, 680px) - 76px) !important;
        padding: 12px 10px calc(18px + env(safe-area-inset-bottom, 0px)) !important;
        display: grid !important;
        gap: 14px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section,
    #asg-configuratore-wrapper .asg-mobile-config-section.is-active {
        display: grid !important;
        gap: 12px !important;
        padding: 12px !important;
        border-radius: 20px !important;
        border: 1px solid rgba(255,255,255,.07) !important;
        background: rgba(255,255,255,.028) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.025) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section::before {
        display: inline-flex !important;
        width: max-content !important;
        max-width: 100% !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 7px 11px !important;
        border-radius: 999px !important;
        background: rgba(79,140,255,.12) !important;
        border: 1px solid rgba(115,167,255,.18) !important;
        color: #cfe0ff !important;
        font-size: 10px !important;
        font-weight: 950 !important;
        letter-spacing: .12em !important;
        text-transform: uppercase !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section[data-mobile-section="dimensions"]::before {
        content: "01 · Misure";
    }

    #asg-configuratore-wrapper .asg-mobile-config-section[data-mobile-section="finishes"]::before {
        content: "02 · Colori";
    }

    #asg-configuratore-wrapper .asg-mobile-config-section[data-mobile-section="optionals"]::before {
        content: "03 · Optional";
    }

    #asg-configuratore-wrapper .asg-mobile-config-section[data-mobile-section="summary"]::before {
        content: "04 · Riepilogo";
    }

    #asg-configuratore-wrapper .asg-mobile-config-help {
        display: none !important;
    }

    /* Colori sempre visibili, più leggibili e più rapidi da selezionare. */
    #asg-configuratore-wrapper .asg-mobile-config-section[data-mobile-section="finishes"] {
        border-color: rgba(0,201,141,.14) !important;
        background:
            radial-gradient(circle at 94% 12%, rgba(0,201,141,.10), transparent 32%),
            rgba(255,255,255,.03) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-btn {
        min-height: 54px !important;
        padding: 9px !important;
        grid-template-columns: 30px minmax(0,1fr) 18px !important;
        border-radius: 16px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-btn span:not(.asg-mobile-swatch-dot) {
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: normal !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-dot {
        width: 28px !important;
        height: 28px !important;
        border-radius: 11px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-choice-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    /* Il menu resta il controllo principale: il bottone dice solo Configura e lo stato lo racconta sotto. */
    #asg-configuratore-wrapper .asg-mobile-step-toggle-copy small {
        font-size: 10px !important;
        letter-spacing: .16em !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle-copy strong {
        font-size: 13px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-step-toggle-copy strong::before {
        content: "Apri menu";
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-step-toggle-copy strong {
        font-size: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-step-toggle-copy strong::before {
        font-size: 13px !important;
    }
}

@media (max-width: 420px) {
    #asg-configuratore-wrapper .asg-mobile-swatch-grid,
    #asg-configuratore-wrapper .asg-mobile-choice-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    }
}


/* Phase 2.5.1 - Mobile dropdown as stepped configurator + live color previews */
@media (max-width: 767px) {
    #asg-configuratore-wrapper .asg-mobile-config-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        padding: 2px 2px 10px !important;
        margin: 0 !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tabs::-webkit-scrollbar {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab {
        position: relative !important;
        flex: 0 0 132px !important;
        min-width: 132px !important;
        min-height: 54px !important;
        padding: 8px 10px 8px 38px !important;
        display: grid !important;
        grid-template-columns: 20px minmax(0,1fr) !important;
        align-items: center !important;
        gap: 7px !important;
        border-radius: 16px !important;
        border: 1px solid rgba(255,255,255,.08) !important;
        background: rgba(255,255,255,.04) !important;
        color: rgba(232,240,255,.68) !important;
        text-align: left !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.035) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab::before {
        content: "" !important;
        position: absolute !important;
        left: 9px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 22px !important;
        height: 22px !important;
        border-radius: 9px !important;
        display: grid !important;
        place-items: center !important;
        background: rgba(79,140,255,.12) !important;
        border: 1px solid rgba(115,167,255,.16) !important;
        color: #d7e5ff !important;
        font-size: 9px !important;
        font-weight: 950 !important;
        letter-spacing: -.02em !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab:nth-child(1)::before { content: "01" !important; }
    #asg-configuratore-wrapper .asg-mobile-config-tab:nth-child(2)::before { content: "02" !important; }
    #asg-configuratore-wrapper .asg-mobile-config-tab:nth-child(3)::before { content: "03" !important; }
    #asg-configuratore-wrapper .asg-mobile-config-tab:nth-child(4)::before { content: "04" !important; }

    #asg-configuratore-wrapper .asg-mobile-config-tab i {
        width: 20px !important;
        height: 20px !important;
        display: inline-grid !important;
        place-items: center !important;
        color: inherit !important;
        font-size: 12px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab span {
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        font-size: 11px !important;
        font-weight: 950 !important;
        letter-spacing: .03em !important;
        text-transform: uppercase !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab.is-active {
        border-color: rgba(79,140,255,.48) !important;
        background: linear-gradient(135deg, rgba(79,140,255,.28), rgba(0,201,141,.10)) !important;
        color: #fff !important;
        box-shadow: 0 12px 28px rgba(79,140,255,.12) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab.is-active::before {
        background: linear-gradient(135deg,#4f8cff,#00c98d) !important;
        color: #fff !important;
        border-color: transparent !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel-body {
        display: block !important;
        padding: 12px 10px calc(18px + env(safe-area-inset-bottom, 0px)) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section,
    #asg-configuratore-wrapper .asg-mobile-config-section.is-active {
        display: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section.is-active {
        display: grid !important;
        gap: 12px !important;
        animation: asgMobileStepIn .22s cubic-bezier(.16,1,.3,1) both !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-help {
        display: block !important;
        margin: 0 !important;
        color: rgba(229,238,255,.62) !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        font-weight: 700 !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-section[data-mobile-section="finishes"] {
        border-color: rgba(0,201,141,.18) !important;
        background:
            radial-gradient(circle at 94% 12%, rgba(0,201,141,.10), transparent 32%),
            rgba(255,255,255,.03) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        gap: 9px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-btn {
        min-height: 62px !important;
        padding: 9px !important;
        grid-template-columns: 36px minmax(0,1fr) 18px !important;
        gap: 10px !important;
        border-radius: 17px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-dot {
        width: 34px !important;
        height: 34px !important;
        border-radius: 12px !important;
        background: var(--asg-mobile-swatch-bg, linear-gradient(135deg,#4f8cff,#00c98d)) !important;
        border: 1px solid rgba(255,255,255,.26) !important;
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.22),
            0 8px 18px rgba(0,0,0,.22) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-btn.is-active .asg-mobile-swatch-dot {
        outline: 2px solid rgba(0,201,141,.92) !important;
        outline-offset: 2px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-step-toggle-copy strong,
    #asg-configuratore-wrapper .asg-mobile-step-toggle-copy strong {
        font-size: 13px !important;
        line-height: 1.1 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-step-toggle-copy strong::before {
        content: none !important;
    }

    @keyframes asgMobileStepIn {
        from { opacity: 0; transform: translateY(8px); }
        to { opacity: 1; transform: translateY(0); }
    }
}

@media (max-width: 420px) {
    #asg-configuratore-wrapper .asg-mobile-config-tab {
        flex-basis: 118px !important;
        min-width: 118px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-swatch-grid {
        grid-template-columns: minmax(0,1fr) !important;
    }
}


/* Phase 2.5.2 - sticky mobile configurator + sticky price + clearer scrollable step tabs */
@media (max-width: 767px) {
    #asg-configuratore-wrapper {
        --asg-mobile-config-top: calc(64px + env(safe-area-inset-top, 0px)) !important;
        --asg-mobile-config-menu-height: 62px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-shell {
        position: fixed !important;
        top: var(--asg-mobile-config-top) !important;
        left: 10px !important;
        right: 10px !important;
        z-index: 9997 !important;
        display: block !important;
        pointer-events: none !important;
    }

    #asg-configuratore-wrapper .asg-mobile-step-toggle,
    #asg-configuratore-wrapper .asg-mobile-config-panel {
        pointer-events: auto !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-grid {
        padding-top: calc(var(--asg-mobile-config-menu-height) + 16px) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tabs {
        position: relative !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x proximity !important;
        padding: 4px 36px 8px 2px !important;
        margin: 0 !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
        mask-image: linear-gradient(90deg, #000 0%, #000 78%, transparent 100%) !important;
        -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 78%, transparent 100%) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tab {
        scroll-snap-align: start !important;
        flex: 0 0 134px !important;
        min-width: 134px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tabs-hint {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 7px !important;
        width: 100% !important;
        margin: -3px 0 8px !important;
        padding: 0 7px !important;
        color: rgba(222, 235, 255, .64) !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        letter-spacing: .13em !important;
        text-transform: uppercase !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tabs-hint i {
        color: #73a7ff !important;
        animation: asgStepHintArrow 1.05s ease-in-out infinite !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tabs::after {
        content: "" !important;
        position: sticky !important;
        right: 0 !important;
        flex: 0 0 18px !important;
        width: 18px !important;
        min-width: 18px !important;
        align-self: stretch !important;
        pointer-events: none !important;
        background: linear-gradient(90deg, transparent, rgba(5,13,31,.96)) !important;
    }

    body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price,
    body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price.is-visible {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateY(0) scale(1) !important;
        z-index: 9996 !important;
    }

    body #asg-mobile-sticky-price {
        left: 10px !important;
        right: 10px !important;
        bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
        width: auto !important;
        max-width: none !important;
        min-height: 56px !important;
        padding: 10px 12px 10px 14px !important;
        border-radius: 18px !important;
    }

    body #asg-mobile-sticky-price::after {
        content: 'PDF' !important;
        width: 38px !important;
        height: 38px !important;
        border-radius: 13px !important;
    }
}

@media (max-width: 420px) {
    #asg-configuratore-wrapper .asg-mobile-config-tab {
        flex-basis: 124px !important;
        min-width: 124px !important;
    }
}

@keyframes asgStepHintArrow {
    0%, 100% { transform: translateX(0); opacity: .62; }
    50% { transform: translateX(5px); opacity: 1; }
}


/* Phase 2.5.3 - scoped mobile sticky UI and price visibility guards */
@media (max-width: 767px) {
    #asg-configuratore-wrapper .asg-mobile-step-shell {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateY(-10px) !important;
        pointer-events: none !important;
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
    }

    body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-step-shell {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) !important;
        pointer-events: none !important;
    }

    body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-step-toggle,
    body.asg-configurator-fixed-ui-active #asg-configuratore-wrapper.asg-state-configurator .asg-mobile-config-panel {
        pointer-events: auto !important;
    }

    #asg-configuratore-wrapper.asg-state-models .asg-mobile-step-shell,
    body:not(.asg-configurator-fixed-ui-active) #asg-configuratore-wrapper .asg-mobile-step-shell {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body:not(.asg-configurator-fixed-ui-active) #asg-mobile-sticky-price,
    body.asg-configurator-price-visible #asg-mobile-sticky-price,
    body.asg-configurator-fixed-ui-active.asg-configurator-price-visible #asg-mobile-sticky-price,
    body.asg-configurator-fixed-ui-active #asg-mobile-sticky-price:not(.is-visible) {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateY(18px) scale(.98) !important;
    }

    body.asg-configurator-fixed-ui-active.asg-configurator-price-compact-active #asg-mobile-sticky-price.is-visible {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateY(0) scale(1) !important;
    }

    body.asg-configurator-price-visible #asg-configuratore-wrapper .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        box-shadow: 0 16px 34px rgba(0,0,0,.24) !important;
    }
}


/* Phase 2.5.4 - mobile final: price-only sticky, vertical viewer controls, clean price dock */
@media (max-width: 767px) {
    body #asg-mobile-sticky-price,
    body.asg-configurator-fixed-ui-active.asg-configurator-price-compact-active #asg-mobile-sticky-price.is-visible {
        left: 12px !important;
        right: 76px !important;
        bottom: calc(7px + env(safe-area-inset-bottom, 0px)) !important;
        width: auto !important;
        max-width: none !important;
        min-height: 50px !important;
        padding: 8px 14px !important;
        border-radius: 17px !important;
        justify-content: space-between !important;
        gap: 10px !important;
        cursor: default !important;
    }

    body #asg-mobile-sticky-price::after {
        content: none !important;
        display: none !important;
    }

    body #asg-mobile-sticky-price .asg-mobile-sticky-label {
        font-size: 10px !important;
        line-height: 1 !important;
        letter-spacing: .14em !important;
    }

    body #asg-mobile-sticky-price .asg-mobile-sticky-value {
        font-size: 24px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls {
        left: 12px !important;
        right: auto !important;
        bottom: 12px !important;
        top: auto !important;
        transform: none !important;
        width: 50px !important;
        max-width: 50px !important;
        display: grid !important;
        grid-template-columns: 50px !important;
        grid-auto-rows: 50px !important;
        gap: 8px !important;
        justify-content: start !important;
        justify-items: stretch !important;
        align-items: stretch !important;
        padding: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper #btn-resume-rotate {
        width: 50px !important;
        min-width: 50px !important;
        max-width: 50px !important;
        height: 50px !important;
        min-height: 50px !important;
        max-height: 50px !important;
        padding: 0 !important;
        font-size: 0 !important;
        border-radius: 15px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn i,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm i {
        font-size: 19px !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 18px 16px !important;
        border-radius: 22px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked .asg-dock-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas:
            "price"
            "cta" !important;
        gap: 14px !important;
        align-items: stretch !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-meta {
        grid-area: price !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        display: grid !important;
        justify-items: start !important;
        gap: 6px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .price-label {
        margin: 0 !important;
        font-size: 11px !important;
        letter-spacing: .16em !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .price-value {
        margin: 0 !important;
        display: inline-flex !important;
        align-items: baseline !important;
        gap: 4px !important;
        font-size: clamp(46px, 14vw, 64px) !important;
        line-height: .92 !important;
        white-space: nowrap !important;
        overflow: visible !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .currency {
        font-size: .42em !important;
        margin-right: 2px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid {
        grid-area: cta !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        margin: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn {
        width: 100% !important;
        min-height: 54px !important;
        border-radius: 16px !important;
        padding: 0 16px !important;
        font-size: 13px !important;
        justify-content: center !important;
        white-space: normal !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-footer,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-inline-meta,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock #asg-price-warning,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-module-summary {
        display: none !important;
    }
}


/* Phase 2.5.5 - mobile correction: horizontal viewer buttons, cleaner mobile dock, no black step fade */
@media (max-width: 767px) {
    /* Viewer: i quattro comandi tornano in orizzontale, compatti e centrati. */
    #asg-configuratore-wrapper .asg-viewer-controls {
        left: 50% !important;
        right: auto !important;
        bottom: 12px !important;
        top: auto !important;
        transform: translateX(-50%) !important;
        width: auto !important;
        max-width: calc(100% - 24px) !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 8px !important;
        border-radius: 22px !important;
        background: rgba(5, 12, 27, .76) !important;
        border: 1px solid rgba(108, 142, 205, .16) !important;
        box-shadow: 0 16px 34px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.04) !important;
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper #btn-resume-rotate {
        width: 46px !important;
        min-width: 46px !important;
        max-width: 46px !important;
        height: 46px !important;
        min-height: 46px !important;
        max-height: 46px !important;
        padding: 0 !important;
        font-size: 0 !important;
        border-radius: 15px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 46px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn i,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm i {
        font-size: 17px !important;
        margin: 0 !important;
        line-height: 1 !important;
    }

    /* Menu Configura: tolta la sfumatura nera/fade sullo scroll degli step. */
    #asg-configuratore-wrapper .asg-mobile-config-tabs {
        mask-image: none !important;
        -webkit-mask-image: none !important;
        padding-right: 2px !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-tabs::after {
        content: none !important;
        display: none !important;
        background: none !important;
        flex: 0 0 0 !important;
        width: 0 !important;
        min-width: 0 !important;
    }

    /* Dock prezzi mobile: box più ordinato, più basso, senza collisioni tra prezzo e CTA. */
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock {
        margin-top: 14px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked {
        padding: 16px !important;
        border-radius: 22px !important;
        overflow: hidden !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-main,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked .asg-dock-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas:
            "price"
            "cta" !important;
        gap: 12px !important;
        align-items: stretch !important;
        min-width: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-meta {
        grid-area: price !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        display: grid !important;
        justify-items: start !important;
        align-items: start !important;
        gap: 5px !important;
        overflow: visible !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .price-label {
        margin: 0 !important;
        font-size: 10px !important;
        line-height: 1 !important;
        letter-spacing: .16em !important;
        white-space: nowrap !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .price-value {
        margin: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        gap: 5px !important;
        font-size: clamp(42px, 13vw, 58px) !important;
        line-height: .9 !important;
        letter-spacing: -.055em !important;
        white-space: nowrap !important;
        overflow: visible !important;
        max-width: 100% !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .currency {
        position: static !important;
        display: inline-block !important;
        width: auto !important;
        height: auto !important;
        min-width: 0 !important;
        min-height: 0 !important;
        padding: 0 !important;
        margin: .12em 3px 0 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        transform: none !important;
        font-size: .42em !important;
        line-height: 1 !important;
        opacity: .9 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid {
        grid-area: cta !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        margin: 0 !important;
        min-width: 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 48px !important;
        height: 48px !important;
        border-radius: 15px !important;
        padding: 0 10px !important;
        font-size: 10.5px !important;
        line-height: 1.05 !important;
        letter-spacing: .02em !important;
        justify-content: center !important;
        text-align: center !important;
        white-space: normal !important;
        overflow: hidden !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn i {
        font-size: 12px !important;
        margin: 0 4px 0 0 !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock #asg-config-summary-bar,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-footer,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-dock-inline-meta,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock #asg-price-warning,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-module-summary {
        display: none !important;
    }

    /* Sticky price mobile resta solo prezzo, senza pseudo tasti. */
    body #asg-mobile-sticky-price::after {
        content: none !important;
        display: none !important;
    }
}

@media (max-width: 370px) {
    #asg-configuratore-wrapper .asg-viewer-controls {
        gap: 6px !important;
        padding: 7px !important;
    }

    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper #btn-resume-rotate {
        width: 43px !important;
        min-width: 43px !important;
        max-width: 43px !important;
        height: 43px !important;
        min-height: 43px !important;
        max-height: 43px !important;
        flex-basis: 43px !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-cta-grid .btn {
        font-size: 9.5px !important;
        padding-inline: 8px !important;
    }
}


/* Phase 2.5.7 - desktop performance recovery: keep right step rail visible, remove repaint-heavy blur/content-visibility hacks */
@media (min-width: 992px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey,
    body > .asg-config-section-footer-nav,
    #asg-config-section-footer-nav.asg-config-section-footer-nav {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        transition: none !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-ux-journey {
        will-change: auto !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock,
    #asg-configuratore-wrapper.asg-state-configurator .asg-inline-price-panel-docked {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
}


/* Phase 2.5.8 - restore viewer sharpness without repaint-heavy desktop hacks */
@media (min-width: 992px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section,
    #asg-configuratore-wrapper.asg-state-configurator .asg-final-summary-card {
        content-visibility: visible !important;
        contain-intrinsic-size: auto !important;
    }

    #asg-configuratore-wrapper .asg-viewer-stage canvas {
        image-rendering: auto !important;
    }
}

/* Fymera performance hotfix - v2.5.9
   Target: remove repaint traps introduced by the late mobile/sticky polish without changing configurator logic. */
#asg-configuratore-wrapper.asg-state-configurator .asg-config-section[hidden],
#asg-configuratore-wrapper.asg-state-configurator #asg-final-summary-card[hidden] {
    display: none !important;
}

@media (min-width: 992px) {
    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section,
    #asg-configuratore-wrapper.asg-state-configurator .asg-final-summary-card {
        content-visibility: auto !important;
        contain-intrinsic-size: 420px !important;
        contain: layout paint style !important;
    }

    #asg-configuratore-wrapper.asg-state-configurator .asg-config-section.active,
    #asg-configuratore-wrapper.asg-state-configurator .asg-final-summary-card.active {
        content-visibility: visible !important;
    }
}

@media (max-width: 767px) {
    #asg-configuratore-wrapper .asg-mobile-step-toggle,
    #asg-configuratore-wrapper .asg-mobile-config-panel,
    #asg-configuratore-wrapper .asg-viewer-controls,
    #asg-configuratore-wrapper .asg-viewer-control-toast,
    #asg-configuratore-wrapper.asg-state-configurator .asg-viewer-bottom-dock .asg-inline-price-panel.asg-inline-price-panel-docked,
    #asg-configuratore-wrapper .asg-shadow-popover,
    body > #asg-shadow-popover.asg-shadow-popover {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        box-shadow: 0 14px 32px rgba(0,0,0,.30) !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel,
    #asg-configuratore-wrapper .asg-mobile-step-toggle,
    #asg-configuratore-wrapper .asg-viewer-controls .btn,
    #asg-configuratore-wrapper .asg-viewer-controls .btn-sm,
    #asg-configuratore-wrapper .asg-mobile-config-tab,
    #asg-configuratore-wrapper .asg-mobile-choice-btn,
    #asg-configuratore-wrapper .asg-mobile-swatch-btn,
    #asg-configuratore-wrapper .asg-mobile-optional-btn {
        will-change: auto !important;
        transition-duration: .12s !important;
    }

    #asg-configuratore-wrapper .asg-mobile-config-panel[aria-hidden="true"] {
        pointer-events: none !important;
        transform: translateY(-4px) !important;
    }

    #asg-configuratore-wrapper .asg-step-hint-arrow,
    #asg-configuratore-wrapper [class*="asgStepHintArrow"] {
        animation: none !important;
    }
}
