/* =====================================================================
   ASP-Tarn — site.css : compléments « maison » (remplacent les modules Joomla)
   ===================================================================== */

/* ---------- Icônes Font Awesome 6 : compat classes « fa fa-… » du gabarit ---------- */
.fa { font-family: "Font Awesome 6 Free"; font-weight: 900; }
.rstpl-social-icons .rstpl-social-item .rstpl-social-link .fa { font-family: "Font Awesome 6 Brands"; font-weight: 400; }
.rstpl-social-icons .rstpl-social-item.youtube > a > .fa:before { content: "\f167"; }
.mod-login [class^="icon-"]:before, .icon-eye-slash:before { font-family: "Font Awesome 6 Free"; font-weight: 900; }

/* ---------- Bandeau d'accueil (un seul visuel, sans slick) ---------- */
.rsmg_rsp_slider_container .item { position: relative; }
.rsmg_rsp_slider_container .rstpl-slider-main-image { position: relative; background-size: cover; background-position: 50% 0; background-repeat: no-repeat; }
.rsmg_rsp_slider_container .rstpl-caption.vertical-middle { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.rsmg_rsp_slider_container .rstpl-caption h2 { color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,.35); }
.asp-anim-in { animation: aspFadeUp 1.1s ease both; }
@keyframes aspFadeUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }

/* ---------- Menu : sous-menus ouverts par JS (classe mm-show) ---------- */
#rstpl-main-menu-position .navbar .navbar-collapse { opacity: 1; margin-top: 0; }
#rstpl-main-menu-position .navbar .navbar-collapse .mod-menu .nav-item .mod-menu__sub.mm-collapse.mm-show { display: flex; opacity: 1; }
@media (min-width: 1200px) {
    #rstpl-main-menu-position .navbar .navbar-collapse .mod-menu > .nav-item > .mod-menu__sub { position: absolute; top: 100%; left: 0; min-width: 260px; width: auto; }
    #rstpl-main-menu-position .navbar .navbar-collapse .mod-menu > .nav-item.parent.mm-active > a:before { opacity: 1; }
    #rstpl-main-menu-position .navbar .navbar-collapse .mod-menu > .nav-item > a:hover:after,
    #rstpl-main-menu-position .navbar .navbar-collapse .mod-menu > .nav-item.active > a:after { width: 30px; }
}
@media (max-width: 1199.98px) {
    #rstpl-main-menu-position .navbar .navbar-collapse { padding: 1rem 0; }
    #rstpl-main-menu-position .navbar .navbar-collapse .navbar-nav-scroll { display: flex; flex-direction: column; }
    #rstpl-main-menu-position .navbar .navbar-collapse .rstpl-navbar-login { margin-left: 0 !important; padding: 0 1rem; }
    #rstpl-main-menu-position .navbar .navbar-collapse .rstpl-navbar-login .rstpl-open-login { align-self: flex-start; }
    .rstpl-top-position .col-md-4 { position: relative; }
    .contener-mybtn { position: static !important; margin: 10px 0 0 !important; text-align: center; }
    .contener-mybtn .mybtn-menu { width: 46% !important; font-size: 11pt; }
    .rstpl-social { position: static !important; display: flex; justify-content: center; margin-top: 10px; }
    .logo-agenda { position: static !important; display: block; margin: 8px auto 0; width: 80px !important; height: 80px !important; }
    .top-a p { text-align: center; }
    .rspbld-list.text-right { text-align: center !important; }
    #rstpl-pagewrap .rspbld-list.text-right ul > li { justify-content: center !important; }
}
#rstpl-main-menu-position .navbar .navbar-collapse .navbar-nav-scroll { display: flex; align-items: center; width: 100%; }
#rstpl-main-menu-position .navbar .navbar-collapse .navbar-nav-scroll .main-menu { flex: 1 1 auto; }
#rstpl-main-menu-position .navbar .navbar-collapse .navbar-nav-scroll .mod-menu { flex-direction: row; flex-wrap: wrap; }
@media (max-width: 1199.98px) { #rstpl-main-menu-position .navbar .navbar-collapse .navbar-nav-scroll .mod-menu { flex-direction: column; align-items: stretch; } #rstpl-main-menu-position .navbar .navbar-collapse .mod-menu > .nav-item { flex: 0 1 100%; } }

/* ---------- Boîte de connexion ---------- */
.rstpl-box-login .mod-login { color: #fff; }
.rstpl-box-login .mod-login a { color: #fff; text-decoration: underline; font-weight: 400; }
.rstpl-box-login .mod-login .form-group { margin-bottom: 1rem !important; }
.rstpl-box-login .mod-login .form-control { background: #fff; }
.rstpl-box-login .mod-login__options { margin: .75rem 0 0; }
.rstpl-box-login .mod-login__options li { padding-top: .25rem; }
.rstpl-box-login .input-password-toggle { background: #fff; border-color: #008eaa; color: #008eaa; }
.rstpl-box-login .asp-logged a { text-decoration: none; font-weight: 700; }
#rstpl-main-menu-position .navbar .navbar-collapse .navbar-nav-scroll .rstpl-navbar-login .rstpl-box-login { z-index: 1050; box-shadow: 0 10px 30px rgba(0,0,0,.25); text-align: left; max-width: calc(100vw - 30px); }

/* ---------- Grands boutons orange du haut (fidèles à l'original) ---------- */
.contener-mybtn .mybtn-menu + .mybtn-menu { margin-left: 4px; }
.contener-mybtn .btn-lg { padding: .75rem 1rem; font-weight: 700; border-radius: 0; line-height: 1.2; }

/* ---------- Cartes de la colonne droite ---------- */
#column-right .card { border-radius: 0; }
#column-right .card-header { font-weight: 700; }
#column-right .card-body a { font-weight: 600; }
#column-right .mod-finder .form-control { width: 100%; }

/* ---------- Accordéon (remplace ruxin accordion FAQ, thème 9, couleurs du site) ---------- */
#ruxin_accordion_theme9 .accordion-link, #ruxin_accordion_theme9 .accordion-link:hover, #ruxin_accordion_theme9 .accordion-link:focus { text-decoration: none; outline: none; }
#ruxin_accordion_theme9 a.accordion-link { cursor: pointer; }
#ruxin_accordion_theme9 h4 { margin: 0; }
#ruxin_accordion_theme9 .panel { border: none; box-shadow: none; border-radius: 0; margin-bottom: 5px; }
#ruxin_accordion_theme9 .panel.on { margin-bottom: 0; }
#ruxin_accordion_theme9 .panel-heading { padding: 0; border: none; }
#ruxin_accordion_theme9 .panel-title a { display: block; padding: 14px 30px 14px 70px; font-size: 17px; font-weight: bold; color: #fff; background: #e35205; position: relative; overflow: hidden; transition: all .5s ease 0s; }
#ruxin_accordion_theme9 .panel-title a.collapsed { background: #f8f8f8; color: #008eaa; }
#ruxin_accordion_theme9 .panel-title a.collapsed:hover { color: #e35205; }
#ruxin_accordion_theme9 .panel-title a:before { content: ""; width: 55px; height: 100%; background-color: rgba(0,0,0,.1); position: absolute; top: 0; left: -13px; transform: skewX(-25deg); transition: all .5s ease 0s; }
#ruxin_accordion_theme9 .panel-title a.collapsed:hover:before { background: #d7573e; }
#ruxin_accordion_theme9 .panel-title a:after { content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 18px; top: 50%; transform: translateY(-50%) rotate(180deg); font-size: 14px; color: #fff; transition: transform .4s; }
#ruxin_accordion_theme9 .panel-title a.collapsed:after { color: #9f9f9f; transform: translateY(-50%) rotate(0deg); }
#ruxin_accordion_theme9 .panel-title a.collapsed:hover:after { color: #e35205; }
#ruxin_accordion_theme9 .accordionContent { margin-top: -5px; margin-bottom: 5px; overflow: hidden; transition: max-height .5s ease; }
#ruxin_accordion_theme9 .panel-body { font-size: 15px; color: #555; line-height: 25px; padding: 20px 15px 20px 40px; position: relative; border: none; }
#ruxin_accordion_theme9 .panel-body:before { content: ""; width: 5px; height: 40px; background: #e35205; position: absolute; top: calc(50% - 20px); left: 0; }
#ruxin_accordion_theme9 .panel-body a { color: #008eaa; text-decoration: underline; }
#ruxin_accordion_theme9 .panel-body img { max-width: 100%; height: auto; }

/* ---------- Frises chronologiques : couleurs du site et apparition ---------- */
.timeline .post .timeline-content.bg-primary, .timeline .post .timeline-content.border-primary { border-color: #008eaa; }
.bg-primary { background: #008eaa !important; }
.timeline .post .timeline-content.bg-primary:before, .timeline .post .timeline-content.border-primary:before { border-left-color: #008eaa; }
.timeline .post:nth-child(even) .timeline-content.bg-primary:before { border-right-color: #008eaa; border-left-color: transparent; }
.bg-warning { background: #e35205 !important; }
.timeline .post .timeline-content.bg-warning, .timeline .post .timeline-content.border-warning { border-color: #e35205; }
.timeline .post .timeline-content.bg-warning:before { border-left-color: #e35205; }
.timeline .post:nth-child(even) .timeline-content.bg-warning:before { border-right-color: #e35205; border-left-color: transparent; }
.timeline .post .timeline-content { transition: transform .2s; }
.timeline .post .timeline-content:hover { transform: translateY(-2px); }
.timeline .post .mos-img p { margin: 0; color: #fff; }
.timeline h4.entry-title { font-size: 22px; font-weight: 700; }
.asp-timeline-link { display: none; }
.asp-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.asp-reveal.asp-visible { opacity: 1; transform: none; }

/* ---------- Carte « Trouver une ASP » (reprise du module store locator) ---------- */
#ruxin_store_locator { padding: 10px; border: 1px solid #eaeaea; margin: 0 auto; display: table; width: 100%; }
#ruxin_store_locator *, #ruxin_store_locator::after, #ruxin_store_locator::before { box-sizing: border-box; }
.ruxin_store_locator_row { display: flex; flex-wrap: wrap; margin-right: -5px; margin-left: -5px; }
.ruxin_store_locator_col_1 { position: relative; width: 300px; padding: 0 5px; margin: 0; min-height: 1px; overflow-x: auto; height: 500px; overflow-y: auto; }
.ruxin_store_locator_col_2 { width: calc(100% - 300px); margin: 0; position: relative; min-height: 1px; padding: 0 5px; }
#ruxin_store_locator_map { height: 500px; background: #e9eef2; }
.ruxin_store_locator_locations_title { font-size: 16px; text-align: center; padding: 10px; margin: 0 0 5px 0; background: #008eaa; color: #fff; }
.ruxin_store_locator_locations { background: #f7f7f7; color: #313131; padding: 10px; border: 1px solid #e8e8e8; }
.ruxin_store_locator_location { padding: 10px 15px; transition: .2s; cursor: pointer; border: 1px solid transparent; }
.ruxin_store_locator_location:hover { background: #fff; }
.ruxin_store_locator_location.active_location { background: #fff; border: 1px solid #e35205; }
.ruxin_store_locator_location_image { display: inline-block; width: 16px; height: auto; vertical-align: middle; margin: 0 5px 0 0; border: 0; }
.ruxin_store_locator_location_title { font-size: 16px; font-weight: bold; color: #313131; margin: 0 0 5px 0; }
.ruxin_store_locator_location_address, .ruxin_store_locator_location_phone, .ruxin_store_locator_location_website, .ruxin_store_locator_location_email, .ruxin_store_locator_location_time { margin: 5px 0; font-size: 12px; color: #5f5f5f; word-break: break-word; }
.ruxin_store_locator_location a { font-weight: 400; }
#ruxin_store_locator .leaflet-popup-content p { margin: 8px 0; }
.ruxin_store_locator_location_description { font-size: 13px; color: #696969; }
.ruxin_store_locator_col_1.col_responsive, .ruxin_store_locator_col_2.col_responsive { width: 100% !important; }
.ruxin_store_locator_col_1.col_responsive { height: 250px; margin-bottom: 10px; }
.ruxin_store_locator_col_2.col_responsive #ruxin_store_locator_map { height: 300px; }

/* ---------- Gazettes / documents PDF (remplace DearFlip) ---------- */
.asp-books { display: flex; flex-wrap: wrap; gap: 28px 22px; justify-content: center; padding: 10px 0 30px; }
.asp-book { display: flex; flex-direction: column; align-items: center; width: 180px; text-decoration: none; color: #444; font-weight: 400; }
.asp-book img, .asp-book-cover { width: 160px; height: 226px; object-fit: cover; border-radius: 3px; box-shadow: 4px 6px 16px rgba(0,0,0,.28); transition: transform .25s, box-shadow .25s; background: #fff; }
.asp-book-cover { display: flex; flex-direction: column; align-items: center; justify-content: center; background: #008eaa; color: #fff; font-weight: 900; font-size: 22px; text-align: center; }
.asp-book-cover i { font-size: 46px; margin-bottom: 8px; }
.asp-book:hover img, .asp-book:hover .asp-book-cover { transform: translateY(-6px) rotate(-1deg); box-shadow: 6px 12px 24px rgba(0,0,0,.35); }
.asp-book-title { margin-top: 10px; font-size: 14px; text-align: center; color: #008eaa; font-weight: 700; line-height: 1.3; }
#column-right .asp-books { padding: 0; gap: 10px; }
#column-right .asp-book { width: 100%; }
#column-right .asp-book img { width: 140px; height: 198px; }
.asp-pdf-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.75); z-index: 20000; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s; padding: 20px; }
.asp-pdf-overlay.asp-pdf-in { opacity: 1; }
.asp-pdf-modal { background: #0191B3; width: min(1100px, 100%); height: min(92vh, 900px); border-radius: 8px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.5); transform: scale(.96); transition: transform .25s; }
.asp-pdf-in .asp-pdf-modal { transform: scale(1); }
.asp-pdf-head { display: flex; align-items: center; gap: 12px; padding: 10px 16px; color: #fff; }
.asp-pdf-title { font-weight: 700; flex: 1 1 auto; font-size: 17px; }
.asp-pdf-close { background: none; border: none; color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }
.asp-pdf-frame { flex: 1 1 auto; width: 100%; border: 0; background: #fff; }
body.asp-noscroll { overflow: hidden; }

/* ---------- Partenaires & trombinoscope ---------- */
.asp-partenaires .rspbld-testimonial-box, .asp-trombi .rspbld-testimonial-box { background: #fff; border: 1px solid #eee; border-radius: 6px; box-shadow: 0 3px 12px rgba(0,0,0,.08); transition: transform .2s, box-shadow .2s; }
.asp-partenaires .rspbld-testimonial-box:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,.14); }
.asp-partenaires .rspbld-testimonial-box { width: 200px !important; }
.asp-partenaires .rspbld-details, .asp-trombi .rspbld-details { padding: 8px 10px 0; text-align: center; color: #008eaa; font-size: 20px; line-height: 1.2; min-height: 36px; }
.asp-partenaires .rspbld-avatar { padding: 8px; }
.asp-partenaires .rspbld-avatar img { object-fit: contain; }
.asp-logo-placeholder { display: flex; align-items: center; justify-content: center; font-size: 48px; color: #ccd; background: #f5f7f9; }
.asp-trombi .rspbld-testimonial-box.bg-gray { background: #f5f5f5; overflow: hidden; }
.asp-trombi .rspbld-avatar img { height: 128px; object-fit: cover; }
.asp-trombi .rspbld-details { font-size: 19px; min-height: 30px; padding-top: 4px; }
#rstpl-pagewrap .asp-partenaires .rspbld-testimonial-box .rspbld-inner .rspbld-content-container,
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-inner .rspbld-content-container { position: static; transform: none; padding: 0; opacity: 1; }
#rstpl-pagewrap .asp-partenaires .rspbld-testimonial-box .rspbld-inner, #rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-inner { display: block; }

/* ---------- Citation (droits des malades, accompagnement) : affichage statique ---------- */
#rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-inner { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 20px; }
#rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-inner .rspbld-avatar { flex: 0 0 auto; max-width: 350px; opacity: 1; }
#rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-inner .rspbld-avatar img { max-width: 100%; height: auto; }
#rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-inner .rspbld-content-container { position: static; transform: none; flex: 1 1 300px; padding: 1rem; color: #616060; }
#rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-inner .rspbld-content-container .rspbld-content { opacity: 1; font-size: 20px; font-weight: 300; line-height: 1.4; }
#rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-content .fa-quote-left, #rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-content .fa-quote-right { color: #e35205; font-size: 1.1em; }
#rstpl-pagewrap .rspbld-testimonial-box.bg-clear .rspbld-details { margin-top: .5rem; color: #008eaa; }

/* ---------- Articles agenda / conférences ---------- */
.com-content-category-blog .blog-item { margin-bottom: 20px; }
.com-content-category-blog .blog-item img { max-width: 100%; object-fit: cover; }
.com-content-category-blog .page-header h1 { font-size: 44px; }
@media (max-width: 767px) {
    .com-content-category-blog .blog-item div[style*="height: 240px"], .blocs-formation { height: auto !important; }
    .com-content-category-blog .blog-item img { float: none !important; width: 100% !important; height: auto !important; margin: 0 0 10px !important; }
}

/* ---------- Formulaires ---------- */
.asp-form .formControlLabel { font-weight: 600; color: #555; }
.asp-form .formError { color: #c84955; font-weight: 700; font-size: 14px; display: block; margin-top: 4px; }
.asp-form .is-invalid { border-color: #c84955 !important; }
.asp-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; opacity: 0; height: 0; overflow: hidden; }
#rstpl-pagewrap .asp-form .form-check-input { margin-top: .4em; }
#rstpl-pagewrap .asp-form textarea.form-control { line-height: 1.5; min-height: 140px; }
.rsform_payment_total { font-weight: 900; color: #e35205; font-size: 18px; }
.asp-form .well, .asp-form.well { background: #fafbfc; border: 1px solid #e6edf1; border-radius: 6px; padding: 24px; }
.com-users-login legend, .com-users-reset legend, .com-users-remind legend { font-size: 17px; color: #555; margin-bottom: 1.5rem; }
.com-users-login__options li, .mod-login__options li { padding-top: .2rem; }

/* ---------- Paiement ---------- */
.asp-paiement-card { background: #fafbfc; border: 1px solid #e6edf1; border-left: 6px solid #e35205; border-radius: 6px; padding: 28px 32px; }
.asp-paiement-ref { color: #777; font-size: 14px; margin-bottom: 4px; }
.asp-paiement-ok { background: #e3f6e9; color: #277953; border-radius: 6px; padding: 14px 18px; font-weight: 700; margin: 14px 0; }
.asp-paiement-info { background: #fff5ee; color: #e35205; border-radius: 6px; padding: 14px 18px; font-weight: 600; margin: 14px 0; }

/* ---------- Alertes système : petites modales centrées, auto-fermantes ---------- */
#asp-alerts { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; pointer-events: none; z-index: 30000; padding: 20px; }
.asp-alert { pointer-events: auto; position: relative; display: flex; align-items: flex-start; gap: 14px; width: min(440px, 100%); background: #fff; border-radius: 12px; box-shadow: 0 18px 50px rgba(0,0,0,.28); padding: 18px 44px 20px 18px; opacity: 0; transform: translateY(16px) scale(.96); transition: opacity .3s ease, transform .3s ease; overflow: hidden; border-top: 5px solid #008eaa; font-family: Lato, sans-serif; }
.asp-alert.asp-alert-in { opacity: 1; transform: none; }
.asp-alert.asp-alert-out { opacity: 0; transform: translateY(-10px) scale(.96); }
.asp-alert-icon { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; background: #008eaa; }
.asp-alert-title { font-weight: 900; color: #333; font-size: 16px; line-height: 1.2; margin-bottom: 4px; }
.asp-alert-text { color: #555; font-size: 15px; line-height: 1.45; }
.asp-alert-close { position: absolute; top: 8px; right: 10px; border: none; background: none; font-size: 26px; line-height: 1; color: #999; cursor: pointer; }
.asp-alert-close:hover { color: #333; }
.asp-alert-bar { position: absolute; left: 0; bottom: 0; height: 4px; width: 100%; background: #008eaa; transform-origin: left; animation: aspBar linear forwards; }
@keyframes aspBar { from { transform: scaleX(1); } to { transform: scaleX(0); } }
.asp-alert-success { border-top-color: #277953; } .asp-alert-success .asp-alert-icon, .asp-alert-success .asp-alert-bar { background: #277953; }
.asp-alert-warning { border-top-color: #e35205; } .asp-alert-warning .asp-alert-icon, .asp-alert-warning .asp-alert-bar { background: #e35205; }
.asp-alert-error { border-top-color: #c84955; } .asp-alert-error .asp-alert-icon, .asp-alert-error .asp-alert-bar { background: #c84955; }
.asp-confirm-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 29000; display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; transition: opacity .25s; }
.asp-confirm-overlay.asp-confirm-in { opacity: 1; }
.asp-confirm { background: #fff; border-radius: 12px; padding: 28px 30px; width: min(420px, 100%); text-align: center; box-shadow: 0 18px 50px rgba(0,0,0,.3); border-top: 5px solid #e35205; }
.asp-confirm-icon { font-size: 40px; color: #e35205; margin-bottom: 10px; }
.asp-confirm-text { font-size: 17px; color: #333; margin-bottom: 20px; }
.asp-confirm-actions { display: flex; gap: 10px; justify-content: center; }

/* ---------- Bandeau cookies ---------- */
#asp-cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 25000; background: #ffffff; color: #333333; border-top: 3px solid #008eaa; box-shadow: 0 -2px 12px rgba(0,0,0,.15); padding: 16px 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; font-size: 14px; line-height: 1.5; }
#asp-cookie-banner .asp-cookie-text { flex: 1 1 320px; max-width: 720px; }
#asp-cookie-banner .asp-cookie-text a { color: #008eaa; text-decoration: underline; }
#asp-cookie-banner .asp-cookie-actions { display: flex; gap: 10px; flex-shrink: 0; }
.asp-cookie-btn { border: none; border-radius: 4px; padding: 10px 22px; font-size: 14px; cursor: pointer; }
.asp-cookie-btn.asp-cookie-accept { background: #008eaa; color: #fff; }
.asp-cookie-btn.asp-cookie-accept:hover { background: #006c82; }
.asp-cookie-btn.asp-cookie-refuse { background: #f0f0f0; color: #333; }
.asp-cookie-btn.asp-cookie-refuse:hover { background: #e2e2e2; }
#asp-cookie-reopen { position: fixed; left: 16px; bottom: 16px; z-index: 24000; width: 44px; height: 44px; border-radius: 50%; border: none; background: #e35205; color: #fff; font-size: 20px; line-height: 44px; text-align: center; padding: 0; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
#asp-cookie-reopen:hover { background: #c8460a; }
@media (max-width: 640px) { #asp-cookie-banner { flex-direction: column; align-items: stretch; } #asp-cookie-banner .asp-cookie-actions { justify-content: flex-end; } }

/* ---------- Pages d'erreur ---------- */
.rstpl-error-page { min-height: 100vh; background: #fff url('../../images/headers/slide-accueil.png') center top / cover no-repeat; }
.rstpl-error-page:before { content: ""; position: fixed; inset: 0; background: rgba(255,255,255,.88); z-index: 0; }
.asp-error-wrap { position: relative; z-index: 1; padding: 30px 15px 60px; text-align: center; max-width: 760px; }
.asp-error-logo img { max-width: 180px; height: auto; }
.rstpl-error-page .rstpl-error .rstpl-error-code { padding: 2.2rem 2rem; line-height: 1.1; }
.rstpl-error-page .rstpl-error .rstpl-error-code i { font-size: 40px; display: block; margin-bottom: 8px; color: #fff; }
.rstpl-error-page h1.page-header { font-size: 38px; font-weight: 300; margin-bottom: 1.5rem; }
.asp-error-message { font-size: 20px; font-weight: 300; line-height: 1.5; color: #555; max-width: 640px; margin: 0 auto 1.5rem; }
.asp-error-actions .btn { margin: 6px; }
.asp-error-quote { color: #e35205; font-style: italic; margin-top: 2rem; }

/* ---------- Fenêtre contextuelle (détail de frise) ---------- */
body.asp-popup { background: #f1f5f8; }
.asp-popup-card { background: #fff; border-radius: 10px; padding: 30px 34px; border-top: 6px solid #e35205; box-shadow: 0 8px 30px rgba(0,0,0,.1); max-width: 760px; margin: 0 auto; }
.asp-popup-cat { text-transform: uppercase; font-size: 13px; letter-spacing: 1px; color: #e35205; font-weight: 700; margin-bottom: 6px; }
.asp-popup-body { font-size: 18px; line-height: 1.6; }

/* ---------- Divers ---------- */
.asp-search-results li a.h5 { color: #008eaa; font-weight: 700; }
.asp-table th, .asp-table td { font-size: 14px; }
.asp-pdf-embed iframe { max-width: 100%; }
img { max-width: 100%; }
.rstpl-footer-position hr { border-color: rgba(255,255,255,.5); }
.rstpl-footer-position a:hover { color: #fff !important; text-decoration: underline !important; }
.mod-footer .footer1 { margin-top: 10px; font-size: 14px; }

/* ---------- Corrections de mise en page (menu horizontal, boutons du haut) ---------- */
#rstpl-main-menu-position .navbar .rstpl-main-menu-col .navbar-collapse { flex: 1 1 auto; }
#rstpl-main-menu-position .navbar .navbar-collapse .mod-menu.navbar-nav { display: flex !important; }
@media (min-width: 1200px) {
    #rstpl-main-menu-position .navbar .navbar-collapse .mod-menu.navbar-nav { flex-direction: row !important; flex-wrap: wrap; align-items: center; }
}
#rstpl-pagewrap .contener-mybtn { display: flex; flex-wrap: nowrap; gap: 4px; white-space: nowrap; }
#rstpl-pagewrap .contener-mybtn .mybtn-menu { width: 160px !important; min-width: 160px; background-color: #E35205 !important; color: #fff !important; border: 1px solid #fff !important; border-radius: 0; font-weight: 700; text-align: center; }
#rstpl-pagewrap .contener-mybtn .mybtn-menu:hover, #rstpl-pagewrap .contener-mybtn .mybtn-menu:focus { color: #FDC00F !important; }
@media (min-width: 1200px) {
    #rstpl-main-menu-position .navbar .navbar-toggler { display: none !important; }
    #rstpl-main-menu-position .navbar .navbar-collapse { display: flex !important; }
}
.upvideo-box video { max-height: 520px; background: #000; object-fit: contain; }
@media (max-width: 640px) {
    #asp-cookie-banner { font-size: 13px; padding: 12px 14px; gap: 10px; }
    #asp-cookie-banner .asp-cookie-actions { justify-content: center; }
    .asp-cookie-btn { padding: 8px 18px; }
}

/* ---------- Trombinoscope : photo pleine, prénom au survol (comme sur le site d'origine) ---------- */
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box.bg-gray { position: relative; overflow: hidden; background: #e9ecef; border: none; border-radius: 4px; box-shadow: 0 3px 10px rgba(0,0,0,.12); }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-inner,
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-inner .rspbld-content-container { position: static; transform: none; opacity: 1; padding: 0; margin: 0; height: 100%; display: block; }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-avatar { position: absolute; inset: 0; opacity: 1; margin: 0; }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-content-container .rspbld-details { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 6px 4px; background: rgba(0,142,170,.9); color: #fff; text-align: center; opacity: 0; transform: translateY(100%); transition: all .3s ease; z-index: 2; min-height: 0; }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-content-container .rspbld-details strong { font-size: 14px; }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box .rspbld-content-container .rspbld-details span { font-size: 100% !important; }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box:hover .rspbld-content-container .rspbld-details { opacity: 1; transform: none; }
#rstpl-pagewrap .asp-trombi .rspbld-testimonial-box:hover .rspbld-avatar img { transform: scale(1.05); }

/* ---------- Bouton « haut de page » ---------- */
.asp-totop { position: fixed; right: 18px; bottom: 18px; width: 46px; height: 46px; border-radius: 50%; border: none; background: #008eaa; color: #fff; font-size: 18px; box-shadow: 0 4px 14px rgba(0,0,0,.25); cursor: pointer; z-index: 23000; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .25s, transform .25s, visibility .25s, background .2s; }
.asp-totop.asp-totop-visible { opacity: 1; visibility: visible; transform: none; }
.asp-totop:hover { background: #e35205; }
@media (max-width: 640px) { .asp-totop { right: 12px; bottom: 74px; width: 42px; height: 42px; } }

/* ---------- Recherche dynamique (résultats au fil de la saisie) ---------- */
.asp-live-search { position: relative; }
.asp-live-results { position: absolute; left: 0; right: 0; top: 100%; z-index: 1200; background: #fff; border: 1px solid #008eaa; border-top: none; box-shadow: 0 10px 30px rgba(0,0,0,.18); max-height: 420px; overflow-y: auto; }
.asp-live-results a { display: block; padding: 10px 14px; border-bottom: 1px solid #eef2f5; color: #333; font-weight: 400; text-decoration: none; line-height: 1.35; }
.asp-live-results a:hover, .asp-live-results a.active { background: #e6f5f8; }
.asp-live-results a strong { display: block; color: #008eaa; font-size: 15px; }
.asp-live-results a small { color: #777; font-size: 12.5px; }
.asp-live-results .asp-live-foot { padding: 8px 14px; font-size: 12.5px; color: #777; background: #f7fbfc; }
.asp-live-results .asp-live-foot a { display: inline; padding: 0; border: 0; color: #e35205; font-weight: 700; }
#asp-search-live .asp-search-results { margin-top: 10px; }
#asp-search-live .asp-live-status { color: #777; font-size: 14px; margin-bottom: 8px; }

/* ---------- Responsive : tableaux, iframes, images, formulaires ---------- */
iframe, video, embed { max-width: 100%; }
.table-responsive { -webkit-overflow-scrolling: touch; }
@media (max-width: 767px) {
    .asp-table-cards thead { display: none; }
    .asp-table-cards, .asp-table-cards tbody, .asp-table-cards tr, .asp-table-cards td { display: block; width: 100%; }
    .asp-table-cards tr { background: #fff; border: 1px solid #e3e9ee; border-radius: 10px; margin: 10px 0; padding: 6px 0; }
    .asp-table-cards td { display: flex; gap: 10px; padding: 6px 12px !important; border: 0 !important; }
    .asp-table-cards td::before { content: attr(data-label); flex: 0 0 36%; font-weight: 700; color: #008eaa; font-size: 12px; text-transform: uppercase; }
    .rsform-block .col-sm-3.formControlLabel { padding-bottom: 2px; }
    .asp-paiement-card { padding: 18px 16px; }
    .asp-form .well, .asp-form.well { padding: 16px; }
    .rstpl-all-content-position .col-md-3 { margin-top: 30px; }
    .com-content-category-blog .page-header h1, h1 { font-size: 34px; }
    h2 { font-size: 30px; }
    .rspbld-horizontal-image-box .rspbld-image img { width: 100% !important; max-width: 300px; }
    .asp-pdf-embed iframe { height: 60vh; }
}

/* ---------- Agenda / conférences : affiche cliquable et agrandie dans une modale ---------- */
[data-asp-evenement] img.asp-affiche-zoom { cursor: zoom-in; transition: filter .2s, transform .2s; }
[data-asp-evenement] img.asp-affiche-zoom:hover, [data-asp-evenement] img.asp-affiche-zoom:focus-visible { filter: brightness(1.06); transform: scale(1.01); outline: 2px solid #0191B3; outline-offset: 2px; }
.asp-evenement.asp-affiche-droite h4, .asp-evenement.asp-affiche-droite p, .asp-evenement.asp-affiche-droite div { text-align: left; }
.asp-affiche-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.82); z-index: 20000; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s; padding: 20px; }
.asp-affiche-overlay.asp-affiche-in { opacity: 1; }
.asp-affiche-modal { position: relative; max-width: min(1000px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; transform: scale(.96); transition: transform .25s; }
.asp-affiche-in .asp-affiche-modal { transform: scale(1); }
.asp-affiche-grande { max-width: 100%; height: calc(100vh - 120px); max-height: 1400px; width: auto; object-fit: contain; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,.6); background: #fff; cursor: zoom-out; }
.asp-affiche-legende { color: #fff; margin-top: 12px; display: flex; gap: 18px; align-items: center; flex-wrap: wrap; justify-content: center; font-size: 15px; }
.asp-affiche-titre { font-weight: 700; }
.asp-affiche-dl { color: #fff !important; text-decoration: underline; opacity: .85; }
.asp-affiche-dl:hover { opacity: 1; }
.asp-affiche-close { position: absolute; top: -14px; right: -14px; width: 40px; height: 40px; border-radius: 50%; border: none; background: #e35205; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.4); z-index: 1; }
.asp-affiche-close:hover { background: #c84955; }
@media (max-width: 767px) {
    .asp-affiche-overlay { padding: 10px; }
    .asp-affiche-close { top: 4px; right: 4px; }
    .asp-affiche-grande { max-height: calc(100vh - 90px); }
}

/* ---------- Question anti-robots : phrase sur une ligne, champ court ---------- */
.asp-captcha { align-items: center; }
.asp-captcha .asp-captcha-label { white-space: nowrap; flex: 0 0 auto; }
.asp-captcha .asp-captcha-field { flex: 0 0 auto; }
.asp-captcha .asp-captcha-input { width: 6.5em; text-align: center; font-weight: 700; }
.asp-captcha .formError { display: block; white-space: nowrap; }

/* ---------- Reçu (don / cotisation) imprimable ---------- */
.asp-recu { max-width: 820px; margin: 0 auto; }
.asp-recu-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.asp-recu-feuille { background: #fff; border: 1px solid #d9e2e8; border-top: 8px solid #008eaa; padding: 36px 40px; box-shadow: 0 6px 24px rgba(0,0,0,.08); color: #333; font-size: 15px; }
.asp-recu-entete { display: flex; gap: 22px; align-items: center; border-bottom: 2px solid #e35205; padding-bottom: 18px; margin-bottom: 22px; }
.asp-recu-logo { width: 110px; height: auto; }
.asp-recu-cerfa { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: #e35205; font-weight: 700; }
.asp-recu-feuille h1 { font-size: 22px; margin: 4px 0; color: #008eaa; font-weight: 900; }
.asp-recu-num { font-size: 14px; color: #555; }
.asp-recu-feuille h2 { font-size: 13px; text-transform: uppercase; letter-spacing: .6px; color: #e35205; margin: 20px 0 8px; font-weight: 900; }
.asp-recu-table { width: 100%; border-collapse: collapse; }
.asp-recu-table th { text-align: left; width: 32%; padding: 6px 8px; color: #008eaa; font-weight: 700; vertical-align: top; border-bottom: 1px solid #e6edf1; }
.asp-recu-table td { padding: 6px 8px; vertical-align: top; border-bottom: 1px solid #e6edf1; }
.asp-recu-montant { font-size: 28px; font-weight: 900; color: #008eaa; margin: 6px 0 12px; }
.asp-recu-montant small { display: block; font-size: 15px; font-weight: 400; color: #333; font-style: italic; }
.asp-recu-legal { font-size: 13px; color: #555; margin-top: 12px; }
.asp-recu-signature { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: start; }
.asp-recu-signataire { text-align: right; min-height: 70px; }
.asp-recu-mention { grid-column: 1 / -1; font-size: 12px; color: #777; border-top: 1px dashed #ccd; padding-top: 8px; }
@media (max-width: 600px) { .asp-recu-feuille { padding: 22px 16px; } .asp-recu-entete { flex-direction: column; align-items: flex-start; } .asp-recu-signature { grid-template-columns: 1fr; } .asp-recu-signataire { text-align: left; } }
@media print {
    .asp-noprint, .asp-to-top { display: none !important; }
    body, #rstpl-pagewrap { background: #fff !important; }
    .asp-recu-feuille { box-shadow: none; border-color: #999; }
    .asp-popup .container { max-width: 100%; padding: 0; }
}

/* ---------- Champs de recherche : croix de réinitialisation ---------- */
.asp-search-wrap { position: relative; display: inline-flex; align-items: stretch; flex: 1 1 auto; min-width: 0; }
.asp-search-wrap > input[type="search"] { flex: 1 1 auto; width: 100%; padding-right: 36px !important; }
.asp-search-wrap > input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.asp-search-reset { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border: none; border-radius: 50%; background: #e6edf1; color: #555; font-size: 14px; line-height: 1; cursor: pointer; display: none; align-items: center; justify-content: center; padding: 0; z-index: 2; }
.asp-search-reset:hover, .asp-search-reset:focus-visible { background: #e35205; color: #fff; outline: none; }
.asp-search-wrap.asp-search-has-value .asp-search-reset { display: inline-flex; }
.input-group > .asp-search-wrap { flex: 1 1 auto; }
.input-group > .asp-search-wrap > input { border-top-right-radius: 0; border-bottom-right-radius: 0; }

/* ---------- Livre feuilletable (gazettes, PDF) ---------- */
.asp-flip-overlay { position: fixed; inset: 0; background: rgba(8, 24, 32, .9); z-index: 20000; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s; padding: 12px; }
.asp-flip-overlay.asp-flip-in { opacity: 1; }
.asp-flip-modal { width: min(1400px, 100%); height: min(96vh, 1000px); display: flex; flex-direction: column; background: #10303a; border-radius: 10px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.6); transform: scale(.97); transition: transform .25s; }
.asp-flip-in .asp-flip-modal { transform: scale(1); }
.asp-flip-modal:fullscreen { width: 100%; height: 100%; border-radius: 0; }
.asp-flip-head { display: flex; align-items: center; gap: 14px; padding: 8px 14px; background: #0191B3; color: #fff; flex-wrap: wrap; }
.asp-flip-title { font-weight: 900; font-size: 16px; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asp-flip-pages { font-size: 14px; opacity: .95; white-space: nowrap; }
.asp-flip-tools { display: flex; gap: 4px; align-items: center; }
.asp-flip-btn { width: 36px; height: 36px; border: none; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 15px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; text-decoration: none; transition: background .15s; }
.asp-flip-btn:hover, .asp-flip-btn:focus-visible { background: #e35205; color: #fff; outline: none; }
.asp-flip-btn:disabled { opacity: .35; cursor: default; background: rgba(255,255,255,.1); }
.asp-flip-stage { position: relative; flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at center, #1d4a57 0%, #10303a 75%); overflow: hidden; }
.asp-flip-book { position: relative; margin: 0 auto; visibility: hidden; }
.asp-flip-ready .asp-flip-book { visibility: visible; }
.asp-flip-page { background: #fff; overflow: hidden; box-shadow: inset 0 0 20px rgba(0,0,0,.08); }
.asp-flip-page.asp-flip-cover { background: #f4f1ea; }
.asp-flip-page-inner { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.asp-flip-page-inner img { width: 100%; height: 100%; object-fit: fill; display: block; user-select: none; -webkit-user-drag: none; }
.asp-flip-page-wait { color: #9aa; font-size: 14px; font-style: italic; }
.asp-flip-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; border: none; background: rgba(255,255,255,.12); color: #fff; font-size: 20px; cursor: pointer; z-index: 5; display: flex; align-items: center; justify-content: center; }
.asp-flip-arrow:hover { background: #e35205; }
.asp-flip-arrow:disabled { opacity: .25; cursor: default; }
.asp-flip-arrow-prev { left: 12px; } .asp-flip-arrow-next { right: 12px; }
.asp-flip-loading { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: #fff; font-size: 16px; z-index: 6; background: rgba(16,48,58,.6); }
.asp-flip-loading .fa { font-size: 42px; color: #ffb27a; }
.asp-flip-loading[hidden] { display: none; }
.asp-flip-progress { width: min(320px, 70%); height: 6px; background: rgba(255,255,255,.2); border-radius: 3px; overflow: hidden; }
.asp-flip-progress > div { height: 100%; width: 0; background: #e35205; transition: width .3s; }
.asp-flip-hint { padding: 6px 14px; color: #bcd; font-size: 12px; text-align: center; background: #0c2730; }
@media (max-width: 767px) {
    .asp-flip-overlay { padding: 0; }
    .asp-flip-modal { height: 100%; border-radius: 0; }
    .asp-flip-head { gap: 8px; padding: 6px 8px; }
    .asp-flip-title { font-size: 14px; flex-basis: 100%; }
    .asp-flip-btn { width: 32px; height: 32px; font-size: 13px; }
    .asp-flip-arrow { display: none; }
    .asp-flip-hint { display: none; }
}

/* ---------- Livre feuilletable : loupe de lecture ---------- */
.asp-flip-loupe { position: absolute; display: none; pointer-events: none; z-index: 8; background-color: #fff; background-repeat: no-repeat; border: 2px solid #e35205; border-radius: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.4); }
.asp-flip-loupe::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px dashed rgba(227,82,5,.25); }
.asp-flip-loupe-btn.is-active { background: #e35205; }
