.memory-product-gallery{
    width:100%;
    margin:0 0 24px;
    opacity:1 !important;
    position:relative;
}

.memory-visualizer-stage{
    position:relative;
    width:100%;
    max-width:620px;
    overflow:hidden;
    background:#fff;
    container-type:inline-size;
}

.memory-visualizer-image{
    display:block;
    width:100%;
    height:auto;
    position:relative;
    z-index:1;
}

.memory-visualizer-text{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    position:absolute !important;
    z-index:20 !important;
    max-width:60%;
    min-width:0;
    font-family:Cambria,"Times New Roman",serif !important;
    font-size:calc(var(--memory-font-scale, 2.08) * 1cqw) !important;
    line-height:1.35;
    letter-spacing:.10em;
    text-align:center;
    white-space:pre-line;
    word-break:normal;
    overflow-wrap:break-word;
    pointer-events:none;
    transition:all .2s ease;
}

.memory-visualizer-text.style-gold{
    color:#a97822 !important;
    text-shadow:0 .5px .5px rgba(255,255,255,.55),0 0 1px rgba(169,120,34,.30);
}

.memory-visualizer-text.style-silver{
    color:#8f8f8f !important;
    text-shadow:0 .5px .5px rgba(255,255,255,.7),0 0 1px rgba(143,143,143,.30);
}

.memory-visualizer-text.style-embossed{
    color:rgba(70,70,70,.32) !important;
    text-shadow:.8px .8px 0 rgba(255,255,255,.45),-.8px -.8px 0 rgba(0,0,0,.09);
    mix-blend-mode:multiply;
}

.memory-visualizer-text.pos-bottom-center{
    left:50% ;
    bottom:13% ;
    transform:translateX(-50%) ;
    text-align:center;
}

.memory-visualizer-text.pos-right-bottom{
    right:16% ;
    bottom:13% ;
    text-align:right;
    transform:none ;
}

.memory-visualizer-text.pos-top-center{
    left:50% ;
    top:13% ;
    transform:translateX(-50%) ;
    text-align:center;
}


.memory-visualizer-text.pos-center{
    left:50% !important;
    top:50% !important;
    transform:translate(-50%, -50%) !important;
    text-align:center;
}

.memory-visualizer-text.pos-right-top{
    right:16% ;
    top:13% ;
    text-align:right;
    transform:none ;
}

.memory-personalization-fields{
    margin:24px 0;
    padding:18px;
    border:1px solid #e9e9e9;
    border-radius:8px;
    background:#fafafa;
}

.memory-field-group{
    margin-bottom:18px;
}

.memory-field-group:last-child{
    margin-bottom:0;
}

.memory-field-group > label,
.memory-field-group > span{
    display:block;
    margin-bottom:8px;
}

.memory-field-description{
    margin:0 0 10px;
    font-size:13px;
    line-height:1.25;
    color:#666;
}

#memory_custom_text{
    width:100%;
    min-height:90px;
    padding:10px 12px;
    border:1px solid #d8d8d8;
    border-radius:6px;
    resize:vertical;
    line-height:1.3;
}

.memory-option-list{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.memory-option-list label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:0;
    padding:8px 12px;
    border:1px solid #e5d8dc;
    border-radius:999px;
    background:#fff;
    color:#333;
    font-weight:400;
    font-size:14px;
    line-height:1.2;
    cursor:pointer;
    transition:background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.memory-option-list label:hover{
    border-color:#DA94A0;
    background:#fff7f8;
}

.memory-option-list input[type="radio"]{
    appearance:none;
    -webkit-appearance:none;
    width:16px;
    height:16px;
    margin:0;
    border:1.5px solid #DA94A0;
    border-radius:50%;
    background:#fff;
    display:inline-grid;
    place-content:center;
    flex:0 0 auto;
}

.memory-option-list input[type="radio"]::before{
    content:"";
    width:8px;
    height:8px;
    border-radius:50%;
    transform:scale(0);
    transition:transform .15s ease;
    background:#DA94A0;
}

.memory-option-list input[type="radio"]:checked::before{
    transform:scale(1);
}

.memory-option-list label:has(input[type="radio"]:checked){
    border-color:#DA94A0;
    background:#fff3f5;
    box-shadow:0 0 0 1px rgba(218,148,160,.18);
}

.memory-char-info{
    margin-top:6px;
    font-size:13px;
    line-height:1.25;
    color:#666;
}

.memory-char-info.is-error{
    color:#b42318;
    font-weight:600;
}

.memory-heart-button{
    margin:8px 0 8px;
    padding:8px 14px;
    border:1px solid #DA94A0;
    border-radius:999px;
    background:#DA94A0;
    color:#fff;
    cursor:pointer;
    font-size:14px;
    line-height:1.2;
    transition:none;
}

.memory-heart-button:hover,
.memory-heart-button:focus,
.memory-heart-button:active{
    background:#DA94A0;
    border-color:#DA94A0;
    color:#fff;
}

.memory-preview-note{
    margin:12px 0 0;
    font-size:13px;
    line-height:1.25;
    color:#666;
}

@supports not (font-size: 1cqw){
    .memory-visualizer-text{
        font-size:calc(var(--memory-font-scale, 2.08) * 1vw) !important;
    }
}

@media (max-width: 768px){
    .memory-visualizer-text{
        max-width:64%;
        letter-spacing:.08em;
    }

    .memory-visualizer-text.pos-right-bottom{
        right:5%;
        bottom:10%;
    }

    .memory-visualizer-text.pos-bottom-center{
        bottom:10%;
    }

    .memory-visualizer-text.pos-top-center{
        top:10%;
    }

    .memory-visualizer-text.pos-right-top{
        right:5%;
        top:10%;
    }

    .memory-option-list{
        gap:8px;
    }

    .memory-option-list label{
        padding:7px 10px;
    }
}