.contact-form-section{--_radius:clamp(12px,2vw,24px);--_gap:clamp(12px,3vw,28px);--_pad:clamp(16px,4vw,48px);--_shadow:0 6px 24px rgba(3,62,63,.15);--_focus:0 0 0 clamp(2px,.3vw,4px) var(--color-primary-light),0 0 0 clamp(6px,.8vw,8px) color-mix(in srgb,var(--color-primary-light) 18%,transparent);--_field-h:clamp(44px,6.5vw,56px);--_ring:inset 0 0 0 1px color-mix(in srgb,var(--color-primary-dark) 14%,transparent);--_accent:var(--color-accent-main);--_grad:linear-gradient(135deg,var(--color-secondary-light) 0%,#ffffff 40%,#f7fbfb 100%);background:var(--_grad);position:relative;isolation:isolate}.contact-form-section::before{content:"";position:absolute;inset:0;background-image:url('/media/web/vagues-geometriques-minimalistes-vert-sarcelle-points-rose-subtils-fon_d6c598f3.jpg');background-size:cover;background-repeat:no-repeat;opacity:.18;z-index:-1}.contact-form-container{max-width:68rem;margin-inline:auto;padding:clamp(24px,6vw,80px)}.contact-form-header{margin-block:clamp(4px,1vw,10px) clamp(8px,2vw,16px)}.contact-form-context{font-family:var(--font-body_font);font-size:clamp(.9rem,1.2vw,1.05rem);line-height:var(--font-font_sizes-line_height_body);color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-primary-main) 6%,#fff);border-radius:clamp(12px,2vw,24px);display:inline-block;padding:clamp(6px,1.2vw,10px) clamp(10px,2vw,16px);box-shadow:0 1px 0 rgba(0,0,0,.03)}.contact-form{background:var(--color-secondary-light);border-radius:var(--_radius);box-shadow:var(--_shadow);padding:var(--_pad);border:1px solid color-mix(in srgb,var(--color-primary-main) 12%,#e9f1f1)}.contact-form-fieldset{border:0;margin:0;padding:0;display:block}.contact-form-legend{font-family:var(--font-heading_font);font-weight:700;font-size:clamp(1.25rem,2.6vw,2rem);line-height:var(--font-font_sizes-line_height_heading);color:var(--color-text-primary);letter-spacing:.2px;margin-bottom:clamp(6px,1.6vw,12px)}.contact-form-helper{font-family:var(--font-body_font);font-size:clamp(.85rem,1.2vw,.95rem);color:color-mix(in srgb,var(--color-text-secondary) 72%,#666);margin-bottom:clamp(12px,2vw,20px)}.contact-form-grid{display:grid;gap:var(--_gap);grid-template-columns:1fr}.contact-form-group{display:flex;flex-direction:column;gap:clamp(6px,1.2vw,10px)}.contact-form-group--full{grid-column:1/-1}.contact-form-group label{font-family:var(--font-body_font);font-weight:600;font-size:clamp(.9rem,1.3vw,1rem);color:var(--color-text-secondary)}.contact-form-group input,.contact-form-group textarea{appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:auto;min-height:var(--_field-h);padding:clamp(10px,2.4vw,16px) clamp(12px,2.6vw,18px);border-radius:clamp(12px,2vw,18px);border:0;background:linear-gradient(180deg,#ffffff 0%,#fbfdfd 100%);color:var(--color-text-primary);font-family:var(--font-body_font);font-size:clamp(.95rem,1.4vw,1.05rem);line-height:1.4;box-shadow:var(--_ring),0 1px 0 rgba(0,0,0,.02);transition:transform .2s ease,box-shadow .25s ease,background-color .25s ease}.contact-form-group textarea{resize:vertical}.contact-form-group input::placeholder,.contact-form-group textarea::placeholder{color:color-mix(in srgb,var(--color-text-secondary) 40%,#aaa)}.contact-form-group input:focus,.contact-form-group textarea:focus{outline:none;box-shadow:var(--_focus),0 10px 24px rgba(5,89,91,.08);background:#fff;transform:translateY(-1px)}.contact-form-group input:user-invalid,.contact-form-group textarea:user-invalid{box-shadow:inset 0 0 0 1px var(--color-error),0 0 0 0 transparent}.contact-form-group input:user-valid,.contact-form-group textarea:user-valid{box-shadow:inset 0 0 0 1px var(--color-success),0 0 0 0 transparent}.contact-form-feedback{min-height:clamp(18px,2vw,24px);font-size:clamp(.85rem,1.2vw,.95rem);font-family:var(--font-body_font);color:var(--color-text-secondary);margin-top:clamp(4px,1vw,8px)}.contact-form-actions{display:flex;gap:clamp(8px,2vw,16px);justify-content:flex-end;align-items:center;margin-top:clamp(8px,2.4vw,20px)}.contact-form-submit{--_btn-h:clamp(44px,6.5vw,56px);--_btn-r:clamp(14px,2vw,22px);height:var(--_btn-h);padding:0 clamp(18px,4vw,28px);border-radius:var(--_btn-r);border:0;color:var(--color-primary-contrast);background:linear-gradient(135deg,var(--color-primary-main),var(--color-primary-dark));font-family:var(--font-heading_font);font-weight:700;font-size:clamp(.95rem,1.5vw,1.1rem);letter-spacing:.3px;cursor:pointer;box-shadow:0 8px 20px rgba(3,62,63,.25),inset 0 -2px 0 rgba(0,0,0,.1);transition:transform .18s ease,box-shadow .25s ease,background .25s ease}.contact-form-submit:hover{background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary-main));box-shadow:0 12px 28px rgba(6,115,118,.28),inset 0 -2px 0 rgba(0,0,0,.08);transform:translateY(-2px)}.contact-form-submit:active{transform:translateY(0);box-shadow:0 6px 14px rgba(3,62,63,.25)}.contact-form-submit:focus-visible{outline:none;box-shadow:0 0 0 clamp(3px,.5vw,6px) color-mix(in srgb,var(--color-accent-main) 36%,transparent),0 10px 24px rgba(250,99,112,.2)}.contact-form-submit::after{content:"";display:inline-block;width:clamp(6px,1vw,10px);height:clamp(6px,1vw,10px);margin-left:clamp(8px,1.6vw,12px);border-radius:50%;background:var(--_accent);box-shadow:0 0 0 0 rgba(250,99,112,.5);animation:pulseDot 2s ease-in-out infinite}@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(250,99,112,.5)}70%{box-shadow:0 0 0 10px rgba(250,99,112,0)}100%{box-shadow:0 0 0 0 rgba(250,99,112,0)}}.contact-form .contact-form-group input:focus + .focus-ring,.contact-form .contact-form-group textarea:focus + .focus-ring{opacity:1;transform:scale(1)}.contact-form-group:has(input:user-invalid),.contact-form-group:has(textarea:user-invalid){--_accent:var(--color-error)}.contact-form-group:has(input:user-valid),.contact-form-group:has(textarea:user-valid){--_accent:var(--color-success)}.contact-form-group label::after{content:"";display:inline-block;width:clamp(6px,1.2vw,8px);height:clamp(6px,1.2vw,8px);margin-left:clamp(6px,1vw,8px);border-radius:50%;background:color-mix(in srgb,var(--_accent) 32%,transparent);transition:background-color .3s ease}.contact-form-group:focus-within label{color:var(--color-primary-dark)}@media (min-width:480px){.contact-form-grid{grid-template-columns:1fr 1fr}.contact-form-group--full{grid-column:1/-1}}@media (min-width:768px){.contact-form-container{max-width:56rem}.contact-form-actions{justify-content:flex-end}}@media (min-width:1024px){.contact-form-container{max-width:64rem}.contact-form-grid{grid-template-columns:repeat(12,1fr)}.contact-form-group{grid-column:span 6}.contact-form-group--full{grid-column:1/-1}}