/* Shared styles. Page-specific designs live in assets/css/pages/{descriptive-name}.css. */
:root {
  --qm-cyan: #32EDFF;
  --qm-border: var(--qm-cyan);
  --qm-pink: #b007b1;
  --qm-bg: #000;
  --qm-gap: clamp(20px,3.6vw,56px);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; color:#fff; background:var(--qm-bg); font-family:'Maven Pro',Arial,sans-serif; font-size:17px; line-height:1.6; }
img,svg,iframe,video { max-width:100%; }
img { height:auto; vertical-align:middle; }
iframe { border:0; }
a { color:var(--qm-pink); text-underline-offset:4px; }
a:hover { color:var(--qm-cyan); }
button,input,textarea { font:inherit; }
button,a,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #fff; outline-offset:5px; }
h1,h2,h3,h4,h5,h6 { margin:0 0 .6em; font-family:'Montserrat',Arial,sans-serif; color:#fff; font-weight:800; line-height:1.15; overflow-wrap:break-word; }
h1 { font-size:clamp(32px,4vw,64px); } h2 { font-size:clamp(30px,4.5vw,60px); } h3 {font-size:28px;} h4 {font-size:20px;}
p { margin:0 0 1em; }
ul,ol { padding-left:1.3em; }
.qm-section { position:relative; padding:54px 0; isolation:isolate; }
.qm-row { width:90%; max-width:1420px; margin:0 auto; padding:27px 0; display:flex; align-items:flex-start; gap:var(--qm-gap); }
.qm-column { flex:calc(var(--qm-col,1) * 1000) 1 0%; min-width:0; position:relative; }
.qm-column > :last-child { margin-bottom:0; }
.qm-text,.qm-blurb,.qm-image,.qm-code,.qm-button-wrap,.qm-animated-gradient-text,.qm-icon-list,.qm-toggle { margin:0 0 30px; }
.qm-image { margin-left:0; margin-right:0; }
.qm-image img { display:inline-block; object-fit:contain; max-height:inherit; }
.qm-blurb { display:flex; align-items:flex-start; gap:16px; }
.qm-blurb .qm-icon { width:26px; height:26px; flex:0 0 26px; color:var(--qm-icon-color,var(--qm-cyan)); margin-top:4px; }
.qm-blurb h4 a { color:inherit; text-decoration:none; }
.qm-icon { width:24px; height:24px; display:inline-block; vertical-align:middle; flex-shrink:0; }
.qm-icon-list { padding:0; list-style:none; }
.qm-icon-list-child { display:flex; align-items:center; gap:12px; margin-bottom:15px; }
.qm-icon-list-child svg { color:var(--qm-cyan); }
.qm-animated-gradient-text { font-size:32px; font-family:'Montserrat',Arial,sans-serif; font-weight:800; text-align:center; background:linear-gradient(90deg,#fff,var(--qm-cyan),#fff,var(--qm-cyan)); background-size:200%; background-clip:text; -webkit-background-clip:text; color:transparent; animation:qm-gradient 8s linear infinite; }
@keyframes qm-gradient { to { background-position:200% center; } }
.qm-button { display:inline-flex; align-items:center; justify-content:center; max-width:100%; gap:10px; padding:12px 28px; border:4px solid var(--qm-border); border-radius:25px; font-family:'Montserrat',Arial,sans-serif; font-size:17px; font-weight:800; letter-spacing:2px; line-height:1.35; color:var(--qm-cyan); text-transform:uppercase; text-decoration:none; background:transparent; cursor:pointer; text-align:center; overflow-wrap:anywhere; transition:box-shadow .2s,transform .2s; }
.qm-button:hover { color:var(--qm-cyan); box-shadow:0 0 25px #32edff55; transform:translateY(-2px); }
.qm-toggle { border:3px solid var(--qm-border); border-radius:10px; padding:22px; background:#0a0909; }
.qm-toggle summary { position:relative; padding-right:36px; cursor:pointer; list-style:none; font-family:'Montserrat',Arial,sans-serif; font-size:24px; font-weight:800; line-height:1.25; }
.qm-toggle summary::-webkit-details-marker { display:none; }
.qm-toggle summary::after { content:'+'; position:absolute; right:0; top:0; color:var(--qm-cyan); }
.qm-toggle[open] summary::after { content:'−'; }
.qm-toggle .qm-body { padding-top:20px; }
.qm-prpl-presto-player iframe { display:block; width:100%; aspect-ratio:16/9; }
.qm-embed-google-map iframe { display:block; width:100%; min-height:330px; }
.qm-social-media-follow { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; }
.qm-social-media-follow-network { display:inline-flex; padding:8px 14px; border-radius:30px; text-decoration:none; background:var(--qm-pink); color:white; font-size:14px; }
.qm-default-content { width:90%; max-width:1120px; margin:0 auto; padding:160px 0 60px; min-height:60vh; }
.qm-integration-notice { padding:24px; border:2px solid var(--qm-border); border-radius:12px; margin:20px 0; }
.qm-site-header { position:fixed; z-index:9990; inset:0 0 auto; background:transparent; transition:background-color 1s ease-out; }
.qm-site-header.is-scrolled { background:#000; }
.admin-bar .qm-site-header { top:32px; }
.qm-header-inner { width:90%; max-width:1420px; min-height:100px; margin:0 auto; display:flex; align-items:center; gap:25px; }
.qm-brand { flex-shrink:0; }
.qm-brand img { display:block; width:170px; height:87px; object-fit:contain; }
.qm-navigation { display:flex; align-items:center; gap:20px; margin-left:auto; }
.qm-menu { list-style:none; display:flex; align-items:center; gap:22px; padding:0; margin:0; }
.qm-menu a { font-size:16px; font-weight:700; text-transform:uppercase; color:#fff; text-decoration:none; white-space:nowrap; }
.qm-menu a[aria-current="page"],.qm-menu .current-menu-item>a,.qm-menu a:hover { color:var(--qm-pink); }
.qm-language { text-decoration:none; color:white; font-size:14px; }
.qm-book { color:white; background:var(--qm-pink); border-color:var(--qm-pink); border-radius:0; font-size:16px; letter-spacing:7px; padding:10px 12px; }
.qm-book:hover { color:white; box-shadow:0 0 22px #b007b188; }
.qm-menu-toggle { display:none; border:0; color:white; background:transparent; cursor:pointer; }
.qm-menu-toggle span { padding-left:8px; font-size:25px; }
.qm-skip { position:fixed; top:-100px; left:12px; z-index:10001; background:white; color:black; padding:10px 15px; }
.qm-skip:focus { top:10px; }
.qm-site-footer { border-top:1px solid #ffffff22; padding-top:15px; }
.qm-site-footer h3 { color:white; font-size:24px; }
.qm-site-footer h4 { color:white; }
.qm-site-footer a { color:white; }
.qm-site-footer .qm-text { font-size:15px; }
.qm-site-footer .qm-signup { max-width:500px; margin:0 auto; }
.qm-site-footer .qm-signup p { font-size:15px; }
.qm-form { display:grid; gap:16px; }
.qm-form label { display:block; font-weight:600; }
.qm-form input,.qm-form textarea { display:block; width:100%; margin-top:5px; color:white; background:#0a0909; border:2px solid var(--qm-border); border-radius:3px; padding:14px 16px; }
.qm-form textarea { min-height:150px; resize:vertical; }
.qm-form .qm-hp { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.qm-form-status { padding:12px; border:1px solid var(--qm-border); }
.qm-form button:disabled { opacity:.65; cursor:wait; }
@media(min-width:981px) and (max-width:1200px) { .qm-header-inner{gap:16px}.qm-menu{gap:13px}.qm-menu a{font-size:13px}.qm-brand img{width:145px}.qm-book{font-size:13px;padding:12px 15px;} }
@media(max-width:980px) {
 .qm-row { flex-wrap:wrap; gap:30px; }
 .qm-column { flex:1 1 100%; width:100%; }
 .qm-header-inner { min-height:82px; gap:16px; }
 .qm-brand img { width:140px; height:72px; }
 .qm-menu-toggle { display:inline-flex; align-items:center; margin-left:auto; }
 .qm-navigation { display:none; position:absolute; inset:100% 0 auto; background:#080808; padding:24px 5%; border-bottom:2px solid var(--qm-pink); }
 .qm-navigation.is-open { display:flex; flex-direction:column; align-items:flex-start; }
 .qm-menu { flex-direction:column; align-items:flex-start; width:100%; gap:16px; }
 .qm-book { font-size:13px; letter-spacing:1px; padding:10px 16px; }
}
@media(max-width:767px) {
 .qm-section { padding:36px 0; }
 .qm-row { padding:18px 0; }
 .qm-toggle { padding:18px; }
 .qm-main h1 { font-size:clamp(30px,8vw,42px); }
 .qm-main h2 { font-size:clamp(28px,7vw,38px); }
 .qm-header-inner { width:94%; gap:10px; }
 .qm-brand img { width:112px; height:65px; }
 .qm-menu-toggle { font-size:0; padding:4px; }
 .qm-book { font-size:12px; padding:10px; }
 .admin-bar .qm-site-header { top:46px; }
 .qm-site-footer .qm-text { margin-left:0!important; margin-right:0!important; max-width:100%; overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto} *,*::before,*::after {transition:none!important;animation:none!important;} }

/* Native replacements for the original Divi motion and button decorations. */
.qm-main { overflow-x:clip; }
.qm-divider { display:block; position:absolute; bottom:-1px; left:0; width:100%; max-width:none; height:100px; pointer-events:none; z-index:1; }
.qm-pulse-cyan > .qm-button { animation:qm-pulse-cyan 1s infinite; }
.qm-pulse-pink > .qm-button { animation:qm-pulse-pink 1s infinite; }
.qm-pulse-pink > .qm-button:hover { animation:none; }
@keyframes qm-pulse-cyan { 0%{box-shadow:0 0 var(--qm-cyan)}50%{box-shadow:0 0 0 1em #fff0}100%{box-shadow:0 0 #fff0} }
@keyframes qm-pulse-pink { 0%{box-shadow:0 0 var(--qm-pink)}50%{box-shadow:0 0 0 1em #fff0}100%{box-shadow:0 0 #fff0} }
/* All button checks use the production icon, independently of the text font. */
.qm-button-check::before {
  content:'';
  display:inline-block;
  flex:0 0 1em;
  width:1em;
  height:1em;
  background-color:currentColor;
  -webkit-mask:url('../icons/check.svg') center / contain no-repeat;
  mask:url('../icons/check.svg') center / contain no-repeat;
}
.qm-button-arrow::after,.qm-book::after,.qm-button-arrow-always::after { content:''; width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:9px solid currentColor; opacity:0; margin-left:-19px; transition:opacity .2s,margin .2s; }
.qm-button-arrow:hover::after,.qm-button-arrow:focus-visible::after,.qm-book:hover::after,.qm-book:focus-visible::after,.qm-button-arrow-always::after { opacity:1; margin-left:0; }
.qm-language svg { width:18px; height:12px; vertical-align:middle; }
[data-qm-reveal] { transition:opacity var(--qm-reveal-duration,1000ms) ease var(--qm-reveal-delay,0ms),translate var(--qm-reveal-duration,1000ms) ease var(--qm-reveal-delay,0ms); }
.qm-reveal-pending { opacity:0; transition:none; }
.qm-reveal-pending[data-qm-reveal="slide"][data-qm-direction="left"] { translate:-80px 0; }
.qm-reveal-pending[data-qm-reveal="slide"][data-qm-direction="right"] { translate:80px 0; }
.qm-reveal-pending[data-qm-reveal="slide"][data-qm-direction="top"] { translate:0 -60px; }
.qm-reveal-pending[data-qm-reveal="slide"][data-qm-direction="bottom"] { translate:0 60px; }
/* Divi uses a compact heading gap in the homepage hero. */
:is(.qm-scope-strona-glowna,.qm-scope-strona-glowna-en) .qm-m4 h1 { margin-bottom:10px; }
@media(min-width:981px) { .qm-navigation { margin-right:20px; } }
@media(prefers-reduced-motion:reduce) { .qm-reveal-pending { opacity:1; translate:none; } [data-qm-rotate] { rotate:var(--qm-base-rotate,0deg)!important; } }
.qm-video-preview { position:relative; display:block; aspect-ratio:16/9; background:#050b14; color:white; overflow:hidden; text-decoration:none; }
.qm-video-preview img { width:100%; height:100%; object-fit:cover; }
.qm-video-play { position:absolute; left:50%; top:50%; translate:-50% -50%; background:#00a5d8dd; border-radius:8px; padding:8px 24px; font-size:32px; color:#fff; }
.qm-video-caption { position:absolute; bottom:0; left:0; right:0; background:#000b; color:#fff; text-align:center; font:13px/1.5 Arial,sans-serif; padding:4px; }
.qm-video-direct { font-size:13px; }

.qm-text > p:last-child { margin-bottom:0; }
.qm-button-check { gap:.5em; padding-left:24px; padding-right:24px; }
