.alc-configurator{
    container-type:inline-size;
    border:1px solid #d7d7d7;
    border-radius:6px;
    padding:22px;
    margin:0 0 24px;
    background:#fff;
    clear:both;
    box-sizing:border-box;
}
.alc-configurator h3{margin:0 0 18px;font-size:clamp(1.65rem,7cqi,2.15rem);line-height:1.18}
.alc-field{margin:0 0 18px;min-width:0}
.alc-field label,.alc-choice-group legend{display:block;font-size:1rem;line-height:1.3;font-weight:600;margin-bottom:8px}
.alc-field textarea,.alc-field select{display:block;width:100%;max-width:none;min-width:0;box-sizing:border-box;font-size:1rem;line-height:1.35}
.alc-field select{min-height:42px;padding:7px 34px 7px 10px}
.alc-field textarea{min-height:100px;padding:10px}
.alc-font-field select{width:100%;max-width:none;min-width:0;min-height:42px;padding:7px 34px 7px 10px;box-sizing:border-box;font-size:1rem;line-height:1.35}
.alc-choice-group{border:0;padding:0;margin:0 0 18px;min-width:0}
.alc-font-tiles,.alc-material-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.alc-font-tile,.alc-material-tile{position:relative;display:flex;align-items:center;min-width:0;border:1px solid #d3d3d3;border-radius:5px;background:#fff;cursor:pointer;box-sizing:border-box}
.alc-font-tile{min-height:78px;flex-direction:column;justify-content:center;gap:3px;padding:9px;text-align:center}
.alc-material-tile{gap:9px;padding:10px 11px;line-height:1.25}
.alc-font-tile input,.alc-material-tile input{position:absolute;opacity:0;pointer-events:none}
.alc-font-tile:has(input:checked),.alc-material-tile:has(input:checked){border-color:#222;box-shadow:0 0 0 1px #222 inset;background:#fafafa}
.alc-font-tile:focus-within,.alc-material-tile:focus-within{outline:2px solid currentColor;outline-offset:2px}
.alc-font-sample{display:block;width:100%;overflow:hidden;white-space:nowrap;font-size:30px;line-height:1.05}
.alc-font-name{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:600}
.alc-font-tile small{font-size:.75rem}
.alc-swatch{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--alc-swatch);border:1px solid rgba(0,0,0,.22);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}

.alc-material-select-wrap{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}
.alc-material-select-wrap select{width:100%;max-width:none;min-width:0;min-height:42px;padding:7px 34px 7px 10px;box-sizing:border-box;font-size:1rem;line-height:1.35}
.alc-selected-swatch{display:block;flex:none;width:32px;height:32px}
.alc-inline-notice{margin:6px 0 0;font-size:.88rem;color:#555}
.alc-preview-box{position:relative;border:1px solid #ddd;background:#f7f7f7;margin:8px 0 16px;padding:14px}
.alc-preview-heading{font-size:.95rem;line-height:1.3;font-weight:600;margin-bottom:12px}
.alc-preview-stage{position:relative;display:block;width:100%;height:320px;min-height:220px;overflow:hidden;background:#eef3f5;border:1px dashed #aeb4ba;box-sizing:border-box}
.alc-preview-text{position:absolute;left:50%;top:50%;display:inline-block;max-width:none;white-space:pre;text-align:center;line-height:1.02;transform:translate(-50%,-50%);transform-origin:center center;font-kerning:normal;font-variant-ligatures:common-ligatures contextual;letter-spacing:normal;pointer-events:none}
.alc-preview-panel-text{z-index:1;paint-order:stroke fill;stroke-linejoin:round;stroke-linecap:round}
.alc-preview-letter-text{z-index:2}
@media(max-width:600px){.alc-preview-stage{height:250px;min-height:200px}}
.alc-dimensions{text-align:center;margin-top:10px;font-size:.92rem;font-variant-numeric:tabular-nums}
.alc-preview-note{text-align:center;margin-top:6px;font-size:.78rem;line-height:1.35;color:#666}
.alc-totals{display:grid;grid-template-columns:1fr;border:1px solid #ddd;margin-bottom:18px;background:#fff}
.alc-totals>div{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;column-gap:18px;min-width:0;padding:12px 14px}
.alc-totals>div+div{border-top:1px solid #ddd}
.alc-totals span{min-width:0;font-size:.98rem;line-height:1.3}
.alc-totals strong{justify-self:end;white-space:nowrap;font-size:1.12rem;line-height:1.2;font-variant-numeric:tabular-nums}
.alc-confirm{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:9px;font-size:.98rem;font-weight:600;line-height:1.45}
.alc-confirm input{margin:4px 0 0}
.alc-base-price{font-size:1rem}
@container (min-width:560px){.alc-font-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.alc-material-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:760px){.alc-font-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.alc-material-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.alc-totals{grid-template-columns:1fr 1fr}.alc-totals>div+div{border-top:0;border-left:1px solid #ddd}}
@container (max-width:360px){.alc-configurator{padding:16px}.alc-font-tiles,.alc-material-tiles{grid-template-columns:1fr}.alc-totals>div{column-gap:10px;padding:11px 12px}.alc-totals span{font-size:.92rem}.alc-totals strong{font-size:1.02rem}}
@supports not selector(:has(*)){.alc-font-tile input:checked+span,.alc-material-tile input:checked+span{outline:2px solid #222}}

.alc-panel-options{border:1px solid #ddd;border-radius:5px;background:#fafafa;padding:14px;margin:0 0 18px}
.alc-panel-options[hidden]{display:none!important}
.alc-panel-options .alc-field:last-of-type{margin-bottom:10px}
.alc-panel-warning{color:#8a4b00;font-weight:600}

/* Keep WooCommerce cart/checkout item metadata in proper label/value rows. */
.woocommerce-cart dl.variation,
.woocommerce-checkout-review-order dl.variation,
.woocommerce-order-details dl.variation{
    display:grid!important;
    grid-template-columns:max-content minmax(0,1fr)!important;
    column-gap:.35em!important;
    row-gap:.2em!important;
    align-items:start!important;
    margin:.45em 0 0!important;
}
.woocommerce-cart dl.variation dt,
.woocommerce-cart dl.variation dd,
.woocommerce-checkout-review-order dl.variation dt,
.woocommerce-checkout-review-order dl.variation dd,
.woocommerce-order-details dl.variation dt,
.woocommerce-order-details dl.variation dd{
    float:none!important;
    clear:none!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    line-height:1.35!important;
}
.woocommerce-cart dl.variation dt,
.woocommerce-checkout-review-order dl.variation dt,
.woocommerce-order-details dl.variation dt{font-weight:600!important;}
.woocommerce-cart dl.variation dd p,
.woocommerce-checkout-review-order dl.variation dd p,
.woocommerce-order-details dl.variation dd p{margin:0!important;padding:0!important;}



/* Checkout review: use the full product column for each option row.
   Some themes apply break-all inside the narrow variation value column, which
   split words such as "Cookie" and material names one letter at a time. */
.woocommerce-checkout-review-order-table{
    table-layout:fixed!important;
    width:100%!important;
}
.woocommerce-checkout-review-order-table th.product-name,
.woocommerce-checkout-review-order-table td.product-name{
    width:68%!important;
}
.woocommerce-checkout-review-order-table th.product-total,
.woocommerce-checkout-review-order-table td.product-total{
    width:32%!important;
}
.woocommerce-checkout-review-order dl.variation{
    display:block!important;
    width:100%!important;
    max-width:none!important;
}
.woocommerce-checkout-review-order dl.variation dt,
.woocommerce-checkout-review-order dl.variation dd{
    display:inline!important;
    float:none!important;
    clear:none!important;
    width:auto!important;
    max-width:none!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
}
.woocommerce-checkout-review-order dl.variation dt{
    margin-right:.35em!important;
}
.woocommerce-checkout-review-order dl.variation dd p{
    display:inline!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
}
.woocommerce-checkout-review-order dl.variation dd::after{
    content:"";
    display:block;
    height:.18em;
}
@media(max-width:520px){
    .woocommerce-checkout-review-order-table th.product-name,
    .woocommerce-checkout-review-order-table td.product-name{width:72%!important}
    .woocommerce-checkout-review-order-table th.product-total,
    .woocommerce-checkout-review-order-table td.product-total{width:28%!important}
}

/* Compact lettering workflow and accessible font preview picker. */
.alc-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.alc-controls,.alc-preview-side{min-width:0}
.alc-tabs{display:flex;gap:4px;background:#f5f1ef;padding:4px;border-radius:6px;margin-bottom:20px}
.alc-tabs button{flex:1;min-width:0;padding:10px 5px;border:0;background:transparent;color:#333;font-size:.9rem;border-radius:4px}
.alc-tabs button[aria-selected=true]{background:#fff;box-shadow:0 1px 4px #00000015}
.alc-configurator [role=tabpanel][hidden],.alc-configurator [role=listbox][hidden]{display:none!important}
.alc-next{width:100%;padding:11px 14px;border-radius:5px;background:#282828;color:#fff}
.alc-review-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;margin-bottom:20px}
.alc-review-summary dt{font-size:.9rem;color:#666;font-weight:400}
.alc-review-summary dd{margin:0;font-size:.95rem;overflow-wrap:anywhere;white-space:pre-wrap}
.alc-preview-side .alc-preview-box{margin-top:0;border-radius:6px}
.alc-preview-side .alc-preview-stage{height:240px;min-height:180px;border:0;border-radius:4px}
.alc-preview-side .alc-totals{grid-template-columns:1fr;border-radius:6px}
.alc-preview-side .alc-totals>div+div{border-left:0;border-top:1px solid #ddd}
.alc-controls textarea{min-height:75px}
.alc-preview-rectangle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;max-width:96%;max-height:96%;box-shadow:0 0 0 1px #00000012}
.alc-preview-rectangle[hidden]{display:none!important}
.alc-font-picker{position:relative}
.alc-font-picker>button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;background:#fff;border:1px solid #ccc;border-radius:4px;padding:8px 12px;color:#222;text-align:left}
.alc-font-picker>button>span:first-child{flex:1;min-width:0}
.alc-font-current-sample{font-size:24px;line-height:1.2}
.alc-font-picker [role=listbox]{position:absolute;top:100%;left:0;right:0;max-height:320px;overflow-y:auto;border:1px solid #ccc;border-radius:5px;box-shadow:0 5px 20px #00000020;background:#fff;z-index:30;padding:4px}
.alc-font-picker [role=option]{display:flex;width:100%;min-height:55px;align-items:center;gap:12px;text-align:left;padding:9px 12px;border:0;border-radius:3px;background:#fff;color:#222}
.alc-font-picker [role=option]:hover,.alc-font-picker [role=option]:focus{background:#f5eff1}
.alc-font-picker [aria-selected=true]{background:#f5eff1}
.alc-font-option-name{flex:1;min-width:0;font-size:.9rem}
.alc-font-option-sample{font-size:26px;line-height:1.2;white-space:nowrap}
.alc-native-font{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;opacity:0;pointer-events:none}
@container(min-width:650px){.alc-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.alc-preview-side{align-self:start;position:sticky;top:45px}}
@media(min-width:1000px){.single-product div.product:has(.alc-configurator) div.summary{width:100%!important;float:none!important}.single-product div.product:has(.alc-configurator) .woocommerce-product-gallery{max-width:260px!important;margin-right:30px!important}.single-product div.product:has(.alc-configurator) form.cart{clear:both}}

/* Keep quote errors within the preview column. */
.alc-preview-side .alc-totals>div{grid-template-columns:minmax(110px,1fr) minmax(0,2fr)}
.alc-preview-side .alc-totals strong{white-space:normal;overflow-wrap:anywhere;max-width:100%;min-width:0;text-align:right}

.alc-width-field input{width:100%;padding:12px;border:1px solid #ccc;border-radius:4px}.alc-template-field button{white-space:normal;width:100%;padding:12px}.alc-template-field button:disabled{opacity:.5;cursor:not-allowed}
