.bw-ai-generated-preview.is-loading {
    align-items: center;
    background: transparent;
    border: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    justify-content: center;
    min-height: 280px;
    overflow: hidden;
    padding: 20px 0 0;
    position: relative;
    text-align: center;
}

.bw-ai-generation-status {
    align-items: center;
    background: linear-gradient(145deg, #f9faff 0%, #f2f5ff 48%, #fbf8ff 100%);
    border: 1px solid #e2e7f7;
    border-radius: 14px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: hidden;
    padding: 24px 30px;
    position: relative;
    width: 100%;
}

.bw-ai-generation-status::before {
    animation: bw-ai-shimmer 2.8s ease-in-out infinite;
    background: linear-gradient(105deg, transparent 25%, rgba(255, 255, 255, 0.8) 48%, transparent 72%);
    content: '';
    inset: 0;
    pointer-events: none;
    position: absolute;
    transform: translateX(-100%);
}

.bw-ai-generated-preview small {
    display: block;
}

.bw-ai-generate-button:hover:not(:disabled),
.bw-ai-generate-button:focus-visible:not(:disabled) {
    background: #315de0 !important;
    box-shadow: 0 7px 18px rgba(49, 93, 224, 0.24);
    color: #fff !important;
    transform: translateY(-1px);
}

.bw-ai-generate-button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.bw-ai-use-design-button.is-selected {
    background: #16845b !important;
}

.bw-ai-upload-confirmation {
    color: #16845b;
    font-size: 14px;
    font-weight: 700;
    margin-top: 10px;
}

.bw-ai-sparkle-stage {
    height: 124px;
    margin: 10px 0;
    position: relative;
    width: 150px;
}

.bw-ai-sparkle-core,
.bw-ai-sparkle {
    color: #6c55e8;
    line-height: 1;
    position: absolute;
}

.bw-ai-sparkle-core {
    animation: bw-ai-core-pulse 1.8s ease-in-out infinite;
    font-size: 52px;
    left: 49px;
    text-shadow: 0 0 24px rgba(108, 85, 232, 0.38);
    top: 34px;
}

.bw-ai-sparkle {
    animation: bw-ai-sparkle 1.8s ease-in-out infinite;
    font-size: 18px;
}

.bw-ai-sparkle-one {
    left: 12px;
    top: 12px;
}

.bw-ai-sparkle-two {
    animation-delay: -0.6s;
    right: 12px;
    top: 24px;
}

.bw-ai-sparkle-three {
    animation-delay: -1.2s;
    bottom: 10px;
    right: 25px;
}

.atb-btn[data-bw-ai-locked] {
    cursor: not-allowed !important;
    opacity: 0.5 !important;
    pointer-events: none !important;
}

.bw-ai-progress {
    background: rgba(108, 85, 232, 0.14);
    border-radius: 999px;
    height: 9px;
    max-width: 420px;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.bw-ai-progress-fill {
    background: linear-gradient(90deg, #4370ff, #8c52e5, #d54fc7);
    border-radius: inherit;
    display: block;
    height: 100%;
    min-width: 1%;
    position: relative;
    transition: width 0.5s linear;
}

.bw-ai-progress-fill::after {
    animation: bw-ai-progress-glint 1.4s linear infinite;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
    content: '';
    inset: 0;
    position: absolute;
    transform: translateX(-100%);
}

@keyframes bw-ai-shimmer {
    55%, 100% { transform: translateX(100%); }
}

@keyframes bw-ai-core-pulse {
    0%, 100% { opacity: 0.72; transform: rotate(-8deg) scale(0.86); }
    50% { opacity: 1; transform: rotate(7deg) scale(1.08); }
}

@keyframes bw-ai-sparkle {
    0%, 100% { opacity: 0.15; transform: scale(0.45) rotate(0deg); }
    50% { opacity: 1; transform: scale(1.12) rotate(35deg); }
}

@keyframes bw-ai-progress-glint {
    to { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
    .bw-ai-generation-status::before,
    .bw-ai-sparkle-core,
    .bw-ai-sparkle,
    .bw-ai-progress-fill::after {
        animation: none;
    }
}

/* The AI option remains available at mobile widths; eligibility still follows size. */
#field_44_3 .gchoice:has(input[value="Generate Artwork with AI (Preview)"]) {
    display: block !important;
    visibility: visible !important;
}
@media (max-width: 767px) {
    /* AI transfers to this existing choice, so it must also be visible. */
    #field_44_3 .gchoice_44_3_0 { display: block !important; }
}
#field_44_3 .bw-ai-choice-icon {
    position: absolute;
    right: 15px;
    top: 15px;
    width: 50px;
    height: 50px;
    object-fit: contain;
}
body .calc .calc-accordion-content .gform_wrapper.gravity-theme #field_44_3 .gfield_radio .gchoice:nth-of-type(1)::after {
    content: "Upload print-ready files. We check quality, size and format before printing.";
}
body .calc .calc-accordion-content .gform_wrapper.gravity-theme #field_44_3 .gfield_radio .gchoice:nth-of-type(2)::after {
    content: "Order now. We email instructions for sending your artwork.";
}
body .calc .calc-accordion-content .gform_wrapper.gravity-theme #field_44_3 .gfield_radio .gchoice:nth-of-type(3)::after {
    content: "Create your artwork with the free online designer.";
}
body .calc .calc-accordion-content .gform_wrapper.gravity-theme #field_44_3 .gfield_radio .gchoice:nth-of-type(4)::after {
    content: "Get 30 minutes of artwork assistance for £30.";
}
body .calc .calc-accordion-content .gform_wrapper.gravity-theme #field_44_3 .gfield_radio .gchoice:nth-of-type(5)::after {
    content: "Generate a design, then select it for your order.";
}
@media (max-width: 767px) {
    #field_44_31 .bw-ai-design-panel {
        margin-left: 0 !important;
        width: 100% !important;
        max-width: 100%;
    }
    #field_44_31 .bw-ai-design-panel > table > tbody > tr > td {
        padding: 20px 16px !important;
    }
    #field_44_31 .bw-ai-design-panel input,
    #field_44_31 .bw-ai-design-panel textarea,
    #field_44_31 .bw-ai-design-panel button {
        max-width: 100%;
        box-sizing: border-box;
    }
}

.bw-ai-conversation {
    width: 100%;
    min-width: 0;
    flex-basis: 100%;
    margin-top: 20px;
    text-align: left;
}
.bw-ai-conversation [data-bw-ai-history] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}
.bw-ai-conversation button {
    padding: 10px 14px;
    white-space: normal;
    cursor: pointer;
}
.bw-ai-conversation button[aria-pressed="true"] {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
.bw-ai-conversation fieldset {
    margin: 0;
    padding: 16px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
}
.bw-ai-conversation label,
.bw-ai-conversation textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
}
.bw-ai-conversation textarea {
    margin: 8px 0 12px;
    padding: 10px;
    resize: vertical;
}
.bw-ai-conversation [data-bw-ai-revision-message] {
    margin: 12px 0 0;
}
.bw-ai-conversation [hidden] {
    display: none !important;
}
.bw-ai-generation-settings {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 16px 0;
    padding: 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
}
.bw-ai-generation-settings label {
    flex: 1 1 180px;
}
.bw-ai-generation-settings select {
    display: block;
    width: 100%;
    margin-top: 6px;
}

.bw-ai-workspace {
    --bw-ai-blue: var(--bwk-blue, var(--blue, #4d6ff5));
    --bw-ai-ink: #232326;
    --bw-ai-muted: #586476;
    --bw-ai-line: #dfe4ed;
    max-width: none !important;
}

.bw-ai-workspace [hidden] {
    display: none !important;
}

.bw-ai-workspace .bw-ai-workspace-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: clamp(16px, 3vw, 28px) !important;
}

.bw-ai-workspace:is([data-bw-ai-view="generating"], [data-bw-ai-view="result"]) .bw-ai-workspace-layout {
    grid-template-columns: minmax(0, 1fr);
}

.bw-ai-workspace:is([data-bw-ai-view="generating"], [data-bw-ai-view="result"]) .bw-ai-brief {
    display: none !important;
}

.bw-ai-workspace .bw-ai-ratio-note,
.bw-ai-workspace .bw-ai-preview-card {
    background: #f6f7fb !important;
    color: var(--bw-ai-muted) !important;
    border: 1px solid var(--bw-ai-line);
    border-radius: 14px !important;
}

.bw-ai-workspace .bw-ai-preview-card {
    min-width: 0;
    padding: clamp(14px, 3vw, 24px) !important;
}

.bw-ai-workspace .bw-ai-preview-heading,
.bw-ai-workspace .bw-ai-lightbox h4 {
    color: var(--bw-ai-ink);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 12px;
}

.bw-ai-workspace .bw-ai-brief details {
    margin: 10px 0 !important;
    border: 1px solid var(--bw-ai-line) !important;
    border-radius: 12px !important;
    background: #fff !important;
}

.bw-ai-workspace .bw-ai-brief summary {
    color: var(--bw-ai-ink) !important;
    cursor: pointer;
    font-size: 14px !important;
    font-weight: 700 !important;
    padding: 12px !important;
}

.bw-ai-workspace .bw-ai-optional {
    color: var(--bw-ai-muted);
    font-size: 11px;
    font-weight: 400;
    margin-left: 4px;
}

.bw-ai-workspace .bw-ai-colour-tile {
    flex: 0 0 auto !important;
    position: relative;
    width: max-content;
}

.bw-ai-workspace .bw-ai-colour-tile > button[data-bw-clear] {
    align-items: center;
    background: #fff !important;
    border: 1px solid #a5afbf !important;
    border-radius: 50% !important;
    color: #232326 !important;
    display: none !important;
    font: 700 17px/1 system-ui, sans-serif;
    height: 26px;
    inset: 4px 4px auto auto;
    justify-content: center;
    margin: 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    position: absolute;
    width: 26px;
    z-index: 1;
}

.bw-ai-workspace .bw-ai-colour-tile > [data-bw-swatch][data-selected] + button[data-bw-clear] {
    display: inline-flex !important;
}

.bw-ai-workspace .bw-ai-colour-tile > button[data-bw-clear]:hover {
    background: #edf1f9 !important;
    color: #232326 !important;
}

.bw-ai-workspace .bw-ai-reference-body {
    padding: 0 12px 14px;
}

.bw-ai-workspace .bw-ai-reference-body p {
    color: var(--bw-ai-muted);
    font-size: 13px;
    margin: 0 0 12px;
}

.bw-ai-workspace :is(.bw-ai-generate-button, .bw-ai-use-design-button, [data-bw-ai-use-preview]) {
    background: var(--bw-ai-blue) !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    color: #fff !important;
    cursor: pointer !important;
    min-height: 46px;
    opacity: 1 !important;
    padding: 10px 16px !important;
    text-transform: none !important;
    font-weight: 700;
}

.bw-ai-design-panel.bw-ai-workspace :is(.bw-ai-generate-button, .bw-ai-use-design-button, [data-bw-ai-use-preview]):hover:not(:disabled) {
    background: var(--bw-ai-blue) !important;
    filter: brightness(.92);
}

.bw-ai-workspace .bw-ai-preview-actions .bw-ai-use-design-button {
    width: auto;
}

.bw-ai-workspace :is(.bw-ai-generate-button, .bw-ai-use-design-button, [data-bw-ai-use-preview]):disabled {
    background: #e6eaf2 !important;
    color: #596476 !important;
    cursor: not-allowed !important;
}

.bw-ai-workspace .bw-ai-use-design-button.is-selected {
    background: #e5f5e9 !important;
    color: #26603c !important;
}

.bw-ai-workspace .bw-ai-attempts {
    color: var(--bw-ai-muted);
    font-size: 12px;
    margin: 6px 0 0;
    text-align: center;
}

.bw-ai-workspace .bw-ai-generated-preview {
    box-sizing: border-box;
    max-height: 50vh;
    scroll-margin-block: 16px;
}

.bw-ai-workspace .bw-ai-generated-preview:is(.is-loading, .is-result) {
    aspect-ratio: auto !important;
    background: transparent !important;
    border: 0 !important;
    max-height: none;
    min-height: 0 !important;
    padding: 0 !important;
}

.bw-ai-workspace .bw-ai-generated-preview.is-loading {
    min-height: 235px !important;
}

.bw-ai-workspace .bw-ai-progress-fill {
    background: var(--bw-ai-blue);
}

.bw-ai-workspace .bw-ai-preview-card:not(:has(.is-result)) .bw-ai-use-design-button {
    display: none !important;
}

.bw-ai-workspace .bw-ai-preview-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.bw-ai-workspace .bw-ai-preview-actions:has(button:not([hidden])) {
    margin-top: 12px;
}

.bw-ai-workspace :is(.bw-ai-edit-brief, [data-bw-ai-edit-preview], [data-bw-ai-close]) {
    background: #fff !important;
    border: 1px solid var(--bw-ai-line) !important;
    border-radius: 12px !important;
    color: var(--bw-ai-blue) !important;
    cursor: pointer;
    min-height: 44px;
    padding: 8px 14px !important;
    text-transform: none !important;
    font-weight: 700;
}

.bw-ai-workspace .bw-ai-thumbnail {
    background: #fff !important;
    border: 1px solid var(--bw-ai-line) !important;
    border-radius: 12px !important;
    color: var(--bw-ai-blue) !important;
    cursor: zoom-in;
    display: grid;
    gap: 8px;
    justify-items: center;
    max-width: 100%;
    padding: 8px !important;
    width: 100%;
}

.bw-ai-workspace button.bw-ai-thumbnail:is(:hover, :focus-visible) {
    background: #f3f6ff !important;
    border-color: var(--bw-ai-blue) !important;
    color: var(--bw-ai-blue) !important;
}

.bw-ai-workspace button.bw-ai-thumbnail:focus-visible {
    outline: 2px solid var(--bw-ai-blue);
    outline-offset: 2px;
}

.bw-ai-workspace .bw-ai-thumbnail img {
    max-height: min(48vh, 480px);
    object-fit: contain;
}

.bw-ai-workspace .bw-ai-lightbox {
    background: #fff;
    border: 1px solid var(--bw-ai-line);
    border-radius: 16px;
    box-sizing: border-box;
    color: var(--bw-ai-ink);
    margin: auto;
    max-height: 92dvh;
    max-width: min(960px, calc(100vw - 24px));
    overflow: auto;
    padding: clamp(12px, 3vw, 24px);
    width: max-content;
}

.bw-ai-workspace .bw-ai-lightbox::backdrop {
    background: rgba(18, 27, 46, .76);
}

.bw-ai-workspace .bw-ai-lightbox header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.bw-ai-workspace .bw-ai-lightbox h4 {
    margin: 0;
}

.bw-ai-workspace .bw-ai-lightbox img {
    display: block;
    max-height: 66dvh;
    max-width: 100%;
    object-fit: contain;
    margin-inline: auto;
}

@media (max-width: 740px) {
    .bw-ai-workspace .bw-ai-workspace-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}
