/* The scroll viewport must end ABOVE the fixed CTA, including its safe area.
   Keep this geometry stable when the contact form hides the external CTA. */
:root {--cta-height:calc(56px + env(safe-area-inset-bottom, 0px));}
.recruit-page .swipe-container {height:var(--screen);scroll-snap-type:y proximity;scroll-padding:0;}
.recruit-page .footer-sticky {height:var(--cta-height);padding-bottom:env(safe-area-inset-bottom, 0px);box-sizing:border-box;}
.recruit-page .contact-section {height:var(--screen);min-height:var(--screen);max-height:var(--screen);}
.recruit-page.contact-visible .site-wrapper {background:var(--brand-blue);}
/* Native scrolling must allow the end of an oversized section to clear the bar. */
.recruit-page .swipe-section {scroll-snap-stop:normal;}
/* The contact page grows with its fields; use the main page scroll only. */
.recruit-page #contact.contact-section {height:auto;min-height:var(--screen);max-height:none;padding-top:28px;padding-bottom:36px;align-items:flex-start;}
.recruit-page #contact .slide-content {height:auto;max-height:none;}
.recruit-page #contact #application {flex:none;min-height:auto;overflow:visible;padding:4px 6px 8px;}
.recruit-page #contact .contact-fields {gap:22px;}
.recruit-page #contact .contact-fields input,
.recruit-page #contact .contact-fields select {height:48px;padding:10px;font-size:16px;}
.recruit-page #contact .contact-fields textarea {height:132px;padding:10px;font-size:16px;}
.recruit-page #contact .apply-button {height:48px;margin-top:24px;margin-bottom:14px;}
