/* Shared form primitives and explicit layout variants. Preserve mobile DOM order. */
.gz-form{display:grid;gap:20px;margin:0;color:var(--color-black)}
.gz-form p{margin:0}
.gz-form h2{font-size:29px;font-weight:600;margin:0}
.gz-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.gz-field,:is(.gz-cms-form, #contact-help.gz-cms-form) :is(.label-text,.label-email,.label-tel,label:has(>textarea)){display:block;font-size:14px;line-height:1.5}
.gz-field>span{color:var(--gz-muted);font-size:12px}
.gz-field input,.gz-field textarea,.gz-field select,:is(.gz-cms-form, #contact-help.gz-cms-form) :is(input[type=text],input[type=email],input[type=tel],textarea,select){display:block;margin-top:7px;min-height:48px;width:100%;padding:11px 14px;border:1px solid var(--gz-border);border-radius:var(--gz-field-radius);background:var(--color-white);color:var(--color-black);font-size:16px;line-height:1.5;box-shadow:none}
.gz-field textarea,:is(.gz-cms-form, #contact-help.gz-cms-form) textarea[name]{resize:vertical;min-height:112px}
.gz-field :is(input,textarea,select):focus,:is(.gz-cms-form, #contact-help.gz-cms-form) :is(input[type=text],input[type=email],input[type=tel],textarea,select):focus{outline:none;border-color:var(--gz-focus);box-shadow:0 0 0 1px var(--gz-focus)}
.gz-field :is(input,textarea)[aria-invalid=true],:is(.gz-cms-form, #contact-help.gz-cms-form) :is(input[type=text],input[type=email],input[type=tel],textarea,select)[aria-invalid=true]{border-color:var(--color-accent-dark)}
.gz-field :is(input,textarea)[aria-invalid=true]:focus,:is(.gz-cms-form, #contact-help.gz-cms-form) :is(input[type=text],input[type=email],input[type=tel],textarea,select)[aria-invalid=true]:focus{box-shadow:0 0 0 1px var(--color-accent-dark)}
.gz-error{color:var(--color-accent-dark);display:block;font-size:13px;margin-top:6px}
.gz-checkbox{display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:1.65}
.gz-checkbox input{appearance:auto;width:20px;height:20px;flex:none;accent-color:var(--color-black);margin:0}
.gz-checkbox>a,.gz-checkbox a,.gz-privacy a{text-underline-offset:3px}
.gz-form .gz-button{justify-self:start}
.gz-form fieldset{padding:0;margin:0;border:0;min-width:0}
.gz-form legend{font-size:14px;margin-bottom:9px}
.gz-segments{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--color-gray-light);border-radius:10px}
.gz-segments label{position:relative;display:block;cursor:pointer}
.gz-segments input{position:absolute;opacity:0;width:1px;height:1px}
.gz-segments span{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:7px;font-size:14px}
.gz-segments input:checked+span{background:var(--color-black);color:var(--color-white)}
.gz-segments input:focus-visible+span{outline:2px solid var(--gz-focus);outline-offset:3px}
.gz-privacy{font-size:12px;color:var(--gz-muted);line-height:1.6}
.gz-status{font-size:13px}
.gz-status:empty{display:none}
.gz-callback{font-size:13px;margin-top:16px}
.gz-callback summary{cursor:pointer;min-height:44px}
.gz-callback .gz-form-row{margin-top:12px}
@media(max-width:680px){
.gz-form-row{grid-template-columns:1fr}
.gz-form .gz-button{width:100%;justify-self:stretch}
}
.gz-inline-form{background:var(--color-white);padding:36px;border-radius:var(--gz-radius)}
@media(max-width:980px){
.gz-inline-form{padding:28px}
}
@media(max-width:680px){
.gz-inline-form{padding:24px}
}
.gz-inline-form{min-width:0;width:100%;grid-column:auto;grid-row:auto;box-shadow:none}
@media(max-width:360px){
.gz-inline-form{padding:20px}
}
.gz-consultation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px;border:1px solid var(--gz-card-border);border-radius:var(--gz-radius);padding:36px;background:var(--color-white);min-width:0;margin:0;box-shadow:none}
.gz-consultation-form>fieldset,.gz-consultation-form>p,.gz-consultation-form>.gz-field:has(textarea),.gz-consultation-form>.gz-button{grid-column:1/-1}
.gz-consultation-form .gz-field{font-size:13px;min-width:0}
.gz-consultation-form legend{font-size:14px;margin-bottom:12px}
.gz-consultation-form .gz-segments{border:1px solid var(--gz-card-border);background:transparent;padding:4px}
.gz-consultation-form .gz-segments span{font-size:13px;min-height:42px}
.gz-consultation-form .gz-segments input:checked+span{background:var(--color-black);color:var(--color-white)}
.gz-consultation-form .gz-field textarea{min-height:144px}
.gz-consultation-form .gz-field :is(input,textarea,select){font-size:16px;border-color:var(--color-black-25a)}
.gz-consultation-form .gz-field :is(input,textarea,select):focus{border-color:var(--gz-focus)}
.gz-consultation-form>.gz-button{background:var(--color-black);color:var(--color-white);justify-self:start;font-size:14px;min-height:48px;padding-inline:24px}
.gz-consultation-form>.gz-button:hover{background:var(--color-gray-superdark)}
.gz-consultation-form>.gz-privacy{font-size:11px;line-height:1.75}
.gz-consultation-form [data-phone]{min-width:0}
.gz-consultation-form .gz-callback{font-size:11px}
.gz-consultation-form .gz-callback .gz-form-row{grid-template-columns:1fr;gap:12px}
.gz-newsletter-form{gap:16px;min-width:0}
.gz-newsletter-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.gz-newsletter-form .gz-field{font-size:12px;min-width:0}
.gz-newsletter-entry .gz-button{min-height:48px;padding:12px 16px;border-radius:var(--gz-field-radius);gap:10px;font-size:12px}
.gz-newsletter-entry .gz-button svg{width:18px;height:18px}
.gz-newsletter-form .gz-checkbox{font-size:11px;line-height:1.7;color:var(--gz-muted)}
.gz-newsletter-name summary{display:flex;align-items:center;gap:5px;list-style:none;min-height:36px;font-size:11px;color:var(--gz-muted);cursor:pointer}
.gz-newsletter-name summary::-webkit-details-marker{display:none}
.gz-newsletter-name summary:before{content:'+';font-size:18px;width:14px;color:var(--gz-body)}
.gz-newsletter-name[open] summary:before{content:'−'}
.gz-newsletter-name .gz-field{padding-block:8px}
.gz-newsletter-form .gz-status{font-size:13px}
@media(max-width:1150px){
.gz-consultation-form{padding:28px;gap:22px 16px}
}
@media(max-width:980px){
.gz-consultation-form{grid-template-columns:1fr;padding:24px}
}
@media(max-width:680px){
.gz-consultation-form{padding:24px;gap:20px}
.gz-consultation-form>.gz-button{width:100%}
.gz-newsletter-entry{grid-template-columns:1fr}
.gz-newsletter-entry .gz-button{width:100%}
.gz-newsletter-name summary{min-height:44px}
}
@media(max-width:360px){
.gz-consultation-form{padding:20px}
}
/* Stacked form with optional callback calendar. */
.gz-form--stacked{padding:clamp(24px,3vw,40px);border:1px solid var(--gz-card-border);border-radius:var(--gz-radius);background:var(--color-white);gap:18px;min-width:0}
.gz-form--stacked h2,:is(.gz-cms-form, #contact-help.gz-cms-form) .title{font-size:clamp(23px,2vw,32px);font-weight:400;line-height:1.28;letter-spacing:-.03em}
.gz-form--stacked>p:not(.gz-privacy,.gz-status){font-size:14px;line-height:1.65}
.gz-form--stacked :is(input[type=text],input[type=email],input[type=tel],textarea){min-width:0}
.gz-form--stacked [hidden]{display:none!important}
.gz-callback-choice,.gz-form--stacked [data-callback-times] fieldset{margin-top:16px}
.gz-form--stacked .gz-choice-days,.gz-form--stacked .gz-choice-times{display:grid;gap:4px}
.gz-choice-days{grid-template-columns:repeat(7,minmax(0,1fr))}
.gz-choice-times{grid-template-columns:repeat(3,minmax(0,1fr))}
.gz-form--stacked :is(.gz-choice-days,.gz-choice-times) label{min-width:0;position:relative;cursor:pointer}
.gz-form--stacked :is(.gz-choice-days,.gz-choice-times) input{position:absolute;width:1px;height:1px;opacity:0}
.gz-form--stacked :is(.gz-choice-days,.gz-choice-times) span{display:grid;align-content:center;justify-content:center;text-align:center;border:1px solid var(--gz-card-border);border-radius:5px;min-height:44px;font-size:12px;line-height:1.4}
.gz-form--stacked :is(.gz-choice-days,.gz-choice-times) input:checked+span{background:var(--color-black);color:var(--color-white)}
.gz-form--stacked :is(.gz-choice-days,.gz-choice-times) input:focus-visible+span{outline:2px solid var(--gz-focus);outline-offset:2px}
.gz-form--stacked .gz-choice-days input:disabled+span{background:var(--color-gray-10a);color:var(--gz-muted);text-decoration:line-through}
.gz-form--stacked .gz-button{background:var(--color-black);color:var(--color-white);min-height:48px}
.gz-form--stacked .gz-button:disabled{background:var(--color-gray-light);color:var(--gz-muted);cursor:not-allowed}
@media(max-width:980px){
.gz-form--stacked{padding:24px}
}
@media(max-width:760px){
.gz-form--stacked{padding:22px;gap:16px}
.gz-form--stacked .gz-button{width:100%}
.gz-choice-times span{font-size:11px}
}
@media(max-width:480px){
.gz-form--stacked .gz-segments span{font-size:13px}
.gz-form--stacked .gz-choice-times span{font-size:11px}
.gz-choice-times{gap:2px}
}

/* Native choice controls keep keyboard focus on their visible label only. */
.gz-segments input:focus-visible,
.gz-form :is(.gz-choice-days,.gz-choice-times) input:focus-visible{outline:none}
/* Opt-in adapter for the unchanged CMS Scene markup, including #contact-help.
   Names, values, DOM order, hidden flags and submit handlers stay CMS-owned.
   This scope does not match the configurator or other legacy forms. */
.gz-form-fixture{max-width:600px;margin-inline:auto}

:is(.gz-cms-form, #contact-help.gz-cms-form){display:block;box-shadow:none}
:is(.gz-cms-form, #contact-help.gz-cms-form)>div{display:grid;gap:18px}
:is(.gz-cms-form, #contact-help.gz-cms-form) label{padding:0;margin:0;min-width:0;transition:none}
:is(.gz-cms-form, #contact-help.gz-cms-form) label:has(input[type=hidden]){display:none}
:is(.gz-cms-form, #contact-help.gz-cms-form) :is(.title,.desc){margin:0;text-align:left;max-width:none}
:is(.gz-cms-form, #contact-help.gz-cms-form) .desc{font-size:14px;font-weight:400;line-height:1.65}
:is(.gz-cms-form, #contact-help.gz-cms-form) :is(input[type=text],input[type=email],input[type=tel],textarea,select){margin-bottom:0;font-family:inherit;box-sizing:border-box}
:is(.gz-cms-form, #contact-help.gz-cms-form) div:has(>.label-tel){display:grid;gap:18px}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;margin:0;background:var(--color-gray-light);border-radius:10px}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects:has(input[name=calendar]){grid-template-columns:repeat(7,minmax(0,1fr))}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects:has(input[name=hours]){grid-template-columns:repeat(3,minmax(0,1fr))}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects:has(input[type=checkbox]){background:transparent;padding:0}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects label{display:block;position:relative;width:auto;min-height:44px;padding:10px 4px;text-align:center;border:0;border-radius:7px;background:transparent;color:var(--color-black);font-size:14px;line-height:24px;cursor:pointer}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects:has(input[type=checkbox]) label{font-size:12px;line-height:1.4;border:1px solid var(--gz-card-border);border-radius:5px}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects label:has(input:checked){background:var(--color-black);color:var(--color-white)}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects input{display:block;position:absolute;opacity:0;width:1px;min-width:1px;height:1px;min-height:1px;margin:0;padding:0;border:0;outline:none;box-shadow:none}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects .mark{display:none}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects label:has(input:focus-visible){outline:2px solid var(--gz-focus);outline-offset:2px}
:is(.gz-cms-form, #contact-help.gz-cms-form) .selects label:has(input:disabled){background:var(--color-gray-10a);color:var(--gz-muted);text-decoration:line-through;cursor:not-allowed}
:is(.gz-cms-form, #contact-help.gz-cms-form) label.button{display:block;width:fit-content;padding:0;background:transparent;border:0;border-radius:999px;opacity:1;box-shadow:none}
:is(.gz-cms-form, #contact-help.gz-cms-form) label.button::before,:is(.gz-cms-form, #contact-help.gz-cms-form) label.button::after{content:none}
:is(.gz-cms-form, #contact-help.gz-cms-form) label.button>button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;width:auto;padding:12px 24px;border:1px solid transparent;border-radius:999px;background:var(--color-black);color:var(--color-white);font:500 14px/1.4 Poppins,sans-serif;box-shadow:none;cursor:pointer}
:is(.gz-cms-form, #contact-help.gz-cms-form) label.button>button:hover:not(:disabled){background:var(--color-gray-superdark)}
:is(.gz-cms-form, #contact-help.gz-cms-form) label.button>button:disabled{background:var(--color-gray-light);color:var(--gz-muted);cursor:not-allowed}
:is(.gz-cms-form, #contact-help.gz-cms-form) .contact-form-status{font-size:13px;margin-top:18px}
@media(max-width:760px){
 :is(.gz-cms-form, #contact-help.gz-cms-form) .selects label{font-size:13px}
 :is(.gz-cms-form, #contact-help.gz-cms-form) .selects:has(input[name=hours]) label{font-size:11px}
 :is(.gz-cms-form, #contact-help.gz-cms-form) label.button,:is(.gz-cms-form, #contact-help.gz-cms-form) label.button>button{width:100%}
}
