/**
 * @file
 * Ajustements Drupal 11 : remplace les comportements jQuery de 2013
 * et adapte le balisage moderne (stable9) au CSS d'origine.
 */

.visually-hidden { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); overflow: hidden; height: 1px; width: 1px; }

/* Panneau déroulant du haut */
.topDropPanel.is-open { display: block; }

/* Bouton « haut de page » */
#backtotop { display: block; opacity: 0; pointer-events: none; transition: opacity .4s; }
#backtotop.is-visible { opacity: 1; pointer-events: auto; }

/* Menu principal : sous-menus au survol / au focus clavier */
#navMain ul li:hover > ul, #navMain ul li:focus-within > ul { opacity: 1; top: 100%; }
.nav-toggle { display: none; }


/* Diaporama d'accueil (remplace Revolution Slider) */
.fe-slideshow { position: relative; overflow: hidden; }
.fe-slideshow .slides { list-style: none; margin: 0; padding: 0; position: relative; aspect-ratio: 1920 / 732; max-height: 520px; width: 100%; }
.fe-slideshow .slides > li { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease; margin: 0; }
.fe-slideshow .slides > li.is-active { opacity: 1; z-index: 1; }
.fe-slideshow .slides img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fe-slideshow .slides > li::after { content: ""; position: absolute; top: 0; right: 10%; width: 30%; height: 100%; background: url(../images/frise.png) no-repeat right top; opacity: .7; pointer-events: none; }
.fe-slideshow .caption { position: absolute; left: 40px; max-width: 70%; }
.fe-slideshow .caption.very_large_white { bottom: 120px; }
.fe-slideshow .caption.big_themeColor { bottom: 50px; }
.fe-slideshow .slides > li.is-active .caption { animation: fe-caption .9s ease-out both; }
.fe-slideshow .slides > li.is-active .caption.big_themeColor { animation-delay: .4s; }
@keyframes fe-caption { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.fe-prev, .fe-next { position: absolute; top: 50%; z-index: 2; width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%; background: rgba(0,0,0,.45); color: #fff; cursor: pointer; font-size: 26px; line-height: 44px; }
.fe-prev { left: 15px; } .fe-next { right: 15px; }
.fe-prev::before { content: "‹"; } .fe-next::before { content: "›"; }
.fe-dots { position: absolute; bottom: 15px; left: 0; right: 0; z-index: 2; text-align: center; margin: 0; padding: 0; list-style: none; }
.fe-dots li { display: inline-block; margin: 0 4px; }
.fe-dots button { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; background: transparent; padding: 0; cursor: pointer; }
.fe-dots button[aria-current="true"] { background: #fff; }
@media (prefers-reduced-motion: reduce) { .fe-slideshow .slides > li, .fe-slideshow .caption { transition: none; animation: none !important; } }

/* Carrousel clients (remplace FlexSlider) */
#carouselSlider .slides { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 2px; margin: 0; padding: 0; list-style: none; }
#carouselSlider .slides::-webkit-scrollbar { display: none; }
#carouselSlider .slides > li { flex: 0 0 237px; scroll-snap-align: start; display: flex; align-items: center; justify-content: center; height: 120px; background: #fff; }
#carouselSlider img { max-width: 180px; height: auto; }

/* Messages, onglets d'édition */
#content-header .messages { padding: 12px 15px; margin: 0 0 20px; border-left: 4px solid #6aa84f; background: #f0f7ec; }
#content-header .messages--error { border-color: #c00; background: #fdeaea; }

/* Vues : la colonne « page de liste » ne doit pas casser la grille */
.views-element-container .item-list ul { margin: 0; padding: 0; }
.views-element-container .item-list li { list-style: none; }
.view-recherche .views-exposed-form, .search .views-exposed-form { display: flex; }
.search .views-exposed-form .form-item { margin: 0; flex: 1; }
.search .views-exposed-form label { position: absolute !important; clip: rect(1px,1px,1px,1px); }
.field--name-field-medias iframe, .field--name-field-medias video { max-width: 100%; }
.carte-acces { display: block; }

/* Mobile : menu repliable (remplace selectnav.js) */
@media only screen and (max-width: 959px) {
  .nav-toggle { display: block; margin: 15px 0; padding: 8px 14px; background: #ce2671; color: #fff; border: 0; text-transform: uppercase; font-weight: bold; cursor: pointer; }
  #navMain { display: none; }
  #navMain.is-open { display: block; }
  #navMain ul li { float: none; display: block; }
  #navMain ul li a { padding: 10px 15px; display: block; }
  #navMain ul ul { position: static; opacity: 1; width: auto; background: none; }
  .fe-slideshow .caption { left: 15px; max-width: 90%; }
  .fe-slideshow .caption.very_large_white { bottom: 60px; font-size: 22px; }
  .fe-slideshow .caption.big_themeColor { display: none; }
}

/* Accueil : prestations en grille de 4 (images services_icones 620x154) */
#block-views-services-liste-icones .item-list > ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
#block-views-services-liste-icones li { height: auto; }
#block-views-services-liste-icones img { width: 100%; height: auto; }
#block-views-services-liste-icones img:hover { transform: scale(1.05); }
@media only screen and (max-width: 479px) { #block-views-services-liste-icones .item-list > ul { grid-template-columns: 1fr; } }
/* Dernières actus : 4 colonnes */
#block-views-actualites-dernieres .item-list > ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
#block-views-actualites-dernieres li article.four.columns { width: auto; margin: 0; float: none; }
@media only screen and (max-width: 767px) { #block-views-actualites-dernieres .item-list > ul { grid-template-columns: 1fr 1fr; } }

/* Légendes du diaporama (styles Revolution Slider d'origine) */
.fe-slideshow .caption.very_large_white { color: #fff; font-size: 60px; line-height: 70px; font-weight: 300; text-shadow: 0 2px 8px rgba(0,0,0,.6); }
.fe-slideshow .caption.big_themeColor { color: #98184e; font-weight: 800; font-size: 36px; line-height: 44px; text-shadow: 0 2px 5px rgba(0,0,0,.5); background: rgba(255,255,255,.75); padding: 3px 8px; }
.fe-slideshow a { color: inherit; text-decoration: none; }

/* Formulaire de recherche du bandeau */
.search .views-exposed-form { position: relative; }
.search .views-exposed-form .form-actions { position: static; margin: 0; }
/* Loupe : sprite d'origine 13×13 (normal en haut, survol en bas), placée comme dans layout.css. */
.search .views-exposed-form .searchIcon, .search .views-exposed-form .searchIcon:focus { position: absolute; right: 10px; top: 14px; width: 13px; height: 13px; margin: 0; padding: 0; border: 0; box-shadow: none; font-size: 0; cursor: pointer; background: url(../images/icons/icon-search.png) right top no-repeat; }
.search .views-exposed-form .searchIcon:hover { background: url(../images/icons/icon-search.png) right bottom no-repeat; border: 0; box-shadow: none; }
#block-menu-menu-pied-de-page ul { margin: 0; padding: 0; }
#block-menu-menu-pied-de-page li { display: inline; margin-right: 15px; list-style: none; }

/* Listes en vignettes (remplace setEqualHeight() de tahiticlic.js) */
.view-services .item-list > ul, .view-recherche .item-list > ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.view-services li article.four.columns, .view-recherche li article.four.columns { width: auto; margin: 0; float: none; }
.view-services li.views-row, .view-recherche li.views-row { border: 0; margin: 0; }
.sidebar .view-services .item-list > ul, aside .view-services .item-list > ul { display: block; }
@media only screen and (max-width: 479px) { .view-services .item-list > ul, .view-recherche .item-list > ul { grid-template-columns: 1fr; } }

/* Grilles : colonnes compressibles et images fluides */
.view-services .item-list > ul, .view-recherche .item-list > ul, #block-views-services-liste-icones .item-list > ul, #block-views-actualites-dernieres .item-list > ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media only screen and (max-width: 767px) { .view-services .item-list > ul, .view-recherche .item-list > ul, #block-views-services-liste-icones .item-list > ul, #block-views-actualites-dernieres .item-list > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media only screen and (max-width: 479px) { .view-services .item-list > ul, .view-recherche .item-list > ul, #block-views-services-liste-icones .item-list > ul, #block-views-actualites-dernieres .item-list > ul { grid-template-columns: minmax(0, 1fr); } }
.content img, footer img { max-width: 100%; height: auto; }
@media only screen and (max-width: 767px) { .search .views-exposed-form .form-actions { top: 0; } .search .views-exposed-form .form-item input { width: 100%; box-sizing: border-box; } }

/* Correctif responsive : custom.css d'origine force .sixteen.columns à 1200px à toutes les tailles. */
@media only screen and (min-width: 960px) and (max-width: 1199px) { .container .sixteen.columns { width: 940px; } }
@media only screen and (min-width: 768px) and (max-width: 959px) { .container .sixteen.columns { width: 748px; } }
@media only screen and (max-width: 767px) {
  .container { width: auto; padding: 0 16px; box-sizing: border-box; }
  .container .columns, .container .column, .container .sixteen.columns, .container .eleven.columns, .container .four.columns,
  .container .six.columns, .container .ten.columns, .container .twelve.columns, .container .two-thirds.column, .container .one-third.column { width: 100%; margin-left: 0; margin-right: 0; }
  .file a { word-break: break-all; }
}
@media only screen and (max-width: 767px) { .pagetitle .search { margin: 0 0 15px; float: none; } .pagetitle .search input { margin: 0; } }

/* ===== Alignement sur le rendu du site D7 (retours du 15/10) ===== */

/* Diaporama : légendes alignées sur le conteneur, polices et couleurs d'origine,
   flèches et puces visibles seulement au survol (comme Revolution Slider). */
.fe-slideshow .caption { left: max(16px, calc(50% - 600px + 160px)); bottom: auto; max-width: 80%; }
.fe-slideshow .caption.very_large_white { top: 55%; font-family: 'Kaushan Script', cursive; font-weight: normal; font-size: 60px; line-height: 70px; color: #fff; text-shadow: 0 2px 5px rgba(0,0,0,.5); }
.fe-slideshow .caption.big_themeColor { top: calc(55% + 80px); font-weight: 800; font-size: 36px; line-height: 44px; color: #9abd42; background: none; padding: 0; text-shadow: 0 2px 5px rgba(0,0,0,.5); }
.fe-prev, .fe-next, .fe-dots { opacity: 0; transition: opacity .3s; }
.fe-slideshow:hover .fe-prev, .fe-slideshow:hover .fe-next, .fe-slideshow:hover .fe-dots,
.fe-slideshow:focus-within .fe-prev, .fe-slideshow:focus-within .fe-next, .fe-slideshow:focus-within .fe-dots { opacity: 1; }

/* Liens « Tous nos services → », « Toutes nos actus → »… */
.more-link { text-align: right; margin: 10px 0 0; clear: both; }

/* Accueil : prestations */
#block-views-services-liste-icones .item-list > ul { gap: 25px 20px; }
#block-views-services-liste-icones .featureWrap { text-align: center; }
#block-views-services-liste-icones .featureTitle a { color: #9abd42; }
#block-views-services-liste-icones .featureDesc { text-align: justify; }
#block-views-services-liste-icones img { border-radius: 6px 20px; }
#block-views-services-liste-icones img:hover { transform: none; }

/* Newsletter : encadré gris, libellé + champ + bouton sur une ligne */
#block-add-my-email-formulaire, #block-add-my-email-formulaire-panel { margin: 25px 0; }
#block-add-my-email-formulaire { background: rgba(230,230,230,.6); border-radius: 6px 20px; padding: 5px 5px 12px; overflow: auto; }
#block-add-my-email-formulaire h2.sectionTitle { padding: 6px 0; margin-bottom: 8px; }
#block-add-my-email-formulaire form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 40px; }
#block-add-my-email-formulaire .form-item { display: flex; align-items: center; gap: 6px; margin: 0; }
#block-add-my-email-formulaire label { float: none; margin: 0; }
#block-add-my-email-formulaire input[type="email"] { width: 250px; margin: 0; border-radius: 15px; }
#block-add-my-email-formulaire .form-actions { margin: 0; }
#block-add-my-email-formulaire input[type="submit"] { width: 160px; margin: 0; }
.form-required::after { content: " *"; color: #c00; }

/* Dernières actus : texte gris, titre gris, date en italique */
.portfolioList .thumbText, .portfolioList .thumbText p, .portfolioList .thumbText .field-content { color: #555; text-align: justify; }
.portfolioList .thumbText h3.sectionTitle, .portfolioList .thumbText h3.sectionTitle * { color: #999; font-weight: normal; }
.portfolioList .thumbLink:hover .thumbText h3.sectionTitle, .portfolioList .thumbLink:hover .thumbText h3.sectionTitle * { color: #9abd42; }
#block-views-actualites-dernieres .views-field-created, #block-views-actualites-dernieres time { font-style: italic; color: #555; }

/* Pied de page : liens du menu en ligne */
#block-menu-menu-pied-de-page li { margin-right: 8px; }
#block-views-liens-liens-utiles .more-link a { color: #fff; }

/* Sous-titre du diaporama : hauteur naturelle */
.fe-slideshow .caption.big_themeColor, .fe-slideshow .caption.very_large_white { bottom: auto; }
.view-footer, section.content .view-footer p.more-link { text-align: right; }

/* Diaporama : boutons de Revolution Slider d'origine (sprites du thème). */
.fe-prev, .fe-next { width: 40px; height: 40px; margin-top: -20px; padding: 0; border: 0; border-radius: 0; font-size: 0; line-height: 0; cursor: pointer;
  background: transparent url(../images/revolution/large_left.png) no-repeat left top; }
.fe-next { background-image: url(../images/revolution/large_right.png); }
.fe-prev { left: 20px; } .fe-next { right: 20px; }
.fe-prev::before, .fe-next::before { content: none; }
.fe-slideshow .fe-prev:hover, .fe-slideshow .fe-prev:focus, .fe-slideshow .fe-prev:active { background: transparent url(../images/revolution/large_left.png) no-repeat left bottom; border: 0; box-shadow: none; }
.fe-slideshow .fe-next:hover, .fe-slideshow .fe-next:focus, .fe-slideshow .fe-next:active { background: transparent url(../images/revolution/large_right.png) no-repeat left bottom; border: 0; box-shadow: none; }
.fe-slideshow .fe-dots button:focus, .fe-slideshow .fe-dots button:active { border: 0; box-shadow: none; }
.fe-dots { bottom: 12px; }
.fe-dots li { margin: 0 0 0 3px; }
.fe-dots button { width: 20px; height: 20px; padding: 0; border: 0; border-radius: 0; background: transparent url(../images/revolution/bullet.png) no-repeat left top; }
.fe-dots button:hover, .fe-dots button:focus, .fe-dots button[aria-current="true"] { background: transparent url(../images/revolution/bullet.png) no-repeat left bottom; }

/* Panneau déroulant du haut : animé en JS (slideDown/slideUp) */
.topDropPanel { display: block; overflow: hidden; }
.topDropPanel[hidden] { display: none; }
/* Les règles d'origine par identifiant de bloc (#block-… p { text-align: justify }) l'emportent sinon. */
.view-footer p.more-link { text-align: right !important; }

/* Panneau gestionnaire (sliding panel D7) : même balisage et même glissement de 220 px.
   Le libellé OPEN/CLOSE est le sprite d'origine images/options_label.png (sliding-panel.css). */
#slidingpanel { top: var(--drupal-displace-offset-top, 40px); margin-left: -220px; }
#slidingpanel #panel { margin-left: 0; padding: 10px 0; transition: margin-left .5s ease; }
#slidingpanel.is-open #panel { margin-left: 220px; }
#slidingpanel #toggle .close { display: none; }
#slidingpanel.is-open #toggle .open { display: none; }
#slidingpanel.is-open #toggle .close { display: block; }
#slidingpanel #toggle:focus-visible { outline: 2px solid #9abd42; }
#slidingpanel h2 { padding: 0 25px 8px; }
#slidingpanel ul { margin: 0; padding: 0; list-style: none; }
#slidingpanel li { margin: 0; padding: 8px 25px 7px; border-bottom: 1px solid #000; box-shadow: 0 1px 0 #424242; }
#slidingpanel li:last-child { border-bottom: 0; box-shadow: none; }
@media (prefers-reduced-motion: reduce) { #slidingpanel #panel { transition: none; } }
ul.tabs.primary { border-bottom: 1px solid #ddd; margin: 10px 0 20px; }
/* Barre d'administration D11 : l'en-tête (absolute) et le bandeau « + » (fixed) sont en top: 0 dans le CSS d'origine. */
header, .topDropContainer { top: var(--drupal-displace-offset-top, 0px); }
