.fm-personalizador {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 20px;
    padding: 10px;
    background: transparent;
    overflow: hidden;
}

.fm-personalizador[hidden] {
    display: none !important;
}

.fm-personalizador__canvas-wrap {
    box-sizing: border-box;
    position: relative;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    padding: 6px;
    background: #eee9e2;
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(46, 36, 25, .12);
}

.fm-personalizador--trio-polaroid .fm-personalizador__canvas-wrap,
.fm-personalizador--trio-polaroid .fm-personalizador__controls {
    max-width: 440px;
}

.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__canvas-wrap,
.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__controls,
.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__adjustments,
.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__trio-nav,
.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__scroll-hint {
    max-width: 760px;
}

/* Como no Trio de Quadrinhos, cada polaroid permanece grande em uma faixa
   horizontal. A quantidade aumenta a largura da faixa, nunca reduz as peças. */
.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__canvas-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}

.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__stage,
.fm-personalizador--trio-polaroid.fm-personalizador--variable-count #fm-personalizador-canvas {
    max-width: none;
}

.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__trio-nav {
    display: flex;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
}

.fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__trio-nav button {
    flex: 0 0 150px;
}

.fm-personalizador__polaroid-price {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    max-width: 760px;
    margin: 0 auto 12px;
    padding: 10px 14px;
    border: 1px solid #ead9df;
    border-radius: 9px;
    background: #fff8fa;
}

.fm-personalizador__polaroid-price strong {
    color: #c92b59;
    font-size: 1.35rem;
}

.fm-personalizador__polaroid-price span {
    color: #665d58;
    font-size: .84rem;
    text-align: right;
}

.fm-personalizador--o-amor-mora-aqui .fm-personalizador__canvas-wrap,
.fm-personalizador--o-amor-mora-aqui .fm-personalizador__controls {
    width: 100%;
    max-width: 760px;
}

.fm-personalizador--o-amor-mora-aqui {
    padding-right: 0;
    padding-left: 0;
}

.fm-personalizador__stage {
    position: relative;
    width: 100%;
}

.fm-personalizador--trio-polaroid .fm-personalizador__canvas-wrap {
    overflow-x: hidden;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

.fm-personalizador--trio-polaroid .fm-personalizador__stage {
    width: 1200px;
    max-width: none;
}

.fm-personalizador--trio-polaroid #fm-personalizador-canvas {
    width: 1200px;
    max-width: none;
}

.fm-personalizador__scroll-hint {
    max-width: 440px;
    margin: 4px auto 0;
    color: #645f58;
    font-size: .82rem;
    text-align: center;
}

.fm-personalizador__trio-nav {
    box-sizing: border-box;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    max-width: 440px;
    margin: 8px auto 0;
}

.fm-personalizador__trio-nav button {
    position: relative;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0;
    min-height: 38px;
    padding: 5px 8px;
    border: 1px solid #d8d3cc !important;
    border-radius: 7px;
    background: #fff !important;
    color: #403a35 !important;
    font-weight: 600;
    line-height: 1.15 !important;
    text-align: center !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.fm-personalizador__trio-nav button.is-active {
    border-color: #7b4ae2 !important;
    background: #6a3bd2 !important;
    color: #fff !important;
    box-shadow: 0 3px 9px rgba(95, 52, 189, .24);
}

.fm-personalizador__trio-nav button.is-complete::after {
    content: "✓";
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    color: #2c8a52;
    font-size: .85em;
    line-height: 1;
}

.fm-personalizador__trio-nav button.is-active.is-complete::after {
    color: #fff;
}

.fm-personalizador--trio-polaroid .fm-personalizador__captions--multiple {
    display: block;
}

.fm-personalizador--trio-polaroid .fm-personalizador__caption-field {
    display: none;
}

.fm-personalizador--trio-polaroid .fm-personalizador__caption-field.is-active {
    display: block;
}

.fm-personalizador__hotspots {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.fm-personalizador__hotspot {
    position: absolute;
    display: block;
    overflow: hidden;
    cursor: pointer;
    pointer-events: auto;
    /* Os produtos físicos da Faz Com Foto têm cantos retos. */
    border-radius: 0 !important;
}

.fm-personalizador__hotspot.is-filled {
    pointer-events: none;
}

.fm-personalizador__native-input {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    visibility: visible !important;
    cursor: pointer !important;
}

.fm-personalizador__loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    color: #473b32;
    background: rgba(255, 255, 255, .9);
    font: 600 13px/1.25 Arial, sans-serif;
    text-align: center;
    pointer-events: none;
}

.fm-personalizador__hotspot.is-loading .fm-personalizador__loading {
    display: flex;
}

.fm-personalizador__spinner {
    width: 28px;
    height: 28px;
    border: 3px solid rgba(123, 74, 226, .22);
    border-top-color: #7b4ae2;
    border-radius: 50%;
    animation: fm-personalizador-spin .8s linear infinite;
}

@keyframes fm-personalizador-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fm-personalizador__spinner {
        animation-duration: 1.6s;
    }
}

#fm-personalizador-canvas {
    display: block;
    width: 100%;
    height: auto;
    background: #fff;
    cursor: grab;
    touch-action: none;
}

#fm-personalizador-canvas:active {
    cursor: grabbing;
}

.fm-personalizador__controls {
    max-width: 520px;
    margin: 10px auto 0;
}

.fm-personalizador__color-choice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 10px 0 4px;
    color: #403a35;
    font-size: .9rem;
    font-weight: 600;
    text-align: center;
}

.fm-personalizador__color-context {
    margin: 10px 0 -5px;
    color: #403a35;
    font-size: .88rem;
    font-weight: 700;
    text-align: center;
}

.fm-personalizador__color-free {
    margin: 0 0 8px;
    color: #6c655e;
    font-size: .8rem;
    line-height: 1.35;
    text-align: center;
}

.fm-personalizador__color-switch {
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
    width: 52px;
    height: 30px;
    margin: 0;
    cursor: pointer;
}

.fm-personalizador__color-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.fm-personalizador__color-slider {
    position: absolute;
    inset: 0;
    border: 1px solid #bbb5ae;
    border-radius: 999px;
    background: #77736f;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .18);
    transition: background-color .18s ease, border-color .18s ease;
}

.fm-personalizador__color-slider::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
    transition: transform .18s ease;
}

.fm-personalizador__color-switch input:checked + .fm-personalizador__color-slider {
    border-color: #7b4ae2;
    background: #7b4ae2;
}

.fm-personalizador__color-switch input:checked + .fm-personalizador__color-slider::before {
    transform: translateX(22px);
}

.fm-personalizador__color-switch input:focus-visible + .fm-personalizador__color-slider {
    outline: 3px solid rgba(123, 74, 226, .28);
    outline-offset: 2px;
}

.fm-personalizador__captions {
    display: grid;
    gap: 8px;
}

.fm-personalizador__captions--multiple {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fm-personalizador__caption-field {
    display: block;
    margin: 0;
}

.fm-personalizador__caption-field > span {
    display: block;
    margin-bottom: 4px;
    font-weight: 600;
}

.fm-personalizador__caption {
    width: 100%;
    min-height: 44px;
    padding: 5px 10px !important;
    border: 1px solid #d8d3cc !important;
    border-radius: 7px !important;
    font-family: "Reenie Beanie", cursive !important;
    font-size: 30px !important;
    line-height: 1 !important;
    text-align: center;
}

.fm-personalizador__heart-label {
    display: block;
    margin: 7px 0 4px;
    color: #645f58;
    font-size: .8rem;
    font-weight: 600;
}

.fm-personalizador__heart-mode {
    width: 100%;
    min-height: 40px;
    padding: 5px 30px 5px 9px !important;
    border: 1px solid #d8d3cc !important;
    border-radius: 7px !important;
    background-color: #fff;
    color: #3f3a35;
    font-size: .84rem;
}

.fm-personalizador__caption-field.is-caption-disabled .fm-personalizador__caption {
    background: #f4f1ed !important;
    opacity: .55;
}

.fm-personalizador--trio-polaroid .fm-personalizador__caption {
    font-size: 25px !important;
}

.fm-personalizador__adjustments {
    display: grid;
    grid-template-columns: auto minmax(100px, 1fr) auto;
    gap: 9px;
    align-items: center;
    margin-top: 9px;
}

.fm-personalizador__adjustments label {
    margin: 0;
    font-weight: 600;
}

#fm-personalizador-zoom {
    width: 100%;
    accent-color: #7b4ae2;
}

.fm-personalizador__replace {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 6px 11px;
    border: 1px solid #17324a;
    border-radius: 6px;
    background: #17324a;
    color: #fff;
    font-size: .86rem;
    cursor: pointer;
    overflow: hidden;
}

.fm-personalizador__replace[aria-disabled="true"] {
    cursor: default;
    opacity: .45;
}

#fm-personalizador-status {
    margin: 6px 0 0;
    color: #645f58;
    font-size: .9rem;
}

/* Os campos continuam ativos para validação e salvamento do WAPF, mas a
   interação acontece diretamente no quadro. */
.wapf-field-container.field-6532954077e20,
.wapf-field-container.field-6532955ed7dec,
.wapf-field-container.field-653295605c88b,
.wapf-field-container.field-653295615a119,
.wapf-field-container.field-6532956d85f8c {
    display: none !important;
}

@media (max-width: 520px) {
    .fm-personalizador {
        padding: 4px;
    }

    .fm-personalizador__adjustments {
        grid-template-columns: auto 1fr;
    }

    .fm-personalizador--trio-polaroid .fm-personalizador__canvas-wrap,
    .fm-personalizador--trio-polaroid .fm-personalizador__controls,
    .fm-personalizador--trio-polaroid .fm-personalizador__trio-nav,
    .fm-personalizador--trio-polaroid .fm-personalizador__scroll-hint {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .fm-personalizador--trio-polaroid .fm-personalizador__stage {
        width: 290%;
        max-width: none;
    }

    .fm-personalizador--trio-polaroid #fm-personalizador-canvas {
        width: 100%;
        max-width: none;
    }

    .fm-personalizador--trio-polaroid.fm-personalizador--variable-count .fm-personalizador__stage,
    .fm-personalizador--trio-polaroid.fm-personalizador--variable-count #fm-personalizador-canvas {
        max-width: none;
    }

    .fm-personalizador__trio-nav button {
        padding-right: 4px;
        padding-left: 4px;
        font-size: 14px;
    }

    .fm-personalizador__captions--multiple {
        grid-template-columns: 1fr;
    }

    .fm-personalizador--o-amor-mora-aqui .fm-personalizador__canvas-wrap,
    .fm-personalizador--o-amor-mora-aqui .fm-personalizador__controls {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .fm-personalizador--o-amor-mora-aqui {
        padding-right: 0;
        padding-left: 0;
    }

    .fm-personalizador__replace {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* Coleção Perfil */
.fm-personalizador--significado {
    padding: 8px 0 20px;
}

.fm-personalizador--significado .fm-personalizador__canvas-wrap {
    max-width: 640px;
    padding: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: 5px 6px 0 var(--fm-meaning-side, #272522), 0 12px 28px rgba(40, 32, 24, .12);
}

.fm-personalizador--significado .fm-personalizador__controls,
.fm-personalizador--significado .fm-personalizador__adjustments,
.fm-meaning-size-host {
    width: 100%;
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
}

.fm-meaning-size-host {
    margin-bottom: 16px;
}

.fm-meaning-editor {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #e2dcd5;
    border-radius: 12px;
    background: #fff;
    text-align: left;
}

.fm-meaning-editor h4 {
    margin: 0 0 14px;
    color: #332d28;
    font-size: 1.2rem;
}

.fm-meaning-editor .wapf-field-container {
    float: none;
    width: 100% !important;
    padding: 0;
    margin-bottom: 14px;
}

.fm-meaning-editor select,
.fm-meaning-editor input[type="text"],
.fm-meaning-editor textarea {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #d7d1ca;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    line-height: 1.5;
}

.fm-meaning-editor textarea {
    min-height: 140px;
    resize: vertical;
}

.fm-meaning-definition {
    margin: 4px 0 18px;
    padding: 14px;
    border-left: 3px solid #b5a2d7;
    background: #faf8fd;
    color: #655e57;
    font-size: .9rem;
    line-height: 1.65;
}

.fm-meaning-definition[hidden] { display: none; }

.fm-personalizador--trio-perfil {
    max-width: 780px;
    margin-right: auto;
    margin-left: auto;
    padding: 8px 0 16px;
}


.fm-personalizador--trio-perfil .fm-personalizador__canvas-wrap,
.fm-personalizador--trio-perfil .fm-personalizador__controls,
.fm-personalizador--trio-perfil .fm-personalizador__scroll-hint,
.fm-personalizador--trio-perfil .fm-personalizador__trio-nav {
    width: 100%;
    max-width: 760px;
}

.fm-personalizador__profile-heading {
    max-width: 760px;
    margin: 0 auto 14px;
    text-align: center;
}

.fm-personalizador__profile-heading h3 {
    margin: 2px 0 6px;
    color: #241f1b;
    font-size: clamp(1.35rem, 3vw, 1.8rem);
    line-height: 1.15;
}

.fm-personalizador__profile-heading p,
.fm-personalizador__ai-copy p {
    margin: 0;
    color: #655e57;
    font-size: .94rem;
    line-height: 1.45;
}

.fm-personalizador__eyebrow {
    display: inline-block;
    color: #6a3bd2;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fm-personalizador__profile-options,
.fm-personalizador__profile-style {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(170px, 1fr);
    gap: 12px;
    width: 100%;
    max-width: 760px;
    margin: 0 auto 12px;
}

.fm-personalizador--trio-perfil .fm-personalizador__profile-options {
    grid-template-columns: 1fr;
}

.fm-personalizador__profile-style {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 12px;
    margin-bottom: 4px;
}

.fm-personalizador__profile-style .fm-personalizador__option-group {
    display: grid;
    grid-template-rows: minmax(2.45em, auto) auto;
    align-content: start;
}

.fm-personalizador__option-group {
    display: block;
    min-width: 0;
    margin: 0;
}

.fm-personalizador__option-group > strong {
    display: block;
    margin: 0 0 6px;
    color: #332d28;
    font-size: .88rem;
}

.fm-personalizador__option-group select {
    width: 100%;
    min-height: 42px;
    margin: 0;
    padding: 7px 32px 7px 10px;
    border: 1px solid #d7d1ca;
    border-radius: 8px;
    background-color: #fff;
    color: #332d28;
}

.fm-personalizador__segmented {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 5px;
}

.fm-personalizador__segmented button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 42px;
    margin: 0;
    padding: 6px 8px !important;
    border: 1px solid #d7d1ca !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #3d3732 !important;
    font-size: .84rem !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-transform: none !important;
}

.fm-personalizador__segmented button.is-active {
    border-color: #6a3bd2 !important;
    background: #f2ecff !important;
    color: #5d2dc7 !important;
    box-shadow: inset 0 0 0 1px #6a3bd2;
}

.fm-personalizador__segmented button:focus-visible,
.fm-personalizador__ai-button:focus-visible,
.fm-personalizador__profile-nav button:focus-visible {
    outline: 3px solid rgba(106, 59, 210, .24) !important;
    outline-offset: 2px;
}

.fm-personalizador__profile-nav {
    grid-template-columns: repeat(var(--profile-count, 3), minmax(0, 1fr));
}

.fm-personalizador__profile-nav button[hidden] {
    display: none !important;
}

.fm-personalizador__send-choice {
    width: 100%;
    max-width: 760px;
    margin: 0 auto 14px;
    padding: 14px;
    border: 1px solid #e2dcd5;
    border-radius: 12px;
    background: #fff;
}

.fm-personalizador__send-choice > strong {
    display: block;
    margin-bottom: 8px;
    color: #332d28;
    font-size: .92rem;
}

.fm-personalizador__send-buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fm-personalizador__send-buttons button {
    display: flex !important;
    min-height: 62px;
    margin: 0 !important;
    padding: 9px 12px !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    border: 1px solid #d7d1ca !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: #332d28 !important;
    text-align: left !important;
    text-transform: none !important;
}

.fm-personalizador__send-buttons button b,
.fm-personalizador__send-buttons button small {
    display: block;
}

.fm-personalizador__send-buttons button b {
    font-size: .91rem;
}

.fm-personalizador__send-buttons button small {
    margin-top: 2px;
    color: #746c65;
    font-size: .76rem;
    font-weight: 500;
}

.fm-personalizador__send-buttons button.is-active {
    border-color: #6a3bd2 !important;
    background: #f2ecff !important;
    color: #5d2dc7 !important;
    box-shadow: inset 0 0 0 1px #6a3bd2;
}

.fm-personalizador__send-later {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f6f2ff;
    color: #4c3c69;
    font-size: .82rem;
    line-height: 1.4;
}

.fm-personalizador__send-later strong,
.fm-personalizador__send-later span {
    display: block;
}

.fm-personalizador.is-send-later .fm-personalizador__canvas-wrap,
.fm-personalizador.is-send-later .fm-personalizador__trio-quadrado-nav,
.fm-personalizador.is-send-later .fm-personalizador__adjustments,
.fm-personalizador.is-send-later .fm-personalizador__scroll-hint {
    display: none;
}

.fm-personalizador--trio-perfil .fm-personalizador__scroll-hint {
    margin-top: 7px;
    font-size: .88rem;
    line-height: 1.4;
}

.fm-personalizador--trio-perfil .fm-personalizador__adjustments--profile {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    margin: 10px auto 0;
}

.fm-personalizador__team-process {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    margin: 18px auto 0;
    padding: 20px;
    border: 1px solid #ded6ec;
    border-radius: 14px;
    background: linear-gradient(145deg, #fff 0%, #faf7ff 100%);
    box-shadow: 0 8px 28px rgba(46, 36, 25, .08);
}

.fm-profile-lead {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    margin: 18px auto 0;
    padding: 22px;
    border: 2px solid #6a3bd2;
    border-radius: 14px;
    background: linear-gradient(145deg, #fff 0%, #faf7ff 100%);
    box-shadow: 0 10px 30px rgba(74, 38, 151, .12);
}

.fm-profile-lead h4 {
    margin: 4px 0 8px;
    color: #241f1b;
    font-size: clamp(1.3rem, 3vw, 1.65rem);
    line-height: 1.18;
}

.fm-profile-lead > p {
    margin: 0 0 14px;
    color: #5f5852;
    font-size: .95rem;
    line-height: 1.5;
}

.fm-profile-lead__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.fm-profile-lead__fields label,
.fm-profile-lead__fields span {
    display: block;
}

.fm-profile-lead__fields span {
    margin-bottom: 5px;
    color: #342e29;
    font-size: .84rem;
    font-weight: 700;
}

.fm-profile-lead__fields input {
    box-sizing: border-box;
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 9px 11px;
    border: 1px solid #cfc7bf;
    border-radius: 8px;
    background: #fff;
    color: #28231f;
    font-size: 16px;
}

.fm-profile-lead__fields input:focus {
    border-color: #6a3bd2;
    outline: 3px solid rgba(106, 59, 210, .14);
}

.fm-profile-lead__button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    margin: 12px 0 0 !important;
    padding: 11px 16px !important;
    border: 1px solid #169c4f !important;
    border-radius: 9px !important;
    background: #20ad58 !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
}

.fm-profile-lead__button:hover,
.fm-profile-lead__button:focus {
    background: #148a43 !important;
}

.fm-profile-lead__button:disabled {
    border-color: #b8b2ac !important;
    background: #b8b2ac !important;
    cursor: not-allowed;
    opacity: .78;
}

.fm-profile-lead .fm-profile-lead__status {
    margin: 7px 0 0;
    color: #655e57;
    font-size: .82rem;
    text-align: center;
}

.fm-profile-lead__guarantee {
    display: grid;
    gap: 2px;
    margin-top: 14px;
    padding: 11px 12px;
    border-left: 4px solid #6a3bd2;
    border-radius: 7px;
    background: #f2ecff;
}

.fm-profile-lead__guarantee strong {
    color: #4c249e;
    font-size: .92rem;
}

.fm-profile-lead__guarantee span {
    color: #514a45;
    font-size: .84rem;
    line-height: 1.4;
}

.fm-profile-ai-option {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    margin: 12px auto 0;
    border: 1px solid #ded8d1;
    border-radius: 10px;
    background: #fff;
}

.fm-profile-ai-option > summary {
    padding: 13px 15px;
    color: #5d2dc7;
    cursor: pointer;
    font-size: .9rem;
    font-weight: 800;
    list-style-position: inside;
}

.fm-profile-ai-option .fm-personalizador__ai {
    margin: 0;
    border-width: 1px 0 0;
    border-radius: 0 0 10px 10px;
    box-shadow: none;
}

.fm-profile-buy-alternative {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    max-width: 760px;
    margin: 12px auto 0;
    color: #655e57;
    font-size: .86rem;
}

.fm-profile-buy-alternative button {
    padding: 5px 7px !important;
    border: 0 !important;
    background: transparent !important;
    color: #5d2dc7 !important;
    font-size: .86rem !important;
    font-weight: 800 !important;
    text-decoration: underline;
    text-transform: none !important;
}

.fm-profile-mobile-action {
    display: none;
}

.fm-profile-mobile-action[hidden] {
    display: none !important;
}

/* Trio Amor Maior: base visual da Coleção Perfil com orientação por quadro. */
.fm-personalizador--trio-amor-maior {
    max-width: 780px;
    margin-right: auto;
    margin-left: auto;
    padding: 8px 0 16px;
}

.fm-personalizador--trio-amor-maior .fm-personalizador__canvas-wrap,
.fm-personalizador--trio-amor-maior .fm-personalizador__controls,
.fm-personalizador--trio-amor-maior .fm-personalizador__scroll-hint,
.fm-personalizador--trio-amor-maior .fm-personalizador__trio-nav,
.fm-personalizador--trio-amor-maior .fm-personalizador__adjustments--profile,
.fm-personalizador--trio-amor-maior .fm-personalizador__trio-amor-orientation {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
}

.fm-personalizador__trio-amor-options,
.fm-personalizador__profile-style--single {
    grid-template-columns: 1fr;
}

.fm-personalizador__trio-amor-orientation {
    display: grid;
    grid-template-columns: minmax(150px, .8fr) minmax(230px, 1.2fr);
    align-items: center;
    gap: 12px;
    margin: 10px auto 0;
    padding: 12px;
    border: 1px solid #e5e0db;
    border-radius: 10px;
    background: #fff;
}

.fm-personalizador__trio-amor-orientation > strong,
.fm-personalizador__orientation-heading strong {
    color: #332d28;
    font-size: .88rem;
    line-height: 1.3;
}

.fm-personalizador__margin-options {
    gap: 7px;
}

.fm-personalizador__margin-buttons {
    grid-auto-flow: initial;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fm-personalizador__margin-buttons button {
    justify-content: center;
    min-height: 64px;
    padding: 8px 10px !important;
    text-align: center !important;
}

.fm-personalizador__margin-buttons button > span:last-child,
.fm-personalizador__margin-buttons b,
.fm-personalizador__margin-buttons small {
    display: block;
}

.fm-personalizador__margin-buttons small {
    margin-top: 3px;
    color: #746b65;
    font-size: .7rem;
    font-weight: 500;
    line-height: 1.25;
}

/* O Trio Quadrado permanece grande em uma faixa horizontal. Não há moldura
   frontal: a foto ocupa toda a peça, salvo quando a margem branca é escolhida. */
.fm-personalizador--trio-quadrado .fm-personalizador__canvas-wrap {
    width: 100%;
    max-width: 760px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

.fm-personalizador--trio-quadrado .fm-personalizador__stage,
.fm-personalizador--trio-quadrado #fm-personalizador-canvas {
    width: 1000px;
    max-width: none;
}

.fm-personalizador--trio-quadrado .fm-personalizador__trio-quadrado-nav,
.fm-personalizador--trio-quadrado .fm-personalizador__adjustments,
.fm-personalizador--trio-quadrado .fm-personalizador__scroll-hint {
    width: 100%;
    max-width: 760px;
    margin-right: auto;
    margin-left: auto;
}

.fm-personalizador__orientation-heading {
    display: grid;
    gap: 3px;
}

.fm-personalizador__orientation-heading small {
    color: #746b65;
    font-size: .75rem;
    line-height: 1.35;
}

.fm-personalizador__trio-amor-orientation button[hidden] {
    display: none !important;
}

.fm-personalizador__trio-amor-orientation button:disabled {
    cursor: default !important;
    opacity: 1 !important;
}

.fm-personalizador--trio-amor-maior .fm-personalizador__scroll-hint {
    margin-top: 7px;
    font-size: .88rem;
    line-height: 1.4;
}

.fm-personalizador--trio-amor-maior .fm-personalizador__adjustments--profile {
    margin: 10px auto 0;
}

/* Quadro Família: mantém a composição grande e legível, sem criar uma moldura por foto. */
.fm-personalizador--quadro-familia {
    max-width: 780px;
    margin-right: auto;
    margin-left: auto;
    padding: 8px 0 16px;
}

.fm-personalizador--quadro-familia .fm-personalizador__canvas-wrap,
.fm-personalizador--quadro-familia .fm-personalizador__controls,
.fm-personalizador--quadro-familia .fm-personalizador__scroll-hint {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
}

.fm-personalizador--quadro-familia .fm-personalizador__adjustments {
    margin: 10px auto 0;
}

/* Quadro Faz com Foto: uma peça grande, com orientação e espessura fiéis. */
.fm-personalizador--quadro-faz-com-foto {
    max-width: 780px;
    margin-right: auto;
    margin-left: auto;
    padding: 8px 0 16px;
}

.fm-personalizador--quadro-faz-com-foto .fm-personalizador__canvas-wrap,
.fm-personalizador--quadro-faz-com-foto .fm-personalizador__controls,
.fm-personalizador--quadro-faz-com-foto .fm-personalizador__scroll-hint,
.fm-personalizador--quadro-faz-com-foto .fm-personalizador__quadro-orientation {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
}

.fm-personalizador__quadro-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fm-personalizador__quadro-options--fixed {
    grid-template-columns: 1fr;
}

.fm-personalizador__fixed-spec {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 58px;
    padding: 10px 14px;
    border: 1px solid #ded7cf;
    border-radius: 10px;
    background: #fff;
}

.fm-personalizador__fixed-spec span {
    display: grid;
    gap: 2px;
}

.fm-personalizador__fixed-spec small {
    color: #706962;
    font-size: .8rem;
}

.fm-personalizador__fixed-spec > strong {
    white-space: nowrap;
    color: #6f35dd;
    font-size: 1.05rem;
}

.fm-personalizador__unit-note {
    display: block;
    margin-top: 6px;
    color: #706962;
    font-size: .78rem;
}

.fm-personalizador--magnet-product .fm-personalizador__quadro-nav button {
    flex-basis: 92px;
}

.fm-personalizador--magnet-product .fm-personalizador__quadro-actions {
    margin-top: 2px;
}

.fm-personalizador__quadro-orientation > div:first-child {
    display: grid;
    gap: 3px;
}

.fm-personalizador__quadro-orientation small {
    display: block;
    color: #706962;
    font-size: .76rem;
    line-height: 1.3;
}

.fm-personalizador--quadro-faz-com-foto .fm-personalizador__adjustments {
    margin: 11px auto 0;
}

.fm-personalizador--quadro-faz-com-foto .fm-personalizador__adjustments--quadro {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
}

.fm-personalizador__quadro-nav {
    display: flex;
    gap: 6px;
    width: 100%;
    max-width: 760px;
    margin: 0 auto 8px;
    padding: 1px 0 5px;
    overflow-x: auto;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}

.fm-personalizador__quadro-nav button {
    flex: 0 0 108px;
    scroll-snap-align: start;
}

.fm-personalizador__quadro-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: 100%;
    max-width: 760px;
    margin: 0 auto 9px;
}

.fm-personalizador__quadro-actions span {
    margin-right: auto;
    color: #5e5751;
    font-size: .84rem;
    font-weight: 700;
}

.fm-personalizador__quadro-actions button {
    min-height: 38px;
    padding: 6px 11px !important;
    border: 1px solid #6a3bd2 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #5d2dc7 !important;
    font-size: .8rem !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    text-transform: none !important;
}

#fm-quadro-add {
    background: #6a3bd2 !important;
    color: #fff !important;
}

.fm-personalizador__quadro-actions button:disabled {
    cursor: default !important;
    opacity: .55;
}

.fm-product-description-widget {
    width: 100%;
    margin-top: 22px;
}

.fm-product-description {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 22px;
    border: 1px solid #e4ddd6;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(46, 36, 25, .07);
}

.fm-product-description h3 {
    margin: 4px 0 9px;
    color: #241f1b;
    font-size: clamp(1.25rem, 3vw, 1.65rem);
    line-height: 1.2;
}

.fm-product-description p {
    margin: 0 0 14px;
    color: #655e57;
    font-size: .95rem;
    line-height: 1.55;
}

.fm-product-description ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fm-product-description li {
    position: relative;
    margin: 0;
    padding-left: 20px;
    color: #4c453f;
    font-size: .92rem;
    line-height: 1.45;
}

.fm-product-description li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    color: #6a3bd2;
    font-weight: 800;
}

.fm-personalizador__team-copy {
    text-align: center;
}

.fm-personalizador__team-copy h4 {
    margin: 3px 0 7px;
    color: #241f1b;
    font-size: 1.3rem;
    line-height: 1.2;
}

.fm-personalizador__team-copy p {
    margin: 0;
    color: #655e57;
    font-size: .92rem;
    line-height: 1.5;
}

.fm-personalizador__team-steps {
    counter-reset: fm-team-step;
    display: grid;
    gap: 10px;
    margin: 18px 0;
    padding: 0;
    list-style: none;
}

.fm-personalizador__team-steps li {
    counter-increment: fm-team-step;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin: 0;
}

.fm-personalizador__team-steps li::before {
    content: counter(fm-team-step);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #6a3bd2;
    color: #fff;
    font: 800 .85rem/1 Arial, sans-serif;
}

.fm-personalizador__team-steps strong,
.fm-personalizador__team-steps span {
    display: block;
}

.fm-personalizador__team-steps strong {
    margin-bottom: 2px;
    color: #332d28;
    font-size: .94rem;
}

.fm-personalizador__team-steps span {
    color: #655e57;
    font-size: .86rem;
    line-height: 1.4;
}

.fm-personalizador__approval-guarantee {
    padding: 13px 14px;
    border-left: 4px solid #6a3bd2;
    border-radius: 8px;
    background: #f2ecff;
}

.fm-personalizador__approval-guarantee strong,
.fm-personalizador__approval-guarantee span {
    display: block;
}

.fm-personalizador__approval-guarantee strong {
    margin-bottom: 3px;
    color: #4c249e;
    font-size: .96rem;
}

.fm-personalizador__approval-guarantee span {
    color: #514a45;
    font-size: .87rem;
    line-height: 1.45;
}

.fm-personalizador__ai {
    width: 100%;
    max-width: 760px;
    margin: 18px auto 0;
    padding: 18px;
    border: 1px solid #e2dcd4;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(46, 36, 25, .08);
}

.fm-personalizador__ai-copy {
    margin-bottom: 12px;
    text-align: center;
}

.fm-personalizador__ai-copy h4 {
    margin: 2px 0 6px;
    color: #241f1b;
    font-size: 1.25rem;
}

.fm-personalizador__ai-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 10px 16px !important;
    border: 1px solid #6a3bd2 !important;
    border-radius: 9px !important;
    background: #6a3bd2 !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-transform: none !important;
}

.fm-personalizador__ai-button:disabled {
    border-color: #aaa39c !important;
    background: #aaa39c !important;
    cursor: not-allowed;
    opacity: .72;
}

.fm-personalizador__ai-button[hidden],
.fm-personalizador__ai-whatsapp[hidden],
.fm-personalizador__ai-slot-actions[hidden],
.fm-personalizador__ai-history[hidden] {
    display: none !important;
}

.fm-personalizador__ai-whatsapp {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 10px 16px !important;
    border: 1px solid #169c4f !important;
    border-radius: 9px !important;
    background: #21b95b !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
}

.fm-personalizador__ai-whatsapp:hover,
.fm-personalizador__ai-whatsapp:focus {
    background: #169c4f !important;
    color: #fff !important;
}

.fm-personalizador__ai-counter {
    margin: 7px 0 0;
    color: #655e57;
    font-size: .83rem;
    text-align: center;
}

.fm-personalizador__ai-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 7px;
    min-height: 140px;
    margin-top: 14px;
    padding: 16px;
    border-radius: 9px;
    background: #f7f4fb;
    color: #403a35;
    text-align: center;
}

.fm-personalizador__ai-loading[hidden],
.fm-personalizador__ai-result[hidden] {
    display: none !important;
}

.fm-personalizador__ai-loading > span:last-child {
    color: #6c655e;
    font-size: .85rem;
}

.fm-personalizador__ai-result {
    position: relative;
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid #d8d2ca;
    border-radius: 9px;
    background: #eee9e2;
    box-shadow: 0 6px 20px rgba(45, 37, 30, .12);
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

.fm-personalizador__ai-slot-actions {
    display: grid;
    gap: 11px;
    margin-top: 14px;
    padding: 14px;
    border: 1px solid #ded6ef;
    border-radius: 9px;
    background: #faf8ff;
}

.fm-personalizador__ai-slot-actions h5 {
    margin: 0 0 3px;
    color: #2f2924;
    font-size: 1rem;
}

.fm-personalizador__ai-slot-actions p {
    margin: 0;
    color: #6b645d;
    font-size: .82rem;
    line-height: 1.4;
}

.fm-personalizador__ai-slot-buttons {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 7px;
}

.fm-personalizador__ai-slot-button {
    min-height: 42px;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 1px solid #6a3bd2 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #5f30c6 !important;
    font-size: .83rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    text-transform: none !important;
}

.fm-personalizador__ai-slot-button:hover,
.fm-personalizador__ai-slot-button:focus-visible {
    background: #f0eaff !important;
}

.fm-personalizador__ai-slot-button:disabled {
    border-color: #c8c1ba !important;
    background: #eeeae6 !important;
    color: #847d76 !important;
    cursor: not-allowed;
}

@media (max-width: 480px) {
    .fm-personalizador__ai-slot-buttons {
        grid-template-columns: 1fr;
    }
}

.fm-personalizador__ai-history {
    margin-top: 16px;
    padding-top: 15px;
    border-top: 1px solid #e4ddd5;
}

.fm-personalizador__ai-history-copy {
    margin-bottom: 10px;
    text-align: center;
}

.fm-personalizador__ai-history-copy h5 {
    margin: 0 0 4px;
    color: #2f2924;
    font-size: 1rem;
}

.fm-personalizador__ai-history-copy p {
    margin: 0;
    color: #6b645d;
    font-size: .82rem;
    line-height: 1.4;
}

.fm-personalizador__ai-history-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 10px;
}

.fm-personalizador__history-card {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 5px 8px;
    align-items: center;
    min-width: 0;
    margin: 0 !important;
    padding: 7px !important;
    overflow: hidden;
    border: 2px solid #ddd6ce !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: #3d3732 !important;
    line-height: 1.2 !important;
    text-align: left !important;
    text-transform: none !important;
}

.fm-personalizador__history-card canvas {
    grid-column: 1 / -1;
    display: block;
    width: 100%;
    height: auto;
    border-radius: 5px;
    background: #eee9e2;
    -webkit-touch-callout: none;
    -webkit-user-drag: none;
    user-select: none;
}

.fm-personalizador__history-card strong {
    font-size: .86rem;
}

.fm-personalizador__history-state {
    color: #6a3bd2;
    font-size: .72rem;
    font-weight: 700;
    text-align: right;
}

.fm-personalizador__history-card.is-selected {
    border-color: #6a3bd2 !important;
    background: #f7f2ff !important;
    box-shadow: 0 0 0 2px rgba(106, 59, 210, .12);
}

.fm-personalizador__history-card.is-selected .fm-personalizador__history-state {
    color: #2c8a52;
}

#fm-personalizador-ai-canvas {
    display: block;
    width: 100%;
    height: auto;
    -webkit-touch-callout: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
    user-select: none;
}

.fm-personalizador__preview-badge {
    position: absolute;
    z-index: 2;
    top: 10px;
    left: 10px;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(26, 23, 21, .82);
    color: #fff;
    font: 800 11px/1 Arial, sans-serif;
    letter-spacing: .06em;
    pointer-events: none;
}

.fm-personalizador__approval-note {
    display: grid;
    gap: 2px;
    margin-top: 14px;
    padding: 12px 14px;
    border-left: 4px solid #6a3bd2;
    border-radius: 6px;
    background: #f7f4fb;
    color: #4a433d;
    font-size: .88rem;
    line-height: 1.4;
}

#fm-personalizador-canvas,
#fm-personalizador-ai-canvas,
.fm-personalizador__ai-result {
    -webkit-touch-callout: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
    user-select: none;
}

/* Amor ao Quadrado: seleção e envio das fotos sem sair da página. */
.fm-personalizador--amor-quadrado {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    margin: 18px auto 22px;
    padding: 30px 40px 0;
    border: 1px solid #eaded8;
    border-radius: 26px 26px 0 0;
    background: #fff;
    color: #173249;
    overflow: visible;
    box-shadow: 0 10px 34px rgba(35, 27, 23, .06);
}

.fm-aq__header p,
.fm-aq__header h3,
.fm-aq__photos h4,
.fm-aq__field,
.fm-aq__field legend,
.fm-aq__status {
    margin-top: 0;
}

.fm-aq__eyebrow {
    display: block;
    margin-bottom: 10px;
    color: #c72959;
    font: 800 12px/1.2 Georgia, serif;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.fm-aq__header h3 {
    max-width: 560px;
    margin-bottom: 8px;
    color: #173249;
    font: 700 clamp(42px, 7vw, 68px)/.9 "Cormorant Garamond", Georgia, serif;
    letter-spacing: -.035em;
}

.fm-aq__header > p {
    margin-bottom: 20px;
    color: #5e514a;
    font: 400 16px/1.45 Georgia, serif;
}

/* Simulador de frete: integra o Woo Shipping Gateway ao visual do personalizador. */
.single-product .sfwp-shipping-simulator-container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 18px 0 0 !important;
    padding: 20px !important;
    border: 1px solid #e5e0db !important;
    border-radius: 16px !important;
    background: #fff !important;
    color: #332d28 !important;
    box-shadow: 0 8px 24px rgba(35, 27, 23, .05) !important;
    font-family: inherit !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-simulator-title {
    margin: 0 0 12px !important;
    padding: 0 !important;
    border: 0 !important;
    color: #241f1b !important;
    font-family: inherit !important;
    font-size: 1.08rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-align: left !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-form-inline {
    display: block !important;
    margin: 0 !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-cep-input {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 1px solid #d9d2cd !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #332d28 !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.single-product .sfwp-shipping-simulator-container .sfwp-cep-input::placeholder {
    color: #8a817a !important;
    opacity: 1 !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-cep-input:focus {
    border-color: #6a3bd2 !important;
    outline: 0 !important;
    box-shadow: 0 0 0 3px rgba(106, 59, 210, .14) !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-info-text {
    margin: 8px 0 0 !important;
    color: #655e57 !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-info-text small {
    color: inherit !important;
    font-family: inherit !important;
    font-size: .86rem !important;
    font-style: normal !important;
    line-height: 1.4 !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-results {
    margin-top: 14px !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-shipping-rates {
    margin: 0 !important;
    padding: 0 !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-shipping-rates li {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid #eee9e5 !important;
    color: #332d28 !important;
    font-family: inherit !important;
    font-size: .92rem !important;
    line-height: 1.35 !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-shipping-rates li:last-child {
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
}

.single-product .sfwp-shipping-simulator-container .sfwp-method-cost {
    color: #241f1b !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

@media (max-width: 480px) {
    .single-product .sfwp-shipping-simulator-container {
        padding: 16px !important;
        border-radius: 14px !important;
    }

    .single-product .sfwp-shipping-simulator-container .sfwp-shipping-rates li {
        gap: 10px !important;
        font-size: .88rem !important;
    }
}

.fm-aq__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 0;
    border-top: 1px solid #eaded8;
    border-bottom: 1px solid #eaded8;
}

.fm-aq__total span {
    color: #695c55;
    font-size: 14px;
}

.fm-aq__total strong {
    color: #173249;
    font: 700 clamp(34px, 5vw, 48px)/1 "Cormorant Garamond", Georgia, serif;
    white-space: nowrap;
}

.fm-aq__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 22px;
    padding: 15px 0;
    border-bottom: 1px solid #eaded8;
}

.fm-aq__facts > span {
    display: grid;
    gap: 1px;
    min-width: 0;
    padding: 0 14px;
    border-left: 1px solid #eaded8;
}

.fm-aq__facts > span:first-child {
    padding-left: 14px;
    border-left: 0;
}

.fm-aq__facts strong {
    color: #173249;
    font: 700 14px/1.2 Georgia, serif;
}

.fm-aq__facts small {
    color: #6d6059;
    font: 400 12px/1.25 Georgia, serif;
}

.fm-aq__options {
    display: grid;
    gap: 18px;
}

.fm-aq__field {
    min-width: 0;
    margin-bottom: 0;
    padding: 0;
    border: 0;
}

.fm-aq__field legend {
    width: auto;
    margin-bottom: 9px;
    padding: 0;
    color: #173249;
    font: 700 16px/1.25 Georgia, serif;
}

.fm-aq__choice-grid {
    display: grid;
    gap: 10px;
}

.fm-aq__choice-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fm-aq__choice-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fm-aq__choice-grid button {
    display: flex !important;
    min-width: 0;
    min-height: 70px;
    margin: 0 !important;
    padding: 13px 16px !important;
    flex-direction: column;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 2px;
    border: 2px solid #e7dbd5 !important;
    border-radius: 15px !important;
    background: #fff !important;
    color: #173249 !important;
    box-shadow: none !important;
    line-height: 1.2 !important;
    text-align: left !important;
    text-transform: none !important;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.fm-aq__choice-grid button:hover {
    border-color: #d9bdc7 !important;
}

.fm-aq__choice-grid button.is-active {
    border-color: #cb2c5b !important;
    background: #fff8fa !important;
    box-shadow: 0 0 0 4px rgba(203, 44, 91, .09) !important;
}

.fm-aq__choice-grid button:focus-visible,
.fm-aq__summary button:focus-visible,
.fm-aq__bulk-upload:focus-within,
.fm-aq__photo-picker:focus-within {
    outline: 3px solid rgba(203, 44, 91, .2) !important;
    outline-offset: 2px;
}

.fm-aq__choice-grid button strong {
    color: inherit;
    font: 700 15px/1.2 Georgia, serif;
}

.fm-aq__choice-grid button span {
    color: #6b5f58;
    font: 400 12px/1.25 Georgia, serif;
}

.fm-aq__field--color button {
    min-height: 76px;
    flex-direction: row;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 13px;
}

.fm-aq__swatch {
    display: block;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .05);
}

.fm-aq__swatch--color {
    background: linear-gradient(135deg, #f08c9b 0%, #c85f84 45%, #6278a1 100%);
}

.fm-aq__swatch--bw {
    background: linear-gradient(135deg, #e9e9e9 0%, #b8b8b8 50%, #777 100%);
}

.fm-aq__photos {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #eaded8;
}

.fm-aq__photos-heading {
    display: grid;
    grid-template-columns: auto minmax(120px, 210px);
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.fm-aq__photos-heading h4 {
    margin-bottom: 0;
    color: #173249;
    font: 700 31px/1 "Cormorant Garamond", Georgia, serif;
}

.fm-aq__photos-heading > div:first-child > span {
    display: block;
    margin-top: 3px;
    color: #6c605a;
    font-size: 13px;
}

.fm-aq__progress {
    height: 9px;
    border-radius: 999px;
    background: #eae4e1;
    overflow: hidden;
}

.fm-aq__progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: #cb2c5b;
    transition: width .2s ease;
}

.fm-aq__bulk-upload {
    position: relative;
    display: flex;
    min-height: 68px;
    padding: 12px 18px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 2px dashed #cb2c5b;
    border-radius: 15px;
    background: #fff2f6;
    color: #a91e49;
    cursor: pointer;
    overflow: hidden;
}

.fm-aq__bulk-upload[hidden] {
    display: none !important;
}

.fm-aq__bulk-upload strong {
    font: 700 15px/1.25 Georgia, serif;
}

.fm-aq__upload-help {
    margin: 7px 0 15px;
    color: #70635d;
    font-size: 12px;
    line-height: 1.35;
    text-align: center;
}

.fm-aq__native-input {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    cursor: pointer !important;
}

.fm-aq__photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.fm-aq__photo-card {
    position: relative;
    min-width: 0;
    aspect-ratio: 1 / 1;
}

.fm-aq__photo-card[hidden] {
    display: none !important;
}

.fm-aq__photo-picker {
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    margin: 0;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    border: 1px dashed #d9c8c0;
    border-radius: 13px;
    background: #fdfaf9;
    color: #173249;
    cursor: pointer;
    overflow: hidden;
}

.fm-aq__photo-card.is-ready .fm-aq__photo-picker {
    border-style: solid;
    border-color: #ddd3ce;
    background: #eee;
}

.fm-personalizador--white-border .fm-aq__photo-card.is-ready .fm-aq__photo-picker,
.fm-personalizador--white-border .fm-aq__editor-preview .fm-aq__photo-picker {
    background: #fff;
}

.fm-aq__photo-card.is-filled .fm-aq__photo-picker {
    touch-action: none;
    cursor: grab;
    /* A arte do quadro é quadrada; não arredondar a prévia da foto. */
    border-radius: 0;
}

.fm-aq__photo-card.is-filled .fm-aq__photo-picker:active {
    cursor: grabbing;
}

.fm-aq__photo-card.is-selected .fm-aq__photo-picker {
    border-color: #cb2c5b;
    box-shadow: 0 0 0 2px rgba(203, 44, 91, .14);
}

.fm-aq__photo-picker img {
    position: absolute;
    max-width: none !important;
    max-height: none !important;
    pointer-events: none;
    user-select: none;
    transition: filter .18s ease;
}

.fm-aq__photo-card.is-filled .fm-aq__native-input {
    pointer-events: none !important;
}

.fm-aq__photo-number,
.fm-aq__photo-action {
    position: relative;
    z-index: 1;
}

.fm-aq__photo-number {
    font: 700 26px/1 "Cormorant Garamond", Georgia, serif;
}

.fm-aq__photo-action {
    font: 400 12px/1.2 Georgia, serif;
}

.fm-aq__photo-action[hidden] {
    display: none !important;
}

.fm-aq__photo-card.is-filled:not(.is-loading) .fm-aq__photo-action {
    position: absolute;
    right: 7px;
    bottom: 7px;
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(23, 50, 73, .86);
    color: #fff;
    font: 700 10px/1.1 Arial, sans-serif;
}

.fm-aq__photo-loading {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    background: rgba(255, 255, 255, .88);
    color: #173249;
}

.fm-aq__photo-loading[hidden] {
    display: none !important;
}

.fm-aq__editor {
    display: grid;
    gap: 10px;
    margin-top: 14px;
    padding: 15px 16px;
    border: 1px solid #eaded8;
    border-radius: 14px;
    background: #f9f6f4;
}

.fm-aq__editor-preview {
    display: flex;
    min-height: 220px;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border: 1px solid #eaded8;
    background: #f7f3ef;
}

.fm-aq__editor-preview .fm-aq__photo-card {
    width: min(100%, 430px);
    aspect-ratio: 1 / 1;
}

.fm-aq__editor-preview .fm-aq__photo-picker {
    border-radius: 0;
    border-style: solid;
    border-color: #d7cdc7;
    background: #fff;
    box-shadow: 0 7px 18px rgba(23, 50, 73, .12);
}

.fm-aq__editor[hidden] {
    display: none !important;
}

.fm-aq__editor-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #173249;
}

.fm-aq__editor-heading strong {
    font: 700 17px/1.2 Georgia, serif;
}

.fm-aq__editor-heading button {
    min-height: 34px !important;
    margin: 0 !important;
    padding: 6px 11px !important;
    border: 1px solid #d9c8c0 !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: #173249 !important;
    font: 700 12px/1 Arial, sans-serif !important;
    text-transform: none !important;
}

.fm-aq__editor p {
    margin: 0;
    color: #6b5f58;
    font-size: 12px;
    line-height: 1.35;
}

.fm-aq__zoom {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    margin: 0;
    color: #173249;
    font: 700 14px/1 Georgia, serif;
}

.fm-aq__zoom input {
    width: 100%;
    accent-color: #cb2c5b;
}

.fm-aq__editor-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
}

.fm-aq__editor-actions button {
    min-height: 36px !important;
    margin: 0 !important;
    padding: 5px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #173249 !important;
    font: 700 12px/1.2 Arial, sans-serif !important;
    text-transform: none !important;
    box-shadow: none !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.fm-aq__send-later {
    display: grid;
    gap: 4px;
    padding: 18px;
    border: 1px solid #eaded8;
    border-radius: 14px;
    background: #f9f6f4;
    color: #5f534d;
    line-height: 1.4;
}

.fm-aq__send-later[hidden] {
    display: none !important;
}

.fm-aq__send-later strong {
    color: #173249;
}

.fm-aq__summary {
    position: sticky;
    z-index: 10;
    bottom: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    margin: 24px -40px 0;
    padding: 17px 40px;
    border-top: 1px solid #eaded8;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 -8px 24px rgba(30, 23, 20, .06);
    backdrop-filter: blur(10px);
}

.fm-aq__summary > div {
    display: grid;
    min-width: 0;
}

.fm-aq__summary span {
    color: #6b5f58;
    font-size: 12px;
    line-height: 1.3;
}

.fm-aq__summary strong {
    color: #173249;
    font: 700 32px/1 "Cormorant Garamond", Georgia, serif;
}

.fm-aq__summary button {
    min-height: 54px;
    margin: 0 !important;
    padding: 10px 20px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #cb2c5b !important;
    color: #fff !important;
    font: 700 14px/1.2 Georgia, serif !important;
    text-transform: none !important;
    box-shadow: none !important;
}

.fm-aq__summary button:disabled {
    opacity: .58;
    cursor: wait;
}

.fm-aq__status {
    min-height: 1.35em;
    margin: 9px 0 14px;
    color: #6c605a;
    font-size: 12px;
    line-height: 1.35;
    text-align: center;
}

@media (max-width: 520px) {
    .fm-personalizador--amor-quadrado {
        margin-top: 10px;
        padding: 23px 14px 0;
        border-radius: 20px 20px 0 0;
    }

    .fm-aq__header h3 {
        font-size: clamp(40px, 14vw, 58px);
    }

    .fm-aq__header > p {
        font-size: 14px;
    }

    .fm-aq__total strong {
        font-size: 36px;
    }

    .fm-aq__facts > span {
        padding: 0 7px;
    }

    .fm-aq__facts > span:first-child {
        padding-left: 0;
    }

    .fm-aq__facts strong {
        font-size: 12px;
    }

    .fm-aq__facts small {
        font-size: 10px;
    }

    .fm-aq__choice-grid button {
        min-height: 66px;
        padding: 11px 12px !important;
    }

    .fm-aq__choice-grid button strong {
        font-size: 13px;
    }

    .fm-aq__choice-grid button span {
        font-size: 10px;
    }

    .fm-aq__choice-grid--three {
        gap: 6px;
    }

    .fm-aq__choice-grid--three button {
        padding-right: 8px !important;
        padding-left: 8px !important;
    }

    .fm-aq__swatch {
        flex-basis: 34px;
        width: 34px;
        height: 34px;
    }

    .fm-aq__field--color button {
        gap: 8px;
    }

    .fm-aq__photos-heading {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .fm-aq__photo-grid {
        gap: 7px;
    }

    .fm-aq__editor {
        gap: 8px;
        margin: 0 0 14px;
        padding: 11px;
    }

    .fm-aq__editor-preview {
        min-height: 0;
        padding: 3px;
    }

    .fm-aq__editor-preview .fm-aq__photo-card {
        width: min(100%, 390px);
    }

    .fm-aq__photo-picker {
        border-radius: 10px;
    }

    .fm-aq__photo-number {
        font-size: 23px;
    }

    .fm-aq__summary {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        margin-right: -14px;
        margin-left: -14px;
        padding: 13px 14px;
    }

    .fm-aq__summary strong {
        font-size: 27px;
    }

    .fm-aq__summary button {
        max-width: 145px;
        min-height: 48px;
        padding: 8px 12px !important;
        font-size: 12px !important;
    }
}

@media (max-width: 350px) {
    .fm-aq__photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fm-aq__choice-grid--three {
        grid-template-columns: 1fr;
    }
}

/* Amor ao Quadrado: mesma linguagem visual e hierarquia da Coleção Perfil. */
.fm-personalizador--amor-quadrado {
    display: flex;
    flex-direction: column;
    max-width: 780px;
    margin: 8px auto 22px;
    padding: 8px 0 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #332d28;
    box-shadow: none;
}

.fm-personalizador--amor-quadrado .fm-aq__header {
    order: 1;
}

.fm-personalizador--amor-quadrado .fm-aq__photos {
    order: 2;
}

.fm-personalizador--amor-quadrado .fm-aq__options {
    order: 3;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #e5e0db;
}

.fm-personalizador--amor-quadrado .fm-aq__summary {
    order: 4;
}

.fm-personalizador--amor-quadrado .fm-aq__status {
    order: 5;
}

.fm-personalizador--amor-quadrado > input[type="hidden"] {
    order: 6;
}

.fm-aq__header {
    max-width: 760px;
    margin: 0 auto 14px;
    text-align: center;
}

.fm-aq__eyebrow {
    display: inline-block;
    margin-bottom: 0;
    color: #6a3bd2;
    font-family: inherit;
    font-size: .75rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .08em;
}

.fm-aq__header h3 {
    max-width: none;
    margin: 2px 0 6px;
    color: #241f1b;
    font-family: inherit;
    font-size: clamp(1.35rem, 3vw, 1.8rem);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0;
}

.fm-aq__header > p {
    max-width: 640px;
    margin: 0 auto 16px;
    color: #655e57;
    font-family: inherit;
    font-size: .94rem;
    line-height: 1.45;
}

.fm-aq__total,
.fm-aq__facts {
    border-color: #e5e0db;
}

.fm-aq__total {
    padding: 12px 0;
    text-align: left;
}

.fm-aq__total span,
.fm-aq__facts small,
.fm-aq__choice-grid button span,
.fm-aq__photos-heading > div:first-child > span,
.fm-aq__upload-help,
.fm-aq__status,
.fm-aq__summary span {
    color: #655e57;
}

.fm-aq__total strong {
    color: #241f1b;
    font-family: inherit;
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1;
}

.fm-aq__facts {
    margin-bottom: 16px;
    padding: 12px 0;
}

.fm-aq__facts > span {
    border-color: #e5e0db;
}

.fm-aq__facts strong,
.fm-aq__field legend,
.fm-aq__photos-heading h4,
.fm-aq__editor-heading,
.fm-aq__zoom,
.fm-aq__send-later strong,
.fm-aq__summary strong {
    color: #332d28;
    font-family: inherit;
}

.fm-aq__options {
    gap: 14px;
}

.fm-aq__field legend {
    margin-bottom: 6px;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.25;
}

.fm-aq__choice-grid {
    gap: 7px;
}

.fm-aq__choice-grid button {
    min-height: 54px;
    padding: 8px 10px !important;
    border: 1px solid #d7d1ca !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #3d3732 !important;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.fm-aq__choice-grid button:hover {
    border-color: #bcb2aa !important;
}

.fm-aq__choice-grid button.is-active {
    border-color: #6a3bd2 !important;
    background: #f2ecff !important;
    color: #5d2dc7 !important;
    box-shadow: inset 0 0 0 1px #6a3bd2 !important;
}

.fm-aq__choice-grid button:focus-visible,
.fm-aq__summary button:focus-visible,
.fm-aq__bulk-upload:focus-within,
.fm-aq__photo-picker:focus-within {
    outline-color: rgba(106, 59, 210, .24) !important;
}

.fm-aq__choice-grid button strong {
    font-family: inherit;
    font-size: .84rem;
    font-weight: 700;
}

.fm-aq__choice-grid button span {
    font-family: inherit;
    font-size: .75rem;
}

.fm-aq__field--color button {
    min-height: 58px;
    gap: 9px;
}

.fm-aq__swatch {
    flex-basis: 34px;
    width: 34px;
    height: 34px;
    border-radius: 8px;
}

.fm-aq__photos {
    margin-top: 18px;
    padding-top: 18px;
    border-color: #e5e0db;
}

.fm-aq__photos-heading h4 {
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.1;
}

.fm-aq__progress span {
    background: #6a3bd2;
}

.fm-aq__bulk-upload {
    min-height: 58px;
    border-color: #6a3bd2;
    border-radius: 8px;
    background: #f7f3ff;
    color: #5d2dc7;
}

.fm-aq__bulk-upload strong {
    font-family: inherit;
    font-size: .84rem;
}

.fm-aq__photo-picker {
    border-radius: 8px;
    background: #fbfaf9;
    color: #332d28;
}

.fm-aq__photo-card.is-selected .fm-aq__photo-picker {
    border-color: #6a3bd2;
    box-shadow: 0 0 0 2px rgba(106, 59, 210, .14);
}

.fm-aq__photo-number,
.fm-aq__photo-action,
.fm-aq__editor-heading strong,
.fm-aq__zoom,
.fm-aq__summary strong {
    font-family: inherit;
}

.fm-aq__editor {
    border-color: #e5e0db;
    border-radius: 10px;
    background: #faf9f8;
}

.fm-aq__editor-preview,
.fm-aq__editor-preview .fm-aq__photo-picker {
    border-color: #d7d1ca;
}

.fm-aq__editor-heading button {
    border-color: #d7d1ca !important;
    border-radius: 8px !important;
    color: #332d28 !important;
}

.fm-aq__zoom input {
    accent-color: #6a3bd2;
}

.fm-aq__send-later {
    border-color: #e5e0db;
    border-radius: 10px;
    background: #faf9f8;
}

.fm-aq__summary {
    margin: 22px 0 0;
    padding: 14px 0;
    border-color: #e5e0db;
}

.fm-aq__summary strong {
    font-size: 1.65rem;
}

.fm-aq__summary button {
    min-height: 48px;
    border-radius: 8px !important;
    background: #6a3bd2 !important;
    font-family: inherit !important;
}

@media (max-width: 520px) {
    .fm-personalizador--amor-quadrado {
        margin-top: 8px;
        padding: 8px 3px 16px;
        border-radius: 0;
    }

    .fm-aq__header h3 {
        font-size: clamp(1.35rem, 8vw, 1.7rem);
    }

    .fm-aq__header > p {
        font-size: .9rem;
    }

    .fm-aq__total strong {
        font-size: 1.75rem;
    }

    .fm-aq__choice-grid button {
        min-height: 52px;
        padding: 8px 9px !important;
    }

    .fm-aq__summary {
        margin-right: 0;
        margin-left: 0;
        padding: 12px 0;
    }
}

@media (max-width: 620px) {
    .fm-personalizador--trio-perfil {
        padding-right: 3px;
        padding-left: 3px;
    }

    .fm-personalizador--trio-amor-maior {
        padding-right: 3px;
        padding-left: 3px;
    }

    .fm-personalizador--quadro-familia {
        padding-right: 3px;
        padding-left: 3px;
    }

    .fm-personalizador--quadro-faz-com-foto {
        padding-right: 3px;
        padding-left: 3px;
    }

    .fm-personalizador__quadro-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .fm-personalizador__quadro-actions span {
        grid-column: 1 / -1;
        margin: 0;
    }

    .fm-personalizador__quadro-actions button:only-of-type,
    #fm-quadro-add {
        grid-column: auto;
    }

    .fm-personalizador__trio-amor-orientation {
        grid-template-columns: 1fr;
        gap: 7px;
        padding: 10px;
    }

    .fm-personalizador__profile-options,
    .fm-personalizador__profile-style {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .fm-personalizador__send-buttons {
        grid-template-columns: 1fr;
    }

    .fm-personalizador__fixed-spec {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .fm-personalizador__profile-style .fm-personalizador__option-group {
        grid-template-rows: auto auto;
    }

    #fm-profile-count {
        grid-auto-flow: row;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fm-personalizador__profile-nav {
        gap: 4px;
    }

    .fm-personalizador__profile-nav button {
        min-height: 42px;
        padding: 5px 3px !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }

    .fm-personalizador__profile-nav button.is-complete::after {
        top: 4px;
        right: 4px;
        transform: none;
        font-size: 10px;
    }

    .fm-personalizador__ai {
        padding: 14px 11px;
    }

    .fm-profile-lead {
        padding: 17px 14px;
    }

    .fm-profile-lead__fields {
        grid-template-columns: 1fr;
    }

    .fm-profile-buy-alternative {
        flex-direction: column;
        gap: 2px;
    }
}

@media (max-width: 767px) {
    .fm-profile-mobile-action {
        position: fixed;
        z-index: 9998;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(170px, 1.2fr);
        align-items: center;
        gap: 10px;
        padding: 9px max(12px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
        border-top: 1px solid #ded8d1;
        background: rgba(255, 255, 255, .97);
        box-shadow: 0 -8px 26px rgba(35, 28, 23, .14);
        backdrop-filter: blur(8px);
    }

    .fm-profile-mobile-action > span,
    .fm-profile-mobile-action small,
    .fm-profile-mobile-action strong {
        display: block;
    }

    .fm-profile-mobile-action small {
        color: #756d66;
        font-size: .68rem;
    }

    .fm-profile-mobile-action strong {
        color: #241f1b;
        font-size: .95rem;
        line-height: 1.15;
    }

    .fm-profile-mobile-action button {
        min-height: 46px;
        margin: 0 !important;
        padding: 8px 10px !important;
        border: 1px solid #20ad58 !important;
        border-radius: 9px !important;
        background: #20ad58 !important;
        color: #fff !important;
        font-size: .88rem !important;
        font-weight: 800 !important;
        line-height: 1.15 !important;
        text-transform: none !important;
    }
}
/* Native pilot only: does not restyle fields on other products. */
.fm-personalizador--native, .fm-personalizador--native *, .fm-native-commerce, .fm-native-commerce * { box-sizing: border-box; }
.fm-native-commerce { margin: 24px 0; padding: 18px; border: 1px solid #ded8d1; border-radius: 12px; }
.fm-native-commerce textarea { display: block; width: 100%; box-sizing: border-box; margin-top: 8px; }
.fm-native-commerce label { cursor: pointer; }
.fm-native-commerce [hidden] { display: none !important; }
.fm-native-commerce input[type="checkbox"] { width: 20px; height: 20px; vertical-align: middle; margin-right: 8px; }

/* Quantidade variável do piloto: composição inteira visível, inclusive no celular. */
.fm-personalizador.fm-native-variable .fm-personalizador__stage,
.fm-personalizador.fm-native-variable #fm-personalizador-canvas { width: 100%; max-width: 100%; }
.fm-native-variable .fm-personalizador__quantity-control { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 14px 0; }
.fm-native-variable .fm-personalizador__quantity-control button { border: 1px solid #ddd5ce; border-radius: 8px; padding: 12px 14px; background: #fff; cursor: pointer; }
.fm-native-variable #fm-native-add { background: #6934df; color: #fff; border-color: #6934df; font-weight: 600; }
.fm-native-variable #fm-native-add:disabled { opacity: .5; cursor: default; }
.fm-native-variable #fm-native-extra-price { flex-basis: 100%; color: #655d56; }
.fm-native-variable [hidden] { display: none !important; }

.fm-personalizador--round-product .fm-personalizador__option-group { display: grid; gap: 8px; margin: 16px 0; }
.fm-personalizador--round-product select { width:100%; padding:14px; border:1px solid #ded8d1; border-radius:10px; background:#fff; color:#24211f; }
.fm-personalizador--round-product [hidden] { display:none !important; }

/* Keep native selects legible when the theme imposes a fixed control height. */
.fm-personalizador.fm-personalizador--round-product select {
    box-sizing: border-box !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: none !important;
    padding: 8px 38px 8px 14px !important;
    line-height: normal !important;
    font-size: 16px !important;
    text-indent: 0 !important;
}

.fm-personalizador--round-product .fm-personalizador__quadro-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; width:100%; }
.fm-round-add-action { margin-left:auto; max-width:100%; }
.fm-round-add-action small { display:block; text-align:center; font-size:14px; line-height:1.4; margin-top:5px; }
.fm-round-add-action small:empty { display:none; }
.fm-round-add-action #fm-quadro-add { min-height:48px; height:auto !important; padding:12px 16px !important; font-size:16px !important; line-height:1.4 !important; white-space:normal; width:100%; }
.fm-personalizador--round-product .fm-personalizador__quadro-nav { display:flex; flex-wrap:nowrap; overflow-x:auto; max-width:100%; padding:4px 0 10px; }
.fm-personalizador--round-product .fm-personalizador__quadro-nav button { flex:0 0 auto; white-space:nowrap; min-width:max-content; padding:12px !important; }
.fm-round-dialog { box-sizing:border-box; width:calc(100% - 32px); max-width:480px; max-height:calc(100dvh - 32px); margin:auto; padding:28px; border:0; border-radius:18px; color:#28212e; background:#fff; overflow-y:auto; font-family:Arial,sans-serif; }
.fm-round-dialog:not([open]) { display:none; }
.fm-round-dialog::backdrop { background:rgba(25,17,39,.55); }
.fm-round-dialog h3 { margin:0 32px 12px 0; font-size:24px; line-height:1.25; color:#452083; }
.fm-round-dialog p { font-size:16px; line-height:1.5; margin:12px 0; }
.fm-round-dialog button { box-sizing:border-box; cursor:pointer; min-height:44px; height:auto; border-radius:8px; padding:10px 12px; font:600 16px/1.4 Arial,sans-serif; text-transform:none; white-space:normal; }
.fm-round-dialog-close { position:absolute; top:10px; right:10px; width:44px; background:transparent; border:0; color:#452083; font-size:26px !important; }
.fm-round-size-options { border:0; margin:20px 0; padding:0; display:grid; gap:10px; }
.fm-round-size-options label { display:flex; align-items:center; gap:12px; border:1px solid #c9c1d4; border-radius:10px; padding:16px; cursor:pointer; font-size:16px; line-height:1.4; }
.fm-round-size-options label:has(input:checked) { background:#f1eaff; border-color:#6a3bd2; box-shadow:inset 0 0 0 1px #6a3bd2; }
.fm-round-size-options input { appearance:auto; width:18px; height:18px; margin:0; accent-color:#6a3bd2; flex-shrink:0; }
.fm-round-size-options strong { margin-left:auto; white-space:nowrap; }
#fm-round-confirm { width:100%; background:#6a3bd2; color:white; border:1px solid #6a3bd2; }
#fm-round-confirm:disabled { opacity:.5; cursor:default; }
.fm-round-dialog-cancel { display:block; width:100%; margin-top:8px; background:white; color:#452083; border:0; }
.fm-round-dialog :focus-visible { outline:3px solid #9363f4; outline-offset:3px; }
@media(max-width:600px) {
    .fm-round-add-action { flex-basis:100%; margin-left:0; }
    .fm-round-dialog { width:100%; max-width:none; max-height:90dvh; margin:auto 0 0; border-radius:18px 18px 0 0; padding:24px 20px max(20px, env(safe-area-inset-bottom)); }
}

.fm-round-dialog .screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.fm-personalizador--round-product #fm-quadro-count-label { text-align:left; margin-right:auto; }

/* Approved single-photo control styling, scoped to the native Trio Retangular. */
.fm-personalizador--rect-product select{width:100%;height:auto!important;min-height:50px;padding:10px 32px 10px 12px!important;line-height:1.5!important;border:1px solid #d8d1cb;border-radius:10px;background:#fff;font-size:16px;}
.fm-personalizador--rect-product select:focus-visible{outline:3px solid #9872ef;outline-offset:3px;}
.fm-personalizador--rect-product .fm-personalizador__segmented{display:flex;gap:12px;flex-wrap:wrap;}
.fm-personalizador--rect-product .fm-personalizador__segmented button{display:flex;gap:10px;align-items:center;min-height:48px;padding:10px 14px!important;border:1px solid #d8d1cb!important;border-radius:12px!important;background:transparent!important;color:#302631!important;line-height:1.4!important;white-space:normal;}
.fm-personalizador--rect-product .fm-personalizador__segmented button:before{content:'';width:18px;height:18px;flex-shrink:0;border:1px solid #888;border-radius:50%;background:white;}
.fm-personalizador--rect-product .fm-personalizador__segmented button.is-active{background:#f2ebff!important;border-color:#7848eb!important;}
.fm-personalizador--rect-product .fm-personalizador__segmented button.is-active:before{border-color:#7848eb;background:#7848eb;box-shadow:inset 0 0 0 3px white;}
.fm-personalizador--rect-product .fm-personalizador__quadro-nav{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px;}
.fm-personalizador--rect-product .fm-personalizador__quadro-nav button{flex:0 0 auto;white-space:nowrap;min-width:max-content;}
.fm-personalizador--rect-product .fm-personalizador__quadro-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.fm-personalizador--rect-product #fm-quadro-add{min-height:48px;padding:12px 16px!important;line-height:1.4!important;white-space:normal;}
.fm-personalizador--rect-product #fm-rect-extra-price{width:100%;text-align:right;font-size:14px;}
@media(max-width:600px){.fm-personalizador--rect-product #fm-quadro-add{width:100%;}.fm-personalizador--rect-product #fm-rect-extra-price{text-align:center;}}

.fm-personalizador--rect-product .fm-personalizador__quadro-nav button{width:auto!important;min-width:max-content!important;max-width:none!important;padding:12px!important;}
.fm-personalizador--rect-product #fm-quadro-count-label{text-align:left;margin-right:auto;}
.fm-personalizador--box-product #fm-quadro-size {width:100%;height:auto;min-height:54px;padding:14px 40px 14px 16px;border:1px solid #d9d3ce;border-radius:12px;background-color:#fff;font:inherit;line-height:1.4;}
.fm-personalizador--box-product #fm-quadro-size:focus {outline:3px solid #a184f4;outline-offset:2px;}
.fm-personalizador--box-product .fm-personalizador__segmented {flex-wrap:wrap;gap:10px;}
.fm-personalizador--box-product .fm-personalizador__segmented button {border-radius:12px;padding:12px 20px;white-space:normal;min-height:48px;}
.fm-personalizador--box-product #fm-box-fit {color:#48227e;font-weight:600;}
