
/* Progressive enhancement: the contact form remains usable without JavaScript. */
.contact-form-container { display:block; }
.contact-form-container.js-enhanced:not(.active) { display:none; }
.submission-status { margin:1rem 0; font-weight:600; overflow-wrap:anywhere; }
.submission-status:empty { margin:0; }
.submission-status:focus { outline:2px solid var(--color-sage); outline-offset:4px; }
fieldset.form-section { min-width:0; }
/* Keep accessible group labels inside the card instead of across its border. */
fieldset.form-section > legend { float:left; width:100%; max-width:100%; padding:0; }
fieldset.form-section > legend ~ * { clear:both; }
.days-fieldset { border:0; min-width:0; margin:0 0 1.25rem; padding:0; }
/* Mobile-only: keep the promotion and its dismissal within the visible screen. */
@media(max-width:850px) {
 .popup-overlay { padding:0.75rem; overflow-y:auto; }
 .popup-card { max-height:calc(100vh - 1.5rem); max-height:calc(100dvh - 1.5rem); overflow-y:auto; overscroll-behavior:contain; padding:1.25rem; }
 .popup-card .popup-btn { flex-shrink:0; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto !important; }
 *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

.text-center { text-align:center; }
.skip-link { position:fixed; top:0.5rem; left:0.5rem; z-index:10000; padding:0.75rem 1rem; background:#23445c; color:#fff; transform:translateY(-200%); }
.skip-link:focus { transform:none; outline:3px solid #4c5b3c; outline-offset:2px; }
@media(max-width:850px) { input.form-control,select.form-control,textarea.form-control { font-size:1rem; min-width:0; } .referral-cta { white-space:normal; max-width:100%; } }

/* Visible keyboard focus on cream, white and dark surfaces. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
 outline:3px solid #23445c; outline-offset:4px; box-shadow:0 0 0 7px #fff;
}
:where(section,main,[id="formularz"]) { scroll-margin-top:6rem; }
.btn { white-space:normal; }
.ribbon,.pricing-btn-action,.pricing-btn-action:hover { background:#4c5b3c; color:#fff; }
.pricing-info .subtitle,.pricing-subrow .subtitle { color:#536176; font-size:0.875rem; }
.privacy-notice { font-size:0.875rem; line-height:1.65; margin:1.25rem 0; }
.privacy-notice a,.privacy-copy a { text-decoration:underline; text-underline-offset:0.2em; }
.privacy-links { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:0.5rem 1.5rem; padding:1.25rem; }
.privacy-links a,.privacy-links button { color:inherit; font:inherit; font-size:0.875rem; text-decoration:underline; text-underline-offset:0.2em; min-height:44px; display:inline-flex; align-items:center; }
.privacy-links button { border:0; background:transparent; cursor:pointer; }
.cookie-status { max-width:45rem; margin:0 auto; padding:0 1rem; }
.cookie-status:empty { display:none; }
.course-modal-dialog { max-height:calc(100dvh - 2rem); }
.mobile-drawer-content,.drawer-content { max-height:100dvh; overflow-y:auto; overscroll-behavior:contain; }
.privacy-copy { max-width:48rem; margin:auto; padding:2rem 1.25rem 4rem; }
.privacy-copy h1 { font-size:clamp(1.75rem,4vw,2.75rem); line-height:1.2; }
.privacy-copy h2 { font-size:1.3rem; margin:2rem 0 0.75rem; }
.privacy-copy p { margin:0.75rem 0; }
.privacy-copy ul { list-style:disc; padding-left:1.5rem; }
.privacy-draft { border:2px solid #6f4e16; background:#fff8e6; color:#50370d; padding:1rem; }
.privacy-header { padding:1rem 1.25rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.privacy-header img { width:65px; height:auto; }
.bts-banner { display:flex; justify-content:center; background:#23445c; color:#fff; padding:0.65rem 1rem; text-align:center; }
.bts-banner[hidden] { display:none; }
.bts-banner-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0.75rem 1.25rem; max-width:1100px; width:100%; }
.bts-banner-text { font-size:0.9rem; line-height:1.4; flex:0 1 620px; text-align:left; }
.bts-banner-text strong { color:#e8ede1; }
.bts-banner-cta { white-space:normal; padding:0.45rem 1.1rem; font-size:0.85rem; min-height:44px; }
@media(max-width:600px) { .bts-banner-text { text-align:center; } }
.popup-open { overflow:hidden; }
.popup-card .popup-btn { width:100%; max-width:240px; }
@media(max-width:767px) {
 .section { padding:2.75rem 0; }
 .hero { padding-top:2rem; }
 .offer-card-img { max-height:240px; object-fit:cover; }
 .section-title { overflow-wrap:anywhere; }
 .course-modal-dialog { max-height:calc(100dvh - 1.5rem); }
 .hero-grid,.grid-2,.form-row { min-width:0; }
}
