/* Detail selection: neutral surfaces, generous images and a clear active state. */
.picker:has(.detail-options.active),
.picker:has(.generic.active) { background: #f5f5f3; }
.picker { min-width: 0; }
.detail-options { --option-ink: #222; --option-line: #d8d8d4; }
.detail-options .tiles { gap: 18px 14px; align-items: stretch; }
.detail-zoom-card { position:relative; min-width:0; display:flex; }
.shirt-drawing.is-back > :not(.shirt-back-preview):not([data-shirt-layer="bas"]):not([data-shirt-layer="manche"]):not([data-shirt-layer="poignet"]):not(.floating-shirt-layer--bas):not(.floating-shirt-layer--manche):not(.floating-shirt-layer--poignet) { display:none!important; }
.shirt-back-preview { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2; }
.shirt-back-preview [hidden] { display:none; }
.shirt-drawing.is-back { margin-top:0!important; margin-bottom:0!important; }
.shirt-drawing .shirt-back-preview[hidden], .shirt-front-link[hidden] { display:none; }
.shirt-front-link { display:block; margin:12px auto; padding:6px 0; border:0; background:none; color:#294a3c; text-decoration:underline; cursor:pointer; font:12px 'DM Sans',sans-serif; }
.detail-zoom-card > .tile { width:100%; }
.detail-zoom-trigger { position:absolute; top:94px; right:18px; z-index:2; width:32px; height:32px; display:grid; place-items:center; padding:0; border:1px solid #dce3de; border-radius:50%; background:#fffffff2; color:#294a3c; box-shadow:0 2px 6px #203a3410; cursor:zoom-in; transition:background .15s, border-color .15s; }
.detail-zoom-trigger svg { width:15px; height:15px; }
.detail-zoom-trigger:hover { background:#f1f5f2; border-color:#729783; }
@media (pointer:coarse) { .detail-zoom-trigger::before { content:""; position:absolute; inset:-6px; border-radius:50%; } }
.detail-zoom-trigger:focus-visible { outline:2px solid #294a3c; outline-offset:3px; }
.detail-options .tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 12px 12px 18px;
    border: 1px solid var(--option-line);
    border-radius: 7px;
    background: #fafaf9;
    color: var(--option-ink);
    text-align: center;
    transition: border-color .18s, background-color .18s, box-shadow .18s;
}
.detail-options .tile img {
    height: 120px;
    width: 100%;
    object-fit: contain;
    border-radius: 3px;
    mix-blend-mode: multiply;
}
/* Grey image surfaces preserve the original blue catalogue photographs. */
[data-panel="collar"] .tile img,
[data-panel="cuffs"] .tile img {
    background-color: #eeeeec;
}
.detail-options .tile b {
    margin: 15px 0 5px;
    color: var(--option-ink);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.detail-options .tile .collar-measurement {
    margin: 3px 0 0;
    color: #72726d;
    font-size: 11px;
    line-height: 1.5;
}
.collar-measurement strong { font-weight: 500; color: #42423e; }
.detail-options .tile.selected {
    border: 1px solid #222;
    background: #fff;
    box-shadow: 0 2px 8px #00000008;
}
.detail-options .tile.selected::after {
    content: "";
    position: absolute;
    top: 9px;
    right: 9px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #222;
}
.detail-options .tile.selected::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: 14px;
    right: 15px;
    width: 5px;
    height: 8px;
    border: solid #fff;
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
}
.detail-options .tile:hover:not(:disabled) {
    outline: none;
    border-color: #777;
    background: #fff;
}
.detail-options .tile:focus-visible {
    outline: 2px solid #222;
    outline-offset: 4px;
}
.detail-options .tile:disabled { opacity: .35; box-shadow: none; }
.detail-options .tile:disabled::before,
.detail-options .tile:disabled::after { display: none; }
.collar-settings {
    padding: 0 0 24px;
    margin-bottom: 28px;
    border: 0;
    border-bottom: 1px solid #deded9;
    background: transparent;
    gap: 16px;
}
.collar-settings label > span { color: #44443f; font-size: 12px; font-weight: 500; }
.collar-settings select {
    min-height: 46px;
    padding: 11px 12px;
    border: 1px solid #d8d8d4;
    border-radius: 4px;
    background: #fff;
    color: #222;
    font-size: 13px;
    cursor: pointer;
}
.collar-settings .collar-white {
    min-height: 52px;
    padding: 13px 15px;
    border: 1px solid #d8d8d4;
    border-radius: 4px;
    background: #fafaf9;
    font-size: 12px;
    color: #555;
    flex-wrap: wrap;
}
.collar-settings .collar-white:has(input:checked) { border-color: #888; background: #fff; }
.collar-white input { flex: 0 0 18px; margin: 0; accent-color: #222; cursor: pointer; }
.collar-settings select:focus-visible,
.collar-white input:focus-visible { outline: 2px solid #222; outline-offset: 3px; }
.generic .select-row {
    align-items: center;
    min-height: 64px;
    padding: 18px;
    margin: 0 0 12px;
    border: 1px solid #d8d8d4;
    border-radius: 5px;
    background: #fafaf9;
    font-size: 14px;
    cursor: pointer;
}
.generic .select-row.selected { border-color: #222; color: #222; background: #fff; }
.generic label { max-width: 100%; font-size: 13px; color: #444; }
.generic input { margin-top: 12px; padding: 14px; border: 1px solid #ccc; border-radius: 4px; background: #fff; font-size: 18px; }
.generic input:focus-visible,.generic .select-row:focus-visible { outline: 2px solid #222; outline-offset: 3px; }
.picker:has(.detail-options.active) .picker-foot,
.picker:has(.generic.active) 
.picker-foot { margin-top: 28px; padding-top: 22px; border-top: 1px solid #deded9; }
.picker .next { border-radius: 3px; min-height: 46px; }
@media (min-width: 651px) and (max-width: 950px) {
    .studio { grid-template-columns: minmax(0, 1fr); }
    .summary { grid-column: 1; }
    .detail-options .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .picker { padding: 30px; }
}
@media (max-width: 650px) {
    .detail-options .tiles { gap: 14px 10px; }
    .detail-options .tile { padding: 8px 8px 15px; }
    .detail-options .tile b { font-size: 13px; }
    .detail-options .tile img { height: 160px; }
    .collar-settings .collar-white { gap: 8px; padding: 12px; }
    .picker:has(.detail-options.active) .picker-foot,
.picker:has(.generic.active) 
.picker-foot { margin-top: 28px; padding-top: 22px; border-top: 1px solid #deded9; }
}
@media (prefers-reduced-motion: reduce) {
    .detail-options .tile { transition: none; }
}

/* Keep the configurator independent of the homepage's shared grid rules. */
.studio { width: 100%; grid-template-columns: minmax(0, 1fr) 440px; }
.studio > *, .panel, .fabric, .selected-fabric > div { min-width: 0; }
.mobile-menu:not(.open) { visibility: hidden; }
.cart-layer:not(.open) { visibility: hidden; }
.cart-layer { overflow: hidden; }
.header .mega-menu { max-width: 100vw; overflow-x: auto; }
.header .mega-content { max-width: 100%; }
.picker { padding: 32px clamp(20px, 4vw, 64px); }
.option-nav { max-width: 100%; }
.option-nav button { flex: 0 0 auto; }
.fabric-grid { padding: 0; }
.fabric-actions { gap: 12px; }
.fabric-search { flex: 1; min-width: 0; }
.fabric-search input { min-width: 0; }
.filter-fabrics { flex-shrink: 0; white-space: nowrap; }
.summary { min-width: 0; }
.summary h2 { font-size: clamp(22px, 2vw, 30px); line-height: 1.2; overflow-wrap: anywhere; }
.summary li { gap: 12px; }
.summary li b { overflow-wrap: anywhere; }
.selected-fabric b,.selected-fabric span { overflow-wrap: anywhere; }
.fabric-modal section.fabric-modal-dialog { width: min(950px, 100%); padding: 0; max-height: calc(100dvh - 32px); }
.fabric-modal-content > * { min-width: 0; }
.fabric-modal dd { overflow-wrap: anywhere; }
@media (max-width: 1000px) {
    .studio { display: flex; flex-direction: column; }
    .picker { width: 100%; border-right: 0; }
    .summary { display: flex; width: 100%; border-top: 1px solid var(--line); padding: 24px; }
    .summary h2 { max-width: 650px; }
    .detail-options .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
    .header .shell { width: calc(100% - 24px); gap: 10px; }
    .header .brand { min-width: 0; flex-shrink: 1; }
    .header .brand img { max-width: 130px; height: auto; }
    .header-tools { gap: 6px; }
    .header .top-options { gap: 4px; }
    .header .btn-option { padding: 4px; font-size: 10px; }
    .fabric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; }
    .fabric-toolbar { padding: 0 0 16px; }
    .fabric { padding: 0; }
    .fabric-actions { flex-wrap: wrap; }
    .fabric-search { flex-basis: 100%; }
    .detail-options .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
    .option-nav { padding-top: 80px; }
    .picker { padding: 22px 16px; }
    .panel { margin-top: 14px; }
    .fabric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); height: auto; max-height: 65dvh; gap: 18px 12px; }
    .detail-options .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .title-fabric { flex-wrap: wrap; }
    .fabric b { overflow-wrap: anywhere; }
    .collar-settings { grid-template-columns: minmax(0, 1fr); }
    .summary { padding: 24px 16px; }
    .summary li,.summary li b { font-size: 12px; }
    .picker-foot { gap: 12px; }
    .previous,.next { min-height: 44px; }
    .fabric-modal { padding: 12px; }
    .fabric-modal-content { grid-template-columns: minmax(0, 1fr); }
    .fabric-modal-left { padding: 20px; }
    .fabric-modal-right { padding: 20px; }
    .fabric-modal-right dl > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .fabric-modal-photo img { height: 190px; }
    .fabric-modal-close { z-index: 2; }
}
@media (min-width: 651px) and (max-width: 768px) {
    .option-nav { padding-top: 80px; }
}
.construction-heading{margin:24px 0 16px;font-size:18px;font-weight:500;color:#222}.construction-section{margin-top:30px;padding-top:8px;border-top:1px solid #deded9}[data-body-error]{color:#a32c21;font-size:13px}

/* Disable desktop navigation flyouts only inside the configurator. */
.configurator-no-submenus .header .mega-menu,
.configurator-no-submenus .header .menu-arrow { display: none !important; }

/* The original detail drawings share the same canvas and form one shirt. */
.shirt-recap { margin: 20px 0 18px; padding: 18px 16px 12px; background: #f4f4f2; border: 1px solid #e5e5e0; border-radius: 8px; }
.shirt-drawing { position: relative; width: 100%; max-width: 350px; margin: auto; aspect-ratio: 674 / 702; isolation: isolate; }
.shirt-drawing img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; pointer-events: none; }
.shirt-drawing img[hidden] { display: none; }
.shirt-recap figcaption { margin-top: 12px; text-align: center; color: #555; font-size: 10px; line-height: 1.6; }
.shirt-recap figcaption span { display: block; color: #858580; font-size: 9px; }
.picker:has([data-panel="fabric"].active) { background: #f5f5f3; }
.fabric-grid { gap: 18px 14px; align-content: start; align-items: stretch; padding: 20px 7px 12px 3px; scrollbar-width: thin; scrollbar-color: #c9c9c3 transparent; }
.fabric { padding: 8px; border: 1px solid #d8d8d4; border-radius: 7px; background: #fafaf9; transition: border-color .18s, background-color .18s, box-shadow .18s; }
.fabric .tissu-image { height: auto; aspect-ratio: 1 / 1; border: 0; border-radius: 3px; padding: 0; background: #eeeeec; }
.fabric .tissu-image > img { display: block; width: 100%; height: 100%; object-fit: cover; image-rendering: auto; image-rendering: smooth; image-rendering: high-quality; transform: none; }
.fabric:hover { border-color: #888; background: #fff; box-shadow: 0 4px 14px #00000006; }
.fabric:hover .tissu-image > img { transform: none; }
.shirt-contrast-labels { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:4; overflow:visible; }
.shirt-contrast-labels text { fill:#536573; font:18px Arial,sans-serif; text-anchor:middle; }
.shirt-contrast-labels [data-contrast-cuffs-preview] text { font-size:16px; }
.shirt-contrast-labels [hidden] { display:none; }
@media (min-width: 781px) { .fabric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fabric.selected { border-color: #222; background: #fff; box-shadow: 0 2px 8px #00000008; }
.fabric.selected .tissu-image { border: 0; outline: none; }
.fabric.selected::after { top: 19px; right: 19px; width: 22px; height: 22px; display: grid; place-items: center; background: #222; font-size: 12px; line-height: 1; box-shadow: 0 0 0 3px #ffffffb3; }
.fabric .title-fabric { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; margin-top: 13px; }
.fabric .title-fabric b { margin: 0; font-size: 12px; font-weight: 600; line-height: 1.5; color: #222; }
.fabric .title-fabric em { margin: 0 0 0 auto; font-size: 12px; font-style: normal; font-weight: 600; color: #333; white-space: nowrap; }
.fabric > small { margin-top: 6px; color: #777770; font-size: 10px; line-height: 1.6; }
.fabric .fabric-info { bottom: 8px; right: 8px; width: 28px; height: 28px; border: 1px solid #ffffffb3; background: #ffffffeb; color: #333; opacity: 1; box-shadow: 0 2px 8px #0000000a; }
.fabric .fabric-info:hover { background: #222; color: #fff; }
.fabric-zoom-trigger { position: absolute; bottom: 8px; left: 8px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 1px solid #ffffffb3; border-radius: 50%; background: #ffffffeb; color: #333; cursor: zoom-in; }
.fabric-zoom-trigger:hover { background: #222; color: #fff; }
.fabric-zoom-dialog { width: min(960px, calc(100vw - 24px)); max-width: none; max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: 8px; background: #f5f5f3; color: #222; box-shadow: 0 20px 80px #0005; }
.fabric-zoom-dialog::backdrop { background: #000b; }
.fabric-zoom-dialog.is-option-detail { width:min(560px, calc(100vw - 32px)); border-radius:16px; box-shadow:0 16px 60px #142c2440; }
.fabric-zoom-dialog.is-option-detail::backdrop { background:#14221ccc; }
.fabric-zoom-dialog.is-option-detail .fabric-zoom-viewport { height:min(52dvh, 420px); }
.fabric-zoom-dialog.is-option-detail .fabric-zoom-header { padding:14px 18px; }
.fabric-zoom-dialog.is-option-detail .fabric-zoom-header h2 { font-size:15px; color:#294a3c; }
.fabric-zoom-dialog.is-option-detail button { border-radius:50%; border-color:#dce3de; color:#294a3c; }
.fabric-zoom-dialog.is-option-detail .fabric-zoom-controls { gap:16px; padding:10px; }
.fabric-zoom-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: #fff; }
.fabric-zoom-header h2 { margin: 0; font-family: inherit; font-weight: 500; font-size: 16px; line-height: 1.4; color: #222; overflow-wrap: anywhere; }
.fabric-zoom-dialog button { min-width: 44px; min-height: 44px; flex-shrink: 0; border: 1px solid #ddd; border-radius: 4px; background: #fff; color: #222; font-size: 24px; cursor: pointer; }
.fabric-zoom-dialog button:disabled { opacity: .35; cursor: default; }
.fabric-zoom-dialog button:focus-visible, .fabric-zoom-viewport:focus-visible, [data-fabric-zoom]:focus-visible { outline: 2px solid #222; outline-offset: 2px; }
.fabric-zoom-viewport { height: min(65dvh, 640px); overflow: auto; overscroll-behavior: contain; }
.fabric-zoom-viewport img { display: block; max-width: none; max-height: none; margin: 0 auto; object-fit: contain; user-select: none; }
.fabric-zoom-viewport img[hidden] { display: none; }
.fabric-zoom-viewport.is-zoomed { cursor: grab; }
.fabric-zoom-viewport.is-zoomed:active { cursor: grabbing; }
.fabric-zoom-controls { display: flex; align-items: center; justify-content: center; gap: 20px; padding: 12px; background: #fff; }
.fabric-zoom-controls output { min-width: 5ch; text-align: center; font-size: 14px; font-variant-numeric: tabular-nums; }
.fabric-zoom-dialog [data-zoom-error] { margin: 12px; text-align: center; }
.fabric:focus-visible { outline: 2px solid #222; outline-offset: 3px; }
.validate:disabled { opacity: .6; cursor: wait; }
.commerce-toast { position: fixed; z-index: 1100; right: 22px; bottom: 22px; width: min(360px, calc(100% - 32px)); padding: 17px 18px; background: #222; color: #fff; box-shadow: 0 14px 40px #0003; visibility: hidden; transform: translateY(150%); transition: .25s; font-size: 13px; line-height: 1.5; }
.commerce-toast.show { visibility: visible; transform: none; }
.home-footer { grid-column: 1 / -1; }
.home-footer .brand { display: inline-block; }
.summary-head { align-items: center; gap: 16px; }
.summary-head .eyebrow { margin: 0; font-size: 12px; letter-spacing: .1em; }
.summary-head .validate { width: auto; min-height: 46px; margin: 0; padding: 12px 16px; background: #222; color: #fff; border: 1px solid #222; border-radius: 4px; font-size: 13px; font-weight: 600; text-decoration: none; cursor: pointer; }
.summary-head .validate:hover { background: #444; }
.summary-head .validate span { margin-left: 8px; }
.summary .price { font-size: 14px; padding: 16px 0; }
.summary .price b { font-size: 24px; }
.summary .selected-fabric { gap: 14px; padding: 16px 0; }
.summary .selected-fabric small { font-size: 10px; }
.summary .selected-fabric b { font-size: 14px; line-height: 1.5; }
.summary .selected-fabric span { font-size: 12px; line-height: 1.5; }
.summary .fabric-photo { width: 72px; height: 72px; border-radius: 4px; overflow: hidden; }
.summary li { font-size: 13px; padding: 12px 0; gap: 18px; align-items: baseline; line-height: 1.55; }
.summary li > span { flex: 0 1 42%; color: #686862; }
.summary li b { flex: 1; font-size: 13px; font-weight: 600; color: #292925; overflow-wrap: anywhere; }
.summary .guarantee { padding: 16px; }
.summary .guarantee b { font-size: 13px; }
.summary .guarantee p { font-size: 12px; line-height: 1.6; }
.summary .measure { font-size: 12px; line-height: 1.6; }
.shirt-recap figcaption { font-size: 12px; }
.shirt-recap figcaption span { font-size: 11px; }

/* Embroidery follows the catalogue data and keeps the controls in one panel. */
.embroidery-editor { --emb-ink: #17334c; --emb-line: #dbe3ed; max-width: 690px; color: #263246; }
.embroidery-editor [hidden] { display: none !important; }
.embroidery-toggle-card { display: flex !important; align-items: center; gap: 14px; min-height: 88px; padding: 18px; border: 1px solid var(--emb-line); border-radius: 12px; background: #f8fafd; cursor: pointer; }
.monogram-badge { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 7px; background: #17334c; color: #c3a16b; font: 600 18px DM Sans, serif; }
.embroidery-toggle-copy { flex: 1; }
.embroidery-toggle-copy strong { display: block; font-size: 15px; line-height: 1.4; }
.embroidery-toggle-copy small { display: block; margin-top: 4px; color: #7b8fa9; font-size: 13px; line-height: 1.45; }
.embroidery-toggle-card input[type="checkbox"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.embroidery-switch { flex: 0 0 42px; height: 23px; border-radius: 20px; background: #b6c2d0; padding: 3px; transition: background .2s; }
.embroidery-switch::after { content: ''; display: block; width: 17px; height: 17px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px #0002; transition: transform .2s; }
.embroidery-toggle-card input:checked + .embroidery-switch { background: #17334c; }
.embroidery-toggle-card input:checked + .embroidery-switch::after { transform: translateX(19px); }
.embroidery-toggle-card:has(input:focus-visible) { outline: 2px solid #17334c; outline-offset: 3px; }
.embroidery-fields { border: 0; margin: 26px 0 0; padding: 0; min-width: 0; transition: opacity .2s; }
.embroidery-fields legend { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.embroidery-fields:disabled { opacity: .48; }
.embroidery-editor .embroidery-text-label { font-size: 14px; font-weight: 600; line-height: 1.5; }
.embroidery-text-label span { font-size: 12px; font-weight: 400; }
.embroidery-editor .embroidery-text { width: 100%; margin-top: 9px; padding: 15px; border: 1px solid #ccd9e8; border-radius: 7px; background: #fff; text-align: center; font-size: 17px; font-weight: 600; letter-spacing: .13em; }
.embroidery-text::placeholder { color: #9ba7b7; font-size: 14px; }
.embroidery-editor .embroidery-group { margin-top: 24px; }
.embroidery-editor .embroidery-group h3 { margin: 0 0 10px; color: #263246; font: 600 14px var(--sans); }
.embroidery-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.embroidery-choice { position: relative; min-width: 0; min-height: 78px; padding: 13px 14px; text-align: left; border: 1px solid var(--emb-line); border-radius: 8px; background: #fff; color: #66778e; cursor: pointer; }
.embroidery-choice strong { display: block; font-size: 13px; line-height: 1.4; font-weight: 500; }
.embroidery-choice small { display: block; margin-top: 4px; color: #90a0b5; font-size: 12px; line-height: 1.45; }
.embroidery-choice.selected { border-color: #36526d; background: #f8fbff; color: #17334c; }
.embroidery-choice.selected strong { font-weight: 600; }
.embroidery-choice:hover:not(:disabled), .embroidery-color:hover:not(:disabled) { border-color: #607b96; }
.embroidery-font { padding-right: 30px; }
.font-sample { display: block; margin-top: 7px; color: #17334c; font-size: 17px; line-height: 1.3; }
.font-script { font-family: 'Palatino Linotype', DM Sans, serif; font-style: italic; }
.font-block { font-family: Arial, sans-serif; font-weight: 600; letter-spacing: .08em; }
.embroidery-check { display: none; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: #17334c; }
.selected .embroidery-check { display: block; }
.embroidery-color-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.embroidery-color { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px; border: 1px solid var(--emb-line); border-radius: 8px; background: #fff; color: #6f7f93; font-size: 12px; cursor: pointer; }
.embroidery-color i { width: 15px; height: 15px; flex: 0 0 15px; border: 1px solid #0002; border-radius: 50%; }
.embroidery-color span { min-width: 0; overflow-wrap: anywhere; }
.embroidery-color.selected { border-color: #36526d; background: #f8fbff; color: #17334c; font-weight: 600; }
.embroidery-editor button:focus-visible, .embroidery-editor input:focus-visible { outline: 2px solid #36526d; outline-offset: 3px; }
.embroidery-message { min-height: 20px; margin: 14px 0 0; font-size: 13px; line-height: 1.5; color: #984337; }
.embroidery-help { font-size: 13px; line-height: 1.6; color: #75879c; }
.shirt-monogram { position: absolute; z-index: 1; transform: translate(-50%,-50%); font: 600 9px Arial,sans-serif; letter-spacing: .04em; }
.shirt-monogram[hidden] { display: none; }
.shirt-monogram.beside-squirrel { transform: translate(-100%,-50%); white-space: nowrap; }
.shirt-monogram.font-script { font-family: DM Sans, serif; font-style: italic; }

/* Inner contrasts: independent placement switches, one shared accent fabric. */
.panel[data-panel="contrast"].active { display:flex; flex:1; min-height:0; }
.contrast-editor { display:flex; flex-direction:column; flex:1; min-width:0; color: #263246; }
.embroidery-editor, .squirrel-editor, .contrast-editor { width:100%; max-width:690px; box-sizing:border-box; }
.contrast-editor > :not(.contrast-fabrics) { flex-shrink:0; }
.contrast-editor > h3 { margin: 0 0 7px; font: 600 22px DM Sans, serif; color: #263246; }
.contrast-intro { margin: 0 0 24px; max-width: 560px; color: #7b8da5; font-size: 14px; line-height: 1.55; }
.contrast-editor .contrast-toggle-card { display: flex; align-items: center; gap: 16px; min-height: 76px; margin: 0 0 18px; padding: 17px 18px; border: 1px solid #dce5ef; border-radius: 12px; background: #f8fafd; cursor: pointer; }
.contrast-toggle-card > span { flex: 1; }
.contrast-toggle-card strong { display: block; font-size: 14px; line-height: 1.5; font-weight: 600; }
.contrast-toggle-card small { display: block; margin-top: 3px; color: #7b8da5; font-size: 13px; line-height: 1.45; }
.contrast-toggle-card .contrast-unavailable { color: #8c6550; font-size: 12px; }
.contrast-toggle-card input[type="checkbox"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.contrast-switch { flex: 0 0 42px; height: 23px; padding: 3px; border-radius: 20px; background: #b6c2d0; transition: background .2s; }
.contrast-switch::after { content: ''; display: block; width: 17px; height: 17px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #0002; transition: transform .2s; }
.contrast-toggle-card input:checked + .contrast-switch { background: #17334c; }
.contrast-toggle-card input:checked + .contrast-switch::after { transform: translateX(19px); }
.contrast-toggle-card:has(input:disabled) { cursor: not-allowed; background: #f2f3f5; }
.contrast-toggle-card:has(input:disabled) .contrast-switch { opacity: .45; }
.contrast-toggle-card:has(input:focus-visible) { outline: 2px solid #36526d; outline-offset: 3px; }
.contrast-fabric-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 17px; border-top: 1px solid #e1e7ef; }
.contrast-fabric-heading h4 { margin: 0; font: 600 14px var(--sans); color: #263246; }
.contrast-fabric-heading > span { font-size: 12px; color: #657b93; white-space: nowrap; }
.contrast-editor .contrast-search { display: block; margin: 13px 0; }
.contrast-editor .contrast-search input { width: 100%; padding: 11px 13px; border: 1px solid #dce5ef; border-radius: 7px; background: #fff; font-size: 13px; }
.contrast-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.contrast-fabrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; gap: 10px; flex:1 0 330px; min-height:330px; height:0; overflow-y: auto; padding: 3px 6px 6px 3px; scrollbar-width: thin; scrollbar-color: #cbd6e3 transparent; }
.contrast-fabric { display: flex; position: relative; align-items: center; gap: 10px; min-width: 0; min-height: 65px; padding: 11px; border: 1px solid #dce5ef; border-radius: 9px; background: #fff; color: #5f7087; text-align: left; cursor: pointer; transition: border-color .18s, background .18s; }
.contrast-fabric > img { display: block; width: 100px; height: auto; flex: 0 0 30px; object-fit: cover; border: 1px solid #d3ddea; border-radius: 6px; }
.contrast-fabric > span { min-width: 0; flex: 1; }
.contrast-fabric strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 500; line-height: 1.5; }
.contrast-fabric small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 3px; font-size: 10px; letter-spacing: .03em; color: #92a3ba; }
.contrast-fabric > i { display: none; font-size: 12px; color: #17334c; font-style: normal; }
.contrast-fabric.selected { border-color: #36526d; background: #f8fbff; }
.contrast-fabric.selected > i { display: block; }
.contrast-fabric:hover:not(:disabled) { border-color: #607b96; }
.contrast-fabric:focus-visible,.contrast-search input:focus-visible { outline: 2px solid #36526d; outline-offset: 2px; }
.contrast-off .contrast-fabrics,.contrast-off .contrast-search { opacity: .48; }
.contrast-fabric:disabled { cursor: default; }
.contrast-help { margin: 12px 0 0; color: #7b8da5; font-size: 12px; line-height: 1.5; }
.contrast-message { min-height: 20px; margin: 12px 0 0; color: #984337; font-size: 13px; line-height: 1.5; }
.contrast-editor [hidden] { display: none !important; }
@media(max-width:650px) {
    .contrast-editor > h3 { font-size: 20px; }
    .contrast-intro { font-size: 13px; }
    .contrast-editor .contrast-toggle-card { padding: 14px; }
    .contrast-fabric { padding: 9px; gap: 8px; }
    .contrast-fabric > img { width: 25px; height: 28px; flex-basis: 25px; }
    .contrast-fabric strong { font-size: 12px; }
}
.corporate-logo-upload { margin-top: 24px; }
.embroidery-editor .corporate-logo-upload > label, .corporate-color-label { display: block; margin: 15px 0 8px; font-size: 13px; font-weight: 600; }
.embroidery-editor .corporate-logo-upload input[type="text"], .embroidery-editor [data-logo-color] { padding: 13px; border: 1px solid var(--emb-line); border-radius: 7px; background: #fff; font-size: 14px; }
.embroidery-editor .logo-dropzone { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 24px 18px; border: 1px dashed #a8b8c9; border-radius: 10px; background: #f8fafd; text-align: left; cursor: pointer; }
.logo-dropzone > span { font-size: 26px; color: #17334c; }
.logo-dropzone small { font-size: 12px; color: #8595a9; font-weight: 400; }
.embroidery-editor .logo-dropzone input { width: 100%; max-width: 300px; border: 0; font-size: 12px; }
.logo-upload-button { width: 100%; min-height: 46px; margin-top: 14px; padding: 12px 18px; border: 0; border-radius: 6px; background: #17334c; color: #fff; cursor: pointer; }
.logo-upload-button:disabled { opacity: .5; cursor: wait; }
.corporate-logo-card { margin-top: 24px; padding: 20px; border: 1px solid var(--emb-line); border-radius: 10px; background: #fff; }
.corporate-logo-card > img { display: block; width: 100%; height: 100px; object-fit: contain; margin-bottom: 18px; }
.corporate-logo-card > h3 { font-size: 16px; }
.embroidery-editor .corporate-position { display: flex; align-items: center; gap: 8px; padding: 12px; border: 1px solid var(--emb-line); border-radius: 6px; font-size: 12px; cursor: pointer; }
.embroidery-editor .corporate-position input { width: 16px; height: 16px; flex: 0 0 16px; accent-color: #17334c; }
.corporate-position:has(input:checked) { border-color: #36526d; background: #f8fbff; }
.corporate-position:has(input:disabled) { opacity: .4; }
.corporate-position small { margin-left: auto; white-space: nowrap; }
@media(max-width:650px) {
    .embroidery-toggle-card { gap: 10px; padding: 14px; }
    .embroidery-toggle-copy strong { font-size: 13px; }
    .embroidery-toggle-copy small { font-size: 12px; }
    .embroidery-choice { padding: 11px; }
    .embroidery-color-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (min-width: 651px) and (max-width: 950px) {
    .summary { display: flex; }
    .shirt-recap { width: min(100%, 360px); align-self: center; }
}
@media (max-width: 650px) {
    .fabric { padding: 8px 8px 13px; }
    .fabric.selected::after { top: 15px; right: 15px; }
    .fabric .title-fabric b, .fabric .title-fabric em { font-size: 11px; }
    .shirt-recap { max-width: 100%;  }
}

.option-nav [hidden], .picker [data-panel][hidden], .summary li[hidden], [data-next][hidden] { display:none !important; }
.overshirt-models { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:20px; }
.overshirt-model { padding:12px; border:1px solid #dce3ea; border-radius:12px; background:#fff; cursor:pointer; color:#183448; text-align:left; }
.overshirt-model img { display:block; width:100%; height:230px; object-fit:contain; margin-bottom:12px; }
.overshirt-model strong { display:block; font-size:15px; }
.overshirt-model.selected { border:2px solid #183448; background:#f4f7fa; }
.overshirt-model:hover,.overshirt-model:focus-visible { outline:2px solid #829bad; outline-offset:2px; }
@media(max-width:480px) { .overshirt-model img { height:160px; } }
.fabric-key-facts { display:flex; flex-wrap:wrap; gap:4px 6px; margin:8px 0 4px; }
.fabric-key-facts span { padding:3px 6px; border-radius:4px; background:#edf2ef; color:#365044; font:400 10px/1.5 'DM Sans',sans-serif; }
.fabric-modal dl > [hidden] { display:none!important; }
/* Cartes de contraste : vignettes contenues et zoom indépendant du choix. */
.contrast-fabrics .contrast-fabric-card{position:relative;min-width:0;display:flex;align-items:stretch;min-height:86px}
.contrast-fabrics .contrast-fabric-card[hidden]{display:none}
.contrast-fabrics .contrast-fabric{width:100%;height:100%;box-sizing:border-box;min-height:86px;padding:10px 44px 10px 10px;overflow:hidden}
.contrast-fabrics .contrast-fabric>img{width:64px;height:64px;min-width:64px;max-width:64px;flex:0 0 64px;object-fit:cover;box-sizing:border-box}
.contrast-fabrics .contrast-fabric strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}
.contrast-fabrics .contrast-fabric>i{position:absolute;top:5px;right:12px}
.contrast-fabric-zoom{position:absolute;right:6px;bottom:10px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid #dce5ef;border-radius:6px;background:#fff;color:#36526d;cursor:zoom-in}
.contrast-fabric-zoom:focus-visible{outline:2px solid #36526d;outline-offset:2px}
@media(max-width:650px){.contrast-fabrics{grid-template-columns:minmax(0,1fr)}}
.contrast-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.contrast-filters label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;color:#5f7087}
.contrast-filters select{box-sizing:border-box;width:100%;min-width:0;height:42px;padding:8px;border:1px solid #dce5ef;border-radius:6px;background:#fff;color:#263246;font:13px var(--sans)}
.contrast-filters select:focus-visible{outline:2px solid #36526d;outline-offset:2px}
.contrast-filter-status{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:22px;font-size:12px;color:#657b93}
.contrast-filter-status button{padding:0;border:0;background:none;color:#36526d;text-decoration:underline;font:inherit;cursor:pointer}
.contrast-filter-status [hidden]{display:none}
@media(max-width:420px){.contrast-filters{grid-template-columns:minmax(0,1fr);gap:8px}.contrast-filters label{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center}}
.summary [data-summary-contrast] b{display:flex;align-items:center;justify-content:flex-end;gap:10px}.summary .summary-contrast-thumbnail{display:block;flex:0 0 44px;width:44px;height:44px;object-fit:cover;border:1px solid #dce5ef;border-radius:5px}.summary [data-summary-contrast] b>span{min-width:0}
.collar-monogram-editor{margin-top:32px;padding-top:28px;border-top:1px solid #dce5ef}
.collar-monogram-guide{display:block;width:200px;max-width:100%;height:auto;margin:0 auto 20px;border-radius:8px}
.shirt-collar-monogram{position:absolute;left:50%;top:4.8%;transform:translate(-50%,-50%);z-index:5;max-width:15%;font:600 5px Arial,sans-serif;white-space:nowrap;letter-spacing:0;pointer-events:none}
.shirt-collar-monogram.font-script{font-family:Georgia,serif;font-style:italic}
.shirt-collar-monogram[hidden]{display:none}

/* A strong selected state, without changing card dimensions or grid alignment. */
.picker .tile.selected:not(:disabled),
.picker .fabric.selected,
.picker .embroidery-choice.selected,
.picker .embroidery-color.selected,
.picker .embroidery-color[aria-pressed="true"],
.picker .contrast-fabric.selected,
.picker .overshirt-model.selected,
.picker .select-row.selected {
    border-color: #203f35;
    box-shadow: inset 0 0 0 2px #203f35;
    background-color: #edf4ef;
    color: #17382d;
}
.picker .detail-options .tile.selected::after {
    width: 28px;
    height: 28px;
    background: #203f35;
    box-shadow: 0 0 0 2px #fff;
}
.picker .detail-options .tile.selected::before {
    top: 15px;
    right: 19px;
    width: 7px;
    height: 11px;
    border-width: 0 2px 2px 0;
}
.picker .fabric.selected::after { width: 28px; height: 28px; background: #203f35; font-size: 15px; }
.picker .squirrel-editor .embroidery-color[aria-pressed="true"] { outline: none; }
.picker .squirrel-editor .embroidery-color[aria-pressed="true"]:focus-visible { outline: 2px solid #729783; outline-offset: 3px; }

/* White components must cover the neutral body rather than multiply into it. */
.shirt-drawing img.shirt-layer--white{mix-blend-mode:normal}

/* Fixed mobile navigation must not inherit the detail panels' 22px top padding. */
@media(max-width:768px){
  body.configurator-no-submenus .studio .picker .picker-foot {
    height:60px;
    box-sizing:border-box;
    margin:0;
    padding:6px 15px;
    align-items:center;
  }
  body.configurator-no-submenus .picker-foot > button {
    margin-top:0;
    margin-bottom:0;
    height:46px;
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
}

/* Keep the mobile confirmation label and arrow on one line. */
@media(max-width:650px){
  body .studio .summary .shirt-bottom{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
  body .studio .summary .shirt-bottom .price{flex:0 0 auto;gap:5px}
  body .studio .summary .shirt-bottom #validate-shirt{white-space:nowrap!important;flex:0 0 auto;width:auto;min-width:0;margin-left:auto;padding:10px 12px!important;font-size:12px!important;gap:6px;letter-spacing:0!important}
  body .studio .summary .shirt-bottom #validate-shirt span{margin-left:0;font-size:16px}
}

@media(max-width:650px){
  body .studio .summary .shirt-bottom .price{flex-direction:column;align-items:flex-start;justify-content:center;padding:0;gap:0}
  body .studio .summary .shirt-bottom .price>span{font-size:10px;line-height:1.3}
  body .studio .summary .shirt-bottom .price>b{font-size:20px;line-height:1.3}
}
