/* V16 : champs de formulaire. Le libellé devient le champ : son texte et la saisie vivent dans le même bloc. */
:root{--field-tint:rgba(92,74,62,.065);--field-tint-hover:rgba(92,74,62,.1);--field-focus:#a08069;--field-label:#6f6057;--field-placeholder:#a39284;--field-radius:14px;--field-solid:#fffdfa}

.contact .contact-form label:not(.checkbox-label):not(.contact-trap),
.booking-field,
.cart-request-form label:not(.cart-consent):not(.contact-trap):not([for]),
.cart-phone-field{display:block;position:relative;margin:0 0 14px;padding:12px 16px 8px;border:1px solid transparent;border-radius:var(--field-radius);background:var(--field-tint);color:var(--field-label);font-size:11px;font-weight:500;line-height:1.5;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;cursor:text}
.contact .contact-form label:not(.checkbox-label):not(.contact-trap):hover,
.booking-field:hover,
.cart-request-form label:not(.cart-consent):not(.contact-trap):not([for]):hover,
.cart-phone-field:hover{background:var(--field-tint-hover)}
.contact .contact-form label:not(.checkbox-label):not(.contact-trap):focus-within,
.booking-field:focus-within,
.cart-request-form label:not(.cart-consent):not(.contact-trap):not([for]):focus-within,
.cart-phone-field:focus-within{background:var(--field-solid);border-color:var(--field-focus);box-shadow:0 0 0 3px rgba(160,128,105,.16),0 14px 30px -20px rgba(60,52,47,.5)}

.contact .contact-form input:not([type=checkbox]),
.contact .contact-form select,
.contact .contact-form textarea,
.booking-field input:not([type=file]),
.booking-field select,
.booking-field textarea,
.cart-request-form input:not([type=checkbox]),
.cart-request-form textarea,
.cart-request-form .cart-phone input:not([type=checkbox]){display:block;width:100%;height:auto;min-height:30px;margin:0;padding:3px 0 5px;border:0;border-radius:0;outline:0;background:transparent;box-shadow:none;color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:400;line-height:1.45;letter-spacing:0}
.contact .contact-form input:focus-visible,
.contact .contact-form select:focus-visible,
.contact .contact-form textarea:focus-visible,
.booking-field input:focus-visible,
.booking-field select:focus-visible,
.booking-field textarea:focus-visible,
.cart-request-form input:not([type=checkbox]):focus-visible,
.cart-request-form textarea:focus-visible{outline:0}
.contact .contact-form textarea,
.booking-field textarea,
.cart-request-form textarea{min-height:84px;height:auto;resize:vertical}
.contact .contact-form input::placeholder,
.contact .contact-form textarea::placeholder,
.booking-field input::placeholder,
.booking-field textarea::placeholder{color:var(--field-placeholder);opacity:1;font-size:14px;letter-spacing:0}
.contact .contact-form select,
.booking-field select{-webkit-appearance:none;appearance:none;padding-right:24px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%236f6057' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.5 4.5 3.5 3.5 3.5-3.5'/%3E%3C/svg%3E") no-repeat right 2px center;cursor:pointer}
.booking-field input[readonly]{color:var(--field-label)}
.booking-field input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.contact .contact-form input:-webkit-autofill,
.booking-field input:-webkit-autofill,
.cart-request-form input:-webkit-autofill{-webkit-text-fill-color:var(--ink);transition:background-color 9999s}

.booking-fields,.cart-contact-grid,.contact .contact-form .form-row{column-gap:14px}

.booking-field input[type=file]{width:100%;margin:4px 0;padding:0;border:0;background:none;color:var(--field-label);font-size:12px;line-height:1.6}
.booking-field input[type=file]::file-selector-button{margin-right:12px;padding:8px 16px;border:0;border-radius:999px;background:var(--green);color:#f6f2ec;font:inherit;cursor:pointer}

.contact-form .checkbox-label input,
.cart-consent input,
.booking-extra input{-webkit-appearance:none;appearance:none;flex:none;width:18px;height:18px;margin:2px 0 0;border:1px solid #b9a899;border-radius:6px;background:var(--field-solid) center/11px no-repeat;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.contact-form .checkbox-label input:checked,
.cart-consent input:checked,
.booking-extra input:checked{border-color:var(--green);background-color:var(--green);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fffdfa' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.5 6.5 2.5 2.5 4.5-5.5'/%3E%3C/svg%3E")}
.contact-form .checkbox-label input:focus-visible,
.cart-consent input:focus-visible,
.booking-extra input:focus-visible{outline:2px solid var(--field-focus);outline-offset:2px}

.booking-extra,.booking-mode{border:1px solid transparent;border-radius:var(--field-radius);background:var(--field-tint);box-shadow:none;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.booking-extra:hover,.booking-mode:hover{background:var(--field-tint-hover)}
.booking-extra:has(input:checked),.booking-mode:has(input:checked){border-color:var(--field-focus);background:var(--field-solid);box-shadow:0 0 0 3px rgba(160,128,105,.16)}

.cart-request-form{border:1px solid rgba(92,74,62,.08);border-radius:22px;background:#fbf8f3;box-shadow:0 34px 60px -48px rgba(60,52,47,.55)}
.cart-quantity-control{border:0;border-radius:999px;background:var(--field-tint)}

.cart-request-form .cart-phone-field label{display:block;margin:0}
.cart-phone{align-items:center;gap:0;margin:0}
.cart-phone-code{min-height:30px;padding-right:17px;border:0;font-size:15px}
.cart-phone-code::after{right:6px}
.cart-phone-code:focus-within{outline:0}
.cart-request-form .cart-phone input:not([type=checkbox]){flex:1;width:auto;min-width:0;margin-left:2px;padding-left:12px;border-left:1px solid rgba(92,74,62,.16)}

.city-suggestions{top:calc(100% + 6px);margin:0;padding:6px;border:0;border-radius:var(--field-radius);background:var(--field-solid);box-shadow:0 0 0 1px rgba(92,74,62,.08),0 22px 44px -18px rgba(60,52,47,.45)}
.city-suggestions li{border-radius:9px}

@media(max-width:900px){
  .contact .contact-form input:not([type=checkbox]),.contact .contact-form select,.contact .contact-form textarea,
  .booking-field input:not([type=file]),.booking-field select,.booking-field textarea,
  .cart-request-form input:not([type=checkbox]),.cart-request-form textarea,
  .cart-request-form .cart-phone input:not([type=checkbox]){font-size:16px}
}

.booking-date-wrap{position:relative}
.booking-date-clear{position:absolute;top:50%;right:48px;margin-top:-7px;padding:4px 6px;border:0;background:none;color:var(--field-label);font:500 11px/1.4 var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.booking-date-clear:hover{color:var(--ink)}
.booking-date-wrap.is-empty label:not(:focus-within) input::-webkit-datetime-edit{opacity:0}
.booking-date-wrap.is-empty label:not(:focus-within) input::-webkit-date-and-time-value{opacity:0}
.booking-date-wrap.is-empty label:not(:focus-within)::after{content:"Aucune date choisie";position:absolute;left:17px;bottom:15px;color:var(--field-placeholder);font-size:14px;font-weight:400;pointer-events:none}
#booking-city-help{display:block;margin:4px 0 6px;color:#8a4b2f;font-size:12px;font-weight:400;line-height:1.6}
#booking-city-help[hidden]{display:none}
