/* Local interaction layer. Source layout and typography remain in index.html. */
html { scroll-behavior: smooth; scroll-padding-top: 85px; }
body { margin: 0; }
.Footer_logoImg__TUVMX { width: 150px !important; height: auto !important; object-fit: contain; }
.Nav_logoImg__o4Ik0 { width: 128px !important; height: auto !important; max-height: 42px; object-fit: contain; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid #60a7cf !important; outline-offset: 4px; }
[id] { scroll-margin-top: 85px; }
.ns-review-card { flex: 0 0 300px; width: 300px; min-width: 0; padding: 4px 0; }
.ns-review-card small, .ns-review-card strong { display: block; margin: 6px 0; }
.ns-review-card small { color: #777d82; font-size: 11px; }
.ns-review-card strong { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ns-review-card p { font-size: 13px; margin: 5px 0; }
.ns-stars { color: white; background: #60b493; padding: 1px 3px; font-size: 16px; line-height: 1; white-space: nowrap; display: inline-block; letter-spacing: 1px; }
.ns-rating { display: flex; align-items: center; gap: 10px; min-height: 28px; color: inherit; text-decoration: none; font-size: 14px; }
.ns-capture-map { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ns-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.ns-place-field { position: relative; }
.ns-place-suggestions { position: absolute; top: 100%; left: 0; right: 0; z-index: 20; margin-top: 5px; border: 1px solid #ffffff26; border-radius: 6px; background: #151921; box-shadow: 0 8px 24px #0006; overflow: hidden; font: 300 13px/1.4 Inter,sans-serif; color: white; }
.ns-place-option { display: flex; align-items: center; gap: 10px; padding: 11px 12px; min-height: 40px; cursor: pointer; }
.ns-place-option svg { width: 14px; height: 17px; flex-shrink: 0; fill: #ef5350; }
.ns-place-option:hover,.ns-place-option[aria-selected="true"] { background: #ffffff14; }
.ns-place-attribution { display: block; padding: 5px 12px; border-top: 1px solid #ffffff15; color: white; text-align: right; font: 400 12px/1.4 Inter,sans-serif; white-space: nowrap; }
.ns-place-attribution a { color: inherit; }
.ns-search-status { padding: 12px; margin: 0; }
.ns-sky-continue { display:flex;align-items:center;justify-content:center;gap:8px;height:45px;width:100%;background:#3db364;color:#fff;border:0;border-radius:50px;font:500 13px Inter,sans-serif;letter-spacing:.08em;text-decoration:none;cursor:pointer;transition:background .2s;text-transform:uppercase; }
.ns-sky-continue:hover { background:#34a65a; }
.ns-sky-continue[hidden],.ns-place-suggestions[hidden],.ns-calendar[hidden],.ns-search-status[hidden] { display:none; }
.ns-calendar { position:absolute;top:100%;left:0;z-index:21;width:240px;padding:5px;background:#fff;color:#333;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 3px #0003;font:14px/1.5 Inter,sans-serif; }
.ns-calendar-controls { display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;font-weight:600; }
.ns-calendar-controls button { width:32px;height:32px;border:0;background:transparent;color:inherit;cursor:pointer;font-size:16px; }
.ns-calendar-grid { display:grid;grid-template-columns:repeat(7,1fr); }
.ns-calendar-grid button,.ns-weekday { display:grid;place-items:center;height:32px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit; }
.ns-calendar-grid button { cursor:pointer; }
.ns-calendar button:hover { background:#f0f0f0; }
.ns-calendar .ns-selected-day { color:white;background:#3273dc; }
.ns-calendar .ns-other-month { color:#b5b5b5; }
.ns-calendar .ns-weekday { font-size:12px;font-weight:600; }
.ns-calendar button:disabled { color:#ccc;cursor:default; }
.ns-rail-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; border: 0; width: 42px; height: 52px; border-radius: 50%; background: #0a0e1540; color: white; cursor: pointer; font: 36px/1 Inter, sans-serif; display: grid; place-items: center; transition: background .2s; }
.ns-rail-arrow:hover { background: #0a0e1580; }
.ns-rail-arrow--left { left: 12px; }
.ns-rail-arrow--right { right: 12px; }
.ns-rail-arrow[hidden] { display: none; }
.ns-pause { position: absolute; bottom: 18px; right: 18px; z-index: 9; width: 32px; height: 32px; border-radius: 50%; border: 1px solid #ffffff88; background: #0a0e1555; color: white; cursor: pointer; font-size: 12px; }
.ns-dialog { border: 0; border-radius: 12px; padding: 40px 28px 30px; width: min(460px, calc(100% - 32px)); max-height: calc(100dvh - 40px); color: #121824; background: #fff; overflow: auto; box-shadow: 0 20px 80px #0005; }
.ns-dialog::backdrop { background: #070c14b8; backdrop-filter: blur(4px); }
.ns-dialog h2 { font: 400 28px/1.2 "Playfair Display", Georgia, serif; margin: 4px 0 18px; }
.ns-dialog p { font: 400 15px/1.6 Inter, sans-serif; margin: 12px 0; }
.ns-dialog-close { position: absolute; right: 12px; top: 8px; width: 36px; height: 36px; font: 28px/1 Inter, sans-serif; border: 0; background: transparent; cursor: pointer; color: inherit; }
.ns-dialog .ns-dialog-confirm { display: block; width: 100%; margin-top: 22px; padding: 14px 24px; border-radius: 30px; background: #121824; color: white; border: 0; cursor: pointer; font: 400 14px Inter, sans-serif; }
.ns-dialog--video { padding: 0; width: min(560px, calc(100% - 28px)); overflow: hidden; background: #0a0e15; }
.ns-dialog--video video { display: block; width: 100%; max-height: calc(100dvh - 44px); }
.ns-dialog--video .ns-dialog-close { z-index: 5; color: white; background: #0008; border-radius: 50%; }
.ns-menu { position: fixed; inset: 0 auto 0 0; width: min(420px, 100%); height: 100dvh; max-height: 100dvh; max-width: 100%; margin: 0; border: 0; padding: 100px 36px 40px; background: #0a0e15; color: white; }
.ns-menu::backdrop { background: #0008; }
.ns-menu a { display: block; padding: 13px 0; font: 400 24px/1.3 "Playfair Display", Georgia, serif; color: white; text-decoration: none; border-bottom: 1px solid #ffffff20; }
.ns-menu .ns-dialog-close { right: 24px; top: 22px; }
.ns-menu small { display: block; margin-top: 32px; color: #b2b6bd; font-size: 13px; }
.ns-form-feedback { display: block; color: #f4f5f7; font-size: 13px; line-height: 1.5; margin-top: 10px; }
.ns-help { position: fixed; bottom: 18px; left: 20px; z-index: 90; width: 48px; height: 48px; border: 0; border-radius: 50%; color: white; background: #0a0e15; box-shadow: 0 2px 20px #0002; cursor: pointer; font-size: 21px; display: grid; place-items: center; }
.ns-help svg { width: 25px; height: 25px; }
.ns-map-note { color: #bac0ca; font-size: 12px; text-align: center; margin: 0; }
[data-deframer-component="HowItWorksCarousel"] > div:first-child > div > div { min-width: 0; }
[data-deframer-component="WhatIsAnimation"] { max-width: 100%; }
[data-deframer-component="WhatIsAnimation"] > img { opacity: 0; }
[data-deframer-component="WhatIsAnimation"] > img.ns-show { opacity: 1 !important; z-index: 2; }
@media (min-width: 900px) {
  [data-deframer-component="HowItWorksCarousel"] > div:first-child > div { transform: none !important; gap: 24px; justify-content: center; }
  [data-deframer-component="HowItWorksCarousel"] > div:first-child > div > div { flex: 0 1 300px !important; }
  [data-deframer-component="HowItWorksCarousel"] [role="tablist"] { display: none !important; }
}
@media (max-width: 600px) {
  .ns-rail-arrow { width: 34px; height: 44px; font-size: 30px; }
  .ns-review-card { width: 260px; flex-basis: 260px; }
  .ns-rating { font-size: 12px; gap: 8px; }
  .ns-dialog h2 { font-size: 25px; }
  .ns-help { width: 42px; height: 42px; left: 16px; bottom: 16px; }
  [data-deframer-component="HowItWorksCarousel"] [data-framer-name^="Card "] { max-width: calc(100vw - 40px); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Mobile hardening; source sections and media remain unchanged. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
:root{--ns-safe-top:env(safe-area-inset-top,0px);--ns-safe-right:env(safe-area-inset-right,0px);--ns-safe-bottom:env(safe-area-inset-bottom,0px);--ns-safe-left:env(safe-area-inset-left,0px)}
.ns-menu{box-sizing:border-box;height:100vh;height:100dvh;padding-top:calc(90px + var(--ns-safe-top));padding-bottom:calc(24px + var(--ns-safe-bottom));padding-left:max(24px,var(--ns-safe-left));padding-right:max(24px,var(--ns-safe-right));overflow-y:auto;overscroll-behavior:contain}
.ns-menu .ns-dialog-close{top:calc(16px + var(--ns-safe-top));right:max(16px,var(--ns-safe-right))}
.ns-dialog{box-sizing:border-box;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overscroll-behavior:contain;padding-bottom:max(24px,var(--ns-safe-bottom))}
.ns-dialog-close{width:44px;height:44px}.ns-dialog h2,.ns-dialog p{overflow-wrap:anywhere}
.ns-dialog--video{padding:0}
.ns-help{left:max(16px,var(--ns-safe-left));bottom:calc(16px + var(--ns-safe-bottom));width:44px;height:44px}
.ns-place-suggestions,.ns-calendar{box-sizing:border-box;position:fixed;right:auto;bottom:auto;margin:0;overflow-y:auto;overscroll-behavior:contain;z-index:100}
.ns-place-option{min-height:44px;font-size:1rem;line-height:1.4}.ns-place-option span{min-width:0;overflow-wrap:anywhere}
.ns-calendar{width:336px;max-width:calc(100vw - 16px);padding:6px;font-size:1rem}
.ns-calendar-controls button{width:44px;height:44px}.ns-calendar-grid button{min-width:0;height:44px;font-size:1rem}.ns-calendar .ns-weekday{font-size:.75rem}
.ns-pause{width:44px;height:44px}
[data-deframer-mount="WhatIsAnimation"]{max-width:100%;height:auto!important;aspect-ratio:1}
[data-deframer-component="WhatIsAnimation"]{width:100%!important;height:auto!important;aspect-ratio:1}
[class*="PromiseSignUp_signupInput"]{min-width:0}
#creer input,#creer select,[class*="PromiseSignUp_signupInput"]{font-size:16px!important;min-height:44px;box-sizing:border-box}
@media(max-width:1023px){
  [data-deframer-component="Nav"]{padding-top:var(--ns-safe-top)!important;padding-left:var(--ns-safe-left)!important;padding-right:var(--ns-safe-right)!important}
  button[aria-label="Ouvrir le menu"]{min-width:44px;min-height:44px}
  .ns-sky-content{padding-left:max(16px,var(--ns-safe-left))!important;padding-right:max(16px,var(--ns-safe-right))!important}
  .ns-sky-form{padding-inline:0!important;width:100%;min-width:0}
  .ns-date-row{display:grid!important;grid-template-columns:44px minmax(0,1fr) 82px;gap:6px!important}
  .ns-date-row>div{min-width:0}.ns-date-row select{padding-left:8px!important;padding-right:24px!important;background-position:right 8px center!important}
  #creer .ns-day-field input{padding-inline:6px!important}
  .ns-sky-continue{height:auto;min-height:48px;padding:12px 16px;box-sizing:border-box;font-size:.875rem}
  [data-framer-name="Mobile Video"] .ns-pause{top:calc(90px + var(--ns-safe-top));bottom:auto;right:max(16px,var(--ns-safe-right))}
  [data-deframer-component="HowItWorksCarousel"] [role="tab"]{width:44px!important;height:44px!important;border:0!important;border-radius:0!important;background:transparent!important;position:relative}
  [data-deframer-component="HowItWorksCarousel"] [role="tab"]::after{content:"";position:absolute;inset:18px;border-radius:50%;background:#d4d5d8}
  [data-deframer-component="HowItWorksCarousel"] [role="tab"][aria-selected="true"]::after{background:#121824}
  [class*="Quotes_dots__"]{gap:0!important;bottom:-7px!important}
  [class*="Quotes_dot__"]{position:relative;width:44px!important;height:44px!important;border:0!important;background:transparent!important;padding:0!important}
  [class*="Quotes_dot__"]::after{content:"";position:absolute;inset:17px;border-radius:50%;background:#fff;opacity:.4}
  [class*="Quotes_dotActive"]::after{opacity:1}
  button[aria-label="Citation précédente"],button[aria-label="Citation suivante"]{min-width:44px;min-height:44px}
}
@media(max-width:400px){
  [class*="PromiseSignUp_signupForm__"]{flex-direction:column!important;gap:8px!important;height:auto!important}
  [class*="PromiseSignUp_signupFormWrap"]{overflow:visible!important}
  [class*="PromiseSignUp_signupInput"],[class*="PromiseSignUp_signupButton"]{width:100%;height:auto!important;min-height:48px;box-sizing:border-box;flex:none!important}
}
