/* Renomex — shared foundation: tokens, base, helpers, header, footer, 404, contact. */

:root{
  --paper:#e7e4dd; --panel:#f6f4ef; --white:#ffffff; --line:#c9c4b9; --line-2:#9aa3a6;
  --ink:#1c3541;
  --muted:#4a5a62;
  --link:#1d4b8f;
  --warn:#a33a12;
  --yellow:#ffc200;
  --slate:#1c3541; --slate-2:#13262f;
  --chalk:#f3f1ea;
  --chalk-muted:#b7c4c9;
  --steel:#7d929a;
  --font-head:'Oswald','Arial Narrow',sans-serif; --font-body:'Barlow',ui-sans-serif,'Segoe UI',sans-serif; --font-mono:'Space Mono',ui-monospace,Menlo,monospace;
  --wrap:1320px; --gap:16px;
  --pad:clamp(16px,4vw,48px);
  --head-h:72px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --tape:repeating-linear-gradient(-45deg,var(--yellow) 0 14px,var(--ink) 14px 28px);
  --sc-accent:#1c3541; --sc-icon-stroke:2.5;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--font-body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
main{display:block;min-height:50vh}
img,svg,video{max-width:100%;display:block}
img{height:auto}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;line-height:1.08;margin:0 0 .5em;letter-spacing:.005em;text-wrap:balance}
h1{font-size:clamp(2.3rem,5.2vw,4.3rem);font-weight:700;line-height:1.02}
h2{font-size:clamp(1.8rem,3.4vw,2.8rem)}
h3{font-size:clamp(1.25rem,1.8vw,1.5rem);font-weight:500}
h4{font-size:1.1rem;font-weight:500}
p,ul,ol,dl{margin:0 0 1em}
strong,b{font-weight:600}
em,i,cite{font-style:normal}
small{font-size:.88rem}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:3px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{
  min-height:48px;width:100%;padding:10px 12px;background:var(--white);color:var(--ink);
  border:1px solid var(--line-2);border-radius:2px;
}
textarea{min-height:120px;resize:vertical}
input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--ink);margin:0}
label{cursor:pointer}
::placeholder{color:var(--muted);opacity:1}
summary{cursor:pointer}
::selection{background:var(--yellow);color:var(--ink)}
[hidden]{display:none !important}

/* focus: 3px yellow + 1px ink outer on light; 3px yellow on slate */
:focus{outline:none}
:focus-visible{outline:3px solid var(--yellow);outline-offset:0;box-shadow:0 0 0 4px var(--ink)}
.band :focus-visible,.site-foot :focus-visible{box-shadow:none;outline-offset:2px}

/* ---------- shared helpers ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.bleed{width:100%;position:relative}
.measure{max-width:68ch}
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.grid{display:grid;gap:var(--gap)}
.grid>*{min-width:0}

.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.spec{display:inline-block;font:700 .78rem/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:inherit;margin:0 0 .6em}
.price{font:700 1.5rem/1.1 var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.price--lg{font-size:clamp(2rem,4vw,2.8rem)}
.muted{color:var(--muted)}

.panel{background:var(--panel);border:1px solid var(--line);padding:clamp(18px,2.4vw,32px)}
.panel--frame{border:2px solid var(--ink)}
.band{background:var(--slate);color:var(--chalk)}
.band a:not(.btn){color:var(--chalk)}
.band .muted{color:var(--chalk-muted)}
.band--deep{background:var(--slate-2)}

.ordinal{display:block;font:700 clamp(5rem,9vw,8rem)/.82 var(--font-head);letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px var(--line-2);font-variant-numeric:tabular-nums;user-select:none}
.ordinal--fill{color:var(--yellow);-webkit-text-stroke:1.5px var(--ink)}
.band .ordinal{-webkit-text-stroke-color:var(--yellow)}
.band .ordinal--fill{color:var(--yellow);-webkit-text-stroke:0}

.chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 10px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:700 .78rem/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.chip--yellow{background:var(--yellow);color:var(--ink)}
.chip--ink{background:var(--ink);color:var(--chalk)}
a.chip:hover{background:var(--ink);color:var(--chalk)}
.band .chip{border-color:var(--chalk);color:var(--chalk)}
.band .chip--yellow{color:var(--ink);border-color:var(--yellow)}

.note-box{position:relative;background:var(--panel);color:var(--ink);border:2px solid var(--warn);padding:14px 16px 14px 18px;margin:0 0 1em;font-size:.97rem;max-width:68ch}
.note-box::before{content:"Note";display:block;font:700 .78rem/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--warn);margin-bottom:4px}
.note-box--sm{padding:8px 10px;font-size:.9rem;border-width:1px}
.note-box--sm::before{display:inline;margin:0 6px 0 0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 22px;
  border:2px solid var(--ink);border-radius:0;background:var(--yellow);color:var(--ink);
  font:500 1rem/1.15 var(--font-head);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;text-align:center;
  transition:background-color .15s,color .15s,border-color .15s}
.btn:hover{background:var(--ink);color:var(--yellow);text-decoration:none}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--chalk)}
.btn--sm{min-height:44px;padding:8px 16px;font-size:.92rem}
.btn--block{width:100%}
.btn--on-dark,.band .btn--ghost{background:transparent;color:var(--chalk);border-color:var(--chalk)}
.btn--on-dark:hover,.band .btn--ghost:hover{background:var(--chalk);color:var(--ink)}
.band .btn:not(.btn--ghost):not(.btn--on-dark){border-color:var(--yellow)}
.band .btn:not(.btn--ghost):not(.btn--on-dark):hover{background:var(--chalk);color:var(--ink);border-color:var(--chalk)}
.btn.is-in{background:var(--panel);color:var(--ink);border-style:dashed}
.btn.is-in::before{content:"";width:10px;height:10px;background:var(--ink);flex:none}
.btn.is-in:hover{background:var(--ink);color:var(--chalk);border-style:solid}
.btn.is-in:hover::before{background:var(--yellow)}
.band .btn.is-in{background:transparent;color:var(--chalk);border-color:var(--chalk)}
.band .btn.is-in::before{background:var(--yellow)}
.add-form{display:inline;margin:0}

/* tables */
.tbl-wrap{position:relative;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);background:var(--panel)}
.tbl{width:100%;border-collapse:collapse;font-size:.97rem;background:var(--panel)}
.tbl th,.tbl td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.tbl thead th{background:var(--slate);color:var(--chalk);font:700 .78rem/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-bottom:0;white-space:nowrap}
.tbl tbody tr:hover{background:var(--white)}
.tbl tfoot td,.tbl tfoot th{font-weight:600;border-top:2px solid var(--ink);border-bottom:0}
.tbl .num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl caption{caption-side:top;text-align:left;padding:0 0 8px;font:700 .78rem/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase}

/* duotone photo: grayscale + slate multiply, colour on hover/focus of the photo or its card */
.duo{position:relative;overflow:hidden;background:var(--slate);isolation:isolate}
.duo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .4s,transform .4s}
.duo::after{content:"";position:absolute;inset:0;background:var(--slate);mix-blend-mode:multiply;opacity:.35;pointer-events:none;transition:opacity .4s}
.duo:hover img,.duo:focus-within img,*:hover>.duo img,*:focus-within>.duo img,.duo-card:hover .duo img,.duo-card:focus-within .duo img{filter:none}
.duo:hover::after,.duo:focus-within::after,*:hover>.duo::after,*:focus-within>.duo::after,.duo-card:hover .duo::after,.duo-card:focus-within .duo::after{opacity:0}

/* card hover: the only shadow on the site */
.lift{transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.lift:hover,.lift:focus-within{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink)}

/* hazard tape: max one per page, decorative (aria-hidden) */
.tape{display:block;height:14px;background:var(--tape);background-size:39.6px 39.6px;animation:tape 20s linear infinite}

/* dimension line: <div class="dim" aria-hidden="true"><span>2 400 mm</span></div> */
.dim{position:relative;display:flex;align-items:center;justify-content:center;height:22px;color:var(--ink)}
.dim::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;}
.dim::after{content:"";position:absolute;inset:3px 0;border-inline:1px solid currentColor}
.dim>span{position:relative;z-index:1;padding:0 8px;background:var(--paper);font:700 .78rem/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.dim--panel>span{background:var(--panel)}
.dim--dark{color:var(--chalk)}
.dim--dark>span{background:var(--slate)}
.dim--v{flex-direction:column;width:22px;height:auto;min-height:120px}
.dim--v::before{left:50%;right:auto;top:0;bottom:0;width:1px;height:auto}
.dim--v::after{inset:0 3px;border-inline:0;border-block:1px solid currentColor}
.dim--v>span{writing-mode:vertical-rl;transform:rotate(180deg);padding:8px 0}

/* frame snap: a top bar that draws itself when its .reveal (or itself) becomes visible */
.snap{position:relative}
.snap::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--ink);transform-origin:left center;z-index:2;pointer-events:none}
.band .snap::before,.snap--yellow::before{background:var(--yellow)}
.js .reveal:not(.is-in) .snap::before,.js .reveal.snap:not(.is-in)::before{transform:scaleX(0)}
.js .reveal.is-in .snap::before,.js .reveal.snap.is-in::before{animation:snap .6s var(--ease) both}

/* reveal: only hidden when JS runs */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}
.js .reveal[data-delay="1"]{transition-delay:.08s}
.js .reveal[data-delay="2"]{transition-delay:.16s}
.js .reveal[data-delay="3"]{transition-delay:.24s}

.bubble{animation:bubble 3.2s ease-in-out infinite alternate}

@keyframes snap{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes tape{from{background-position:0 0}to{background-position:396px 0}}
@keyframes bubble{
  0%{transform:translateX(0)}
  30%{transform:translateX(-14px)}
  55%{transform:translateX(9px)}
  75%{transform:translateX(-4px)}
  100%{transform:translateX(2px)}
}

/* horizontal scroll strip helper progress bar */
.hs-progress{height:4px;background:var(--line);position:relative;overflow:hidden}
.hs-progress>span{position:absolute;inset:0 auto 0 0;width:100%;background:var(--ink);transform-origin:left center;transform:scaleX(0)}

/* ---------- header ---------- */
.site-skip{position:absolute;left:12px;top:-100px;z-index:200;background:var(--yellow);color:var(--ink);padding:12px 18px;font:600 1rem var(--font-head);text-transform:uppercase;letter-spacing:.04em;border:2px solid var(--ink);text-decoration:none}
.site-skip:focus{top:12px}
.site-head{position:sticky;top:0;z-index:60;background:var(--panel);border-bottom:2px solid var(--ink)}
.site-head__bar{position:relative;display:flex;align-items:center;gap:clamp(12px,2vw,28px);min-height:var(--head-h)}
.site-brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;flex:none;min-height:48px}
.site-brand img{width:48px;height:48px}
.site-brand__txt{display:flex;flex-direction:column;line-height:1}
.site-brand__name{font:600 1.55rem/1 var(--font-head);letter-spacing:.04em;text-transform:uppercase}
.site-brand__tag{font:400 .78rem/1.3 var(--font-mono);letter-spacing:.02em;color:var(--muted);margin-top:4px;white-space:nowrap}
.site-brand:hover .site-brand__name{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}

.site-nav{margin-left:auto}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px}
.site-nav a{display:flex;align-items:center;min-height:48px;padding:0 12px;color:var(--ink);text-decoration:none;
  font:500 1rem/1 var(--font-head);letter-spacing:.04em;text-transform:uppercase;box-shadow:inset 0 0 0 transparent;transition:box-shadow .15s}
.site-nav a:hover{box-shadow:inset 0 -3px 0 var(--ink)}
.site-nav a[aria-current="page"]{box-shadow:inset 0 -6px 0 var(--yellow)}
.site-nav a:focus-visible{box-shadow:0 0 0 4px var(--ink)}

.site-tools{display:flex;align-items:center;gap:8px;flex:none}
.site-search{display:flex;align-items:center;margin:0}
.site-search input[type=search]{width:200px;min-height:44px;border:1px solid var(--ink);border-right:0;padding:8px 10px;font-size:1rem}
.site-search__btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--ink);background:var(--panel);color:var(--ink);padding:0;flex:none}
.site-search__btn:hover{background:var(--ink);color:var(--yellow)}
.site-search__btn svg,.site-cart svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square}
.js .site-search input[type=search]{width:0;padding-inline:0;border-color:transparent;opacity:0;visibility:hidden;transition:width .25s var(--ease),opacity .2s,padding .25s,visibility 0s .25s}
.js .site-search.is-open input[type=search]{width:220px;padding-inline:10px;border-color:var(--ink);opacity:1;visibility:visible;transition:width .25s var(--ease),opacity .2s,padding .25s}

.site-cart{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px 0 8px;color:var(--ink);text-decoration:none;font:500 1rem/1 var(--font-head);letter-spacing:.04em;text-transform:uppercase}
.site-cart:hover .site-cart__lbl{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}
.site-cart[aria-current="page"] .site-cart__lbl{box-shadow:inset 0 -4px 0 var(--yellow)}
.site-cart__n{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;background:var(--yellow);color:var(--ink);border:1px solid var(--ink);font:700 .95rem/1 var(--font-mono);font-variant-numeric:tabular-nums}

.site-menu-btn{display:none;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:2px solid var(--ink);background:var(--panel);color:var(--ink);font:500 .95rem/1 var(--font-head);letter-spacing:.04em;text-transform:uppercase}
.site-menu-btn:hover{background:var(--ink);color:var(--chalk)}
.site-menu-btn__bars{position:relative;width:18px;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}
.site-menu-btn[aria-expanded="true"] .site-menu-btn__bars{background:transparent;box-shadow:none}
.site-menu-btn[aria-expanded="true"] .site-menu-btn__bars::before,
.site-menu-btn[aria-expanded="true"] .site-menu-btn__bars::after{content:"";position:absolute;left:0;top:0;width:18px;height:2px;background:currentColor;transform:rotate(45deg)}
.site-menu-btn[aria-expanded="true"] .site-menu-btn__bars::after{transform:rotate(-45deg)}

@media (max-width:1080px){
  .site-nav a{padding:0 8px;font-size:.95rem}
  .js .site-search.is-open input[type=search]{width:170px}
}
@media (max-width:980px){
  .site-head__bar{flex-wrap:wrap;padding-block:10px}
  .site-tools{margin-left:auto}
  /* without JS: nav and search sit on their own rows */
  html:not(.js) .site-nav{order:3;width:100%;margin:0;border-top:1px solid var(--line)}
  html:not(.js) .site-tools{flex-wrap:wrap}
  html:not(.js) .site-search input[type=search]{width:min(200px,50vw)}
  /* with JS: menu button + drop panel */
  .js .site-head__bar{flex-wrap:nowrap;padding-block:0}
  .js .site-menu-btn{display:inline-flex}
  .js .site-menu-btn[hidden]{display:none !important}
  .js .site-nav{display:none;position:absolute;left:0;right:0;top:100%;margin:0;margin-top:2px;background:var(--panel);border-bottom:2px solid var(--ink);box-shadow:0 6px 0 rgba(28,53,65,.12)}
  .js .site-head.is-menu .site-nav{display:block}
  .js .site-nav ul{flex-direction:column;gap:0;padding:8px var(--pad) 16px}
  .js .site-nav li+li{border-top:1px solid var(--line)}
  .js .site-nav a{min-height:52px;font-size:1.15rem;padding:0 4px}
  .js .site-nav a[aria-current="page"]{box-shadow:inset 6px 0 0 var(--yellow);padding-left:16px}
  .js .site-search{position:static}
  .js .site-search.is-open input[type=search]{position:absolute;left:0;right:0;top:100%;margin-top:2px;width:auto;min-height:56px;padding-inline:var(--pad);border:0;border-bottom:2px solid var(--ink);background:var(--panel);z-index:2}
}
@media (max-width:560px){
  :root{--head-h:64px}
  .site-brand img{width:40px;height:40px}
  .site-brand__name{font-size:1.3rem}
  .site-brand__tag{display:none}
  .site-cart__lbl,.site-menu-btn__lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .site-menu-btn{width:44px;padding:0;justify-content:center}
  .site-tools{gap:6px}
  html:not(.js) .site-search input[type=search]{width:calc(100vw - 2*var(--pad) - 44px)}
  html:not(.js) .site-tools{order:2;width:100%}
}

/* ---------- footer ---------- */
.site-foot{background:var(--slate);color:var(--chalk);border-top:6px solid var(--yellow);margin-top:clamp(48px,7vw,96px);padding-top:clamp(40px,5vw,64px)}
.site-foot a{color:var(--chalk)}
.site-foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px clamp(20px,3vw,48px);padding-bottom:36px}
.site-foot__grid>*{min-width:0}
.site-foot__plate{display:inline-block;background:var(--panel);padding:6px;line-height:0;margin-bottom:16px}
.site-foot__plate img{width:64px;height:64px}
.site-foot__brand p{max-width:30ch;font:500 1.2rem/1.35 var(--font-head);letter-spacing:.01em;margin:0}
.site-foot__col h2{color:var(--yellow);font-size:.78rem;margin-bottom:12px}
.site-foot__col ul{list-style:none;margin:0;padding:0}
.site-foot__col a{display:inline-flex;align-items:center;gap:8px;min-height:40px;text-decoration:none}
.site-foot__col a:hover{text-decoration:underline;text-decoration-thickness:2px}
.site-foot__col .mono{font-size:.8rem;color:var(--chalk-muted)}
.site-foot__pay{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding-block:20px;border-top:1px solid rgba(183,196,201,.35)}
.site-pay{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.site-pay img{height:26px;width:auto}
.site-pay__cap{margin:0;color:var(--chalk-muted);font-size:.92rem}
.site-foot__base{padding-block:16px 28px;border-top:1px solid rgba(183,196,201,.35)}
.site-foot__base p{margin:0;font-size:.85rem;color:var(--chalk-muted)}
@media (max-width:900px){.site-foot__grid{grid-template-columns:1fr 1fr}.site-foot__brand{grid-column:1/-1}}
@media (max-width:420px){.site-foot__grid{grid-template-columns:1fr}}

/* ---------- 404 ---------- */
.site-404{padding-block:clamp(32px,6vw,80px)}
.site-404__grid{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(20px,3vw,40px);align-items:stretch}
.site-404__grid>*{min-width:0}
.site-404__board{border:2px solid var(--ink);background:var(--panel)}
.site-404__strip{background:var(--yellow);color:var(--ink);padding:10px clamp(16px,3vw,32px);border-bottom:2px solid var(--ink);margin:0}
.site-404__body{padding:clamp(20px,3.4vw,44px)}
.site-404__level{position:relative;height:86px;margin:8px 0 28px;border:2px solid var(--ink);background:var(--yellow);display:flex;align-items:center;justify-content:center}
.site-404__vial{position:relative;width:min(280px,70%);height:40px;border:2px solid var(--ink);background:#d9e7b8;overflow:hidden}
.site-404__vial::before,.site-404__vial::after{content:"";position:absolute;top:0;bottom:0;width:2px;background:var(--ink);left:calc(50% - 26px)}
.site-404__vial::after{left:calc(50% + 24px)}
.site-404__bubble{position:absolute;top:7px;left:calc(50% + 34px);width:44px;height:22px;border-radius:50%;background:var(--white);border:1px solid var(--ink)}
.site-404__level::before,.site-404__level::after{content:"";position:absolute;top:50%;width:14px;height:14px;margin-top:-7px;border:2px solid var(--ink);border-radius:50%;background:var(--panel)}
.site-404__level::before{left:18px}.site-404__level::after{right:18px}
.site-404__links{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.site-404__photo{margin:0;min-height:280px;border:2px solid var(--ink)}
.site-404__photo img{height:100%;min-height:280px}
@media (max-width:820px){.site-404__grid{grid-template-columns:1fr}.site-404__photo,.site-404__photo img{min-height:200px;max-height:260px}}

/* ---------- contact ---------- */
.site-contact{padding-block:clamp(32px,5vw,72px)}
.site-contact__grid{display:grid;grid-template-columns:.8fr 1.45fr;grid-template-rows:auto auto;gap:0;border:2px solid var(--ink);background:var(--panel)}
.site-contact__grid>*{min-width:0}
.site-contact__head{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,3vw,40px);align-items:end;padding:clamp(20px,3.4vw,44px);border-bottom:2px solid var(--ink)}
.site-contact__head h1{margin:0}
.site-contact__head p{margin:0;color:var(--muted);max-width:52ch}
.site-contact__photo{margin:0;border-right:2px solid var(--ink);min-height:320px}
.site-contact__photo img{height:100%;min-height:320px}
.site-contact__lines{display:grid;grid-template-columns:1fr}
.site-contact__line{display:grid;grid-template-columns:7.5rem 1fr;gap:16px;padding:clamp(18px,2.6vw,32px) clamp(18px,3vw,40px);border-bottom:1px solid var(--line)}
.site-contact__line:last-child{border-bottom:0}
.site-contact__line .spec{margin:4px 0 0;color:var(--muted)}
.site-contact__line h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin:0 0 .3em}
.site-contact__line p{margin:0 0 .5em;max-width:58ch}
.site-contact__mail{font:700 clamp(1.05rem,2.4vw,1.5rem)/1.3 var(--font-mono);overflow-wrap:anywhere}
.site-contact__aside{margin-top:clamp(24px,4vw,48px);display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(16px,3vw,40px);align-items:start}
.site-contact__aside>*{min-width:0}
.site-contact__aside ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.site-contact__aside li{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.site-contact__aside li .mono{font-size:.85rem;color:var(--muted);padding-top:2px}
@media (max-width:860px){
  .site-contact__grid{grid-template-columns:1fr}
  .site-contact__head{grid-template-columns:1fr}
  .site-contact__photo{border-right:0;border-bottom:2px solid var(--ink);min-height:0}
  .site-contact__photo img{min-height:0;aspect-ratio:16/9}
  .site-contact__aside{grid-template-columns:1fr}
}
@media (max-width:480px){.site-contact__line{grid-template-columns:1fr;gap:4px}}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;transition-delay:0s !important;scroll-behavior:auto !important}
  .tape,.bubble,.site-404__bubble{animation:none !important}
  .js .reveal{opacity:1;transform:none}
  .js .reveal:not(.is-in) .snap::before,.js .reveal.snap:not(.is-in)::before{transform:none}
  .lift:hover,.lift:focus-within{transform:none}
}

@media print{
  .site-head,.site-foot,.sc-launch,.sc,.tape{display:none !important}
  body{background:#fff}
}
@media (max-width:360px){
  .site-brand{gap:6px}
  .site-brand img{width:34px;height:34px}
  .site-brand__name{font-size:1.1rem}
  .site-tools{gap:4px}
}

/* PL/EN switch (owner 2026-10-24: Polish by default, English under /en/) */
.site-lang{display:flex;border:1px solid rgba(28,53,65,.25);border-radius:999px;padding:2px;flex:none}
.site-lang a{display:grid;place-items:center;min-width:34px;min-height:32px;padding:0 6px;border-radius:999px;color:var(--ink);text-decoration:none;font:600 .8rem/1 var(--font-mono,monospace);letter-spacing:.04em}
.site-lang a[aria-current]{background:var(--ink);color:var(--chalk)}
.site-lang a:not([aria-current]):hover{background:rgba(28,53,65,.1)}
@media (max-width:360px){.site-lang a{min-width:28px;padding:0 4px}}
/* phones: only the other language is offered, the current one is already on screen */
@media (max-width:560px){.site-lang{border:0;padding:0}.site-lang a[aria-current]{display:none}.site-lang a{border:1px solid rgba(28,53,65,.3);min-height:44px;min-width:40px}}
@media (max-width:400px){.site-brand__txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
