.contact form{align-self:center;min-height:410px}
.contact .form-heading{font-size:19px;margin:0 0 28px}
.contact .form-progress{font-size:13px;color:#135c85;margin:0 0 24px;font-variant-numeric:tabular-nums}
.contact .question-step>label{display:block;font-size:clamp(26px,3vw,38px);font-weight:400;letter-spacing:-.03em;line-height:1.15;margin-bottom:12px}
.question-hint{color:#666;font-size:15px;line-height:1.5;margin-bottom:27px}
.contact .question-step input,.contact .question-step select,.contact .question-step textarea{width:100%;font-family:inherit;font-size:18px;padding:17px;margin-bottom:0;border-radius:3px}
.question-step[hidden],.question-review[hidden],[hidden]{display:none!important}
.question-controls{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:30px}.question-controls .button{margin:0 0 0 auto;min-width:145px}
.question-review h3{font-size:26px;margin-bottom:20px}.question-review>div{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #e2e5e7;padding:13px 0}.question-review p{font-size:16px;color:#252525;overflow-wrap:anywhere}.question-review p span{display:block;font-size:12px;color:#666;margin-bottom:4px}.question-review button{flex-shrink:0}.contact .text-link{color:#135c85;background:none;border:0;min-height:44px;font:inherit;text-decoration:underline;text-underline-offset:5px}
.contact .form-note{font-size:12px;line-height:1.6;margin-top:23px}.contact #form-status{font-size:14px;color:#135c85;line-height:1.5}
@media(max-width:760px){.contact{gap:48px}.contact form{min-height:360px}.contact .form-heading{font-size:17px}.contact .question-step>label{font-size:30px}.contact .question-step input,.contact .question-step select,.contact .question-step textarea{font-size:16px}.question-controls{margin-top:24px}}


/* One invitation. Open the existing guided form only when requested. */
.contact.section-pad{background:var(--reference-blue);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:46px;text-align:center;min-height:calc(100svh - var(--header));padding:100px 28px;border:0}
.contact .contact-copy{max-width:1040px}
.contact .contact-copy h2{font-size:clamp(44px,6.5vw,90px);font-weight:400;line-height:1.08;letter-spacing:-.045em;margin:0}
.contact .contact-copy h2 em{color:var(--reference-sky)}
.contact-panel{width:100%;max-width:580px;min-width:0}
.contact-invitation{display:flex;justify-content:center}
.contact-invitation .button{background:#fff;color:var(--reference-blue);min-height:72px;padding:23px 30px;gap:30px;font-size:21px;box-shadow:0 8px 30px #092f481c}
.contact-invitation .button:hover{background:var(--reference-sky);color:#0b3b56;box-shadow:0 12px 36px #092f4840}
.contact-panel form{background:#fff;color:var(--ink);text-align:left;padding:44px;margin:0;max-width:none;min-height:400px;border-radius:4px}
.contact-panel .form-heading{font-size:17px;margin-bottom:20px}
.contact-panel .question-step input,.contact-panel .question-step select,.contact-panel .question-step textarea{background:#f5f6f7;caret-color:var(--reference-blue)}
.contact-panel .question-controls .button{min-width:145px}
.contact-panel :focus-visible{outline-color:#fff;outline-offset:7px}
.contact-panel form :focus-visible{outline-color:var(--reference-blue);outline-offset:3px}
.contact.is-answering .contact-copy{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:760px){
 .contact.section-pad{padding:72px 22px;gap:36px}
 .contact .contact-copy h2{font-size:clamp(40px,10.5vw,66px);line-height:1.12}
 .contact-invitation .button{font-size:18px;min-height:64px;padding:20px 22px;gap:20px;width:100%;max-width:340px}
 .contact-panel form{padding:30px 24px;min-height:360px}
 .contact-panel .question-step>label{font-size:28px}
 .contact-panel .question-step input,.contact-panel .question-step select,.contact-panel .question-step textarea{padding:14px}
}

/* The invitation and form share one stable stage; opening never changes page height. */
.contact.contact-enhanced{position:relative;isolation:isolate;overflow-anchor:none}
.contact-enhanced .contact-panel{position:static;min-height:72px}
.contact-enhanced .contact-copy,.contact-enhanced .contact-invitation{transition:opacity .25s ease,visibility .25s,translate .45s cubic-bezier(.16,1,.3,1)}
.contact-enhanced.is-answering .contact-copy,.contact-enhanced.is-answering .contact-invitation{opacity:0;visibility:hidden;translate:0 -12px;pointer-events:none}
.contact-enhanced .contact-panel form{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:min(580px,calc(100% - 44px));max-height:calc(100% - 64px);overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 50px #082f4633;border-radius:10px;scrollbar-width:thin;scrollbar-color:#9db8c9 transparent}
.contact-enhanced .question-step{min-height:180px}.contact-enhanced .form-progress{display:flex;align-items:center;gap:12px}.contact-enhanced .form-progress:before{content:'';width:28px;height:2px;background:#135c85}.contact-enhanced .question-controls{border-top:1px solid #e2e5e7;padding-top:22px;margin-top:15px}
.contact-enhanced .form-heading:focus{outline:none}
@media(max-width:760px){.contact.contact-enhanced{min-height:max(660px,calc(100svh - var(--header)))}.contact-enhanced .contact-panel{min-height:64px}.contact-enhanced .contact-panel form{padding:30px 24px;max-height:calc(100% - 40px)}.contact-enhanced .question-step{min-height:178px}}
@media(prefers-reduced-motion:reduce){.contact-enhanced .contact-copy,.contact-enhanced .contact-invitation{transition:none;translate:none}}

#contact{scroll-margin-top:0}
.contact-enhanced .question-controls .button{width:auto;flex:0 0 auto;min-width:144px;min-height:52px;padding:16px 24px;font-size:16px}

html.contact-form-open,html.contact-form-open body{overflow-anchor:none}

/* Calm final invitation: one stable surface, no lift, wipe or scale. */
#contact #start-enquiry{border-radius:999px;min-height:72px;padding:20px 28px 20px 32px;gap:30px;font-weight:500;box-shadow:none;background:#fff;color:#135c85;transition:background-color .4s ease,color .4s ease;transform:none!important}
#contact #start-enquiry::before{display:none}
#contact #start-enquiry .ui-icon{width:22px;height:22px;transition:transform .4s cubic-bezier(.22,1,.36,1);transform:none}
@media(hover:hover) and (pointer:fine){#contact #start-enquiry:hover{background:#deeff8;color:#104e72;box-shadow:none}#contact #start-enquiry:hover .ui-icon{transform:translateX(4px)}}
#contact #start-enquiry:active{background:#c7e3f2;color:#104e72;transform:none!important}
#contact #start-enquiry:focus-visible{outline:2px solid #fff;outline-offset:7px}
@media(max-width:760px){#contact #start-enquiry{min-height:66px;padding:19px 24px;font-size:17px;gap:22px}}
@media(prefers-reduced-motion:reduce){#contact #start-enquiry,#contact #start-enquiry .ui-icon{transition:none}}

/* A single closing scene, with the brand signature inside its lower edge. */
#contact.contact{min-height:max(620px,calc(100svh - var(--header)));padding:96px 40px 192px;gap:44px;background:#104e70;overflow:hidden}
#contact .contact-copy{max-width:1000px}
#contact .contact-copy h2{font-size:clamp(44px,5.8vw,84px);line-height:1.12;letter-spacing:-.035em;text-wrap:balance;font-weight:400}
#contact .contact-copy h2 em{font-style:normal;color:#a9daf2}
#contact #start-enquiry{min-height:84px;padding:14px 16px 14px 32px;gap:46px;border-radius:16px;font-size:23px;background:#fff;color:#104e70;box-shadow:0 10px 30px #062c4326;transition:background-color .35s ease,box-shadow .35s ease}
#contact #start-enquiry .ui-icon{box-sizing:content-box;width:24px;height:24px;padding:15px;border-radius:50%;background:#104e70;color:#fff;transition:background-color .35s ease,transform .45s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){#contact #start-enquiry:hover{background:#f0f8fc;box-shadow:0 12px 34px #062c4333}#contact #start-enquiry:hover .ui-icon{background:#17658f;transform:translateX(3px)}}
#contact .contact-signature{position:absolute;left:48px;right:48px;bottom:34px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px 30px;text-align:left;transition:opacity .35s ease}
#contact .contact-signature .brand{color:#fff;display:flex;align-items:center;gap:13px;width:max-content}
#contact .contact-signature .brand>span{font-size:34px;letter-spacing:-.055em;display:flex;align-items:baseline;gap:8px}
#contact .contact-signature .brand small{font-size:11px;letter-spacing:0;font-weight:400}
#contact .contact-signature img{width:44px;height:44px}
#contact .contact-signature p{font-size:19px;line-height:1.3;letter-spacing:-.02em;margin:0;color:#d0e8f5;text-align:right}
#contact .contact-copyright{grid-column:1/-1;font-size:10px;color:#b3d1e1}
#contact.is-answering .contact-signature{opacity:.65}
#contact.is-answering .contact-copy,#contact.is-answering .contact-invitation{translate:none}
#contact .contact-panel form{top:44%;border-radius:18px;box-shadow:0 20px 50px #05253c33;max-height:calc(100% - 190px);padding:38px 42px}
#contact .contact-panel .question-step input,#contact .contact-panel .question-step select,#contact .contact-panel .question-step textarea{border:1px solid #ccdce5;border-radius:8px;background:#f7fafc}
#contact .question-step>label{font-size:36px;line-height:1.15;letter-spacing:-.025em}
#contact .question-controls .button{border-radius:8px;box-shadow:none}
@media(max-width:760px){
 #contact.contact{min-height:max(660px,calc(100svh - var(--header)));padding:64px 24px 190px;gap:32px}
 #contact .contact-copy h2{font-size:clamp(38px,9.5vw,62px);line-height:1.14}
 #contact #start-enquiry{width:auto;max-width:100%;font-size:18px;min-height:72px;padding:12px 12px 12px 22px;gap:20px;border-radius:14px}
 #contact #start-enquiry .ui-icon{width:20px;height:20px;padding:12px}
 #contact .contact-signature{left:24px;right:24px;bottom:24px;gap:14px;grid-template-columns:1fr}
 #contact .contact-signature .brand>span{font-size:29px}#contact .contact-signature img{width:36px;height:36px}
 #contact .contact-signature p{font-size:15px;text-align:left}#contact .contact-signature p br{display:none}#contact .contact-signature p br:after{content:' '}
 #contact .contact-panel form{width:calc(100% - 32px);padding:28px 24px;top:42%;max-height:calc(100% - 175px)}
 #contact .question-step>label{font-size:29px}
}
@media(prefers-reduced-motion:reduce){#contact #start-enquiry,#contact #start-enquiry .ui-icon,#contact .contact-signature{transition:none}}

/* Amber is reserved for the primary invitation and its next action. */
#contact #start-enquiry{background:var(--accent-amber);color:var(--accent-ink)}
#contact #start-enquiry .ui-icon{background:var(--accent-ink);color:var(--accent-amber)}
#contact #start-enquiry:active{background:#e7a91f;color:var(--accent-ink)}
#contact .question-controls .button{background:var(--accent-amber);color:var(--accent-ink)}
#contact .question-controls .button:before{display:none}
@media(hover:hover) and (pointer:fine){
 #contact #start-enquiry:hover{background:var(--accent-amber-hover);color:var(--accent-ink)}
 #contact #start-enquiry:hover .ui-icon{background:var(--accent-ink);color:var(--accent-amber-hover)}
 #contact .question-controls .button:hover{background:var(--accent-amber-hover);color:var(--accent-ink)}
}

/* A quieter setup, then a decisive closing line. Same family, distinct roles. */
#contact .contact-copy{width:100%;max-width:1160px}
#contact .contact-copy h2{font-family:Instrument,Arial,sans-serif;line-height:1.04;letter-spacing:-.04em}
#contact .contact-lead{display:block;font-size:clamp(26px,3vw,42px);line-height:1.25;letter-spacing:-.025em;font-weight:400;color:#d0e8f5;margin-bottom:18px}
#contact .contact-lead strong{font-weight:600;color:#fff}
#contact .contact-emphasis{display:block;font-size:clamp(44px,6.7vw,96px);font-weight:600;color:#fff;line-height:1.04;letter-spacing:-.04em;text-wrap:balance}
#contact #start-enquiry{font-weight:600}
#contact .contact-signature p strong{font-weight:600;color:#fff}
@media(max-width:760px){
 #contact .contact-lead{font-size:clamp(22px,5.6vw,34px);margin-bottom:16px}
 #contact .contact-emphasis{font-size:clamp(40px,10.8vw,72px);line-height:1.06;max-width:11ch;margin-inline:auto}
}

/* Phone composition: two intentional display lines, one clear action, a quiet signature. */
@media(max-width:760px){
 #contact.contact{padding:64px 24px 184px;gap:36px;min-height:max(660px,calc(100svh - var(--header)))}
 #contact .contact-copy{max-width:520px}
 #contact .contact-lead{font-size:clamp(22px,5.6vw,30px);line-height:1.3;margin-bottom:22px}
 #contact .contact-emphasis{font-size:clamp(38px,12vw,64px);line-height:1.04;max-width:none;letter-spacing:-.035em}
 #contact .contact-payoff{display:block}
 #contact #start-enquiry{font-size:18px;line-height:1.2;min-height:68px;padding:12px 12px 12px 22px;gap:22px;border-radius:14px}
 #contact .contact-signature{bottom:max(24px,env(safe-area-inset-bottom));gap:12px}
 #contact .contact-signature p{font-size:15px;line-height:1.4}
 #contact .contact-copyright{margin-top:4px}
}
@media(max-width:359px){
 #contact.contact{padding-inline:20px;gap:30px}
 #contact .contact-lead{font-size:20px}
 #contact .contact-emphasis{font-size:38px}
 #contact #start-enquiry{font-size:16px;padding-left:18px;gap:16px}
}

/* A native sticky fade: no scroll-linked translation or competing position updates. */
.ride-ready .contact-arrival{position:relative;z-index:6;margin-top:calc(-2 * var(--journey-end-overlap,0px));overflow-anchor:none}
.ride-ready .contact-arrival::after{content:"";display:block;height:var(--journey-end-overlap,0px);pointer-events:none}
.ride-ready .contact-arrival #contact{position:sticky;top:var(--header);margin-top:0;transform:none;will-change:opacity}
