/* Contact page enquiry form. Spec: CONTACT-FORM-SPEC.md.
   Without JavaScript every step is visible as one page. Rules that hide steps depend only on .is-stepped,
   which js/enquiry-form.js adds after it has finished setting up. */

.enquiry-section{--bad:#ff9080;padding:110px 0 130px;border-bottom:1px solid var(--border)}
html[data-octa-theme=day] .enquiry-section{--bad:#a8412f}
.enquiry-shell{width:min(760px,var(--shell))}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}

/* Intro */
.enquiry-intro{margin-bottom:64px}
.enquiry-intro h2{max-width:560px;margin:24px 0;font-family:var(--font-serif);font-size:clamp(2rem,3.5vw,3.5rem);font-weight:300;line-height:1.06;letter-spacing:-.015em;font-optical-sizing:auto}
.enquiry-intro>p:not(.section-index){max-width:560px;margin:0;color:var(--muted);font-size:.98rem;line-height:1.72}

/* Steps */
.form-step{min-width:0;margin:0;padding:0;border:0}
.form-step+.form-step{margin-top:64px;padding-top:44px;border-top:1px solid var(--border)}
.step-question{display:block;float:left;width:100%;margin:0 0 28px;padding:0;color:var(--cream);font-family:var(--font-serif);font-size:clamp(1.7rem,2.8vw,2.5rem);font-weight:300;line-height:1.14;letter-spacing:-.01em;text-wrap:balance;font-optical-sizing:auto}
.step-question~*{clear:both}
.step-question:focus{outline:0}
.step-question label{cursor:inherit}
.branch-intro{margin:-10px 0 28px;color:var(--muted);line-height:1.7}
.field-hint{margin:-12px 0 24px;color:var(--muted);font-size:.9rem;line-height:1.6}

.branch-group{min-width:0;margin:40px 0 0;padding:0;border:0}
.group-label{display:block;float:left;width:100%;margin:0 0 14px;padding:0;color:var(--muted);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}
.group-label~*{clear:both}

/* Choice cards: real radio and checkbox inputs, styled */
.choice-list{display:grid;gap:10px}
.choice-list-pair{grid-template-columns:1fr 1fr}
.choice{position:relative;display:block;cursor:pointer}
.choice input{position:absolute;top:0;left:0;width:1px;height:1px;margin:0;opacity:0}
.choice-body{display:grid;grid-template-columns:12px 1fr;column-gap:16px;align-items:start;height:100%;padding:17px 20px;border:1px solid var(--border);background:var(--panel);transition:border-color .16s ease,background .16s ease}
.choice-body::before{content:"";grid-row:1/3;width:8px;height:8px;margin:6px 2px 0;border:1px solid var(--border-strong);transform:rotate(45deg);transition:background .16s ease,border-color .16s ease}
.choice-check .choice-body::before{transform:none}
.choice strong{color:var(--cream);font-size:.96rem;font-weight:500;line-height:1.45}
.choice small{grid-column:2;margin-top:3px;color:var(--muted);font-size:.8rem;line-height:1.5}
.choice:hover .choice-body{border-color:var(--border-strong)}
.choice input:checked+.choice-body{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--panel))}
.choice input:checked+.choice-body::before{border-color:var(--accent);background:var(--accent)}
.choice input:focus-visible+.choice-body{outline:2px solid var(--spi);outline-offset:3px}
.choice input[aria-invalid=true]+.choice-body{border-color:color-mix(in srgb,var(--bad) 55%,var(--border))}

/* Text fields */
.field{min-width:0}
.field-details{margin-top:40px}
.form-privacy{max-width:620px;margin:32px 0 0;color:var(--muted);font-size:.74rem;line-height:1.65}.form-privacy a{text-decoration:underline;text-underline-offset:3px}
.field-label{display:block;margin-bottom:11px;color:var(--muted);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}
.field-label b{color:var(--spi);font-weight:400}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.enquiry-form input:not([type=radio]):not([type=checkbox]),.enquiry-form textarea{width:100%;border:1px solid var(--border);border-radius:0;padding:14px 15px;background:var(--panel);color:var(--cream);font:400 .92rem/1.5 var(--font-sans);outline:0;transition:border-color .16s ease,background .16s ease}
.enquiry-form input:not([type=radio]):not([type=checkbox]){height:51px}
.enquiry-form textarea{min-height:170px;resize:vertical}
.enquiry-form input:hover,.enquiry-form textarea:hover{border-color:var(--border-strong)}
.enquiry-form input:focus,.enquiry-form textarea:focus{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 3%,var(--panel))}
.enquiry-form input:focus-visible,.enquiry-form textarea:focus-visible{outline:2px solid var(--spi);outline-offset:3px}
.enquiry-form [aria-invalid=true]:not([type=radio]):not([type=checkbox]){border-color:var(--bad)}
.field-error{margin:10px 0 0;color:var(--bad);font-size:.82rem;line-height:1.5}
.group-label+.field-error{margin:0 0 12px}

/* Submit, navigation, status */
.form-submit{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:40px}
.form-submit p{margin:0;color:var(--faint);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase}
.form-submit p span{color:var(--spi)}
.enquiry-form .button{min-width:178px;cursor:pointer}
.enquiry-form .button:disabled{opacity:.6;cursor:progress;transform:none}
.form-error{margin:24px 0 0;color:var(--bad);font-size:.9rem;line-height:1.6}
.form-error:empty{display:none}
.form-progress{display:flex;align-items:center;gap:18px;margin-bottom:36px}
.form-progress[hidden]{display:none}
.form-progress-label{margin:0;color:var(--muted);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.form-progress-track{flex:1;height:2px;background:var(--border)}
.form-progress-track span{display:block;width:0;height:100%;background:var(--accent);transition:width .3s ease}
.form-nav{display:flex;align-items:center;gap:24px;margin-top:44px;padding-top:28px;border-top:1px solid var(--border)}
.form-nav[hidden]{display:none}
.form-nav [hidden]{display:none}
.form-nav .button{margin-left:auto}
.form-back{background:none;border-width:0 0 1px;border-style:solid;border-color:var(--border-strong);color:var(--cream);cursor:pointer}

/* Stepped mode */
.is-stepped .form-step{display:none}
.is-stepped .form-step.is-current{display:block;animation:step-in .35s ease both}
.is-stepped .form-step+.form-step{margin-top:0;padding-top:0;border-top:0}
.is-stepped .static-only,.is-stepped .form-submit-static,.is-stepped .branch-group.is-inactive{display:none}
.is-stepped [data-branch=seed-services]>.group-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.is-stepped [data-branch=seed-services]{margin-top:0}
.is-stepped .branch-intro+[data-branch=seed-services]{margin-top:0}
@keyframes step-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Success */
.form-success{padding-top:8px}
.form-success:focus{outline:0}
.form-success h3{max-width:560px;margin:22px 0 18px;font-family:var(--font-serif);font-size:clamp(1.9rem,3vw,2.8rem);font-weight:300;line-height:1.1;letter-spacing:-.01em;font-optical-sizing:auto}
.form-success p:not(.section-index){max-width:560px;margin:0 0 10px;color:var(--muted);line-height:1.7}

@media(max-width:720px){
  .enquiry-section{padding:82px 0 95px}
  .enquiry-intro{margin-bottom:48px}
  .field-grid,.choice-list-pair{grid-template-columns:1fr}
  .field-grid{gap:24px}
  .form-submit{align-items:stretch;flex-direction:column-reverse}
  .form-submit .button{width:100%}
  .form-nav{gap:18px}
  .form-nav .button{min-width:0;flex:1}
}
@media(prefers-reduced-motion:reduce){
  .is-stepped .form-step.is-current{animation:none}
  .form-progress-track span{transition:none}
}
