/* Podnośniki Magnus — generated by scripts/build-theme.mjs. Do not edit by hand. */
@layer tokens, reset, layout, components, utilities, theme;
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap");@property --color-primary{syntax:"<color>";inherits:true;initial-value:#623aff}@property --color-neutral{syntax:"<color>";inherits:true;initial-value:#24242c}@property --color-success{syntax:"<color>";inherits:true;initial-value:#12805c}@property --color-warning{syntax:"<color>";inherits:true;initial-value:#b45309}@property --color-danger{syntax:"<color>";inherits:true;initial-value:#c0392b}@property --color-info{syntax:"<color>";inherits:true;initial-value:#1d6fd4}@property --bg{syntax:"<color>";inherits:true;initial-value:#fff}@property --alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --space-unit{syntax:"<length>";inherits:true;initial-value:8px}@property --type-base{syntax:"<length>";inherits:true;initial-value:16px}@property --type-ratio{syntax:"<number>";inherits:true;initial-value:1.25}@property --weight-normal{syntax:"<number>";inherits:true;initial-value:400}@property --weight-medium{syntax:"<number>";inherits:true;initial-value:550}@property --weight-bold{syntax:"<number>";inherits:true;initial-value:650}@property --leading-tight{syntax:"<number>";inherits:true;initial-value:1.15}@property --leading-snug{syntax:"<number>";inherits:true;initial-value:1.5}@property --leading-normal{syntax:"<number>";inherits:true;initial-value:1.6}@property --radius-md{syntax:"<length>";inherits:true;initial-value:8px}@property --border-w{syntax:"<length>";inherits:true;initial-value:1px}@property --speed{syntax:"<time>";inherits:true;initial-value:.2s}@property --shadow-tint{syntax:"<color>";inherits:true;initial-value:oklch(.2 .02 280)}@property --text{syntax:"<color>";inherits:true;initial-value:#17171c}@property --text-muted{syntax:"<color>";inherits:true;initial-value:#5d5d68}@property --content{syntax:"<color>";inherits:true;initial-value:#fff}@property --panel{syntax:"<color>";inherits:true;initial-value:#f4f4f6}@property --special{syntax:"<color>";inherits:true;initial-value:#623aff}@property --line{syntax:"<color>";inherits:true;initial-value:#e3e3e8}@property --focus{syntax:"<color>";inherits:true;initial-value:rgba(98,58,255,.4)}@property --radius{syntax:"<length>";inherits:true;initial-value:8px}@property --gap{syntax:"<length>";inherits:true;initial-value:16px}@property --span{syntax:"<integer>";inherits:false;initial-value:12}@property --cols{syntax:"<integer>";inherits:false;initial-value:12}@property --col-min{syntax:"<length>";inherits:false;initial-value:256px}@property --span-md{syntax:"*";inherits:false}@property --span-lg{syntax:"*";inherits:false}@property --span-xl{syntax:"*";inherits:false}@property --gap-md{syntax:"*";inherits:false}@property --gap-lg{syntax:"*";inherits:false}@property --gap-xl{syntax:"*";inherits:false}@property --order{syntax:"*";inherits:false}@property --order-md{syntax:"*";inherits:false}@property --order-lg{syntax:"*";inherits:false}@property --order-xl{syntax:"*";inherits:false}@property --section-pad{syntax:"*";inherits:false}@property --section-bg{syntax:"*";inherits:false}@property --container{syntax:"*";inherits:false}@property --container-pad{syntax:"*";inherits:false}@property --ratio{syntax:"*";inherits:false}@property --justify{syntax:"*";inherits:false}@property --pad{syntax:"*";inherits:false}@layer tokens{:root{--font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: var(--font-sans);--space-unit: 0.5rem;--type-base: 1rem;--radius-md: 0.5rem}:root{--_space-0: 0px;--_space-1: calc(var(--space-unit) * 0.5);--_space-2: var(--space-unit);--_space-3: calc(var(--space-unit) * 2);--_space-4: calc(var(--space-unit) * 3);--_space-5: calc(var(--space-unit) * 5);--_space-6: calc(var(--space-unit) * 8);--_type-sm: calc(var(--type-base) / var(--type-ratio));--_type-0: var(--type-base);--_type-1: calc(var(--type-base) * var(--type-ratio));--_type-2: calc(var(--type-base) * pow(var(--type-ratio), 2));--_type-3: calc(var(--type-base) * pow(var(--type-ratio), 3));--_type-4: calc(var(--type-base) * pow(var(--type-ratio), 4));--_type-5: calc(var(--type-base) * pow(var(--type-ratio), 5));--_radius-sm: calc(var(--radius-md) * 0.5);--_radius-lg: calc(var(--radius-md) * 2);--_radius-full: 999rem;--_shadow-sm: 0 1px 2px rgb(from var(--shadow-tint) r g b / 8%);--_shadow-md: 0 4px 12px rgb(from var(--shadow-tint) r g b / 10%);--_shadow-lg: 0 12px 32px rgb(from var(--shadow-tint) r g b / 16%);--_ratio-wide: 16 / 9;--_ratio-square: 1}:root{--content: var(--bg);--text: color-mix(in oklab, var(--bg), var(--color-neutral) 92%);--text-muted: color-mix(in oklab, var(--bg), var(--color-neutral) 55%);--panel: color-mix(in oklab, var(--bg), var(--color-neutral) 5%);--line: color-mix(in oklab, var(--bg), var(--color-neutral) 14%);--special: var(--color-primary);--focus: color-mix(in oklab, var(--bg), var(--color-primary) 40%);--radius: var(--radius-md);--transition: var(--speed) ease;--shadow: var(--_shadow-md);--gap: var(--_space-3);--border-color: var(--line);--table-border: var(--line)}}@layer theme{[data-theme=dark]{--bg: #14141a;--text: color-mix(in oklab, var(--bg), #e9e9ef 92%);--text-muted: color-mix(in oklab, var(--bg), #e9e9ef 55%);--panel: color-mix(in oklab, var(--bg), #ffffff 6%);--line: color-mix(in oklab, var(--bg), #ffffff 14%);--shadow-tint: oklch(0.02 0.02 280)}}@layer reset{*,*::before,*::after{box-sizing:border-box}*{-webkit-tap-highlight-color:rgba(0,0,0,0);scrollbar-width:thin;scrollbar-color:var(--special) rgba(0,0,0,0)}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,fieldset,legend{margin:0}img,svg,video{display:block;max-width:100%}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}[hidden]{display:none}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}}}@layer layout{.container{width:100%;max-width:var(--container, 72rem);margin-inline:auto;padding-inline:var(--container-pad, var(--_space-3))}.container.narrow{--container: 46rem}.container.wide{--container: 90rem}.section{padding-block:var(--section-pad, clamp(3rem, 8vw, 6rem));background:var(--section-bg, transparent);container-type:inline-size;container-name:section}.section.sm{--section-pad: clamp(1.5rem, 4vw, 3rem)}.section.lg{--section-pad: clamp(5rem, 12vw, 9rem)}.grid-x{display:grid;grid-template-columns:repeat(var(--cols, 12), minmax(0, 1fr));gap:var(--gap, var(--_space-3))}.grid-x>*{grid-column:span var(--span, var(--cols, 12));order:var(--order, 0);min-width:0;container-type:inline-size;container-name:col}.grid-x.up-1{--cols: 1}.grid-x.up-2{--cols: 2}.grid-x.up-3{--cols: 3}.grid-x.up-4{--cols: 4}.grid-x.up-5{--cols: 5}.grid-x.up-6{--cols: 6}.grid-x.up-1>*,.grid-x.up-2>*,.grid-x.up-3>*,.grid-x.up-4>*,.grid-x.up-5>*,.grid-x.up-6>*{--span: 1}.grid-x.auto{grid-template-columns:repeat(auto-fit, minmax(min(var(--col-min, 16rem), 100%), 1fr))}.grid-x.auto>*{--span: 1}.stack{display:flex;flex-direction:column;gap:var(--gap, var(--_space-3))}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap, var(--_space-3));justify-content:var(--justify, flex-start)}.frame{aspect-ratio:var(--ratio, var(--_ratio-wide));overflow:hidden;border-radius:var(--frame-radius, 0)}.frame>img,.frame>video,.frame>iframe{width:100%;height:100%;object-fit:cover}}@layer layout{.sm-1{--span:1}.sm-2{--span:2}.sm-3{--span:3}.sm-4{--span:4}.sm-5{--span:5}.sm-6{--span:6}.sm-7{--span:7}.sm-8{--span:8}.sm-9{--span:9}.sm-10{--span:10}.sm-11{--span:11}.sm-12{--span:12}@media(min-width: 640px){.md-1{--span:1}.md-2{--span:2}.md-3{--span:3}.md-4{--span:4}.md-5{--span:5}.md-6{--span:6}.md-7{--span:7}.md-8{--span:8}.md-9{--span:9}.md-10{--span:10}.md-11{--span:11}.md-12{--span:12}.grid-x.md-up-1{--cols:1}.grid-x.md-up-2{--cols:2}.grid-x.md-up-3{--cols:3}.grid-x.md-up-4{--cols:4}.grid-x.md-up-5{--cols:5}.grid-x.md-up-6{--cols:6}.grid-x.md-up-1>*,.grid-x.md-up-2>*,.grid-x.md-up-3>*,.grid-x.md-up-4>*,.grid-x.md-up-5>*,.grid-x.md-up-6>*{--span:1}}@media(min-width: 1024px){.lg-1{--span:1}.lg-2{--span:2}.lg-3{--span:3}.lg-4{--span:4}.lg-5{--span:5}.lg-6{--span:6}.lg-7{--span:7}.lg-8{--span:8}.lg-9{--span:9}.lg-10{--span:10}.lg-11{--span:11}.lg-12{--span:12}.grid-x.lg-up-1{--cols:1}.grid-x.lg-up-2{--cols:2}.grid-x.lg-up-3{--cols:3}.grid-x.lg-up-4{--cols:4}.grid-x.lg-up-5{--cols:5}.grid-x.lg-up-6{--cols:6}.grid-x.lg-up-1>*,.grid-x.lg-up-2>*,.grid-x.lg-up-3>*,.grid-x.lg-up-4>*,.grid-x.lg-up-5>*,.grid-x.lg-up-6>*{--span:1}}@media(min-width: 1440px){.xl-1{--span:1}.xl-2{--span:2}.xl-3{--span:3}.xl-4{--span:4}.xl-5{--span:5}.xl-6{--span:6}.xl-7{--span:7}.xl-8{--span:8}.xl-9{--span:9}.xl-10{--span:10}.xl-11{--span:11}.xl-12{--span:12}.grid-x.xl-up-1{--cols:1}.grid-x.xl-up-2{--cols:2}.grid-x.xl-up-3{--cols:3}.grid-x.xl-up-4{--cols:4}.grid-x.xl-up-5{--cols:5}.grid-x.xl-up-6{--cols:6}.grid-x.xl-up-1>*,.grid-x.xl-up-2>*,.grid-x.xl-up-3>*,.grid-x.xl-up-4>*,.grid-x.xl-up-5>*,.grid-x.xl-up-6>*{--span:1}}}@layer reset{body{font-family:var(--font-sans);font-size:var(--_type-0);font-weight:var(--weight-normal);line-height:var(--leading-normal);color:var(--text);background:var(--content)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text);margin-block:0 .5em}h1{font-size:clamp(var(--_type-4),1rem + 3vw,var(--_type-5))}h2{font-size:clamp(var(--_type-3),1rem + 1.8vw,var(--_type-4))}h3{font-size:var(--_type-3)}h4{font-size:var(--_type-2)}h5{font-size:var(--_type-1)}h6{font-size:var(--_type-0);text-transform:uppercase;letter-spacing:.05em}p{margin-block:0 1em}p:last-child{margin-block-end:0}a{color:var(--special);text-decoration:underline;text-underline-offset:.15em;transition:color var(--transition),text-decoration-thickness var(--transition)}a:hover{text-decoration-thickness:2px}small{font-size:var(--_type-sm)}strong{font-weight:var(--weight-bold)}ul,ol{margin-block:0 1em;padding-inline-start:1.25em}blockquote{border-inline-start:3px solid var(--line);padding-inline-start:var(--_space-3);color:var(--text-muted);margin-block:0 1em}code,pre,kbd{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:var(--_type-sm)}code{background:color-mix(in oklab, var(--text) 8%, transparent);border-radius:var(--_radius-sm);padding:.15em .4em}pre{background:color-mix(in oklab, var(--text) 8%, transparent);border-radius:var(--radius);padding:var(--_space-3);overflow-x:auto;margin-block:0 1em}pre code{background:none;padding:0}hr{border:none;border-block-start:var(--border-w) solid var(--line);margin-block:var(--_space-4)}::selection{background:color-mix(in oklab, var(--bg), var(--color-primary) 20%)}}@layer utilities{.mt-0{margin-block-start:var(--_space-0)}.mt-1{margin-block-start:var(--_space-1)}.mt-2{margin-block-start:var(--_space-2)}.mt-3{margin-block-start:var(--_space-3)}.mt-4{margin-block-start:var(--_space-4)}.mt-5{margin-block-start:var(--_space-5)}.mt-6{margin-block-start:var(--_space-6)}.mb-0{margin-block-end:var(--_space-0)}.mb-1{margin-block-end:var(--_space-1)}.mb-2{margin-block-end:var(--_space-2)}.mb-3{margin-block-end:var(--_space-3)}.mb-4{margin-block-end:var(--_space-4)}.mb-5{margin-block-end:var(--_space-5)}.mb-6{margin-block-end:var(--_space-6)}.ms-auto{margin-inline-start:auto}.me-auto{margin-inline-end:auto}.mx-auto{margin-inline:auto}.p-0{padding:var(--_space-0)}.p-1{padding:var(--_space-1)}.p-2{padding:var(--_space-2)}.p-3{padding:var(--_space-3)}.p-4{padding:var(--_space-4)}.p-5{padding:var(--_space-5)}.p-6{padding:var(--_space-6)}.px-0{padding-inline:var(--_space-0)}.px-1{padding-inline:var(--_space-1)}.px-2{padding-inline:var(--_space-2)}.px-3{padding-inline:var(--_space-3)}.px-4{padding-inline:var(--_space-4)}.px-5{padding-inline:var(--_space-5)}.px-6{padding-inline:var(--_space-6)}.py-0{padding-block:var(--_space-0)}.py-1{padding-block:var(--_space-1)}.py-2{padding-block:var(--_space-2)}.py-3{padding-block:var(--_space-3)}.py-4{padding-block:var(--_space-4)}.py-5{padding-block:var(--_space-5)}.py-6{padding-block:var(--_space-6)}.gap-0{--gap:var(--_space-0)}.gap-1{--gap:var(--_space-1)}.gap-2{--gap:var(--_space-2)}.gap-3{--gap:var(--_space-3)}.gap-4{--gap:var(--_space-4)}.gap-5{--gap:var(--_space-5)}.gap-6{--gap:var(--_space-6)}.text-sm{font-size:var(--_type-sm)}.text-lg{font-size:var(--_type-1)}.text-xl{font-size:var(--_type-2)}.lead{font-size:var(--_type-1);line-height:var(--leading-snug)}.eyebrow{font-size:var(--_type-sm);font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--special)}.bold{font-weight:var(--weight-bold)}.upper{text-transform:uppercase;letter-spacing:.04em}.balance{text-wrap:balance}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-start{text-align:start}.text-center{text-align:center}.text-end{text-align:end}@media(min-width: 640px){.text-start-md{text-align:start}.text-center-md{text-align:center}.text-end-md{text-align:end}}@media(min-width: 1024px){.text-start-lg{text-align:start}.text-center-lg{text-align:center}.text-end-lg{text-align:end}}@media(min-width: 1440px){.text-start-xl{text-align:start}.text-center-xl{text-align:center}.text-end-xl{text-align:end}}.bg-primary{background:color-mix(in oklab, var(--bg), var(--color-primary) var(--alpha))}.bg-neutral{background:color-mix(in oklab, var(--bg), var(--color-neutral) var(--alpha))}.bg-success{background:color-mix(in oklab, var(--bg), var(--color-success) var(--alpha))}.bg-warning{background:color-mix(in oklab, var(--bg), var(--color-warning) var(--alpha))}.bg-danger{background:color-mix(in oklab, var(--bg), var(--color-danger) var(--alpha))}.bg-info{background:color-mix(in oklab, var(--bg), var(--color-info) var(--alpha))}.text-primary{color:color-mix(in oklab, var(--bg), var(--color-primary) var(--alpha))}.text-neutral{color:color-mix(in oklab, var(--bg), var(--color-neutral) var(--alpha))}.text-success{color:color-mix(in oklab, var(--bg), var(--color-success) var(--alpha))}.text-warning{color:color-mix(in oklab, var(--bg), var(--color-warning) var(--alpha))}.text-danger{color:color-mix(in oklab, var(--bg), var(--color-danger) var(--alpha))}.text-info{color:color-mix(in oklab, var(--bg), var(--color-info) var(--alpha))}.bg-panel{background:var(--panel)}.text-muted{color:var(--text-muted)}.bg-invert{background:color-mix(in oklab, var(--bg), var(--color-neutral) 92%);--text: var(--bg);--text-muted: color-mix(in oklab, var(--bg), var(--color-neutral) 40%);--panel: color-mix(in oklab, var(--color-neutral), var(--bg) 12%);--line: color-mix(in oklab, var(--color-neutral), var(--bg) 25%);color:var(--text)}.hide{display:none}@media(min-width: 640px){.hide-md{display:none}}@media(min-width: 1024px){.hide-lg{display:none}}@media(min-width: 1440px){.hide-xl{display:none}}@media(width < 640px){.show-md{display:none}}@media(width < 1024px){.show-lg{display:none}}@media(width < 1440px){.show-xl{display:none}}.items-start{align-items:start}.items-center{align-items:center}.items-end{align-items:end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.grow{flex-grow:1}.shrink{flex:0 0 auto}.auto{flex:1 1 0%;min-width:0}.round-0{border-radius:0;--frame-radius: 0}.round-sm{border-radius:var(--_radius-sm);--frame-radius: var(--_radius-sm)}.round{border-radius:var(--radius);--frame-radius: var(--radius)}.round-lg{border-radius:var(--_radius-lg);--frame-radius: var(--_radius-lg)}.round-full{border-radius:var(--_radius-full);--frame-radius: var(--_radius-full)}.shadow-0{box-shadow:none}.shadow-sm{box-shadow:var(--_shadow-sm)}.shadow{box-shadow:var(--shadow)}.shadow-lg{box-shadow:var(--_shadow-lg)}.w-full{width:100%}.w-fit{width:fit-content}.measure{max-width:65ch}.measure-sm{max-width:45ch}.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.relative{position:relative}.clip{overflow:clip}}@property --button-bg{syntax:"*";inherits:false}@property --button-fg{syntax:"*";inherits:false}@property --button-border{syntax:"*";inherits:false}@property --button-radius{syntax:"*";inherits:false}@property --button-pad-x{syntax:"*";inherits:false}@property --button-pad-y{syntax:"*";inherits:false}@layer components{.button{--button-color: var(--special);display:inline-flex;align-items:center;gap:var(--_space-1);padding:var(--button-pad-y, 0.6em) var(--button-pad-x, 1.2em);background:var(--button-bg, var(--button-color));color:var(--button-fg, oklch(from var(--button-color) calc((0.62 - l) * infinity) 0 h));border:var(--border-w) solid var(--button-border, transparent);border-radius:var(--button-radius, var(--radius));font-size:var(--_type-0);font-weight:var(--weight-medium);line-height:1.2;text-decoration:none;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition),filter var(--transition);user-select:none}.button.primary{--button-color: var(--color-primary)}.button.success{--button-color: var(--color-success)}.button.warning{--button-color: var(--color-warning)}.button.danger{--button-color: var(--color-danger)}.button.info{--button-color: var(--color-info)}.button.contrast{--button-color: var(--text)}.button.outline{--button-bg: transparent;--button-fg: var(--button-color);--button-border: var(--button-color)}.button.soft{--button-bg: color-mix(in oklab, var(--bg), var(--button-color) 14%);--button-fg: var(--button-color)}.button.ghost{--button-bg: transparent;--button-fg: var(--button-color)}.button.sm{font-size:var(--_type-sm)}.button.lg{font-size:var(--_type-1)}.button.pill{--button-radius: var(--_radius-full)}.button:hover{filter:brightness(1.08)}.button:active{filter:brightness(0.95)}.button:disabled,.button[aria-disabled=true]{opacity:.55;pointer-events:none}.button.is-loading{pointer-events:none;opacity:.8}}@property --card-bg{syntax:"*";inherits:false}@property --card-border{syntax:"*";inherits:false}@property --card-radius{syntax:"*";inherits:false}@property --card-pad{syntax:"*";inherits:true}@layer components{.card{display:flex;flex-direction:column;background:var(--card-bg, var(--panel));border:var(--border-w) solid var(--card-border, transparent);border-radius:var(--card-radius, var(--radius));overflow:clip}.card-media{border-radius:0}.card-body{padding:var(--card-pad, var(--_space-4))}.card-title{margin:0;font-size:var(--_type-1)}.card-text{margin:0;color:var(--text-muted)}.card-foot{padding:var(--card-pad, var(--_space-4));padding-block-start:0;margin-block-start:auto}.card.raised{box-shadow:var(--shadow)}.card.outline{--card-border: var(--line)}.card.soft{--card-bg: color-mix(in oklab, var(--card-accent, var(--special)) 8%, var(--content))}@container col (max-width: 18rem){.card-body{padding:var(--card-pad, var(--_space-3))}.card-foot{padding:var(--card-pad, var(--_space-3));padding-block-start:0}}}@property --input-bg{syntax:"*";inherits:false}@property --input-border{syntax:"*";inherits:false}@property --input-radius{syntax:"*";inherits:false}@property --input-pad-x{syntax:"*";inherits:false}@property --input-pad-y{syntax:"*";inherits:false}@layer components{.field{display:flex;flex-direction:column;gap:var(--_space-1)}.field-label{font-weight:var(--weight-medium);font-size:var(--_type-sm)}.field-help{font-size:var(--_type-sm);color:var(--text-muted);margin:0}.field-error{font-size:var(--_type-sm);color:var(--color-danger);margin:0;display:none}.field:has(:user-invalid) .field-error,.field:has([aria-invalid=true]) .field-error,.field.is-invalid .field-error{display:block}.input{display:block;width:100%;padding:var(--input-pad-y, 0.55em) var(--input-pad-x, 0.9em);font-size:var(--_type-0);font-family:inherit;color:var(--text);background:var(--input-bg, var(--content));border:var(--border-w) solid var(--input-border, var(--line));border-radius:var(--input-radius, var(--radius));transition:border-color var(--transition)}.input:hover{border-color:color-mix(in oklab, var(--input-border, var(--line)), var(--text) 20%)}.input:focus-visible{border-color:var(--special);outline:2px solid var(--focus);outline-offset:0}.input:user-invalid,.input[aria-invalid=true]{border-color:var(--color-danger)}.input:disabled{opacity:.55;background:var(--panel)}.input.sm{font-size:var(--_type-sm)}.input.lg{font-size:var(--_type-1)}.input:where(textarea){min-height:6em;resize:vertical}}@property --check-size{syntax:"*";inherits:true}@layer components{.check{display:inline-flex;align-items:center;gap:var(--_space-2);cursor:pointer}.check input{width:var(--check-size, 1.15em);height:var(--check-size, 1.15em);margin:0;flex:none;accent-color:var(--special);cursor:pointer}.check.sm{font-size:var(--_type-sm)}.check.lg{font-size:var(--_type-1)}.check:has(input:disabled){opacity:.55;cursor:not-allowed}}@property --switch-bg{syntax:"*";inherits:true}@property --switch-thumb{syntax:"*";inherits:true}@layer components{.switch{display:inline-flex;align-items:center;gap:var(--_space-2);cursor:pointer}.switch input{appearance:none;width:2.4em;height:1.3em;margin:0;flex:none;position:relative;border-radius:var(--_radius-full);background:var(--switch-bg, var(--line));transition:background var(--transition);cursor:pointer}.switch input::before{content:"";position:absolute;inset-block-start:2px;inset-inline-start:2px;width:calc(1.3em - 4px);height:calc(1.3em - 4px);border-radius:var(--_radius-full);background:var(--switch-thumb, #ffffff);box-shadow:var(--_shadow-sm);transition:translate var(--transition)}.switch input:checked{background:var(--special)}.switch input:checked::before{translate:1.1em 0}.switch.sm{font-size:var(--_type-sm)}.switch.lg{font-size:var(--_type-1)}.switch:has(input:disabled){opacity:.55;cursor:not-allowed}}@property --badge-bg{syntax:"*";inherits:false}@property --badge-fg{syntax:"*";inherits:false}@property --badge-border{syntax:"*";inherits:false}@property --badge-radius{syntax:"*";inherits:false}@layer components{.badge{--badge-accent: var(--special);display:inline-flex;align-items:center;gap:var(--_space-1);font-size:var(--_type-sm);font-weight:var(--weight-medium);line-height:1;padding:.35em .7em;border-radius:var(--badge-radius, var(--_radius-sm));border:var(--border-w) solid var(--badge-border, transparent);background:var(--badge-bg, color-mix(in oklab, var(--bg), var(--badge-accent) 12%));color:var(--badge-fg, var(--badge-accent))}.badge.primary{--badge-accent: var(--color-primary)}.badge.success{--badge-accent: var(--color-success)}.badge.warning{--badge-accent: var(--color-warning)}.badge.danger{--badge-accent: var(--color-danger)}.badge.info{--badge-accent: var(--color-info)}.badge.contrast{--badge-accent: var(--text)}.badge.solid{--badge-bg: var(--badge-accent);--badge-fg: oklch(from var(--badge-accent) calc((0.62 - l) * infinity) 0 h)}.badge.outline{--badge-bg: transparent;--badge-border: var(--badge-accent)}.badge.pill{--badge-radius: var(--_radius-full)}.badge.sm{font-size:calc(var(--_type-sm)*.85)}}@property --alert-bg{syntax:"*";inherits:false}@property --alert-fg{syntax:"*";inherits:true}@layer components{.alert{--alert-accent: var(--color-info);padding:var(--_space-3) var(--_space-4);border-radius:var(--radius);border-inline-start:3px solid var(--alert-accent);background:var(--alert-bg, color-mix(in oklab, var(--bg), var(--alert-accent) 10%));color:var(--text)}.alert-title{margin:0 0 var(--_space-1);font-weight:var(--weight-bold);color:var(--alert-fg, var(--alert-accent))}.alert p{margin:0}.alert.success{--alert-accent: var(--color-success)}.alert.warning{--alert-accent: var(--color-warning)}.alert.danger{--alert-accent: var(--color-danger)}.alert.solid{--alert-bg: var(--alert-accent);color:oklch(from var(--alert-accent) calc((0.62 - l) * infinity) 0 h);--alert-fg: oklch(from var(--alert-accent) calc((0.62 - l) * infinity) 0 h);--text-muted: color-mix(in oklab, var(--alert-accent), white 70%)}.alert.outline{--alert-bg: transparent;border:var(--border-w) solid var(--alert-accent);border-inline-start-width:3px}}@property --modal-w{syntax:"*";inherits:false}@property --modal-bg{syntax:"*";inherits:false}@layer components{.modal{width:min(var(--modal-w, 32rem),100vw - 2*var(--_space-3));max-height:calc(100dvh - 2*var(--_space-5));padding:0;border:none;border-radius:var(--_radius-lg);background:var(--modal-bg, var(--content));color:var(--text);box-shadow:var(--_shadow-lg);transition:opacity var(--transition),transform var(--transition)}.modal[open]{opacity:1;transform:translateY(0)}@starting-style{.modal[open]{opacity:0;transform:translateY(8px)}}.modal::backdrop{background:rgb(from var(--shadow-tint) r g b/45%);backdrop-filter:blur(2px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:var(--_space-4);padding-block-end:0}.modal-head :is(h1,h2,h3){margin:0}.modal-body{padding:var(--_space-4)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--_space-2);padding:var(--_space-4);padding-block-start:0}.modal.sm{--modal-w: 22rem}.modal.lg{--modal-w: 46rem}.modal.full{--modal-w: calc(100vw - 2 * var(--_space-3));max-height:calc(100dvh - 2*var(--_space-3))}@media(prefers-reduced-motion: reduce){.modal{transition:none}}}@layer components{.accordion{display:flex;flex-direction:column;gap:var(--_space-1)}.accordion-item{border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:clip}.accordion-head{display:flex;align-items:center;justify-content:space-between;gap:var(--_space-2);padding:var(--_space-3) var(--_space-4);cursor:pointer;font-weight:var(--weight-medium);list-style:none}.accordion-head::-webkit-details-marker{display:none}.accordion-head:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.accordion-head::after{content:"▾";flex:none;line-height:1;color:var(--text-muted);transition:rotate var(--transition)}.accordion-item[open]>.accordion-head::after{rotate:180deg}.accordion-body{padding:0 var(--_space-4) var(--_space-3)}.accordion.flat .accordion-item{border:none;border-radius:0;background:rgba(0,0,0,0);border-block-end:var(--border-w) solid var(--line)}@supports(interpolate-size: allow-keywords){.accordion-item{interpolate-size:allow-keywords}.accordion-item::details-content{block-size:0;overflow-y:clip;transition:block-size var(--transition),content-visibility var(--transition) allow-discrete}.accordion-item[open]::details-content{block-size:auto}}@media(prefers-reduced-motion: reduce){.accordion-head::after{transition:none}.accordion-item::details-content{transition:none}}}@property --tooltip-bg{syntax:"*";inherits:true}@property --tooltip-fg{syntax:"*";inherits:true}@property --tooltip-offset{syntax:"*";inherits:true}@property --tooltip-max{syntax:"*";inherits:true}@layer components{.tooltip{position:relative}.tooltip::after{content:attr(data-tip);position:absolute;z-index:10;left:50%;bottom:calc(100% + var(--tooltip-offset, 6px));translate:-50% 0;background:var(--tooltip-bg, var(--text));color:var(--tooltip-fg, var(--bg));font-size:var(--_type-sm);line-height:1.3;padding:.4em .7em;border-radius:var(--_radius-sm);white-space:nowrap;max-width:var(--tooltip-max, 18rem);opacity:0;visibility:hidden;transition:opacity var(--transition),visibility var(--transition);pointer-events:none}.tooltip:hover::after,.tooltip:focus-visible::after{opacity:1;visibility:visible}.tooltip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.tooltip.bottom::after{bottom:auto;top:calc(100% + var(--tooltip-offset, 6px))}.tooltip.right::after{left:calc(100% + var(--tooltip-offset, 6px));bottom:auto;top:50%;translate:0 -50%}.tooltip.left::after{left:auto;right:calc(100% + var(--tooltip-offset, 6px));bottom:auto;top:50%;translate:0 -50%}}@media(prefers-reduced-motion: reduce){@layer components{.tooltip::after{transition:none}}}@layer components{.loader{display:inline-block;width:1em;height:1em;flex:none;border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-block-start-color:currentColor;border-radius:var(--_radius-full);animation:wcss-spin .7s linear infinite}.loader.sm{font-size:var(--_type-sm)}.loader.lg{font-size:var(--_type-2)}@keyframes wcss-spin{to{rotate:360deg}}@media(prefers-reduced-motion: reduce){.loader{animation-duration:2.5s;animation-iteration-count:infinite}}}@property --icon{syntax:"*";inherits:false}@property --icon-size{syntax:"*";inherits:false}@layer components{.icon{display:inline-block;inline-size:var(--icon-size, 1.25em);block-size:var(--icon-size, 1.25em);flex:0 0 auto;vertical-align:-0.125em;border:0;background-color:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}.icon-sm{--icon-size: 1em}.icon-md{--icon-size: 1.5em}.icon-lg{--icon-size: 2em}.icon-box{display:inline-grid;place-items:center;inline-size:2.75em;block-size:2.75em;border-radius:var(--radius);color:var(--special);background:color-mix(in oklab, var(--bg), var(--special) 12%)}}


/* ===== EXTRAS (staged — not yet in wcss2 core) ===== */
/* --- extras/components-extra.css --- */
/* ============================================================
   wcss 2.0 — EXTRAS (staging, NIE w core)
   Kandydaci na komponenty z allsenses, których core nie pokrywa.
   Kompilują się do serwowanego CSS teraz; decyzja o wejściu do
   frameworka później. @layer components — zgodnie z kaskadą core.
   ============================================================ */
@layer components {

  /* --- NAV (allsenses: nav, nav-horizontal, nav-vertical, nav-md-burger) --- */
  .nav              { display:flex; gap:var(--_space-4, 1rem); align-items:center; list-style:none; margin:0; padding:0; }
  .nav a            { text-decoration:none; color:var(--text); }
  .nav a:hover      { color:var(--special); }
  .nav-horizontal   { flex-direction:row; flex-wrap:wrap; }
  /* nav w kolumnie wyrównanej do prawej (logo z lewej, menu z prawej) */
  .text-end .nav-horizontal, .text-end > .nav { justify-content:flex-end; }
  /* pasek nawigacji: logo z lewej, menu/CTA z prawej (nawet gdy środek ukryty) */
  .row:has(.nav-horizontal), .row:has(.nav-md-burger) { justify-content:space-between; }

  /* --- NAV DROPDOWN (np. Usługi) --- */
  .nav-dd        { position:relative; padding-bottom:.7rem; margin-bottom:-.7rem; } /* mostek hover, bez przerwy */
  .nav-dd-menu   { position:absolute; top:100%; left:0; min-width:15rem;
                   background:var(--bg); border:1px solid var(--line); border-radius:var(--radius);
                   box-shadow:var(--shadow); padding:.4rem; display:none; flex-direction:column; gap:.15rem; z-index:50; }
  .nav-dd:hover .nav-dd-menu, .nav-dd:focus-within .nav-dd-menu { display:flex; }
  .nav-dd-menu a { padding:.45rem .65rem; border-radius:6px; white-space:nowrap; text-decoration:none; color:var(--text); }
  .nav-dd-menu a:hover { background:var(--panel); }
  .nav-vertical     { flex-direction:column; align-items:stretch; }
  /* burger bez JS: poniżej md nawigacja układa się pionowo (kandydat — pełny burger wymaga JS) */
  @media (max-width:639px){ .nav-md-burger { flex-direction:column; align-items:stretch; } }

  /* --- STEPS / TIMELINE (allsenses: step, steps, steps-vertical) --- */
  .steps            { display:grid; gap:var(--_space-5, 1.5rem); }
  .steps-vertical   { grid-auto-flow:row; }
  .step             { position:relative; padding-inline-start:3rem; }
  .step::before     {
    content:""; position:absolute; left:0; top:0.15em;
    inline-size:1.75rem; block-size:1.75rem; border-radius:var(--radius-full, 999px);
    background:color-mix(in oklab, var(--bg), var(--special) 14%);
    border:2px solid var(--special);
  }
  .steps-vertical .step:not(:last-child)::after {
    content:""; position:absolute; left:0.8rem; top:2rem; bottom:-0.5rem;
    inline-size:2px; background:var(--line);
  }

  /* --- LIST-CHECK (allsenses: list-check) — items are <li>, <p> or <div> --- */
  .list-check       { list-style:none; margin:0; padding:0; display:grid; gap:var(--_space-2, 0.5rem); }
  .list-check > *   { position:relative; padding-inline-start:1.75rem; margin:0; }
  .list-check > *::before {
    content:""; position:absolute; left:0; top:0.2em; inline-size:1.1em; block-size:1.1em;
    background:var(--color-success, #12805c);
    -webkit-mask:url(/img/icons/tabler-icons/check.svg) center/contain no-repeat;
    mask:url(/img/icons/tabler-icons/check.svg) center/contain no-repeat;
  }

  /* --- ACCORDION (web component <ui-accordion>) — style light-DOM slotów --- */
  .accordion-item     { display:block; border:1px solid var(--line); border-radius:var(--radius); margin-block-end:0.5rem; overflow:hidden; }
  .accordion-title    { display:flex; justify-content:space-between; align-items:center; gap:1rem;
                        padding:1rem 1.25rem; font-weight:var(--weight-medium); cursor:pointer; }
  .accordion-title::after { content:""; inline-size:1rem; block-size:1rem; flex:0 0 auto; background:currentColor; opacity:.6;
                        -webkit-mask:url(/img/icons/tabler-icons/chevron-down.svg) center/contain no-repeat;
                        mask:url(/img/icons/tabler-icons/chevron-down.svg) center/contain no-repeat;
                        transition:transform .2s; }
  ui-accordion.active > .accordion-title::after { transform:rotate(180deg); }
  .accordion-content  { padding:0 1.25rem 1rem; color:var(--text-muted); }

  /* --- KAFEL IKONY (wireframe) — neutralny kwadrat z ikoną w kolorze marki --- */
  .icon-tile        { display:inline-grid; place-items:center; inline-size:3rem; block-size:3rem;
                      border:1px solid var(--line); border-radius:var(--radius); color:var(--special); }

  /* --- PLACEHOLDER OBRAZU (wireframe) — czysty neutralny box z glifem --- */
  .frame-ph         { background:var(--panel); border:1px solid var(--line); display:grid; place-items:center; color:var(--text-muted); }
  .frame-ph::after  {
    content:""; inline-size:2rem; block-size:2rem; opacity:0.4; background:currentColor;
    -webkit-mask:url(/img/icons/tabler-icons/photo.svg) center/contain no-repeat;
    mask:url(/img/icons/tabler-icons/photo.svg) center/contain no-repeat;
  }

  /* --- PRICING/CARD: wyrównanie sekcji między kartami w rzędzie ---
     karta = kolumna flex; blok cech (pt-6 z górną kreską) dociskany do dołu,
     więc przyciski i listy cech układają się w równych liniach. */
  .card.h-full        { display:flex; flex-direction:column; }
  .card.h-full > .pt-6 { margin-top:auto; }

  /* --- SECTION-HERO (allsenses: section-hero) --- */
  .section-hero     { min-height:70vh; display:grid; align-items:center; }

  /* --- DIVIDER (allsenses: divider — na <div>) --- */
  .divider          { block-size:1px; background:var(--line); border:0; margin-block:var(--_space-4, 1rem); }

  /* --- BEFORE / AFTER (allsenses: ba-compare, ba-before/after, ba-handle, ba-label*) ---
     Layout + klip. Przeciąganie uchwytu wymaga JS (kandydat). Domyślnie 50/50. */
  .ba-compare       { position:relative; overflow:hidden; border-radius:var(--radius); --ba:50%; }
  .ba-compare img   { display:block; width:100%; height:100%; object-fit:cover; }
  .ba-before        { position:relative; }
  .ba-after         { position:absolute; inset:0; width:var(--ba); overflow:hidden; }
  .ba-after img     { width:100vw; max-width:none; }
  .ba-handle        {
    position:absolute; top:0; bottom:0; left:var(--ba); width:2px; background:var(--bg);
    box-shadow:0 0 0 1px var(--line);
  }
  .ba-label         { position:absolute; bottom:0.5rem; padding:0.15rem 0.5rem; border-radius:var(--radius-sm,4px);
                      background:color-mix(in oklab, #000, transparent 40%); color:#fff; font-size:0.75rem; }
  .ba-label-before  { left:0.5rem; }
  .ba-label-after   { right:0.5rem; }
}

/* --- extras/utilities-extra.css --- */
/* ============================================================
   wcss 2.0 — EXTRAS (staging, NIE w core)
   Kandydaci na utilities, wyprowadzeni z komponentów allsenses.
   Kompilują się do serwowanego CSS teraz; o wejściu do frameworka
   i finalnej formie decyzja później. Trzymane w @layer utilities,
   żeby kaskada zgadzała się z core.
   ============================================================ */
@layer utilities {

  /* --- wagi fontu + interlinia (allsenses: font-weight-*, leading-*) --- */
  .medium         { font-weight: var(--weight-medium, 550); }
  .semibold       { font-weight: 600; }
  .leading-relaxed{ line-height: var(--leading-normal, 1.6); }
  .supersmall     { font-size: 0.75rem; }

  /* --- przycięcie wierszy (allsenses: text-clamp-2/3) --- */
  .text-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .text-clamp-3 { display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

  /* --- rozmiary --- */
  .h-full       { height: 100%; }
  .minh-100vh   { min-height: 100vh; }
  .minh-400px   { min-height: 400px; }
  .maxw-200px   { max-width: 200px; }
  .maxw-400px   { max-width: 400px; }
  .maxw-600px   { max-width: 600px; }
  .maxw-700px   { max-width: 700px; }

  /* --- pozycjonowanie --- */
  .position-relative { position: relative; }
  .position-absolute { position: absolute; }
  .position-sticky   { position: sticky; top: 0; }
  .inset-0           { inset: 0; }
  .z-2               { z-index: 2; }

  /* --- efekty --- */
  .overflow-hidden   { overflow: hidden; }
  .opacity-30        { opacity: 0.3; }
  .invert-black      { filter: brightness(0); }           /* logo cloud: jednolite czarne logo */
  .object-fit-cover  { object-fit: cover; width: 100%; height: 100%; }

  /* --- padding kierunkowy (core ma tylko py/px; allsenses: pt-*, pb-*) --- */
  .pt-0{padding-top:0}.pt-1{padding-top:var(--_space-1)}.pt-2{padding-top:var(--_space-2)}
  .pt-3{padding-top:var(--_space-3)}.pt-4{padding-top:var(--_space-4)}.pt-5{padding-top:var(--_space-5)}.pt-6{padding-top:var(--_space-6)}
  .pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--_space-1)}.pb-2{padding-bottom:var(--_space-2)}
  .pb-3{padding-bottom:var(--_space-3)}.pb-4{padding-bottom:var(--_space-4)}.pb-5{padding-bottom:var(--_space-5)}.pb-6{padding-bottom:var(--_space-6)}

  /* --- klasy nagłówków (core styluje po tagu; allsenses używa div.h2) --- */
  .h1{font-size:clamp(var(--_type-4),calc(1rem + 3vw),var(--_type-5));font-weight:var(--weight-bold);line-height:var(--leading-tight,1.15)}
  .h2{font-size:clamp(var(--_type-3),calc(1rem + 1.8vw),var(--_type-4));font-weight:var(--weight-bold);line-height:var(--leading-tight,1.15)}
  .h3{font-size:var(--_type-3);font-weight:var(--weight-bold);line-height:var(--leading-tight,1.15)}
  .h4{font-size:var(--_type-2);font-weight:var(--weight-bold);line-height:var(--leading-snug,1.3)}
  .h5{font-size:var(--_type-1);font-weight:var(--weight-medium);line-height:var(--leading-snug,1.3)}
  .h6{font-size:var(--_type-0);font-weight:var(--weight-medium);line-height:var(--leading-snug,1.3)}

  /* --- proporcje (allsenses: aspect-ratio-16-9 …) --- */
  .aspect-ratio-16-9 { aspect-ratio: 16 / 9; }
  .aspect-ratio-4-3  { aspect-ratio: 4 / 3; }
  .aspect-ratio-3-4  { aspect-ratio: 3 / 4; }
  .aspect-ratio-1-1  { aspect-ratio: 1 / 1; }
  .aspect-ratio-21-9 { aspect-ratio: 21 / 9; }
  .aspect-ratio-9-16 { aspect-ratio: 9 / 16; }

  /* --- ZGODNOŚĆ: klasy widoczności Foundation wstrzykiwane przez CMS ---
     (np. burger .menu-switch.hide-for-lg). Breakpointy jak w wcss2:
     md=640, lg=1024, xlg=1440. Foundation: hide-for-X = ukryte od X w górę,
     show-for-X = widoczne od X w górę (ukryte poniżej). */
  .hide-for-sm { display: none; }
}
@media (min-width: 640px)  { .hide-for-md  { display: none; } }
@media (min-width: 1024px) { .hide-for-lg  { display: none; } }
@media (min-width: 1440px) { .hide-for-xlg { display: none; } }
@media (max-width: 639px)  { .show-for-md  { display: none; } }
@media (max-width: 1023px) { .show-for-lg  { display: none; } }
@media (max-width: 1439px) { .show-for-xlg { display: none; } }

/* ==========================================================================
   Podnośniki Magnus — warstwa theme dla wcss2
   Tokeny marki wyprowadzone z żywej strony podnosnikimagnus.pl:
     - logo SVG fill    #981314  (przemysłowa czerwień)
     - --primaryDark    #821213
     - ink / --black    #1f1c1c
     - font             Montserrat
   Ten plik nadpisuje tylko tokeny — nie dotyka mechaniki wcss2.
   Jest doklejany na koniec skompilowanego style.min.css (skrypt build).
   ========================================================================== */
@layer theme {
  :root {
    --color-primary: #981314;   /* czerwień Magnus (logo) */
    --color-neutral: #1f1c1c;   /* atrament / teksty */
    --bg: #ffffff;
    --special: #981314;         /* akcent = marka */

    --font-sans: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-display: "Montserrat", system-ui, sans-serif;

    --weight-bold: 700;         /* Montserrat lepiej czyta się mocniej */
    --radius-md: 0.375rem;      /* ciaśniejszy, przemysłowy charakter */
    --type-ratio: 1.22;
  }

  /* Rytm sekcji — mniej niż domyślne wcss2, ale z oddechem
     (poprzednie wartości ~1.75rem dusiły layout). */
  .section     { --section-pad: clamp(3rem, 6vw, 4.75rem); }
  .section.lg  { --section-pad: clamp(3.75rem, 8vw, 6rem); }
  .section.sm  { --section-pad: clamp(1.5rem, 3vw, 2.25rem); }

  /* Kotwice (#kontakt, #uslugi…) nie chowają się pod sticky headerem */
  [id] { scroll-margin-block-start: 6.5rem; }
  html { scroll-behavior: smooth; }

  /* --------------------------------------------------------------
     Klikalne karty.
     Dwa wzorce w treści:
       <a class="card …">              — cała karta jest linkiem
       <div class="card …"> + a.cover  — link rozciągnięty na kartę
     Obie dostają ten sam hover (uniesienie + cień + akcent ramki).
     -------------------------------------------------------------- */
  a.card { text-decoration: none; color: inherit; }
  .card { position: relative; }
  .card a.cover { text-decoration: none; color: inherit; }
  .card a.cover::after { content: ""; position: absolute; inset: 0; z-index: 1; }

  a.card,
  .card:has(a.cover) {
    transition: translate var(--transition), box-shadow var(--transition),
                border-color var(--transition);
  }
  a.card:hover,
  .card:has(a.cover):hover {
    translate: 0 -3px;
    box-shadow: var(--_shadow-lg);
    --card-border: color-mix(in oklab, var(--line), var(--special) 45%);
  }
  .card .frame img { transition: scale 0.45s ease; }
  a.card:hover .frame img,
  .card:has(a.cover):hover .frame img { scale: 1.05; }

  /* --------------------------------------------------------------
     Galeria: a.zoom = miniatura otwierana w lightboxie (lightbox.js).
     Radius zostaje na wewnętrznym .frame / karcie — anchor go nie
     narzuca, więc wzorzec działa i solo, i wewnątrz karty.
     -------------------------------------------------------------- */
  a.zoom { display: block; position: relative; cursor: zoom-in; }
  a.zoom img { transition: scale 0.45s ease; }
  a.zoom:hover img { scale: 1.05; }
  /* plakietka z lupą w rogu (pojawia się na hover) */
  a.zoom::after {
    content: ""; position: absolute; right: 0.6rem; bottom: 0.6rem;
    width: 2.1rem; height: 2.1rem; border-radius: var(--radius);
    background: rgb(31 28 28 / 0.55);
    opacity: 0; transition: opacity var(--transition);
  }
  a.zoom::before {
    content: ""; position: absolute; right: 0.6rem; bottom: 0.6rem; z-index: 1;
    width: 2.1rem; height: 2.1rem; background-color: #ffffff;
    -webkit-mask: url(/img/icons/tabler-icons/zoom-in.svg) center / 1.25rem no-repeat;
    mask: url(/img/icons/tabler-icons/zoom-in.svg) center / 1.25rem no-repeat;
    opacity: 0; transition: opacity var(--transition);
  }
  a.zoom:hover::after, a.zoom:hover::before,
  a.zoom:focus-visible::after, a.zoom:focus-visible::before { opacity: 1; }

  /* --------------------------------------------------------------
     Slider opinii Google ({{>google/reviews}} + Swiper) — część
     tokenowa. Reguły nadpisujące swiper.css są NA KOŃCU pliku,
     POZA @layer (swiper.css jest bezwarstwowy i bije warstwy).
     -------------------------------------------------------------- */
  .section:has(.reviews-empty) { display: none; }
  .review-card { height: 100%; }
  .review-avatar {
    width: 48px; height: 48px; flex: none;
    border-radius: var(--_radius-full); object-fit: cover;
    background: var(--panel);
  }
  .review-name { line-height: 1.25; }
  .review-stars { display: inline-flex; gap: 2px; color: #eab308; }
  .review-text {
    display: -webkit-box;
    -webkit-line-clamp: 7;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .reviews-summary { margin-block-start: 0.5rem; }

  /* lightbox (dialog tworzony przez /js/lightbox.js) */
  .lightbox-dialog {
    border: none; padding: 0; background: transparent;
    max-width: min(92vw, 1200px); max-height: 92dvh;
  }
  .lightbox-dialog::backdrop {
    background: rgb(12 10 10 / 0.85);
    backdrop-filter: blur(3px);
  }
  .lightbox-dialog img {
    display: block; max-width: 100%; max-height: 92dvh;
    width: auto; height: auto; margin: auto;
    border-radius: 0.5rem; box-shadow: var(--_shadow-lg);
    cursor: zoom-out;
  }
}

/* ==========================================================================
   POZA @layer — nadpisania trzeciej strony (swiper.css jest bezwarstwowy,
   więc bije wszystkie warstwy; te reguły muszą też być bezwarstwowe
   i ładować się PO swiper.css — style.min.css jest linkowany później).
   ========================================================================== */
.reviews-slider {
  /* swiper.css daje .swiper{margin-inline:auto} — auto-marginesy wyłączają
     stretch w kolumnie flex (.stack) i element rósł do fit-content
     (szerokość WSZYSTKICH slajdów => rozjeżdżało body). */
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  padding-block-end: 2.25rem;                            /* miejsce na kropki */
}
.reviews-slider .swiper-slide { height: auto; }
@media (min-width: 768px) {
  .reviews-slider .swiper-slide { width: 24rem; }       /* slidesPerView:auto */
}
.reviews-slider .swiper-pagination-bullet-active { background: var(--special); }

/* strzałki nawigacji — desktop; na dotyku wystarczy swipe */
.reviews-slider { --swiper-navigation-size: 1.75rem; --swiper-navigation-color: #981314; }
.reviews-slider .swiper-button-prev,
.reviews-slider .swiper-button-next {
  width: 2.75rem; height: 2.75rem;
  border-radius: 999rem;
  background: rgb(255 255 255 / 0.92);
  box-shadow: 0 4px 12px rgb(31 28 28 / 0.14);
  top: calc(50% - 1.125rem);
}
.reviews-slider .swiper-button-disabled { opacity: 0; pointer-events: none; }
@media (max-width: 767px) {
  .reviews-slider .swiper-button-prev,
  .reviews-slider .swiper-button-next { display: none; }
}

/* strzalki: wlasne chevrony zamiast fontu swiper-icons (nie laduje sie) */
.reviews-slider .swiper-button-prev::after,
.reviews-slider .swiper-button-next::after {
  content: "";
  font-size: 0;
  width: 1.4rem; height: 1.4rem;
  background-color: #981314;
  -webkit-mask: url(/img/icons/tabler-icons/chevron-left.svg) center / contain no-repeat;
  mask: url(/img/icons/tabler-icons/chevron-left.svg) center / contain no-repeat;
}
.reviews-slider .swiper-button-next::after {
  -webkit-mask-image: url(/img/icons/tabler-icons/chevron-right.svg);
  mask-image: url(/img/icons/tabler-icons/chevron-right.svg);
}
