/* SOASY Design — couche globale des pages SOASY (neutralisation Elementor, accessibilité, formulaires, bandeau cookies) */
html { scroll-behavior: smooth; }
body.soasy-page { margin: 0; -webkit-font-smoothing: antialiased; }
body.soasy-page img { max-width: 100%; }
body.soasy-page :focus-visible { outline: 2px solid #22D3C9; outline-offset: 2px; }
body.soasy-page ::selection { background: rgba(34, 211, 201, .28); }
.soasy-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: #22D3C9; color: #04231F !important; font: 600 .9rem 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .06em; padding: 10px 16px; }
.soasy-skip:focus { top: 12px; }

/* Elementor : conteneurs et widgets transparents, la mise en page vient du HTML SOASY */
.soasy-main .e-con, .soasy-main .e-con-inner, .soasy-main .elementor-section, .soasy-main .elementor-container, .soasy-main .elementor-column, .soasy-main .elementor-widget-wrap {
  --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; --column-gap: 0;
  --content-width: 100%; --container-max-width: 100%; padding: 0 !important; margin: 0; max-width: none; gap: 0;
}
.soasy-main .elementor-widget:not(:last-child) { margin-block-end: 0; margin-bottom: 0; }
.soasy-main .elementor-widget-html, .soasy-main .elementor-widget-shortcode { width: 100%; }
.soasy-main > .elementor { overflow: clip; }

/* Pages Contact */
@media (max-width: 899px) { [data-contact-grid] { grid-template-columns: minmax(0, 1fr) !important; } }

/* Contact Form 7 et formulaire de repli, au trait SOASY */
.soasy-form form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.soasy-form p { margin: 0; }
.soasy-form label { display: flex; flex-direction: column; gap: 7px; font: 500 .66rem/1.3 'IBM Plex Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #374650; }
.soasy-form .soasy-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 599px) { .soasy-form .soasy-grid-2 { grid-template-columns: minmax(0, 1fr); } }
.soasy-form input[type="text"], .soasy-form input[type="email"], .soasy-form input[type="tel"], .soasy-form select, .soasy-form textarea {
  width: 100%; box-sizing: border-box; font: 400 1rem/1.4 'Barlow', sans-serif; letter-spacing: 0; text-transform: none; color: #0F1C26;
  background: transparent; border: 1px solid rgba(15, 28, 38, .3); border-radius: 0; padding: 12px 14px; transition: border-color .15s ease, background .15s ease;
}
.soasy-form textarea { min-height: 150px; resize: vertical; }
.soasy-form input:hover, .soasy-form select:hover, .soasy-form textarea:hover { border-color: rgba(15, 28, 38, .55); }
.soasy-form input:focus, .soasy-form select:focus, .soasy-form textarea:focus { outline: none; border-color: #0C7F7A; background: rgba(12, 127, 122, .05); }
.soasy-form .wpcf7-list-item { margin: 0; }
.soasy-form .wpcf7-acceptance label, .soasy-form .soasy-consent { flex-direction: row; align-items: flex-start; gap: 10px; font: 400 .9rem/1.5 'Barlow', sans-serif; letter-spacing: 0; text-transform: none; color: #374650; }
.soasy-form input[type="checkbox"] { width: 16px; height: 16px; margin-top: 3px; accent-color: #0C7F7A; flex: none; }
.soasy-form input[type="submit"], .soasy-form button[type="submit"] {
  align-self: flex-start; cursor: pointer; border: 0; border-radius: 0; background: #17B8B0; color: #04231F;
  font: 600 .95rem/1 'Barlow Condensed', sans-serif; letter-spacing: .08em; text-transform: uppercase; padding: 15px 26px; transition: background .15s ease;
}
.soasy-form input[type="submit"]:hover, .soasy-form button[type="submit"]:hover { background: #22D3C9; }
.soasy-form input[type="submit"]:active, .soasy-form button[type="submit"]:active { background: #0C7F7A; color: #EEF3F5; }
.soasy-form .wpcf7-not-valid-tip { font: 400 .85rem 'Barlow', sans-serif; color: #B3412E; margin-top: 4px; text-transform: none; letter-spacing: 0; }
.soasy-form .wpcf7 form .wpcf7-response-output, .soasy-form .soasy-notice { margin: 4px 0 0; padding: 12px 14px; border: 1px solid rgba(12, 127, 122, .5); font: 400 .95rem 'Barlow', sans-serif; color: #0A6B66; }
.soasy-form .wpcf7 form.invalid .wpcf7-response-output, .soasy-form .wpcf7 form.failed .wpcf7-response-output, .soasy-form .soasy-notice.is-error { border-color: rgba(179, 65, 46, .5); color: #B3412E; }
.soasy-form .wpcf7-spinner { margin: 0 0 0 12px; }
.soasy-hp { position: absolute !important; left: -9999px !important; }

/* Bandeau d'information cookies */
.soasy-cookie { position: fixed; left: clamp(12px, 3vw, 28px); bottom: clamp(12px, 3vw, 28px); z-index: 90; max-width: 420px; background: #0F1C26; color: #C9D6DE; border: 1px solid rgba(238, 243, 245, .22); padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; font: 400 .92rem/1.55 'Barlow', sans-serif; box-shadow: 0 18px 40px -20px rgba(4, 10, 16, .7); }
.soasy-cookie[hidden] { display: none; }
.soasy-cookie strong { font: 600 .66rem 'IBM Plex Mono', monospace; letter-spacing: .16em; text-transform: uppercase; color: #22D3C9; }
.soasy-cookie a { color: #8FF0EA !important; border-bottom: 1px solid rgba(143, 240, 234, .4); }
.soasy-cookie .soasy-cookie-row { display: flex; gap: 10px; flex-wrap: wrap; }
.soasy-cookie button { cursor: pointer; border-radius: 0; font: 600 .82rem/1 'Barlow Condensed', sans-serif; letter-spacing: .08em; text-transform: uppercase; padding: 11px 18px; border: 1px solid #17B8B0; background: #17B8B0; color: #04231F; }
.soasy-cookie button:hover { background: #22D3C9; border-color: #22D3C9; }
.soasy-cookie::before, .soasy-cookie::after { content: ''; position: absolute; width: 9px; height: 9px; top: -5px; left: -5px; background: linear-gradient(currentColor, currentColor) 4px 0 / 1px 9px no-repeat, linear-gradient(currentColor, currentColor) 0 4px / 9px 1px no-repeat; color: rgba(238, 243, 245, .5); }
.soasy-cookie::after { left: auto; right: -5px; }

@media (prefers-reduced-motion: reduce) {
  body.soasy-page *, body.soasy-page *::before, body.soasy-page *::after { animation-duration: .001s !important; animation-iteration-count: 1 !important; transition-duration: .001s !important; scroll-behavior: auto !important; }
}

/* Cadres des films, séquence d’amarrage, vue 3D */
[data-film-frame] [data-ico="min"]{display:none}
[data-film-expand]:hover{background:#0C7F7A!important}
[data-film-frame]:fullscreen,[data-film-frame][data-full]{position:fixed!important;inset:0!important;z-index:400!important;margin:0!important;border:0!important;background:#0A1520!important;display:flex!important;flex-direction:column;justify-content:center;align-items:center;padding:12px!important;max-width:none!important;width:100%!important;height:100%!important;animation:none!important;transform:none!important}
[data-film-frame]:fullscreen [data-film-box],[data-film-frame][data-full] [data-film-box]{width:min(100%,calc((100dvh - 68px) * 16 / 9))!important}
[data-film-frame]:fullscreen [data-ico="min"],[data-film-frame][data-full] [data-ico="min"]{display:block}
[data-film-frame]:fullscreen [data-ico="max"],[data-film-frame][data-full] [data-ico="max"]{display:none}
@keyframes dockDriftY{to{transform:translateY(6px)}}
@media(max-width:640px){[data-dock]{grid-template-columns:minmax(0,1fr)!important}[data-dock]>:nth-child(2){height:64px!important;min-height:64px!important}[data-dock]>:nth-child(2)>span:first-child{left:50%!important;right:auto!important;top:0!important;bottom:0!important;width:1px!important;height:auto!important;background:repeating-linear-gradient(180deg,rgba(12,127,122,.65) 0 7px,transparent 7px 11px,rgba(12,127,122,.65) 11px 12px,transparent 12px 16px)!important}[data-dock]>:first-child{animation-name:dockDriftY!important}[data-dock]>:last-child{transform:none!important}[data-3d-box]{aspect-ratio:4/3!important}}
@media(max-width:640px){div:has(> [data-3d-box]){padding-left:8px!important;padding-right:8px!important}div:has(> div > div > [data-3d-box]){padding-left:8px!important;padding-right:8px!important}[data-log-panel]{transform:scale(.82);transform-origin:top left;left:12px!important;top:12px!important}}

/* Affiche des films et de la vue 3D avant chargement */
.soasy-cover { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; border: 0; border-radius: 0; padding: 0; margin: 0; cursor: pointer; color: #EEF3F5; font: 600 .82rem/1 'Barlow Condensed', sans-serif; letter-spacing: .14em; text-transform: uppercase; background-color: #0A1520; background-size: cover; background-position: center; transition: opacity .4s ease; }
.soasy-cover-film { background-image: linear-gradient(rgba(34,211,201,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(34,211,201,.07) 1px, transparent 1px); background-size: 48px 48px; }
.soasy-cover-3d { background-color: #EEF3F5; background-size: 86% auto; background-repeat: no-repeat; color: #0F1C26; }
.soasy-cover-play { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border: 1px solid currentColor; background: rgba(12,127,122,.85); color: #EEF3F5; transition: background .15s ease, transform .15s ease; }
.soasy-cover:hover .soasy-cover-play { background: #17B8B0; }
.soasy-cover:active .soasy-cover-play { transform: scale(.96); }
.soasy-cover-label { padding: 6px 10px; background: rgba(10,21,32,.72); color: #EEF3F5; }
.soasy-cover-wait { display: none; padding: 6px 10px; background: rgba(10,21,32,.72); color: #8FF0EA; }
.soasy-cover[data-state="loading"] .soasy-cover-label, .soasy-cover[data-state="loading"] .soasy-cover-play { display: none; }
.soasy-cover[data-state="loading"] .soasy-cover-wait { display: block; animation: soasyPulse 1.2s ease-in-out infinite; }
.soasy-cover[data-state="done"] { opacity: 0; pointer-events: none; }
@keyframes soasyPulse { 50% { opacity: .45; } }
@media(max-width:640px){div:has(> [data-if] > [data-3d-box]){padding-left:8px!important;padding-right:8px!important}}

/* Politique de cookies : document Complianz au trait SOASY */
.soasy-cmplz-doc { font-size: 1rem; line-height: 1.7; color: #374650; }
.soasy-cmplz-doc .cmplz-document { max-width: none !important; margin: 0 !important; padding: 0 !important; font: inherit !important; color: inherit !important; }
.soasy-cmplz-doc h2, .soasy-cmplz-doc h3, .soasy-cmplz-doc h4 { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 600 !important; text-transform: uppercase; color: #0F1C26 !important; line-height: 1.1 !important; margin: 1.6em 0 .5em !important; }
.soasy-cmplz-doc h2 { font-size: 1.45rem !important; } .soasy-cmplz-doc h3 { font-size: 1.15rem !important; letter-spacing: .02em; } .soasy-cmplz-doc h4 { font-size: 1rem !important; }
.soasy-cmplz-doc > .cmplz-document > :first-child, .soasy-cmplz-doc h2:first-child { margin-top: 0 !important; }
.soasy-cmplz-doc p { margin: 0 0 1em !important; max-width: 75ch; }
.soasy-cmplz-doc a { color: #0A6B66 !important; border-bottom: 1px solid rgba(12,127,122,.4); text-decoration: none !important; }
.soasy-cmplz-doc ul { margin: 0 0 1em !important; padding-left: 1.2em !important; }
.soasy-cmplz-doc details, .soasy-cmplz-doc .cmplz-dropdown { border: 1px solid rgba(15,28,38,.18) !important; border-radius: 0 !important; background: transparent !important; margin: 0 0 8px !important; box-shadow: none !important; }
.soasy-cmplz-doc details summary, .soasy-cmplz-doc .cmplz-dropdown summary { padding: 12px 16px !important; cursor: pointer; background: transparent !important; font-family: 'Barlow Condensed', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: #0F1C26; }
.soasy-cmplz-doc details[open] > summary { border-bottom: 1px solid rgba(15,28,38,.14); }
.soasy-cmplz-doc details > div, .soasy-cmplz-doc .cookies-per-purpose { padding: 12px 16px !important; }
.soasy-cmplz-doc table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: .92rem; }
.soasy-cmplz-doc th, .soasy-cmplz-doc td { text-align: left; padding: 9px 10px; border-bottom: 1px solid rgba(15,28,38,.14); vertical-align: top; }
.soasy-cmplz-doc th { font-family: 'IBM Plex Mono', monospace; font-weight: 500; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: #5A6870; }
.soasy-cmplz-doc .cookies-per-purpose { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 6px 16px; border: 0 !important; }
.soasy-cmplz-doc .cookies-per-purpose > div { border: 0 !important; padding: 4px 0 !important; overflow-wrap: anywhere; }
.soasy-cmplz-doc .cookies-per-purpose .name-header, .soasy-cmplz-doc .cookies-per-purpose .retention-header, .soasy-cmplz-doc .cookies-per-purpose .purpose-header { font-family: 'IBM Plex Mono', monospace; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: #5A6870; }
@media (max-width: 599px) { .soasy-cmplz-doc .cookies-per-purpose { grid-template-columns: minmax(0, 1fr) !important; } }
.soasy-consent-open:hover { background: #22D3C9 !important; } .soasy-consent-open:active { background: #0C7F7A !important; color: #EEF3F5 !important; }

/* Onglets des pages légales : une seule ligne, défilement horizontal sur petit écran */
nav[aria-label*="Mentions"], nav[aria-label*="Legal notice"] { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
nav[aria-label*="Mentions"]::-webkit-scrollbar, nav[aria-label*="Legal notice"]::-webkit-scrollbar { display: none; }
nav[aria-label*="Mentions"] > a, nav[aria-label*="Legal notice"] > a { white-space: nowrap; flex: none; }
@media (max-width: 700px) { nav[aria-label*="Mentions"] > a, nav[aria-label*="Legal notice"] > a { padding: 10px 12px !important; letter-spacing: .12em !important; } }
/* legal-tabs */
