.weston-engraving {
    display: block;
    box-sizing: border-box;
    clear: both;
    width: 100%;
    min-inline-size: 0;
    margin: 0 0 1.25rem;
    padding: 1rem;
    border: 1px solid #aeb7bf;
    border-radius: 0.5rem;
}
.weston-engraving legend {
    padding: 0 0.4rem;
    font-weight: 700;
}
.weston-engraving label,
.weston-engraving small {
    display: block;
}
.weston-engraving textarea,
.weston-engraving select {
    box-sizing: border-box;
    width: 100%;
    margin: 0.25rem 0;
    padding: 0.45rem;
}
.weston-engraving textarea { resize: vertical; }
.weston-engraving small + label,
.weston-preview-label { margin-top: 0.75rem; }
.weston-preview {
    margin-top: 0.25rem;
    padding: 1.1rem 0.65rem;
    background: #17232d;
    color: #f5f8fb;
    text-align: center;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-size: clamp(1.15rem, 3vw, 1.6rem);
    line-height: 1.35;
}
.weston-preview [data-font="arial"], .weston-preview[data-font="arial"] { font-family: Arial, "Liberation Sans", sans-serif; }
.weston-preview [data-font="georgia"], .weston-preview[data-font="georgia"] { font-family: Georgia, serif; }
.weston-preview [data-font="times"], .weston-preview[data-font="times"] { font-family: "Times New Roman", "Liberation Serif", serif; }
.weston-preview [data-font="verdana"], .weston-preview[data-font="verdana"] { font-family: Verdana, "DejaVu Sans", sans-serif; }
.weston-preview [data-font="courier"], .weston-preview[data-font="courier"] { font-family: "Courier New", "Liberation Mono", monospace; }

.weston-engraving [hidden] { display: none; }

.weston-photo { margin-bottom: 1rem; }
.woocommerce-cart img.weston-cart-upload-thumbnail {
    object-fit: contain;
    height: auto;
}



.weston-uploaded-photo-active { position: relative; }
.weston-uploaded-photo-active > :not(.weston-uploaded-photo) {
    visibility: hidden !important;
}
.weston-uploaded-photo-active > .weston-uploaded-photo {
    position: absolute;
    inset: 0;
    z-index: 3;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    background: #080b0e;
}
.woocommerce-product-gallery:has(.weston-uploaded-photo-active) .woocommerce-product-gallery__trigger {
    visibility: hidden;
}
[data-uploaded-photo-home] img { max-width: 100%; height: auto; }


.weston-uploaded-photo { position: relative; overflow: hidden; container-type: inline-size; }
[data-uploaded-photo-home] > .weston-uploaded-photo { aspect-ratio: 4 / 5; background: #080b0e; }
.weston-uploaded-photo [data-weston-layer] {
    position: absolute;
    left: var(--placement-x, 50%);
    top: var(--placement-y, 50%);
    transform: translate(-50%, -50%);
    cursor: grab;
    touch-action: none;
    user-select: none;
}
.weston-uploaded-photo canvas[data-weston-layer] {
    filter: grayscale(1);
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    transform: translate(-50%, -50%) scale(var(--placement-size, 1));
}
.weston-uploaded-photo .weston-preview {
    margin: 0;
    padding: 0;
    width: max-content;
    max-width: 95%;
    background: transparent;
    color: white;
    text-shadow: 0 1px 3px #000, 0 0 4px #000;
    font-size: calc(clamp(.65rem, 4cqw, 1.15rem) * var(--placement-size, 1));
}
.weston-uploaded-photo .weston-preview:empty { display: none; }
.weston-layout-controls:not([hidden]) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
    gap: .6rem;
    margin: .75rem 0;
}
.weston-layout-controls small { grid-column: 1 / -1; }
.weston-layout-group { min-width: 0; border: 1px solid #8297a7; border-radius: .5rem; padding: .7rem; background: #f1f6f9; color: #172c3c; }
.weston-layout-group legend { font-weight: 700; }

.weston-engraving input[type="range"] {
    appearance: none;
    display: block;
    width: 100%;
    height: 30px;
    margin: .1rem 0 .45rem;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.weston-engraving input[type="range"]::-webkit-slider-runnable-track {
    height: 8px;
    border-radius: 8px;
    background: #7d9bb0;
}
.weston-engraving input[type="range"]::-moz-range-track {
    height: 8px;
    border-radius: 8px;
    background: #7d9bb0;
}
.weston-engraving input[type="range"]::-webkit-slider-thumb {
    appearance: none;
    width: 23px;
    height: 23px;
    margin-top: -7.5px;
    border: 2px solid white;
    border-radius: 50%;
    background: #185779;
    box-shadow: 0 0 0 1px #173e58;
}
.weston-engraving input[type="range"]::-moz-range-thumb {
    width: 19px;
    height: 19px;
    border: 2px solid white;
    border-radius: 50%;
    background: #185779;
    box-shadow: 0 0 0 1px #173e58;
}
.weston-engraving input[type="range"]:focus-visible {
    outline: 2px solid #185779;
    outline-offset: 2px;
}

.weston-uploaded-photo .weston-crystal-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}
.weston-has-crystal-template canvas[data-weston-layer] {
    width: 62%;
    height: 65%;
}

.weston-layout-group[hidden] { display: none; }

.weston-placement-panel {
    min-width: 0;
    border: 1px solid #8297a7;
    border-radius: .5rem;
    background: #f1f6f9;
    color: #172c3c;
}
.weston-placement-panel > summary {
    display: list-item;
    padding: .7rem;
    font-weight: 700;
    cursor: pointer;
}
.weston-placement-panel-body {
    display: grid;
    gap: .6rem;
    padding: 0 .7rem .7rem;
}

.weston-coin [data-coin-side] {
    min-width: 0;
    margin: 0 0 1rem;
    padding: .75rem;
    border: 1px solid #aeb9c0;
    border-radius: .5rem;
}
.weston-coin-canvas {
    display: block;
    width: min(100%, 300px);
    height: auto;
    margin: 0 auto .75rem;
    touch-action: none;
    cursor: grab;
}

.weston-uploaded-photo-active > .weston-coin-gallery {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    container-type: size;
}
.weston-coin-gallery .weston-coin-canvas {
    width: min(100%, 49cqh);
    max-height: 49%;
    object-fit: contain;
    margin: 0;
}
.weston-coin .weston-placement-panel { margin-top: .6rem; }

.weston-coin-gallery:has(canvas[height="440"]) .weston-coin-canvas {
    width: min(100%, 33cqh);
}

.weston-selected-text-line { outline: 2px solid #185779; outline-offset: 2px; }
[data-select-text-line] { margin: .35rem 0; }

[data-coin-side][hidden],
.weston-coin-canvas[hidden] {
    display: none !important;
}
/* Live screen preview follows the customer while using personalization controls. */
.weston-follow-preview{position:fixed!important;z-index:99990;display:flex;flex-direction:column;box-sizing:border-box;padding:8px;background:#fff;border:1px solid #8297a7;border-radius:7px;box-shadow:0 4px 20px #0003;pointer-events:none;}
.weston-follow-preview[hidden]{display:none!important;}
.weston-follow-title{flex:0 0 auto;padding:0 0 5px;color:#174f75;font:600 13px/1.3 sans-serif;text-align:center;}
.weston-follow-view{position:relative;flex:1 1 0;min-height:0;min-width:0;width:100%;overflow:hidden;}
.weston-follow-surface{position:absolute;transform-origin:top left;}
.weston-follow-surface .weston-uploaded-photo{visibility:visible!important;}
.weston-follow-surface .weston-coin-gallery{display:flex;flex-direction:column;align-items:center;justify-content:center;container-type:size;}
.weston-engraving{padding-bottom:var(--weston-follow-bottom,0px);}
.weston-engraving input,.weston-engraving select,.weston-engraving button,.weston-engraving textarea,.weston-engraving summary{scroll-margin-bottom:220px;}
/* High-contrast customer photo pickers for crystal, coin, plaque and coaster. */
.weston-engraving input[type="file"][data-engraving-photo],.weston-engraving input[type="file"][data-coin-photo]{display:block!important;width:100%!important;max-width:100%!important;margin-top:8px!important;color:#172c3c!important;font-size:15px!important;}
.weston-engraving input[type="file"][data-engraving-photo]::file-selector-button,.weston-engraving input[type="file"][data-coin-photo]::file-selector-button{appearance:none!important;background:#174f75!important;color:#fff!important;font-weight:800!important;font-size:16px!important;line-height:1.3!important;border:2px solid #103d5d!important;border-radius:5px!important;padding:12px 20px!important;margin-right:12px!important;cursor:pointer!important;opacity:1!important;box-shadow:none!important;}
.weston-engraving input[type="file"][data-engraving-photo]::-webkit-file-upload-button,.weston-engraving input[type="file"][data-coin-photo]::-webkit-file-upload-button{-webkit-appearance:none!important;background:#174f75!important;color:#fff!important;font-weight:800!important;font-size:16px!important;line-height:1.3!important;border:2px solid #103d5d!important;border-radius:5px!important;padding:12px 20px!important;margin-right:12px!important;cursor:pointer!important;opacity:1!important;box-shadow:none!important;}
.weston-engraving input[type="file"]:hover::file-selector-button{background:#103d5d!important;}
.weston-engraving input[type="file"]:hover::-webkit-file-upload-button{background:#103d5d!important;}
.weston-engraving input[type="file"]:focus-visible{outline:3px solid #d57500!important;outline-offset:4px!important;border-radius:5px;}
/* Match collapsible personalization controls to the photo picker. */
.weston-engraving .weston-placement-panel>summary{display:list-item!important;box-sizing:border-box;background:#174f75!important;color:#fff!important;font-weight:800!important;font-size:16px!important;line-height:1.3!important;border:2px solid #103d5d!important;border-radius:5px!important;padding:12px 20px!important;cursor:pointer!important;opacity:1!important;box-shadow:none!important;list-style-position:inside;}
.weston-engraving .weston-placement-panel>summary:hover{background:#103d5d!important;}
.weston-engraving .weston-placement-panel>summary:focus-visible{outline:3px solid #d57500!important;outline-offset:3px!important;}
.weston-engraving .weston-placement-panel>summary::marker{color:#fff;}
.weston-engraving .weston-placement-panel>summary::-webkit-details-marker{color:#fff;}
.weston-engraving [data-extra-section][hidden]{display:none!important;}
.weston-subject-refiner{margin-top:12px;}
.weston-subject-refiner canvas{display:block;max-width:100%;width:100%;height:auto;touch-action:none;cursor:default;background-color:#ddd;background-image:linear-gradient(45deg,#aaa 25%,transparent 25%),linear-gradient(-45deg,#aaa 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#aaa 75%),linear-gradient(-45deg,transparent 75%,#aaa 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;}
.weston-refine-buttons button{padding:8px 10px;background:#174f75;color:#fff;border:2px solid #174f75;border-radius:4px;cursor:pointer;margin-bottom:5px;}
.weston-refine-buttons button[aria-pressed="true"]{background:#fff;color:#174f75;outline:2px solid #174f75;outline-offset:1px;}

.weston-engraving .weston-subject-refiner canvas[data-mask-canvas]{pointer-events:auto!important;touch-action:none!important;user-select:none!important;-webkit-user-select:none!important;cursor:default!important;position:relative;z-index:1;}
.weston-engraving .weston-refine-buttons button{font-weight:700!important;opacity:1!important;}
.weston-engraving .weston-refine-buttons button[aria-pressed="true"]{background:#fff!important;color:#174f75!important;border:2px solid #174f75!important;outline:2px solid #174f75!important;}
.weston-engraving output[data-background-value]{display:block;margin:3px 0 8px;font-weight:700;font-variant-numeric:tabular-nums;color:#174f75;}
/* Keep the brush canvas usable instead of squeezing it into a narrow grid column. */
.weston-layout-controls>.weston-placement-panel{grid-column:1 / -1;min-width:0;}
.weston-subject-refiner .weston-placement-panel-body{min-width:0;}
.weston-refine-buttons{display:flex;flex-wrap:wrap;gap:6px;}
.weston-follow-preview.weston-brush-active{pointer-events:auto;}
.weston-follow-preview.weston-brush-active canvas,.weston-follow-preview.weston-brush-active .weston-uploaded-photo{cursor:default!important;touch-action:none!important;}
.weston-uploaded-photo.weston-brush-active{cursor:default!important;}
.weston-uploaded-photo.weston-brush-active [data-weston-layer],canvas.weston-brush-active{cursor:default!important;touch-action:none!important;}
/* Always-available help trigger; instructions close as editing resumes. */
.weston-editor-help{position:fixed!important;right:14px!important;z-index:100010!important;max-width:calc(100vw - 28px);font:15px/1.5 sans-serif;color:#172c3c;}
.weston-editor-help-button{display:block!important;margin:0 0 0 auto!important;padding:11px 16px!important;background:#174f75!important;color:#fff!important;border:2px solid #103d5d!important;border-radius:6px!important;font:700 15px/1.3 sans-serif!important;cursor:pointer!important;box-shadow:0 2px 10px #0003;}
.weston-editor-help-box{box-sizing:border-box;width:360px;max-width:calc(100vw - 28px);overflow:auto;margin-top:8px;padding:16px;background:#fff;border:1px solid #8297a7;border-radius:7px;box-shadow:0 5px 22px #0004;}
.weston-editor-help-box[hidden]{display:none!important;}
.weston-editor-help-box h3{font:700 18px/1.3 sans-serif!important;color:#174f75;margin:0 50px 12px 0!important;}
.weston-editor-help-box ol{margin:0!important;padding-left:22px!important;list-style:decimal!important;}
.weston-editor-help-box li{margin:0 0 10px!important;font:15px/1.5 sans-serif!important;}
.weston-editor-help-close{float:right;background:#fff!important;color:#174f75!important;border:1px solid #174f75!important;border-radius:4px;padding:4px 7px!important;font:600 12px/1.3 sans-serif!important;cursor:pointer;}
.weston-editor-help-button::after,.weston-editor-help-close::after{display:none!important;}
.weston-editor-help button:focus-visible{outline:3px solid #d57500!important;outline-offset:3px!important;}
.weston-coin-canvas.weston-qr-preview{image-rendering:pixelated!important;}

/* Additional engraving uploads: retain native button dimensions. */
.weston-engraving input[type="file"][name^="weston_engraving_photo_"]::file-selector-button{background:#174f75!important;color:#fff!important;border-color:#103d5d!important;cursor:pointer;}
.weston-engraving input[type="file"][name^="weston_engraving_photo_"]::-webkit-file-upload-button{background:#174f75!important;color:#fff!important;border-color:#103d5d!important;cursor:pointer;}

.weston-upload-error { display:block; color:#b32d2e; font-weight:600; margin:8px 0; }

.weston-engraving .weg-phone-upload{margin:12px 0;padding:12px;border:1px solid #b6c5ce;border-radius:6px;background:#fff;}
.weston-engraving .weg-phone-start{background:#174f75!important;color:#fff!important;border:2px solid #103d5d!important;border-radius:5px!important;padding:10px 14px!important;font:700 15px/1.3 sans-serif!important;cursor:pointer;}
.weston-engraving .weg-phone-pair{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;}
.weston-engraving .weg-phone-pair[hidden]{display:none!important;}
.weston-engraving img.weg-phone-qr{display:block!important;width:224px!important;max-width:100%!important;height:auto!important;object-fit:contain;background:#fff;padding:0!important;border:0!important;image-rendering:pixelated;}
.weston-engraving .weg-phone-pair p{flex:1 1 140px;margin:0;}
.weston-engraving .weg-phone-pair small{flex-basis:100%;}
.weston-engraving .weg-phone-status{font-size:14px;margin:8px 0 0;}

.weston-upload-progress{margin:10px 0;color:#174f75;font-weight:600}.weston-upload-progress[hidden]{display:none!important}.weston-upload-progress progress{display:block;width:100%;height:16px;accent-color:#174f75}.weston-upload-progress small{display:block;margin-top:4px}

/* Cart and mini-cart engraving images always display without color. */
img.weston-cart-upload-thumbnail,img[src*="weston_cart_photo"]{filter:grayscale(1)!important;}
