/* Photo framing preview — purely visual, driven by CSS variables set
   from JS in photo-frame.js. The wrapper stack is:
     .frame > .outer-mat > .inner-mat > .photo-border > img
*/

.frame-stage {
    display: flex;
    justify-content: center;
}

.frame {
    --frame-pad: 0px;
    --frame-bg: transparent;
    --frame-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    --frame-bevel-outer: transparent;
    --frame-bevel-inner: transparent;

    --mat-color: transparent;
    --mat-pad: 0px;
    --mat2-color: transparent;
    --mat2-pad: 0px;

    --border-color: transparent;
    --border-width: 0px;

    --img-radius: 0.5rem;

    display: inline-block;
    max-width: 100%;
    padding: var(--frame-pad);
    background: var(--frame-bg);
    box-shadow:
        inset 0 0 0 1px var(--frame-bevel-inner),
        0 0 0 1px var(--frame-bevel-outer),
        var(--frame-shadow);
    transition: padding 0.15s ease, background 0.15s ease;
}

.outer-mat {
    background: var(--mat-color);
    padding: var(--mat-pad);
    transition: background 0.15s ease, padding 0.15s ease;
}

.inner-mat {
    background: var(--mat2-color);
    padding: var(--mat2-pad);
    transition: background 0.15s ease, padding 0.15s ease;
}

.photo-border {
    background: var(--border-color);
    padding: var(--border-width);
    transition: background 0.15s ease, padding 0.15s ease;
}

.photo-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--img-radius);
    transition: border-radius 0.15s ease;
}

/* Frame styles ----------------------------------------------------- */
.frame[data-frame="none"] {
    --frame-pad: 8px;
    --frame-bg: #ffffff;
}

.frame[data-frame="thin-black"] {
    --frame-pad: 6px;
    --frame-bg: #111111;
    --frame-bevel-inner: rgba(255, 255, 255, 0.08);
}

.frame[data-frame="thick-black"] {
    --frame-pad: 22px;
    --frame-bg: linear-gradient(145deg, #1a1a1a, #050505);
    --frame-bevel-outer: rgba(0, 0, 0, 0.6);
    --frame-bevel-inner: rgba(255, 255, 255, 0.05);
}

.frame[data-frame="white"] {
    --frame-pad: 18px;
    --frame-bg: #fafafa;
    --frame-bevel-outer: rgba(0, 0, 0, 0.12);
    --frame-bevel-inner: rgba(0, 0, 0, 0.06);
}

.frame[data-frame="wood"] {
    --frame-pad: 26px;
    --frame-bg: linear-gradient(160deg, #6b4423 0%, #8a5a2b 40%, #5a3818 100%);
    --frame-bevel-outer: rgba(0, 0, 0, 0.4);
    --frame-bevel-inner: rgba(255, 220, 180, 0.15);
}

.frame[data-frame="gold"] {
    --frame-pad: 28px;
    --frame-bg: linear-gradient(135deg, #d4af37 0%, #f5d76e 35%, #b8860b 70%, #f5d76e 100%);
    --frame-bevel-outer: rgba(120, 80, 0, 0.5);
    --frame-bevel-inner: rgba(255, 240, 200, 0.6);
}

.frame-btn.active {
    background-color: var(--pm-primary, #2563eb);
    border-color: var(--pm-primary, #2563eb);
    color: #ffffff;
    font-weight: 600;
}

.frame-btn.active:hover,
.frame-btn.active:focus {
    background-color: var(--pm-primary-dark, #1e40af);
    border-color: var(--pm-primary-dark, #1e40af);
    color: #ffffff;
}
