/* V27 — QA hardening: stabilny layout, mobilny modal i lekkie animacje */
html, body { max-width: 100%; overflow-x: hidden; }
img, video { max-width: 100%; height: auto; }
.experience, .experience-sticky, .experience-content, .experience-media, .experience-copy, .experience-steps, .experience-detail, .measurement-grid, .calculator, .contact-card { min-width: 0; max-width: 100%; }
.experience-detail { overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .experience { min-height: 720px !important; height: auto !important; }
  .experience-sticky, .experience-content { height: 720px !important; min-height: 720px !important; }
  .experience-content { padding-left: 16px; padding-right: 16px; }
  .experience-copy h2 { font-size: clamp(42px, 13vw, 56px); max-width: 100%; }
  .experience-copy p, .experience-steps { max-width: 100%; width: 100%; }
  .experience-steps li, .experience-steps li .step-copy { min-width: 0; }
  .experience-steps li .step-copy strong, .experience-steps li .step-copy small { overflow-wrap: anywhere; }
  .experience-detail { right: 16px; left: auto; max-width: min(235px, calc(100vw - 32px)); }
  .modal-card { width: min(100% - 20px, 620px); max-height: calc(100svh - 20px); overflow: auto; }
}
@media (max-width: 380px) {
  .experience-sticky, .experience-content { height: 690px !important; min-height: 690px !important; }
  .experience { min-height: 690px !important; }
  .experience-copy h2 { font-size: 42px; }
  .experience-steps li { gap: 8px; }
  .experience-steps li b { flex: 0 0 25px; width: 25px; height: 25px; }
  .experience-detail { bottom: 108px; font-size: 11px; }
}
.contact-modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; background: rgba(2, 8, 13, .72); opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease; }
.contact-modal.is-open { opacity: 1; visibility: visible; }
.modal-card { position: relative; width: min(620px, 100%); padding: clamp(24px, 4vw, 42px); color: #f5f9fb; background: linear-gradient(145deg, #0d2030, #071019); border: 1px solid rgba(246,195,68,.35); border-radius: 18px; box-shadow: 0 30px 100px rgba(0,0,0,.55); transform: translateY(18px) scale(.98); transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.contact-modal.is-open .modal-card { transform: none; }
.modal-card h2 { margin: 0 0 8px; font: 800 clamp(34px, 5vw, 56px)/.95 'Barlow Condensed', sans-serif; text-transform: uppercase; }
.modal-card > p { margin: 0 0 22px; color: #b9cbd3; line-height: 1.55; }
.modal-close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: transparent; color: #fff; font-size: 22px; cursor: pointer; }
.modal-form { display: grid; gap: 13px; }
.modal-form label { display: grid; gap: 6px; color: #dbe7ec; font-size: 13px; font-weight: 700; }
.modal-form input, .modal-form select, .modal-form textarea { width: 100%; min-height: 46px; padding: 12px 13px; border: 1px solid rgba(255,255,255,.18); border-radius: 7px; background: rgba(255,255,255,.06); color: #fff; font: inherit; }
.modal-form textarea { min-height: 92px; resize: vertical; }
.modal-form option { color: #10202b; }
.modal-form input:focus, .modal-form select:focus, .modal-form textarea:focus, .modal-close:focus-visible { outline: 3px solid rgba(246,195,68,.55); outline-offset: 2px; }
.modal-submit { justify-self: start; border: 0; cursor: pointer; }
.modal-status { min-height: 24px; margin: 3px 0 0; color: #f6c344; font-weight: 700; }
body.modal-lock { overflow: hidden; }
@media (max-width: 600px) {
  .calculator { grid-template-columns: minmax(0, 1fr) !important; width: 100%; padding: 20px 16px; }
  .calculator > *, .calculator label, .calculator input, .calculator select, .calculator button, .calc-cart, .calc-result, .calc-disclaimer { min-width: 0; width: 100%; max-width: 100%; }
  .calculator .calc-result, .calculator .calc-disclaimer, .calculator .calc-cart { grid-column: 1 / -1; }
  .calculator label { overflow-wrap: anywhere; }
  .calculator button { white-space: normal; }
  .contact-modal { align-items: end; padding: 10px; }
  .modal-card { width: 100%; max-height: calc(100svh - 20px); padding: 24px 18px 20px; border-radius: 18px 18px 10px 10px; }
  .modal-submit { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .contact-modal, .modal-card { transition: none; } }
body.low-power .cursor-light, body.low-power .energy-field, body.low-power .energy-rail { display: none !important; }
body.low-power .experience-media { will-change: auto; filter: none !important; }
body.low-power .btn, body.low-power .nav-cta { animation: none !important; }
body.low-power .energy-line, body.low-power .energy-node, body.low-power .offer-slide b { animation: none !important; }
body.low-power *, body.low-power *::before, body.low-power *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
