/* CONTACT_EN_V11_SOL_SECRET_20261026 */
/* ===========================================================
   CONTACT EN — DESKTOP | CSS ISOLE ET OPTIMISE
   Assets charges uniquement sur /fr/contact-fr/ par le MU-plugin.
   Polices locales existantes : SP Kawoszeh / SP Manrope.
   =========================================================== */

#contact-section {
  --ct-blue: #3855e8;
  --ct-text: #fff;
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100vh;
  padding: 100px 20px 60px;
  overflow: hidden;
  background: #060707;
  color: var(--ct-text);
  font-family: 'SP Manrope', 'Manrope', sans-serif;
  box-sizing: border-box;
}
#contact-section, #contact-section * { box-sizing: border-box; }

/* Ambiance : deux gradients statiques, sans filtre blur géant. */
#contact-section .contact-lunar-glow,
#contact-section .contact-bg-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
#contact-section .contact-lunar-glow {
  z-index: 0;
  background: radial-gradient(ellipse 390px 390px at 50% 50%,
    rgba(56,85,232,.30), rgba(56,85,232,.09) 43%, transparent 76%);
}
#contact-section .contact-bg-overlay {
  z-index: 1;
  background: radial-gradient(ellipse at center,
    rgba(6,7,7,.06) 5%, rgba(6,7,7,.91) 100%);
}
#contact-section .contact-wrapper {
  position: relative;
  z-index: 3;
  width: min(100%, 880px);
  display: flex;
  flex-direction: column;
  align-items: center;
}
#contact-section .contact-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 26px 0 0;
  text-align: center;
}
/* Contacts rapides et barre sociale. */
#contact-section .contact-quick-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
#contact-section #email-copy-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  max-width:100%;
  padding: 12px 23px;
  border: 1.5px solid rgba(56,85,232,.5);
  border-radius: 30px;
  background: rgba(56,85,232,.15);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  color: #fff;
  font: 600 15px/1.5 'SP Manrope','Manrope',sans-serif;
  letter-spacing: normal;
  text-transform: none;
  box-shadow: none;
  cursor: pointer;
  transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
}
#contact-section #email-copy-btn:hover {
  transform: translateY(-2px);
  background: rgba(56,85,232,.27);
  box-shadow: 0 0 25px rgba(56,85,232,.32);
}
#contact-section #email-copy-btn:focus-visible,
#contact-section .social-link:focus-visible {
  outline: 2px solid #a8b8ff;
  outline-offset: 4px;
}
#contact-section .email-icon { flex:none; font-size:18px; color:#8ea2ff; }
#contact-section #email-text { text-align:center; overflow-wrap:anywhere; }
#contact-section .copy-feedback {
  position: absolute;
  left: calc(100% + 12px);
  top: 50%;
  width: max-content;
  max-width: 220px;
  transform: translateY(-50%);
  color: #b0bfff;
  font: 700 14px/1.3 'SP Manrope','Manrope',sans-serif;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
#contact-section .copy-feedback.show { opacity: 1; }
#contact-section .social-links-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
#contact-section .social-link {
  color: rgba(255,255,255,.66);
  font: 500 14px/1.5 'SP Manrope','Manrope',sans-serif;
  text-decoration: none;
  transition: color .2s ease, text-shadow .2s ease;
}
#contact-section .social-link:hover { color: #fff; text-shadow: 0 0 10px rgba(255,255,255,.45); }
#contact-section .dot-separator { color: rgba(255,255,255,.28); }

/* Stèle obsidienne. */
#contact-section .contact-glass-card {
  position: relative;
  width: 100%;
  padding: 45px 50px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 32px;
  background: linear-gradient(160deg,rgba(22,25,32,.82),rgba(8,9,12,.94));
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  backdrop-filter: blur(18px) saturate(145%);
  box-shadow: 0 30px 68px rgba(0,0,0,.66), inset 0 1px 1px rgba(255,255,255,.20);
}

/* WPForms 27117 : styles strictement limites a la page contact EN. */
#contact-section .wpforms-sanctuary-wrapper .wpforms-container,
#contact-section .wpforms-sanctuary-wrapper .wpforms-container-full {
  width: 100%;
  margin: 0 !important;
  padding: 0;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-field {
  margin: 0 0 22px;
  padding: 0;
  text-align: left;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-field-label {
  display: block;
  margin: 0 0 10px;
  color: #fff !important;
  font: 600 16px/1.5 'SP Manrope','Manrope',sans-serif;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-required-label { color: #8ea2ff !important; }
#contact-section .wpforms-sanctuary-wrapper .wpforms-field input[type="text"],
#contact-section .wpforms-sanctuary-wrapper .wpforms-field input[type="email"],
#contact-section .wpforms-sanctuary-wrapper .wpforms-field input[type="tel"],
#contact-section .wpforms-sanctuary-wrapper .wpforms-field input[type="number"],
#contact-section .wpforms-sanctuary-wrapper .wpforms-field textarea,
#contact-section .wpforms-sanctuary-wrapper .wpforms-field select {
  display: block;
  width: 100%;
  height: auto;
  padding: 16px 20px;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 16px;
  background: rgba(255,255,255,.045) !important;
  color: #fff !important;
  font: 400 16px/1.5 'SP Manrope','Manrope',sans-serif !important;
  box-shadow: none !important;
  transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-field input::placeholder,
#contact-section .wpforms-sanctuary-wrapper .wpforms-field textarea::placeholder {
  color: rgba(255,255,255,.38);
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-field input:focus,
#contact-section .wpforms-sanctuary-wrapper .wpforms-field textarea:focus,
#contact-section .wpforms-sanctuary-wrapper .wpforms-field select:focus {
  outline: none;
  border-color: #768eff !important;
  background: rgba(56,85,232,.09) !important;
  box-shadow: 0 0 0 3px rgba(56,85,232,.18) !important;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-field textarea {
  min-height: 140px;
  resize: vertical;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-submit-container {
  margin: 15px 0 0;
  padding: 0;
  text-align: center;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-submit-container button[type="submit"],
#contact-section .wpforms-sanctuary-wrapper .wpforms-submit-container input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content !important;
  max-width: 100% !important;
  height: auto;
  min-height: 58px;
  margin: 0 auto;
  padding: 16px 36px;
  border: 1px solid rgba(255,255,255,.30) !important;
  border-radius: 30px;
  background: linear-gradient(135deg,#3855e8,#2238a8) !important;
  color: #fff !important;
  font: 600 18px/1.45 'SP Manrope','Manrope',sans-serif !important;
  text-transform: none;
  letter-spacing: .01em;
  box-shadow: 0 0 25px rgba(56,85,232,.4) !important;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-submit-container button[type="submit"]:hover,
#contact-section .wpforms-sanctuary-wrapper .wpforms-submit-container input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 38px rgba(56,85,232,.55) !important;
}
#contact-section .wpforms-sanctuary-wrapper .wpforms-submit-container button[type="submit"]:focus-visible {
  outline: 2px solid #c0caff;
  outline-offset: 3px;
}

/* Confirmation de WPForms (y compris le rendu AJAX). */
#contact-section .wpforms-sanctuary-wrapper :is(
  .wpforms-confirmation-container,
  .wpforms-confirmation-container-full,
  [id^="wpforms-confirmation-"]
) {
  padding: 35px 30px;
  border: 1px solid rgba(56,85,232,.60) !important;
  border-radius: 24px;
  background: linear-gradient(160deg,rgba(18,22,35,.94),rgba(8,10,18,.98)) !important;
  color: #fff !important;
  text-align: center;
  box-shadow: 0 0 35px rgba(56,85,232,.30);
}
#contact-section .wpforms-sanctuary-wrapper :is(
  .wpforms-confirmation-container,
  .wpforms-confirmation-container-full,
  [id^="wpforms-confirmation-"]
) p {
  color: rgba(255,255,255,.90);
  font: 400 17px/1.7 'SP Manrope','Manrope',sans-serif;
}
#contact-section .ether-confirmation-badge {
  display: inline-block;
  margin-bottom: 14px;
  padding: 8px 16px;
  border: 1px solid rgba(56,85,232,.50);
  border-radius: 20px;
  background: rgba(56,85,232,.23);
  color: #fff;
  font: 400 clamp(20px,3vw,24px)/1.35 'SP Kawoszeh','Kawoszeh',serif;
  text-shadow: 0 0 12px rgba(56,85,232,.65);
}
#contact-section .ether-sub-note {
  margin-top: 10px;
  color: #a8b8ff;
  font: 500 16px/1.5 'SP Manrope','Manrope',sans-serif;
}

/* Securite sur largeurs intermediaires si une fenetre desktop est reduite. */
@media (max-width: 1000px) {
  #contact-section .contact-glass-card { padding: 35px 30px; }
  #contact-section .copy-feedback {
    position: static;
    transform: none;
    display: inline-block;
    margin-left: 4px;
  }
}
/* Meme securite responsive que le code d'origine en cas de chargement mobile. */
@media (max-width: 768px) {
  #contact-section .contact-glass-card { padding: 30px 20px; }
  #contact-section .social-links-bar { gap: 8px; }
  #contact-section #email-copy-btn { padding:11px 17px; font-size:13px; }
}
@media (prefers-reduced-motion: reduce) {
  #contact-section *, #contact-section *::before, #contact-section *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}


/* ============================================================
   CONTACT — FOOTER SIGNATURE FR / EN
   Uniquement si le footer personnalise est present.
   Le footer natif OceanWP est cache sur les pages Contact.
   ============================================================ */
body:has(#sa-contact-footer) :is(
  #footer, #footer-widgets, #footer-bottom, #colophon,
  footer.site-footer, footer.elementor-location-footer
) { display:none !important; }

#sa-contact-footer {
  --sf-ink:#eef2ff;
  --sf-soft:#a9b3cf;
  --sf-blue:#3855e8;
  position:relative;
  isolation:isolate;
  width:100%;
  margin:0;
  padding:clamp(36px,4vw,56px) 28px 24px;
  border-top:1px solid rgba(125,145,219,.24);
  background:
    radial-gradient(ellipse 55% 55% at 94% 4%,rgba(56,85,232,.16),transparent 85%),
    linear-gradient(180deg,#0a1021 0%,#080c16 52%,#060810 100%);
  color:var(--sf-ink) !important;
  font-family:'SP Manrope',sans-serif;
  overflow:hidden;
  box-sizing:border-box;
}
#sa-contact-footer *,#sa-contact-footer *::before,#sa-contact-footer *::after {box-sizing:border-box;}
#sa-contact-footer::before {
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(67%,760px);height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(146,170,255,.84),transparent);
}
#sa-contact-footer a {
  color:var(--sf-ink) !important;
  text-decoration:none;
  transition:color .22s ease,background-color .22s ease,border-color .22s ease,transform .22s ease;
}
#sa-contact-footer a:focus-visible {outline:2px solid #a7b8ff;outline-offset:4px;border-radius:4px;}
#sa-contact-footer .sa-footer-inner {width:min(100%,1180px);margin-inline:auto;}
#sa-contact-footer .sa-footer-language {
  display:inline-flex;align-items:center;gap:9px;
  min-height:34px;padding:7px 13px;
  border:1px solid rgba(155,168,222,.25);
  border-radius:999px;background:rgba(127,150,232,.045);
  font:650 11px/1.4 'SP Manrope',sans-serif;
  letter-spacing:.03em;white-space:nowrap;
}
#sa-contact-footer .sa-footer-language:hover {
  border-color:rgba(133,157,255,.58);background:rgba(56,85,232,.17);
}
#sa-contact-footer .sa-footer-grid {
  display:grid;grid-template-columns:minmax(0,1.6fr) minmax(155px,.8fr) minmax(155px,.8fr);
  gap:36px;padding:12px 0 36px;
  border-bottom:1px solid rgba(161,177,230,.17);
}
#sa-contact-footer .sa-footer-identity {
  display:flex;align-items:center;gap:17px;
}
#sa-contact-footer .sa-footer-identity .sa-footer-mark {
  flex:none;width:48px;height:48px;fill:currentColor;color:#dfe6ff;
  filter:drop-shadow(0 0 12px rgba(77,116,255,.22));
}
#sa-contact-footer .sa-footer-brand {
  color:#f7f8ff !important;
  font:600 clamp(19px,2vw,24px)/1.12 'SP Clash Display',sans-serif !important;
  letter-spacing:.012em;
}
#sa-contact-footer .sa-footer-position {
  margin:7px 0 0;color:var(--sf-soft);
  font:450 12px/1.65 'SP Manrope',sans-serif;
}
#sa-contact-footer .sa-footer-link-group {display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
#sa-contact-footer .sa-footer-group-title {
  margin:0 0 9px;color:#8e9cbd;
  font:700 10px/1.4 'SP Manrope',sans-serif;
  letter-spacing:.20em;text-transform:uppercase;
}
#sa-contact-footer .sa-footer-link-group a {
  display:inline-flex;align-items:center;gap:7px;
  color:#d9e0f3 !important;
  font:500 13px/1.6 'SP Manrope',sans-serif;
}
#sa-contact-footer .sa-footer-link-group a:hover,
#sa-contact-footer .sa-footer-legal-links a:hover {color:#9bb0ff !important;}
#sa-contact-footer .sa-footer-bottom {
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:12px 28px;padding:24px 0 0;
  color:#939eba;font:450 11px/1.6 'SP Manrope',sans-serif;
}
#sa-contact-footer .sa-footer-bottom span {color:inherit !important;font:inherit !important;}
#sa-contact-footer .sa-footer-legal-links {display:flex;align-items:center;gap:19px;flex-wrap:wrap;}
#sa-contact-footer .sa-footer-legal-links a {color:#b5bfd6 !important;font:500 11px/1.55 'SP Manrope',sans-serif;}
#sa-contact-footer .sa-footer-legal-links[hidden] {display:none;}
#sa-contact-footer .sa-footer-recaptcha {
  max-width:800px;margin:22px 0 0;
  color:#707c9a;font:450 10px/1.7 'SP Manrope',sans-serif;
}
#sa-contact-footer .sa-footer-recaptcha a {color:#99aadc !important;text-decoration:underline;text-underline-offset:2px;}
#sa-contact-footer .sa-footer-recaptcha a:hover {color:#d9e3ff !important;}
@media (max-width:950px) {
  #sa-contact-footer .sa-footer-grid {grid-template-columns:1.2fr 1fr 1fr;gap:22px;}
}
@media (max-width:650px) {
  #sa-contact-footer {padding:32px 20px 24px;}
  #sa-contact-footer .sa-footer-grid {grid-template-columns:1fr 1fr;gap:30px 18px;}
  #sa-contact-footer .sa-footer-identity {grid-column:1/-1;}
  #sa-contact-footer .sa-footer-bottom {align-items:flex-start;flex-direction:column;gap:14px;}
}
@media (prefers-reduced-motion:reduce) {
  #sa-contact-footer a {transition:none !important;transform:none !important;}
}


#sa-contact-view-toggle{
  --sa-contact-brush-fill:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20240%2068%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M18%2010C44%206%2072%208%20100%207L139%208C170%206%20195%208%20218%2010L226%2014%20220%2018%20233%2023%20226%2028%20236%2033%20227%2039%20233%2044%20220%2051%20226%2056%20207%2059%20176%2061C146%2059%20116%2063%2087%2061L49%2062C35%2061%2026%2059%2018%2055L22%2050%208%2045%2014%2039%207%2034%2014%2029%2012%2023%2022%2019%2016%2014Z%22%2F%3E%3C%2Fsvg%3E");
  --sa-contact-brush-edge:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20240%2068%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22edge%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23aabfff%22%20stop-opacity%3D%220.8%22%2F%3E%3Cstop%20offset%3D%220.5%22%20stop-color%3D%22%234268e7%22%20stop-opacity%3D%220.9%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23b3c9ff%22%20stop-opacity%3D%220.7%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22url%28%23edge%29%22%20stroke-width%3D%221.35%22%20stroke-linejoin%3D%22round%22%20d%3D%22M18%2010C44%206%2072%208%20100%207L139%208C170%206%20195%208%20218%2010L226%2014%20220%2018%20233%2023%20226%2028%20236%2033%20227%2039%20233%2044%20220%2051%20226%2056%20207%2059%20176%2061C146%2059%20116%2063%2087%2061L49%2062C35%2061%2026%2059%2018%2055L22%2050%208%2045%2014%2039%207%2034%2014%2029%2012%2023%2022%2019%2016%2014Z%22%2F%3E%3C%2Fsvg%3E");
  position:fixed;top:17px;right:36px;z-index:2147482900;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  box-sizing:border-box;width:auto;min-width:0;height:52px;min-height:0;
  margin:0;padding:0 21px;border:0;border-radius:0;
  -webkit-appearance:none;appearance:none;
  isolation:isolate;overflow:visible;
  color:rgba(245,247,255,.96);background:transparent;
  font:650 13px/1.2 'SP Manrope',sans-serif;
  letter-spacing:.012em;white-space:nowrap;cursor:pointer;
  transition:color .24s ease;
}
/* Un seul contour fin et un seul fond : géométrie identique, sans inset. */
#sa-contact-view-toggle::before,
#sa-contact-view-toggle::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  transition:opacity .25s ease;
}
/* Liseré léger visible au repos. */
#sa-contact-view-toggle::before{
  z-index:1;
  background:var(--sa-contact-brush-edge) center/100% 100% no-repeat;
  opacity:.65;
}
/* Même silhouette, sans décalage : le verre se fond derrière le liseré. */
#sa-contact-view-toggle::after{
  z-index:0;opacity:0;
  background:
    radial-gradient(ellipse at 48% 40%,rgba(91,125,222,.11),transparent 76%),
    linear-gradient(110deg,rgba(30,44,88,.23),rgba(10,18,43,.34));
  -webkit-backdrop-filter:blur(15px) saturate(150%);
  backdrop-filter:blur(15px) saturate(150%);
  -webkit-mask:var(--sa-contact-brush-fill) center/100% 100% no-repeat;
  mask:var(--sa-contact-brush-fill) center/100% 100% no-repeat;
}
#sa-contact-view-toggle .sa-contact-view-icon,
#sa-contact-view-toggle .sa-contact-view-label{position:relative;z-index:2}
#sa-contact-view-toggle .sa-contact-view-icon{
  display:inline-block;flex:none;color:inherit;
  font:normal 16px/1 Arial,sans-serif;
}
#sa-contact-view-toggle:is(:hover,:focus-visible)::before{opacity:.42}
#sa-contact-view-toggle:is(:hover,:focus-visible)::after{opacity:1}
#sa-contact-view-toggle:focus-visible{
  outline:2px solid rgba(201,199,255,.9);outline-offset:3px;
}
@media (max-width:1100px){
  #sa-contact-view-toggle{right:18px;}
}


/* ============================================================
   CONTACT EN — THE SECRET LETTER
   Canvas 2D de particules + enveloppe WebGL Three.js à la demande.
   Trois états : scène, lettre ouverte, liste classique.
   ============================================================ */
#sa-contact-experience {
  position:relative;isolation:isolate;width:100%;background:#050711;
}
/* Voile mystique ponctuel : aucun canvas supplémentaire, aucun réseau. */
#sa-contact-experience::before {
  content:"";position:fixed;inset:0;z-index:5;pointer-events:none;
  opacity:0;background:radial-gradient(ellipse 43vw 44vh at 50% 51%,
    rgba(137,161,255,.33) 0%,rgba(69,91,198,.21) 31%,
    rgba(12,17,44,.20) 65%,transparent 92%);
}
#sa-contact-experience.is-transitioning::before {
  animation:sa-correspondence-veil 1.25s cubic-bezier(.25,.7,.27,1) both;
}
@keyframes sa-correspondence-veil {
  0% {opacity:0;transform:scale(.80);}
  36% {opacity:.92;transform:scale(1.02);}
  57% {opacity:.65;transform:scale(1.07);}
  100% {opacity:0;transform:scale(1.16);}
}
#sa-contact-experience #contact-astral-canvas {
  position:absolute;inset:0;display:block;width:100%;height:100%;
  z-index:1;pointer-events:none;
}
#sa-contact-experience .sa-contact-scene[hidden],
#sa-contact-experience #contact-section[hidden] {display:none !important;}
#sa-contact-experience:not(.sa-contact-ready) #sa-contact-view-toggle {display:none !important;}

/* Scène : fond plat et particules sur le canvas commun. */
#sa-contact-experience .sa-contact-scene {
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;width:100%;box-sizing:border-box;min-height:100svh;
  padding:92px 24px 54px;overflow:hidden;text-align:center;
  background:#040814 url("https://www.stevenangoff.com/wp-content/uploads/2026/10/nichiiro-2TMCI35diS4-unsplash.webp") center 64% / cover no-repeat;
  color:#f0f3ff;font-family:'SP Manrope',sans-serif;
}
#sa-contact-experience .sa-contact-scene::before,
#sa-contact-experience .sa-contact-scene::after {
  content:"";position:absolute;inset:0;pointer-events:none;
}
#sa-contact-experience .sa-contact-scene::before {
  z-index:0;
  background:
    linear-gradient(180deg, rgba(3,7,17,.56) 0%, rgba(3,7,17,.68) 22%, rgba(2,5,14,.83) 54%, rgba(1,3,9,.92) 100%),
    radial-gradient(ellipse 760px 330px at 50% 77%, rgba(57,88,204,.20) 0%, rgba(57,88,204,.08) 36%, rgba(0,0,0,0) 67%),
    radial-gradient(circle at 50% 52%, rgba(117,153,255,.10) 0%, rgba(117,153,255,0) 38%);
}
#sa-contact-experience .sa-contact-scene::after {
  z-index:1;
  background:
    radial-gradient(ellipse 520px 130px at 50% 74%, rgba(96,128,255,.22) 0%, rgba(46,73,178,.12) 35%, rgba(0,0,0,0) 73%),
    radial-gradient(ellipse 900px 260px at 50% 100%, rgba(8,13,28,.06) 0%, rgba(5,8,18,.55) 50%, rgba(2,4,10,.9) 100%);
  mix-blend-mode:screen;
  opacity:.92;
}
#sa-contact-experience .sa-contact-scene *,
#sa-contact-experience .sa-contact-scene *::before,
#sa-contact-experience .sa-contact-scene *::after {box-sizing:border-box;}
#sa-contact-experience .sa-correspondence-intro {
  position:relative;z-index:2;max-width:900px;margin:0 auto;
  transition:opacity .35s ease,transform .35s ease;
}
#sa-contact-experience .sa-correspondence-intro h1 {
  margin:0 auto 33px;color:#f6f5ff;
  font:400 clamp(31px,3vw,45px)/1.09 'SP Kawoszeh',serif;
  letter-spacing:-.028em;text-shadow:0 4px 40px rgba(190,199,255,.14);
}
#sa-contact-experience .sa-correspondence-intro>p:last-child {
  margin:0 auto;color:rgba(220,229,250,.75);
  font:400 clamp(13px,1.12vw,16px)/1.72 'SP Manrope',sans-serif;
}
/* La scène réserve une place réelle à l'objet ET à sa légende.
   La légende n'est plus superposée au bord inférieur du canvas. */
#sa-contact-experience .sa-correspondence-art {
  position:relative;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;
  width:min(100%,770px);height:auto;min-height:485px;margin:30px auto 0;
  gap:10px;perspective:1150px;
  transition:opacity .75s ease,transform .8s cubic-bezier(.21,.75,.24,1);
}
#sa-contact-experience .sa-correspondence-plinth {
  position:absolute;left:50%;bottom:38px;transform:translateX(-50%);
  width:min(74vw,560px);height:86px;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse,rgba(88,121,255,.28),rgba(31,49,101,.09) 44%,transparent 72%);
  filter:blur(1px);
}
#sa-contact-experience .sa-correspondence-floor {
  position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);
  width:min(84vw,700px);height:180px;border-radius:50%;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse at center, rgba(142,171,255,.18) 0%, rgba(78,108,222,.10) 22%, rgba(18,30,74,.07) 42%, rgba(0,0,0,0) 68%),
    radial-gradient(ellipse at center, rgba(3,10,27,.55) 0%, rgba(3,10,27,.20) 48%, rgba(0,0,0,0) 78%);
  opacity:.95;
}
/* L'objet reste un vrai mesh Three.js ; seul son espace écran est ajusté. */
#sa-contact-experience .sa-correspondence-envelope {
  position:relative;flex:none;isolation:isolate;
  width:min(100%,770px);height:450px;margin:0 auto;
  /* Décale uniquement le VOLUME : le sceau suit, la légende ne bouge pas. */
  transform:translateY(-22px);
}
#sa-contact-experience #sa-contact-envelope-3d {
  position:absolute;inset:0;display:block;width:100%;height:100%;z-index:1;
  pointer-events:none;touch-action:pan-y;
}
/* Bouton transparent sur le sceau VRAIMENT modélisé ; SVG de secours seulement. */
#sa-contact-experience #sa-contact-open-letter {
  position:absolute;z-index:5;top:68%;left:50%;transform:translate(-50%,-50%);
  display:grid;place-items:center;width:88px;height:88px;padding:0;margin:0;
  border:1px solid rgba(169,189,255,.15);border-radius:50%;
  color:#e8edff;background:radial-gradient(circle at 33% 25%,#7d90d6,#3b4f9a 60%,#1a2b5a);
  box-shadow:inset 0 2px 5px rgba(236,240,255,.25),0 12px 30px rgba(0,0,0,.25);
  cursor:pointer;transition:box-shadow .2s ease,filter .2s ease,opacity .24s ease;
}
#sa-contact-experience #sa-contact-open-letter svg {
  display:block;width:28px;height:28px;fill:currentColor;pointer-events:none;
}
#sa-contact-experience .sa-correspondence-envelope.is-3d-ready #sa-contact-open-letter {
  background:transparent;border-color:transparent;box-shadow:none;
}
#sa-contact-experience .sa-correspondence-envelope.is-3d-ready #sa-contact-open-letter svg {
  opacity:0;
}
#sa-contact-experience #sa-contact-open-letter:is(:hover,:focus-visible) {
  filter:brightness(1.12);box-shadow:0 0 0 3px rgba(113,140,253,.10);
}
#sa-contact-experience #sa-contact-open-letter:focus-visible {
  outline:2px solid #b4c4ff;outline-offset:4px;
}
#sa-contact-experience .sa-correspondence-invite {
  position:relative;top:auto;left:auto;right:auto;margin:4px 0 0;
  font:500 12px/1.5 'SP Manrope',sans-serif;letter-spacing:.055em;
  color:rgba(194,206,238,.70);
}
#sa-contact-experience .sa-contact-direct-link {
  position:relative;z-index:3;display:inline-flex;align-items:center;
  justify-content:center;gap:9px;min-height:39px;
  padding:8px 17px;margin:28px auto 0;
  border:1px solid rgba(143,169,242,.54);
  border-radius:999px;
  background:rgba(12,19,45,.28);
  color:#d2dcff;
  font:500 12.5px/1.5 'SP Manrope',sans-serif;
  letter-spacing:.012em;
  box-shadow:inset 0 1px 0 rgba(218,227,255,.04);
  cursor:pointer;
  transition:color .2s ease,background-color .2s ease,
    border-color .2s ease,box-shadow .2s ease,opacity .3s ease;
}
#sa-contact-experience .sa-contact-direct-link:hover {
  color:#fff;border-color:rgba(179,194,255,.75);
  background:rgba(43,65,133,.23);
  box-shadow:0 0 18px rgba(56,85,232,.16),
    inset 0 1px 0 rgba(224,232,255,.07);
}
#sa-contact-experience .sa-contact-direct-link:focus-visible {outline:2px solid #bccaff;outline-offset:3px;}
#sa-contact-experience .sa-contact-direct-link-arrow {width:16px;height:auto;display:block;flex:none;transition:transform .22s ease;}
#sa-contact-experience .sa-contact-direct-link:hover .sa-contact-direct-link-arrow {transform:translateX(3px);}
/* Clic : paillettes éphémères sans rendu à chaque frame. */
#sa-contact-experience .sa-correspondence-sparkles {
  position:absolute;inset:0;z-index:12;overflow:visible;pointer-events:none;
}
#sa-contact-experience .sa-mystic-spark {
  position:absolute;left:50%;top:68%;width:var(--spark-size,4px);height:var(--spark-size,4px);
  border-radius:50%;background:#edf4ff;
  box-shadow:0 0 8px 2px rgba(109,152,255,.8),0 0 17px rgba(163,189,255,.47);
  opacity:0;animation:sa-spark-burst var(--spark-time,.95s) ease-out both;
}
#sa-contact-experience .sa-mystic-spark::before,
#sa-contact-experience .sa-mystic-spark::after {
  content:"";position:absolute;left:50%;top:50%;border-radius:2px;
  background:rgba(237,246,255,.92);box-shadow:0 0 7px rgba(145,181,255,.7);
  transform:translate(-50%,-50%);
}
#sa-contact-experience .sa-mystic-spark::before {width:1px;height:calc(var(--spark-size,4px)*3);}
#sa-contact-experience .sa-mystic-spark::after {width:calc(var(--spark-size,4px)*3);height:1px;}
@keyframes sa-spark-burst {
  0% {opacity:0;transform:translate(-50%,-50%) scale(.2);}
  15% {opacity:1;}
  66% {opacity:.92;}
  100% {opacity:0;transform:translate(calc(-50% + var(--spark-x,0px)),calc(-50% + var(--spark-y,-90px))) scale(.1);}
}
#sa-contact-experience .sa-contact-scene.is-unsealing .sa-correspondence-intro {
  opacity:0;transform:translateY(-24px);
  transition:opacity .3s ease .67s,transform .36s ease .64s;
}
#sa-contact-experience .sa-contact-scene.is-unsealing .sa-correspondence-art {
  opacity:0;transform:translateY(-24px) scale(.97);
  transition-duration:.34s;transition-delay:.75s;
}
#sa-contact-experience .sa-contact-scene.is-unsealing #sa-contact-open-letter {opacity:0;pointer-events:none;}

/* Lettre ouverte : même scène, formulaire WPForms unique en avant-plan.
   Aucun setView('list') n'est exécuté par l'ouverture du sceau. */
#sa-contact-experience[data-view="letter"] .sa-contact-scene {
  position:absolute;inset:0;height:100%;min-height:100%;pointer-events:none;
}
#sa-contact-experience[data-view="letter"] .sa-correspondence-intro {opacity:0;transform:translateY(-12px);}
#sa-contact-experience[data-view="letter"] .sa-correspondence-art {opacity:0;}
#sa-contact-experience[data-view="letter"] .sa-contact-direct-link {opacity:0;pointer-events:none;}
#sa-contact-experience[data-view="letter"] #contact-section {
  z-index:4;min-height:100svh;padding:115px 20px 74px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(5,8,18,.41);overflow:visible;
  animation:sa-letter-form-reveal .65s cubic-bezier(.17,.77,.25,1) both;
}
#sa-contact-experience[data-view="letter"] #contact-section .contact-lunar-glow,
#sa-contact-experience[data-view="letter"] #contact-section .contact-bg-overlay {display:none;}
#sa-contact-experience[data-view="letter"] #contact-section .contact-glass-card {
  background:linear-gradient(150deg,rgba(22,27,44,.91),rgba(8,11,22,.96));
  animation:sa-form-border-glimmer .8s ease-out both;
}
@keyframes sa-form-border-glimmer {
  0%,20% {border-color:rgba(139,168,255,.57);box-shadow:0 0 48px rgba(67,105,241,.16);}
  100% {border-color:rgba(255,255,255,.15);box-shadow:0 30px 68px rgba(0,0,0,.66),inset 0 1px 1px rgba(255,255,255,.2);}
}
@keyframes sa-letter-form-reveal {
  0% {opacity:0;transform:translateY(48px) scale(.985);filter:blur(5px);}
  48% {opacity:.64;filter:blur(1.2px);}
  100% {opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
}
#sa-contact-experience .sa-contact-form-return {display:none;}
#sa-contact-experience[data-view="letter"] .sa-contact-form-return {
  position:relative;z-index:5;display:flex;justify-content:flex-end;
  width:min(100%,880px);margin:0 0 14px;
}
#sa-contact-experience .sa-contact-form-return button {
  display:inline-flex;align-items:center;gap:9px;
  padding:8px 6px;border:0;background:transparent;color:#b9c8ff;
  -webkit-appearance:none;appearance:none;border-radius:0;box-shadow:none;
  font:600 13px/1.6 'SP Manrope',sans-serif;cursor:pointer;
}
#sa-contact-experience .sa-contact-form-return button:hover {color:#fff;}
#sa-contact-experience .sa-contact-form-return button:focus-visible {outline:2px solid #c5d2ff;outline-offset:3px;}
#sa-contact-experience .sa-close-letter-arrow {
  width:15px;height:auto;display:block;flex:none;
  transform:scaleX(-1);transition:transform .22s ease;
}
#sa-contact-experience .sa-contact-form-return button:hover .sa-close-letter-arrow {
  transform:translateX(-3px) scaleX(-1);
}
#sa-contact-experience[data-view="list"] #contact-section {z-index:3;}

/* Confirmation WPForms : effet existant, uniquement après confirmation. */
#sa-contact-experience .sa-contact-message-flight {
  position:fixed;top:55%;left:50%;z-index:2147482800;pointer-events:none;
  font:400 40px/1 'SP Kawoszeh',serif;color:#e8eeff;
  opacity:0;transform:translate(-50%,0) scale(.65);
  text-shadow:0 0 30px rgba(105,149,255,.6);
}
#sa-contact-experience .sa-contact-message-flight.is-flying {animation:sa-contact-flight 1.5s ease-out both;}
@keyframes sa-contact-flight {
  0%{opacity:0;transform:translate(-50%,30px) scale(.65);}
  20%{opacity:1;}80%{opacity:.9;}
  100%{opacity:0;transform:translate(70px,-210px) scale(1.3);}
}
@media (max-width:900px), (pointer:coarse) {
  #sa-contact-experience .sa-contact-scene {display:none !important;}
  #sa-contact-experience #contact-section[hidden] {display:flex !important;}
  #sa-contact-experience #sa-contact-view-toggle {display:none !important;}
}
@media (max-width:600px) {
  #sa-contact-experience .sa-correspondence-envelope {height:270px;transform:translateY(-15px);}
  #sa-contact-experience .sa-correspondence-art {width:min(100%,460px);}
  #sa-contact-experience .sa-correspondence-intro h1 {font-size:35px;}
}
@media (prefers-reduced-motion:reduce) {
  #sa-contact-experience #sa-contact-open-letter {transition:none !important;}
  #sa-contact-experience .sa-mystic-spark {animation:none !important;}
  #sa-contact-experience.is-transitioning::before {animation:none !important;opacity:0 !important;}
  #sa-contact-experience[data-view="letter"] #contact-section,
  #sa-contact-experience[data-view="letter"] #contact-section .contact-glass-card {animation:none !important;}
  #sa-contact-experience .sa-contact-message-flight.is-flying {animation:none !important;}
}

/* CONTACT — corrections de la mise en page uniquement (desktop).
   Ne modifie ni les états JS ni les éléments internes du formulaire. */
@media (min-width:901px) and (pointer:fine) {
  #sa-contact-experience[data-view="scene"] #contact-section {display:none !important;}
}
body:has(#sa-contact-experience) #content-wrap,
body:has(#sa-contact-experience) #main #content-wrap {
  padding-top:0 !important;padding-bottom:0 !important;
}
body:has(#sa-contact-experience) .elementor-widget-html:has(#sa-contact-experience),
body:has(#sa-contact-experience) .elementor-widget-html:has(#sa-contact-experience) > .elementor-widget-container,
body:has(#sa-contact-experience) .elementor-element:has(> .elementor-widget-container > #sa-contact-experience) {
  margin-top:0 !important;margin-bottom:0 !important;
  padding-top:0 !important;padding-bottom:0 !important;
}
