* {
    box-sizing: border-box;
}

:root {
    --bg: #f7f7f5;
    --surface: #ffffff;
    --text: #111111;
    --muted: #777777;
    --line: #e5e5e5;
    --accent: #111111;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: Arial, Helvetica, sans-serif;
}

a {
    color: inherit;
    text-decoration: none;
}

.topbar {
    height: 76px;
    padding: 0 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(12px);
}

.brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 20px;
    letter-spacing: -0.5px;
}

.brand-mark {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

nav {
    display: flex;
    gap: 30px;
    color: #555;
    font-size: 14px;
}

nav a:hover {
    color: #000;
}

.login-button {
    border: 1px solid #ddd;
    background: white;
    border-radius: 999px;
    padding: 10px 18px;
    cursor: pointer;
}


.hero {
    min-height: 600px;
    display: flex;
    align-items: center;
    padding: 90px 7%;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.78),
            rgba(0,0,0,.35),
            rgba(0,0,0,.05)
        ),
        url("https://images.unsplash.com/photo-1500534623283-312aade485b7?auto=format&fit=crop&w=2200&q=90")
        center / cover;
    color: white;
}

.hero-content {
    max-width: 760px;
}

.eyebrow {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    opacity: .7;
}

.hero h1 {
    font-size: clamp(48px, 7vw, 88px);
    line-height: .95;
    letter-spacing: -4px;
    margin: 18px 0 25px;
}

.hero h1 span {
    opacity: .62;
}

.hero p {
    max-width: 580px;
    font-size: 18px;
    line-height: 1.6;
    color: rgba(255,255,255,.82);
}

.search-box {
    margin-top: 35px;
    width: min(600px, 100%);
    height: 64px;
    background: white;
    color: #111;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 0 20px;
}

.search-box span {
    font-size: 30px;
}

.search-box input {
    width: 100%;
    border: 0;
    outline: 0;
    font-size: 16px;
}


.section {
    padding: 90px 7%;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 35px;
}

.section-heading h2,
.how-section h2 {
    font-size: 42px;
    letter-spacing: -2px;
    margin: 8px 0 0;
}

.event-count {
    color: var(--muted);
    font-size: 14px;
}

.event-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.event-card {
    min-width: 0;
}

.event-image {
    display: block;
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 16px;
    background: #ddd;
}

.event-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .45s ease;
}

.event-card:hover .event-image img {
    transform: scale(1.04);
}

.event-category {
    position: absolute;
    left: 15px;
    top: 15px;
    background: rgba(0,0,0,.7);
    color: white;
    padding: 7px 11px;
    border-radius: 999px;
    font-size: 11px;
}

.favorite {
    position: absolute;
    right: 15px;
    top: 15px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    font-size: 22px;
    cursor: pointer;
}

.favorite.active {
    background: #111;
    color: white;
}

.event-info {
    padding: 17px 3px;
}

.event-date {
    color: #888;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .7px;
}

.event-info h3 {
    font-size: 22px;
    margin: 8px 0;
    letter-spacing: -.5px;
}

.location {
    color: #666;
    margin: 0 0 13px;
}

.event-meta {
    display: flex;
    gap: 8px;
    color: #999;
    font-size: 12px;
}

.empty-search {
    display: none;
    padding: 50px 0;
    color: #777;
}


.photographer-section {
    margin: 20px 7% 100px;
    padding: 70px;
    background: #111;
    color: white;
    border-radius: 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.photographer-section h2 {
    font-size: 52px;
    line-height: .98;
    letter-spacing: -3px;
    margin: 15px 0;
}

.photographer-section p {
    color: #aaa;
    line-height: 1.6;
    max-width: 480px;
}

.primary-button {
    margin-top: 15px;
    border: 0;
    background: white;
    color: #111;
    padding: 13px 20px;
    border-radius: 999px;
    font-weight: 700;
}

.photographer-card {
    background: #1d1d1d;
    border: 1px solid #333;
    padding: 25px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #333;
    font-weight: 800;
}

/* Avatar del fotógrafo en eventos públicos */
.photographer-avatar {
    overflow: hidden;
}

.photographer-avatar img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    display: block;
}

.photographer-card strong,
.photographer-card span {
    display: block;
}

.photographer-card span {
    margin-top: 5px;
    color: #999;
    font-size: 12px;
}

.photographer-stat {
    margin-left: auto;
    text-align: right;
}


.how-section {
    padding: 30px 7% 100px;
}

.steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 50px;
}

.steps > div {
    border-top: 1px solid #ddd;
    padding-top: 20px;
}

.steps span {
    color: #999;
    font-size: 12px;
}

.steps h3 {
    font-size: 21px;
    margin-bottom: 10px;
}

.steps p {
    color: #777;
    line-height: 1.5;
}


footer {
    padding: 40px 7%;
    border-top: 1px solid #ddd;
    display: flex;
    justify-content: space-between;
    color: #777;
    font-size: 13px;
}


@media (max-width: 900px) {

    nav {
        display: none;
    }

    .event-grid,
    .steps,
    .photographer-section {
        grid-template-columns: 1fr;
    }

    .photographer-section {
        padding: 40px 25px;
    }

    .hero {
        min-height: 520px;
        padding: 70px 6%;
    }

    .hero h1 {
        letter-spacing: -3px;
    }

    .section-heading {
        align-items: start;
        gap: 15px;
        flex-direction: column;
    }

    footer {
        flex-direction: column;
        gap: 10px;
    }
}


/* =========================================================
   PICARTE — EVENT PAGE
   ========================================================= */

.event-page {
    background: #f7f7f5;
}

.brand a {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 10px;
}

.event-hero {
    position: relative;
    height: min(68vh, 680px);
    min-height: 520px;
    overflow: hidden;
    background: #111;
}

.event-hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.event-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.78) 0%,
            rgba(0,0,0,.18) 55%,
            rgba(0,0,0,.05) 100%
        );
}

.event-hero-content {
    position: absolute;
    left: 6vw;
    right: 6vw;
    bottom: 60px;
    color: white;
    max-width: 1000px;
}

.back-link {
    display: inline-block;
    color: rgba(255,255,255,.85);
    text-decoration: none;
    margin-bottom: 30px;
    font-size: 14px;
}

.back-link:hover {
    color: white;
}

.event-hero-content .event-category {
    display: inline-block;
    position: static;
    margin-bottom: 15px;
    background: rgba(255,255,255,.14);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,.25);
    color: white;
}

.event-hero-content h1 {
    font-size: clamp(42px, 6vw, 82px);
    line-height: .95;
    letter-spacing: -3px;
    margin: 0 0 18px;
    max-width: 900px;
}

.event-hero-content p {
    font-size: 18px;
    margin: 0;
    color: rgba(255,255,255,.85);
}

.event-container {
    width: min(1380px, 90%);
    margin: 0 auto;
    padding: 85px 0 100px;
}

.event-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 35px;
}

.event-header h2 {
    font-size: clamp(34px, 4vw, 58px);
    line-height: 1;
    letter-spacing: -2px;
    margin: 8px 0 15px;
}

.event-header p {
    color: #777;
    font-size: 17px;
    margin: 0;
}

.event-stat {
    text-align: right;
    white-space: nowrap;
}

.event-stat strong {
    display: block;
    font-size: 42px;
    letter-spacing: -2px;
}

.event-stat span {
    color: #777;
    font-size: 14px;
}

.photo-search {
    display: flex;
    align-items: center;
    gap: 14px;
    background: white;
    border: 1px solid #e4e4e1;
    border-radius: 18px;
    padding: 0 22px;
    height: 68px;
    margin-bottom: 22px;
    box-shadow: 0 8px 30px rgba(0,0,0,.04);
}

.photo-search span {
    font-size: 28px;
    color: #777;
}

.photo-search input {
    width: 100%;
    border: 0;
    outline: none;
    font-size: 17px;
    background: transparent;
    color: #111;
}

.photographer-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    margin-bottom: 35px;
    background: white;
    border: 1px solid #e5e5e5;
    border-radius: 18px;
}

.photographer-bar .avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #111;
    color: white;
    font-weight: 700;
}

.photographer-info {
    flex: 1;
}

.photographer-info span {
    display: block;
    font-size: 10px;
    letter-spacing: 1.5px;
    color: #999;
    margin-bottom: 4px;
}

.photographer-info strong {
    display: block;
    font-size: 15px;
}

.photographer-button {
    border: 1px solid #ddd;
    background: white;
    border-radius: 999px;
    padding: 11px 18px;
    cursor: pointer;
}

.gallery-grid {
    columns: 3 320px;
    column-gap: 18px;
}

.photo-card {
    position: relative;
    break-inside: avoid;
    margin-bottom: 18px;
    overflow: hidden;
    border-radius: 14px;
    background: #ddd;
}

.photo-card img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform .5s ease;
}

.photo-card:hover img {
    transform: scale(1.025);
}

.photo-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0,0,0,.6),
        transparent 35%
    );
    opacity: 0;
    transition: opacity .25s ease;
    pointer-events: none;
}

.photo-card:hover::after {
    opacity: 1;
}

.photo-favorite {
    position: absolute;
    z-index: 4;
    top: 15px;
    right: 15px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    font-size: 21px;
    cursor: pointer;
}

.photo-favorite.active {
    background: #111;
    color: white;
}

.watermark {
    position: absolute;
    z-index: 3;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(-18deg);
    color: rgba(255,255,255,.34);
    font-size: 26px;
    font-weight: 800;
    letter-spacing: 4px;
    pointer-events: none;
    white-space: nowrap;
}

.photo-actions {
    position: absolute;
    z-index: 5;
    left: 18px;
    right: 18px;
    bottom: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: white;
    opacity: 0;
    transform: translateY(8px);
    transition: .25s ease;
}

.photo-card:hover .photo-actions {
    opacity: 1;
    transform: translateY(0);
}

.photo-actions span {
    font-size: 13px;
}

.photo-actions button {
    border: 0;
    background: white;
    color: #111;
    border-radius: 999px;
    padding: 9px 14px;
    cursor: pointer;
}

.event-cta {
    margin: 0 auto 100px;
    width: min(1380px, 90%);
    padding: 90px 8%;
    background: #111;
    color: white;
    border-radius: 28px;
}

.event-cta h2 {
    max-width: 700px;
    font-size: clamp(36px, 5vw, 65px);
    line-height: 1;
    letter-spacing: -2px;
    margin: 12px 0 20px;
}

.event-cta p {
    max-width: 600px;
    color: #aaa;
    font-size: 17px;
    line-height: 1.6;
}

.event-cta .primary-button {
    margin-top: 18px;
}


@media (max-width: 800px) {

    .event-hero {
        min-height: 470px;
        height: 65vh;
    }

    .event-hero-content {
        left: 5%;
        right: 5%;
        bottom: 38px;
    }

    .event-hero-content h1 {
        letter-spacing: -2px;
    }

    .event-container {
        padding-top: 55px;
    }

    .event-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .event-stat {
        text-align: left;
    }

    .gallery-grid {
        columns: 2 180px;
        column-gap: 10px;
    }

    .photo-card {
        margin-bottom: 10px;
        border-radius: 10px;
    }

    .photographer-button {
        display: none;
    }

    .event-cta {
        padding: 55px 8%;
        margin-bottom: 50px;
    }

}


/* =========================================================
   PICARTE — GALLERY COMMERCE
   ========================================================= */

.photo-cart-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 9px 14px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #111;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    transition:
        transform .18s ease,
        background .18s ease,
        color .18s ease,
        opacity .18s ease;
}

.photo-cart-button:hover {
    transform: translateY(-1px);
}

.photo-cart-button:active {
    transform: translateY(0);
}

.photo-cart-button:disabled {
    cursor: wait;
    opacity: .75;
}

.photo-cart-button.is-loading {
    opacity: .7;
}

.photo-cart-button.is-added {
    background: #111;
    color: #fff;
}

.photo-cart-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    font-size: 16px;
    font-weight: 800;
}

.photo-cart-label {
    white-space: nowrap;
}

.photo-number {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(0,0,0,.34);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}


/*
 * En desktop la barra aparece al pasar el mouse.
 * En móvil queda siempre visible: la galería tiene que vender.
 */

@media (min-width: 801px) {

    .photo-actions {
        opacity: 0;
        transform: translateY(8px);
    }

    .photo-card:hover .photo-actions {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =========================================================
   GALLERY COMMERCE — MOBILE
   ========================================================= */

@media (max-width: 800px) {

    .photo-card {
        overflow: hidden;
    }

    .photo-actions {
        left: 8px;
        right: 8px;
        bottom: 8px;
        min-height: 42px;
        gap: 8px;
        opacity: 1;
        transform: none;
        align-items: center;
    }

    .photo-number {
        min-width: 0;
        max-width: 45%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        padding: 7px 9px;
        font-size: 11px;
        background: rgba(0,0,0,.46);
    }

    .photo-cart-button {
        min-height: 40px;
        padding: 10px 12px;
        gap: 5px;
        font-size: 12px;
        box-shadow: 0 6px 18px rgba(0,0,0,.22);
    }

    .photo-cart-icon {
        width: 15px;
        height: 15px;
        font-size: 15px;
    }

    .photo-favorite {
        top: 9px;
        right: 9px;
        width: 40px;
        height: 40px;
        font-size: 20px;
    }
}


/* =========================================================
   GALLERY COMMERCE — SMALL PHONES
   ========================================================= */

@media (max-width: 420px) {

    .photo-actions {
        left: 7px;
        right: 7px;
        bottom: 7px;
        gap: 6px;
    }

    .photo-number {
        max-width: 42%;
        padding: 6px 8px;
        font-size: 10px;
    }

    .photo-cart-button {
        flex: 1;
        min-width: 0;
        min-height: 39px;
        padding: 9px 9px;
        font-size: 11px;
    }

    .photo-cart-label {
        overflow: hidden;
        text-overflow: ellipsis;
    }
}


/* =========================================================
   PICARTE — PHOTO VIEWER
   ========================================================= */

.photo-viewer {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(7, 7, 7, .97);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
    overscroll-behavior: contain;
}

.photo-viewer.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.photo-viewer-stage {
    position: relative;
    width: min(88vw, 1500px);
    height: min(84vh, 900px);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.photo-viewer-stage img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
    pointer-events: none;
}

.photo-viewer-watermark {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(-18deg);
    color: rgba(255, 255, 255, .24);
    font-size: clamp(22px, 3vw, 42px);
    font-weight: 900;
    letter-spacing: 7px;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    text-shadow: 0 1px 4px rgba(0,0,0,.35);
}

.photo-viewer-close,
.photo-viewer-prev,
.photo-viewer-next {
    position: absolute;
    z-index: 20;
    border: 0;
    color: white;
    background: rgba(255,255,255,.10);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
        background .18s ease,
        transform .18s ease;
}

.photo-viewer-close:hover,
.photo-viewer-prev:hover,
.photo-viewer-next:hover {
    background: rgba(255,255,255,.18);
}

.photo-viewer-close {
    top: 22px;
    right: 24px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    font-size: 31px;
    font-weight: 300;
    line-height: 1;
}

.photo-viewer-close:hover {
    transform: rotate(4deg) scale(1.04);
}

.photo-viewer-prev,
.photo-viewer-next {
    top: 50%;
    width: 54px;
    height: 74px;
    margin-top: -37px;
    border-radius: 16px;
    font-size: 46px;
    font-weight: 300;
    line-height: 1;
}

.photo-viewer-prev {
    left: 22px;
}

.photo-viewer-next {
    right: 22px;
}

.photo-viewer-prev:hover {
    transform: translateX(-2px);
}

.photo-viewer-next:hover {
    transform: translateX(2px);
}

.photo-viewer-footer {
    position: absolute;
    z-index: 20;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 9px 12px 9px 18px;
    color: rgba(255,255,255,.9);
    background: rgba(255,255,255,.09);
    border: 1px solid rgba(255,255,255,.10);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 999px;
    font-size: 13px;
    white-space: nowrap;
}

.photo-viewer-favorite {
    position: absolute;
    z-index: 30;
    top: 22px;
    left: 24px;
    border: 0;
    border-radius: 999px;
    padding: 9px 14px;
    background: white;
    color: #111;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease;
}

.photo-viewer-favorite:hover {
    transform: translateY(-1px);
}

.photo-viewer-favorite.active {
    background: #111;
    color: white;
}


/* =========================================================
   PICARTE — PHOTO COMMERCE INFO
   ========================================================= */

.photo-viewer-info {
    position: absolute;
    z-index: 20;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    width: min(92vw, 760px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 12px 14px 12px 18px;
    color: rgba(255,255,255,.94);
    background: rgba(20,20,20,.72);
    border: 1px solid rgba(255,255,255,.12);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(0,0,0,.35);
}

.photo-viewer-photo-meta {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.photo-viewer-eyebrow {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,.52);
}

.photo-viewer-photo-meta strong {
    font-size: 15px;
    line-height: 1.2;
    color: white;
}

.photo-viewer-photo-meta span:not(.photo-viewer-eyebrow) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#photoViewerEventName {
    font-size: 12px;
    color: rgba(255,255,255,.72);
    max-width: 360px;
}

#photoViewerPhotographer {
    font-size: 11px;
    color: rgba(255,255,255,.48);
}

.photo-viewer-actions {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.photo-viewer-actions > #photoViewerCounter {
    font-size: 12px;
    color: rgba(255,255,255,.62);
    white-space: nowrap;
}

.photo-viewer-buy {
    border: 0;
    border-radius: 999px;
    padding: 10px 17px;
    background: white;
    color: #111;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.photo-viewer-buy:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(255,255,255,.16);
}

.photo-viewer-buy:active {
    transform: translateY(0);
}


/* =========================================================
   END PHOTO COMMERCE INFO
   ========================================================= */

/* Make the entire photo card feel clickable */

.photo-card {
    cursor: pointer;
}

.photo-card img {
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

.photo-actions {
    pointer-events: auto;
}


/* Prevent accidental page interaction while viewer is open */

body.photo-viewer-open {
    overflow: hidden;
}


/* =========================================================
   END PHOTO VIEWER
   ========================================================= */

/* =========================================================
   PICARTE — DASHBOARD
   ========================================================= */

.dashboard-page {
    background: #f5f5f3;
    color: #111;
}


/* ---------- TOPBAR ---------- */

.dashboard-page .topbar {
    height: 72px;
    padding: 0 5%;
}

.dashboard-page .topbar nav {
    margin-left: auto;
    margin-right: 28px;
}

.dashboard-page .topbar nav a {
    padding: 9px 13px;
    border-radius: 999px;
    transition: background .2s ease, color .2s ease;
}

.dashboard-page .topbar nav a:hover {
    background: #f0f0ee;
}


/* ---------- MAIN ---------- */

.dashboard {
    width: min(1320px, 90%);
    margin: 0 auto;
    padding: 72px 0 100px;
}


/* ---------- HEADER ---------- */

.dashboard-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 50px;
    margin-bottom: 55px;
}

.dashboard-header h1 {
    margin: 14px 0 20px;
    font-size: clamp(46px, 6vw, 76px);
    line-height: .94;
    letter-spacing: -4px;
    font-weight: 800;
}

.dashboard-header p {
    max-width: 560px;
    margin: 0;
    color: #777;
    font-size: 17px;
    line-height: 1.6;
}

.dashboard-header .primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    margin: 0;
    background: #111;
    color: white;
    padding: 14px 22px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    transition: transform .2s ease, background .2s ease;
}

.dashboard-header .primary-button:hover {
    background: #292929;
    transform: translateY(-2px);
}


/* ---------- STATS ---------- */

.dashboard-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 75px;
}

.dashboard-stat {
    min-height: 145px;
    padding: 25px;
    background: white;
    border: 1px solid #e4e4e1;
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform .2s ease, box-shadow .2s ease;
}

.dashboard-stat:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 35px rgba(0,0,0,.05);
}

.dashboard-stat span {
    color: #999;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.dashboard-stat strong {
    font-size: 46px;
    line-height: 1;
    letter-spacing: -2px;
}


/* ---------- SECTION ---------- */

.dashboard-section {
    margin-bottom: 70px;
}

.dashboard-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 25px;
}

.dashboard-section-heading h2 {
    margin: 9px 0 0;
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1;
    letter-spacing: -2px;
}

.dashboard-muted {
    color: #777;
    font-size: 13px;
}


/* ---------- EVENT ---------- */

.dashboard-event {
    display: grid;
    grid-template-columns: 250px 1fr auto;
    min-height: 220px;
    overflow: hidden;
    background: white;
    border: 1px solid #e2e2df;
    border-radius: 22px;
    transition: box-shadow .25s ease, transform .25s ease;
}

.dashboard-event:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 45px rgba(0,0,0,.07);
}

.dashboard-event-cover {
    position: relative;
    min-height: 220px;
    background:
        linear-gradient(
            135deg,
            #171717,
            #3a3a3a
        );
    display: grid;
    place-items: center;
}

.dashboard-folder-icon {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.14);
    display: grid;
    place-items: center;
    font-size: 31px;
    filter: grayscale(1);
}

.dashboard-event-info {
    padding: 35px 35px 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dashboard-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    color: #555;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.4px;
    margin-bottom: 12px;
}

.dashboard-status::first-letter {
    color: #111;
}

.dashboard-event-info h3 {
    margin: 0 0 9px;
    font-size: 29px;
    letter-spacing: -1px;
}

.dashboard-event-info p {
    margin: 0 0 18px;
    color: #888;
    font-size: 14px;
}

.dashboard-event-meta {
    display: flex;
    gap: 8px;
    color: #777;
    font-size: 12px;
}

.dashboard-event-action {
    padding: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dashboard-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dcdcd8;
    background: white;
    color: #111;
    padding: 12px 19px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.dashboard-button:hover:not(:disabled) {
    background: #111;
    color: white;
    border-color: #111;
}


/* ---------- EMPTY / NEXT EVENT ---------- */

.dashboard-empty-section {
    padding: 45px;
    border: 1px dashed #d7d7d3;
    border-radius: 22px;
    background: rgba(255,255,255,.45);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
}

.dashboard-empty-section h2 {
    margin: 10px 0 12px;
    font-size: 31px;
    letter-spacing: -1px;
}

.dashboard-empty-section p {
    max-width: 650px;
    margin: 0;
    color: #777;
    line-height: 1.6;
    font-size: 14px;
}

.dashboard-empty-section .dashboard-button {
    flex-shrink: 0;
    background: #111;
    color: white;
    border-color: #111;
}

.dashboard-empty-section .dashboard-button:disabled {
    opacity: .45;
    cursor: not-allowed;
}


/* ---------- FOOTER ---------- */

.dashboard-page footer {
    background: #fff;
}


/* ---------- RESPONSIVE ---------- */

@media (max-width: 1000px) {

    .dashboard {
        width: min(92%, 760px);
        padding-top: 55px;
    }

    .dashboard-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 25px;
    }

    .dashboard-header h1 {
        font-size: clamp(46px, 9vw, 68px);
    }

    .dashboard-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .dashboard-event {
        grid-template-columns: 190px 1fr;
    }

    .dashboard-event-action {
        grid-column: 1 / -1;
        justify-content: flex-start;
        padding: 0 30px 30px;
    }
}


@media (max-width: 650px) {

    .dashboard {
        width: 92%;
        padding: 42px 0 70px;
    }

    .dashboard-page .topbar {
        padding: 0 4%;
    }

    .dashboard-page .login-button {
        padding: 9px 13px;
        font-size: 12px;
    }

    .dashboard-header {
        margin-bottom: 40px;
    }

    .dashboard-header h1 {
        font-size: 48px;
        letter-spacing: -3px;
    }

    .dashboard-header p {
        font-size: 15px;
    }

    .dashboard-stats {
        gap: 10px;
        margin-bottom: 55px;
    }

    .dashboard-stat {
        min-height: 120px;
        padding: 20px;
    }

    .dashboard-stat strong {
        font-size: 37px;
    }

    .dashboard-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .dashboard-event {
        display: block;
    }

    .dashboard-event-cover {
        min-height: 150px;
    }

    .dashboard-event-info {
        padding: 25px;
    }

    .dashboard-event-info h3 {
        font-size: 25px;
    }

    .dashboard-event-action {
        padding: 0 25px 25px;
    }

    .dashboard-empty-section {
        padding: 30px 25px;
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-empty-section h2 {
        font-size: 27px;
    }
}


/* ---------- PRIVATE NAV ---------- */

.private-nav {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    margin-right: 22px;
}

.private-nav a {
    padding: 9px 13px;
    border-radius: 999px;
    color: #666;
    font-size: 13px;
    font-weight: 600;
    transition:
        background .2s ease,
        color .2s ease;
}

.private-nav a:hover {
    background: #f0f0ee;
    color: #111;
}

.private-nav a.active {
    background: #111;
    color: #fff;
}

.cart-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.cart-nav-count {
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

.private-nav a.active .cart-nav-count {
    background: #fff;
    color: #111;
}


/* ============================================================
   PROFILE
   ============================================================ */

.profile-page {
    min-height: 100vh;
}

.profile-container {
    width: min(100% - 40px, 980px);
    margin: 0 auto;
    padding: 72px 0 100px;
}

.profile-header {
    margin-bottom: 48px;
}

.profile-header h1 {
    margin: 12px 0 16px;
    font-size: clamp(42px, 6vw, 68px);
    line-height: .95;
    letter-spacing: -0.04em;
}

.profile-header p {
    max-width: 650px;
    margin: 0;
    font-size: 18px;
    line-height: 1.6;
    opacity: .72;
}

.profile-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.profile-section {
    padding: 34px;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 20px;
    background: rgba(255, 255, 255, .72);
}

.profile-section-heading {
    margin-bottom: 30px;
}

.profile-section-heading h2 {
    margin: 8px 0 8px;
    font-size: 28px;
    letter-spacing: -0.025em;
}

.profile-section-heading p {
    margin: 0;
    max-width: 650px;
    line-height: 1.55;
    opacity: .65;
}

.profile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.profile-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.profile-field-full {
    grid-column: 1 / -1;
}

.profile-field > span {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
}

.profile-field input,
.profile-field select,
.profile-field textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    border: 1px solid rgba(0, 0, 0, .14);
    border-radius: 12px;
    background: #fff;
    color: inherit;
    font: inherit;
    outline: none;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.profile-field textarea {
    resize: vertical;
    min-height: 130px;
}

.profile-field input:focus,
.profile-field select:focus,
.profile-field textarea:focus {
    border-color: rgba(0, 0, 0, .42);
    box-shadow: 0 0 0 3px rgba(0, 0, 0, .06);
}

.profile-field input:disabled {
    opacity: .58;
    cursor: not-allowed;
    background: rgba(0, 0, 0, .035);
}

.profile-field small {
    font-size: 12px;
    line-height: 1.45;
    opacity: .58;
}

.profile-brand-section {
    margin-bottom: 0;
}

.profile-coming-soon {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px;
    border-radius: 14px;
    background: rgba(0, 0, 0, .035);
}

.profile-coming-soon strong {
    font-size: 14px;
}

.profile-coming-soon span {
    font-size: 14px;
    line-height: 1.5;
    opacity: .62;
}

.profile-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 8px 4px;
}

.profile-actions > span {
    font-size: 13px;
    opacity: .58;
}

.profile-actions .primary-button {
    border: 0;
    cursor: pointer;
}


@media (max-width: 700px) {

    .profile-container {
        width: min(100% - 28px, 980px);
        padding: 48px 0 70px;
    }

    .profile-header {
        margin-bottom: 34px;
    }

    .profile-header h1 {
        font-size: 44px;
    }

    .profile-section {
        padding: 24px;
        border-radius: 16px;
    }

    .profile-grid {
        grid-template-columns: 1fr;
    }

    .profile-field-full {
        grid-column: auto;
    }

    .profile-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .profile-actions .primary-button {
        width: 100%;
    }

}


/* =========================================================
   PICARTE — CART
   Premium shopping experience
   ========================================================= */

.cart-page {
    background: #f5f5f3;
    color: #111;
    min-height: 100vh;
}


/* ---------- TOPBAR ---------- */

.cart-page .topbar {
    height: 72px;
    padding: 0 5%;
}

.cart-page .private-nav {
    margin-left: auto;
    margin-right: 22px;
}


/* ---------- MAIN ---------- */

.cart-container {
    width: min(1280px, 90%);
    margin: 0 auto;
    padding: 78px 0 110px;
}


/* ---------- HEADER ---------- */

.cart-header {
    margin-bottom: 48px;
}

.cart-eyebrow {
    display: block;
    margin-bottom: 14px;
    color: #999;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
}

.cart-header h1 {
    margin: 0;
    font-size: clamp(48px, 6vw, 78px);
    line-height: .94;
    letter-spacing: -4px;
    font-weight: 800;
}

.cart-header p {
    margin: 20px 0 0;
    color: #777;
    font-size: 16px;
    line-height: 1.6;
}


/* ---------- LOADING ---------- */

.cart-loading {
    padding: 70px 30px;
    text-align: center;
    color: #888;
}


/* ---------- LAYOUT ---------- */

.cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    align-items: start;
    gap: 28px;
}


/* ---------- ITEMS ---------- */

.cart-items {
    display: flex;
    flex-direction: column;
    gap: 14px;
}


/* ---------- ITEM ---------- */

.cart-item {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) auto;
    min-height: 220px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e2e2df;
    border-radius: 24px;
    box-shadow: 0 10px 35px rgba(0,0,0,.035);
    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.cart-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 45px rgba(0,0,0,.065);
}


/* ---------- IMAGE ---------- */

.cart-item-image {
    position: relative;
    min-height: 220px;
    overflow: hidden;
    background: #171717;
}

.cart-item-image::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.03),
            rgba(0,0,0,.18)
        );
}

.cart-item-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.cart-item:hover .cart-item-image img {
    transform: scale(1.035);
}


/* ---------- INFORMATION ---------- */

.cart-item-info {
    min-width: 0;
    padding: 34px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.cart-item-type {
    display: block;
    margin-bottom: 10px;
    color: #999;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.cart-item-info h2 {
    margin: 0 0 10px;
    font-size: 25px;
    line-height: 1.1;
    letter-spacing: -1px;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.cart-item-info p {
    margin: 0 0 14px;
    color: #555;
    font-size: 14px;
    line-height: 1.5;
}

.cart-item-seller {
    color: #999;
    font-size: 12px;
}


/* ---------- PRICE ---------- */

.cart-item-price {
    min-width: 120px;
    padding: 34px 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    gap: 7px;
    border-left: 1px solid #eeeeeb;
}

.cart-item-price span {
    color: #999;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.cart-item-price strong {
    font-size: 17px;
    letter-spacing: -.4px;
}

.cart-item-price strong:last-child {
    margin-top: 7px;
    font-size: 22px;
    letter-spacing: -.8px;
}


/* ---------- SUMMARY ---------- */

.cart-summary {
    position: sticky;
    top: 94px;
    padding: 30px;
    background: #111;
    color: white;
    border-radius: 26px;
    box-shadow: 0 20px 55px rgba(0,0,0,.13);
}

.cart-summary-label {
    display: block;
    margin-bottom: 28px;
    color: #999;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.cart-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,.12);
    color: #aaa;
    font-size: 14px;
}

.cart-summary-row strong {
    color: white;
    font-size: 15px;
}

.cart-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    padding: 25px 0 28px;
}

.cart-summary-total span {
    color: #aaa;
    font-size: 14px;
}

.cart-summary-total strong {
    color: white;
    font-size: 30px;
    line-height: 1;
    letter-spacing: -1.5px;
}


/* ---------- CHECKOUT ---------- */

.cart-checkout-button {
    width: 100%;
    min-height: 54px;
    margin: 0;
    border: 0;
    background: white;
    color: #111;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition:
        transform .2s ease,
        background .2s ease,
        opacity .2s ease;
}

.cart-checkout-button:hover:not(:disabled) {
    background: #f1f1ef;
    transform: translateY(-2px);
}

.cart-checkout-button:disabled {
    opacity: .48;
    cursor: not-allowed;
}

.cart-checkout-note {
    margin: 17px 0 0;
    color: #777;
    font-size: 11px;
    line-height: 1.5;
    text-align: center;
}


/* ---------- EMPTY ---------- */

.cart-empty {
    padding: 90px 35px;
    text-align: center;
    background: white;
    border: 1px solid #e2e2df;
    border-radius: 26px;
}

.cart-empty h2 {
    margin: 0 0 12px;
    font-size: 34px;
    letter-spacing: -1.5px;
}

.cart-empty p {
    max-width: 480px;
    margin: 0 auto 25px;
    color: #777;
    font-size: 15px;
    line-height: 1.6;
}

.cart-empty .primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    background: #111;
    color: white;
    padding: 14px 22px;
    font-weight: 700;
}


/* ---------- RESPONSIVE ---------- */

@media (max-width: 1050px) {

    .cart-layout {
        grid-template-columns: minmax(0, 1fr) 320px;
    }

    .cart-item {
        grid-template-columns: 180px minmax(0, 1fr);
    }

    .cart-item-price {
        grid-column: 1 / -1;
        min-width: 0;
        padding: 18px 25px 22px;
        flex-direction: row;
        justify-content: flex-end;
        align-items: center;
        gap: 12px;
        border-left: 0;
        border-top: 1px solid #eeeeeb;
    }

    .cart-item-price strong:last-child {
        margin-top: 0;
    }
}


@media (max-width: 800px) {

    .cart-container {
        width: 92%;
        padding: 55px 0 75px;
    }

    .cart-page .topbar {
        padding: 0 4%;
    }

    .cart-layout {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .cart-summary {
        position: static;
    }

    .cart-header {
        margin-bottom: 35px;
    }

    .cart-header h1 {
        font-size: 52px;
        letter-spacing: -3px;
    }

    .cart-item {
        grid-template-columns: 145px minmax(0, 1fr);
        border-radius: 20px;
    }

    .cart-item-image {
        min-height: 180px;
    }

    .cart-item-info {
        padding: 24px 22px;
    }

    .cart-item-info h2 {
        font-size: 21px;
    }

    .cart-item-price {
        grid-column: 1 / -1;
    }
}


@media (max-width: 560px) {

    .cart-container {
        width: 94%;
        padding-top: 42px;
    }

    .cart-header h1 {
        font-size: 45px;
        letter-spacing: -2.5px;
    }

    .cart-header p {
        font-size: 14px;
    }

    .cart-item {
        display: block;
    }

    .cart-item-image {
        height: 280px;
        min-height: 0;
    }

    .cart-item-info {
        padding: 24px;
    }

    .cart-item-price {
        padding: 18px 24px 22px;
        justify-content: space-between;
    }

    .cart-summary {
        padding: 25px;
        border-radius: 22px;
    }

    .cart-summary-total strong {
        font-size: 27px;
    }
}


/* =========================================================
   PICARTE — CHECKOUT
   ========================================================= */

.checkout-page {
    min-height: 100vh;
    background: #f6f6f3;
    color: #171717;
}

.checkout-container {
    width: min(1180px, 92%);
    margin: 0 auto;
    padding: 72px 0 90px;
}

.checkout-header {
    margin-bottom: 42px;
}

.checkout-header h1 {
    margin: 0;
    font-size: clamp(42px, 6vw, 76px);
    line-height: .95;
    letter-spacing: -4px;
    font-weight: 800;
    color: #111;
}

.checkout-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: #777;
}

.checkout-header p {
    margin: 18px 0 0;
    max-width: 620px;
    font-size: 17px;
    line-height: 1.6;
    color: #666;
}

.checkout-content {
    min-height: 220px;
}

.checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 28px;
    align-items: start;
}

.checkout-main {
    min-width: 0;
}

.checkout-card {
    background: #fff;
    border: 1px solid #e6e6e1;
    border-radius: 26px;
    overflow: hidden;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .04);
}

.checkout-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 25px 28px;
    border-bottom: 1px solid #eeeeeb;
}

.checkout-card-eyebrow {
    display: block;
    margin-bottom: 5px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #8a8a85;
}

.checkout-card-header strong {
    font-size: 15px;
    font-weight: 800;
}

.checkout-status {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #f3f3ef;
    color: #555;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
    white-space: nowrap;
}

.checkout-items {
    display: flex;
    flex-direction: column;
}

.checkout-item {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) auto;
    gap: 24px;
    align-items: stretch;
    padding: 24px;
    border-bottom: 1px solid #eeeeeb;
}

.checkout-item:last-child {
    border-bottom: 0;
}

.checkout-item-image {
    min-width: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 18px;
    background: #ededeb;
}

.checkout-item-image a {
    display: block;
    width: 100%;
    height: 100%;
}

.checkout-item-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.checkout-item-info {
    min-width: 0;
    padding: 5px 0;
}

.checkout-item-type {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #8a8a85;
}

.checkout-item-info h2 {
    margin: 0 0 10px;
    font-size: 23px;
    line-height: 1.15;
    letter-spacing: -.7px;
    font-weight: 800;
    color: #171717;
    overflow-wrap: anywhere;
}

.checkout-item-info p {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 1.45;
    color: #666;
}

.checkout-item-seller {
    display: block;
    margin-top: 14px;
    font-size: 13px;
    color: #777;
}

.checkout-item-price {
    min-width: 115px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 7px;
    padding: 5px 0;
    text-align: right;
}

.checkout-item-price span {
    font-size: 12px;
    color: #888;
}

.checkout-item-price strong {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.4px;
    color: #151515;
}

.checkout-security {
    display: flex;
    align-items: flex-start;
    gap: 17px;
    margin-top: 20px;
    padding: 23px 26px;
}

.checkout-security-icon {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f0f0ec;
    color: #222;
    font-size: 18px;
    font-weight: 800;
}

.checkout-security h3 {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 800;
    color: #222;
}

.checkout-security p {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: #777;
}

.checkout-summary {
    position: sticky;
    top: 25px;
    background: #171717;
    color: #fff;
    border-radius: 26px;
    padding: 30px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .12);
}

.checkout-summary-label {
    display: block;
    margin-bottom: 25px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #aaa;
}

.checkout-summary-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 13px 0;
    border-bottom: 1px solid rgba(255,255,255,.1);
    font-size: 14px;
    color: #bdbdbd;
}

.checkout-summary-row strong {
    color: #fff;
    font-weight: 700;
}

.checkout-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    padding: 22px 0 25px;
}

.checkout-summary-total span {
    font-size: 13px;
    color: #aaa;
}

.checkout-summary-total strong {
    font-size: 31px;
    line-height: 1;
    letter-spacing: -1px;
    font-weight: 800;
    color: #fff;
}

.checkout-payment-methods {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #eeeeeb;
}

.checkout-payment-methods-header {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 14px;
}

.checkout-payment-label {
    font-size: 13px;
    font-weight: 800;
    color: #222;
}

.checkout-payment-helper {
    font-size: 12px;
    color: #777;
}

.checkout-payment-option {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 10px;
    padding: 15px 16px;
    border: 1px solid #e4e4df;
    border-radius: 16px;
    background: #fff;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease;
}

.checkout-payment-option:hover {
    border-color: #cfcfc9;
}

.checkout-payment-option.selected {
    border-color: #171717;
    background: #f7f7f4;
}

.checkout-payment-option input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: #171717;
}

.checkout-payment-option-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.checkout-payment-option-content strong {
    font-size: 14px;
    line-height: 1.35;
    color: #171717;
}

.checkout-payment-option-content small {
    font-size: 12px;
    line-height: 1.45;
    color: #777;
}

.checkout-payment-success {
    max-width: 720px;
    margin: 40px auto 0;
    padding: 48px;
    background: #fff;
    border: 1px solid #e6e6e1;
    border-radius: 26px;
    text-align: center;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .04);
}

.checkout-payment-success-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 24px;
    border-radius: 50%;
    background: #f3f3ef;
    color: #171717;
    font-size: 28px;
    font-weight: 800;
}

.checkout-payment-success h2 {
    margin: 10px 0 16px;
    font-size: clamp(30px, 5vw, 48px);
    line-height: 1;
    letter-spacing: -2px;
    color: #111;
}

.checkout-payment-success p {
    max-width: 580px;
    margin: 10px auto;
    font-size: 16px;
    line-height: 1.6;
    color: #666;
}

.checkout-payment-success-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 30px;
}

.checkout-pay-button {
    width: 100%;
    min-height: 54px;
    border: 0;
    border-radius: 15px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 800;
}

.checkout-pay-button:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.checkout-payment-note {
    margin: 14px 0 0;
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
    color: #999;
}

.checkout-back-link {
    display: inline-flex;
    margin-top: 22px;
    color: #aaa;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.checkout-back-link:hover {
    color: #fff;
}

.checkout-loading,
.checkout-empty {
    padding: 55px 25px;
    text-align: center;
    color: #777;
}


/* =========================================================
   CHECKOUT — TABLET
   ========================================================= */

@media (max-width: 900px) {

    .checkout-container {
        width: 92%;
        padding: 55px 0 70px;
    }

    .checkout-layout {
        grid-template-columns: 1fr;
    }

    .checkout-summary {
        position: static;
    }
}


/* =========================================================
   CHECKOUT — MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .checkout-container {
        width: 94%;
        padding: 42px 0 60px;
    }

    .checkout-header {
        margin-bottom: 30px;
    }

    .checkout-header h1 {
        font-size: 45px;
        letter-spacing: -2.5px;
    }

    .checkout-header p {
        font-size: 14px;
    }

    .checkout-card-header {
        padding: 21px;
    }

    .checkout-item {
        grid-template-columns: 1fr;
        gap: 17px;
        padding: 20px;
    }

    .checkout-item-image {
        aspect-ratio: 16 / 10;
    }

    .checkout-item-info h2 {
        font-size: 21px;
    }

    .checkout-item-price {
        min-width: 0;
        padding: 16px 0 0;
        border-top: 1px solid #eeeeeb;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        text-align: left;
    }

    .checkout-security {
        padding: 21px;
    }

    .checkout-summary {
        padding: 25px;
        border-radius: 22px;
    }

    .checkout-summary-total strong {
        font-size: 28px;
    }

    .checkout-payment-success {
        margin-top: 20px;
        padding: 32px 22px;
        border-radius: 22px;
    }

    .checkout-payment-success h2 {
        letter-spacing: -1.2px;
    }

    .checkout-payment-success-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .checkout-payment-success-actions .primary-button {
        width: 100%;
        text-align: center;
    }

}


/* ============================================================
   PICARTE HOME V2
   ============================================================ */

.home-page {
    background: #f7f7f4;
    color: #111;
}

.home-page .home-topbar {
    position: relative;
    z-index: 20;
    display: flex;
    align-items: center;
    min-height: 72px;
    padding: 0 5%;
    border-bottom: 1px solid #e7e7e2;
    background: rgba(247, 247, 244, .94);
    backdrop-filter: blur(12px);
}

.home-brand a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #111;
    text-decoration: none;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.home-nav {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-left: auto;
    margin-right: 18px;
}

.home-nav a {
    padding: 9px 13px;
    border-radius: 999px;
    color: #666;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}

.home-nav a:hover {
    background: #ededeb;
    color: #111;
}

.home-login-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 17px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
}

.fm-hero {
    overflow: hidden;
    padding: 72px 5% 84px;
    background: #f7f7f4;
}

.fm-hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
    gap: 70px;
    align-items: center;
    max-width: 1320px;
    margin: 0 auto;
}

.fm-eyebrow {
    display: inline-block;
    color: #777;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
}

.fm-hero h1 {
    max-width: 720px;
    margin: 18px 0 22px;
    font-size: clamp(48px, 6vw, 82px);
    line-height: .95;
    letter-spacing: -.065em;
}

.fm-hero h1 span {
    display: block;
    color: #777;
}

.fm-hero-copy > p {
    max-width: 610px;
    margin: 0;
    color: #666;
    font-size: 17px;
    line-height: 1.65;
}

.fm-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.fm-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 21px;
    border-radius: 999px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
}

.fm-button-primary {
    background: #111;
    color: #fff;
}

.fm-button-primary:hover {
    background: #292929;
}

.fm-button-secondary {
    border: 1px solid #d9d9d4;
    background: #fff;
    color: #111;
}

.fm-button-secondary:hover {
    border-color: #111;
}

.fm-search {
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 610px;
    margin-top: 26px;
    padding: 0 17px;
    border: 1px solid #deded8;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .04);
}

.fm-search-icon {
    color: #888;
    font-size: 24px;
}

.fm-search input {
    width: 100%;
    height: 56px;
    border: 0;
    outline: 0;
    background: transparent;
    color: #111;
    font: inherit;
    font-size: 14px;
}

.fm-hero-visual {
    min-height: 520px;
}

.fm-hero-photo {
    position: relative;
    height: 520px;
    overflow: hidden;
    border-radius: 26px;
    background: #ddd;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .13);
}

.fm-hero-photo::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, .72),
        rgba(0, 0, 0, 0) 55%
    );
}

.fm-hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fm-hero-photo-info {
    position: absolute;
    right: 28px;
    bottom: 25px;
    left: 28px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #fff;
}

.fm-hero-photo-info span {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .78;
}

.fm-hero-photo-info strong {
    max-width: 500px;
    font-size: 27px;
    line-height: 1.05;
    letter-spacing: -.04em;
}

.fm-hero-photo-info small {
    font-size: 12px;
    opacity: .8;
}

.fm-hero-placeholder,
.fm-event-image-placeholder {
    display: grid;
    place-items: center;
    height: 100%;
    background: #e5e5e0;
}

.fm-hero-placeholder img,
.fm-event-image-placeholder img {
    width: 96px;
    height: 96px;
    object-fit: contain;
    opacity: .12;
}

.fm-events-section {
    padding: 82px 5%;
    background: #fff;
}

.fm-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    max-width: 1320px;
    margin: 0 auto 32px;
}

.fm-section-heading h2 {
    margin: 9px 0 8px;
    font-size: clamp(32px, 4vw, 50px);
    line-height: 1;
    letter-spacing: -.055em;
}

.fm-section-heading p {
    max-width: 580px;
    margin: 0;
    color: #777;
    font-size: 14px;
    line-height: 1.6;
}

.fm-event-count {
    color: #888;
    font-size: 12px;
    font-weight: 700;
}

.fm-event-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    max-width: 1320px;
    margin: 0 auto;
}

.fm-event-card {
    overflow: hidden;
    border: 1px solid #e8e8e3;
    border-radius: 18px;
    background: #fff;
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.fm-event-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(0, 0, 0, .08);
}

.fm-event-image {
    position: relative;
    display: block;
    height: 280px;
    overflow: hidden;
    background: #e5e5e0;
}

.fm-event-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.fm-event-card:hover .fm-event-image img {
    transform: scale(1.035);
}

.fm-event-category {
    position: absolute;
    top: 15px;
    left: 15px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: #111;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fm-event-info {
    padding: 22px;
}

.fm-event-date {
    color: #999;
    font-size: 11px;
    font-weight: 700;
}

.fm-event-info h3 {
    margin: 8px 0 9px;
    font-size: 21px;
    line-height: 1.1;
    letter-spacing: -.035em;
}

.fm-event-info h3 a {
    color: #111;
    text-decoration: none;
}

.fm-event-location {
    margin: 0;
    color: #777;
    font-size: 12px;
}

.fm-event-meta {
    display: flex;
    gap: 7px;
    margin-top: 15px;
    color: #888;
    font-size: 11px;
}

.fm-event-link {
    display: inline-block;
    margin-top: 19px;
    color: #111;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
}

.fm-event-link:hover {
    text-decoration: underline;
}

.fm-empty-search {
    display: none;
    max-width: 1320px;
    margin: 30px auto 0;
    padding: 35px;
    border: 1px dashed #d8d8d2;
    border-radius: 16px;
    color: #777;
    text-align: center;
}

.fm-how {
    padding: 90px 5%;
    background: #f7f7f4;
}

.fm-how-heading {
    max-width: 1320px;
    margin: 0 auto 48px;
}

.fm-how-heading h2 {
    margin: 10px 0 10px;
    font-size: clamp(35px, 4vw, 54px);
    letter-spacing: -.055em;
}

.fm-how-heading p {
    max-width: 560px;
    margin: 0;
    color: #777;
    font-size: 14px;
    line-height: 1.6;
}

.fm-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    max-width: 1320px;
    margin: 0 auto;
    border: 1px solid #deded9;
    background: #deded9;
}

.fm-step {
    min-height: 220px;
    padding: 30px;
    background: #f7f7f4;
}

.fm-step-number {
    color: #999;
    font-size: 11px;
    font-weight: 800;
}

.fm-step h3 {
    margin: 42px 0 10px;
    font-size: 20px;
    letter-spacing: -.03em;
}

.fm-step p {
    max-width: 300px;
    margin: 0;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}

.fm-photographer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    align-items: center;
    padding: 100px 5%;
    background: #111;
    color: #fff;
}

.fm-photographer-copy {
    max-width: 650px;
    margin-left: auto;
}

.fm-photographer .fm-eyebrow {
    color: #999;
}

.fm-photographer h2 {
    margin: 17px 0 22px;
    font-size: clamp(42px, 5vw, 68px);
    line-height: .94;
    letter-spacing: -.065em;
}

.fm-photographer-copy p {
    max-width: 560px;
    margin: 0;
    color: #aaa;
    font-size: 15px;
    line-height: 1.7;
}

.fm-button-light {
    margin-top: 28px;
    background: #fff;
    color: #111;
}

.fm-photographer-panel {
    display: flex;
    flex-direction: column;
    max-width: 470px;
    padding: 38px;
    border: 1px solid #303030;
    border-radius: 22px;
    background: #181818;
}

.fm-panel-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin-bottom: 70px;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.fm-panel-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.fm-photographer-panel strong {
    font-size: 27px;
    letter-spacing: -.04em;
}

.fm-photographer-panel > span {
    margin-top: 8px;
    color: #999;
    font-size: 13px;
}

.fm-panel-line {
    height: 1px;
    margin: 30px 0 18px;
    background: #303030;
}

.fm-final-cta {
    padding: 110px 5%;
    background: #fff;
    text-align: center;
}

.fm-final-cta h2 {
    margin: 16px auto;
    font-size: clamp(42px, 5vw, 70px);
    line-height: .95;
    letter-spacing: -.065em;
}

.fm-final-cta h2 span {
    display: block;
    color: #888;
}

.fm-final-cta p {
    max-width: 520px;
    margin: 0 auto;
    color: #777;
    font-size: 14px;
    line-height: 1.6;
}

.fm-final-cta .fm-button {
    margin-top: 28px;
}

.fm-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 28px 5%;
    border-top: 1px solid #e4e4df;
    background: #fff;
    color: #888;
    font-size: 11px;
}

.fm-footer div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fm-footer strong {
    color: #111;
    font-size: 14px;
}

@media (max-width: 900px) {

    .home-nav {
        display: none;
    }

    .fm-hero-inner {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .fm-hero-visual,
    .fm-hero-photo {
        min-height: 420px;
        height: 420px;
    }

    .fm-event-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fm-photographer {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .fm-photographer-copy {
        margin-left: 0;
    }

}

@media (max-width: 640px) {

    .pic-clubs-p-mark {
        width: 72px;
        height: 72px;
        flex-basis: 72px;
        border-radius: 21px;
    }

    .pic-clubs-p-mark img {
        width: 49px;
        height: 49px;
    }


    .home-page .home-topbar {
        padding: 0 18px;
    }

    .home-login-button {
        min-height: 37px;
        padding: 0 13px;
    }

    .fm-hero {
        padding: 52px 18px 60px;
    }

    .fm-hero h1 {
        font-size: 50px;
    }

    .fm-hero-copy > p {
        font-size: 15px;
    }

    .fm-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .fm-button {
        width: 100%;
    }

    .fm-hero-visual,
    .fm-hero-photo {
        min-height: 360px;
        height: 360px;
    }

    .fm-events-section,
    .fm-how,
    .fm-photographer {
        padding-right: 18px;
        padding-left: 18px;
    }

    .fm-section-heading {
        display: block;
    }

    .fm-event-count {
        display: inline-block;
        margin-top: 15px;
    }

    .fm-event-grid {
        grid-template-columns: 1fr;
    }

    .fm-event-image {
        height: 280px;
    }

    .fm-steps {
        grid-template-columns: 1fr;
    }

    .fm-step {
        min-height: auto;
    }

    .fm-step h3 {
        margin-top: 25px;
    }

    .fm-photographer {
        padding-top: 75px;
        padding-bottom: 75px;
    }

    .fm-photographer-panel {
        padding: 28px;
    }

    .fm-final-cta {
        padding: 80px 18px;
    }

    .fm-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        padding: 25px 18px;
    }

}

/* =========================================================
   PICARTE — PROFILE / BUYER DASHBOARD
   ========================================================= */

.profile-dashboard {
    padding-top: 72px;
}

.profile-stat-link {
    color: inherit;
    text-decoration: none;
}

.profile-favorites-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.profile-favorite-card {
    display: block;
    overflow: hidden;
    background: white;
    border: 1px solid #e2e2df;
    border-radius: 20px;
    color: inherit;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.profile-favorite-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 40px rgba(0,0,0,.07);
}

.profile-favorite-image {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #e8e8e5;
}

.profile-favorite-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.profile-favorite-heart {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    display: grid;
    place-items: center;
    font-size: 17px;
}

.profile-favorite-info {
    padding: 17px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.profile-favorite-info strong {
    font-size: 14px;
}

.profile-favorite-info span {
    color: #555;
    font-size: 13px;
    line-height: 1.4;
}

.profile-favorite-info small {
    color: #999;
    font-size: 11px;
}

.profile-orders-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.profile-order-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 22px 25px;
    background: white;
    border: 1px solid #e2e2df;
    border-radius: 18px;
    color: inherit;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.profile-order-row:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 35px rgba(0,0,0,.06);
}

.profile-order-row > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.profile-order-row > div:last-child {
    text-align: right;
}

.profile-order-row span {
    color: #888;
    font-size: 12px;
}

.profile-dashboard .profile-form {
    width: 100%;
}

.profile-dashboard .profile-section {
    margin: 0;
}

@media (max-width: 1000px) {

    .profile-favorites-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width: 650px) {

    .profile-dashboard {
        padding-top: 42px;
    }

    .profile-favorites-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .profile-favorite-info {
        padding: 13px;
    }

    .profile-favorite-info span {
        font-size: 12px;
    }

    .profile-order-row {
        align-items: flex-start;
        flex-direction: column;
        padding: 20px;
    }

    .profile-order-row > div:last-child {
        text-align: left;
    }

}


/* =========================================================
   PICARTE — FAVORITES LIBRARY
   ========================================================= */

/* =========================================================
   PICARTE — FAVORITES LIBRARY
   ========================================================= */

.favorites-dashboard {
    width: min(1400px, calc(100% - 40px));
    margin: 0 auto;
    padding: 76px 0 100px;
}

.favorites-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 42px;
}

.favorites-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: #888;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.6px;
}

.favorites-header h1 {
    margin: 0 0 12px;
    font-size: clamp(42px, 5vw, 68px);
    line-height: .95;
    letter-spacing: -0.045em;
}

.favorites-header p {
    max-width: 620px;
    margin: 0;
    color: #777;
    font-size: 16px;
    line-height: 1.6;
}

.favorites-count {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding-bottom: 7px;
    color: #777;
    font-size: 13px;
}

.favorites-count strong {
    color: #111;
    font-size: 26px;
    letter-spacing: -.03em;
}

.favorites-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.favorite-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #e2e2df;
    border-radius: 20px;
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.favorite-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(0,0,0,.08);
}

.favorite-card-image {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #e8e8e5;
}

.favorite-card-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    user-select: none;
}

.favorite-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.94);
    color: #111;
    font-size: 11px;
    font-weight: 700;
    box-shadow: 0 4px 15px rgba(0,0,0,.08);
}

.favorite-card-content {
    padding: 18px;
}

.favorite-card-event {
    margin-bottom: 6px;
    overflow: hidden;
    color: #777;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.favorite-card h2 {
    margin: 0 0 10px;
    overflow: hidden;
    color: #111;
    font-size: 15px;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.favorite-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 12px;
    margin-bottom: 17px;
    color: #888;
    font-size: 12px;
}

.favorite-card-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 15px;
}

.favorite-card-price {
    display: flex;
    flex-direction: column;
    color: #111;
    font-size: 17px;
    font-weight: 800;
}

.favorite-card-price small {
    margin-top: 3px;
    color: #999;
    font-size: 10px;
    font-weight: 500;
}

.favorite-card-date {
    color: #aaa;
    font-size: 10px;
    text-align: right;
}

.favorite-card-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.favorite-action {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.favorite-action-secondary {
    border: 1px solid #dcdcd8;
    background: #fff;
    color: #111;
}

.favorite-action-secondary:hover {
    background: #f5f5f3;
}

.favorite-action-primary {
    border: 1px solid #111;
    background: #111;
    color: #fff;
}

.favorite-action-primary:hover {
    background: #292929;
}

.favorite-action-primary.is-added {
    background: #2d6a4f;
    border-color: #2d6a4f;
}

.favorite-action:disabled {
    opacity: .65;
    cursor: wait;
}

.favorite-remove {
    width: 100%;
    margin-top: 10px;
    padding: 4px 0 0;
    border: 0;
    background: transparent;
    color: #999;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
}

.favorite-remove:hover {
    color: #111;
    text-decoration: underline;
}

.favorite-remove:disabled {
    opacity: .55;
    cursor: wait;
}

.favorites-empty {
    min-height: 420px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 50px 25px;
    border: 1px solid #e2e2df;
    border-radius: 24px;
    background: #fff;
    text-align: center;
}

.favorites-empty-icon {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
    border-radius: 50%;
    background: #f2f2ef;
    color: #555;
    font-size: 32px;
}

.favorites-empty h2 {
    margin: 0 0 10px;
    font-size: 25px;
    letter-spacing: -.025em;
}

.favorites-empty p {
    max-width: 480px;
    margin: 0 0 25px;
    color: #777;
    font-size: 14px;
    line-height: 1.6;
}

.favorites-empty-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 19px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 1100px) {
    .favorites-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .favorites-dashboard {
        padding-top: 52px;
    }

    .favorites-header {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 30px;
    }

    .favorites-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (max-width: 560px) {
    .favorites-dashboard {
        width: min(100% - 24px, 1400px);
        padding: 38px 0 70px;
    }

    .favorites-header h1 {
        font-size: 42px;
    }

    .favorites-header p {
        font-size: 14px;
    }

    .favorites-grid {
        grid-template-columns: 1fr;
    }

    .favorite-card-image {
        aspect-ratio: 4 / 5;
    }
}


/* FOTO MARKET ORDERS PAGE */

.orders-dashboard {
    padding-top: 72px;
    max-width: 1120px;
    margin: 0 auto;
}

.orders-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.orders-eyebrow {
    margin: 0 0 7px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .58;
}

.orders-header h1 {
    margin: 0;
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.05;
}

.orders-description {
    max-width: 650px;
    margin: 10px 0 0;
    opacity: .68;
}

.orders-count {
    min-width: 90px;
    padding: 14px 18px;
    border: 1px solid rgba(127,127,127,.18);
    border-radius: 16px;
    text-align: center;
    background: rgba(127,127,127,.05);
}

.orders-count strong {
    display: block;
    font-size: 25px;
    line-height: 1;
}

.orders-count span {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    opacity: .62;
}

.orders-list {
    display: grid;
    gap: 16px;
}

.order-card {
    overflow: hidden;
    border: 1px solid rgba(127,127,127,.18);
    border-radius: 20px;
    background: var(--surface, #fff);
    box-shadow: 0 8px 28px rgba(0,0,0,.045);
}

.order-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 17px 20px;
    border-bottom: 1px solid rgba(127,127,127,.14);
}

.order-number {
    font-size: 13px;
    font-weight: 750;
}

.order-date {
    margin-left: 10px;
    font-size: 12px;
    opacity: .55;
}

.order-status {
    display: inline-flex;
    align-items: center;
    padding: 7px 11px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}

.order-status-pending .order-status {
    background: rgba(230, 160, 20, .12);
}

.order-status-paid .order-status {
    background: rgba(40, 170, 95, .12);
}

.order-status-cancelled .order-status {
    background: rgba(210, 70, 70, .11);
}

.order-card-main {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    padding: 23px 20px;
}

.order-event {
    min-width: 0;
}

.order-event-title {
    display: inline-block;
    color: inherit;
    text-decoration: none;
    font-size: 20px;
    line-height: 1.25;
    font-weight: 750;
}

a.order-event-title:hover {
    text-decoration: underline;
}

.order-event-location {
    margin: 8px 0 0;
    font-size: 13px;
    opacity: .62;
}

.order-items-count {
    margin: 12px 0 0;
    font-size: 13px;
    font-weight: 650;
}

.order-total {
    flex: 0 0 auto;
    min-width: 150px;
    text-align: right;
}

.order-total span {
    display: block;
    margin-bottom: 5px;
    font-size: 12px;
    opacity: .55;
}

.order-total strong {
    font-size: 20px;
    white-space: nowrap;
}

.order-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 20px;
    border-top: 1px solid rgba(127,127,127,.14);
    background: rgba(127,127,127,.035);
}

.order-footer-note {
    font-size: 13px;
    opacity: .66;
}

.order-footer-success {
    opacity: .9;
}

.order-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 17px;
    border-radius: 10px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 750;
    transition: transform .15s ease, opacity .15s ease;
}

.order-button:hover {
    transform: translateY(-1px);
}

.order-button-primary {
    color: #fff;
    background: #111;
}

.order-button-secondary {
    color: inherit;
    border: 1px solid rgba(127,127,127,.25);
    background: transparent;
}

.orders-empty {
    max-width: 560px;
    margin: 60px auto;
    padding: 48px 28px;
    border: 1px solid rgba(127,127,127,.18);
    border-radius: 22px;
    text-align: center;
    background: rgba(127,127,127,.035);
}

.orders-empty-icon {
    margin-bottom: 15px;
    font-size: 42px;
}

.orders-empty h2 {
    margin: 0;
    font-size: 24px;
}

.orders-empty p {
    margin: 10px auto 22px;
    max-width: 430px;
    opacity: .64;
}

@media (max-width: 720px) {

    .orders-dashboard {
        padding-top: 52px;
    }

    .orders-header {
        align-items: flex-start;
    }

    .orders-count {
        min-width: 72px;
        padding: 11px 12px;
    }

    .order-card-top,
    .order-card-main,
    .order-card-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .order-status {
        align-self: flex-start;
    }

    .order-total {
        min-width: 0;
        text-align: left;
    }

    .order-card-footer .order-button {
        width: 100%;
    }
}

@media (max-width: 520px) {

    .orders-header {
        flex-direction: column;
    }

    .orders-count {
        align-self: flex-start;
    }

    .order-card-top,
    .order-card-main,
    .order-card-footer {
        padding-left: 15px;
        padding-right: 15px;
    }

    .order-date {
        display: block;
        margin: 5px 0 0;
    }
}


/* =========================================================
   PICARTE — PUBLIC SELLER PROFILE
   ========================================================= */

.public-seller-page {
    min-height: 100vh;
}

.public-seller-container {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.public-seller-hero {
    padding: 74px 0 64px;
    border-bottom: 1px solid rgba(127,127,127,.14);
    background:
        radial-gradient(circle at 15% 10%, rgba(111,72,255,.12), transparent 34%),
        radial-gradient(circle at 85% 20%, rgba(111,72,255,.08), transparent 30%);
}

.public-seller-brand {
    display: flex;
    align-items: flex-start;
    gap: 28px;
}

.public-seller-logo {
    width: 112px;
    height: 112px;
    flex: 0 0 112px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 28px;
    background: rgba(127,127,127,.08);
    border: 1px solid rgba(127,127,127,.14);
    box-shadow: 0 18px 45px rgba(0,0,0,.10);
}

.public-seller-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.public-seller-info {
    min-width: 0;
    max-width: 780px;
}

.public-seller-type {
    display: inline-flex;
    align-items: center;
    margin-bottom: 10px;
    padding: 6px 11px;
    border-radius: 999px;
    background: rgba(111,72,255,.10);
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.public-seller-info h1 {
    margin: 0;
    font-size: clamp(34px, 5vw, 58px);
    line-height: .98;
    letter-spacing: -.045em;
}

.public-seller-bio {
    margin: 18px 0 0;
    max-width: 720px;
    font-size: 17px;
    line-height: 1.65;
    opacity: .72;
}

.public-seller-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.public-seller-links a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(127,127,127,.18);
    text-decoration: none;
    font-size: 14px;
    font-weight: 650;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.public-seller-links a:hover {
    transform: translateY(-1px);
    border-color: rgba(111,72,255,.35);
    background: rgba(111,72,255,.06);
}

.public-seller-events {
    padding: 58px 0 80px;
}

.public-seller-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 26px;
}

.public-seller-section-heading h2 {
    margin: 0;
    font-size: clamp(26px, 3vw, 38px);
    letter-spacing: -.03em;
}

.public-seller-section-heading p {
    margin: 7px 0 0;
    opacity: .62;
}

.public-seller-event-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.public-seller-event-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    border: 1px solid rgba(127,127,127,.16);
    border-radius: 22px;
    background: rgba(127,127,127,.035);
    text-decoration: none;
    color: inherit;
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}

.public-seller-event-card:hover {
    transform: translateY(-4px);
    border-color: rgba(111,72,255,.25);
    box-shadow: 0 18px 42px rgba(0,0,0,.10);
}

.public-seller-event-image {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: rgba(127,127,127,.08);
}

.public-seller-event-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}

.public-seller-event-card:hover .public-seller-event-image img {
    transform: scale(1.035);
}

.public-seller-event-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
}

.public-seller-event-placeholder img {
    width: 76px;
    height: 76px;
    object-fit: contain;
    opacity: .16;
}

.public-seller-event-content {
    padding: 19px 19px 21px;
}

.public-seller-event-category {
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
    opacity: .55;
}

.public-seller-event-content h3 {
    margin: 0;
    font-size: 20px;
    line-height: 1.18;
    letter-spacing: -.02em;
}

.public-seller-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 13px;
    margin-top: 14px;
    font-size: 13px;
    opacity: .62;
}

.public-seller-event-meta span {
    display: inline-flex;
    align-items: center;
}

.public-seller-empty {
    padding: 55px 25px;
    border: 1px dashed rgba(127,127,127,.22);
    border-radius: 22px;
    text-align: center;
    background: rgba(127,127,127,.025);
}

.public-seller-empty h3 {
    margin: 0;
    font-size: 24px;
}

.public-seller-empty p {
    max-width: 520px;
    margin: 10px auto 0;
    opacity: .62;
    line-height: 1.6;
}

.public-seller-footer-cta {
    padding: 0 0 70px;
    text-align: center;
}

.public-seller-footer-cta a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 12px;
    background: rgba(111,72,255,.10);
    text-decoration: none;
    font-weight: 700;
}

@media (max-width: 900px) {

    .public-seller-event-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {

    .public-seller-container {
        width: min(100% - 28px, 1180px);
    }

    .public-seller-hero {
        padding: 48px 0 44px;
    }

    .public-seller-brand {
        flex-direction: column;
        gap: 20px;
    }

    .public-seller-logo {
        width: 88px;
        height: 88px;
        flex-basis: 88px;
        border-radius: 22px;
    }

    .public-seller-info h1 {
        font-size: 40px;
    }

    .public-seller-bio {
        font-size: 16px;
    }

    .public-seller-events {
        padding: 42px 0 60px;
    }

    .public-seller-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-seller-event-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}


/* ============================================================
   PERFIL — LOGO DEL VENDEDOR
   ============================================================ */

.profile-logo-upload {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.025);
}

.profile-logo-preview {
    width: 112px;
    height: 112px;
    flex: 0 0 112px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.06);
}

.profile-logo-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.profile-logo-content {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.profile-logo-content strong {
    font-size: 16px;
}

.profile-logo-content > span {
    font-size: 13px;
    opacity: 0.65;
}

.profile-logo-form {
    margin-top: 8px;
}

.profile-upload-button {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.profile-upload-button input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

@media (max-width: 640px) {

    .profile-logo-upload {
        align-items: flex-start;
        flex-direction: column;
    }

}

/* =========================================================
   ORDER DETAIL
   ========================================================= */

.order-detail-dashboard {
    max-width: 1200px;
}

.order-detail-back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 28px;
    color: #777;
    font-size: 13px;
    font-weight: 600;
}

.order-detail-back:hover {
    color: #111;
}

.order-detail-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 28px;
}

.order-detail-eyebrow,
.order-detail-label {
    margin: 0 0 9px;
    color: #888;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.order-detail-header h1 {
    margin: 0;
    font-size: clamp(38px, 5vw, 62px);
    line-height: .96;
    letter-spacing: -0.045em;
}

.order-detail-confirmed,
.order-detail-pending,
.order-detail-cancelled {
    margin: 14px 0 0;
    font-size: 14px;
    font-weight: 700;
}

.order-detail-confirmed {
    color: #34734a;
}

.order-detail-pending {
    color: #8a6a20;
}

.order-detail-cancelled {
    color: #9a4040;
}

.order-detail-date {
    min-width: 180px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #e4e4e1;
    border-radius: 16px;
}

.order-detail-date span {
    display: block;
    margin-bottom: 6px;
    color: #888;
    font-size: 11px;
}

.order-detail-date strong {
    color: #222;
    font-size: 13px;
}

.order-detail-event {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
    padding: 28px 30px;
    background: #fff;
    border: 1px solid #e4e4e1;
    border-radius: 22px;
}

.order-detail-event h2 {
    margin: 0 0 6px;
    font-size: 27px;
    letter-spacing: -0.025em;
}

.order-detail-event p:last-child {
    margin: 0;
    color: #777;
    font-size: 14px;
}

.order-detail-event-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 17px;
    border: 1px solid #ddd;
    border-radius: 12px;
    color: #222;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.order-detail-event-link:hover {
    border-color: #bbb;
    background: #fafafa;
}

.order-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 28px;
    align-items: start;
}

.order-detail-products {
    min-width: 0;
}

.order-detail-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 14px;
}

.order-detail-section-heading h2 {
    margin: 0;
    font-size: 25px;
    letter-spacing: -0.025em;
}

.order-detail-section-heading > span {
    color: #888;
    font-size: 13px;
    font-weight: 600;
}

.order-photo-card {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 24px;
    margin-bottom: 16px;
    padding: 16px;
    background: #fff;
    border: 1px solid #e4e4e1;
    border-radius: 20px;
    overflow: hidden;
}

.order-photo-preview {
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: 13px;
    background: #eee;
}

.order-photo-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.order-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #999;
    font-size: 12px;
}

.order-photo-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.order-photo-type {
    margin: 0 0 7px;
    color: #888;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.order-photo-info h3 {
    margin: 0;
    color: #222;
    font-size: 16px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.order-photo-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 18px;
    color: #777;
    font-size: 13px;
}

.order-photo-meta strong {
    color: #222;
    font-size: 14px;
}

.order-download-area {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 20px;
    padding-top: 17px;
    border-top: 1px solid #eee;
}

.order-download-label {
    color: #34734a;
    font-size: 13px;
    font-weight: 800;
}

.order-download-note {
    color: #888;
    font-size: 12px;
    line-height: 1.5;
}

.order-detail-summary {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.order-summary-card,
.order-payment-card {
    padding: 25px;
    background: #fff;
    border: 1px solid #e4e4e1;
    border-radius: 20px;
}

.order-summary-card h2,
.order-payment-card h2 {
    margin: 0 0 22px;
    font-size: 23px;
    letter-spacing: -0.025em;
}

.order-summary-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 11px 0;
    color: #777;
    font-size: 13px;
}

.order-summary-row strong {
    color: #222;
}

.order-summary-total {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 10px;
    padding-top: 17px;
    border-top: 1px solid #e7e7e4;
}

.order-summary-total span {
    font-size: 14px;
    font-weight: 700;
}

.order-summary-total strong {
    font-size: 19px;
}

.order-payment-card h2 {
    margin-bottom: 14px;
    font-size: 18px;
}

.order-payment-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 7px 10px;
    border-radius: 999px;
    background: #f1f1ef;
    color: #666;
    font-size: 11px;
    font-weight: 800;
}

.order-payment-status.approved {
    background: #edf6ef;
    color: #34734a;
}

.order-payment-status.submitted,
.order-payment-status.review {
    background: #f7f2e5;
    color: #80641f;
}

.order-payment-status.rejected {
    background: #faeeee;
    color: #9a4040;
}

@media (max-width: 850px) {

    .order-detail-layout {
        grid-template-columns: 1fr;
    }

    .order-detail-summary {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 650px) {

    .order-detail-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .order-detail-date {
        width: 100%;
    }

    .order-detail-event {
        align-items: flex-start;
        flex-direction: column;
        padding: 23px;
    }

    .order-photo-card {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .order-photo-preview {
        aspect-ratio: 16 / 10;
    }

    .order-detail-summary {
        grid-template-columns: 1fr;
    }

}


/* ---------- PICARTE NOTIFICATIONS ---------- */

.notification-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.notification-nav-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

.private-nav a.active .notification-nav-count {
    background: #fff;
    color: #111;
}

.notifications-container {
    width: min(900px, 90%);
    margin: 0 auto;
    padding: 64px 0 100px;
}

.notifications-header {
    margin-bottom: 36px;
}

.notifications-header h1 {
    margin: 8px 0 12px;
}

.notifications-header p {
    color: #666;
}

.notifications-list {
    display: grid;
    gap: 12px;
}

.notification-card {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.notification-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.notification-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f1f1ef;
    font-size: 20px;
}

.notification-content {
    flex: 1;
}

.notification-content strong {
    display: block;
    margin-bottom: 5px;
}

.notification-content p {
    margin: 0 0 7px;
    color: #555;
    font-size: 14px;
    line-height: 1.45;
}

.notification-content small {
    color: #999;
    font-size: 11px;
}

.notification-arrow {
    font-size: 20px;
    color: #888;
}

.notifications-empty {
    padding: 60px 30px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
}

.notifications-empty-icon {
    font-size: 36px;
    margin-bottom: 16px;
}

.notifications-empty h2 {
    margin-bottom: 8px;
}

.notifications-empty p {
    max-width: 500px;
    margin: 0 auto;
    color: #666;
    line-height: 1.5;
}

@media (max-width: 650px) {

    .notifications-container {
        width: 92%;
        padding: 42px 0 70px;
    }

    .notification-card {
        gap: 12px;
        padding: 16px;
    }

    .notification-icon {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        font-size: 17px;
    }

    .notification-content p {
        font-size: 13px;
    }

    .notification-arrow {
        display: none;
    }
}

/* ============================================================
   PICARTE CART EXPERIENCE 2026
   ============================================================ */

.cart-content {
    width: 100%;
}

.cart-main {
    min-width: 0;
}

.cart-main-heading {
    margin-bottom: 18px;
}

.cart-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.cart-section-heading > span {
    font-size: 13px;
    font-weight: 700;
    opacity: .62;
    white-space: nowrap;
}

.cart-section-heading h2 {
    margin: 4px 0 0;
    font-size: 24px;
    line-height: 1.15;
}

.cart-section-kicker,
.cart-pack-eyebrow,
.cart-summary-label,
.cart-physical-type,
.cart-empty-kicker {
    display: block;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    opacity: .58;
}

.cart-event-card {
    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 20px;
    background: var(--surface, #fff);
    box-shadow: 0 12px 35px rgba(0, 0, 0, .055);
}

.cart-event-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 25px 20px;
    border-bottom: 1px solid rgba(127, 127, 127, .13);
}

.cart-event-heading h2 {
    margin: 5px 0 4px;
    font-size: 21px;
    line-height: 1.2;
}

.cart-event-heading p {
    margin: 0;
    font-size: 13px;
    opacity: .62;
}

.cart-event-count {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 62px;
    min-height: 62px;
    border-radius: 15px;
    background: rgba(127, 127, 127, .08);
}

.cart-event-count strong {
    font-size: 21px;
    line-height: 1;
}

.cart-event-count span {
    margin-top: 5px;
    font-size: 10px;
    font-weight: 700;
    opacity: .6;
}

.cart-photo-list {
    padding: 0 25px;
}

.cart-photo-row {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 15px 0;
    border-bottom: 1px solid rgba(127, 127, 127, .1);
}

.cart-photo-row:last-child {
    border-bottom: 0;
}

.cart-photo-thumb,
.cart-physical-thumb {
    width: 64px;
    height: 64px;
    overflow: hidden;
    border-radius: 11px;
    background: rgba(127, 127, 127, .09);
}

.cart-photo-thumb img,
.cart-physical-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .1em;
    opacity: .4;
}

.cart-photo-info {
    min-width: 0;
}

.cart-photo-info strong {
    display: block;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cart-photo-info span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    opacity: .58;
}

.cart-remove-button {
    border: 0;
    padding: 7px 0;
    background: transparent;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    opacity: .48;
    transition: opacity .2s ease, transform .2s ease;
}

.cart-remove-button:hover:not(:disabled) {
    opacity: 1;
    transform: translateY(-1px);
}

.cart-remove-button:disabled {
    cursor: wait;
    opacity: .35;
}

.cart-event-pricing {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin: 5px 0 0;
    padding: 20px 25px 23px;
    background:
        linear-gradient(
            135deg,
            rgba(41, 150, 80, .075),
            rgba(127, 127, 127, .035)
        );
    border-top: 1px solid rgba(41, 150, 80, .10);
}

.cart-pack-copy {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
}

.cart-pack-copy strong {
    font-size: 14px;
}

.cart-pack-label {
    font-size: 12px;
    opacity: .62;
}

.cart-pack-extra {
    display: inline-flex;
    width: fit-content;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(41, 150, 80, .1);
    font-size: 11px;
    font-weight: 800;
}

.cart-price-original {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin-top: 1px;
}

.cart-price-original span {
    font-size: 11px;
    opacity: .58;
}

.cart-price-original strong {
    font-size: 14px;
    font-weight: 700;
    text-decoration: line-through;
    opacity: .48;
}

.cart-pack-benefit {
    font-size: 12px;
    line-height: 1.35;
    font-weight: 700;
}

.cart-event-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
    min-width: 125px;
}

.cart-price-final-label {
    margin-bottom: 2px;
    font-size: 9px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .52;
}

.cart-event-price strong {
    font-size: 27px;
    line-height: 1.05;
    letter-spacing: -.02em;
}

.cart-saving-highlight {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 7px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(41, 150, 80, .13);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    white-space: nowrap;
}

.cart-price-before {
    margin-bottom: 3px;
    font-size: 12px;
    text-decoration: line-through;
    opacity: .48;
}

.cart-physical-section {
    margin-top: 30px;
}

.cart-physical-list {
    overflow: hidden;
    border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 20px;
    background: var(--surface, #fff);
    box-shadow: 0 12px 35px rgba(0, 0, 0, .045);
}

.cart-physical-row {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(127, 127, 127, .1);
}

.cart-physical-row:last-child {
    border-bottom: 0;
}

.cart-physical-info {
    min-width: 0;
}

.cart-physical-info strong {
    display: block;
    margin: 4px 0;
    font-size: 14px;
}

.cart-physical-info > span:last-child {
    font-size: 12px;
    opacity: .58;
}

.cart-physical-price {
    display: flex;
    align-items: center;
    gap: 20px;
}

.cart-physical-price strong {
    font-size: 16px;
}

.cart-summary {
    position: sticky;
    top: 95px;
    align-self: start;
    overflow: hidden;
}

.cart-summary-top h2 {
    margin: 5px 0 0;
    font-size: 24px;
}

.cart-summary-breakdown {
    margin-top: 25px;
    padding: 18px 0;
    border-top: 1px solid rgba(127, 127, 127, .15);
    border-bottom: 1px solid rgba(127, 127, 127, .15);
}

.cart-summary-saving {
    margin-top: 8px;
}

.cart-summary-saving strong {
    font-weight: 800;
}

.cart-summary-total {
    margin-top: 18px;
}

.cart-checkout-button {
    width: 100%;
    min-height: 52px;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 800;
}

.cart-checkout-note {
    margin-top: 12px;
    font-size: 11px;
    line-height: 1.55;
    text-align: center;
    opacity: .56;
}

.cart-empty {
    min-height: 430px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 50px 25px;
    text-align: center;
}

.cart-empty-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: rgba(127, 127, 127, .08);
    font-size: 27px;
}

.cart-empty h2 {
    margin: 8px 0;
}

.cart-empty p {
    max-width: 400px;
    margin: 0 0 25px;
    line-height: 1.55;
    opacity: .62;
}

.cart-empty .primary-button {
    min-width: 190px;
}

@media (max-width: 900px) {

    .cart-layout {
        grid-template-columns: 1fr;
    }

    .cart-summary {
        position: static;
        order: -1;
    }

}

@media (max-width: 620px) {

    .cart-event-heading {
        padding: 19px 17px 16px;
    }

    .cart-event-heading h2 {
        font-size: 18px;
    }

    .cart-event-count {
        min-width: 52px;
        min-height: 52px;
    }

    .cart-photo-list {
        padding: 0 17px;
    }

    .cart-photo-row {
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 12px;
    }

    .cart-photo-thumb,
    .cart-physical-thumb {
        width: 54px;
        height: 54px;
    }

    .cart-photo-row .cart-remove-button {
        grid-column: 2;
        justify-self: start;
        margin-top: -7px;
    }

    .cart-event-pricing {
        align-items: flex-start;
        padding: 17px;
    }

    .cart-event-price {
        min-width: 105px;
    }

    .cart-event-price strong {
        font-size: 22px;
    }

    .cart-saving-highlight {
        font-size: 10px;
        padding: 5px 8px;
    }

    .cart-physical-row {
        grid-template-columns: 54px minmax(0, 1fr);
        padding: 16px;
    }

    .cart-physical-thumb {
        width: 54px;
        height: 54px;
    }

    .cart-physical-price {
        grid-column: 2;
        justify-content: space-between;
        width: 100%;
        margin-top: 2px;
    }

    .cart-section-heading {
        align-items: flex-start;
    }

}


/* ============================================================
   PICARTE — Constructor visual de precios por cantidad
   ============================================================ */

.pic-pricing-builder {
    grid-column: 1 / -1;
    margin-top: 18px;
    padding: 24px;
    border: 1px solid rgba(127, 127, 127, .16);
    border-radius: 22px;
    background: rgba(127, 127, 127, .035);
}

.pic-pricing-heading {
    margin-bottom: 20px;
}

.pic-pricing-eyebrow {
    display: block;
    margin-bottom: 5px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    opacity: .55;
}

.pic-pricing-heading h3 {
    margin: 0 0 6px;
    font-size: 22px;
    line-height: 1.15;
}

.pic-pricing-heading p {
    max-width: 680px;
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    opacity: .68;
}

.pic-price-base-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 17px 18px;
    margin-bottom: 24px;
    border-radius: 16px;
    background: rgba(127, 127, 127, .055);
}

.pic-price-base-card > div:first-child {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pic-price-base-card strong {
    font-size: 14px;
}

.pic-price-base-card span {
    font-size: 11px;
    opacity: .6;
}

.pic-price-base-value {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
}

.pic-price-base-value > span {
    font-size: 17px;
    font-weight: 800;
    opacity: .8;
}

.pic-price-base-value input {
    width: 145px;
    padding: 11px 13px;
    border: 1px solid rgba(127, 127, 127, .22);
    border-radius: 12px;
    background: transparent;
    font-size: 18px;
    font-weight: 800;
    text-align: right;
}

.pic-packs-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 13px;
}

.pic-packs-toolbar > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.pic-packs-toolbar strong {
    font-size: 14px;
}

.pic-packs-toolbar span {
    font-size: 11px;
    opacity: .58;
}

.pic-pricing-refresh {
    padding: 9px 13px;
    border: 1px solid rgba(127, 127, 127, .22);
    border-radius: 999px;
    background: transparent;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.pic-pricing-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.pic-pricing-card {
    position: relative;
    display: flex;
    gap: 13px;
    padding: 17px;
    border: 1px solid rgba(127, 127, 127, .16);
    border-radius: 17px;
    background: rgba(127, 127, 127, .025);
    transition:
        border-color .15s ease,
        background .15s ease,
        opacity .15s ease;
}

.pic-pricing-card.is-active {
    border-color: rgba(41, 150, 80, .30);
    background: rgba(41, 150, 80, .045);
}

.pic-pricing-check {
    width: 18px;
    height: 18px;
    margin-top: 3px;
    flex: 0 0 auto;
    accent-color: #299650;
    cursor: pointer;
}

.pic-pricing-card-main {
    min-width: 0;
    flex: 1;
}

.pic-pricing-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.pic-pricing-card-top strong {
    font-size: 16px;
}

.pic-pricing-discount {
    display: inline-flex;
    margin-left: 7px;
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(41, 150, 80, .10);
    font-size: 9px;
    font-weight: 800;
}

.pic-pricing-normal {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
    font-size: 11px;
    opacity: .58;
}

.pic-pricing-normal strong {
    font-size: 12px;
    text-decoration: line-through;
}

.pic-pricing-input {
    display: block;
}

.pic-pricing-input > span {
    display: block;
    margin-bottom: 5px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .58;
}

.pic-pricing-input > div {
    display: flex;
    align-items: center;
    gap: 6px;
}

.pic-pricing-input > div > span {
    font-size: 14px;
    font-weight: 800;
    opacity: .65;
}

.pic-pricing-input input[data-price-input] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(127, 127, 127, .22);
    border-radius: 11px;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
}

.pic-pricing-input input[data-price-input]:disabled {
    opacity: .4;
    cursor: not-allowed;
}

.pic-pricing-saving {
    margin-top: 9px;
    font-size: 11px;
    font-weight: 700;
    opacity: .48;
}

.pic-pricing-saving.has-saving {
    color: #299650;
    opacity: 1;
}

.pic-pricing-help {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 15px;
    padding: 11px 13px;
    border-radius: 12px;
    background: rgba(127, 127, 127, .045);
    font-size: 11px;
}

.pic-pricing-help strong {
    flex-shrink: 0;
}

.pic-pricing-help span {
    opacity: .62;
}

@media (max-width: 700px) {

    .pic-pricing-builder {
        padding: 17px;
        border-radius: 17px;
    }

    .pic-price-base-card,
    .pic-packs-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .pic-price-base-value {
        width: 100%;
    }

    .pic-price-base-value input {
        width: 100%;
    }

    .pic-pricing-refresh {
        width: 100%;
    }

    .pic-pricing-cards {
        grid-template-columns: 1fr;
    }

    .pic-pricing-help {
        align-items: flex-start;
        flex-direction: column;
    }

}


/* ============================================================
   PICARTE — Mejoras constructor de packs
   ============================================================ */

.pic-pricing-builder-help {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: -5px 0 18px;
    padding: 12px 14px;
    border-radius: 13px;
    background: rgba(41, 150, 80, .07);
    border: 1px solid rgba(41, 150, 80, .12);
    font-size: 11px;
    line-height: 1.45;
}

.pic-pricing-builder-help strong {
    flex-shrink: 0;
    font-weight: 800;
}

.pic-pricing-builder-help span {
    opacity: .68;
}

.pic-pack-quick-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 15px;
}

.pic-pack-quick-label {
    width: 100%;
    margin-bottom: 2px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .52;
}

.pic-pack-add {
    padding: 8px 11px;
    border: 1px solid rgba(127, 127, 127, .20);
    border-radius: 999px;
    background: rgba(127, 127, 127, .035);
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
    transition:
        transform .15s ease,
        border-color .15s ease,
        background .15s ease;
}

.pic-pack-add:hover {
    transform: translateY(-1px);
    border-color: rgba(41, 150, 80, .35);
    background: rgba(41, 150, 80, .07);
}

.pic-pack-add-custom {
    border-color: rgba(41, 150, 80, .30);
    background: rgba(41, 150, 80, .08);
}

.pic-pricing-discount.has-saving {
    color: #299650;
    background: rgba(41, 150, 80, .13);
}

.pic-pricing-card-top {
    position: relative;
}

.pic-pricing-custom-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.pic-pricing-remove {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: rgba(127, 127, 127, .08);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    opacity: .55;
}

.pic-pricing-remove:hover {
    opacity: 1;
    background: rgba(220, 60, 60, .10);
}

.pic-pricing-custom-quantity {
    margin-bottom: 10px;
}

.pic-pricing-custom-quantity label {
    display: block;
}

.pic-pricing-custom-quantity label > span {
    display: block;
    margin-bottom: 5px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .58;
}

.pic-pricing-custom-quantity input {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid rgba(127, 127, 127, .22);
    border-radius: 11px;
    background: transparent;
    font-size: 14px;
    font-weight: 800;
}

.pic-pricing-per-photo {
    margin-top: 5px;
    font-size: 10px;
    font-weight: 700;
    opacity: .55;
}

@media (max-width: 700px) {

    .pic-pricing-builder-help {
        flex-direction: column;
        gap: 3px;
    }

    .pic-pack-quick-actions {
        gap: 6px;
    }

    .pic-pack-add {
        font-size: 10px;
        padding: 8px 9px;
    }
}


/* =========================================================
   PICARTE — CART ADD ANIMATION V2
   ========================================================= */

.photo-cart-button,
.photo-viewer-buy {
    position: relative;
    overflow: visible;
    transform-origin: center;
}

.photo-cart-button.cart-adding,
.photo-viewer-buy.cart-adding {
    animation: picarteCartPop .34s cubic-bezier(.2,.8,.2,1);
}

.photo-cart-button.cart-added,
.photo-viewer-buy.cart-added {
    animation: picarteCartSuccess .48s cubic-bezier(.2,.9,.2,1);
}

.photo-cart-button.cart-added {
    background: #111;
    color: #fff;
}

.photo-cart-button.cart-added .photo-cart-icon {
    animation: picarteCartCheck .35s ease-out;
}

.photo-viewer-buy.cart-added {
    background: #fff;
    color: #111;
}

.picarte-cart-feedback {
    position: fixed;
    z-index: 10050;
    left: 50%;
    bottom: 30px;
    transform: translate(-50%, 18px) scale(.94);

    display: flex;
    align-items: center;
    gap: 9px;

    padding: 11px 16px;

    border-radius: 999px;

    background: rgba(18,18,18,.94);
    color: #fff;

    box-shadow:
        0 12px 35px rgba(0,0,0,.28);

    font-size: 13px;
    font-weight: 750;
    letter-spacing: .1px;

    opacity: 0;
    pointer-events: none;

    white-space: nowrap;

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    transition:
        opacity .22s ease,
        transform .28s cubic-bezier(.2,.9,.2,1);
}

.picarte-cart-feedback.is-visible {
    opacity: 1;
    transform: translate(-50%, 0) scale(1);
}

.picarte-cart-feedback-icon {
    width: 22px;
    height: 22px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #fff;
    color: #111;

    font-size: 13px;
    font-weight: 900;

    flex-shrink: 0;
}

@keyframes picarteCartPop {

    0% {
        transform: scale(1);
    }

    45% {
        transform: scale(.91);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes picarteCartSuccess {

    0% {
        transform: scale(1);
    }

    35% {
        transform: scale(1.10);
    }

    65% {
        transform: scale(.97);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes picarteCartCheck {

    0% {
        transform: scale(.55) rotate(-12deg);
        opacity: .3;
    }

    65% {
        transform: scale(1.2) rotate(3deg);
        opacity: 1;
    }

    100% {
        transform: scale(1) rotate(0);
        opacity: 1;
    }
}

@media (max-width: 800px) {

    .picarte-cart-feedback {
        left: 50%;
        bottom: calc(18px + env(safe-area-inset-bottom));

        max-width: calc(100vw - 28px);

        padding: 10px 14px;

        font-size: 12px;
    }

    .picarte-cart-feedback-icon {
        width: 21px;
        height: 21px;
        font-size: 12px;
    }

}


/* =========================================================
   PICARTE — GALLERY IMAGE CLICK V2
   ========================================================= */

.photo-card {
    cursor: default;
}

.photo-card img {
    cursor: zoom-in;
}

.photo-cart-button,
.photo-favorite {
    cursor: pointer;
}


/* =========================================================
   PICARTE — GALERÍA MOBILE V1
   Fotos protagonistas · proporción natural
   ========================================================= */

@media (max-width: 800px) {

    .gallery-grid {
        columns: 2;
        column-gap: 5px;
    }

    .photo-card {
        margin-bottom: 5px;
        border-radius: 6px;
        background: transparent;
        overflow: visible;
    }

    .photo-card::after {
        display: none;
    }

    .photo-card img {
        width: 100%;
        height: auto;
        border-radius: 6px;
    }

    .photo-actions {
        position: static;
        display: flex;
        justify-content: flex-start;
        min-height: 0;
        margin: 3px 2px 0;
        padding: 0;
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .photo-number {
        min-height: 0;
        padding: 2px 0 3px;
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        border-radius: 0;
        color: #777;
        font-size: 10px;
    }

    .photo-cart-button {
        position: absolute;
        right: 7px;
        bottom: 7px;
        width: 36px;
        height: 36px;
        min-height: 36px;
        padding: 0;
        border-radius: 50%;
        justify-content: center;
        box-shadow: 0 5px 16px rgba(0,0,0,.25);
        z-index: 6;
    }

    .photo-cart-label {
        display: none;
    }

    .photo-cart-icon {
        width: 17px;
        height: 17px;
        font-size: 17px;
    }

    .photo-favorite {
        top: 7px;
        right: 7px;
        width: 36px;
        height: 36px;
        font-size: 19px;
    }
}

@media (max-width: 420px) {

    .gallery-grid {
        column-gap: 4px;
    }

    .photo-card {
        margin-bottom: 4px;
    }

    .photo-card img {
        border-radius: 5px;
    }

    .photo-cart-button {
        right: 6px;
        bottom: 6px;
        width: 34px;
        height: 34px;
        min-height: 34px;
    }

    .photo-favorite {
        top: 6px;
        right: 6px;
        width: 34px;
        height: 34px;
    }
}


/* PICARTE — GALERÍA MOBILE · UNA FOTO POR LÍNEA */
@media (max-width: 800px) {
    .gallery-grid {
        columns: 1;
    }
}

/* =========================================================
   PICARTE — MOBILE PHOTO VIEWER · CLEAN V1
   Experiencia móvil independiente del visor desktop
   ========================================================= */

@media (max-width: 800px) {

    html:has(body.photo-viewer-open),
    body.photo-viewer-open {
        overflow: hidden !important;
        width: 100%;
        max-width: 100%;
        overscroll-behavior: none;
    }

    body.photo-viewer-open {
        position: fixed;
        inset: 0;
        touch-action: none;
    }

    .photo-viewer {
        position: fixed;
        inset: 0;
        width: auto;
        height: auto;
        min-width: 0;
        max-width: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        background: #000;
        overscroll-behavior: none;
        touch-action: none;
        display: block;
    }

    .photo-viewer-stage {
        position: absolute;
        inset: 0;
        width: auto;
        height: auto;
        min-width: 0;
        min-height: 0;
        margin: 0;
        padding: 0;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        touch-action: none;
    }

    .photo-viewer-stage img {
        display: block;
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        user-select: none;
        -webkit-user-select: none;
        -webkit-touch-callout: none;
        pointer-events: none;
    }

    /* -----------------------------------------------------
       CONTROLES SUPERIORES
       ----------------------------------------------------- */

    .photo-viewer-close,
    .photo-viewer-favorite {
        position: fixed !important;
        top: max(14px, env(safe-area-inset-top)) !important;
        z-index: 10050;
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        margin: 0;
        padding: 0;
        border-radius: 50%;
        display: flex !important;
        align-items: center;
        justify-content: center;
        background: rgba(0, 0, 0, .48);
        border: 1px solid rgba(255, 255, 255, .18);
        color: #fff;
        box-shadow: 0 6px 24px rgba(0, 0, 0, .28);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
        touch-action: manipulation;
    }

    .photo-viewer-favorite {
        left: 14px !important;
        right: auto !important;
        bottom: auto !important;
        top: max(14px, env(safe-area-inset-top)) !important;
        font-size: 0;
    }

    .photo-viewer-favorite::before {
        content: '♡';
        font-size: 23px;
        line-height: 1;
    }

    .photo-viewer-favorite.active::before {
        content: '♥';
    }

    .photo-viewer-favorite.active {
        background: rgba(255, 255, 255, .94);
        color: #111;
    }

    .photo-viewer-close {
        left: auto !important;
        right: 14px !important;
        bottom: auto !important;
        font-size: 28px;
        line-height: 1;
        font-weight: 300;
    }

    /* -----------------------------------------------------
       NAVEGACIÓN
       ----------------------------------------------------- */

    .photo-viewer-prev,
    .photo-viewer-next {
        position: fixed !important;
        top: 50% !important;
        z-index: 10040;
        width: 42px;
        height: 58px;
        min-width: 42px;
        min-height: 58px;
        margin: -29px 0 0;
        padding: 0;
        display: flex !important;
        align-items: center;
        justify-content: center;
        border-radius: 14px;
        background: rgba(0, 0, 0, .28);
        border: 1px solid rgba(255, 255, 255, .12);
        color: #fff;
        font-size: 38px;
        line-height: 1;
        box-shadow: none;
        touch-action: manipulation;
    }

    .photo-viewer-prev {
        left: 6px !important;
        right: auto !important;
    }

    .photo-viewer-next {
        right: 6px !important;
        left: auto !important;
    }

    /* -----------------------------------------------------
       INFORMACIÓN / BARRA INFERIOR
       ----------------------------------------------------- */

    .photo-viewer-photo-meta {
        display: none !important;
    }

    .photo-viewer-info {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        bottom: max(12px, env(safe-area-inset-bottom)) !important;
        top: auto !important;
        width: auto !important;
        transform: none !important;
        max-width: none;
        min-width: 0;
        min-height: 58px;
        margin: 0;
        padding: 6px;
        display: block !important;
        box-sizing: border-box;
        border-radius: 18px;
        background: rgba(18, 18, 18, .88);
        border: 1px solid rgba(255, 255, 255, .14);
        box-shadow: 0 12px 40px rgba(0, 0, 0, .48);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        z-index: 10030;
    }

    .photo-viewer-actions {
        width: 100%;
        min-width: 0;
        margin: 0;
        padding: 0;
        display: flex !important;
        align-items: center;
        gap: 8px;
    }

    .photo-viewer-actions > #photoViewerCounter {
        flex: 0 0 auto;
        width: 48px;
        min-width: 48px;
        margin: 0;
        padding: 0;
        display: flex !important;
        align-items: center;
        justify-content: center;
        color: rgba(255, 255, 255, .72);
        font-size: 12px;
        font-weight: 700;
        white-space: nowrap;
    }

    .photo-viewer-actions .photo-viewer-favorite {
        position: fixed !important;
        left: 14px !important;
        right: auto !important;
        top: max(14px, env(safe-area-inset-top)) !important;
        bottom: auto !important;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 10060 !important;
    }

    .photo-viewer-buy {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        min-height: 46px;
        margin: 0;
        padding: 0 18px;
        border-radius: 999px;
        background: #fff;
        color: #111;
        font-size: 14px;
        font-weight: 850;
        box-shadow: 0 6px 22px rgba(0, 0, 0, .25);
        touch-action: manipulation;
    }

    .photo-viewer-footer {
        display: none !important;
    }
}

/* Pantallas muy angostas */
@media (max-width: 380px) {

    .photo-viewer-close,
    .photo-viewer-favorite {
        width: 42px;
        height: 42px;
        min-width: 42px;
        min-height: 42px;
    }

    .photo-viewer-close {
        right: 10px !important;
    }

    .photo-viewer-favorite {
        left: 10px !important;
    }

    .photo-viewer-info {
        left: 8px !important;
        right: 8px !important;
    }

    .photo-viewer-actions > #photoViewerCounter {
        width: 44px;
        min-width: 44px;
    }

    .photo-viewer-buy {
        min-height: 44px;
        padding-left: 14px;
        padding-right: 14px;
        font-size: 13px;
    }
}


/* =========================================================
   PIC-ARTE — PUBLIC GALLERY VISUAL IDENTITY V1
   Capa final de identidad visual.
   No modifica lógica ni comportamiento JS.
   ========================================================= */

.event-page {
    --pic-violet: #6F3CC3;
    --pic-violet-dark: #512A9E;
    --pic-violet-light: #9258D1;
    --pic-fuchsia: #C34BD0;
    --pic-blue: #5D61D2;
    --pic-soft: #F5F3FF;
    --pic-soft-2: #EEF2FF;
    --pic-line: #E8E1F7;

    background:
        radial-gradient(circle at 85% 8%, rgba(111,60,195,.055), transparent 28%),
        #F7F7F5;
    color: #111;
}


/* ---------- HERO ---------- */

.event-page .event-hero {
    background: #111;
    box-shadow: 0 18px 55px rgba(38,20,65,.14);
}

.event-page .event-hero-image {
    filter: saturate(.96) contrast(1.02);
    transition: transform 1.2s ease;
}

.event-page .event-hero:hover .event-hero-image {
    transform: scale(1.012);
}

.event-page .event-hero-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(17,10,28,.08) 0%,
            rgba(17,10,28,.10) 35%,
            rgba(17,10,28,.78) 100%
        ),
        linear-gradient(
            90deg,
            rgba(17,10,28,.20),
            transparent 55%
        );
}

.event-page .event-hero-content {
    bottom: 58px;
    max-width: 1080px;
}

.event-page .back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 25px;
    padding: 9px 14px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: rgba(255,255,255,.09);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: rgba(255,255,255,.92);
    transition: .2s ease;
}

.event-page .back-link:hover {
    background: rgba(255,255,255,.16);
    transform: translateX(-2px);
}

.event-page .event-hero-content .event-category {
    margin-bottom: 17px;
    padding: 7px 12px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background:
        linear-gradient(
            120deg,
            rgba(111,60,195,.42),
            rgba(195,75,208,.25),
            rgba(93,97,210,.28)
        );
    box-shadow: 0 8px 25px rgba(0,0,0,.12);
    letter-spacing: .08em;
    font-size: 11px;
    text-transform: uppercase;
}

.event-page .event-hero-content h1 {
    max-width: 980px;
    text-wrap: balance;
    text-shadow: 0 8px 35px rgba(0,0,0,.25);
}

.event-page .event-hero-content p {
    color: rgba(255,255,255,.82);
}


/* ---------- CONTENT HEADER ---------- */

.event-page .event-container {
    padding-top: 82px;
}

.event-page .event-header {
    margin-bottom: 30px;
}

.event-page .event-header h2 {
    text-wrap: balance;
}

.event-page .event-header p {
    max-width: 680px;
    line-height: 1.55;
}

.event-page .event-stat {
    padding: 15px 20px;
    border: 1px solid var(--pic-line);
    border-radius: 18px;
    background: rgba(255,255,255,.76);
    box-shadow: 0 12px 35px rgba(50,30,80,.05);
}

.event-page .event-stat strong {
    color: var(--pic-violet-dark);
}


/* ---------- SEARCH ---------- */

.event-page .photo-search {
    position: relative;
    border: 1px solid var(--pic-line);
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    box-shadow:
        0 12px 35px rgba(50,30,80,.055),
        0 0 0 4px rgba(111,60,195,.025);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.event-page .photo-search:focus-within {
    border-color: rgba(111,60,195,.45);
    box-shadow:
        0 14px 38px rgba(50,30,80,.08),
        0 0 0 4px rgba(111,60,195,.08);
}

.event-page .photo-search span {
    color: var(--pic-violet);
}

.event-page .photo-search input::placeholder {
    color: #999;
}


/* ---------- PHOTOGRAPHER ---------- */

.event-page .photographer-bar {
    border-color: var(--pic-line);
    background:
        linear-gradient(
            120deg,
            rgba(255,255,255,.98),
            rgba(245,243,255,.72)
        );
    box-shadow: 0 12px 35px rgba(50,30,80,.045);
}

.event-page .photographer-bar .avatar {
    overflow: hidden;
    background:
        linear-gradient(
            135deg,
            var(--pic-violet-dark),
            var(--pic-fuchsia),
            var(--pic-blue)
        );
    box-shadow: 0 6px 18px rgba(111,60,195,.18);
}

.event-page .photographer-bar .avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.event-page .photographer-info span {
    color: var(--pic-violet);
}

.event-page .photographer-button {
    border-color: var(--pic-line);
    color: var(--pic-violet-dark);
    transition: .2s ease;
}

.event-page .photographer-button:hover {
    border-color: rgba(111,60,195,.35);
    background: var(--pic-soft);
    transform: translateY(-1px);
}


/* ---------- GALLERY ---------- */

.event-page .gallery-grid {
    column-gap: 15px;
}

.event-page .photo-card {
    border-radius: 15px;
    background: #e9e9e9;
    box-shadow: 0 8px 24px rgba(20,15,30,.055);
    isolation: isolate;
}

.event-page .photo-card img {
    position: relative;
    z-index: 1;
}

.event-page .photo-card::after {
    z-index: 2;
    background:
        linear-gradient(
            180deg,
            transparent 48%,
            rgba(20,10,30,.06) 68%,
            rgba(20,10,30,.72) 100%
        );
}

.event-page .photo-card:hover {
    box-shadow:
        0 18px 42px rgba(50,30,80,.13),
        0 0 0 1px rgba(111,60,195,.10);
}

.event-page .photo-card:hover img {
    transform: scale(1.028);
}

.event-page .photo-favorite {
    z-index: 7;
    border: 1px solid rgba(255,255,255,.65);
    background: rgba(255,255,255,.94);
    color: #555;
    box-shadow: 0 6px 18px rgba(0,0,0,.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: .2s ease;
}

.event-page .photo-favorite:hover {
    transform: scale(1.06);
}

.event-page .photo-favorite.active {
    background: var(--pic-violet);
    color: white;
    border-color: var(--pic-violet);
}

.event-page .watermark {
    position: absolute;
    z-index: 3;
    inset: -35%;
    left: auto;
    top: auto;
    width: auto;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    gap: 24px;
    overflow: hidden;
    transform: rotate(-18deg);
    color: rgba(255,255,255,.70);
    text-shadow: 0 1px 3px rgba(0,0,0,.7);
    font-size: clamp(12px, 2vw, 20px);
    font-weight: 900;
    letter-spacing: 2px;
    pointer-events: none;
    user-select: none;
}
.event-page .watermark-row {
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 32px;
    white-space: nowrap;
}
.event-page .watermark-row span {
    flex: 0 0 auto;
}

.event-page .photo-actions {
    z-index: 7;
}

.event-page .photo-number {
    color: rgba(255,255,255,.92);
    text-shadow: 0 2px 8px rgba(0,0,0,.3);
}

.event-page .photo-actions button,
.event-page .photo-cart-button {
    background:
        linear-gradient(
            120deg,
            var(--pic-violet),
            var(--pic-fuchsia)
        );
    color: white;
    border: 0;
    box-shadow: 0 7px 20px rgba(70,35,110,.24);
    transition: .2s ease;
}

.event-page .photo-actions button:hover,
.event-page .photo-cart-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 25px rgba(70,35,110,.30);
}


/* ---------- CTA ---------- */

.event-page .event-cta {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(195,75,208,.24),
            transparent 30%
        ),
        radial-gradient(
            circle at 70% 100%,
            rgba(93,97,210,.20),
            transparent 35%
        ),
        #15121b;
    border: 1px solid rgba(111,60,195,.22);
    box-shadow: 0 22px 60px rgba(40,20,65,.12);
}

.event-page .event-cta::after {
    content: "";
    position: absolute;
    width: 260px;
    height: 260px;
    right: -90px;
    top: -100px;
    border-radius: 50%;
    background:
        linear-gradient(
            135deg,
            rgba(111,60,195,.22),
            rgba(195,75,208,.10),
            rgba(93,97,210,.18)
        );
    filter: blur(8px);
    pointer-events: none;
}

.event-page .event-cta h2,
.event-page .event-cta p,
.event-page .event-cta .eyebrow,
.event-page .event-cta .primary-button {
    position: relative;
    z-index: 1;
}

.event-page .event-cta p {
    color: #b9b5c0;
}

.event-page .event-cta .primary-button {
    border: 0;
    background:
        linear-gradient(
            120deg,
            var(--pic-violet),
            var(--pic-fuchsia),
            var(--pic-blue)
        );
    box-shadow: 0 12px 28px rgba(111,60,195,.24);
}


/* ---------- PUBLIC PHOTO VIEWER ---------- */

.event-page .photo-viewer {
    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(111,60,195,.12),
            transparent 35%
        ),
        rgba(9,8,12,.97);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.event-page .photo-viewer-stage {
    background:
        radial-gradient(
            circle,
            rgba(255,255,255,.055),
            transparent 62%
        );
}

.event-page .photo-viewer-stage img {
    box-shadow:
        0 28px 80px rgba(0,0,0,.48),
        0 0 0 1px rgba(255,255,255,.06);
}

.event-page .photo-viewer-watermark {
    color: rgba(255,255,255,.26);
}

.event-page .photo-viewer-close,
.event-page .photo-viewer-prev,
.event-page .photo-viewer-next {
    border-color: rgba(255,255,255,.12);
    background: rgba(255,255,255,.08);
    color: white;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.event-page .photo-viewer-close:hover,
.event-page .photo-viewer-prev:hover,
.event-page .photo-viewer-next:hover {
    background: rgba(111,60,195,.65);
    border-color: rgba(255,255,255,.18);
}

.event-page .photo-viewer-footer {
    background:
        linear-gradient(
            180deg,
            rgba(12,10,15,.12),
            rgba(12,10,15,.94)
        );
    border-top: 1px solid rgba(255,255,255,.07);
}

.event-page .photo-viewer-favorite {
    border-color: rgba(255,255,255,.13);
    background: rgba(255,255,255,.08);
    color: white;
}

.event-page .photo-viewer-favorite:hover,
.event-page .photo-viewer-favorite.active {
    background: var(--pic-violet);
    border-color: var(--pic-violet);
}

.event-page .photo-viewer-eyebrow {
    color: #B98BE6;
}

.event-page .photo-viewer-photo-meta strong {
    color: white;
}

.event-page .photo-viewer-photo-meta span:not(.photo-viewer-eyebrow) {
    color: rgba(255,255,255,.58);
}

.event-page .photo-viewer-actions > #photoViewerCounter {
    color: rgba(255,255,255,.48);
}

.event-page .photo-viewer-buy {
    border: 0;
    background:
        linear-gradient(
            120deg,
            var(--pic-violet),
            var(--pic-fuchsia)
        );
    color: white;
    box-shadow: 0 9px 28px rgba(111,60,195,.28);
}

.event-page .photo-viewer-buy:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
}


/* ---------- FOOTER ---------- */

.event-page > footer {
    border-top: 1px solid var(--pic-line);
    background: rgba(255,255,255,.72);
}

.event-page > footer strong {
    color: var(--pic-violet-dark);
}


/* ---------- MOBILE ---------- */

@media (max-width: 800px) {

    .event-page .event-hero {
        min-height: 460px;
        height: 64vh;
    }

    .event-page .event-hero-content {
        bottom: 32px;
    }

    .event-page .event-hero-content h1 {
        font-size: clamp(38px, 11vw, 58px);
        letter-spacing: -2px;
    }

    .event-page .event-hero-content p {
        font-size: 15px;
    }

    .event-page .event-container {
        width: 94%;
        padding-top: 48px;
        padding-bottom: 65px;
    }

    .event-page .event-stat {
        padding: 11px 15px;
    }

    .event-page .photo-search {
        height: 60px;
        padding: 0 17px;
    }

    .event-page .photographer-bar {
        padding: 14px;
        border-radius: 15px;
    }

    .event-page .gallery-grid {
        columns: 1;
    }

    .event-page .photo-card {
        border-radius: 9px;
    }

    .event-page .event-cta {
        width: 94%;
        padding: 58px 7%;
        border-radius: 22px;
    }

    .event-page .photo-cart-button {
        background:
            linear-gradient(
                135deg,
                var(--pic-violet),
                var(--pic-fuchsia)
            );
        box-shadow: 0 7px 18px rgba(70,35,110,.28);
    }
}


/* ---------- REDUCED MOTION ---------- */

@media (prefers-reduced-motion: reduce) {

    .event-page .event-hero-image,
    .event-page .photo-card img,
    .event-page .photo-favorite,
    .event-page .photo-actions button,
    .event-page .photo-cart-button,
    .event-page .photographer-button,
    .event-page .back-link,
    .event-page .photo-viewer-buy {
        transition: none !important;
    }
}



/* ============================================================
   PIC-ARTE — PARA FOTÓGRAFOS V1
   ============================================================ */

.pic-photographers-page {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 82% 8%, rgba(195,75,208,.12), transparent 28%),
        radial-gradient(circle at 8% 28%, rgba(93,97,210,.09), transparent 25%),
        #f7f7f5;
    color: #111;
    overflow-x: hidden;
}

.pic-photographers-page * {
    box-sizing: border-box;
}

.pic-photographers-topbar {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 10;
}

.pic-photographers-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #111;
    text-decoration: none;
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -1px;
}

.pic-photographers-brand-mark {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: white;
    font-size: 21px;
    font-weight: 900;
    background: linear-gradient(135deg, #6F3CC3, #C34BD0 58%, #5D61D2);
    box-shadow: 0 8px 22px rgba(111,60,195,.22);
}

.pic-photographers-login {
    color: #512A9E;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    padding: 10px 17px;
    border: 1px solid #E8E1F7;
    background: rgba(255,255,255,.78);
    border-radius: 999px;
    transition: .2s ease;
}

.pic-photographers-login:hover {
    transform: translateY(-1px);
    border-color: #cdb9ec;
    box-shadow: 0 8px 22px rgba(111,60,195,.12);
}

.pic-photographers-hero {
    width: min(1180px, calc(100% - 48px));
    min-height: 650px;
    margin: 0 auto;
    padding: 75px 0 105px;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
    gap: 65px;
    align-items: center;
    position: relative;
}

.pic-photographers-hero-content {
    position: relative;
    z-index: 3;
}

.pic-photographers-eyebrow,
.pic-photographers-section-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #6F3CC3;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.pic-photographers-eyebrow::before,
.pic-photographers-section-label::before {
    content: "";
    width: 22px;
    height: 2px;
    border-radius: 10px;
    background: linear-gradient(90deg, #6F3CC3, #C34BD0);
}

.pic-photographers-hero h1 {
    max-width: 690px;
    margin: 19px 0 25px;
    font-size: clamp(54px, 6.3vw, 88px);
    line-height: .93;
    letter-spacing: -5px;
    font-weight: 850;
}

.pic-photographers-hero h1 span {
    background: linear-gradient(105deg, #512A9E, #6F3CC3 42%, #C34BD0 72%, #5D61D2);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.pic-photographers-lead {
    max-width: 625px;
    margin: 0;
    color: #666;
    font-size: 19px;
    line-height: 1.65;
}

.pic-photographers-actions {
    margin-top: 34px;
    display: flex;
    align-items: center;
    gap: 13px;
    flex-wrap: wrap;
}

.pic-photographers-primary,
.pic-photographers-secondary {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 23px;
    border-radius: 14px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
    transition: .22s ease;
}

.pic-photographers-primary {
    color: white;
    background: linear-gradient(115deg, #512A9E, #6F3CC3 45%, #C34BD0);
    box-shadow: 0 14px 32px rgba(111,60,195,.25);
}

.pic-photographers-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 38px rgba(111,60,195,.31);
}

.pic-photographers-secondary {
    color: #512A9E;
    background: rgba(255,255,255,.76);
    border: 1px solid #E8E1F7;
}

.pic-photographers-secondary:hover {
    transform: translateY(-2px);
    border-color: #cdb9ec;
}

.pic-photographers-note {
    margin-top: 22px;
    display: flex;
    align-items: center;
    gap: 9px;
    color: #888;
    font-size: 12px;
}

.pic-photographers-note-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #6F3CC3;
    box-shadow: 0 0 0 5px rgba(111,60,195,.09);
}

.pic-photographers-visual {
    min-height: 520px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pic-photographers-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(2px);
    pointer-events: none;
}

.pic-photographers-glow-a {
    width: 330px;
    height: 330px;
    top: 55px;
    right: 25px;
    background: radial-gradient(circle, rgba(195,75,208,.24), rgba(195,75,208,0) 68%);
}

.pic-photographers-glow-b {
    width: 300px;
    height: 300px;
    bottom: 15px;
    left: 15px;
    background: radial-gradient(circle, rgba(93,97,210,.20), rgba(93,97,210,0) 68%);
}

.pic-photographers-card {
    position: absolute;
    width: 365px;
    height: 455px;
    border-radius: 25px;
    border: 1px solid rgba(255,255,255,.75);
    box-shadow: 0 28px 75px rgba(45,25,75,.18);
}

.pic-photographers-card-back {
    transform: rotate(9deg) translate(34px, 12px);
    background: linear-gradient(145deg, #d8d0ee, #f1d9f0 50%, #dce0f7);
    opacity: .7;
}

.pic-photographers-card-main {
    transform: rotate(-3deg);
    overflow: hidden;
    background: white;
}

.pic-photographers-card-top {
    height: 62px;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #eee8f7;
}

.pic-photographers-card-top strong {
    color: #25202d;
    font-size: 13px;
}

.pic-photographers-card-live {
    color: #6F3CC3;
    font-size: 17px;
}

.pic-photographers-photo {
    height: 270px;
    margin: 15px;
    overflow: hidden;
    border-radius: 17px;
    position: relative;
    background:
        linear-gradient(145deg, rgba(81,42,158,.18), rgba(195,75,208,.15)),
        #e9e5f2;
}

.pic-photographers-photo::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 62% 38%, rgba(255,255,255,.75) 0 6%, transparent 7%),
        linear-gradient(135deg, transparent 35%, rgba(255,255,255,.55) 36% 40%, transparent 41%),
        linear-gradient(165deg, #6F3CC3 0%, #C34BD0 48%, #5D61D2 100%);
    opacity: .82;
}

.pic-photographers-photo-shape {
    position: absolute;
    width: 105px;
    height: 150px;
    left: 50%;
    bottom: 30px;
    transform: translateX(-50%);
    border-radius: 55px 55px 22px 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.15));
    filter: blur(1px);
}

.pic-photographers-card-bottom {
    padding: 8px 20px 20px;
    display: flex;
    align-items: end;
    justify-content: space-between;
}

.pic-photographers-card-bottom span {
    color: #888;
    font-size: 11px;
}

.pic-photographers-card-bottom strong {
    color: #111;
    font-size: 15px;
}

.pic-photographers-card-price {
    padding: 9px 12px;
    color: white !important;
    border-radius: 10px;
    background: linear-gradient(110deg, #6F3CC3, #C34BD0);
    font-size: 12px !important;
    font-weight: 800;
}

.pic-photographers-p-symbol {
    position: absolute;
    right: 7%;
    bottom: 3%;
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    color: white;
    font-size: 29px;
    font-weight: 900;
    background: linear-gradient(135deg, #512A9E, #6F3CC3, #C34BD0);
    box-shadow: 0 18px 35px rgba(111,60,195,.28);
    transform: rotate(7deg);
    z-index: 4;
}

.pic-photographers-trust {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto 100px;
    padding: 58px 62px;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 70px;
    align-items: center;
    border: 1px solid #E8E1F7;
    border-radius: 30px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 25px 65px rgba(60,35,90,.07);
}

.pic-photographers-trust h2,
.pic-photographers-steps h2,
.pic-photographers-closing h2 {
    margin: 13px 0 14px;
    font-size: clamp(31px, 4vw, 48px);
    line-height: 1.02;
    letter-spacing: -2.5px;
}

.pic-photographers-trust-copy p {
    max-width: 520px;
    margin: 0;
    color: #666;
    line-height: 1.7;
}

.pic-photographers-trust-points {
    display: grid;
    gap: 13px;
}

.pic-photographers-trust-point {
    padding: 21px 22px;
    border-radius: 17px;
    background: #faf9ff;
    border: 1px solid #eee8f8;
}

.pic-photographers-trust-point strong {
    display: block;
    margin-bottom: 6px;
    color: #27202f;
    font-size: 14px;
}

.pic-photographers-trust-point span {
    display: block;
    color: #777;
    font-size: 13px;
    line-height: 1.55;
}

.pic-photographers-steps {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto 115px;
}

.pic-photographers-section-heading {
    max-width: 650px;
    margin-bottom: 38px;
}

.pic-photographers-section-heading p {
    margin: 0;
    color: #777;
    line-height: 1.65;
}

.pic-photographers-step-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.pic-photographers-step {
    min-height: 245px;
    padding: 25px;
    position: relative;
    overflow: hidden;
    border-radius: 21px;
    background: white;
    border: 1px solid #E8E1F7;
    transition: .22s ease;
}

.pic-photographers-step:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 45px rgba(75,40,110,.09);
}

.pic-photographers-step-number {
    color: #b8a8d6;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 1px;
}

.pic-photographers-step-icon {
    width: 48px;
    height: 48px;
    margin: 38px 0 24px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: white;
    font-size: 21px;
    font-weight: 700;
    background: linear-gradient(135deg, #6F3CC3, #C34BD0);
    box-shadow: 0 10px 23px rgba(111,60,195,.2);
}

.pic-photographers-step h3 {
    margin: 0 0 8px;
    color: #222;
    font-size: 17px;
}

.pic-photographers-step p {
    margin: 0;
    color: #777;
    font-size: 13px;
    line-height: 1.55;
}

.pic-photographers-closing {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto 70px;
    padding: 75px 70px;
    position: relative;
    overflow: hidden;
    border-radius: 32px;
    color: white;
    background:
        radial-gradient(circle at 80% 20%, rgba(255,255,255,.20), transparent 28%),
        radial-gradient(circle at 15% 90%, rgba(93,97,210,.42), transparent 30%),
        linear-gradient(120deg, #512A9E, #6F3CC3 48%, #C34BD0);
    box-shadow: 0 28px 70px rgba(81,42,158,.23);
}

.pic-photographers-closing-inner {
    max-width: 720px;
}

.pic-photographers-closing .pic-photographers-section-label {
    color: rgba(255,255,255,.82);
}

.pic-photographers-closing .pic-photographers-section-label::before {
    background: rgba(255,255,255,.72);
}

.pic-photographers-closing h2 {
    margin-top: 14px;
}

.pic-photographers-closing p {
    max-width: 610px;
    margin: 0 0 28px;
    color: rgba(255,255,255,.79);
    line-height: 1.65;
}

.pic-photographers-closing .pic-photographers-primary {
    color: #512A9E;
    background: white;
    box-shadow: 0 13px 30px rgba(35,15,65,.19);
}

.pic-photographers-closing .pic-photographers-primary:hover {
    box-shadow: 0 18px 36px rgba(35,15,65,.24);
}

.pic-photographers-p-mark {
    position: absolute;
    right: 8%;
    top: 50%;
    transform: translateY(-50%) rotate(9deg);
    font-size: 220px;
    line-height: 1;
    font-weight: 900;
    color: rgba(255,255,255,.08);
}

.pic-photographers-footer {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 25px 0 38px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #888;
    font-size: 12px;
    border-top: 1px solid #E8E1F7;
}

.pic-photographers-footer strong {
    color: #512A9E;
}

@media (max-width: 900px) {
    .pic-photographers-hero {
        grid-template-columns: 1fr;
        padding-top: 50px;
    }

    .pic-photographers-hero-content {
        max-width: 720px;
    }

    .pic-photographers-visual {
        min-height: 510px;
    }

    .pic-photographers-trust {
        grid-template-columns: 1fr;
    }

    .pic-photographers-step-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .pic-photographers-p-mark {
        right: -5%;
    }
}

@media (max-width: 600px) {
    .pic-photographers-topbar,
    .pic-photographers-hero,
    .pic-photographers-trust,
    .pic-photographers-steps,
    .pic-photographers-closing,
    .pic-photographers-footer {
        width: calc(100% - 30px);
    }

    .pic-photographers-topbar {
        min-height: 70px;
    }

    .pic-photographers-brand {
        font-size: 20px;
    }

    .pic-photographers-login {
        padding: 8px 13px;
        font-size: 12px;
    }

    .pic-photographers-hero {
        padding: 40px 0 70px;
        gap: 20px;
    }

    .pic-photographers-hero h1 {
        font-size: clamp(48px, 14vw, 67px);
        letter-spacing: -3px;
    }

    .pic-photographers-lead {
        font-size: 16px;
        line-height: 1.55;
    }

    .pic-photographers-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .pic-photographers-primary,
    .pic-photographers-secondary {
        width: 100%;
    }

    .pic-photographers-visual {
        min-height: 420px;
    }

    .pic-photographers-card {
        width: 285px;
        height: 360px;
        border-radius: 21px;
    }

    .pic-photographers-photo {
        height: 205px;
    }

    .pic-photographers-p-symbol {
        width: 55px;
        height: 55px;
        right: 3%;
        bottom: 4%;
    }

    .pic-photographers-trust {
        margin-bottom: 70px;
        padding: 32px 24px;
        gap: 35px;
        border-radius: 24px;
    }

    .pic-photographers-steps {
        margin-bottom: 75px;
    }

    .pic-photographers-step-grid {
        grid-template-columns: 1fr;
    }

    .pic-photographers-step {
        min-height: auto;
    }

    .pic-photographers-closing {
        padding: 48px 28px;
        border-radius: 25px;
    }

    .pic-photographers-p-mark {
        font-size: 130px;
        right: -3%;
        top: 22%;
    }

    .pic-photographers-footer {
        flex-direction: column;
        padding-bottom: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pic-photographers-page *,
    .pic-photographers-page *::before,
    .pic-photographers-page *::after {
        transition: none !important;
        animation: none !important;
    }
}



/* ============================================================
   PIC-ARTE — PARA CLUBES V1
   ============================================================ */

.pic-clubs-page {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(
            circle at 84% 7%,
            rgba(195,75,208,.14),
            transparent 28%
        ),
        radial-gradient(
            circle at 7% 30%,
            rgba(93,97,210,.10),
            transparent 26%
        ),
        #f7f7f5;
    color: #111;
    overflow-x: hidden;
}

.pic-clubs-page *,
.pic-clubs-page *::before,
.pic-clubs-page *::after {
    box-sizing: border-box;
}

.pic-clubs-topbar {
    width: min(1180px, calc(100% - 48px));
    min-height: 82px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 10;
}

.pic-clubs-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #17131d;
    text-decoration: none;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.7px;
}

.pic-clubs-brand img {
    width: 32px;
    height: 32px;
    display: block;
}

.pic-clubs-photographer-link {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 9px 17px;
    border: 1px solid #E8E1F7;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    color: #512A9E;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    transition: .2s ease;
}

.pic-clubs-photographer-link:hover {
    transform: translateY(-1px);
    border-color: #cdb9ec;
    box-shadow: 0 8px 22px rgba(111,60,195,.12);
}


/* ============================================================
   HERO
   ============================================================ */

.pic-clubs-hero {
    width: min(1180px, calc(100% - 48px));
    min-height: 650px;
    margin: 0 auto;
    padding: 75px 0 105px;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
    gap: 65px;
    align-items: center;
    position: relative;
}

.pic-clubs-hero-content {
    position: relative;
    z-index: 3;
}

.pic-clubs-eyebrow,
.pic-clubs-section-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #6F3CC3;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.pic-clubs-eyebrow::before,
.pic-clubs-section-label::before {
    content: "";
    width: 23px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        #6F3CC3,
        #C34BD0
    );
}

.pic-clubs-hero h1 {
    margin: 18px 0 22px;
    font-size: clamp(52px, 6vw, 82px);
    line-height: .94;
    letter-spacing: -5px;
    font-weight: 850;
}

.pic-clubs-hero h1 span,
.pic-clubs-proposal h2 span,
.pic-clubs-benefit h2 span,
.pic-clubs-closing h2 span {
    background:
        linear-gradient(
            90deg,
            #512A9E,
            #6F3CC3 45%,
            #C34BD0 78%,
            #5D61D2
        );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.pic-clubs-lead {
    max-width: 610px;
    margin: 0;
    color: #666;
    font-size: 18px;
    line-height: 1.7;
}

.pic-clubs-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.pic-clubs-primary,
.pic-clubs-secondary {
    min-height: 52px;
    padding: 14px 21px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border-radius: 14px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
    transition: .2s ease;
}

.pic-clubs-primary {
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #512A9E,
            #6F3CC3 55%,
            #9258D1
        );
    box-shadow:
        0 13px 30px rgba(81,42,158,.22);
}

.pic-clubs-primary:hover {
    transform: translateY(-2px);
    box-shadow:
        0 18px 36px rgba(81,42,158,.28);
}

.pic-clubs-primary span {
    font-size: 18px;
}

.pic-clubs-secondary {
    color: #512A9E;
    border: 1px solid #E8E1F7;
    background: rgba(255,255,255,.82);
}

.pic-clubs-secondary:hover {
    transform: translateY(-1px);
    border-color: #cdb9ec;
    box-shadow: 0 8px 22px rgba(111,60,195,.10);
}

.pic-clubs-note {
    margin-top: 17px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #888;
    font-size: 12px;
}

.pic-clubs-note-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #9258D1;
    box-shadow: 0 0 0 5px rgba(146,88,209,.10);
}


/* ============================================================
   HERO VISUAL — PIC-ARTE PROFESSIONAL ACCOUNT V4
   ============================================================ */

.pic-clubs-visual {
    min-height: 530px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    isolation: isolate;
}

.pic-clubs-visual-orbit {
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(1px);
    z-index: 0;
}

.pic-clubs-visual-orbit-a {
    width: 360px;
    height: 360px;
    top: 5%;
    right: 2%;
    background:
        radial-gradient(
            circle,
            rgba(195,75,208,.18),
            rgba(111,60,195,.07) 42%,
            rgba(111,60,195,0) 72%
        );
}

.pic-clubs-visual-orbit-b {
    width: 300px;
    height: 300px;
    bottom: 4%;
    left: 0;
    background:
        radial-gradient(
            circle,
            rgba(93,97,210,.15),
            rgba(93,97,210,.05) 45%,
            rgba(93,97,210,0) 72%
        );
}

.pic-clubs-card-back {
    position: absolute;
    width: min(455px, 86%);
    height: 445px;
    border-radius: 30px;
    transform: rotate(6deg) translate(26px, 18px);
    background:
        linear-gradient(
            145deg,
            #eee8fb 0%,
            #f8f2ff 52%,
            #eef0ff 100%
        );
    border: 1px solid rgba(111,60,195,.10);
    box-shadow:
        0 28px 70px rgba(81,42,158,.12);
    z-index: 1;
}

.pic-clubs-card-main {
    position: absolute;
    width: min(455px, 86%);
    height: 445px;
    overflow: hidden;
    border-radius: 30px;
    background: #fff;
    border: 1px solid rgba(111,60,195,.10);
    box-shadow:
        0 32px 80px rgba(60,35,90,.17),
        0 10px 28px rgba(81,42,158,.08);
    z-index: 2;
}

.pic-clubs-card-top {
    height: 58px;
    padding: 0 21px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.pic-clubs-brand-mini {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #2b2234;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: -.1px;
}

.pic-clubs-brand-mini-mark {
    width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #512A9E,
            #6F3CC3 52%,
            #C34BD0
        );
    box-shadow:
        0 7px 16px rgba(111,60,195,.20);
    font-size: 12px;
    font-weight: 900;
}

.pic-clubs-card-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #777;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 1.2px;
}

.pic-clubs-card-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #6F3CC3;
    box-shadow:
        0 0 0 4px rgba(111,60,195,.09);
}

.pic-clubs-card-photo {
    height: 265px;
    margin: 0 14px;
    position: relative;
    overflow: hidden;
    border-radius: 21px;
    background:
        linear-gradient(
            135deg,
            #512A9E 0%,
            #6F3CC3 34%,
            #9258D1 58%,
            #C34BD0 78%,
            #5D61D2 100%
        );
}

.pic-clubs-card-photo::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            115deg,
            rgba(255,255,255,.18),
            rgba(255,255,255,0) 38%,
            rgba(255,255,255,.10) 67%,
            rgba(255,255,255,0)
        );
    pointer-events: none;
}

.pic-clubs-photo-glow {
    position: absolute;
    width: 270px;
    height: 270px;
    top: -110px;
    right: -55px;
    border-radius: 50%;
    background:
        radial-gradient(
            circle,
            rgba(255,255,255,.48),
            rgba(255,255,255,.10) 38%,
            rgba(255,255,255,0) 70%
        );
}

.pic-clubs-photo-frame {
    position: absolute;
    border-radius: 22px;
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.95),
            rgba(255,255,255,.28)
        );
    box-shadow:
        0 22px 38px rgba(40,20,70,.20);
}

.pic-clubs-photo-frame-a {
    width: 150px;
    height: 188px;
    left: 39px;
    top: 40px;
    transform: rotate(-8deg);
}

.pic-clubs-photo-frame-b {
    width: 155px;
    height: 195px;
    left: 135px;
    top: 20px;
    transform: rotate(4deg);
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.98),
            rgba(255,255,255,.38)
        );
    z-index: 2;
}

.pic-clubs-photo-frame-c {
    width: 135px;
    height: 172px;
    right: 30px;
    top: 62px;
    transform: rotate(10deg);
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.82),
            rgba(255,255,255,.22)
        );
}

.pic-clubs-photo-label {
    position: absolute;
    left: 22px;
    bottom: 19px;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: #fff;
    text-shadow: 0 2px 12px rgba(30,10,55,.22);
}

.pic-clubs-photo-label span {
    font-size: 8px;
    font-weight: 850;
    letter-spacing: 1.6px;
    opacity: .78;
}

.pic-clubs-photo-label strong {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: -.3px;
}

.pic-clubs-photo-corner {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 4;
    display: flex;
    gap: 5px;
}

.pic-clubs-photo-corner span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(255,255,255,.72);
}

.pic-clubs-card-content {
    min-height: 122px;
    padding: 17px 22px 18px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}

.pic-clubs-card-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.pic-clubs-card-eyebrow {
    color: #7a65a1;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: 1.4px;
}

.pic-clubs-card-copy strong {
    color: #241d2c;
    font-size: 15px;
    line-height: 1.18;
    letter-spacing: -.3px;
}

.pic-clubs-card-copy > span:last-child {
    max-width: 270px;
    color: #888;
    font-size: 10px;
    line-height: 1.45;
}

.pic-clubs-product-row {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
}

.pic-clubs-product-row span {
    display: inline-flex;
    align-items: center;
    min-height: 23px;
    padding: 0 9px;
    border-radius: 999px;
    color: #512A9E;
    background: #f2edff;
    font-size: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.pic-clubs-floating-note {
    position: absolute;
    right: 1%;
    bottom: 8%;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 205px;
    padding: 11px 13px;
    border: 1px solid rgba(111,60,195,.10);
    border-radius: 15px;
    background: rgba(255,255,255,.88);
    box-shadow:
        0 18px 42px rgba(60,35,90,.12);
    backdrop-filter: blur(10px);
}

.pic-clubs-floating-icon {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #512A9E,
            #6F3CC3,
            #C34BD0
        );
    font-size: 13px;
}

.pic-clubs-floating-note div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pic-clubs-floating-note strong {
    color: #33293b;
    font-size: 10px;
    line-height: 1.2;
}

.pic-clubs-floating-note div span {
    color: #8b858e;
    font-size: 8px;
    line-height: 1.3;
}

@media (max-width: 900px) {

    .pic-clubs-visual {
        min-height: 500px;
    }

    .pic-clubs-card-back,
    .pic-clubs-card-main {
        width: min(455px, 88%);
    }

    .pic-clubs-floating-note {
        right: 2%;
        bottom: 7%;
    }

}

@media (max-width: 640px) {

    .pic-clubs-visual {
        min-height: 430px;
    }

    .pic-clubs-card-back,
    .pic-clubs-card-main {
        width: 88%;
        height: 375px;
        border-radius: 25px;
    }

    .pic-clubs-card-top {
        height: 50px;
        padding: 0 17px;
    }

    .pic-clubs-brand-mini {
        font-size: 11px;
    }

    .pic-clubs-brand-mini-mark {
        width: 23px;
        height: 23px;
        border-radius: 7px;
    }

    .pic-clubs-card-photo {
        height: 218px;
        margin: 0 11px;
        border-radius: 18px;
    }

    .pic-clubs-photo-frame-a {
        width: 118px;
        height: 148px;
        left: 24px;
        top: 35px;
    }

    .pic-clubs-photo-frame-b {
        width: 125px;
        height: 155px;
        left: 102px;
        top: 22px;
    }

    .pic-clubs-photo-frame-c {
        width: 108px;
        height: 138px;
        right: 22px;
        top: 47px;
    }

    .pic-clubs-photo-label {
        left: 16px;
        bottom: 14px;
    }

    .pic-clubs-photo-label strong {
        font-size: 13px;
    }

    .pic-clubs-card-content {
        min-height: 107px;
        padding: 13px 17px 15px;
        gap: 10px;
    }

    .pic-clubs-card-copy strong {
        font-size: 13px;
    }

    .pic-clubs-card-copy > span:last-child {
        font-size: 9px;
        max-width: 210px;
    }

    .pic-clubs-product-row {
        gap: 4px;
    }

    .pic-clubs-product-row span {
        min-height: 21px;
        padding: 0 7px;
        font-size: 7px;
    }

    .pic-clubs-floating-note {
        right: 0;
        bottom: 4%;
        max-width: 185px;
        padding: 9px 10px;
        border-radius: 13px;
    }

    .pic-clubs-floating-icon {
        width: 26px;
        height: 26px;
        flex-basis: 26px;
        border-radius: 8px;
        font-size: 11px;
    }

}


/* ============================================================
   PROPOSAL
   ============================================================ */

.pic-clubs-proposal {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto 100px;
    padding: 58px 62px;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 70px;
    align-items: center;
    border: 1px solid #E8E1F7;
    border-radius: 30px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 25px 65px rgba(60,35,90,.07);
}

.pic-clubs-proposal h2,
.pic-clubs-benefit h2,
.pic-clubs-closing h2 {
    margin: 13px 0 14px;
    font-size: clamp(31px, 4vw, 48px);
    line-height: 1.02;
    letter-spacing: -2.5px;
}

.pic-clubs-proposal-copy p {
    max-width: 520px;
    margin: 0;
    color: #666;
    line-height: 1.7;
}

.pic-clubs-proposal-points {
    display: grid;
    gap: 13px;
}

.pic-clubs-proposal-point {
    padding: 21px 22px;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 13px;
    border-radius: 17px;
    background: #faf9ff;
    border: 1px solid #eee8f8;
}

.pic-clubs-proposal-point > span {
    color: #9258D1;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 1px;
}

.pic-clubs-proposal-point strong {
    display: block;
    margin-bottom: 6px;
    color: #27202f;
    font-size: 14px;
}

.pic-clubs-proposal-point p {
    margin: 0;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}


/* ============================================================
   STEPS
   ============================================================ */

.pic-clubs-steps {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto 100px;
}

.pic-clubs-section-heading {
    margin-bottom: 38px;
}

.pic-clubs-step-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.pic-clubs-step {
    min-height: 265px;
    padding: 25px;
    position: relative;
    overflow: hidden;
    border: 1px solid #E8E1F7;
    border-radius: 21px;
    background: rgba(255,255,255,.80);
    box-shadow: 0 15px 40px rgba(60,35,90,.045);
}

.pic-clubs-step-number {
    color: #9258D1;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 1.5px;
}

.pic-clubs-step-icon {
    margin-top: 34px;
    color: #6F3CC3;
    font-size: 30px;
    font-weight: 800;
}

.pic-clubs-step h3 {
    margin: 21px 0 9px;
    color: #27202f;
    font-size: 16px;
}

.pic-clubs-step p {
    margin: 0;
    color: #777;
    font-size: 13px;
    line-height: 1.65;
}


/* ============================================================
   BENEFIT
   ============================================================ */

.pic-clubs-benefit {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto 100px;
    padding: 0;
}

.pic-clubs-benefit-inner {
    min-height: 340px;
    padding: 52px 62px;
    display: grid;
    grid-template-columns: 105px 1fr;
    gap: 40px;
    align-items: center;
    overflow: hidden;
    position: relative;
    border-radius: 30px;
    background:
        radial-gradient(
            circle at 85% 25%,
            rgba(255,255,255,.18),
            transparent 27%
        ),
        linear-gradient(
            135deg,
            #512A9E,
            #6F3CC3 45%,
            #9258D1 72%,
            #C34BD0
        );
    box-shadow:
        0 30px 75px rgba(81,42,158,.22);
}

.pic-clubs-benefit-inner::after {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    right: -130px;
    bottom: -230px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.15);
}

/* PIC-ARTE — BENEFIT LOGO V1 */

.pic-clubs-p-mark {
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 27px;
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.20),
            rgba(255,255,255,.08)
        );
    border: 1px solid rgba(255,255,255,.20);
    box-shadow:
        0 20px 45px rgba(37,18,75,.18);
    transform: rotate(-7deg);
    overflow: hidden;
}

.pic-clubs-p-mark img {
    width: 62px;
    height: 62px;
    display: block;
    object-fit: contain;
    filter:
        drop-shadow(0 8px 16px rgba(37,18,75,.20));
}

.pic-clubs-benefit .pic-clubs-section-label {
    color: rgba(255,255,255,.76);
}

.pic-clubs-benefit .pic-clubs-section-label::before {
    background: rgba(255,255,255,.72);
}

.pic-clubs-benefit h2 {
    color: #fff;
}

.pic-clubs-benefit h2 span {
    background:
        linear-gradient(
            90deg,
            #fff,
            rgba(255,255,255,.72)
        );
    -webkit-background-clip: text;
    background-clip: text;
}

.pic-clubs-benefit p {
    max-width: 680px;
    margin: 0;
    color: rgba(255,255,255,.80);
    line-height: 1.7;
}


/* ============================================================
   CLOSING
   ============================================================ */

.pic-clubs-closing {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto 70px;
}

.pic-clubs-closing-inner {
    padding: 62px;
    border: 1px solid #E8E1F7;
    border-radius: 30px;
    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(195,75,208,.10),
            transparent 30%
        ),
        #fff;
}

.pic-clubs-closing h2 {
    max-width: 720px;
}

.pic-clubs-closing p {
    max-width: 650px;
    margin: 0 0 27px;
    color: #666;
    line-height: 1.7;
}


/* ============================================================
   FOOTER
   ============================================================ */

.pic-clubs-footer {
    width: min(1180px, calc(100% - 48px));
    min-height: 85px;
    margin: 0 auto;
    padding: 20px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #999;
    font-size: 12px;
}

.pic-clubs-footer span:first-child {
    color: #512A9E;
    font-weight: 850;
    font-size: 15px;
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 900px) {

    .pic-clubs-hero {
        grid-template-columns: 1fr;
        gap: 35px;
        padding-top: 48px;
    }

    .pic-clubs-visual {
        min-height: 500px;
    }

    .pic-clubs-proposal {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .pic-clubs-step-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width: 640px) {

    .pic-clubs-topbar {
        width: min(100% - 32px, 1180px);
        min-height: 70px;
    }

    .pic-clubs-photographer-link {
        min-height: 36px;
        padding: 8px 13px;
        font-size: 12px;
    }

    .pic-clubs-hero,
    .pic-clubs-proposal,
    .pic-clubs-steps,
    .pic-clubs-benefit,
    .pic-clubs-closing,
    .pic-clubs-footer {
        width: min(100% - 32px, 1180px);
    }

    .pic-clubs-hero {
        min-height: auto;
        padding: 48px 0 72px;
    }

    .pic-clubs-hero h1 {
        font-size: clamp(48px, 14vw, 67px);
        letter-spacing: -4px;
    }

    .pic-clubs-lead {
        font-size: 16px;
    }

    .pic-clubs-actions {
        flex-direction: column;
    }

    .pic-clubs-primary,
    .pic-clubs-secondary {
        width: 100%;
    }

    .pic-clubs-visual {
        min-height: 430px;
    }

    .pic-clubs-card {
        width: 88%;
    }

    .pic-clubs-card-back,
    .pic-clubs-card-main {
        height: 375px;
    }

    .pic-clubs-photo {
        height: 220px;
    }

    .pic-clubs-photo-shape {
        left: 43%;
        top: 76px;
    }
.pic-clubs-proposal {
        margin-bottom: 72px;
        padding: 30px 22px;
        border-radius: 25px;
    }

    .pic-clubs-proposal h2,
    .pic-clubs-benefit h2,
    .pic-clubs-closing h2 {
        font-size: 34px;
        letter-spacing: -1.8px;
    }

    .pic-clubs-step-grid {
        grid-template-columns: 1fr;
    }

    .pic-clubs-step {
        min-height: auto;
    }

    .pic-clubs-benefit {
        margin-bottom: 72px;
    }

    .pic-clubs-benefit-inner {
        min-height: auto;
        padding: 35px 25px;
        grid-template-columns: 1fr;
        gap: 25px;
        border-radius: 25px;
    }

    .pic-clubs-p-mark {
        width: 70px;
        height: 70px;
        border-radius: 21px;
        font-size: 30px;
    }

    .pic-clubs-closing {
        margin-bottom: 45px;
    }

    .pic-clubs-closing-inner {
        padding: 35px 25px;
        border-radius: 25px;
    }

    .pic-clubs-footer {
        min-height: auto;
        padding: 25px 0 35px;
        flex-direction: column;
        align-items: flex-start;
    }
}


/* ============================================================
   PIC-ARTE — INSTITUTIONAL / LEGAL V1
   ============================================================ */

.pic-legal-page {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(
            circle at 84% 6%,
            rgba(195,75,208,.10),
            transparent 25%
        ),
        radial-gradient(
            circle at 7% 20%,
            rgba(93,97,210,.08),
            transparent 23%
        ),
        #f7f7f5;
    color: #111;
}

.pic-legal-page *,
.pic-legal-page *::before,
.pic-legal-page *::after {
    box-sizing: border-box;
}

.pic-legal-header {
    background: rgba(255,255,255,.92);
    border-bottom: 1px solid #e8e1f7;
    position: relative;
    z-index: 5;
}

.pic-legal-header-inner {
    width: min(1180px, calc(100% - 48px));
    min-height: 76px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.pic-legal-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #111;
    text-decoration: none;
    font-size: 20px;
    font-weight: 850;
    letter-spacing: -.02em;
}

.pic-legal-brand-mark {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 19px;
    font-weight: 900;
    background:
        linear-gradient(
            135deg,
            #512A9E 0%,
            #6F3CC3 48%,
            #C34BD0 100%
        );
    box-shadow: 0 8px 20px rgba(111,60,195,.20);
}

.pic-legal-back {
    color: #666;
    text-decoration: none;
    font-size: 13px;
    font-weight: 650;
}

.pic-legal-back:hover {
    color: #512A9E;
}

.pic-legal-main {
    padding: 68px 0 88px;
}

.pic-legal-container {
    width: min(1040px, calc(100% - 48px));
    margin: 0 auto;
}

.pic-legal-intro {
    max-width: 790px;
    margin-bottom: 38px;
}

.pic-legal-eyebrow {
    display: inline-block;
    margin-bottom: 13px;
    color: #6F3CC3;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .12em;
}

.pic-legal-intro h1 {
    margin: 0;
    font-size: clamp(38px, 5vw, 58px);
    line-height: 1.02;
    letter-spacing: -.045em;
    font-weight: 900;
}

.pic-legal-lead {
    max-width: 720px;
    margin: 22px 0 0;
    color: #666;
    font-size: 18px;
    line-height: 1.65;
}

.pic-legal-updated {
    margin: 18px 0 0;
    color: #8a8a8a;
    font-size: 12px;
}

.pic-legal-index {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 48px;
    padding: 22px;
    background: rgba(255,255,255,.78);
    border: 1px solid #e8e1f7;
    border-radius: 20px;
}

.pic-legal-index a {
    padding: 9px 12px;
    color: #555;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.4;
    border-radius: 9px;
}

.pic-legal-index a:hover {
    color: #512A9E;
    background: #f5f3ff;
}

.pic-legal-content {
    max-width: 820px;
    margin: 0 auto;
    padding: 48px 56px;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 24px;
    box-shadow: 0 18px 60px rgba(40,20,70,.06);
}

.pic-legal-content section {
    scroll-margin-top: 90px;
}

.pic-legal-content section + section {
    margin-top: 48px;
    padding-top: 48px;
    border-top: 1px solid #ededed;
}

.pic-legal-content h2 {
    margin: 0 0 17px;
    color: #171717;
    font-size: 23px;
    line-height: 1.2;
    letter-spacing: -.02em;
}

.pic-legal-content p {
    margin: 0 0 15px;
    color: #555;
    font-size: 15px;
    line-height: 1.78;
}

.pic-legal-content p:last-child {
    margin-bottom: 0;
}

.pic-legal-note {
    margin-top: 24px;
    padding: 18px 20px;
    background:
        linear-gradient(
            135deg,
            rgba(111,60,195,.07),
            rgba(195,75,208,.05)
        );
    border: 1px solid #e4daf7;
    border-radius: 14px;
    color: #555;
    font-size: 14px;
    line-height: 1.65;
}

.pic-legal-note strong {
    color: #512A9E;
}

.pic-legal-closing {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-top: 52px;
    padding-top: 25px;
    border-top: 1px solid #ededed;
    color: #888;
    font-size: 12px;
}

.pic-legal-closing strong {
    color: #512A9E;
    font-size: 14px;
}

.pic-institutional-footer {
    background: #17131f;
    color: #fff;
    margin-top: 0;
}

.pic-institutional-footer-inner {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 58px 0 50px;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1.15fr;
    gap: 44px;
}

.pic-institutional-brand {
    padding-right: 20px;
}

.pic-institutional-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    text-decoration: none;
    font-size: 21px;
    font-weight: 850;
    letter-spacing: -.02em;
}

.pic-institutional-logo-mark {
    width: 36px;
    height: 36px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 19px;
    font-weight: 900;
    background:
        linear-gradient(
            135deg,
            #6F3CC3,
            #9258D1 52%,
            #C34BD0
        );
}

.pic-institutional-brand p {
    margin: 17px 0 0;
    color: rgba(255,255,255,.56);
    font-size: 13px;
    line-height: 1.65;
}

.pic-institutional-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.pic-institutional-column h3 {
    margin: 2px 0 16px;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.pic-institutional-column a {
    margin: 0 0 10px;
    color: rgba(255,255,255,.58);
    text-decoration: none;
    font-size: 13px;
    line-height: 1.45;
}

.pic-institutional-column a:hover,
.pic-institutional-column a.active {
    color: #fff;
}

.pic-institutional-footer-bottom {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 19px 0 25px;
    border-top: 1px solid rgba(255,255,255,.10);
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: rgba(255,255,255,.38);
    font-size: 11px;
}

@media (max-width: 900px) {

    .pic-legal-header-inner {
        min-height: 68px;
    }

    .pic-legal-main {
        padding: 48px 0 65px;
    }

    .pic-legal-index {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pic-legal-content {
        padding: 38px 28px;
        border-radius: 20px;
    }

    .pic-institutional-footer-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 38px 28px;
    }

}

@media (max-width: 600px) {

    .pic-legal-header-inner,
    .pic-legal-container,
    .pic-institutional-footer-inner,
    .pic-institutional-footer-bottom {
        width: min(100% - 32px, 1180px);
    }

    .pic-legal-back {
        font-size: 12px;
    }

    .pic-legal-intro h1 {
        font-size: 38px;
    }

    .pic-legal-lead {
        font-size: 16px;
    }

    .pic-legal-index {
        grid-template-columns: 1fr;
        padding: 15px;
        border-radius: 16px;
    }

    .pic-legal-content {
        padding: 31px 21px;
        border-radius: 18px;
    }

    .pic-legal-content h2 {
        font-size: 21px;
    }

    .pic-legal-content p {
        font-size: 14px;
        line-height: 1.72;
    }

    .pic-legal-content section + section {
        margin-top: 38px;
        padding-top: 38px;
    }

    .pic-legal-closing {
        flex-direction: column;
        align-items: flex-start;
    }

    .pic-institutional-footer-inner {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 43px 0 38px;
    }

    .pic-institutional-brand {
        padding-right: 0;
    }

    .pic-institutional-footer-bottom {
        flex-direction: column;
        gap: 7px;
        padding-bottom: 22px;
    }

}


/* =========================================================
   PIC-ARTE — INSTITUTIONAL FOOTER V2
   MOBILE FIRST
   ========================================================= */

.pic-institutional-footer {
    width: 100%;
    margin: 0;
    padding: 0;
    background:
        radial-gradient(
            circle at 12% 0%,
            rgba(111,60,195,.08),
            transparent 32%
        ),
        linear-gradient(
            180deg,
            #ffffff 0%,
            #faf9ff 100%
        );
    border-top: 1px solid var(--pic-line, #E8E1F7);
    color: #555;
}

.pic-institutional-footer-inner {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    padding: 42px 0 34px;

    display: grid;
    grid-template-columns: 1fr;
    gap: 34px;
}

.pic-footer-brand {
    min-width: 0;
}

.pic-footer-brand-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;

    color: inherit;
    text-decoration: none;
}

.pic-footer-mark {
    width: 38px;
    height: 38px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 38px;

    border-radius: 12px;

    background:
        linear-gradient(
            135deg,
            var(--pic-violet, #6F3CC3),
            var(--pic-fuchsia, #C34BD0)
        );

    color: white;

    font-size: 22px;
    font-weight: 900;
    line-height: 1;

    box-shadow:
        0 8px 24px rgba(111,60,195,.18);
}

.pic-footer-brand-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pic-footer-brand-copy strong {
    color: #111;
    font-size: 18px;
    line-height: 1.1;
    letter-spacing: -.35px;
}

.pic-footer-brand-copy small {
    color: #858585;
    font-size: 11px;
    line-height: 1.2;
}

.pic-footer-brand p {
    max-width: 330px;
    margin: 15px 0 0;

    color: #777;
    font-size: 13px;
    line-height: 1.55;
}

.pic-footer-column {
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
}

.pic-footer-column h3 {
    margin: 0 0 10px;

    color: #222;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
}

.pic-footer-column a {
    display: inline-flex;
    align-items: center;

    min-height: 38px;
    padding: 7px 0;

    color: #707070;
    text-decoration: none;

    font-size: 13px;
    line-height: 1.35;

    transition:
        color .18s ease,
        transform .18s ease;
}

.pic-footer-column a:hover {
    color: var(--pic-violet-dark, #512A9E);
    transform: translateX(2px);
}

.pic-institutional-footer-bottom {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;

    min-height: 64px;
    padding: 18px 0;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 7px;

    border-top: 1px solid rgba(232,225,247,.9);

    color: #999;
    font-size: 11px;
    line-height: 1.4;
}

/* Tablet */
@media (min-width: 600px) {

    .pic-institutional-footer-inner {
        width: min(1180px, calc(100% - 48px));

        grid-template-columns:
            minmax(220px, 1.7fr)
            repeat(2, minmax(130px, 1fr));

        gap: 30px;
        padding: 48px 0 38px;
    }

    .pic-footer-column:last-child {
        grid-column: 2 / -1;
    }

    .pic-institutional-footer-bottom {
        width: min(1180px, calc(100% - 48px));

        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

}

/* Desktop */
@media (min-width: 960px) {

    .pic-institutional-footer-inner {
        grid-template-columns:
            minmax(300px, 1.8fr)
            repeat(3, minmax(150px, 1fr));

        gap: 44px;
        padding: 58px 0 46px;
    }

    .pic-footer-column:last-child {
        grid-column: auto;
    }

    .pic-footer-column a {
        min-height: 32px;
        font-size: 12px;
    }

    .pic-institutional-footer-bottom {
        min-height: 58px;
        padding: 17px 0;
    }

}

/* Touch devices: no hover-dependent behavior */
@media (hover: none) {

    .pic-footer-column a:hover {
        color: #707070;
        transform: none;
    }

    .pic-footer-column a:active {
        color: var(--pic-violet-dark, #512A9E);
    }

}



/* =========================================================
   PIC-ARTE — UNIFIED HEADER V1
   MOBILE FIRST
   ========================================================= */

.pic-site-header {
    position: sticky;
    top: 0;
    z-index: 100;

    width: 100%;
    max-width: 100%;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.98),
            rgba(255,255,255,.94)
        );

    border-bottom: 1px solid var(--pic-line, #E8E1F7);

    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);

    box-sizing: border-box;
}

.pic-site-header *,
.pic-site-header *::before,
.pic-site-header *::after {
    box-sizing: border-box;
}

.pic-site-header-inner {
    width: min(1180px, calc(100% - 28px));
    max-width: 100%;

    min-height: 64px;

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    position: relative;
}

.pic-site-brand {
    min-width: 0;
    max-width: 70%;

    display: inline-flex;
    align-items: center;

    gap: 9px;

    color: #111;
    text-decoration: none;

    flex: 0 1 auto;
}

.pic-site-brand-mark {
    width: 34px;
    height: 34px;

    flex: 0 0 34px;

    display: grid;
    place-items: center;

    overflow: hidden;

    border-radius: 10px;
}

.pic-site-brand-mark img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: contain;
}

.pic-site-brand-name {
    min-width: 0;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    color: #171717;

    font-size: 18px;
    font-weight: 850;

    letter-spacing: -.45px;
}

.pic-site-menu-toggle {
    position: absolute;

    width: 1px;
    height: 1px;

    opacity: 0;
    pointer-events: none;
}

.pic-site-menu-button {
    width: 44px;
    height: 44px;

    flex: 0 0 44px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 5px;

    border-radius: 12px;

    cursor: pointer;

    color: #333;

    -webkit-tap-highlight-color: transparent;
}

.pic-site-menu-button span {
    width: 20px;
    height: 2px;

    border-radius: 999px;

    background: #333;

    transition:
        transform .18s ease,
        opacity .18s ease;
}

.pic-site-navigation {
    position: absolute;

    top: calc(100% + 1px);
    left: 0;
    right: 0;

    display: none;

    padding: 10px;

    background: rgba(255,255,255,.985);

    border: 1px solid var(--pic-line, #E8E1F7);
    border-top: 0;

    border-radius: 0 0 18px 18px;

    box-shadow:
        0 18px 40px rgba(30,20,50,.10);
}

.pic-site-menu-toggle:checked ~ .pic-site-navigation {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pic-site-menu-toggle:checked ~ .pic-site-menu-button span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.pic-site-menu-toggle:checked ~ .pic-site-menu-button span:nth-child(2) {
    opacity: 0;
}

.pic-site-menu-toggle:checked ~ .pic-site-menu-button span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.pic-site-nav {
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 3px;
}

.pic-site-nav a {
    min-height: 44px;

    display: flex;
    align-items: center;

    width: 100%;

    padding: 10px 12px;

    border-radius: 11px;

    color: #5f5f5f;
    text-decoration: none;

    font-size: 14px;
    font-weight: 650;

    white-space: normal;
}

.pic-site-nav a:hover,
.pic-site-nav a.active {
    color: var(--pic-violet-dark, #512A9E);
    background: var(--pic-soft, #F5F3FF);
}

.pic-site-notification-link,
.pic-site-cart-link {
    gap: 7px;
}

.pic-site-notification-link {
    position: relative;
}

.pic-site-notification-link .notification-nav-count,
.pic-site-cart-link .cart-nav-count {
    min-width: 20px;
    height: 20px;

    padding: 0 6px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 999px;

    background: var(--pic-violet, #6F3CC3);
    color: white;

    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.pic-site-login {
    width: 100%;
    min-height: 44px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 10px 16px;

    border-radius: 12px;

    background:
        linear-gradient(
            135deg,
            var(--pic-violet, #6F3CC3),
            var(--pic-fuchsia, #C34BD0)
        );

    color: white;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;

    box-shadow:
        0 7px 20px rgba(111,60,195,.16);
}

.pic-site-login:hover {
    color: white;
    filter: brightness(.98);
}


/* ---------------------------------------------------------
   DESKTOP
   --------------------------------------------------------- */

@media (min-width: 860px) {

    .pic-site-header-inner {
        width: min(1180px, calc(100% - 48px));
        min-height: 72px;

        gap: 24px;
    }

    .pic-site-brand {
        max-width: 240px;
    }

    .pic-site-brand-mark {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }

    .pic-site-brand-name {
        font-size: 20px;
    }

    .pic-site-menu-button,
    .pic-site-menu-toggle {
        display: none;
    }

    .pic-site-navigation {
        position: static;

        display: flex;

        align-items: center;
        justify-content: flex-end;

        gap: 12px;

        padding: 0;

        background: transparent;

        border: 0;
        border-radius: 0;

        box-shadow: none;

        min-width: 0;
        flex: 1;
    }

    .pic-site-nav {
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;

        gap: 4px;

        min-width: 0;
    }

    .pic-site-nav a {
        width: auto;
        min-height: 40px;

        padding: 8px 12px;

        white-space: nowrap;

        font-size: 13px;
    }

    .pic-site-login {
        width: auto;
        min-width: 92px;
        min-height: 40px;

        padding: 8px 15px;

        border-radius: 999px;

        flex: 0 0 auto;
    }

}


/* ---------------------------------------------------------
   WIDE DESKTOP
   --------------------------------------------------------- */

@media (min-width: 1180px) {

    .pic-site-header-inner {
        gap: 38px;
    }

    .pic-site-nav {
        gap: 5px;
    }

    .pic-site-nav a {
        padding-left: 13px;
        padding-right: 13px;
    }

}


/* ---------------------------------------------------------
   TOUCH
   --------------------------------------------------------- */

@media (hover: none) {

    .pic-site-nav a:hover {
        background: transparent;
        color: #5f5f5f;
    }

    .pic-site-nav a:active {
        background: var(--pic-soft, #F5F3FF);
        color: var(--pic-violet-dark, #512A9E);
    }

}

/* =========================================================
   PIC-ARTE — LANDING V2
   ========================================================= */

.pic-home-v2 {
    background:
        radial-gradient(
            circle at 88% 5%,
            rgba(111,60,195,.08),
            transparent 30rem
        ),
        #f7f7f5;
}

.pic-home-v2 *,
.pic-home-v2 *::before,
.pic-home-v2 *::after {
    box-sizing: border-box;
}

.pic-home-v2 main {
    width: 100%;
    overflow: hidden;
}

.pic-home-eyebrow {
    display: inline-block;
    color: var(--pic-violet, #6F3CC3);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .14em;
    line-height: 1.2;
}

.pic-home-hero {
    position: relative;
    padding: 56px 20px 76px;
}

.pic-home-hero-inner {
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    gap: 42px;
    align-items: center;
}

.pic-home-hero-copy {
    min-width: 0;
}

.pic-home-hero-copy h1 {
    max-width: 720px;
    margin: 16px 0 20px;
    color: #111;
    font-size: clamp(42px, 9vw, 78px);
    line-height: .96;
    letter-spacing: -.055em;
    font-weight: 850;
}

.pic-home-hero-copy h1 span {
    display: block;
    background:
        linear-gradient(
            110deg,
            var(--pic-violet, #6F3CC3),
            var(--pic-fuchsia, #C34BD0),
            var(--pic-blue, #5D61D2)
        );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.pic-home-hero-copy p {
    max-width: 610px;
    margin: 0;
    color: #666;
    font-size: 17px;
    line-height: 1.65;
}

.pic-home-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

.pic-home-button {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 18px;
    border-radius: 999px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.pic-home-button:hover {
    transform: translateY(-1px);
}

.pic-home-button-primary {
    background:
        linear-gradient(
            135deg,
            var(--pic-violet, #6F3CC3),
            var(--pic-fuchsia, #C34BD0)
        );
    color: #fff;
    box-shadow: 0 12px 28px rgba(111,60,195,.20);
}

.pic-home-button-primary:hover {
    color: #fff;
    box-shadow: 0 15px 32px rgba(111,60,195,.26);
}

.pic-home-button-secondary {
    background: #fff;
    border: 1px solid var(--pic-line, #E8E1F7);
    color: #333;
}

.pic-home-button-secondary:hover {
    color: var(--pic-violet-dark, #512A9E);
    border-color: rgba(111,60,195,.28);
}

.pic-home-button-light {
    background: #fff;
    color: var(--pic-violet-dark, #512A9E);
}

.pic-home-search {
    width: min(560px, 100%);
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 22px;
    padding: 0 16px;
    background: rgba(255,255,255,.90);
    border: 1px solid #e5e5e5;
    border-radius: 16px;
    box-shadow: 0 12px 35px rgba(20,20,20,.05);
}

.pic-home-search > span {
    flex: 0 0 auto;
    color: var(--pic-violet, #6F3CC3);
    font-size: 24px;
    line-height: 1;
}

.pic-home-search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #111;
    font: inherit;
    font-size: 14px;
}

.pic-home-hero-visual {
    min-width: 0;
}

.pic-home-hero-card {
    position: relative;
    display: block;
    min-height: 390px;
    overflow: hidden;
    border-radius: 28px;
    background: #ddd;
    text-decoration: none;
    box-shadow:
        0 24px 60px rgba(30,20,50,.16),
        0 0 0 1px rgba(255,255,255,.7);
}

.pic-home-hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            to top,
            rgba(10,7,20,.72),
            rgba(10,7,20,.08) 55%,
            transparent
        );
}

.pic-home-hero-card img {
    width: 100%;
    height: 100%;
    min-height: 390px;
    display: block;
    object-fit: cover;
    transition: transform .45s ease;
}

.pic-home-hero-card:hover img {
    transform: scale(1.025);
}

.pic-home-hero-overlay {
    position: absolute;
    z-index: 1;
    left: 22px;
    right: 22px;
    bottom: 22px;
    display: grid;
    gap: 5px;
    color: #fff;
}

.pic-home-hero-overlay span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    opacity: .84;
}

.pic-home-hero-overlay strong {
    font-size: 23px;
    line-height: 1.1;
}

.pic-home-hero-overlay small {
    font-size: 12px;
    opacity: .84;
}

.pic-home-hero-empty {
    min-height: 390px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 16px;
    padding: 30px;
    border: 1px solid var(--pic-line, #E8E1F7);
    border-radius: 28px;
    background:
        radial-gradient(circle at 50% 20%, rgba(195,75,208,.13), transparent 40%),
        #fff;
    text-align: center;
    color: #777;
}

.pic-home-hero-empty img {
    width: 90px;
    height: 90px;
    object-fit: contain;
}

.pic-home-hero-empty span {
    max-width: 280px;
    font-size: 14px;
    line-height: 1.5;
}

.pic-home-events,
.pic-home-value,
.pic-home-how,
.pic-home-trust {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.pic-home-events {
    padding: 26px 0 82px;
}

.pic-home-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.pic-home-section-heading h2,
.pic-home-how-heading h2,
.pic-home-value-heading h2 {
    margin: 10px 0 10px;
    color: #111;
    font-size: clamp(30px, 5vw, 46px);
    line-height: 1;
    letter-spacing: -.045em;
}

.pic-home-section-heading p,
.pic-home-how-heading p {
    max-width: 620px;
    margin: 0;
    color: #777;
    font-size: 15px;
    line-height: 1.6;
}

.pic-home-event-count {
    flex: 0 0 auto;
    padding: 8px 12px;
    border: 1px solid var(--pic-line, #E8E1F7);
    border-radius: 999px;
    background: #fff;
    color: var(--pic-violet-dark, #512A9E);
    font-size: 12px;
    font-weight: 800;
}

.pic-home-event-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.pic-home-event-card {
    min-width: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e9e9e7;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(20,20,20,.045);
}

.pic-home-event-image {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #eee;
}

.pic-home-event-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .3s ease;
}

.pic-home-event-image:hover img {
    transform: scale(1.025);
}

.pic-home-event-image > span {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: #444;
    font-size: 10px;
    font-weight: 800;
}

.pic-home-event-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 50% 40%, rgba(111,60,195,.12), transparent 55%),
        #f4f2f9;
}

.pic-home-event-placeholder img {
    width: 54px;
    height: 54px;
    object-fit: contain;
}

.pic-home-event-content {
    padding: 17px;
}

.pic-home-event-content > small {
    color: #888;
    font-size: 11px;
}

.pic-home-event-content h3 {
    margin: 7px 0 5px;
    font-size: 18px;
    line-height: 1.15;
    letter-spacing: -.02em;
}

.pic-home-event-content h3 a {
    color: #111;
    text-decoration: none;
}

.pic-home-event-content h3 a:hover {
    color: var(--pic-violet-dark, #512A9E);
}

.pic-home-event-content p {
    margin: 0 0 10px;
    color: #777;
    font-size: 12px;
}

.pic-home-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    color: #888;
    font-size: 11px;
}

.pic-home-event-link {
    display: inline-flex;
    margin-top: 14px;
    color: var(--pic-violet-dark, #512A9E);
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
}

.pic-home-empty-search {
    display: none;
    padding: 35px 20px;
    text-align: center;
    color: #777;
    font-size: 14px;
}

.pic-home-value {
    padding: 76px 0;
}

.pic-home-value-heading {
    max-width: 760px;
}

.pic-home-value-heading h2 span {
    display: block;
    color: var(--pic-violet, #6F3CC3);
}

.pic-home-value-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 34px;
}

.pic-home-value-item {
    min-width: 0;
    padding: 25px;
    border-top: 1px solid #ddd;
}

.pic-home-value-item > span {
    color: var(--pic-violet, #6F3CC3);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
}

.pic-home-value-item h3 {
    margin: 20px 0 9px;
    color: #111;
    font-size: 19px;
}

.pic-home-value-item p {
    margin: 0;
    color: #777;
    font-size: 14px;
    line-height: 1.65;
}

.pic-home-photographers {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    gap: 50px;
    align-items: center;
    padding: 82px max(20px, calc((100% - 1180px) / 2));
    background:
        radial-gradient(circle at 80% 30%, rgba(195,75,208,.22), transparent 25rem),
        linear-gradient(135deg, #512A9E, #6F3CC3 48%, #5D61D2);
    color: #fff;
}

.pic-home-photographers-copy {
    min-width: 0;
}

.pic-home-photographers-copy .pic-home-eyebrow {
    color: rgba(255,255,255,.75);
}

.pic-home-photographers-copy h2 {
    max-width: 680px;
    margin: 15px 0 18px;
    font-size: clamp(38px, 6vw, 66px);
    line-height: .95;
    letter-spacing: -.055em;
}

.pic-home-photographers-copy h2 span {
    display: block;
    color: #e8d9ff;
}

.pic-home-photographers-copy p {
    max-width: 620px;
    margin: 0 0 25px;
    color: rgba(255,255,255,.82);
    font-size: 16px;
    line-height: 1.65;
}

.pic-home-photographers-card {
    min-width: 0;
    padding: 28px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 25px;
    background: rgba(255,255,255,.10);
    backdrop-filter: blur(14px);
}

.pic-home-card-mark {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
    border-radius: 17px;
    background: rgba(255,255,255,.14);
}

.pic-home-card-mark img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.pic-home-photographers-card strong {
    display: block;
    margin-bottom: 10px;
    font-size: 20px;
    line-height: 1.15;
}

.pic-home-photographers-card p {
    margin: 0;
    color: rgba(255,255,255,.75);
    font-size: 13px;
    line-height: 1.6;
}

.pic-home-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 22px;
}

.pic-home-card-tags span {
    padding: 7px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: rgba(255,255,255,.82);
    font-size: 10px;
    font-weight: 750;
}

.pic-home-clubs {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
    gap: 50px;
    align-items: center;
    padding: 90px 0;
}

.pic-home-clubs-visual {
    min-height: 360px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 28px;
    background:
        radial-gradient(circle at 35% 30%, rgba(195,75,208,.25), transparent 25%),
        radial-gradient(circle at 70% 75%, rgba(93,97,210,.22), transparent 30%),
        #f0edf8;
}

.pic-home-clubs-mark {
    width: 130px;
    height: 130px;
    display: grid;
    place-items: center;
    border-radius: 38px;
    background:
        linear-gradient(
            135deg,
            var(--pic-violet, #6F3CC3),
            var(--pic-fuchsia, #C34BD0)
        );
    color: #fff;
    font-size: 58px;
    font-weight: 900;
    box-shadow: 0 30px 60px rgba(111,60,195,.25);
}

.pic-home-clubs-copy h2 {
    max-width: 650px;
    margin: 14px 0 17px;
    color: #111;
    font-size: clamp(34px, 5vw, 55px);
    line-height: .98;
    letter-spacing: -.05em;
}

.pic-home-clubs-copy p {
    max-width: 620px;
    margin: 0 0 24px;
    color: #777;
    font-size: 16px;
    line-height: 1.65;
}

.pic-home-how {
    padding: 75px 0 85px;
}

.pic-home-how-heading {
    max-width: 700px;
}

.pic-home-how-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 35px;
}

.pic-home-how-card {
    min-width: 0;
    padding: 25px;
    border: 1px solid #e6e6e4;
    border-radius: 20px;
    background: #fff;
    text-decoration: none;
    transition:
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}

.pic-home-how-card:hover {
    border-color: rgba(111,60,195,.28);
    transform: translateY(-2px);
    box-shadow: 0 15px 35px rgba(30,20,50,.07);
}

.pic-home-how-card > span {
    color: var(--pic-violet, #6F3CC3);
    font-size: 11px;
    font-weight: 850;
}

.pic-home-how-card h3 {
    margin: 22px 0 8px;
    color: #111;
    font-size: 21px;
}

.pic-home-how-card p {
    min-height: 48px;
    margin: 0;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}

.pic-home-how-card strong {
    display: inline-flex;
    margin-top: 20px;
    color: var(--pic-violet-dark, #512A9E);
    font-size: 12px;
}

.pic-home-trust {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    padding: 35px 0 90px;
    border-top: 1px solid #ddd;
}

.pic-home-trust > div {
    max-width: 720px;
}

.pic-home-trust h2 {
    margin: 12px 0;
    color: #111;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1;
    letter-spacing: -.04em;
}

.pic-home-trust p {
    margin: 0;
    color: #777;
    font-size: 14px;
    line-height: 1.7;
}

.pic-home-text-link {
    flex: 0 0 auto;
    color: var(--pic-violet-dark, #512A9E);
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
}

.pic-home-final {
    padding: 100px 20px 110px;
    text-align: center;
    background:
        radial-gradient(circle at 50% 20%, rgba(195,75,208,.17), transparent 28rem),
        #111;
    color: #fff;
}

.pic-home-final h2 {
    max-width: 800px;
    margin: 16px auto 15px;
    font-size: clamp(40px, 7vw, 70px);
    line-height: .96;
    letter-spacing: -.055em;
}

.pic-home-final h2 span {
    display: block;
    color: #cdb7f7;
}

.pic-home-final p {
    max-width: 560px;
    margin: 0 auto 27px;
    color: rgba(255,255,255,.68);
    font-size: 15px;
    line-height: 1.6;
}

.pic-home-final .pic-home-eyebrow {
    color: #b995ee;
}


/* ---------------------------------------------------------
   LANDING V2 — TABLET
   --------------------------------------------------------- */

@media (max-width: 900px) {

    .pic-home-event-grid,
    .pic-home-value-grid,
    .pic-home-how-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pic-home-event-card:last-child,
    .pic-home-value-item:last-child,
    .pic-home-how-card:last-child {
        grid-column: 1 / -1;
    }

    .pic-home-photographers {
        grid-template-columns: 1fr;
    }

    .pic-home-photographers-card {
        max-width: 560px;
    }

    .pic-home-clubs {
        grid-template-columns: 1fr;
    }

    .pic-home-clubs-visual {
        min-height: 280px;
    }

}


/* ---------------------------------------------------------
   LANDING V2 — MOBILE
   --------------------------------------------------------- */

@media (max-width: 640px) {

    .pic-home-hero {
        padding: 38px 16px 56px;
    }

    .pic-home-hero-inner {
        gap: 28px;
    }

    .pic-home-hero-copy h1 {
        font-size: clamp(40px, 13vw, 58px);
    }

    .pic-home-hero-copy p {
        font-size: 15px;
    }

    .pic-home-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .pic-home-button {
        width: 100%;
    }

    .pic-home-search {
        margin-top: 15px;
    }

    .pic-home-hero-card,
    .pic-home-hero-card img,
    .pic-home-hero-empty {
        min-height: 330px;
    }

    .pic-home-events,
    .pic-home-value,
    .pic-home-how,
    .pic-home-trust,
    .pic-home-clubs {
        width: min(100% - 32px, 1180px);
    }

    .pic-home-events {
        padding-bottom: 55px;
    }

    .pic-home-section-heading {
        display: block;
    }

    .pic-home-event-count {
        display: inline-flex;
        margin-top: 15px;
    }

    .pic-home-event-grid,
    .pic-home-value-grid,
    .pic-home-how-grid {
        grid-template-columns: 1fr;
    }

    .pic-home-event-card:last-child,
    .pic-home-value-item:last-child,
    .pic-home-how-card:last-child {
        grid-column: auto;
    }

    .pic-home-value {
        padding: 55px 0;
    }

    .pic-home-value-item {
        padding: 20px 0;
    }

    .pic-home-photographers {
        padding: 62px 16px;
        gap: 30px;
    }

    .pic-home-photographers-copy h2 {
        font-size: clamp(38px, 12vw, 54px);
    }

    .pic-home-photographers-card {
        padding: 22px;
    }

    .pic-home-clubs {
        padding: 62px 0;
        gap: 30px;
    }

    .pic-home-clubs-visual {
        min-height: 230px;
    }

    .pic-home-clubs-mark {
        width: 95px;
        height: 95px;
        border-radius: 28px;
        font-size: 42px;
    }

    .pic-home-how {
        padding: 55px 0;
    }

    .pic-home-how-card p {
        min-height: auto;
    }

    .pic-home-trust {
        display: block;
        padding: 25px 0 60px;
    }

    .pic-home-text-link {
        display: inline-flex;
        margin-top: 20px;
    }

    .pic-home-final {
        padding: 75px 16px 85px;
    }

    .pic-home-final h2 {
        font-size: clamp(40px, 12vw, 56px);
    }

}




/* PIC-ARTE — HERO CARD V4 / READABILITY V1 */

.pic-clubs-brand-mini {
    font-size: 13px;
}

.pic-clubs-brand-mini-mark {
    width: 27px;
    height: 27px;
    font-size: 13px;
}

.pic-clubs-card-status {
    font-size: 10px;
}

.pic-clubs-card-status-dot {
    width: 8px;
    height: 8px;
}

.pic-clubs-photo-label span {
    font-size: 9px;
    letter-spacing: 1.7px;
}

.pic-clubs-photo-label strong {
    font-size: 17px;
}

.pic-clubs-card-content {
    min-height: 122px;
    padding: 17px 23px 19px;
}

.pic-clubs-card-eyebrow {
    font-size: 9px;
    letter-spacing: 1.5px;
}

.pic-clubs-card-copy strong {
    font-size: 17px;
    line-height: 1.2;
}

.pic-clubs-card-copy > span:last-child {
    max-width: 300px;
    color: #716b75;
    font-size: 11px;
    line-height: 1.5;
}

.pic-clubs-product-row {
    gap: 6px;
}

.pic-clubs-product-row span {
    min-height: 25px;
    padding: 0 10px;
    font-size: 9px;
}

.pic-clubs-floating-note {
    max-width: 225px;
    padding: 12px 14px;
}

.pic-clubs-floating-note strong {
    font-size: 11px;
}

.pic-clubs-floating-note div span {
    font-size: 9px;
}

@media (max-width: 640px) {

    .pic-clubs-brand-mini {
        font-size: 12px;
    }

    .pic-clubs-brand-mini-mark {
        width: 25px;
        height: 25px;
        font-size: 12px;
    }

    .pic-clubs-card-status {
        font-size: 9px;
    }

    .pic-clubs-photo-label span {
        font-size: 8px;
    }

    .pic-clubs-photo-label strong {
        font-size: 14px;
    }

    .pic-clubs-card-content {
        min-height: 107px;
        padding: 12px 17px 14px;
    }

    .pic-clubs-card-eyebrow {
        font-size: 8px;
    }

    .pic-clubs-card-copy strong {
        font-size: 14px;
    }

    .pic-clubs-card-copy > span:last-child {
        max-width: 205px;
        font-size: 9.5px;
        line-height: 1.45;
    }

    .pic-clubs-product-row {
        gap: 4px;
    }

    .pic-clubs-product-row span {
        min-height: 22px;
        padding: 0 8px;
        font-size: 7.5px;
    }

    .pic-clubs-floating-note {
        max-width: 195px;
        padding: 10px 11px;
    }

    .pic-clubs-floating-note strong {
        font-size: 10px;
    }

    .pic-clubs-floating-note div span {
        font-size: 8px;
    }

}


/* PIC-ARTE — HERO CARD V4 / FLOATING NOTE FIX V1 */
.pic-clubs-floating-note {
    right: -18px;
    bottom: -42px;
    z-index: 6;
}

@media (max-width: 900px) {
    .pic-clubs-floating-note {
        right: -10px;
        bottom: -38px;
    }
}

@media (max-width: 640px) {
    .pic-clubs-floating-note {
        right: -4px;
        bottom: -34px;
        max-width: 190px;
        padding: 9px 11px;
    }
}


/* PICARTE_BUYER_MOBILE_NAV_V1 */
.pic-buyer-bottom-nav {
    display: none;
}

@media (max-width: 720px) {
    body:has(.pic-buyer-bottom-nav) {
        padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
    }

    .pic-buyer-bottom-nav {
        position: fixed;
        z-index: 1200;
        inset-inline: 0;
        bottom: 0;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 2px;
        padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid rgba(120, 130, 150, .22);
        background: rgba(255, 255, 255, .96);
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);
        box-shadow: 0 -8px 28px rgba(15, 23, 42, .08);
    }

    .pic-buyer-nav-item {
        display: flex;
        min-width: 0;
        min-height: 52px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        border-radius: 12px;
        color: #657084;
        font-size: 11px;
        font-weight: 600;
        line-height: 1.2;
        text-decoration: none;
        transition: color .18s ease, background .18s ease, transform .18s ease;
        -webkit-tap-highlight-color: transparent;
    }

    .pic-buyer-nav-icon {
        font-size: 23px;
        line-height: 1;
    }

    .pic-buyer-nav-item.is-active {
        color: #185adb;
        background: rgba(37, 99, 235, .09);
    }

    .pic-buyer-nav-item:active {
        transform: scale(.95);
    }

    .orders-dashboard,
    .order-detail-dashboard {
        padding-top: 24px;
    }

    .orders-page .order-card {
        animation: picOrderCardEnter .35s ease both;
    }

    .orders-page .order-card:nth-child(2) { animation-delay: .04s; }
    .orders-page .order-card:nth-child(3) { animation-delay: .08s; }
    .orders-page .order-card:nth-child(4) { animation-delay: .12s; }

    .order-card-returned {
        outline: 2px solid #22a06b;
        outline-offset: 3px;
        box-shadow: 0 0 0 6px rgba(34, 160, 107, .12);
    }

    .pic-purchase-return-banner,
    .pic-checkout-return-notice {
        margin: 16px 0;
        padding: 15px 16px;
        border: 1px solid rgba(34, 160, 107, .32);
        border-radius: 16px;
        background: rgba(34, 160, 107, .08);
        color: inherit;
        line-height: 1.5;
    }

    .pic-checkout-return-notice p {
        margin: 6px 0 10px;
    }

    .pic-checkout-return-notice a {
        display: inline-flex;
        min-height: 42px;
        align-items: center;
        font-weight: 700;
    }

    .order-download-button {
        transition: transform .18s ease, box-shadow .18s ease;
    }

    .order-download-button:active {
        transform: scale(.98);
    }
}

@keyframes picOrderCardEnter {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .pic-buyer-nav-item,
    .order-download-button,
    .orders-page .order-card {
        animation: none !important;
        transition: none !important;
    }
}


/* PIC-ARTE HEADER: DARK THEME CONTRAST FIX */
html[data-theme="dark"] .pic-site-header {
    background: linear-gradient(180deg, rgba(25,27,35,.98), rgba(25,27,35,.94));
    border-bottom-color: #343744;
    color: #f4f5f8;
}

html[data-theme="dark"] .pic-site-header .pic-site-brand,
html[data-theme="dark"] .pic-site-header .pic-site-brand-name {
    color: #f4f5f8;
}

html[data-theme="dark"] .pic-site-header .pic-site-menu-button {
    color: #f4f5f8;
}

html[data-theme="dark"] .pic-site-header .pic-site-menu-button span {
    background: #f4f5f8;
}

html[data-theme="dark"] .pic-site-header .pic-site-navigation {
    background: rgba(25,27,35,.99);
    border-color: #343744;
    box-shadow: 0 18px 40px rgba(0,0,0,.35);
}

html[data-theme="dark"] .pic-site-header .pic-site-nav a {
    color: #d9dbe5;
}

html[data-theme="dark"] .pic-site-header .pic-site-nav a:hover,
html[data-theme="dark"] .pic-site-header .pic-site-nav a:focus-visible,
html[data-theme="dark"] .pic-site-header .pic-site-nav a.active {
    color: #d5ccff;
    background: #302747;
}

html[data-theme="dark"] .pic-site-header .pic-site-nav a:focus-visible,
html[data-theme="dark"] .pic-site-header .pic-site-login:focus-visible,
html[data-theme="dark"] .pic-site-header .pic-site-brand:focus-visible {
    outline: 2px solid #b9a8ff;
    outline-offset: 3px;
}


/* PIC-ARTE PROFILE: SHARED DAY/NIGHT THEME */
.profile-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.profile-theme-toggle {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 14px;
    border: 1px solid #ded8eb;
    border-radius: 13px;
    background: #fff;
    color: #38235f;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.profile-theme-toggle:hover {
    transform: translateY(-1px);
    border-color: #a99bd2;
}

.profile-theme-toggle:focus-visible {
    outline: 2px solid #8b72d6;
    outline-offset: 3px;
}

html[data-theme="dark"] body.profile-page {
    background: #101116;
    color: #f4f5f8;
    color-scheme: dark;
}

html[data-theme="dark"] body.profile-page .dashboard-header,
html[data-theme="dark"] body.profile-page .dashboard-section,
html[data-theme="dark"] body.profile-page .dashboard-section-heading,
html[data-theme="dark"] body.profile-page .profile-section {
    color: #f4f5f8;
}

html[data-theme="dark"] body.profile-page .dashboard-header p,
html[data-theme="dark"] body.profile-page .dashboard-section p,
html[data-theme="dark"] body.profile-page .profile-section-heading p,
html[data-theme="dark"] body.profile-page .profile-actions > span {
    color: #aeb2c0;
}

html[data-theme="dark"] body.profile-page .dashboard-stat,
html[data-theme="dark"] body.profile-page .profile-favorite-card,
html[data-theme="dark"] body.profile-page .profile-order-row,
html[data-theme="dark"] body.profile-page .profile-section,
html[data-theme="dark"] body.profile-page .dashboard-empty-section {
    background: #191b23;
    color: #f4f5f8;
    border-color: #30333e;
}

html[data-theme="dark"] body.profile-page .profile-favorite-info span,
html[data-theme="dark"] body.profile-page .profile-order-row span {
    color: #b7bbc8;
}

html[data-theme="dark"] body.profile-page .profile-favorite-info small {
    color: #999fb0;
}

html[data-theme="dark"] body.profile-page .profile-favorite-image {
    background: #252833;
}

html[data-theme="dark"] body.profile-page .profile-favorite-heart {
    background: rgba(25,27,35,.92);
    color: #e0d8ff;
}

html[data-theme="dark"] body.profile-page .profile-field > span,
html[data-theme="dark"] body.profile-page .profile-field small {
    color: #c2c5d0;
}

html[data-theme="dark"] body.profile-page .profile-field input,
html[data-theme="dark"] body.profile-page .profile-field textarea,
html[data-theme="dark"] body.profile-page .profile-field select {
    background: #11131a;
    color: #f4f5f8;
    border-color: #3a3d49;
}

html[data-theme="dark"] body.profile-page .profile-field input:disabled {
    background: #222530;
    color: #b7bbc8;
}

html[data-theme="dark"] body.profile-page .profile-theme-toggle {
    background: #20222c;
    color: #eee9ff;
    border-color: #3b3e4b;
}

html[data-theme="dark"] body.profile-page .profile-theme-toggle:hover {
    background: #302747;
    border-color: #7563a9;
}

html[data-theme="dark"] body.profile-page .dashboard-button,
html[data-theme="dark"] body.profile-page .profile-stat-link {
    color: #e0d8ff;
}

html[data-theme="dark"] body.profile-page .dashboard-button {
    border-color: #51446f;
}

@media (max-width: 650px) {
    .profile-header-actions {
        justify-content: flex-start;
        width: 100%;
    }

    .profile-theme-toggle {
        min-height: 42px;
    }
}

/* PIC-ARTE — BUYER PROFILE REDESIGN v1 */
body.profile-page .profile-dashboard {
    max-width: 1180px;
    padding: 42px 24px 80px;
    margin: 0 auto;
}

body.profile-page .dashboard-header {
    position: relative;
    padding: 34px;
    margin-bottom: 28px;
    border: 1px solid #e8e2f5;
    border-radius: 24px;
    background: linear-gradient(135deg, #faf8ff 0%, #f0ebff 100%);
    box-shadow: 0 12px 35px rgba(61, 40, 105, .06);
}

body.profile-page .dashboard-header h1 {
    margin: 8px 0 12px;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
    letter-spacing: -.045em;
}

body.profile-page .dashboard-header p {
    max-width: 620px;
    line-height: 1.7;
}

body.profile-page .profile-header-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

body.profile-page .profile-theme-toggle,
body.profile-page .dashboard-button {
    min-height: 44px;
    border-radius: 12px;
}

body.profile-page .dashboard-stats {
    gap: 16px;
    margin: 24px 0 36px;
}

body.profile-page .dashboard-stat,
body.profile-page .profile-stat-link {
    border-radius: 18px;
    transition: transform .18s ease, box-shadow .18s ease;
}

body.profile-page .profile-stat-link {
    border: 1px solid #e9e5f1;
    background: #fff;
    box-shadow: 0 5px 20px rgba(40, 30, 65, .035);
}

body.profile-page .profile-stat-link:hover,
body.profile-page .profile-favorite-card:hover,
body.profile-page .profile-order-row:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(40, 30, 65, .09);
}

body.profile-page .dashboard-section {
    margin-top: 32px;
}

body.profile-page .dashboard-section-heading,
body.profile-page .profile-section-heading {
    margin-bottom: 18px;
}

body.profile-page .dashboard-section-heading h2,
body.profile-page .profile-section-heading h2 {
    letter-spacing: -.025em;
}

body.profile-page .profile-favorites-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

body.profile-page .profile-favorite-card {
    overflow: hidden;
    border: 1px solid #e9e5f1;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 5px 20px rgba(40, 30, 65, .04);
    transition: transform .18s ease, box-shadow .18s ease;
}

body.profile-page .profile-favorite-image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f0edf5;
}

body.profile-page .profile-favorite-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

body.profile-page .profile-favorite-card:hover .profile-favorite-image img {
    transform: scale(1.035);
}

body.profile-page .profile-favorite-info {
    padding: 15px;
}

body.profile-page .profile-orders-list {
    display: grid;
    gap: 12px;
}

body.profile-page .profile-order-row {
    padding: 20px;
    border: 1px solid #e9e5f1;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(40, 30, 65, .035);
    transition: transform .18s ease, box-shadow .18s ease;
}

body.profile-page .profile-section {
    padding: 26px;
    border: 1px solid #e9e5f1;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 24px rgba(40, 30, 65, .035);
}

body.profile-page .profile-dashboard .profile-form {
    gap: 18px;
}

body.profile-page .profile-field input,
body.profile-page .profile-field textarea,
body.profile-page .profile-field select {
    min-height: 46px;
    border-radius: 11px;
}

html[data-theme="dark"] body.profile-page .dashboard-header {
    background: linear-gradient(135deg, #23202f 0%, #2b2540 100%);
    border-color: #40364f;
}

html[data-theme="dark"] body.profile-page .profile-stat-link,
html[data-theme="dark"] body.profile-page .profile-favorite-card,
html[data-theme="dark"] body.profile-page .profile-order-row,
html[data-theme="dark"] body.profile-page .profile-section {
    border-color: #363846;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .12);
}

@media (max-width: 900px) {
    body.profile-page .profile-favorites-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.profile-page .dashboard-header {
        padding: 28px;
    }
}

@media (max-width: 650px) {
    body.profile-page .profile-dashboard {
        padding: 24px 16px 60px;
    }

    body.profile-page .dashboard-header {
        padding: 23px 20px;
        border-radius: 19px;
    }

    body.profile-page .profile-favorites-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    body.profile-page .profile-favorite-info {
        padding: 12px;
    }

    body.profile-page .profile-order-row {
        padding: 16px;
        gap: 12px;
    }

    body.profile-page .profile-section {
        padding: 20px 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.profile-page .profile-stat-link,
    body.profile-page .profile-favorite-card,
    body.profile-page .profile-order-row,
    body.profile-page .profile-favorite-image img {
        transition: none;
    }
}
/* END PIC-ARTE BUYER PROFILE REDESIGN */


/* PIC-ARTE FOLLOW SYSTEM v1 */
.picart-follow-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 18px 0;
}
.picart-follow-count {
    color: var(--text-secondary, #777);
    font-size: .92rem;
}
.picart-follow-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 18px;
    border: 1px solid var(--border-color, #ccc);
    border-radius: 999px;
    background: var(--surface, #fff);
    color: var(--text-primary, #222);
    font: inherit;
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
}
.picart-follow-button:hover {
    border-color: var(--accent-color, #555);
}
.picart-follow-button:disabled {
    opacity: .6;
    cursor: wait;
}
.picart-followed-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 14px;
}
.picart-followed-card {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 16px;
    color: inherit;
    text-decoration: none;
    background: var(--surface, transparent);
}
.picart-followed-card:hover {
    border-color: var(--accent-color, #777);
}
.picart-followed-logo {
    display: grid;
    flex: 0 0 54px;
    width: 54px;
    height: 54px;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--surface-muted, #eee);
}
.picart-followed-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.picart-followed-details {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.picart-followed-details strong {
    overflow-wrap: anywhere;
}
.picart-followed-details small {
    color: var(--text-secondary, #777);
}
.picart-followed-arrow {
    font-size: 1.2rem;
}
.picart-followed-empty {
    padding: 20px;
    border: 1px dashed var(--border-color, #ccc);
    border-radius: 16px;
}
.picart-followed-empty p {
    margin: 4px 0;
}
@media (max-width: 520px) {
    .picart-follow-panel {
        align-items: flex-start;
    }
    .picart-follow-button {
        width: 100%;
    }
}
/* END PIC-ARTE FOLLOW SYSTEM v1 */



/* PIC-ARTE GLOBAL THEME V1 */
.pic-theme-toggle {
    min-width: 42px;
    min-height: 42px;
    padding: 8px 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 0 0 auto;
    border: 1px solid #ded7ee;
    border-radius: 12px;
    background: #fff;
    color: #493276;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.pic-theme-toggle:hover {
    background: #f5f0ff;
    border-color: #b9a5e7;
}

.pic-theme-toggle:focus-visible {
    outline: 2px solid #8b72d6;
    outline-offset: 3px;
}

.pic-theme-toggle > span:first-child {
    font-size: 17px;
    line-height: 1;
}

html[data-theme="dark"] .pic-theme-toggle {
    background: #20222c;
    color: #eee9ff;
    border-color: #3b3e4b;
}

html[data-theme="dark"] .pic-theme-toggle:hover {
    background: #302747;
    border-color: #7563a9;
}

@media (max-width: 859px) {
    .pic-theme-toggle {
        width: 42px;
        min-width: 42px;
        padding: 8px;
        border-radius: 12px;
    }

    .pic-theme-label {
        display: none;
    }
}

/* MODO OSCURO — ASISTENTE DE CREACIÓN DE EVENTOS */
html[data-theme="dark"] body.event-form-page {
    color-scheme: dark;
    background: #101116;
    color: #f4f5f8;
}

html[data-theme="dark"] body.event-form-page .event-form-header,
html[data-theme="dark"] body.event-form-page .event-form-section,
html[data-theme="dark"] body.event-form-page .pa-wizard-review {
    color: #f4f5f8;
}

html[data-theme="dark"] body.event-form-page .event-form-header p,
html[data-theme="dark"] body.event-form-page .event-form-section > p,
html[data-theme="dark"] body.event-form-page .event-form-field > span,
html[data-theme="dark"] body.event-form-page .event-form-checkbox small,
html[data-theme="dark"] body.event-form-page .event-form-field small {
    color: #b7bbc8;
}

html[data-theme="dark"] body.event-form-page .event-form-section {
    background: #191b23;
    border-color: #30333e;
    box-shadow: 0 8px 28px rgba(0,0,0,.14);
}

html[data-theme="dark"] body.event-form-page .event-form-field input,
html[data-theme="dark"] body.event-form-page .event-form-field select,
html[data-theme="dark"] body.event-form-page .event-form-field textarea {
    color-scheme: dark;
    background: #11131a;
    color: #f4f5f8;
    border-color: #3a3d49;
}

html[data-theme="dark"] body.event-form-page .event-form-field input::placeholder,
html[data-theme="dark"] body.event-form-page .event-form-field textarea::placeholder {
    color: #9297a7;
}

html[data-theme="dark"] body.event-form-page .event-form-checkbox {
    background: #211d2d;
    border-color: #51446f;
    color: #f4f5f8;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-progress-item {
    color: #b7bbc8;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-progress-line {
    background: #34313f;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-progress-item.is-active,
html[data-theme="dark"] body.event-form-page .pa-wizard-progress-item.is-complete {
    color: #d5c8ff;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-review {
    background: #191b23;
    border-color: #383044;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-review-intro,
html[data-theme="dark"] body.event-form-page .pa-wizard-summary-label {
    color: #b7bbc8;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-summary-value {
    color: #f4f5f8;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-summary-row {
    border-color: #34313f;
}

html[data-theme="dark"] body.event-form-page .pa-wizard-review-note {
    background: #282137;
    color: #e0d5ff;
}

html[data-theme="dark"] body.event-form-page .pic-pricing-builder {
    border-color: #34313f;
}

html[data-theme="dark"] body.event-form-page .event-form-section:has(input[name="digital_sales_enabled"]) {
    border-color: #51446f;
}

/* =========================================================
   PIC-ARTE — CAPA GLOBAL DE TEMA OSCURO
   V1: base del portal y superficies claras
   ========================================================= */

html[data-theme="dark"] {
    color-scheme: dark;
    --bg: #101116;
    --surface: #191b23;
    --text: #f4f5f8;
    --muted: #a4a8b5;
    --line: #30333e;
    --accent: #a59aff;
}

html[data-theme="dark"] body {
    background-color: #101116 !important;
    color: #f4f5f8;
}

html[data-theme="dark"] .topbar {
    background: rgba(19, 20, 28, .96) !important;
    color: #f4f5f8;
    border-bottom-color: #30333e;
}

html[data-theme="dark"] nav {
    color: #c7c9d4;
}

html[data-theme="dark"] nav a:hover {
    color: #ffffff;
}

/* Contenedores principales: conservan su distribución y dimensiones. */
html[data-theme="dark"] body.space-page,
html[data-theme="dark"] body.dashboard-page,
html[data-theme="dark"] body.events-page,
html[data-theme="dark"] body.event-detail-page,
html[data-theme="dark"] body.photos-page,
html[data-theme="dark"] body.drive-page,
html[data-theme="dark"] body.cart-page,
html[data-theme="dark"] body.checkout-page,
html[data-theme="dark"] body.favorites-page,
html[data-theme="dark"] body.notifications-page,
html[data-theme="dark"] body.orders-page {
    background-color: #101116 !important;
    color: #f4f5f8;
}

/* Superficies habituales de paneles y tarjetas. */
html[data-theme="dark"] .dashboard-header,
html[data-theme="dark"] .dashboard-section,
html[data-theme="dark"] .dashboard-section-heading,
html[data-theme="dark"] .dashboard-stat,
html[data-theme="dark"] .dashboard-empty-section,
html[data-theme="dark"] .profile-section,
html[data-theme="dark"] .event-form-header,
html[data-theme="dark"] .event-form-section,
html[data-theme="dark"] .pa-wizard-review {
    background-color: #191b23;
    color: #f4f5f8;
    border-color: #30333e;
}

/* Campos de entrada: mantiene controles legibles en modo oscuro. */
html[data-theme="dark"] body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-theme="dark"] body textarea,
html[data-theme="dark"] body select {
    color-scheme: dark;
    background-color: #171922;
    color: #f4f5f8;
    border-color: #3a3d49;
}

html[data-theme="dark"] body input::placeholder,
html[data-theme="dark"] body textarea::placeholder {
    color: #9297a7;
}

/* Superficies con fondo blanco definido directamente en el HTML.
   Se limita a colores neutros claros para no alterar fondos de marca. */
html[data-theme="dark"] body [style*="background: #fff"],
html[data-theme="dark"] body [style*="background:#fff"],
html[data-theme="dark"] body [style*="background: white"],
html[data-theme="dark"] body [style*="background:white"],
html[data-theme="dark"] body [style*="background-color: #fff"],
html[data-theme="dark"] body [style*="background-color:#fff"],
html[data-theme="dark"] body [style*="background-color: white"],
html[data-theme="dark"] body [style*="background-color:white"] {
    background-color: #191b23 !important;
    color: #f4f5f8;
    border-color: #30333e;
}

/* Texto secundario frecuente. */
html[data-theme="dark"] body .muted,
html[data-theme="dark"] body .text-muted,
html[data-theme="dark"] body .dashboard-header p,
html[data-theme="dark"] body .dashboard-section p {
    color: #a4a8b5;
}

/* Tablas y separadores. */
html[data-theme="dark"] body table th,
html[data-theme="dark"] body table td {
    border-color: #30333e;
}

html[data-theme="dark"] body hr {
    border-color: #30333e;
}

/* Fin de PIC-ARTE — CAPA GLOBAL DE TEMA OSCURO V1 */

/* PIC-ARTE — FOOTER CONTACT & ACCESSIBILITY */
.pic-footer-contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-top: 16px;
    overflow-wrap: anywhere;
}

.pic-footer-contact span {
    color: #707070;
    font-size: 12px;
    line-height: 1.5;
}

.pic-footer-contact a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    color: #512A9E;
    font-size: 13px;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.pic-footer-contact a:hover {
    color: #6F3CC3;
}

.pic-institutional-footer a:focus-visible {
    outline: 3px solid #9258D1;
    outline-offset: 4px;
    border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .pic-footer-column a {
        transition: none;
    }
}

/* PICARTE WATERMARK LIVE PREVIEW */
.watermark-preview-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(220px, .85fr);
    gap: 24px;
    align-items: center;
    margin: 0 0 30px;
    padding: 20px;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 18px;
    background: rgba(0, 0, 0, .025);
}

.watermark-preview-photo {
    position: relative;
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 12px;
    background: #171717;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
    isolation: isolate;
}

.watermark-preview-photo > img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 520px;
    object-fit: contain;
}

.watermark-preview-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 8px;
    padding: 3.5%;
    pointer-events: none;
    color: #fff;
    font-size: clamp(12px, 2.6vw, 22px);
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    text-shadow: 0 2px 5px rgba(0, 0, 0, .9), 1px 1px 2px #000;
    overflow: hidden;
}

.watermark-preview-overlay img {
    display: none;
    width: 22%;
    max-height: 22%;
    object-fit: contain;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .75));
}

.watermark-preview-overlay span {
    overflow-wrap: anywhere;
}

.watermark-preview-caption strong {
    display: block;
    margin-bottom: 8px;
    font-size: 18px;
}

.watermark-preview-caption p {
    margin: 0 0 10px;
    line-height: 1.55;
    opacity: .78;
}

.watermark-preview-caption small {
    display: block;
    font-size: 12px;
    line-height: 1.5;
    opacity: .62;
}

@media (max-width: 700px) {
    .watermark-preview-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        padding: 14px;
        margin-bottom: 24px;
    }

    .watermark-preview-photo {
        width: 100%;
        max-width: 360px;
    }

    .watermark-preview-photo > img {
        max-height: 460px;
    }
}

html[data-theme="dark"] body.profile-page .watermark-preview-layout {
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .035);
}

/* PICARTE: distribucion compacta de marca de agua */
@media (min-width: 901px) {
    body.profile-page .profile-brand-section {
        display: grid;
        grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
        column-gap: 24px;
        row-gap: 20px;
        align-items: start;
    }

    body.profile-page .profile-brand-section > .profile-section-heading {
        grid-column: 1 / -1;
        margin-bottom: 0;
    }

    body.profile-page .profile-brand-section > .watermark-preview-layout {
        grid-column: 1;
        grid-row: 2;
        display: block;
        min-width: 0;
        margin: 0;
        padding: 14px;
    }

    body.profile-page .profile-brand-section > .watermark-preview-layout .watermark-preview-photo {
        width: 100%;
        max-width: 340px;
    }

    body.profile-page .profile-brand-section > .watermark-preview-layout .watermark-preview-photo > img {
        width: 100%;
        height: auto;
        max-height: 430px;
        object-fit: contain;
    }

    body.profile-page .profile-brand-section > .watermark-preview-layout .watermark-preview-caption {
        margin-top: 14px;
    }

    body.profile-page .profile-brand-section > .profile-grid {
        grid-column: 2;
        grid-row: 2;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        min-width: 0;
        margin-top: 0;
    }
}

@media (max-width: 900px) {
    body.profile-page .profile-brand-section > .watermark-preview-layout {
        margin-bottom: 24px;
    }

    body.profile-page .profile-brand-section > .profile-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* PICARTE — Asistente de marca de agua */
.wm-profile-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 24px;
    border: 1px solid var(--border-color, rgba(128,128,128,.22));
    border-radius: 18px;
    background: var(--card-bg, rgba(128,128,128,.04));
}
.wm-profile-summary p { margin: 8px 0; }
.wm-profile-summary small { opacity: .75; }
.wm-wizard[hidden], .wm-step[hidden], .wm-wizard-footer [hidden] { display: none !important; }
.wm-wizard {
    position: fixed;
    z-index: 99999;
    inset: 0;
    overflow-y: auto;
    padding: clamp(8px, 2.5vw, 28px);
    background: rgba(8, 12, 20, .82);
    backdrop-filter: blur(9px);
    color: #202533;
}
body.wm-wizard-open { overflow: hidden; }
.wm-wizard-shell {
    width: min(1120px, 100%);
    min-height: min(760px, calc(100dvh - 56px));
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    padding: clamp(18px, 3vw, 34px);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 28px 100px rgba(0,0,0,.35);
}
.wm-wizard-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}
.wm-wizard-eyebrow {
    color: #6658d3;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
}
.wm-wizard-header h2 { margin: 8px 0; font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.15; }
.wm-wizard-header p, .wm-help { color: #697386; margin: 6px 0 0; }
.wm-close {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border: 0;
    border-radius: 50%;
    background: #f0f1f5;
    color: #303747;
    font-size: 28px;
    cursor: pointer;
}
.wm-progress { height: 5px; margin-top: 24px; overflow: hidden; border-radius: 10px; background: #ececf3; }
.wm-progress-bar { width: 25%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #635bda, #8b78f5); transition: width .2s ease; }
.wm-step-indicator { margin: 12px 0 24px; color: #777f90; font-size: .82rem; font-weight: 700; }
.wm-step { flex: 1; }
.wm-step h3 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.7rem); }
.wm-type-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-top: 26px; }
.wm-type-card {
    min-height: 150px;
    padding: 20px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid #e0e3ec;
    border-radius: 17px;
    background: #fff;
    color: #262d3b;
    cursor: pointer;
    text-align: center;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.wm-type-card:hover { transform: translateY(-2px); border-color: #aaa2f3; }
.wm-type-card.selected { border: 2px solid #685de0; background: #f5f3ff; box-shadow: 0 0 0 3px rgba(104,93,224,.09); }
.wm-type-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #eeecff; color: #5b50c8; font-size: 1.25rem; font-weight: 800; }
.wm-type-card strong { font-size: .98rem; }
.wm-type-card small { color: #737b8c; font-size: .78rem; }
.wm-note, .wm-save-note { padding: 12px 14px; border-radius: 10px; background: #f5f3ff; color: #5146aa; font-size: .9rem; }
.wm-editor-grid { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 42px); margin-top: 24px; align-items: start; }
.wm-controls { display: grid; align-content: start; gap: 22px; }
.wm-field { display: grid; gap: 9px; color: #303747; font-weight: 700; font-size: .9rem; }
.wm-field input[type="text"], .wm-field select {
    box-sizing: border-box;
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #dfe2eb;
    border-radius: 10px;
    background: #fff;
    color: #202533;
    font: inherit;
}
.wm-field output { float: right; color: #6658d3; font-weight: 800; }
.wm-format-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.wm-format {
    padding: 10px 5px;
    border: 1px solid #dfe2eb;
    border-radius: 10px;
    background: #fff;
    color: #303747;
    font-weight: 800;
    cursor: pointer;
}
.wm-format small { display: block; margin-top: 4px; font-size: .68rem; font-weight: 500; }
.wm-format.active { border-color: #685de0; background: #f5f3ff; color: #5549c4; }
.wm-logo-status { display: grid; gap: 6px; padding: 14px; border-radius: 12px; background: #f6f7fa; font-size: .86rem; }
.wm-logo-status small { color: #6c7484; line-height: 1.45; }
.wm-status-ok { color: #178451; }
.wm-status-pending { color: #98631a; }
.wm-preview-column { min-width: 0; }
.wm-preview-frame {
    position: relative;
    width: 100%;
    max-height: 440px;
    overflow: hidden;
    border-radius: 14px;
    background: #20242d;
    isolation: isolate;
}
.wm-sample-photo { display: block; width: 100%; height: 100%; object-fit: cover; }
.wm-preview-stamps { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.wm-stamp {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    max-width: 90%;
    color: #fff;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
    text-shadow: 0 2px 5px rgba(0,0,0,.95), 1px 1px 2px #000;
}
.wm-stamp-logo { display: block; max-width: 30%; max-height: 44px; object-fit: contain; filter: drop-shadow(0 1px 3px rgba(0,0,0,.8)); }
.wm-preview-caption { margin: 10px 0 0; color: #7a8291; font-size: .78rem; line-height: 1.45; }
.wm-review { display: grid; grid-template-columns: minmax(0,1fr) minmax(240px,1fr); gap: 28px; margin-top: 22px; align-items: start; }
.wm-review dl { margin: 0; }
.wm-review dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #eceef3; }
.wm-review dt { color: #737b8c; }
.wm-review dd { margin: 0; text-align: right; font-weight: 700; overflow-wrap: anywhere; }
.wm-wizard-footer { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 24px; }
.wm-footer-spacer { flex: 1; }
.wm-primary-button, .wm-secondary-button {
    min-height: 44px;
    padding: 11px 18px;
    border-radius: 11px;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}
.wm-primary-button { border: 1px solid #6358d7; background: #6358d7; color: #fff; }
.wm-primary-button:hover { background: #5146c4; }
.wm-secondary-button { border: 1px solid #dfe2eb; background: #fff; color: #303747; }
.wm-error { padding: 12px; border-radius: 10px; background: #fff0f0; color: #a52d35; }
html[data-theme="dark"] .wm-profile-summary { background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.12); }
html[data-theme="dark"] .wm-wizard-shell { background: #191d27; color: #f2f3f8; }
html[data-theme="dark"] .wm-wizard-header p,
html[data-theme="dark"] .wm-help,
html[data-theme="dark"] .wm-preview-caption { color: #b0b7c7; }
html[data-theme="dark"] .wm-type-card,
html[data-theme="dark"] .wm-field input[type="text"],
html[data-theme="dark"] .wm-field select,
html[data-theme="dark"] .wm-format,
html[data-theme="dark"] .wm-secondary-button { background: #222735; color: #f2f3f8; border-color: #41485a; }
html[data-theme="dark"] .wm-type-card.selected,
html[data-theme="dark"] .wm-format.active { background: #302c52; border-color: #8d83f4; }
html[data-theme="dark"] .wm-type-card small,
html[data-theme="dark"] .wm-logo-status small { color: #b0b7c7; }
html[data-theme="dark"] .wm-logo-status { background: #222735; }
html[data-theme="dark"] .wm-review dl > div { border-color: #353b4a; }

@media (max-width: 760px) {
    .wm-wizard { padding: 0; }
    .wm-wizard-shell { min-height: 100dvh; border-radius: 0; padding: 18px 16px calc(18px + env(safe-area-inset-bottom)); }
    .wm-type-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 18px; }
    .wm-type-card { min-height: 120px; padding: 14px 8px; }
    .wm-editor-grid, .wm-review { grid-template-columns: minmax(0,1fr); gap: 20px; }
    .wm-preview-frame { max-height: 360px; }
    .wm-review-preview { max-width: 520px; width: 100%; margin: 0 auto; }
    .wm-wizard-footer { position: sticky; bottom: 0; padding-top: 16px; padding-bottom: 2px; background: inherit; flex-wrap: wrap; }
    .wm-primary-button, .wm-secondary-button { padding: 10px 12px; }
    .wm-footer-spacer { display: none; }
    #wmBack { margin-right: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .wm-progress-bar, .wm-type-card { transition: none; }
}
/* Fin del asistente de marca de agua */


/* PIC-ARTE: galeria accesible en pantallas tactiles */
@media (hover: none), (pointer: coarse) {
    .event-page .photo-actions {
        opacity: 1;
        transform: none;
    }

    .event-page .photo-card::after {
        opacity: 1;
    }

    .event-page .photo-favorite {
        width: 42px;
        height: 42px;
        min-width: 42px;
        min-height: 42px;
    }

    .event-page .photo-cart-button {
        min-height: 42px;
    }
}

@media (hover: hover) and (pointer: fine) {
    .event-page .photo-actions {
        opacity: 0;
        transform: translateY(8px);
    }

    .event-page .photo-card:hover .photo-actions {
        opacity: 1;
        transform: translateY(0);
    }
}


/* PIC-ARTE — OPCION B: GALERIA CON BANNER ENTRE GRUPOS */
.event-page .gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 15px;
}

.event-page .photo-card {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    break-inside: auto;
}

.event-page .photo-card img {
    display: block;
    width: 100%;
    height: auto;
}

.event-page .pic-ad-banner {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 22px;
    min-width: 0;
    margin: 5px 0 10px;
    padding: 24px 28px;
    border: 1px solid rgba(111, 60, 195, .16);
    border-radius: 20px;
    background:
        radial-gradient(circle at 90% 15%, rgba(195,75,208,.12), transparent 35%),
        linear-gradient(115deg, #f3efff, #fff 62%, #f9effb);
    box-shadow: 0 10px 28px rgba(50,30,80,.06);
}

.event-page .pic-ad-banner-mark {
    display: grid;
    place-items: center;
    flex: 0 0 78px;
    width: 78px;
    height: 78px;
    border-radius: 18px;
    background: linear-gradient(135deg, #6F3CC3, #C34BD0);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -.04em;
}

.event-page .pic-ad-banner-copy {
    flex: 1;
    min-width: 0;
}

.event-page .pic-ad-banner-copy > span {
    display: block;
    margin-bottom: 6px;
    color: #6F3CC3;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
}

.event-page .pic-ad-banner-copy strong {
    display: block;
    color: #21172e;
    font-size: clamp(17px, 2vw, 25px);
    line-height: 1.2;
}

.event-page .pic-ad-banner-copy p {
    margin: 7px 0 0;
    color: #686171;
    font-size: 13px;
    line-height: 1.45;
}

.event-page .pic-ad-banner-label {
    flex: 0 0 auto;
    align-self: flex-start;
    padding: 6px 9px;
    border: 1px solid rgba(111,60,195,.16);
    border-radius: 999px;
    color: #6F3CC3;
    font-size: 10px;
    font-weight: 700;
}

.event-page .event-container {
    padding-top: 48px;
}

.event-page .event-header {
    margin-bottom: 22px;
}

.event-page .photo-search {
    margin-bottom: 16px;
}

@media (max-width: 800px) {
    .event-page .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .event-page .pic-ad-banner {
        gap: 14px;
        padding: 18px;
        border-radius: 16px;
    }

    .event-page .pic-ad-banner-mark {
        flex-basis: 58px;
        width: 58px;
        height: 58px;
        border-radius: 14px;
        font-size: 11px;
    }
}

@media (max-width: 480px) {
    .event-page .gallery-grid {
        gap: 7px;
    }

    .event-page .pic-ad-banner {
        flex-wrap: wrap;
        gap: 12px;
        padding: 15px;
    }

    .event-page .pic-ad-banner-mark {
        flex-basis: 48px;
        width: 48px;
        height: 48px;
        font-size: 10px;
    }

    .event-page .pic-ad-banner-copy {
        flex-basis: calc(100% - 64px);
    }

    .event-page .pic-ad-banner-copy strong {
        font-size: 17px;
    }

    .event-page .pic-ad-banner-copy p {
        font-size: 12px;
    }

    .event-page .pic-ad-banner-label {
        margin-left: 60px;
    }
}

/* PIC-ARTE — AJUSTE MOBILE EVENTO V1 */
@media (max-width: 800px) {
    .event-page .event-hero {
        height: 390px;
        min-height: 320px;
        max-height: 430px;
    }

    .event-page .event-hero-content {
        bottom: 24px;
        left: 6%;
        right: 6%;
        max-width: none;
    }

    .event-page .back-link {
        margin-bottom: 15px;
        padding: 8px 12px;
    }

    .event-page .event-hero-content .event-category {
        margin-bottom: 10px;
        padding: 6px 10px;
        font-size: 10px;
    }

    .event-page .event-hero-content h1 {
        margin-top: 0;
        margin-bottom: 8px;
        font-size: clamp(30px, 8vw, 44px);
        line-height: 1.08;
        letter-spacing: -1px;
    }

    .event-page .event-hero-content p {
        margin-top: 6px;
        font-size: 14px;
        line-height: 1.4;
    }

    .event-page .event-container {
        padding-top: 26px;
        padding-bottom: 45px;
    }

    .event-page .event-header {
        gap: 12px;
        margin-bottom: 18px;
    }

    .event-page .event-header h2 {
        font-size: clamp(23px, 6vw, 30px);
        line-height: 1.15;
    }

    .event-page .event-header p {
        margin-top: 7px;
        font-size: 14px;
        line-height: 1.45;
    }

    .event-page .event-stat {
        padding: 9px 12px;
        border-radius: 14px;
    }

    .event-page .photo-search {
        min-height: 54px;
        height: auto;
        margin-bottom: 14px;
        padding: 0 14px;
        border-radius: 15px;
    }

    .event-page .photo-search input {
        min-width: 0;
        font-size: 16px;
    }

    .event-page .photographer-bar {
        gap: 12px;
        margin-bottom: 18px;
        padding: 12px;
        border-radius: 14px;
    }

    .event-page .photographer-button {
        min-height: 40px;
        padding: 9px 12px;
        white-space: nowrap;
    }
}

@media (max-width: 420px) {
    .event-page .event-hero {
        height: 350px;
        min-height: 300px;
    }

    .event-page .event-hero-content {
        bottom: 20px;
    }

    .event-page .event-hero-content h1 {
        font-size: clamp(28px, 8.5vw, 36px);
    }

    .event-page .event-header {
        align-items: flex-start;
    }

    .event-page .event-stat {
        flex-shrink: 0;
    }

    .event-page .photographer-bar {
        flex-wrap: wrap;
    }

    .event-page .photographer-button {
        margin-left: auto;
    }
}



/* PIC-ARTE EVENTO — DISEÑO COMPACTO Y CONTRASTE V1 */
body.event-page {
    background: var(--bg, #f7f7f5);
    color: var(--text, #111111);
}

.event-page .event-hero-compact {
    position: relative;
    height: 250px;
    min-height: 220px;
    max-height: 290px;
    overflow: hidden;
    isolation: isolate;
    background: #282432;
}

.event-page .event-hero-compact .event-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
}

.event-page .event-hero-compact .event-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(15, 12, 24, .84) 0%,
        rgba(15, 12, 24, .55) 55%,
        rgba(15, 12, 24, .20) 100%
    );
}

.event-page .event-hero-compact .event-hero-content {
    position: absolute;
    inset: auto 0 0;
    z-index: 2;
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
    padding: 24px 0;
    color: #ffffff;
}

.event-page .event-hero-compact .event-hero-content h1,
.event-page .event-hero-compact .event-hero-content p,
.event-page .event-hero-compact .event-category,
.event-page .event-hero-compact .back-link {
    color: #ffffff;
}

.event-page .event-hero-compact .event-hero-content h1 {
    margin: 8px 0;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.event-page .event-hero-compact .event-hero-content p {
    margin: 0;
    opacity: .96;
}

.event-page .event-hero-compact .back-link {
    display: inline-block;
    margin-bottom: 8px;
    text-decoration: none;
}

.event-page .event-hero-compact .back-link:hover,
.event-page .event-hero-compact .back-link:focus-visible {
    text-decoration: underline;
}

.event-page .event-container {
    padding-top: 34px;
    color: var(--text, #111111);
}

.event-page .event-header h2,
.event-page .event-header strong,
.event-page .event-container h2 {
    color: var(--text, #111111);
}

.event-page .event-header p,
.event-page .event-container .eyebrow,
.event-page .event-stat span {
    color: var(--muted, #777777);
}

.event-page .event-stat {
    color: var(--text, #111111);
    background: var(--surface, #ffffff);
    border: 1px solid var(--line, #e5e5e5);
}

.event-page .photo-search {
    color: var(--text, #111111);
    background: var(--surface, #ffffff);
    border: 1px solid var(--line, #e5e5e5);
}

.event-page .photo-search input {
    color: var(--text, #111111);
    background: transparent;
    border-color: transparent;
}

.event-page .photo-search input::placeholder {
    color: var(--muted, #777777);
    opacity: 1;
}

.event-page .photo-search input:focus-visible {
    outline: 2px solid var(--accent, #6f3cc3);
    outline-offset: 2px;
}

.event-page .gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 18px;
}

.event-page .photo-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    color: var(--text, #111111);
    background: var(--surface, #ffffff);
    border: 1px solid var(--line, #e5e5e5);
    border-radius: 14px;
    box-shadow: 0 3px 14px rgba(0, 0, 0, .07);
}

.event-page .photo-card::after {
    display: none;
}

.event-page .photo-card img {
    display: block;
    width: 100%;
    height: clamp(150px, 23vw, 270px);
    flex: 0 0 auto;
    object-fit: cover;
    background: var(--line, #e5e5e5);
}

.event-page .photo-card .photo-favorite {
    position: absolute;
    z-index: 3;
    top: 10px;
    right: 10px;
    color: #282432;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, .12);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .16);
}

.event-page .photo-card .photo-favorite.active {
    color: #ffffff;
    background: #6f3cc3;
}

.event-page .photo-card .photo-actions {
    position: static;
    inset: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    padding: 12px;
    opacity: 1;
    visibility: visible;
    transform: none;
    color: var(--text, #111111);
    background: var(--surface, #ffffff);
}

.event-page .photo-card:hover .photo-actions {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.event-page .photo-card .photo-number {
    color: var(--text, #111111);
    font-size: .9rem;
    font-weight: 650;
}

.event-page .photo-card .event-photo-price {
    display: block;
    width: 100%;
    margin: 0;
    color: var(--text, #111111);
    font-size: .95rem;
    font-weight: 700;
}

.event-page .photo-card .photo-cart-button,
.event-page .photo-card .photo-actions button {
    color: #ffffff;
    background: #6f3cc3;
    border: 1px solid #6f3cc3;
}

.event-page .photo-card .photo-cart-button:hover,
.event-page .photo-card .photo-actions button:hover {
    color: #ffffff;
    background: #512a9e;
    border-color: #512a9e;
}

.event-page .photo-card button:focus-visible,
.event-page .pic-ad-banner a:focus-visible,
.event-page .pic-public-share button:focus-visible,
.event-page .pic-public-share a:focus-visible {
    outline: 3px solid var(--accent, #6f3cc3);
    outline-offset: 3px;
}

.event-page .pic-ad-banner {
    color: #282432;
    background: linear-gradient(110deg, #f5f3ff, #eef2ff);
    border: 1px solid #d9cff3;
    border-radius: 16px;
}

.event-page .pic-ad-banner-mark,
.event-page .pic-ad-banner-copy strong,
.event-page .pic-ad-banner-copy p {
    color: #282432;
}

.event-page .pic-ad-banner-copy > span,
.event-page .pic-ad-banner-label {
    color: #512a9e;
}

.event-page .photographer-bar,
.event-page .pic-public-share {
    color: var(--text, #111111);
}

.event-page .photographer-bar {
    background: var(--surface, #ffffff);
    border-color: var(--line, #e5e5e5);
}

.event-page .photographer-bar p,
.event-page .photographer-bar small {
    color: var(--muted, #777777);
}

.event-page .photographer-bar a,
.event-page .pic-public-share a {
    overflow-wrap: anywhere;
}

html[data-theme="dark"] body.event-page {
    background: var(--bg, #101116);
    color: var(--text, #f4f5f8);
}

html[data-theme="dark"] .event-page .event-container,
html[data-theme="dark"] .event-page .event-header h2,
html[data-theme="dark"] .event-page .event-header strong,
html[data-theme="dark"] .event-page .event-container h2,
html[data-theme="dark"] .event-page .photographer-bar,
html[data-theme="dark"] .event-page .pic-public-share {
    color: var(--text, #f4f5f8);
}

html[data-theme="dark"] .event-page .event-header p,
html[data-theme="dark"] .event-page .event-container .eyebrow,
html[data-theme="dark"] .event-page .event-stat span,
html[data-theme="dark"] .event-page .photographer-bar p,
html[data-theme="dark"] .event-page .photographer-bar small {
    color: var(--muted, #a4a8b5);
}

html[data-theme="dark"] .event-page .event-stat,
html[data-theme="dark"] .event-page .photo-search,
html[data-theme="dark"] .event-page .photo-card,
html[data-theme="dark"] .event-page .photo-card .photo-actions,
html[data-theme="dark"] .event-page .photographer-bar {
    color: #f4f5f8;
    background: #191b23;
    border-color: #383b48;
}

html[data-theme="dark"] .event-page .photo-search input,
html[data-theme="dark"] .event-page .photo-card .photo-number,
html[data-theme="dark"] .event-page .photo-card .event-photo-price {
    color: #f4f5f8;
}

html[data-theme="dark"] .event-page .photo-search input::placeholder {
    color: #b7bbc8;
    opacity: 1;
}

html[data-theme="dark"] .event-page .photo-card img {
    background: #30333e;
}

html[data-theme="dark"] .event-page .pic-ad-banner {
    color: #f7f4ff;
    background: linear-gradient(110deg, #292238, #20253b);
    border-color: #51436f;
}

html[data-theme="dark"] .event-page .pic-ad-banner-mark,
html[data-theme="dark"] .event-page .pic-ad-banner-copy strong,
html[data-theme="dark"] .event-page .pic-ad-banner-copy p {
    color: #f7f4ff;
}

html[data-theme="dark"] .event-page .pic-ad-banner-copy > span,
html[data-theme="dark"] .event-page .pic-ad-banner-label {
    color: #d2c0ff;
}

html[data-theme="dark"] .event-page .pic-public-share button,
html[data-theme="dark"] .event-page .pic-public-share a {
    color: #f4f5f8;
}

html[data-theme="dark"] .event-page .pic-public-share button {
    background: #252833;
    border-color: #454958;
}

@media (max-width: 800px) {
    .event-page .event-hero-compact {
        height: 225px;
        min-height: 205px;
    }

    .event-page .event-hero-compact .event-hero-content {
        width: calc(100% - 32px);
        padding: 18px 0;
    }

    .event-page .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .event-page .photo-card img {
        height: clamp(130px, 32vw, 230px);
    }

    .event-page .photo-card .photo-actions {
        padding: 10px;
        gap: 7px;
    }
}

@media (max-width: 420px) {
    .event-page .event-hero-compact {
        height: 205px;
        min-height: 190px;
    }

    .event-page .event-container {
        padding-top: 24px;
    }

    .event-page .gallery-grid {
        gap: 9px;
    }

    .event-page .photo-card {
        border-radius: 11px;
    }

    .event-page .photo-card img {
        height: clamp(118px, 35vw, 170px);
    }

    .event-page .photo-card .photo-actions {
        padding: 8px;
        gap: 6px;
    }

    .event-page .photo-card .photo-number {
        font-size: .8rem;
    }

    .event-page .photo-card .photo-cart-button,
    .event-page .photo-card .photo-actions button {
        max-width: 100%;
        padding: 7px 9px;
        font-size: .8rem;
    }
}



/* =========================================================
   PIC-ARTE · PUBLICIDAD EN GALERÍAS
   ========================================================= */

.event-page .pic-ad-slot {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    margin: 8px 0;
    padding: 0;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
    color: #20212a;
    box-shadow: 0 5px 20px rgba(20, 20, 35, .055);
}

.event-page .pic-ad-slides {
    position: relative;
    width: 100%;
    min-width: 0;
}

.event-page .pic-ad-slide {
    display: none;
    align-items: center;
    gap: 22px;
    width: 100%;
    min-height: 150px;
    padding: 18px 24px;
    color: inherit;
    text-decoration: none;
    box-sizing: border-box;
}

.event-page .pic-ad-slide {
    display: none;
}

.event-page .pic-ad-slide.is-active {
    display: flex;
}

.event-page .pic-ad-slide img {
    display: block;
    flex: 0 0 190px;
    width: 190px;
    height: 112px;
    object-fit: contain;
    object-position: center;
    border-radius: 0;
    background: transparent;
}

.event-page .pic-ad-slide-copy {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
    gap: 6px;
}

.event-page .pic-ad-slide-copy small {
    color: #777487;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.event-page .pic-ad-slide-copy strong {
    color: #252333;
    font-size: 1.2rem;
    line-height: 1.25;
}

.event-page .pic-ad-slide-copy > span {
    color: #686779;
    font-size: .9rem;
    line-height: 1.45;
}

.event-page .pic-ad-banner-label {
    flex: 0 0 auto;
    align-self: center;
    padding: 8px 13px;
    border-radius: 999px;
    background: #f0edfa;
    color: #59418b;
    font-size: .75rem;
    font-weight: 700;
    white-space: nowrap;
}

.event-page .pic-ad-brand {
    background: linear-gradient(105deg, #f8f6ff 0%, #f1f3ff 100%);
}

.event-page .pic-ad-banner-mark {
    display: flex;
    flex: 0 0 190px;
    min-height: 112px;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: linear-gradient(135deg, #30234c, #6650a0);
    color: #fff;
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -.04em;
}

.event-page .pic-ad-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 36px;
    padding: 0 12px 8px;
}

.event-page .pic-ad-controls button {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid #e3e0eb;
    border-radius: 50%;
    background: #fff;
    color: #51436f;
    font-size: 1.2rem;
    cursor: pointer;
}

.event-page .pic-ad-dots {
    display: flex;
    align-items: center;
    gap: 6px;
}

.event-page .pic-ad-dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #d2cedd;
}

.event-page .pic-ad-dot.is-active {
    width: 17px;
    border-radius: 8px;
    background: #7056a5;
}

/* Una sola versión de cada posición según el dispositivo */
.event-page .pic-ad-mobile {
    display: none;
}

@media (max-width: 800px) {
    .event-page .pic-ad-desktop {
        display: none !important;
    }

    .event-page .pic-ad-mobile {
        display: flex;
    }

    .event-page .pic-ad-slot {
        margin: 5px 0;
        border-radius: 13px;
    }

    .event-page .pic-ad-slide {
        gap: 13px;
        min-height: 112px;
        padding: 12px;
    }

    .event-page .pic-ad-slide img,
    .event-page .pic-ad-banner-mark {
        flex-basis: 105px;
        width: 105px;
        height: 82px;
        min-height: 82px;
        border-radius: 9px;
    }

    .event-page .pic-ad-slide-copy {
        gap: 4px;
    }

    .event-page .pic-ad-slide-copy strong {
        font-size: .95rem;
    }

    .event-page .pic-ad-slide-copy > span {
        font-size: .78rem;
    }

    .event-page .pic-ad-slide-copy small {
        font-size: .62rem;
    }

    .event-page .pic-ad-banner-label {
        display: none;
    }

    .event-page .pic-ad-banner-mark {
        font-size: 1rem;
    }

    .event-page .pic-ad-controls {
        min-height: 30px;
        padding-bottom: 6px;
    }
}

@media (max-width: 420px) {
    .event-page .pic-ad-slide {
        gap: 10px;
        padding: 10px;
    }

    .event-page .pic-ad-slide img,
    .event-page .pic-ad-banner-mark {
        flex-basis: 86px;
        width: 86px;
        height: 72px;
        min-height: 72px;
    }

    .event-page .pic-ad-slide-copy strong {
        font-size: .87rem;
    }
}

html[data-theme="dark"] .event-page .pic-ad-slot {
    background: #252733;
    border-color: #414454;
    color: #f7f4ff;
}

html[data-theme="dark"] .event-page .pic-ad-slide-copy strong {
    color: #f7f4ff;
}

html[data-theme="dark"] .event-page .pic-ad-slide-copy > span,
html[data-theme="dark"] .event-page .pic-ad-slide-copy small {
    color: #c5c1d2;
}

html[data-theme="dark"] .event-page .pic-ad-brand {
    background: linear-gradient(105deg, #292238, #20253b);
}

html[data-theme="dark"] .event-page .pic-ad-controls button {
    background: #303342;
    border-color: #505469;
    color: #eee8ff;
}
