/*
Theme Name: OceanWP-enfant
Template: oceanwp
Author: olivelm
Author URI: https://www.wonwon.fr
Description: OceanWP is the perfect theme for your project. Lightweight and highly extendable, it will enable you to create almost any type of website such a blog, portfolio, business website and WooCommerce storefront with a beautiful & professional design. Very fast, responsive, RTL & translation ready, best SEO practices, unique WooCommerce features to increase conversion and much more. You can even edit the settings on tablet & mobile so your site looks good on every device. Work with the most popular page builders as Elementor, Beaver Builder, Brizy, Visual Composer, Divi, SiteOrigin, etc... Developers will love his extensible codebase making it a joy to customize and extend. Best friend of Elementor & WooCommerce. Looking for a Multi-Purpose theme? Look no further! Check the demos to realize that it's the only theme you will ever need: https://oceanwp.org/demos/
Version: 2.0.2
*/
/* ==========================================================================
   La Javelle — refonte 2026 (carrousels, accueil, page association)
   Charte : rouge #D0112B / blanc / noir. Classes posées sur les widgets
   Elementor (Avancé > Classes CSS).
   ========================================================================== */
:root { --lj-red: #D0112B; --lj-red-dark: #A80D22; --lj-black: #111111; --lj-grey: #F6F4F4; }

/* --- Carrousels (widget Elementor « Carrousel d'images ») --- */
.lj-carousel .swiper-slide img,
.lj-carousel .elementor-image-carousel-wrapper img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: 18px; box-shadow: 0 12px 30px rgba(0,0,0,.18);
  transition: transform .35s ease;
}
.lj-carousel .swiper-slide:hover img { transform: scale(1.02); }
.lj-carousel-hero .swiper-slide img { aspect-ratio: 16 / 9; max-height: 580px; }
.lj-carousel .elementor-swiper-button {
  width: 48px; height: 48px; border-radius: 50%; background: #fff; color: var(--lj-red);
  box-shadow: 0 4px 14px rgba(0,0,0,.25); display: flex; align-items: center; justify-content: center;
  font-size: 18px; transition: background .2s, color .2s, transform .2s; opacity: 1;
}
.lj-carousel .elementor-swiper-button svg { width: 18px; height: 18px; fill: currentColor; }
.lj-carousel .elementor-swiper-button:hover { background: var(--lj-red); color: #fff; transform: scale(1.06); }
.lj-carousel .swiper-pagination { margin-top: 12px; }
.lj-carousel .swiper-pagination-bullet { width: 10px; height: 10px; background: #c9c9c9; opacity: 1; transition: all .25s; border-radius: 6px; }
.lj-carousel .swiper-pagination-bullet-active { background: var(--lj-red); width: 28px; }
.lj-carousel .elementor-image-carousel-caption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 26px 18px; color: #fff; text-align: left;
  font-size: 1.05em; font-weight: 600; letter-spacing: .01em;
  background: linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,0)); border-radius: 0 0 18px 18px;
}
.lj-carousel .swiper-slide { position: relative; }
.lj-carousel .swiper-slide figure { margin: 0; }

/* --- Boutons pilule --- */
.elementor-widget-button.lj-btn .elementor-button, .elementor-widget-button.lj-btn .elementor-button:visited {
  border-radius: 999px; padding: 16px 38px; font-weight: 600; font-size: 1.02em; letter-spacing: .02em;
  background-color: var(--lj-red) !important; color: #fff !important; box-shadow: 0 8px 22px rgba(208,17,43,.28);
  transition: transform .2s, background-color .2s, box-shadow .2s;
}
.elementor-widget-button.lj-btn .elementor-button:hover, .elementor-widget-button.lj-btn .elementor-button:focus { transform: translateY(-2px); background-color: var(--lj-black) !important; color: #fff !important; box-shadow: 0 12px 26px rgba(0,0,0,.25); }
.elementor-widget-button.lj-btn-light .elementor-button { background-color: #fff !important; color: var(--lj-black) !important; box-shadow: 0 8px 22px rgba(0,0,0,.3); }
.elementor-widget-button.lj-btn-light .elementor-button:hover { background-color: var(--lj-red) !important; color: #fff !important; }
.elementor-widget-button.lj-btn-outline .elementor-button { background-color: transparent !important; color: var(--lj-red) !important; border: 2px solid var(--lj-red); box-shadow: none; }
.elementor-widget-button.lj-btn-outline .elementor-button:hover { background-color: var(--lj-red) !important; color: #fff !important; }

/* --- Blocs --- */
.lj-hero { position: relative; }
.lj-hero .elementor-background-video-container video { object-fit: cover; }
.lj-hero-logo img { width: 150px; height: auto; filter: drop-shadow(0 6px 18px rgba(0,0,0,.35)); }
.lj-title-red { color: var(--lj-red); }
.lj-card { background: var(--lj-grey); border-left: 6px solid var(--lj-red); border-radius: 16px; }
.lj-rounded img { border-radius: 18px; box-shadow: 0 12px 30px rgba(0,0,0,.15); }
.lj-band { background-color: var(--lj-red); color: #fff; }
.lj-band h2, .lj-band h3, .lj-band p, .lj-band li { color: #fff; }
.lj-agenda .elementor-icon-list-item { padding: 10px 0; border-bottom: 1px solid #ececec; }
.lj-agenda .elementor-icon-list-item:last-child { border-bottom: 0; }
.lj-agenda .elementor-icon-list-icon i, .lj-agenda .elementor-icon-list-icon svg { color: var(--lj-red); fill: var(--lj-red); }
.lj-social .elementor-social-icon { border-radius: 50%; transition: transform .2s; }
.lj-social .elementor-social-icon:hover { transform: translateY(-3px); }
.lj-caption figcaption, .lj-caption .widget-image-caption { font-style: italic; color: #777; font-size: .9em; margin-top: 8px; }
.lj-hint { font-size: .85em; color: #8a8a8a; font-style: italic; }

/* Carrousel galerie : compteur discret à la place des 80 points */
.lj-carousel-gallery .swiper-pagination { display: none; }
.lj-carousel .elementor-image-carousel-wrapper { padding-bottom: 6px; }
.lj-rounded img { width: 100%; height: auto; }
.elementor-widget-image.lj-rounded img, .lj-rounded .elementor-widget-container img { border-radius: 24px !important; }
.lj-cours-band { border-radius: 24px; overflow: hidden; }
.lj-map iframe, .lj-map .elementor-custom-embed { border-radius: 24px; overflow: hidden; }
.lj-atelier-title a { color: inherit; } .lj-atelier-title a:hover { color: var(--lj-red); }
.lj-atelier-row { border-bottom: 1px solid #ececec; } .lj-atelier-row:last-of-type { border-bottom: 0; }
.lj-atelier-photo img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.lj-infos .elementor-icon-list-item { padding: 6px 0; }
.lj-partner .elementor-widget-wrap { display: flex; flex-direction: column; } .lj-partner .elementor-widget-button { margin-top: auto; }
.lj-atelier-photo.lj-photo-veuze img { aspect-ratio: 3 / 4; max-width: 400px; object-position: 50% 30%; }
.lj-atelier-photo.lj-photo-pasdecote img { object-position: 50% 0%; }
/* Ateliers : photos en noir et blanc, couleur au survol */
.lj-atelier-photo img { filter: grayscale(1); transition: filter .4s ease, transform .35s ease; }
.lj-atelier-photo:hover img { filter: grayscale(0); }
.lj-carousel-coulisses .swiper-slide img { object-position: 50% 20%; }
.lj-carousel-souvenirs .swiper-slide img { aspect-ratio: 4 / 3; }
.lj-carousel-coulisses .swiper-pagination { display: none; }
/* Galerie masonry (widget Galerie d'images Elementor + colonnes CSS) */
.lj-masonry .gallery { display: block; column-count: 4; column-gap: 18px; margin: 0; }
.lj-masonry .gallery .gallery-item { width: 100% !important; max-width: 100% !important; margin: 0 0 18px !important; padding: 0 !important; break-inside: avoid; display: block; float: none; }
.lj-masonry .gallery .gallery-item a { display: block; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 22px rgba(0,0,0,.14); }
.lj-masonry .gallery .gallery-item img { width: 100%; height: auto; display: block; border: 0 !important; transition: transform .45s ease; }
.lj-masonry .gallery .gallery-item a:hover img { transform: scale(1.05); }
.lj-masonry .gallery-caption { display: none; }
@media (max-width: 1024px) { .lj-masonry .gallery { column-count: 3; } }
@media (max-width: 640px)  { .lj-masonry .gallery { column-count: 2; column-gap: 10px; } .lj-masonry .gallery .gallery-item { margin-bottom: 10px !important; } }
.lj-credit p { font-size: .82em; color: #8a8a8a; font-style: italic; margin: 6px 0 0; } .lj-credit a { color: #8a8a8a; text-decoration: underline; } .lj-credit a:hover { color: var(--lj-red); }
/* --- Page contact : formulaire WPForms modernisé --- */
.lj-form .wpforms-container { margin: 0; }
.lj-form .wpforms-field { padding: 8px 0 !important; }
.lj-form .wpforms-field-label { font-weight: 600; color: #222; font-size: .95em; margin-bottom: 6px; }
.lj-form .wpforms-form input[type=text], .lj-form .wpforms-form input[type=email], .lj-form .wpforms-form input[type=tel], .lj-form .wpforms-form textarea, .lj-form .wpforms-form select {
  width: 100%; max-width: 100%; border: 1.5px solid #e1e1e1; border-radius: 12px; padding: 12px 14px; background: #fafafa; font-size: 15px;
  box-shadow: none; transition: border-color .2s, box-shadow .2s, background .2s; }
.lj-form .wpforms-form input:focus, .lj-form .wpforms-form textarea:focus { outline: none; border-color: var(--lj-red); background: #fff; box-shadow: 0 0 0 4px rgba(208,17,43,.10); }
.lj-form .wpforms-form textarea { min-height: 150px; }
.lj-form .wpforms-field-name .wpforms-field-row { display: flex; gap: 12px; }
.lj-form .wpforms-field-name .wpforms-field-row > div { flex: 1; width: auto !important; margin: 0 !important; }
.lj-form .wpforms-field-sublabel { color: #888; font-size: .8em; margin-top: 4px; }
.lj-form .wpforms-form .wpforms-submit, .lj-form .wpforms-form button[type=submit] {
  background-color: var(--lj-red) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; padding: 14px 34px !important;
  font-weight: 600 !important; font-size: 1em !important; box-shadow: 0 8px 22px rgba(208,17,43,.28); transition: transform .2s, background-color .2s; cursor: pointer; }
.lj-form .wpforms-form .wpforms-submit:hover { background-color: var(--lj-black) !important; transform: translateY(-2px); }
.lj-form .wpforms-form .wpforms-field-checkbox li label, .lj-form .wpforms-field-gdpr-checkbox label { font-size: .9em; color: #555; }
.lj-form .wpforms-error { color: var(--lj-red); font-size: .85em; }
.lj-contact-list .elementor-icon-list-item { padding: 8px 0; }
.lj-contact-list .elementor-icon-list-text a { color: inherit; }
.lj-contact-list .elementor-icon-list-text a:hover { color: var(--lj-red); }
@media (max-width: 767px) { .lj-contact-card .elementor-widget-wrap { padding: 24px 20px !important; } }
/* WPForms : spécificité renforcée (le CSS du plugin est plus fort) */
.lj-form div.wpforms-container-full .wpforms-form input[type=text], .lj-form div.wpforms-container-full .wpforms-form input[type=email], .lj-form div.wpforms-container-full .wpforms-form input[type=tel], .lj-form div.wpforms-container-full .wpforms-form textarea, .lj-form div.wpforms-container-full .wpforms-form select, .lj-form .wpforms-form input[type=text], .lj-form .wpforms-form input[type=email], .lj-form .wpforms-form textarea {
  width: 100% !important; max-width: 100% !important; border: 1.5px solid #dcdcdc !important; border-radius: 12px !important; padding: 12px 14px !important; background: #f7f7f7 !important; font-size: 15px !important; min-height: 46px; box-shadow: none !important; }
.lj-form div.wpforms-container-full .wpforms-form input:focus, .lj-form div.wpforms-container-full .wpforms-form textarea:focus { border-color: var(--lj-red) !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(208,17,43,.10) !important; outline: none !important; }
.lj-form div.wpforms-container-full .wpforms-form textarea { min-height: 150px !important; }
.lj-form div.wpforms-container-full .wpforms-form .wpforms-field-name .wpforms-field-row { display: flex; gap: 12px; }
.lj-form div.wpforms-container-full .wpforms-form .wpforms-field-name .wpforms-field-row .wpforms-first, .lj-form div.wpforms-container-full .wpforms-form .wpforms-field-name .wpforms-field-row .wpforms-last { width: auto !important; flex: 1; float: none; margin: 0 !important; }
.lj-form div.wpforms-container-full .wpforms-form .wpforms-field { padding: 8px 0 !important; }
.lj-form div.wpforms-container-full .wpforms-form .wpforms-field-label { font-weight: 600 !important; color: #222 !important; margin-bottom: 6px !important; }
.lj-form div.wpforms-container-full .wpforms-form .wpforms-submit-container { padding-top: 6px !important; }

/* ==========================================================================
   Harmonisation globale : boutons pilule rouges, animations, pied de page rouge
   ========================================================================== */
.elementor-widget-button:not(.lj-btn-outline):not(.lj-btn-light) .elementor-button,
.lj-form div.wpforms-container-full .wpforms-form .wpforms-submit, a[role=button], input[type=submit], button[type=submit], .button, .theme-button, .wp-block-button__link {
  background-color: var(--lj-red) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  padding: 14px 32px !important; font-weight: 600 !important; letter-spacing: .02em; text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(208,17,43,.28); transition: transform .2s, background-color .2s, box-shadow .2s !important; }
.elementor-widget-button:not(.lj-btn-outline):not(.lj-btn-light) .elementor-button:hover, a[role=button]:hover, input[type=submit]:hover, button[type=submit]:hover, .button:hover, .theme-button:hover {
  background-color: var(--lj-black) !important; color: #fff !important; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0,0,0,.25); }
.elementor-widget-button .elementor-button-icon { color: inherit; }

/* Apparition au défilement (classe posée par lj-anim.js, donc sans JS rien n'est masqué) */
.lj-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.lj-reveal.lj-in { opacity: 1; transform: none; }
.lj-masonry .gallery-item.lj-reveal { transform: translateY(30px) scale(.97); }
.lj-masonry .gallery-item.lj-reveal.lj-in { transform: none; }
@media (prefers-reduced-motion: reduce) { .lj-reveal { opacity: 1; transform: none; transition: none; } }

/* Menu principal : soulignement animé */
#site-navigation-wrap .dropdown-menu > li > a > .text-wrap, .oceanwp-mobile-menu-icon a { position: relative; }
#site-navigation-wrap .dropdown-menu > li > a > .text-wrap::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -4px; height: 2px; background: var(--lj-red); transition: right .25s ease; }
#site-navigation-wrap .dropdown-menu > li:hover > a > .text-wrap::after, #site-navigation-wrap .dropdown-menu > li.current-menu-item > a > .text-wrap::after { right: 0; }
.lj-social .elementor-social-icon, .elementor-widget-social-icons .elementor-social-icon { transition: transform .2s, box-shadow .2s; }
.elementor-widget-social-icons .elementor-social-icon:hover { transform: translateY(-3px) scale(1.06); box-shadow: 0 8px 18px rgba(208,17,43,.3); }

/* Pied de page rouge */
#footer-widgets { background: var(--lj-red) !important; color: #fff; padding: 56px 0 36px; }
#footer-widgets, #footer-widgets p, #footer-widgets li, #footer-widgets a { color: #fff !important; }
#footer-widgets .footer-box .widget-title { color: #fff !important; font-size: 20px; font-weight: 700; margin-bottom: 18px; position: relative; padding-bottom: 10px; }
#footer-widgets .footer-box .widget-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; background: #fff; border-radius: 2px; }
#footer-widgets a:hover { color: #ffd6db !important; text-decoration: none; }
#footer-widgets ul { list-style: none; margin: 0; padding: 0; }
#footer-widgets ul li { padding: 5px 0; border: 0 !important; }
#footer-widgets .menu li a { display: inline-block; transition: transform .2s; }
#footer-widgets .menu li a:hover { transform: translateX(4px); }
#footer-widgets .menu li a::before { content: "›"; margin-right: 8px; opacity: .8; }
.lj-footer-contact li { display: flex; gap: 12px; align-items: flex-start; line-height: 1.5; }
.lj-footer-contact li i { width: 18px; text-align: center; margin-top: 4px; opacity: .95; }
.lj-footer-social { display: flex; gap: 12px; margin-top: 18px; }
.lj-footer-social a { display: inline-flex; width: 42px; height: 42px; border-radius: 50%; background: #fff; color: var(--lj-red) !important; align-items: center; justify-content: center; font-size: 17px; transition: transform .2s, background .2s; }
.lj-footer-social a:hover { transform: translateY(-3px); background: var(--lj-black); color: #fff !important; }
#footer-bottom { background: var(--lj-red-dark) !important; color: #fff !important; font-size: 13px; padding: 16px 0; }
#footer-bottom #copyright, #footer-bottom a { color: #fff !important; }
#footer-bottom a:hover { color: #ffd6db !important; }
/* titres widgets footer : sans barre bleue OceanWP */
#footer-widgets .footer-box .widget-title, #footer-widgets .widget-title { border: 0 !important; padding-left: 0 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 20px !important; line-height: 1.3 !important; }
#footer-widgets .footer-box .widget-title::before { display: none !important; }
#scroll-top { background: var(--lj-red) !important; border-radius: 50% !important; color: #fff !important; }
/* footer social fix (priorité #id) */
#footer-widgets .lj-footer-social a { color: var(--lj-red) !important; }
#footer-widgets .lj-footer-social a:hover { color: #fff !important; }

/* --- Actualités : cartes --- */
.lj-actu .wpr-grid-item-inner { background: #fff; border-radius: 24px; overflow: hidden; box-shadow: 0 12px 30px rgba(0,0,0,.12); transition: transform .3s ease, box-shadow .3s ease; height: 100%; }
.lj-actu .wpr-grid-item-inner:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.lj-actu .wpr-grid-image-wrap { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.lj-actu .wpr-grid-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.lj-actu .wpr-grid-item-inner:hover .wpr-grid-image-wrap img { transform: scale(1.05); }
.lj-actu .wpr-grid-item-below-content { padding: 22px 24px 26px !important; }
.lj-actu .wpr-grid-item-title { margin: 0 0 6px; }
.lj-actu .wpr-grid-item-title a, .lj-actu .wpr-grid-item-title h2, .lj-actu .wpr-grid-item-title h3 { font-size: 19px !important; font-weight: 700 !important; color: #111 !important; line-height: 1.3 !important; text-decoration: none; }
.lj-actu .wpr-grid-item-title a:hover { color: var(--lj-red) !important; }
.lj-actu .wpr-grid-item-date { font-size: 13px !important; color: var(--lj-red) !important; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 10px; }
.lj-actu .wpr-grid-item-date .wpr-grid-extra-text-right, .lj-actu .wpr-grid-item-date .wpr-grid-extra-text-left { display: none; }
.lj-actu .wpr-grid-item-excerpt p, .lj-actu .wpr-grid-item-excerpt { font-size: 15px !important; color: #555 !important; line-height: 1.6 !important; }
.lj-actu .wpr-grid-item-read-more { margin-top: 14px; }
.lj-actu .wpr-grid-item-read-more a, .lj-actu .wpr-grid-item-read-more a.wpr-button { display: inline-block; background: var(--lj-red) !important; color: #fff !important; border-radius: 999px !important; padding: 10px 22px !important; font-size: 14px !important; font-weight: 600 !important; border: 0 !important; transition: background .2s, transform .2s; }
.lj-actu .wpr-grid-item-read-more a:hover { background: var(--lj-black) !important; transform: translateY(-2px); }
.lj-actu .wpr-grid-filters { display: none !important; }

/* --- Tous les boutons : rouge plein arrondi, sans exception --- */
.elementor-widget-button .elementor-button, .elementor-widget-button.lj-btn-outline .elementor-button, .elementor-widget-button.lj-btn-light .elementor-button,
.wpr-button, .more-link, .wpr-grid-item-read-more a, .wpr-grid-pagination a, a.button, .single-post .post-nav a {
  background-color: var(--lj-red) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; box-shadow: 0 8px 22px rgba(208,17,43,.28) !important; }
.elementor-widget-button .elementor-button:hover, .elementor-widget-button.lj-btn-outline .elementor-button:hover, .elementor-widget-button.lj-btn-light .elementor-button:hover, .wpr-button:hover, .more-link:hover, a.button:hover {
  background-color: var(--lj-black) !important; color: #fff !important; box-shadow: 0 12px 26px rgba(0,0,0,.25) !important; }
/* icônes sociales rondes partout */
.elementor-widget-social-icons .elementor-social-icon { border-radius: 50% !important; }
/* image à la une article : arrondie */
.single-post .thumbnail img, .single-post .entry-media img, .single-post .post-media img { border-radius: 24px; box-shadow: 0 12px 30px rgba(0,0,0,.15); width: 100%; height: auto; }
.single-post .thumbnail, .single-post .entry-media { margin-bottom: 30px; }
.lj-post-hero { margin: 0 0 32px; } .lj-post-hero img { width: 100%; height: auto; border-radius: 24px; box-shadow: 0 12px 30px rgba(0,0,0,.15); }
.lj-post-hero { max-width: 1100px; margin: 0 auto 32px; } .lj-post-hero img { max-height: 520px; object-fit: cover; object-position: 50% 35%; }
/* cartes claires sans gris */
.lj-card { background: #fff !important; box-shadow: 0 10px 28px rgba(0,0,0,.08); }
/* FAQ */
.lj-faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid #ececec !important; }
.lj-faq .elementor-tab-title { padding: 18px 8px !important; }
.lj-faq .elementor-tab-content { padding: 0 8px 20px !important; color: #555; font-size: 15px; line-height: 1.6; border: 0 !important; }
.lj-footer-contact .lj-ico { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 4px; }
.lj-footer-social a svg { width: 17px; height: 17px; }
/* Icônes menu mobile + retour en haut sans police Font Awesome (116 Ko économisés) */
#scroll-top .fa-arrow-alt-circle-up::before { content: "\2191" !important; font-family: inherit !important; font-weight: 700; }
.oceanwp-mobile-menu-icon .fa-bars::before, .mobile-menu .fa-bars::before, a.mobile-menu .fa::before { content: "\2630" !important; font-family: inherit !important; }
/* fa-times fallback */
.fa-times::before, .fa-xmark::before { content: "\2715" !important; font-family: inherit !important; }
#mobile-menu-search .fa-search::before, .fa-search::before { content: "\1F50D" !important; font-family: inherit !important; }
/* recherche menu mobile */
#mobile-menu-search .searchform-submit, #mobile-menu-search button[type=submit] { background: var(--lj-red) !important; color: #fff !important; opacity: 1 !important; border-radius: 999px !important; min-width: 48px; box-shadow: none !important; }
#mobile-menu-search .searchform-submit i, #mobile-menu-search button i { color: #fff !important; }
