/* Retail personaliser: preserve the original controls and product rules. */
.embroidery-wizard { --personaliser-muted: #51565C; }
/* Keep the launch link a direct child: the existing widget binds to it. */
.product-group .embroidery-wizard { background: #F2F2F0; border: 1px solid #131E29; padding: 16px; text-align: left !important; }
.product-group .personalisation-intro { margin: 0 0 12px; text-align: left; color: var(--glenmuir-ink, #131E29); }
.personalisation-intro strong { display: flex; align-items: center; gap: 8px; font-size: 18px; line-height: 1.3; }
.personalisation-intro strong span { background: var(--glenmuir-ink, #131E29); color: white; border-radius: 999px; padding: 3px 8px; font-size: 13px; line-height: 1.2; }
.product-group .embroidery-wizard .personalisation-intro p { margin: 4px 0 0; color: var(--glenmuir-ink, #131E29); opacity: 1; font-size: 15px; line-height: 1.45; }
.product-group .embroidery-wizard > .brand-button,
.product-group .embroidery-wizard.open > .brand-button { display: block; width: 100%; max-width: none; margin: 0 !important; padding: 14px 10px; background: white !important; color: var(--glenmuir-ink, #131E29) !important; border: 1px solid var(--glenmuir-ink, #131E29) !important; font-size: 16px; font-weight: 600; line-height: 1.3; letter-spacing: 1.5px; text-align: center; }
.product-group .embroidery-wizard > .brand-button:hover,
.product-group .embroidery-wizard.open > .brand-button:hover { background: var(--glenmuir-ink, #131E29) !important; color: #fff !important; border-color: #fff !important; }
.product-group .embroidery-wizard > .brand-button:focus-visible { outline: 2px solid var(--glenmuir-ink, #131E29); outline-offset: 3px; }
.personaliser-open { overflow: hidden; }
.embroidery-wizard .collapse.personaliser-dialog { display: none; position: fixed; inset: 3vh 0; margin: auto; width: min(840px, 94vw); height: min(680px, 90vh); height: min(680px, 90dvh); padding: 0; z-index: 1050; background: white; border: 0; box-shadow: 0 0 0 100vmax #0008; text-align: left; overflow: hidden; }
.personaliser-header { height: 64px; display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; border-bottom: 1px solid #131E29; }
.personaliser-header h2 { margin: 0; font: 600 24px Inter, sans-serif; text-transform: uppercase; }
.personaliser-close { border: 0; background: transparent; font-size: 30px; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview { display: block !important; position: absolute; left: 0; top: 64px; bottom: 0; width: 45%; margin: 0; background: white; overflow: hidden; }
.personaliser-preview > .title { display: none !important; }
.embroidery-wizard .personaliser-preview .preview-image { height: 100%; margin: 0; overflow: hidden; }
.embroidery-wizard .personaliser-preview .preview-image > img { width: 100%; height: 100%; object-fit: contain; object-position: center top; transition: transform .2s; }
.embroidery-wizard .personaliser-preview.is-zoomed .preview-image > img { transform: none; }
.personaliser-zoom { position: absolute; right: 16px; bottom: 16px; background: white; padding: 10px 14px; border: 1px solid #aaa; }
.personaliser-steps { margin-left: 45%; display: flex; padding: 16px 18px; gap: 6px; }
.personaliser-steps button { flex: 1; border: 0; border-top: 3px solid #F2F2F0; padding: 8px 0; background: white; font-size: 12px; text-align: left; }
.personaliser-steps button[aria-current="step"] { border-color: var(--glenmuir-ink, #131E29); font-weight: bold; }
.personaliser-body { position: absolute; top: 126px; bottom: 100px; left: 45%; right: 0; overflow-y: auto; padding: 20px; overscroll-behavior: contain; }
.personaliser-step[hidden], .personaliser-dialog button[hidden] { display: none !important; }
.embroidery-wizard .collapse.personaliser-dialog .title span { display: none; }
.embroidery-wizard .collapse.personaliser-dialog .title .h3 { margin: 0 0 16px; border: 0; font: 600 22px Inter, sans-serif; }
.embroidery-wizard .collapse.personaliser-dialog ul.icons { gap: 10px; margin: 0 0 20px; }
.embroidery-wizard .collapse.personaliser-dialog ul.icons li { width: calc(50% - 5px); max-width: none; }
.embroidery-wizard .collapse.personaliser-dialog ul.icons li a { margin: 0; height: 100%; border: 1px solid #131E29; padding: 12px; font-size: 12px; }
.embroidery-wizard .collapse.personaliser-dialog ul.icons li a.active { border-color: var(--glenmuir-ink, #131E29) !important; outline: 1px solid var(--glenmuir-ink, #131E29) !important; background-color: #F2F2F0; }
.embroidery-wizard .collapse.personaliser-dialog .icons-postion img { max-height: 72px; width: auto; }
.embroidery-wizard .collapse.personaliser-dialog ul.icons-type li { width: calc(33.333% - 7px); }
.embroidery-wizard .collapse.personaliser-dialog .icons-type img { display: none; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-colour li, .embroidery-wizard .collapse.personaliser-dialog #crest-colour li { width: calc(25% - 8px); }
.personaliser-footer { position: absolute; bottom: 0; left: 45%; right: 0; padding: 12px 20px; background: white; border-top: 1px solid #131E29; display: flex; flex-wrap: wrap; gap: 8px; }
.personaliser-footer button { min-height: 40px; border: 1px solid var(--glenmuir-ink, #131E29); background: white; padding: 8px 18px; }
.personaliser-footer .personaliser-next { flex: 1; background: var(--glenmuir-ink, #131E29); color: white; }
.personaliser-footer .personaliser-remove { width: 100%; min-height: 20px; border: 0; padding: 0; font-size: 12px; text-decoration: underline; }
.personaliser-summary-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 14px 0; border-bottom: 1px solid #131E29; }
.personaliser-summary-row span { font-size: 12px; }
.personaliser-summary-row strong { grid-column: 1; overflow-wrap: anywhere; }
.personaliser-summary-row button { grid-column: 2; grid-row: 1 / 3; background: none; border: 0; text-decoration: underline; }
.personaliser-summary { margin-bottom: 24px; }
.personaliser-dialog :focus-visible { outline: 2px solid var(--glenmuir-ink, #131E29); outline-offset: 3px; }
@media (max-width: 767px) {
 .embroidery-wizard .collapse.personaliser-dialog { inset: 0; width: 100%; height: 100vh; height: 100dvh; }
 .personaliser-header { height: 56px; padding: 12px 18px; }
 .personaliser-header h2 { font-size: 21px; text-transform: uppercase; }
 .embroidery-wizard .collapse.personaliser-dialog .personaliser-preview { top: 56px; height: 26%; width: 100%; bottom: auto; }
 .personaliser-steps { position: absolute; top: calc(56px + 26%); left: 0; right: 0; margin: 0; padding: 12px 16px; }
 .personaliser-body { top: calc(112px + 26%); left: 0; padding: 18px; }
 .personaliser-footer { left: 0; }
 /* Leave the lower-right corner clear for the floating chat launcher. */
 .personaliser-footer :is(.personaliser-next, .personaliser-submit) { margin-right: 80px; min-width: 0; }
}
@media (max-height: 550px) and (max-width: 767px) {
 .embroidery-wizard .collapse.personaliser-dialog .personaliser-preview { display: none !important; }
 .personaliser-steps { top: 56px; }
 .personaliser-body { top: 112px; }
}
@media (prefers-reduced-motion: reduce) { .personaliser-preview img { transition: none !important; } }
.embroidery-wizard .collapse.personaliser-dialog ul.icons li a img { display: block; margin: 0 auto 10px; }
.embroidery-wizard .collapse.personaliser-dialog ul.icons-type li a img { display: none; }

/* Early steps are a compact single column; only finished design steps need a preview. */
.embroidery-wizard .collapse.personaliser-dialog.personaliser-no-preview { width: min(560px, 94vw); }
.embroidery-wizard .collapse.personaliser-dialog.personaliser-no-preview .personaliser-preview { display: none !important; }
.personaliser-no-preview .personaliser-steps { margin-left: 0; }
.personaliser-no-preview .personaliser-body, .personaliser-no-preview .personaliser-footer { left: 0; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview .preview-image { margin: 0; }
@media (max-width: 767px) {
 .embroidery-wizard .collapse.personaliser-dialog.personaliser-no-preview { width: 100%; }
 .personaliser-no-preview .personaliser-steps { top: 56px; }
 .personaliser-no-preview .personaliser-body { top: 112px; }
}

/* Design step matches the concept while retaining the existing type tokens. */
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type { display: flex; flex-wrap: nowrap; gap: 0; background: #F2F2F0; padding: 2px; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type > li { flex: 1 1 0; width: 0; max-width: none; min-width: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type > li > a { display: block; padding: 12px 4px; font-size: 15px; font-weight: 700; text-transform: none; text-align: center; white-space: nowrap; border-color: transparent; background: transparent; color: var(--glenmuir-ink, #131E29); }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type > li > a.active { background: #fff; color: var(--glenmuir-ink, #131E29); border-color: #131E29 !important; outline: 2px solid var(--glenmuir-ink, #131E29) !important; box-shadow: inset 0 0 0 1px #131E29; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-text > .title { display: none; }
.personaliser-add-line { border: 0; padding: 0; margin: 4px 0 16px; background: transparent; color: var(--glenmuir-ink, #131E29); font: inherit; text-decoration: underline; cursor: pointer; }

.embroidery-wizard .collapse.personaliser-dialog { color: var(--glenmuir-ink, #131E29); font-family: Inter, 'Helvetica Neue', Arial, sans-serif; line-height: 1.45; }
.embroidery-wizard .collapse.personaliser-dialog .title .h3,
.embroidery-wizard .collapse.personaliser-dialog .personaliser-step > h3 { font-family: Inter, 'Helvetica Neue', Arial, sans-serif !important; font-size: 24px !important; font-weight: 600; line-height: 1.45; color: var(--glenmuir-ink, #131E29); text-transform: uppercase; margin: 0 0 2px; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-header h2 { font-family: Inter, 'Helvetica Neue', Arial, sans-serif !important; font-size: 22px; font-weight: 600; color: var(--glenmuir-ink, #131E29); text-transform: uppercase; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-position > .my-3 { margin-top: 0 !important; }
.personaliser-position-help { margin: 2px 0 16px; font-size: 13px; line-height: 1.45; color: var(--personaliser-muted, #51565C); opacity: 1; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-position ul.icons-postion { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-position ul.icons-postion > li { width: auto; max-width: none; min-width: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-position ul.icons-postion > li > a,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour-type ul.icons > li > a { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px; border: 1px solid #131E29; background: #fff; color: var(--glenmuir-ink, #131E29); text-align: left; text-transform: none; border-radius: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-position ul.icons-postion > li > a.active,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour-type ul.icons > li > a.active { background: #fff; outline: 1px solid var(--glenmuir-ink, #131E29) !important; box-shadow: inset 0 0 0 1px var(--glenmuir-ink, #131E29); }
.embroidery-wizard .collapse.personaliser-dialog :is(#embroidery-position, #crest-colour-type) .position-label { font-size: 15px; font-weight: 700; line-height: 1.45; }
.embroidery-wizard .collapse.personaliser-dialog :is(#embroidery-position, #crest-colour-type) .position-description { display: block; font-size: 12px; font-weight: 400; line-height: 1.35; color: var(--personaliser-muted, #51565C); opacity: 1; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-position a > svg,
.embroidery-wizard .collapse.personaliser-dialog #embroidery-position a > img { display: block; width: 64px; height: 55px; object-fit: contain; margin: 0; flex-shrink: 0; }
.embroidery-wizard .collapse.personaliser-dialog input.form-control { font-size: 15px; min-height: 44px; border: 1px solid #131E29; border-radius: 0; color: var(--glenmuir-ink, #131E29); }
.embroidery-wizard .collapse.personaliser-dialog label { font-size: 13px; color: var(--glenmuir-ink, #131E29); text-transform: none; }
.personaliser-footer .personaliser-next { background: var(--glenmuir-ink, #131E29); border-color: var(--glenmuir-ink, #131E29); font-size: 14px; font-weight: 600; min-height: 48px; }

/* Graphic and Both choices: three columns on mobile, four on desktop. */
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic > .title .h3 { font-family: Inter, 'Helvetica Neue', Arial, sans-serif !important; font-size: 14px !important; font-weight: 700; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .nav-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; border: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .nav-tabs .nav-link { margin: 0; padding: 10px 12px; border: 1px solid #131E29; border-radius: 0; background: #fff; color: var(--glenmuir-ink, #131E29); font-size: 14px; font-weight: 700; line-height: 1.3; text-transform: none; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .nav-tabs .nav-link.active { background: var(--glenmuir-ink, #131E29); color: #fff; border-color: var(--glenmuir-ink, #131E29); }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .tab-pane > ul.icons > li.icon,
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .bespoke-logo-list > li.icon { width: calc((100% - 20px) / 3); max-width: none; min-width: 0; }
@media (min-width: 768px) {
 .embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .tab-pane > ul.icons > li.icon,
 .embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .bespoke-logo-list > li.icon { width: calc((100% - 30px) / 4); }
}
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic li.icon > a[data-embroidery="graphic"] { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px; background: #fff; border: 1px solid #131E29; color: var(--glenmuir-ink, #131E29); font-size: 12px; font-weight: 700; line-height: 1.35; text-transform: none; overflow-wrap: anywhere; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic li.icon > a[data-embroidery="graphic"] > img { display: block; width: 64px; height: 64px; max-width: 100%; object-fit: contain; margin: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic li.icon > a.active { outline: 1px solid var(--glenmuir-ink, #131E29) !important; box-shadow: inset 0 0 0 1px var(--glenmuir-ink, #131E29); }
.personaliser-footer .personaliser-back { color: var(--glenmuir-ink, #131E29); font-weight: 700; border-color: var(--glenmuir-ink, #131E29); min-height: 48px; }
.personaliser-footer .personaliser-next:disabled,
.personaliser-footer .personaliser-next[aria-disabled="true"] { background: #F2F2F0; border-color: #F2F2F0; color: var(--personaliser-muted, #51565C); }

/* Reference header, segmented selector and navigation controls. */
.personaliser-header { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; padding: 12px 16px; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-header h2 { text-align: center; margin: 0; line-height: 1.1; text-transform: uppercase; }
.personaliser-close { padding: 0; color: var(--glenmuir-ink, #131E29); line-height: 1; }
.personaliser-free { background: var(--glenmuir-ink, #131E29); color: white; padding: 4px 8px; font-size: 12px; font-weight: 800; letter-spacing: .5px; }
.personaliser-steps button { color: var(--personaliser-muted, #51565C); border-top-color: #F2F2F0; border-radius: 2px 2px 0 0; }
.personaliser-steps button.is-complete, .personaliser-steps button[aria-current="step"] { color: var(--glenmuir-ink, #131E29); border-top-color: var(--glenmuir-ink, #131E29); }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type > .title { display: none; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type > .my-3 { margin-top: 0 !important; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type { padding: 4px; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type > li > a.active { border-color: transparent !important; outline: none !important; box-shadow: 0 1px 3px #0003; }
.personaliser-hint { flex: 0 0 100%; margin: 0 0 4px; text-align: center; font-size: 14px; color: var(--personaliser-muted, #51565C); opacity: 1; line-height: 1.4; }
.personaliser-hint[hidden] { display: none; }
.personaliser-has-hint .personaliser-body { bottom: 130px; }
.personaliser-footer { gap: 10px; }
.personaliser-footer .personaliser-back, .personaliser-footer .personaliser-next { padding: 14px 18px; font-size: 16px; font-weight: 700; }

/* Style options and review card. Container queries follow the actual column width. */
.personaliser-body { container-type: inline-size; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-font ul.icons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-font ul.icons > li { width: auto; max-width: none; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-font ul.icons > li > a { min-height: 78px; display: flex; align-items: center; justify-content: center; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-font img { max-height: 60px; object-fit: contain; margin: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-colour ul.icons,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour ul.icons { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-colour ul.icons > li,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour ul.icons > li { width: auto; max-width: none; min-width: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-colour li a,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour li a { display: flex; width: 100%; height: auto; padding: 3px; box-sizing: border-box; font-size: 0; line-height: 0; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-colour li a > span,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour li a > span { display: block; width: 100%; height: auto; aspect-ratio: 1; margin: 0; border: 1px solid #131E29; }
@container (min-width: 340px) {
 .embroidery-wizard .collapse.personaliser-dialog #embroidery-colour ul.icons,
 .embroidery-wizard .collapse.personaliser-dialog #crest-colour ul.icons { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.embroidery-wizard .collapse.personaliser-dialog #embroidery-font .title .h3,
.embroidery-wizard .collapse.personaliser-dialog .personaliser-font-title .h3,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour-type .title .h3,
.embroidery-wizard .collapse.personaliser-dialog #crest-colour .title .h3,
.embroidery-wizard .collapse.personaliser-dialog #embroidery-colour .title .h3 { font-family: Inter, sans-serif !important; font-size: 14px !important; font-weight: 700; margin: 18px 0 12px; display: block; width: 100%; padding: 0; border: 0; text-align: left; }
.personaliser-product { display: flex; align-items: flex-start; gap: 12px; padding: 14px; margin-top: 20px; background: #F2F2F0; border: 1px solid #131E29; }
.personaliser-product > img { width: 64px; height: 64px; object-fit: contain; background: white; }
.personaliser-product > div { flex: 1; min-width: 0; }
.personaliser-product strong { display: block; font-size: 14px; }
.personaliser-product-name { color: var(--personaliser-muted, #51565C); opacity: 1; font-size: 13px; font-weight: 700; }
.personaliser-product p { margin: 4px 0 0; font-size: 13px; color: var(--personaliser-muted, #51565C); opacity: 1; }
.personaliser-summary { border: 1px solid #131E29; border-top: 0; }
.personaliser-summary-row { padding: 14px; }
.personaliser-summary-row:last-child { border-bottom: 0; }
.personaliser-summary-row span { color: var(--personaliser-muted, #51565C); opacity: 1; }
.personaliser-confirm { display: flex; gap: 12px; background: #F2F2F0; padding: 14px; margin-bottom: 16px; }
.personaliser-confirm input { width: 24px; height: 24px; flex-shrink: 0; accent-color: var(--glenmuir-ink, #131E29); }
.personaliser-terms { font-size: 13px; line-height: 1.5; color: var(--personaliser-muted, #51565C); opacity: 1; }
.personaliser-footer .personaliser-submit { order: 1; flex: 1; max-width: none; width: auto; background: var(--glenmuir-ink, #131E29); color: white; font-size: 16px; font-weight: 700; }
.personaliser-footer .personaliser-back { order: 0; }
.personaliser-footer .personaliser-remove { order: 2; }
.personaliser-footer .personaliser-hint { order: -1; }
.personaliser-footer .personaliser-submit[aria-disabled="true"] { background: #F2F2F0; border-color: #F2F2F0; color: var(--personaliser-muted, #51565C); cursor: not-allowed; }
.embroidery-wizard .collapse.personaliser-dialog #embroidery-font ul.icons > li > a { flex-direction: column; gap: 4px; }

/* Preview labels stay outside the image transform. */
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview { background: #F2F2F0; border-right: 1px solid #131E29; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview .preview-image { background: #F2F2F0; padding: 48px 12px 64px; box-sizing: border-box; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview .preview-image > .image-title { display: none !important; }
.personaliser-preview-position, .personaliser-preview-type, .personaliser-preview-colour { position: absolute; left: 12px; background: #fff; color: var(--glenmuir-ink, #131E29); padding: 8px 10px; font-size: 12px; line-height: 1.3; }
.personaliser-preview-position, .personaliser-preview-type { top: 12px; font-weight: 700; max-width: calc(50% - 18px); overflow-wrap: anywhere; }
.personaliser-preview-type { left: auto; right: 12px; text-align: right; }
.personaliser-preview-colour { bottom: 14px; max-width: calc(100% - 150px); font-weight: 500; }
.personaliser-preview-colour[hidden] { display: none; }
.personaliser-zoom { bottom: 12px; right: 12px; display: flex; align-items: center; gap: 5px; padding: 8px 10px; border: 1px solid #131E29; background: white; color: var(--glenmuir-ink, #131E29); font: 600 12px Inter, sans-serif; box-shadow: 0 1px 3px #0001; }
.personaliser-zoom > span { font-size: 14px; line-height: 1; }
@media (max-width: 767px) {
 .embroidery-wizard .collapse.personaliser-dialog .personaliser-preview { border-right: 0; border-bottom: 1px solid #131E29; }
 .embroidery-wizard .collapse.personaliser-dialog .personaliser-preview .preview-image { padding: 36px 8px 46px; }
 .personaliser-preview-position, .personaliser-preview-type { top: 6px; }
 .personaliser-preview-colour { bottom: 8px; }
 .personaliser-zoom { bottom: 8px; padding: 7px 9px; }
}

/* Show only the generated preview, with a compact centred loading indicator. */
.embroidery-wizard .personaliser-preview .preview-image.is-loading > img { visibility: hidden; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview .loading { position: absolute; inset: 0; width: auto; height: auto; margin: 0; padding: 0; background: transparent; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview .loading > svg,
.embroidery-wizard .collapse.personaliser-dialog .personaliser-preview .loading > i { position: absolute; left: calc(50% - 10px); top: calc(50% - 10px); width: 20px; height: 20px; font-size: 20px; margin: 0; color: var(--glenmuir-ink, #131E29); }
.preview-error { position: absolute; top: 50%; left: 16px; right: 16px; text-align: center; font-size: 13px; color: var(--personaliser-muted, #51565C); }

/* Override framework/browser blue focus rings without losing keyboard focus. */
.embroidery-wizard button:focus,
.embroidery-wizard a:focus { outline: none; box-shadow: none !important; }
.embroidery-wizard button:focus-visible,
.embroidery-wizard a:focus-visible { outline: 2px solid var(--glenmuir-ink, #131E29); outline-offset: 2px; box-shadow: none !important; }

.personaliser-backdrop { position: fixed; inset: 0; z-index: 1049; background: #0008; }
.embroidery-wizard .collapse.personaliser-dialog { box-shadow: 0 8px 32px #0003; }
.personaliser-header { grid-template-columns: auto minmax(0, 1fr) 28px; }
.personaliser-steps button:disabled { cursor: default; opacity: 1; }
.embroidery-wizard .collapse.personaliser-dialog .personaliser-submit[aria-disabled="true"],
.embroidery-wizard .collapse.personaliser-dialog .personaliser-submit[aria-disabled="true"]:hover { background: #F2F2F0 !important; border-color: #F2F2F0 !important; color: var(--personaliser-muted, #51565C) !important; }
.personaliser-confirm-error { color: #b42318; font-size: 13px; margin: 0 0 16px; }
.personaliser-confirm.has-error { outline: 1px solid #b42318; }
.personaliser-confirm input[aria-invalid="true"] { outline: 2px solid #b42318; outline-offset: 2px; }

/* Keep action labels consistent, including dynamically updated button text. */
.embroidery-wizard .personaliser-footer button,
.embroidery-wizard .personaliser-zoom,
.embroidery-wizard .personaliser-add-line,
.embroidery-wizard .personaliser-summary button,
.embroidery-wizard > .brand-button { text-transform: uppercase; }

.personaliser-disclaimer-list { display: block; margin-top: 8px; }
.personaliser-disclaimer-list > [role="listitem"] { display: list-item; margin: 6px 0 0 18px; list-style-type: disc; }

.personaliser-summary-row button,
.personaliser-footer .personaliser-remove { color: var(--glenmuir-ink, #131E29); }

/* Dark text grey is separate from the light brand grey used for surfaces. */
.product-group .embroidery-wizard .text-muted,
.product-group .embroidery-wizard .text-secondary,
.product-group .embroidery-wizard small:not(.text-danger):not(.text-success) { color: var(--personaliser-muted, #51565C) !important; opacity: 1; }

.embroidery-wizard .form-control::placeholder { color: var(--personaliser-muted, #51565C); opacity: 1; }

/* Keep font samples on white, including the selected option. */
.embroidery-wizard .collapse.personaliser-dialog #embroidery-font ul.icons li a { background-color: #fff; }

/* Keep logo colour choices in two equal columns at every dialog width. */
.embroidery-wizard .collapse.personaliser-dialog #crest-colour-type ul.icons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.embroidery-wizard .collapse.personaliser-dialog #crest-colour-type ul.icons > li { width: auto; min-width: 0; max-width: none; margin: 0; }
.embroidery-wizard .collapse.personaliser-dialog #crest-colour-type ul.icons > li > a { width: 100%; min-height: 0; justify-content: flex-start; gap: 4px; white-space: normal; box-sizing: border-box; }
.embroidery-wizard .collapse.personaliser-dialog #crest-colour-type .position-description { margin: 0; padding: 0; }

/* Sunderland keeps the shared personaliser styling with black brand accents. */
body.brand-sunderland .product-group .embroidery-wizard { --glenmuir-ink: #000000; color: #000000; font-family: Inter, 'Helvetica Neue', Arial, sans-serif !important; letter-spacing: normal; }
body.brand-sunderland .embroidery-wizard :is(a, p, button, input, select, textarea, label) { font-family: Inter, 'Helvetica Neue', Arial, sans-serif !important; letter-spacing: normal; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog,
body.brand-sunderland .embroidery-wizard .personaliser-header,
body.brand-sunderland .embroidery-wizard .personaliser-footer { background-color: #fff; color: #000000; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog a { color: #000000 !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog ul.icons li a { background-color: #fff !important; color: #000000 !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog ul.icons li a.active { border-color: #000000 !important; outline-color: #000000 !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog ul.icons li a img { filter: none; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type > li > a { background-color: transparent !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog #embroidery-type ul.icons-type > li > a.active { background-color: #fff !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .nav-tabs .nav-link { background-color: #fff !important; color: #000000 !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .nav-tabs .nav-link.active { background-color: #000000 !important; color: #fff !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog :is(h2, h3, .h3) { font-family: Inter, 'Helvetica Neue', Arial, sans-serif !important; font-weight: 600 !important; text-transform: uppercase; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog :is(#embroidery-font, #embroidery-colour, #crest-colour-type, #crest-colour) .title .h3 { font-family: Inter, 'Helvetica Neue', Arial, sans-serif !important; font-size: 14px !important; font-weight: 700 !important; }
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog .personaliser-footer .personaliser-remove { background: transparent; }
body.brand-sunderland .product-group .embroidery-wizard > .brand-button { background-color: #fff !important; color: #000000 !important; }
body.brand-sunderland .product-group .embroidery-wizard > .brand-button:hover { background-color: #000000 !important; color: #fff !important; }

body.brand-sunderland .product-group .embroidery-wizard,
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog :is(.personaliser-preview, .personaliser-summary, .personaliser-product, .personaliser-summary-row, .personaliser-header, .personaliser-footer, .personaliser-zoom, input.form-control),
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog ul.icons li a,
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog #embroidery-graphic .nav-tabs .nav-link,
body.brand-sunderland .embroidery-wizard .collapse.personaliser-dialog :is(#embroidery-colour, #crest-colour) li a > span { border-color: #000000; }

/* Corporate headings use Inter at normal weight. */
.product-group .embroidery-wizard .collapse.personaliser-dialog :is(h2, h3, .h3),
.product-group .embroidery-wizard .collapse.personaliser-dialog :is(#embroidery-font, #embroidery-colour, #crest-colour-type, #crest-colour) .title .h3 { font-size: 1.1rem !important; font-weight: normal !important; }
body.brand-sunderland .product-group .embroidery-wizard .collapse.personaliser-dialog :is(h2, h3, .h3),
body.brand-sunderland .product-group .embroidery-wizard .collapse.personaliser-dialog :is(#embroidery-font, #embroidery-colour, #crest-colour-type, #crest-colour) .title .h3 { font-size: 1.1rem !important; font-weight: normal !important; }

.embroidery-wizard .personaliser-dialog .required-prompt { position: relative; padding: 8px; margin: 14px 0; }
.embroidery-wizard .collapse.personaliser-dialog input.form-control.required-prompt { border: 2px solid #dc3545 !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='white' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 8px center; background-size: 25px; padding-right: 40px; }
