/* 13.3.11 guided enquiry. Builds on the existing .ff-guide card (journeys.css). */
.ff9-site .ff-gq [hidden]{display:none!important}
.ff9-site .ff-gq{scroll-margin-top:96px}
.ff9-site .ff-gq .ff-gq__title{font-size:27px;line-height:1.08;letter-spacing:-.04em;margin:0 0 8px;color:#0b1820}
.ff9-site .ff-gq .ff-guide__intro{margin-bottom:16px}
.ff9-site .ff-gq__form{margin:0}
.ff9-site .ff-gq__progress{font-size:12px;font-weight:700;color:#006b74;margin:0;letter-spacing:.02em}
.ff9-site .ff-gq__step{border:0;margin:0 0 18px;padding:0;min-width:0}
.ff9-site .ff-gq__step legend{font-size:16px;font-weight:760;line-height:1.3;color:#0b1820;padding:0;margin:0 0 12px;letter-spacing:-.01em}
.ff9-site .ff-gq__step legend:focus{outline:none}
.ff9-site .ff-gq__step legend:focus-visible{outline:3px solid #006b74;outline-offset:4px}
.ff9-site .ff-gq__question{font-size:13px;color:#52626b;margin:0 0 8px}
.ff9-site .ff-gq__group+.ff-gq__group{margin-top:14px}
.ff9-site .ff-gq__options{display:grid;gap:8px}
.ff9-site .ff-gq__options--compact{grid-template-columns:1fr 1fr}
.ff9-site .ff-gq__option{position:relative;display:flex;align-items:center;min-height:48px;padding:11px 40px 11px 14px;border:1px solid #cfd8db;border-radius:12px;background:#fff;color:#0b1820;font-size:14px;font-weight:650;line-height:1.35;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.ff9-site .ff-gq__option input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.ff9-site .ff-gq__option::after{content:'';position:absolute;right:14px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid #9fb0b6;border-radius:50%;box-sizing:border-box;background:#fff}
.ff9-site .ff-gq__option:hover{border-color:#ff6a2b}
.ff9-site .ff-gq__option:has(input:checked){border-color:#ff6a2b;box-shadow:inset 0 0 0 1px #ff6a2b;background:#fff8f4}
.ff9-site .ff-gq__option:has(input:checked)::after{border:5px solid #ff6a2b}
.ff9-site .ff-gq__option:has(input:focus-visible){outline:3px solid #006b74;outline-offset:2px}
.ff9-site .ff-gq__option:has(input:disabled){opacity:.5;cursor:default}
.ff9-site .ff-gq__next{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:12px;padding:0 22px;border:1px solid #0b1820;border-radius:12px;background:#0b1820;color:#fff;font:inherit;font-size:14px;font-weight:720;cursor:pointer}
.ff9-site .ff-gq__next:disabled{opacity:.35;cursor:default}
.ff9-site .ff-gq__skip,.ff9-site .ff-gq__back,.ff9-site .ff-gq__change{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:transparent;color:#006b74;font:inherit;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.ff9-site .ff-gq__skip{display:flex;margin-top:6px}
.ff9-site .ff-gq__recap{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;padding:10px 12px;margin:0 0 12px;border-radius:12px;background:#eef3f4}
.ff9-site .ff-gq__answers{margin:0;font-size:13px;font-weight:650;line-height:1.45;color:#0b1820;flex:1 1 200px}
.ff9-site .ff-gq__change{min-height:32px}
.ff9-site .ff-gq__starts p{margin:0 0 14px;padding-left:12px;border-left:3px solid #ff6a2b;font-size:13px;line-height:1.55;color:#33444c}
.ff9-site .ff-gq__fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ff9-site .ff-gq__fields label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#0b1820;min-width:0}
.ff9-site .ff-gq__fields label.wide{grid-column:1/-1}
.ff9-site .ff-gq__fields small{font-weight:500;color:#52626b}
.ff9-site .ff-gq__fields input,.ff9-site .ff-gq__fields textarea{box-sizing:border-box;width:100%;min-height:48px;padding:11px 13px;border:1px solid #b9c6ca;border-radius:12px;background:#fff;color:#0b1820;font:inherit;font-size:16px;font-weight:500}
.ff9-site .ff-gq__fields textarea{min-height:84px;resize:vertical}
.ff9-site .ff-gq__fields input:focus,.ff9-site .ff-gq__fields textarea:focus{outline:3px solid #006b74;outline-offset:1px;border-color:#006b74}
.ff9-site .ff-gq__send{width:100%;justify-content:space-between;margin-top:16px}
.ff9-site .ff-gq .form-note{font-size:12px;margin:10px 0 0;color:#52626b}
.ff9-site .ff-gq .form-error{margin:0 0 14px}
.ff9-site .ff-gq__done h2{font-size:25px;line-height:1.15;margin:0 0 10px;color:#0b1820}
.ff9-site .ff-gq__done p{font-size:14px;line-height:1.6;color:#33444c;margin:0 0 10px}
.ff9-site .ff-gq__ref{font-weight:700;color:#0b1820}
/* Without JavaScript the steps simply follow each other. */
html:not(.ff-gq-wait) .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__step{padding-top:14px;border-top:1px solid #dce3e5}
.ff9-site .ff-gq:not(.is-enhanced) .ff-gq__starts,.ff9-site .ff-gq:not(.is-enhanced) .ff-gq__recap{display:none}
/* On slow/no-JS connections keep a short, usable form: service, timing, and
   contact details/optional note. The conditional second step requires JS and is
   otherwise five unrelated radio groups, which overwhelmed the page. */
html:not(.ff-gq-wait) .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__step[data-step="now"]{display:none}
html:not(.ff-gq-wait) .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__step[data-step="details"]{display:block}
/* Contact page: the guide is the main form. */
.ff9-site .ff-gq-section{max-width:760px}
.ff9-site .ff-gq--contact{box-shadow:0 10px 32px #0b18200f}
@media(max-width:760px){
 .ff9-site .ff-gq .ff-gq__title{font-size:24px}
 .ff9-site .ff-gq__fields{grid-template-columns:1fr}
 .ff9-site .ff-gq__options--compact{grid-template-columns:1fr 1fr}
 .ff9-site .ff-gq__option{font-size:15px}
}
@media(max-width:360px){.ff9-site .ff-gq__options--compact{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.ff9-site .ff-gq__option{transition:none}}

/* 13.3.12: no jumping. Steps share one reserved height; the progress row and Back never move. */
/* 13.3.15: later steps are hidden from first paint while the script loads (html.ff-gq-wait), so the hero never jumps.
   If the script has not started within 5 seconds the class is removed and the full form shows. */
.ff9-site .ff-gq.is-enhanced .ff-gq__step.is-later{display:none}
/* While waiting, every step shares one grid cell and only the first is visible, so the card already has the height
   the script will reserve (the tallest step). The script removes ff-gq-wait once it has taken over. */
.ff-gq-wait .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__stage{display:grid}
.ff-gq-wait .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__stage>.ff-gq__step{grid-area:1/1;min-width:0}
.ff-gq-wait .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__step.is-later{visibility:hidden}
.ff-gq-wait .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__bar{display:flex;visibility:hidden}
.ff-gq-wait .ff9-site .ff-gq:not(.is-enhanced) .ff-gq__group+.ff-gq__group{display:none}
.ff9-site .ff-gq__bar{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin:0 0 6px;border-top:1px solid #dce3e5}
.ff9-site .ff-gq:not(.is-enhanced) .ff-gq__bar{display:none}
.ff9-site .ff-gq__bar .ff-gq__back{margin:0}
.ff9-site .ff-gq__back.is-hidden{visibility:hidden}
.ff9-site .ff-gq__stage{position:relative}
/* 13.3.17: no outer margin on steps, so the first-paint placeholder (grid) and the reserved height (block) are identical. */
.ff9-site .ff-gq__stage>.ff-gq__step{margin-bottom:0}
.ff9-site .ff-gq__stage{margin-bottom:18px}
.ff9-site .ff-gq__step{transition:opacity .18s ease}
.ff9-site .ff-gq__step.is-entering{opacity:0}
.ff9-site .ff-gq__more{grid-column:1/-1;border:0;margin:0}
.ff9-site .ff-gq__more summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-size:13px;font-weight:700;color:#006b74;text-decoration:underline;text-underline-offset:4px;list-style:none}
.ff9-site .ff-gq__more summary::-webkit-details-marker{display:none}
.ff9-site .ff-gq__more summary small{font-weight:500;color:#52626b;text-decoration:none;margin-left:4px}
.ff9-site .ff-gq__more[open] summary{margin-bottom:8px}
.ff9-site .ff-gq__more.is-required summary{display:none}
.ff9-site .ff-gq__more-fields{display:grid;gap:12px}
.ff9-site .ff-gq__send{margin-top:14px}
@media(max-width:760px){
 .ff9-site .ff-gq{padding:18px 16px 16px}
 .ff9-site .ff-gq .ff-guide__intro{font-size:13px;margin-bottom:10px}
 .ff9-site .ff-gq__option{min-height:52px}
 .ff9-site .ff-gq__step legend{font-size:17px;margin-bottom:10px}
}
@media(prefers-reduced-motion:reduce){.ff9-site .ff-gq__step{transition:none}.ff9-site .ff-gq__step.is-entering{opacity:1}}
