:root {
    --jr-gold: #c6a15b;
    --jr-gold-strong: #b68a3a;
    --jr-gold-dark: #8f6729;
    --jr-gold-soft: #f4e7c9;
    --jr-cream: #fffdf8;
    --jr-cream-soft: #f8f2e8;
    --jr-warm-white: #ffffff;
    --jr-charcoal: #2d2924;
    --jr-brown: #5f584e;
    --jr-border-gold: #dfcfb2;

    --jr-primary: var(--jr-gold-strong);
    --jr-primary-hover: var(--jr-gold-dark);
    --jr-primary-dark: #3c3126;
    --jr-primary-soft: #fbf2df;
    --jr-accent: var(--jr-gold);
    --jr-ink: var(--jr-charcoal);
    --jr-muted: #403b36;
    --jr-muted-strong: #332f2b;
    --jr-surface: var(--jr-warm-white);
    --jr-surface-soft: #fbf8f1;
    --jr-background: var(--jr-cream);
    --jr-border: #e8dfcf;
    --jr-border-strong: #d8c8aa;
    --jr-shadow-sm: 0 8px 24px rgba(61, 48, 31, .06);
    --jr-shadow: 0 18px 50px rgba(61, 48, 31, .09);
    --jr-shadow-lg: 0 28px 80px rgba(61, 48, 31, .12);

    --to-primary: var(--jr-gold-strong);
    --to-primary-dark: var(--jr-gold-dark);
    --to-secondary: var(--jr-charcoal);
    --to-accent: var(--jr-gold);
    --to-bg: var(--jr-cream);
    --to-text: var(--jr-charcoal);

    --bs-primary: #b68a3a;
    --bs-primary-rgb: 182, 138, 58;
    --bs-link-color: #8f6729;
    --bs-link-hover-color: #6f4e1e;
}

body {
    background:
        radial-gradient(circle at 8% 0%, rgba(198, 161, 91, .08), transparent 24rem),
        linear-gradient(180deg, #fffdf8 0%, #fbf7ef 100%);
    color: var(--jr-charcoal);
}

.site-main h1,
.site-main h2,
.public-page-title {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
    letter-spacing: -.035em;
}

.site-main h3,
.site-main h4,
.site-main h5,
.site-main h6 {
    color: var(--jr-charcoal);
}

.site-header {
    border-bottom-color: rgba(198, 161, 91, .24);
    background: rgba(255, 253, 248, .95);
}

.site-header.is-scrolled {
    background: rgba(255, 253, 248, .985);
    box-shadow: 0 12px 34px rgba(61, 48, 31, .08);
}

.site-nav-links a:hover,
.site-nav-links a:focus-visible,
.mobile-nav-list a:hover,
.mobile-nav-list a:focus-visible {
    color: var(--jr-gold-dark);
    background: var(--jr-gold-soft);
}

.header-search .input-group,
.mobile-search .input-group,
.site-account-button,
.site-navbar-toggler,
.search-suggestions,
.city-results,
.site-dropdown,
.site-account-menu,
.mobile-navigation {
    border-color: var(--jr-border-gold);
    background: rgba(255, 255, 255, .96);
}

.header-search .input-group:focus-within,
.mobile-search .input-group:focus-within,
.site-main .form-control:focus,
.site-main .form-select:focus {
    border-color: rgba(182, 138, 58, .68);
    box-shadow: 0 0 0 .22rem rgba(198, 161, 91, .16);
}

.btn-primary,
.site-main .btn-primary {
    --bs-btn-color: #2d2924;
    --bs-btn-bg: #c6a15b;
    --bs-btn-border-color: #c6a15b;
    --bs-btn-hover-color: #fffdf8;
    --bs-btn-hover-bg: #8f6729;
    --bs-btn-hover-border-color: #8f6729;
    --bs-btn-focus-shadow-rgb: 182, 138, 58;
    --bs-btn-active-color: #fffdf8;
    --bs-btn-active-bg: #79551f;
    --bs-btn-active-border-color: #79551f;
    color: #2d2924;
    background: #c6a15b;
    border-color: #c6a15b;
    box-shadow: 0 .45rem 1.2rem rgba(143, 103, 41, .14);
}

.btn-primary:hover,
.btn-primary:focus-visible,
.site-main .btn-primary:hover,
.site-main .btn-primary:focus-visible {
    color: #fffdf8;
    background: #8f6729;
    border-color: #8f6729;
}

.btn-outline-primary {
    --bs-btn-color: #8f6729;
    --bs-btn-border-color: #b68a3a;
    --bs-btn-hover-color: #2d2924;
    --bs-btn-hover-bg: #f4e7c9;
    --bs-btn-hover-border-color: #b68a3a;
    --bs-btn-active-color: #fffdf8;
    --bs-btn-active-bg: #8f6729;
    --bs-btn-active-border-color: #8f6729;
}

.text-primary {
    color: #8f6729 !important;
}

.bg-primary {
    background-color: #b68a3a !important;
}

.border-primary {
    border-color: #b68a3a !important;
}

a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand) {
    color: #856125;
}

a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):hover {
    color: #684916;
}

.site-main .card,
.auth-card,
.account-card,
.search-panel,
.listing-card,
.pricing-card,
.blog-card,
.shop-card {
    border-color: rgba(198, 161, 91, .26) !important;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 12px 34px rgba(61, 48, 31, .06) !important;
}

.site-main .card:hover,
.listing-card:hover {
    border-color: rgba(182, 138, 58, .4) !important;
}

.form-control,
.form-select,
.input-group-text {
    border-color: #dfcfb2;
}

.form-control:focus,
.form-select:focus {
    border-color: #b68a3a;
    box-shadow: 0 0 0 .2rem rgba(198, 161, 91, .15);
}

.hero-panel,
.hero-home,
.newsletter-panel {
    border-color: rgba(198, 161, 91, .26);
    background:
        radial-gradient(circle at 88% 18%, rgba(198, 161, 91, .16), transparent 22rem),
        linear-gradient(135deg, #fffaf0 0%, #f8f0df 100%);
}

.badge.text-bg-primary,
.badge.bg-primary {
    color: #2d2924 !important;
    background: #e0c78f !important;
}

.pagination {
    --bs-pagination-color: #8f6729;
    --bs-pagination-hover-color: #684916;
    --bs-pagination-hover-bg: #fbf2df;
    --bs-pagination-focus-color: #684916;
    --bs-pagination-focus-bg: #fbf2df;
    --bs-pagination-active-color: #2d2924;
    --bs-pagination-active-bg: #c6a15b;
    --bs-pagination-active-border-color: #c6a15b;
}

.progress {
    --bs-progress-bar-bg: #b68a3a;
}

.footer,
.site-footer {
    border-top-color: rgba(198, 161, 91, .22);
}

:focus-visible {
    outline-color: #b68a3a !important;
}

/* Administration */
:root {
    --admin-navy: #2d261f;
    --admin-navy-soft: #40352a;
    --admin-blue: #b68a3a;
    --admin-blue-soft: #fbf2df;
    --admin-orange: #d0ad68;
    --admin-surface: #ffffff;
    --admin-background: #fbf7ef;
    --admin-border: #e4d9c4;
    --admin-text: #332d26;
    --admin-muted: #756e64;
    --admin-shadow: 0 14px 38px rgba(61, 48, 31, .08);
}

.admin-body {
    background:
        radial-gradient(circle at 6% 2%, rgba(198, 161, 91, .10), transparent 23rem),
        radial-gradient(circle at 96% 12%, rgba(208, 173, 104, .08), transparent 26rem),
        #fbf7ef;
}

.admin-header {
    background: linear-gradient(115deg, #2d261f, #40352a);
    border-bottom: 1px solid rgba(198, 161, 91, .36);
    box-shadow: 0 10px 30px rgba(45, 38, 31, .22);
}

.admin-brand-mark {
    background: rgba(198, 161, 91, .12);
    border-color: rgba(198, 161, 91, .34);
}

.admin-main-nav > .nav-item > .nav-link.active {
    box-shadow: inset 0 -2px 0 #d0ad68;
}

.admin-main-nav > .nav-item > .nav-link:hover,
.admin-main-nav > .nav-item > .nav-link:focus-visible,
.admin-main-nav > .nav-item > .nav-link.active {
    background: rgba(198, 161, 91, .14);
}

.admin-mega-menu .dropdown-item:hover,
.admin-mega-menu .dropdown-item:focus {
    color: #7c591f;
    background: #fbf2df;
}

.admin-mega-menu .dropdown-item > i {
    color: #8f6729;
    background: #fbf2df;
}

.admin-content .card,
.admin-content .table-responsive,
.admin-filter-card,
.admin-pagination {
    border-color: #e4d9c4;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 8px 26px rgba(61, 48, 31, .055);
}

.admin-content .card-header {
    background: linear-gradient(180deg, #fff, #fffaf0);
    border-bottom-color: #e4d9c4;
}

.admin-content .table {
    --bs-table-hover-bg: #fdf8ed;
}

.admin-content .table thead th {
    color: #6f665a;
    background: #fbf8f1;
    border-bottom-color: #e4d9c4;
}

.admin-content .table tbody td {
    border-color: #eee6d8;
}

.admin-content .form-control,
.admin-content .form-select {
    border-color: #d8c8aa;
}

.admin-content .form-control:focus,
.admin-content .form-select:focus {
    border-color: #b68a3a;
    box-shadow: 0 0 0 .2rem rgba(198, 161, 91, .16);
}

.admin-content .btn-primary {
    color: #2d2924;
    background: #c6a15b;
    border-color: #c6a15b;
}

.admin-content .btn-primary:hover,
.admin-content .btn-primary:focus {
    color: #fffdf8;
    background: #8f6729;
    border-color: #8f6729;
}

.admin-identity-avatar {
    color: #2d2924;
    background: linear-gradient(135deg, #c6a15b, #e0c78f);
}

.admin-detail-item {
    background: #fbf8f1;
}

@media (prefers-color-scheme: dark) {
    /* Le produit conserve volontairement sa charte crème claire. */
    :root {
        color-scheme: light;
    }
}


/* 10.4.8 — cartes d’annonces premium */
.listing-card {
    position: relative;
    overflow: hidden;
    height: 100%;
    border: 1px solid rgba(198, 161, 91, .24) !important;
    border-radius: 1.35rem !important;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 14px 38px rgba(61, 48, 31, .07) !important;
    transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}

.listing-card:hover {
    transform: translateY(-5px);
    border-color: rgba(182, 138, 58, .45) !important;
    box-shadow: 0 24px 56px rgba(61, 48, 31, .12) !important;
}

.listing-card-media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background:
        radial-gradient(circle at 50% 20%, rgba(198,161,91,.18), transparent 50%),
        #f1eadf;
}

.listing-card-image,
.listing-card-placeholder {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
}

.listing-card-image {
    display: block;
    object-fit: cover;
    transform: scale(1.001);
    transition: transform .45s ease;
}

.listing-card:hover .listing-card-image {
    transform: scale(1.035);
}

.listing-card-placeholder {
    display: grid !important;
    place-items: center;
    color: var(--jr-gold-dark);
}

.listing-card-placeholder span {
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    border: 1px solid rgba(198,161,91,.32);
    border-radius: 999px;
    background: rgba(255,253,248,.74);
    font-size: 1.35rem;
}

.listing-card-media-shade {
    position: absolute;
    inset: auto 0 0;
    height: 38%;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(38, 31, 24, .16));
}

.listing-card-status {
    position: absolute;
    z-index: 3;
    top: .85rem;
    left: .85rem;
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    padding: .42rem .65rem;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .035em;
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 22px rgba(38,31,24,.12);
}

.listing-card-status.is-lost {
    color: #73403a;
    background: rgba(255, 244, 239, .92);
}

.listing-card-status.is-found {
    color: #35604d;
    background: rgba(241, 249, 244, .92);
}

.listing-favorite-button {
    z-index: 4;
    top: .75rem !important;
    right: .75rem !important;
}

.listing-favorite-control {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255,255,255,.60);
    border-radius: 999px;
    color: var(--jr-charcoal);
    background: rgba(255,253,248,.92);
    box-shadow: 0 8px 22px rgba(38,31,24,.12);
    backdrop-filter: blur(10px);
}

.listing-favorite-control:hover {
    color: var(--jr-gold-dark);
    background: #fffdf8;
}

.listing-card-body {
    display: flex;
    min-height: 13.2rem;
    flex-direction: column;
    padding: 1.15rem 1.2rem 1.1rem;
}

.listing-card-topline {
    display: flex;
    gap: .6rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .55rem;
}

.listing-card-category {
    overflow: hidden;
    color: var(--jr-gold-dark);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.listing-card-date {
    flex: 0 0 auto;
    color: var(--jr-muted);
    font-size: .68rem;
}

.listing-card-title {
    margin: 0 0 .6rem;
    color: var(--jr-charcoal);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.23rem;
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.18;
}

.listing-card-title a {
    color: inherit !important;
    text-decoration: none;
}

.listing-card-location {
    display: flex;
    gap: .38rem;
    align-items: flex-start;
    margin: 0 0 1rem;
    color: var(--jr-muted);
    font-size: .78rem;
    line-height: 1.45;
}

.listing-card-location i {
    margin-top: .08rem;
    color: var(--jr-gold-dark);
}

.listing-card-footer {
    display: flex;
    gap: .65rem;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: .85rem;
    border-top: 1px solid rgba(198,161,91,.17);
}

.listing-card-note,
.listing-card-reward {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    min-width: 0;
    color: var(--jr-muted-strong);
    font-size: .71rem;
    font-weight: 700;
}

.listing-card-reward {
    color: #6d5528;
}

.listing-card-note i,
.listing-card-reward i {
    color: var(--jr-gold-dark);
}

.listing-card-arrow {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(198,161,91,.25);
    border-radius: 999px;
    color: var(--jr-gold-dark);
    background: #fffaf0;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

.listing-card:hover .listing-card-arrow {
    transform: rotate(8deg);
    color: #fffdf8;
    background: var(--jr-gold-dark);
}


/* 10.5.0 — passe finale mobile/tablette */
html {
    overflow-x: clip;
}

body,
.site-main,
.site-main > .container-xxl {
    min-width: 0;
}

.site-main :where(.card, .account-panel, .admin-content, .search-panel, .listing-card) {
    min-width: 0;
}

.site-main :where(.form-control, .form-select, textarea) {
    max-width: 100%;
}

.site-main :where(button, .btn, a.btn, .nav-link, .dropdown-item) {
    touch-action: manipulation;
}

@media (max-width: 1199.98px) {
    .site-main > .container-xxl {
        padding-inline: clamp(1rem, 2.4vw, 1.5rem);
    }

    .page-account .account-dashboard-grid {
        gap: 1rem;
    }

    .admin-main .container-fluid,
    .admin-content {
        min-width: 0;
    }
}

@media (max-width: 991.98px) {
    .site-main {
        padding-bottom: 4rem;
    }

    .site-main :where(.display-1, .display-2, .display-3, .display-4, .display-5) {
        text-wrap: balance;
    }

    .page-account .account-premium-nav-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: .6rem;
    }

    .page-account .account-premium-nav-links {
        width: 100%;
        overflow-x: auto;
        padding-bottom: .3rem;
        scrollbar-width: thin;
    }

    .page-account .account-premium-nav-link {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .admin-page-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .admin-page-heading-actions,
    .admin-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .admin-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-toolbar > * {
        max-width: 100%;
    }

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

@media (max-width: 767.98px) {
    :root {
        --jr-shadow-lg: 0 18px 50px rgba(61, 48, 31, .11);
    }

    html {
        scroll-padding-top: 5rem;
    }

    body {
        font-size: .98rem;
    }

    .site-main {
        padding-top: 1rem;
    }

    .site-main > .container-xxl {
        padding-inline: 1rem;
    }

    .site-main h1 {
        overflow-wrap: anywhere;
    }

    .site-main :where(.form-control, .form-select, textarea) {
        min-height: 3rem;
        font-size: 1rem;
    }

    .site-main textarea.form-control {
        min-height: 8rem;
    }

    .site-main :where(.btn, button.btn) {
        min-height: 2.85rem;
    }

    .site-main .btn-sm {
        min-height: 2.6rem;
    }

    .site-main .btn-lg {
        min-height: 3.25rem;
    }

    .site-main .input-group {
        min-width: 0;
    }

    .site-main .input-group > * {
        min-width: 0;
    }

    .site-main .breadcrumb {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: .15rem;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .site-main .breadcrumb::-webkit-scrollbar {
        display: none;
    }

    .site-main :where(.table-responsive) {
        margin-inline: -.15rem;
        border-radius: .9rem;
    }

    .page-home .home-section-heading-row,
    .page-listings .listing-results-heading,
    .page-search .search-results-heading {
        gap: .55rem;
    }

    .page-home .home-listing-track {
        scroll-padding-inline: 1rem;
        overscroll-behavior-inline: contain;
    }

    .page-search .search-category-links,
    .page-listings .listing-category-links {
        margin-inline: -.25rem;
        padding-inline: .25rem;
        scroll-padding-inline: .25rem;
        overscroll-behavior-inline: contain;
    }

    .page-account .account-premium-nav {
        margin-inline: -1rem;
        padding-inline: 1rem;
        border-radius: 0;
    }

    .page-account .account-dashboard-hero,
    .page-account .account-panel,
    .page-account .account-metric-card {
        border-radius: 1rem;
    }

    .page-account .account-dashboard-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .page-account .account-dashboard-actions .btn,
    .page-account .account-panel-heading .btn {
        width: 100%;
    }

    .page-account .account-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-account .account-panel-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .7rem;
    }

    .page-account .table-responsive {
        font-size: .9rem;
    }

    .admin-main {
        padding-inline: 0;
    }

    .admin-content {
        padding-inline: 1rem;
    }

    .admin-page-title {
        font-size: clamp(1.8rem, 9vw, 2.5rem);
        overflow-wrap: anywhere;
    }

    .admin-page-heading-actions,
    .admin-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .admin-page-heading-actions .btn,
    .admin-actions .btn {
        width: 100%;
    }

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

    .admin-filter-card .card-body,
    .admin-content .card-body {
        padding: 1rem;
    }

    .admin-content .table {
        min-width: 42rem;
    }

    .admin-pagination {
        align-items: flex-start;
        flex-direction: column;
        gap: .7rem;
    }

    .admin-pagination .pagination {
        flex-wrap: wrap;
    }

    .admin-offcanvas {
        width: min(88vw, 22rem) !important;
    }
}

@media (max-width: 575.98px) {
    .site-main > .container-xxl {
        padding-inline: .85rem;
    }

    .site-main .page-hero {
        margin-inline: 0;
    }

    .page-account .account-metrics {
        grid-template-columns: 1fr;
    }

    .page-account .account-metric-card {
        min-height: auto;
    }

    .site-footer .footer-grid {
        gap: 1.5rem;
    }
}


/* 10.5.1 — lisibilité header/footer et légendes */
.site-header,
.mobile-navigation,
.site-footer {
    color: var(--jr-ink);
}

.site-header :where(a, button, span, small, strong, label, input, .dropdown-item),
.mobile-navigation :where(a, button, span, small, strong, label, input, .dropdown-item),
.site-footer :where(a, button, span, small, strong, p, h2, label, input) {
    color: var(--jr-ink) !important;
}

.site-header .form-control::placeholder,
.mobile-navigation .form-control::placeholder,
.site-footer .form-control::placeholder {
    color: var(--jr-ink);
    opacity: .62;
}

.site-header .site-nav-links a:hover,
.site-header .site-nav-links a:focus-visible,
.mobile-navigation .mobile-nav-list a:hover,
.mobile-navigation .mobile-nav-list a:focus-visible {
    color: var(--jr-ink) !important;
}

.site-footer {
    border-top-color: rgba(198, 161, 91, .28);
    background:
        radial-gradient(circle at 12% 0%, rgba(198, 161, 91, .08), transparent 26rem),
        var(--jr-cream);
}

.site-footer .footer-actions a:hover,
.site-footer .footer-actions a:focus-visible,
.site-footer .footer-links a:hover,
.site-footer .footer-links a:focus-visible,
.site-footer .footer-legal-links a:hover,
.site-footer .footer-credit a:hover {
    color: var(--jr-ink) !important;
}



/* 10.5.2 — système visuel crème / or métal / encre */
:root {
    --jr-metal-gold-a: #b68a3a;
    --jr-metal-gold-b: #d9bd78;
    --jr-metal-gold-c: #c39b52;
    --jr-metal-gold-edge: #7f5a22;
    --jr-metal-gold-highlight: #ead59a;
}

.site-main,
.site-header,
.site-footer {
    color: var(--jr-ink);
}

.text-muted,
.text-secondary,
.site-main .text-muted,
.site-main .text-secondary {
    color: var(--jr-muted) !important;
}

.site-header,
.site-header a,
.site-header button,
.site-header .nav-link,
.site-header .dropdown-item,
.site-header .site-account-button,
.mobile-navigation,
.mobile-navigation a,
.mobile-navigation button {
    color: var(--jr-ink) !important;
}

.btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link),
.site-main .btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link) {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--jr-metal-gold-edge);
    color: var(--jr-ink) !important;
    background:
        linear-gradient(
            135deg,
            var(--jr-metal-gold-a) 0%,
            var(--jr-metal-gold-b) 34%,
            var(--jr-metal-gold-c) 58%,
            var(--jr-metal-gold-highlight) 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .56),
        inset 0 -1px 0 rgba(72, 47, 15, .18),
        0 .55rem 1.25rem rgba(93, 65, 25, .14);
    font-weight: 800;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
    transition:
        transform .2s ease,
        filter .2s ease,
        box-shadow .2s ease;
}

.btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link)::before,
.site-main .btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link)::before {
    position: absolute;
    top: -120%;
    left: -35%;
    width: 28%;
    height: 340%;
    content: "";
    pointer-events: none;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, .34),
        transparent
    );
    transform: rotate(18deg);
    transition: left .55s ease;
}

.btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link):hover,
.btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link):focus-visible,
.site-main .btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link):hover,
.site-main .btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link):focus-visible {
    border-color: #6f4d1c;
    color: var(--jr-ink) !important;
    filter: saturate(1.06) brightness(1.035);
    transform: translateY(-2px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .62),
        0 .8rem 1.65rem rgba(93, 65, 25, .2);
}

.btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link):hover::before,
.btn:not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-link):focus-visible::before {
    left: 118%;
}

.btn:disabled,
.btn.disabled {
    transform: none !important;
    filter: grayscale(.18);
    opacity: .62;
}

.jr-floating-media {
    animation: jr-media-float 7s ease-in-out infinite;
    transform-origin: center;
    will-change: transform;
}

@keyframes jr-media-float {
    0%,
    100% {
        transform: translate3d(0, 0, 0) rotate(-.35deg);
    }

    50% {
        transform: translate3d(0, -10px, 0) rotate(.35deg);
    }
}



/* 10.5.2 — mouvement discret des visuels éditoriaux */
.site-main :where(
    .blog-featured-media,
    .shop-product-stage,
    .shop-product-media,
    .blog-card-media,
    .listing-gallery-item,
    .account-listing-thumb,
    .card-img-top
) {
    overflow: hidden;
}

.site-main :where(
    .blog-featured-media img,
    .shop-product-stage > img,
    .shop-product-media img,
    .blog-card-media img,
    .listing-gallery-item img,
    .account-listing-thumb,
    .card-img-top
):not([src*="/icone/"]):not(.jr-floating-media) {
    transition:
        transform .55s cubic-bezier(.22, .61, .36, 1),
        filter .55s ease;
    transform: scale(1.001);
    will-change: transform;
}

.site-main :where(
    .blog-featured-media,
    .shop-product-stage,
    .shop-product-media,
    .blog-card-media,
    .listing-gallery-item,
    .card
):hover img:not([src*="/icone/"]):not(.jr-floating-media) {
    transform: scale(1.035);
    filter: saturate(1.025) contrast(1.01);
}

.blog-featured-media > img,
.shop-product-stage > img,
.listing-gallery-item.is-main > img {
    animation: jr-editorial-breathe 11s ease-in-out infinite alternate;
}

@keyframes jr-editorial-breathe {
    from {
        transform: scale(1.005) translate3d(0, 0, 0);
    }

    to {
        transform: scale(1.025) translate3d(0, -4px, 0);
    }
}


