/*
 * Package 114M - JS Curve Restore
 * Replaces /assets/css/package114f-curved-profile-cards.css
 *
 * Restores the nice earlier JS curve panel.
 * Fixes My Profile by using the existing .so113b-photo-wrap as the hero.
 */

:root{
    --so114m-radius:30px;
    --so114m-card-bg:rgba(255,255,255,.985);
    --so114m-photo-bg:linear-gradient(180deg,rgba(195,220,255,.35),rgba(255,226,238,.38));
    --so114m-shadow:0 20px 48px rgba(31,45,85,.10),0 6px 18px rgba(31,45,85,.06);
    --so114m-overlap:34px;
}

/* =========================================================
   MY PROFILE + VIEWED PROFILE: REAL JS CURVE PANEL
========================================================= */

.sticky-profile-card,
.profile-view-card{
    padding:0!important;
    overflow:hidden!important;
    border-radius:var(--so114m-radius)!important;
    background:var(--so114m-card-bg)!important;
    box-shadow:var(--so114m-shadow)!important;
}

/* Hero wrapper. My Profile already has .so113b-photo-wrap. */
.sticky-profile-card > .so113b-photo-wrap,
.sticky-profile-card > .so113a-photo-wrap,
.sticky-profile-card > .so113-photo-wrap,
.sticky-profile-card > .so114m-profile-hero,
.profile-view-card > .so114m-profile-hero,
.profile-view-card > .so114f-hero-wrap{
    position:relative!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    aspect-ratio:4 / 5!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:var(--so114m-radius) var(--so114m-radius) 0 0!important;
    overflow:hidden!important;
    background:var(--so114m-photo-bg)!important;
    box-shadow:none!important;
    line-height:0!important;
}

/* Fill the photo area fully */
.sticky-profile-card > .so113b-photo-wrap > img,
.sticky-profile-card > .so113a-photo-wrap > img,
.sticky-profile-card > .so113-photo-wrap > img,
.sticky-profile-card > .so114m-profile-hero > img,
.profile-view-card > .so114m-profile-hero > img,
.profile-view-card > .so114f-hero-wrap > img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-width:100%!important;
    min-height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center center!important;
    display:block!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
}

/* Hide loose duplicate photos outside hero */
.sticky-profile-card > img.avatar-xl,
.sticky-profile-card > img.profile-main-photo,
.sticky-profile-card img[data-so114m-hidden-duplicate="1"],
.profile-view-card > img.profile-main-photo{
    display:none!important;
}

/* If older fixes created multiple direct photo wrappers, show the first only */
.sticky-profile-card > .so113b-photo-wrap ~ .so113b-photo-wrap,
.sticky-profile-card > .so113a-photo-wrap ~ .so113a-photo-wrap,
.sticky-profile-card > .so113-photo-wrap ~ .so113-photo-wrap{
    display:none!important;
}

/* Image fade under the curved JS panel */
.sticky-profile-card > .so113b-photo-wrap::after,
.sticky-profile-card > .so113a-photo-wrap::after,
.sticky-profile-card > .so113-photo-wrap::after,
.sticky-profile-card > .so114m-profile-hero::after,
.profile-view-card > .so114m-profile-hero::after,
.profile-view-card > .so114f-hero-wrap::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    height:35%!important;
    z-index:1!important;
    background:linear-gradient(180deg,rgba(0,0,0,0),rgba(13,25,47,.17))!important;
    pointer-events:none!important;
}

/* The real curved panel. This is the nicer earlier curve. */
.sticky-profile-card > .so114m-js-curve-panel,
.profile-view-card > .so114m-js-curve-panel,
.profile-view-card > .so114f-content-panel,
.profile-view-card > .so114l-content-panel{
    position:relative!important;
    z-index:4!important;
    margin-top:calc(var(--so114m-overlap) * -1)!important;
    padding:26px 22px 24px!important;
    width:100%!important;
    background:var(--so114m-card-bg)!important;
    border-radius:38px 38px 0 0!important;
    box-shadow:0 -10px 24px rgba(255,255,255,.74),0 12px 28px rgba(36,49,88,.06)!important;
    text-align:center!important;
}

/* Keep content inside panel */
.so114m-js-curve-panel > *,
.profile-view-card > .so114f-content-panel > *,
.profile-view-card > .so114l-content-panel > *{
    position:relative;
    z-index:2;
}

.so114m-js-curve-panel h1,
.so114m-js-curve-panel .profile-title-row h1{
    margin-top:0!important;
    margin-bottom:6px!important;
    line-height:1.12!important;
}

.so114m-js-curve-panel p.muted{
    margin-bottom:14px!important;
}

.so114m-js-curve-panel .completion-ring{
    margin-top:14px!important;
    margin-bottom:12px!important;
}

/* make My Profile buttons fit nicely */
.so114m-js-curve-panel > a.btn,
.so114m-js-curve-panel > .btn{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}

/* Neutralize older direct content panels nested inside our curve panel */
.so114m-js-curve-panel .so114f-content-panel,
.so114m-js-curve-panel .so114h-content-panel,
.so114m-js-curve-panel .so114i-content-panel,
.so114m-js-curve-panel .so114j-content-panel,
.so114m-js-curve-panel .so114k-content-panel,
.so114m-js-curve-panel .so114l-content-panel{
    display:contents!important;
    margin:0!important;
    padding:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:transparent!important;
}

/* Verified badge */
.sticky-profile-card .so113a-verified-icon,
.sticky-profile-card .so113b-verified-icon,
.sticky-profile-card .so113-verified-icon,
.sticky-profile-card .profile-verified-inline,
.sticky-profile-card .verified-badge,
.profile-view-card .so114f-photo-verified{
    position:absolute!important;
    top:14px!important;
    left:14px!important;
    z-index:5!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.94)!important;
    color:#2f79ff!important;
    border:1px solid rgba(47,121,255,.18)!important;
    box-shadow:0 8px 18px rgba(27,57,104,.16)!important;
    font-size:0!important;
    text-indent:-9999px!important;
    overflow:hidden!important;
    margin:0!important;
    padding:0!important;
}

.sticky-profile-card .so113a-verified-icon::before,
.sticky-profile-card .so113b-verified-icon::before,
.sticky-profile-card .so113-verified-icon::before,
.sticky-profile-card .profile-verified-inline::before,
.sticky-profile-card .verified-badge::before,
.profile-view-card .so114f-photo-verified::before{
    content:"✓"!important;
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    color:#2f79ff!important;
    font-size:19px!important;
    font-weight:1000!important;
    text-indent:0!important;
}

body > .profile-verified-inline,
body > .verified-badge,
header .profile-verified-inline,
header .verified-badge,
nav .profile-verified-inline,
nav .verified-badge,
.navbar .profile-verified-inline,
.navbar .verified-badge,
.top-nav .profile-verified-inline,
.top-nav .verified-badge{
    display:none!important;
}

/* =========================================================
   BROWSE / DISCOVER / DAILY MATCHES: SAME CURVE STYLE
========================================================= */

.dating-card-v2,
.daily-match-card,
.smart-daily-card,
.match-card,
.so92-match-card,
.so92-daily-card,
.so68-match-card,
.so68-daily-card,
.daily-matches-card,
.daily-card,
.match-pick-card,
.daily-match-item,
.smart-match-card,
[class*="daily-match"],
[class*="smart-daily"],
[class*="match-card"],
[class*="daily"] .dating-card-v2,
[class*="match"] .dating-card-v2{
    padding:0!important;
    overflow:hidden!important;
    border-radius:28px!important;
    background:var(--so114m-card-bg)!important;
    box-shadow:0 16px 38px rgba(36,49,88,.09),0 5px 14px rgba(36,49,88,.05)!important;
}

.daily-matches-grid .panel,
.daily-matches-list .panel,
.smart-daily-matches .panel,
.daily-matches-wrap .panel,
.daily-matches .panel,
.daily-match-list .panel{
    padding:0!important;
    overflow:hidden!important;
    border-radius:28px!important;
    background:var(--so114m-card-bg)!important;
}

/* photo blocks */
.dating-card-v2 .dating-card-photo,
.daily-match-card .dating-card-photo,
.smart-daily-card .dating-card-photo,
.match-card .dating-card-photo,
.so92-match-card .dating-card-photo,
.so92-daily-card .dating-card-photo,
.so68-match-card .dating-card-photo,
.so68-daily-card .dating-card-photo,
.daily-matches-card .dating-card-photo,
.daily-card .dating-card-photo,
.match-pick-card .dating-card-photo,
.daily-match-item .dating-card-photo,
.smart-match-card .dating-card-photo,
[class*="daily-match"] .dating-card-photo,
[class*="smart-daily"] .dating-card-photo,
[class*="match-card"] .dating-card-photo,
[class*="daily"] .dating-card-v2 .dating-card-photo,
[class*="match"] .dating-card-v2 .dating-card-photo{
    position:relative!important;
    display:block!important;
    overflow:hidden!important;
    background:var(--so114m-photo-bg)!important;
    aspect-ratio:4 / 5!important;
    min-height:300px!important;
    border-radius:28px 28px 0 0!important;
    margin:0!important;
}

.dating-card-v2 .dating-card-photo::after,
.daily-match-card .dating-card-photo::after,
.smart-daily-card .dating-card-photo::after,
.match-card .dating-card-photo::after,
.so92-match-card .dating-card-photo::after,
.so92-daily-card .dating-card-photo::after,
.so68-match-card .dating-card-photo::after,
.so68-daily-card .dating-card-photo::after,
.daily-matches-card .dating-card-photo::after,
.daily-card .dating-card-photo::after,
.match-pick-card .dating-card-photo::after,
.daily-match-item .dating-card-photo::after,
.smart-match-card .dating-card-photo::after,
[class*="daily-match"] .dating-card-photo::after,
[class*="smart-daily"] .dating-card-photo::after,
[class*="match-card"] .dating-card-photo::after{
    content:""!important;
    position:absolute!important;
    inset:auto 0 0 0!important;
    height:36%!important;
    background:linear-gradient(180deg,rgba(7,13,34,0),rgba(11,21,49,.18))!important;
    pointer-events:none!important;
    z-index:1!important;
}

.dating-card-v2 .dating-card-img,
.daily-match-card .dating-card-img,
.smart-daily-card .dating-card-img,
.match-card .dating-card-img,
.so92-match-card .dating-card-img,
.so92-daily-card .dating-card-img,
.so68-match-card .dating-card-img,
.so68-daily-card .dating-card-img,
.daily-matches-card .dating-card-img,
.daily-card .dating-card-img,
.match-pick-card .dating-card-img,
.daily-match-item .dating-card-img,
.smart-match-card .dating-card-img,
[class*="daily-match"] .dating-card-img,
[class*="smart-daily"] .dating-card-img,
[class*="match-card"] .dating-card-img,
[class*="daily"] .dating-card-v2 .dating-card-img,
[class*="match"] .dating-card-v2 .dating-card-img{
    width:100%!important;
    height:100%!important;
    min-height:300px!important;
    object-fit:cover!important;
    object-position:center center!important;
    display:block!important;
}

/* The curved body for listing cards */
.dating-card-v2 .dating-card-body,
.daily-match-card .dating-card-body,
.smart-daily-card .dating-card-body,
.match-card .dating-card-body,
.so92-match-card .dating-card-body,
.so92-daily-card .dating-card-body,
.so68-match-card .dating-card-body,
.so68-daily-card .dating-card-body,
.daily-matches-card .dating-card-body,
.daily-card .dating-card-body,
.match-pick-card .dating-card-body,
.daily-match-item .dating-card-body,
.smart-match-card .dating-card-body,
[class*="daily-match"] .dating-card-body,
[class*="smart-daily"] .dating-card-body,
[class*="match-card"] .dating-card-body,
[class*="daily"] .dating-card-v2 .dating-card-body,
[class*="match"] .dating-card-v2 .dating-card-body{
    position:relative!important;
    z-index:3!important;
    margin-top:-30px!important;
    padding:20px 20px 18px!important;
    background:var(--so114m-card-bg)!important;
    border-radius:30px 30px 0 0!important;
    box-shadow:0 -8px 22px rgba(255,255,255,.72),0 10px 28px rgba(36,49,88,.06)!important;
}

/* generic daily card body fallback */
.daily-match-card > .card-body,
.smart-daily-card > .card-body,
.so92-match-card > .card-body,
.so92-daily-card > .card-body,
.so68-match-card > .card-body,
.so68-daily-card > .card-body,
.daily-matches-card > .card-body,
.daily-card > .card-body,
.match-pick-card > .card-body,
.daily-match-item > .card-body,
.smart-match-card > .card-body,
[class*="daily-match"] > .card-body,
[class*="smart-daily"] > .card-body,
[class*="match-card"] > .card-body{
    position:relative!important;
    z-index:3!important;
    margin-top:-30px!important;
    padding:20px!important;
    background:var(--so114m-card-bg)!important;
    border-radius:30px 30px 0 0!important;
    box-shadow:0 -8px 22px rgba(255,255,255,.72),0 10px 28px rgba(36,49,88,.06)!important;
}

/* Discover spacing fix */
.discover-stack{
    align-items:start!important;
}
.discover-stack .dating-card-v2{
    height:auto!important;
    min-height:0!important;
    padding-bottom:0!important;
    margin-bottom:0!important;
}

@media(max-width:991.98px){
    .sticky-profile-card > .so113b-photo-wrap,
    .sticky-profile-card > .so113a-photo-wrap,
    .sticky-profile-card > .so113-photo-wrap,
    .sticky-profile-card > .so114m-profile-hero,
    .profile-view-card > .so114m-profile-hero,
    .profile-view-card > .so114f-hero-wrap{
        aspect-ratio:4 / 5!important;
    }

    .dating-card-v2 .dating-card-photo,
    .dating-card-v2 .dating-card-img,
    .daily-match-card .dating-card-photo,
    .daily-match-card .dating-card-img,
    .smart-daily-card .dating-card-photo,
    .smart-daily-card .dating-card-img,
    .match-card .dating-card-photo,
    .match-card .dating-card-img{
        min-height:330px!important;
    }
}

@media(max-width:575.98px){
    :root{
        --so114m-radius:28px;
        --so114m-overlap:32px;
    }

    .sticky-profile-card > .so114m-js-curve-panel,
    .profile-view-card > .so114m-js-curve-panel,
    .profile-view-card > .so114f-content-panel,
    .profile-view-card > .so114l-content-panel{
        padding:23px 17px 22px!important;
        border-radius:32px 32px 0 0!important;
    }
}


/* =========================================================
   Package 114N - PROFILE.PHP PHOTO FILL ONLY
   Do not affect Browse / Discover / Daily / Member pages.
   This forces the existing My Profile .so113b-photo-wrap hero to fill.
========================================================= */

body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card){
    padding:0!important;
}

body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap,
body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) > .so113a-photo-wrap,
body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) > .so113-photo-wrap{
    position:relative!important;
    display:block!important;
    width:100%!important;
    min-width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4 / 5!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:var(--so114m-radius,30px) var(--so114m-radius,30px) 0 0!important;
    overflow:hidden!important;
    line-height:0!important;
    box-shadow:none!important;
    background:var(--so114m-photo-bg,linear-gradient(180deg,rgba(195,220,255,.35),rgba(255,226,238,.38)))!important;
}

body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap > img.avatar-xl,
body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) > .so113a-photo-wrap > img.avatar-xl,
body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) > .so113-photo-wrap > img.avatar-xl{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-width:100%!important;
    min-height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center center!important;
    display:block!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    transform:none!important;
}

body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) > .so114m-js-curve-panel{
    margin-top:-34px!important;
}

/* If another old profile-photo CSS file loaded after this, this body-scoped selector should still win. */
body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) .so113b-photo-wrap{
    max-width:none!important;
}

body.so114n-profile-photo-fill .sticky-profile-card:not(.profile-view-card) .avatar-xl{
    max-width:none!important;
    max-height:none!important;
}


/* =========================================================
   Package 114O - PROFILE.PHP PHOTO WRAPPER UN-NEST
   Fixes nested .so113b-photo-wrap > .so113b-photo-wrap > .so113a-photo-wrap
========================================================= */

body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap{
    position:relative!important;
    display:block!important;
    width:100%!important;
    min-width:100%!important;
    max-width:none!important;
    aspect-ratio:4 / 5!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:var(--so114m-radius,30px) var(--so114m-radius,30px) 0 0!important;
    overflow:hidden!important;
    background:var(--so114m-photo-bg,linear-gradient(180deg,rgba(195,220,255,.35),rgba(255,226,238,.38)))!important;
    box-shadow:none!important;
    line-height:0!important;
}

body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap > img.avatar-xl{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-width:100%!important;
    min-height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center center!important;
    display:block!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    transform:none!important;
}

/* If any nested old wrappers survive, they should not create boxes or sizing. */
body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap .so113b-photo-wrap,
body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap .so113a-photo-wrap,
body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap .so113-photo-wrap{
    display:contents!important;
    width:auto!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:transparent!important;
}

/* Hide any duplicate direct wrappers after the first real one. */
body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113b-photo-wrap ~ .so113b-photo-wrap,
body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113a-photo-wrap,
body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so113-photo-wrap{
    display:none!important;
}

/* Keep the JS curve sitting over the lower photo edge. */
body.so114o-profile-photo-unnested .sticky-profile-card:not(.profile-view-card) > .so114m-js-curve-panel{
    margin-top:-34px!important;
    position:relative!important;
    z-index:4!important;
}
