.fwc {
    --fwc-bg: #111314;
    --fwc-panel: #1c1f20;
    --fwc-panel-2: #242728;
    --fwc-border: #3a3e40;
    --fwc-text: #f7f7f4;
    --fwc-muted: #b1b5b6;
    --fwc-orange: #f39a27;
    --fwc-orange-dark: #c66c0b;
    --fwc-danger: #ff8c78;
    background:
        radial-gradient(circle at 100% 0%, rgba(243, 154, 39, 0.14), transparent 31rem),
        linear-gradient(145deg, #202324 0%, var(--fwc-bg) 58%, #090a0b 100%);
    border: 1px solid #303335;
    border-radius: 22px;
    box-sizing: border-box;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.34);
    color: var(--fwc-text);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    /*
     * WordPress themes often place page content in a narrow article column.
     * Give the configurator its own viewport-based width so the room preview
     * remains large, while keeping a safe gutter on small screens.
     */
    margin-bottom: 24px;
    margin-left: calc((100% - min(1480px, calc(100vw - 16px))) / 2);
    margin-right: calc((100% - min(1480px, calc(100vw - 16px))) / 2);
    margin-top: 24px;
    max-width: 1480px;
    overflow: hidden;
    overflow: clip;
    padding: clamp(18px, 3vw, 42px);
    padding-bottom: clamp(88px, 8vw, 110px);
    width: min(1480px, calc(100vw - 16px));
}

.fwc *,
.fwc *::before,
.fwc *::after {
    box-sizing: border-box;
}

.fwc button,
.fwc input,
.fwc select,
.fwc textarea {
    font: inherit;
}

.fwc button {
    cursor: pointer;
    touch-action: manipulation;
}

.fwc [hidden] {
    display: none !important;
}

.fwc__header {
    align-items: center;
    border-bottom: 1px solid var(--fwc-border);
    display: flex;
    gap: clamp(18px, 4vw, 44px);
    margin-bottom: 22px;
    padding-bottom: 22px;
}

.fwc__logo {
    display: block;
    flex: 0 0 auto;
    height: auto;
    max-width: 220px;
    width: clamp(135px, 18vw, 220px);
}

.fwc__header h1,
.fwc__header h2,
.fwc__header p,
.fwc-photo h3,
.fwc-section h3,
.fwc-section p,
.fwc-quote h3,
.fwc-quote p {
    margin: 0;
}

.fwc__header h1,
.fwc__header h2 {
    color: var(--fwc-text);
    font-size: clamp(25px, 3.3vw, 42px);
    font-weight: 650;
    letter-spacing: -0.025em;
    line-height: 1.08;
    margin: 3px 0 8px;
}

.fwc__header > div > p:last-child {
    color: var(--fwc-muted);
    font-size: clamp(14px, 1.5vw, 17px);
}

.fwc__eyebrow {
    color: var(--fwc-orange) !important;
    font-size: 12px !important;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.fwc__products {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin-bottom: 22px;
}

.fwc-product {
    background: var(--fwc-panel);
    border: 1px solid var(--fwc-border);
    border-radius: 10px;
    color: var(--fwc-text);
    min-height: 56px;
    padding: 10px 12px;
    transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.fwc-product:hover,
.fwc-product:focus-visible {
    border-color: var(--fwc-orange);
}

.fwc-product.is-active,
.fwc-product[aria-pressed="true"] {
    background: var(--fwc-orange);
    border-color: var(--fwc-orange);
    color: #171819;
    font-weight: 700;
}

.fwc__layout {
    align-items: start;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 0.92fr) minmax(380px, 1.08fr);
}

.fwc__form,
.fwc__visual {
    display: grid;
    gap: 16px;
    min-width: 0;
}

.fwc__visual {
    position: sticky;
    top: 24px;
    z-index: 30;
}

.fwc-section,
.fwc-photo,
.fwc-important-info,
.fwc-price,
.fwc-quote {
    background: rgba(28, 31, 32, 0.94);
    border: 1px solid var(--fwc-border);
    border-radius: 16px;
    padding: clamp(16px, 2.2vw, 25px);
}

.fwc-section {
    display: grid;
    gap: 17px;
}

.fwc-section__heading {
    align-items: start;
    display: flex;
    gap: 12px;
}

.fwc-section__heading > span {
    align-items: center;
    background: var(--fwc-orange);
    border-radius: 50%;
    color: #171819;
    display: inline-flex;
    flex: 0 0 30px;
    font-size: 14px;
    font-weight: 800;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.fwc-section__heading h3,
.fwc-photo h3 {
    color: var(--fwc-text);
    font-size: clamp(18px, 2vw, 23px);
    font-weight: 650;
    line-height: 1.2;
}

.fwc-section__heading p {
    color: var(--fwc-muted);
    font-size: 13px;
    margin-top: 4px;
}

.fwc-grid {
    display: grid;
    gap: 13px;
}

.fwc-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fwc-colours {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.fwc-colours legend {
    color: var(--fwc-text);
    font-size: 14px;
    font-weight: 650;
    margin-bottom: 9px;
    padding: 0;
}

.fwc-colour-grid {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fwc-colour-card {
    background: #141617;
    border: 1px solid #414547;
    border-radius: 10px;
    cursor: pointer;
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 7px;
    position: relative;
}

.fwc-colour-card:hover,
.fwc-colour-card:focus-within {
    border-color: var(--fwc-orange);
}

.fwc-colour-card:has(input:checked) {
    border-color: var(--fwc-orange);
    box-shadow: 0 0 0 2px rgba(243, 154, 39, 0.22);
}

.fwc-colour-card input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.fwc-colour-card__image {
    background-color: #111315;
    background-image:
        linear-gradient(145deg, rgba(255, 255, 255, 0.17), transparent 36%),
        radial-gradient(circle at 80% 75%, rgba(255, 255, 255, 0.08), transparent 32%);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 6px;
    display: block;
    min-height: 62px;
    position: relative;
}

.fwc-colour-card__image::after {
    background: repeating-linear-gradient(
        125deg,
        rgba(255, 255, 255, 0.035) 0,
        rgba(255, 255, 255, 0.035) 1px,
        transparent 1px,
        transparent 4px
    );
    border-radius: inherit;
    content: "";
    inset: 0;
    position: absolute;
}

.fwc-colour-card__image--black {
    background-color: #111315;
}

.fwc-colour-card__image--cream {
    background-color: #e8e0ca;
}

.fwc-colour-card__image--quartz2 {
    background-color: #9a8b75;
}

.fwc-colour-card__image--bronze-dark {
    background-color: #4d3327;
}

.fwc-colour-card__image--bronze-light {
    background-color: #957158;
}

.fwc-colour-card__image--beige {
    background-color: #b7a787;
}

.fwc-colour-card__image--anthracite {
    background-color: #383e42;
}

.fwc-colour-card__image--ral {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.16), transparent 42%),
        #17334d;
}

.fwc-glasses {
    margin-bottom: 13px;
}

.fwc-glass-card__image--clear {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.72), rgba(160, 205, 218, 0.12) 42%, rgba(255, 255, 255, 0.38)),
        linear-gradient(45deg, #3b4245 25%, #2c3133 25%, #2c3133 50%, #3b4245 50%, #3b4245 75%, #2c3133 75%);
    background-size: auto, 18px 18px;
}

.fwc-glass-card__image--bronze {
    background:
        linear-gradient(145deg, rgba(255, 239, 218, 0.34), transparent 42%),
        rgba(113, 74, 43, 0.82);
}

.fwc-glass-card__image--grey {
    background:
        linear-gradient(145deg, rgba(235, 248, 252, 0.28), transparent 42%),
        rgba(61, 70, 75, 0.88);
}

.fwc-glass-card__image--matte-milk {
    background: linear-gradient(145deg, #f1f2ef, #cdd3d2);
}

.fwc-glass-card__image--matte-grey {
    background: linear-gradient(145deg, #858c8f, #555d60);
}

.fwc-glass-card__image--matte-bronze {
    background: linear-gradient(145deg, #80634f, #4e3b30);
}

.fwc-glass-card__image--structure {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.42), transparent 38%),
        repeating-linear-gradient(
            90deg,
            #cbd6d6 0,
            #cbd6d6 5px,
            #8fa0a2 6px,
            #e4ebea 9px
        );
}

.fwc-colour-card strong {
    color: var(--fwc-text);
    font-size: 12px;
    line-height: 1.25;
}

.fwc-colour-card small {
    color: var(--fwc-muted);
    font-size: 10px;
    line-height: 1.25;
}

.fwc-field {
    color: var(--fwc-text);
    display: grid;
    font-size: 14px;
    font-weight: 650;
    gap: 7px;
    min-width: 0;
}

.fwc-field small,
.fwc-help,
.fwc-status {
    color: var(--fwc-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
}

.fwc input[type="text"],
.fwc input[type="email"],
.fwc input[type="tel"],
.fwc input[type="number"],
.fwc select,
.fwc textarea {
    appearance: none;
    background: #111314;
    border: 1px solid #4a4e50;
    border-radius: 9px;
    color: var(--fwc-text);
    min-height: 46px;
    outline: none;
    padding: 10px 12px;
    width: 100%;
}

.fwc select {
    background-image:
        linear-gradient(45deg, transparent 50%, var(--fwc-muted) 50%),
        linear-gradient(135deg, var(--fwc-muted) 50%, transparent 50%);
    background-position:
        calc(100% - 17px) 20px,
        calc(100% - 12px) 20px;
    background-repeat: no-repeat;
    background-size: 5px 5px, 5px 5px;
    padding-right: 34px;
}

.fwc textarea {
    min-height: 88px;
    resize: vertical;
}

.fwc input:focus,
.fwc select:focus,
.fwc textarea:focus,
.fwc button:focus-visible {
    border-color: var(--fwc-orange);
    box-shadow: 0 0 0 3px rgba(243, 154, 39, 0.2);
}

.fwc-input-unit {
    display: block;
    position: relative;
}

.fwc-input-unit input {
    padding-right: 48px !important;
}

.fwc-input-unit small {
    color: var(--fwc-muted);
    position: absolute;
    right: 13px;
    top: 50%;
    transform: translateY(-50%);
}

.fwc-check {
    align-items: center;
    background: #151718;
    border: 1px solid #414547;
    border-radius: 10px;
    color: var(--fwc-text);
    display: flex;
    font-size: 14px;
    font-weight: 600;
    gap: 11px;
    padding: 12px 13px;
}

.fwc-check input {
    accent-color: var(--fwc-orange);
    flex: 0 0 auto;
    height: 20px;
    margin: 0;
    width: 20px;
}

.fwc-check:has(input:checked) {
    border-color: rgba(243, 154, 39, 0.74);
}

.fwc-design-picker {
    border: 0;
    display: grid;
    gap: 14px;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.fwc-design-picker > legend {
    color: var(--fwc-text);
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 9px;
    padding: 0;
}

.fwc-design-modes {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fwc-design-mode {
    cursor: pointer;
    min-width: 0;
    position: relative;
}

.fwc-design-mode input,
.fwc-design-card input {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

.fwc-design-mode span {
    align-items: center;
    background: #141617;
    border: 1px solid #414547;
    border-radius: 9px;
    color: var(--fwc-text);
    display: flex;
    font-size: 12px;
    font-weight: 700;
    justify-content: center;
    min-height: 44px;
    padding: 8px;
    text-align: center;
    transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}

.fwc-design-mode:hover span,
.fwc-design-mode:focus-within span {
    border-color: var(--fwc-orange);
}

.fwc-design-mode:has(input:checked) span {
    background: var(--fwc-orange);
    border-color: var(--fwc-orange);
    color: #171819;
}

.fwc-design-panel {
    background: rgba(10, 12, 13, 0.42);
    border: 1px solid #373b3d;
    border-radius: 12px;
    display: grid;
    gap: 12px;
    padding: 13px;
}

.fwc-design-panel__heading {
    display: grid;
    gap: 3px;
}

.fwc-design-panel__heading strong {
    color: var(--fwc-text);
    font-size: 14px;
}

.fwc-design-panel__heading small {
    color: var(--fwc-muted);
    font-size: 11px;
    line-height: 1.4;
}

.fwc-design-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fwc-design-card {
    background: #151718;
    border: 1px solid #414547;
    border-radius: 9px;
    cursor: pointer;
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 7px;
    position: relative;
    transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.fwc-design-card:hover,
.fwc-design-card:focus-within {
    border-color: var(--fwc-orange);
    transform: translateY(-1px);
}

.fwc-design-card:has(input:checked) {
    border-color: var(--fwc-orange);
    box-shadow: 0 0 0 2px rgba(243, 154, 39, 0.22);
}

.fwc-design-card:has(input:checked)::after {
    align-items: center;
    background: var(--fwc-orange);
    border-radius: 50%;
    color: #171819;
    content: "\2713";
    display: flex;
    font-size: 10px;
    font-weight: 900;
    height: 19px;
    justify-content: center;
    position: absolute;
    right: 5px;
    top: 5px;
    width: 19px;
}

.fwc-design-card__drawing {
    align-items: center;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.06), transparent 45%),
        #202425;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    min-height: 112px;
    padding: 7px;
}

.fwc-design-card svg {
    display: block;
    fill: none;
    height: 100px;
    max-width: 62px;
    stroke: #f2f2ed;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 3;
    width: 100%;
}

.fwc-design-card strong {
    color: var(--fwc-text);
    font-size: 11px;
    text-align: center;
}

.fwc-handle-picker {
    background: rgba(10, 12, 13, 0.42);
    border: 1px solid #373b3d;
    border-radius: 12px;
    padding: 13px;
}

.fwc-handle-grid .fwc-design-card__drawing {
    min-height: 96px;
}

.fwc-handle-grid .fwc-design-card svg {
    height: 84px;
}

.fwc-design-card svg .fwc-handle-fill {
    fill: #f2f2ed;
    stroke-width: 2;
}

.fwc-design-values {
    display: none !important;
}

.fwc-form-values {
    display: none !important;
}

.fwc-delivery-note {
    align-items: center;
    background: rgba(243, 154, 39, 0.08);
    border-left: 3px solid var(--fwc-orange);
    border-radius: 7px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px 9px;
    padding: 9px 11px;
}

.fwc-delivery-note span {
    color: var(--fwc-orange);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fwc-delivery-note strong {
    color: var(--fwc-text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.fwc-photo {
    background:
        radial-gradient(circle at 50% 20%, rgba(243, 154, 39, 0.08), transparent 45%),
        #151718;
    display: grid;
    gap: 14px;
}

.fwc-photo__heading {
    align-items: end;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

.fwc-photo__tools {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end;
}

.fwc-view-toggle {
    align-items: center;
    background: #25292b;
    border: 1px solid #4a4e50;
    border-radius: 999px;
    color: var(--fwc-text);
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    gap: 8px;
    min-height: 36px;
    padding: 7px 12px;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.fwc-view-toggle:hover,
.fwc-view-toggle:focus-within {
    border-color: var(--fwc-orange);
}

.fwc-view-toggle:has(input:checked) {
    background: rgba(243, 154, 39, 0.16);
    border-color: var(--fwc-orange);
    box-shadow: 0 0 22px rgba(243, 154, 39, 0.18);
}

.fwc-view-toggle input {
    accent-color: var(--fwc-orange);
    height: 17px;
    margin: 0;
    width: 17px;
}

.fwc-view-button {
    font-family: inherit;
}

.fwc-view-button[aria-pressed="true"] {
    background: rgba(243, 154, 39, 0.16);
    border-color: var(--fwc-orange);
    box-shadow: 0 0 22px rgba(243, 154, 39, 0.18);
}

.fwc-link-button {
    background: transparent;
    border: 0;
    color: var(--fwc-orange);
    padding: 5px 0;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fwc-canvas-wrap {
    aspect-ratio: 12 / 7.6;
    background:
        linear-gradient(160deg, #292c2e, #0d0f10);
    border: 1px solid #414547;
    border-radius: 12px;
    min-height: 250px;
    overflow: hidden;
    position: relative;
}

.fwc-canvas-wrap::after {
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    content: "";
    inset: 7px;
    pointer-events: none;
    position: absolute;
}

.fwc canvas {
    display: block;
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.fwc canvas.is-adjusting {
    cursor: crosshair;
    touch-action: none;
}

.fwc canvas.is-interactive {
    cursor: pointer;
}

.fwc-photo__empty {
    align-items: center;
    color: var(--fwc-text);
    display: flex;
    flex-direction: column;
    gap: 7px;
    inset: 0;
    justify-content: center;
    padding: 24px;
    pointer-events: none;
    position: absolute;
    text-align: center;
}

.fwc-photo__empty strong {
    font-size: 18px;
}

.fwc-photo__empty span {
    color: var(--fwc-muted);
    font-size: 13px;
}

.fwc-photo__actions,
.fwc-quote__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.fwc-upload {
    display: inline-flex;
    position: relative;
}

.fwc-upload input {
    height: 1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.fwc-upload span,
.fwc-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 9px;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 44px;
    padding: 10px 17px;
    text-decoration: none;
}

.fwc-upload span,
.fwc-button--primary {
    background: var(--fwc-orange);
    border-color: var(--fwc-orange);
    color: #171819;
}

.fwc-upload:hover span,
.fwc-upload input:focus-visible + span,
.fwc-button--primary:hover,
.fwc-button--primary:focus-visible {
    background: #ffac40;
    border-color: #ffac40;
}

.fwc-button--secondary {
    background: #26292a;
    border-color: #4a4e50;
    color: var(--fwc-text);
}

.fwc-button--secondary:hover,
.fwc-button--secondary:focus-visible {
    border-color: var(--fwc-orange);
}

.fwc-button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.fwc-important-info {
    background:
        linear-gradient(135deg, rgba(245, 154, 35, 0.09), transparent 54%),
        rgba(28, 31, 32, 0.96);
    border-color: rgba(243, 154, 39, 0.48);
    box-shadow: inset 4px 0 0 var(--fwc-orange);
    display: grid;
    gap: 9px;
}

.fwc-important-info h3 {
    color: var(--fwc-orange);
    font-size: 18px;
    line-height: 1.2;
    margin: 0 0 2px;
}

.fwc-important-info p {
    color: var(--fwc-muted);
    font-size: 13px;
    line-height: 1.55;
    margin: 0;
}

.fwc-important-info strong {
    color: var(--fwc-text);
    font-weight: 700;
}

.fwc-price {
    backdrop-filter: blur(14px);
    background: rgba(20, 22, 23, 0.96);
    border-color: rgba(243, 154, 39, 0.64);
    bottom: max(10px, env(safe-area-inset-bottom));
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.46);
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    left: 50%;
    max-width: none;
    padding: 11px 14px;
    position: fixed;
    right: auto;
    transform: translateX(-50%);
    width: min(1180px, calc(100vw - 24px));
    z-index: 90;
}

.fwc-price > div {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    justify-content: flex-start;
    min-width: 0;
}

.fwc-price > div > span {
    color: var(--fwc-text);
    font-size: clamp(15px, 1.45vw, 18px);
    font-weight: 700;
    line-height: 1.25;
}

.fwc-price .fwc-price__label--short,
.fwc-price .fwc-button__label--short {
    display: none;
}

.fwc-price strong {
    color: var(--fwc-orange);
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 750;
    letter-spacing: -0.03em;
    line-height: 1;
    margin-left: auto;
    white-space: nowrap;
}

.fwc-price > p,
.fwc-price .fwc-status {
    display: none;
}

.fwc-price .fwc-button {
    min-height: 42px;
    padding: 8px 15px;
    white-space: nowrap;
    width: auto;
}

#fwc-sticky-exact-price {
    box-shadow: 0 0 0 1px rgba(243, 154, 39, 0.25), 0 8px 24px rgba(0, 0, 0, 0.28);
}

.fwc [aria-invalid="true"] {
    border-color: #f39a27 !important;
    box-shadow: 0 0 0 3px rgba(243, 154, 39, 0.2) !important;
}

.fwc-price .fwc-button span {
    color: inherit;
    font-size: inherit;
    max-width: none;
}

.fwc-seo {
    background: rgba(16, 18, 19, 0.72);
    border: 1px solid var(--fwc-border);
    border-radius: 16px;
    display: grid;
    gap: 20px;
    margin-top: 24px;
    padding: clamp(20px, 3vw, 32px);
}

.fwc-seo__intro {
    max-width: 920px;
}

.fwc-seo h2,
.fwc-seo h3,
.fwc-seo p {
    margin: 0;
}

.fwc-seo h2 {
    color: var(--fwc-text);
    font-size: clamp(22px, 2.6vw, 34px);
    line-height: 1.15;
    margin: 5px 0 10px;
}

.fwc-seo__intro > p:last-child,
.fwc-seo article p,
.fwc-seo__location {
    color: var(--fwc-muted);
    font-size: 14px;
    line-height: 1.65;
}

.fwc-seo__grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fwc-seo article {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 12px;
    padding: 16px;
}

.fwc-seo article h3 {
    color: var(--fwc-orange);
    font-size: 15px;
    line-height: 1.3;
    margin-bottom: 7px;
}

.fwc-seo__location {
    border-top: 1px solid var(--fwc-border);
    padding-top: 16px;
}

.fwc-noscript {
    background: #211f1b;
    border: 1px solid var(--fwc-orange);
    border-radius: 12px;
    color: var(--fwc-text);
    margin: 18px 0 0;
    padding: 16px;
}

.fwc-status {
    min-height: 18px;
}

.fwc-status:empty {
    display: none;
}

.fwc-status[data-state="error"],
#fwc-route-status[data-state="error"] {
    color: var(--fwc-danger);
}

.fwc-status[data-state="success"],
#fwc-route-status[data-state="success"] {
    color: #9ed4aa;
}

.fwc-quote {
    border-color: rgba(243, 154, 39, 0.64);
    display: grid;
    gap: 20px;
    margin-top: 22px;
}

.fwc-appointment {
    max-width: 980px;
}

.fwc-appointment__header {
    margin-bottom: 24px;
}

.fwc-appointment__form {
    display: grid;
    gap: 18px;
}

.fwc-appointment__quote {
    align-items: center;
    background: linear-gradient(135deg, rgba(243, 154, 39, 0.18), rgba(243, 154, 39, 0.05));
    border: 1px solid rgba(243, 154, 39, 0.58);
    border-radius: 14px;
    display: block;
    padding: 16px 20px;
}

.fwc-appointment__reference {
    display: grid;
    gap: 7px;
}

.fwc-appointment__reference span {
    color: var(--fwc-muted);
    font-size: 13px;
    text-transform: uppercase;
}

.fwc-appointment__reference input {
    background: transparent;
    border: 0;
    color: var(--fwc-orange);
    font-size: 20px;
    font-weight: 750;
    letter-spacing: 0.03em;
    outline: 0;
    padding: 0;
    width: 100%;
}

.fwc-appointment__section {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid var(--fwc-line);
    border-radius: 16px;
    padding: 20px;
}

.fwc-appointment__section h3 {
    color: var(--fwc-white);
    font-size: 18px;
    margin: 0 0 16px;
}

.fwc-appointment__section .fwc-field:last-child {
    margin-top: 14px;
}

.fwc-appointment__submit {
    justify-self: start;
    min-width: 280px;
}

.fwc-appointment__privacy {
    color: var(--fwc-muted);
    font-size: 13px;
    margin: -6px 0 0;
}

.fwc-appointment__notice {
    align-items: flex-start;
    border: 1px solid var(--fwc-line);
    border-radius: 16px;
    display: flex;
    gap: 18px;
    padding: 22px;
}

.fwc-appointment__notice h3 {
    color: var(--fwc-white);
    font-size: 21px;
    margin: 0 0 8px;
}

.fwc-appointment__notice p {
    color: var(--fwc-muted);
    margin: 5px 0;
}

.fwc-appointment__notice a {
    color: var(--fwc-orange);
}

.fwc-appointment__notice--success {
    background: rgba(52, 155, 89, 0.09);
    border-color: rgba(90, 190, 124, 0.45);
}

.fwc-appointment__notice--error {
    background: rgba(199, 73, 73, 0.08);
    border-color: rgba(212, 99, 99, 0.42);
}

.fwc-appointment__success-icon {
    align-items: center;
    background: var(--fwc-orange);
    border-radius: 50%;
    color: #171717;
    display: inline-flex;
    flex: 0 0 42px;
    font-size: 24px;
    font-weight: 800;
    height: 42px;
    justify-content: center;
}

.fwc-honeypot {
    height: 1px;
    left: -10000px;
    overflow: hidden;
    position: absolute;
    top: auto;
    width: 1px;
}

.fwc.is-loading #fwc-price {
    opacity: 0.72;
}

@media (max-width: 1120px) {
    .fwc__products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .fwc__layout {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 0.92fr);
    }

    .fwc-colour-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .fwc-seo__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 840px) {
    /* De vaste prijsbalk is op mobiel de primaire vervolgstap. Het grote
       middenblok verschijnt pas wanneer de bezoeker het formulier opent of
       nadat de exacte prijs is vrijgegeven. */
    #fwc-exact-price-panel:not(.is-form-open):not(.is-released) {
        display: none;
    }

    .fwc {
        border-radius: 14px;
        margin-bottom: 12px;
        margin-top: 12px;
    }

    .fwc__layout {
        grid-template-columns: 1fr;
    }

    .fwc__visual {
        order: -1;
        /* A tall sticky preview would cover the form on phones and tablets. */
        position: static;
        top: auto;
        z-index: auto;
    }

    .fwc-canvas-wrap {
        min-height: 220px;
    }
}

@media (max-width: 600px) {
    /* Astra en gangbare scroll-to-topvarianten blijven op configuratorpagina's
       volledig weg. Dit voorkomt dat ze na scrollen over de vaste CTA schuiven. */
    html.formix-configurator-page #ast-scroll-top,
    html.formix-configurator-page .ast-scroll-top-icon,
    html.formix-configurator-page #scroll-to-top,
    html.formix-configurator-page .scroll-to-top,
    html.formix-configurator-page .back-to-top,
    html.formix-configurator-page .scrollup {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    /* De mobiele prijsbalk bevat uitsluitend prijsinformatie en de actieve CTA.
       Thema's mogen hier geen eigen pijlen, iconen of pseudo-elementen invoegen. */
    .fwc-price .fwc-button::before,
    .fwc-price .fwc-button::after,
    .fwc-price .fwc-button svg,
    .fwc-price .fwc-button i,
    .fwc-price .fwc-button .icon-arrow,
    .fwc-price .fwc-button .ast-icon {
        content: none !important;
        display: none !important;
    }

    .fwc-price .fwc-button {
        background-image: none !important;
    }

    #fwc-sticky-exact-price {
        padding-inline: 11px !important;
        text-align: center;
        white-space: normal;
    }

    /* De gemeten balkhoogte wordt door configurator.js bijgehouden. Daardoor
       blijft WhatsApp ook boven een hogere/tweeregelige CTA op smalle telefoons. */
    html.formix-sticky-price-visible .qlwapp__container.qlwapp__container--bottom-right,
    html.formix-sticky-price-visible .qlwapp.qlwapp-bottom-right {
        bottom: var(--formix-sticky-price-clearance) !important;
        transition: bottom 180ms ease;
    }

    .fwc-view-button {
        min-height: 44px;
    }

    .fwc {
        padding: 13px;
        padding-bottom: 90px;
    }

    .fwc__header {
        align-items: flex-start;
        gap: 14px;
    }

    .fwc__logo {
        width: 105px;
    }

    .fwc__header h1,
    .fwc__header h2 {
        font-size: 24px;
    }

    .fwc__header > div > p:last-child {
        display: none;
    }

    .fwc__products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fwc-product {
        min-height: 50px;
        padding: 8px;
    }

    .fwc-grid--two {
        grid-template-columns: 1fr;
    }

    .fwc-colour-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fwc-design-modes {
        grid-template-columns: 1fr;
    }

    .fwc-design-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fwc-section,
    .fwc-photo,
    .fwc-important-info,
    .fwc-price,
    .fwc-quote {
        border-radius: 12px;
        padding: 15px;
    }

    .fwc-price {
        padding: 10px;
        width: calc(100vw - 16px);
    }

    .fwc-price > div > span {
        font-size: 13px;
        max-width: 140px;
    }

    .fwc-price strong {
        font-size: clamp(24px, 7vw, 31px);
    }

    .fwc-price .fwc-button {
        font-size: 12px;
        padding-inline: 10px;
    }

    .fwc input[type="text"],
    .fwc input[type="email"],
    .fwc input[type="tel"],
    .fwc input[type="number"],
    .fwc input[type="date"],
    .fwc select,
    .fwc textarea {
        font-size: 16px;
    }

    .fwc-seo {
        border-radius: 12px;
        padding: 18px;
    }

    .fwc-seo__grid {
        grid-template-columns: 1fr;
    }

    .fwc-important-info {
        gap: 8px;
    }

    .fwc-important-info h3 {
        font-size: 16px;
    }

    .fwc-important-info p {
        font-size: 12px;
    }

    .fwc-photo__heading {
        align-items: start;
        flex-direction: column;
        gap: 6px;
    }

    .fwc-photo__tools {
        justify-content: flex-start;
        width: 100%;
    }

    .fwc-canvas-wrap {
        min-height: 195px;
    }

    .fwc-photo__actions,
    .fwc-photo__actions > *,
    .fwc-quote__actions,
    .fwc-quote__actions > * {
        width: 100%;
    }

    .fwc-upload span {
        width: 100%;
    }

    .fwc-appointment__section {
        padding: 15px;
    }

    .fwc-appointment__submit {
        min-width: 0;
        width: 100%;
    }

    .fwc-appointment__quote {
        padding: 14px 16px;
    }
}

@media (max-width: 480px) {
    .fwc-price {
        gap: 7px;
        grid-template-columns: minmax(0, 1fr) auto;
        padding: 8px;
    }

    .fwc-price > div {
        align-items: start;
        display: grid;
        gap: 3px;
    }

    .fwc-price strong {
        font-size: clamp(23px, 7vw, 29px);
        margin-left: 0;
    }

    .fwc-price .fwc-price__label--full,
    .fwc-price .fwc-button__label--full {
        display: none;
    }

    .fwc-price .fwc-price__label--short,
    .fwc-price .fwc-button__label--short {
        display: inline;
    }

    .fwc-price .fwc-button {
        min-height: 46px;
        padding-inline: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fwc * {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

.fwc-design-review {
    background: linear-gradient(145deg, #202424, #181b1b);
    border: 1px solid rgba(243, 154, 39, 0.38);
    border-radius: 16px;
    margin-top: 18px;
    padding: clamp(18px, 3vw, 28px);
}

.fwc-design-review[hidden] {
    display: none !important;
}

.fwc-price strong {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fwc-design-review h3 {
    color: #fff;
    margin: 3px 0 8px;
}

.fwc-design-review > p:not(.fwc-status):not(.fwc__eyebrow) {
    color: #c7cccc;
    max-width: 720px;
}

.fwc-design-review > .fwc-button {
    margin-top: 8px;
}

#fwc-exact-price-intro > p:not(.fwc__eyebrow),
.fwc-exact-success > p:not(.fwc__eyebrow) {
    color: #c7cccc;
    max-width: 720px;
}

#fwc-exact-price-intro > .fwc-button {
    margin-top: 8px;
}

.fwc-exact-success {
    display: grid;
    gap: 7px;
}

.fwc-exact-success[hidden] {
    display: none !important;
}

.fwc-exact-success > span {
    color: #f39a27;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-top: 10px;
    text-transform: uppercase;
}

.fwc-exact-success > strong {
    color: #fff;
    font-size: clamp(1.8rem, 5vw, 2.8rem);
    line-height: 1.05;
    overflow-wrap: anywhere;
}

.fwc-exact-success > small {
    color: #c7cccc;
}

.fwc-design-review form {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin-top: 20px;
    padding-top: 20px;
}

.fwc-design-review form[hidden] {
    display: none;
}

.fwc-internal-location {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin-top: 14px;
    padding-top: 16px;
}

.fwc-town-suggestions {
    background: #171a1a;
    border: 1px solid #505757;
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
    margin-top: 5px;
    max-height: 260px;
    overflow-y: auto;
    position: relative;
    z-index: 20;
}

.fwc-town-suggestions[hidden] {
    display: none;
}

.fwc-town-option {
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    color: #f2f4f4;
    cursor: pointer;
    display: block;
    padding: 12px 14px;
    text-align: left;
    width: 100%;
}

.fwc-town-option:hover,
.fwc-town-option:focus-visible {
    background: rgba(243, 154, 39, 0.16);
    color: #ffad49;
    outline: none;
}

@media (max-width: 600px) {
    .fwc-design-review .fwc-grid--two {
        grid-template-columns: 1fr;
    }

    .fwc-design-review .fwc-button,
    .fwc-town-option {
        min-height: 46px;
        width: 100%;
    }
}
.fwc-multi-dimensions {
    display: grid;
    gap: 12px;
    grid-column: 1 / -1;
    width: 100%;
}
.fwc-element-dimension {
    display: grid;
    grid-template-columns: minmax(90px, .45fr) 1fr 1fr;
    gap: 12px;
    align-items: end;
    padding: 14px;
    border: 1px solid rgba(245, 145, 22, .45);
    border-radius: 12px;
    background: rgba(255,255,255,.025);
}
.fwc-element-dimension > strong { align-self: center; color: #f59116; }
@media (max-width: 600px) {
    .fwc-element-dimension { grid-template-columns: 1fr; }
}
.formix-configurator #fwc-price-explanation a {
    color: var(--fwc-orange, #f59a23);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}
