/* ============================================
   RD Ajustments - Réservoir Digital
   Surcharges CSS pour l'intégration API
   ============================================ */

/* Fix hero.small rendering - override inherited absolute/overflow */
.hero.small .hero-inner {
    height: auto;
    overflow: visible;
}

.hero.small .hero_caption {
    position: relative;
    height: auto;
}

/* Contact success message */
.contact_success {
    background-color: #e8f5e9;
    color: #2e7d32;
    padding: 15px 20px;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 25px;
}

/* ─── SKELETON LOADERS ─── */

@keyframes skeleton-shimmer {
    0% {
        background-position: -400px 0;
    }
    100% {
        background-position: 400px 0;
    }
}

.skeleton {
    background: linear-gradient(90deg, #f0ede8 0%, #faf8f5 50%, #f0ede8 100%);
    background-size: 800px 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
    border-radius: 4px;
    display: block;
}

.product_item.skeleton-item {
    pointer-events: none;
}
.product_item.skeleton-item .product_item-img {
    aspect-ratio: 1 / 1;
    background: linear-gradient(90deg, #f0ede8 0%, #faf8f5 50%, #f0ede8 100%);
    background-size: 800px 100%;
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.product_item.skeleton-item .product_item-img img {
    visibility: hidden;
}
.product_item.skeleton-item .skeleton-line {
    height: 14px;
    margin: 8px 0;
    width: 80%;
}
.product_item.skeleton-item .skeleton-line.short {
    width: 50%;
}

/* Form validation errors */
.bloc_form.has-error input,
.bloc_form.has-error textarea,
.bloc_form.has-error select {
    border-color: #e74c3c !important;
}
.bloc_form.has-error label {
    color: #e74c3c;
}
.bloc_form .field-error {
    display: block;
    color: #e74c3c;
    font-size: 12px;
    margin-top: 5px;
}

/* Fix autofill text invisible (blanc sur blanc) */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-text-fill-color: var(--color-dark);
}

.blog_article img,
.blog_article .editor-js-image img {
    margin: 0 !important;
}
.blog_gallery {
    margin: 0 !important;
}

/* Top bar : laisser grandir la zone CTA quand le prénom logged-in est long, tout en gardant le logo centré dans le cas par défaut */
.header_wrap-cta {
    width: auto;
    min-width: 190px;
    flex-shrink: 0;
}
.header_wrap-item .cart-title {
    max-width: 140px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* SVG account icon fallback (au cas où du SVG inline est conservé ailleurs) */
.header_wrap-item svg.account-icon {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

@media only screen and (max-width: 991px) {
    .header_wrap-cta {
        min-width: 70px;
    }
}

/* Swiper bundle force `.swiper-wrapper { height: 100% }` → casse la hauteur des slides (cards et vidéos trop grandes).
   On la laisse en `auto` pour que le wrapper s'adapte au contenu des slides. */
.swiper_carousel .swiper-wrapper,
.swiper-video .swiper-wrapper {
    height: auto;
}

/* Checkout — variante "paiement annulé" de l'icône de validation
   (ton ambré = attention, paiement non finalisé, pas une erreur bloquante). */
.step_valid-icon.is-cancel {
    border-color: #c8941f;
    color: #c8941f;
}
