/* BESTPOL / October 2026
   Independent, dependency-free presentation layer. Existing routes and content are retained.
   Two system font stacks; no remote fonts, icon libraries or runtime build step. */
:root {
  --ink:#172b46; --text:#354255; --muted:#596575; --blue:#2c50b3;
  --blue-dark:#1c3a8a; --paper:#fff; --wash:#f4f5f3; --line:#d9dddF;
  --soft:#eef1f5; --navy:#172b46; --radius:3px; --max:1320px;
  --sans:Arial,Helvetica,sans-serif; --mono:ui-monospace,SFMono-Regular,Consolas,monospace;
  --section:88px; --header:90px;
}
* { box-sizing:border-box; }
html { scroll-padding-top:110px; -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--text); font:17px/1.65 var(--sans); }
[hidden] { display:none!important; }
img { display:block; max-width:100%; height:auto; }
figure { margin:0; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.75; }
a { color:var(--blue); text-underline-offset:4px; text-decoration-thickness:1px; }
a:hover { color:var(--blue-dark); }
a,button { transition:color .16s ease,background-color .16s ease,border-color .16s ease; }
:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
::selection { background:#dce6ff; color:var(--ink); }
h1,h2,h3,h4 { margin:0 0 20px; color:var(--ink); line-height:1.14; font-weight:600; text-wrap:pretty; }
h1 { font-size:clamp(36px,3.9vw,56px); letter-spacing:-.04em; }
h2 { font-size:clamp(29px,2.9vw,40px); letter-spacing:-.035em; }
h3 { font-size:23px; letter-spacing:-.023em; }
p { margin:0 0 20px; }
p:last-child { margin-bottom:0; }
ul,ol { margin:0 0 24px; padding-left:23px; }
li { padding-left:4px; margin:0 0 8px; }
strong { color:var(--ink); font-weight:600; }
small,.small-note { font-size:14px; line-height:1.65; color:var(--muted); }
.container { width:min(var(--max),calc(100% - 112px)); margin-inline:auto; }
.section-pad { padding-block:var(--section); }
.section-pad + .section-pad:not(.muted-section) { border-top:1px solid var(--line); }
.muted-section { background:var(--wash); }
.kicker,.eyebrow,.section-kicker { display:block; margin-bottom:22px; color:var(--blue); font:500 11px/1.5 var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.section-head { max-width:830px; margin-bottom:40px; }
.section-head p:not(.kicker) { max-width:760px; }
.section-head h1 + p,.service-lead,.detail-lead,.article-lead { font-size:19px; line-height:1.65; }
.section-head p.kicker { max-width:none; }
.section-heading-row { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:44px; }
.section-heading-row h2 { margin:0; }
.section-heading-row > a { flex-shrink:0; margin-bottom:4px; }
.arrow { font-weight:400; display:inline-block; margin-left:16px; font-size:1.18em; line-height:1; }
.btn,.nav-cta { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:50px; padding:13px 22px; border:1px solid transparent; border-radius:var(--radius); font-size:15px; font-weight:600; line-height:1.35; text-decoration:none; text-align:center; }
.btn-primary,.nav-cta { color:#fff; background:var(--blue); border-color:var(--blue); }
.btn-primary:hover,.nav-cta:hover { color:#fff; background:var(--blue-dark); border-color:var(--blue-dark); }
.btn-secondary { color:var(--ink); border-color:#bdc6d0; background:transparent; }
.btn-secondary:hover { color:var(--blue); border-color:var(--blue); background:var(--soft); }
.btn-full { width:100%; }
.text-link,.read-more { display:inline-flex; align-items:center; min-height:44px; font-size:15px; font-weight:600; gap:8px; text-decoration:underline; text-underline-offset:5px; }
.hero-actions,.detail-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 26px; margin:30px 0 0; }
.skip-link { position:fixed; z-index:300; top:10px; left:16px; padding:12px 18px; background:var(--ink); color:#fff; transform:translateY(-150%); }
.skip-link:focus { transform:none; color:#fff; }
/* Header: simple, usable navigation with a no-JavaScript fallback. */
.site-header { position:sticky; z-index:70; top:0; background:var(--paper); border-bottom:1px solid var(--line); }
.nav { min-height:var(--header); display:flex; align-items:center; gap:40px; }
.brand { flex-shrink:0; display:block; }
.brand-logo { width:213px; height:auto; }
.nav-links { display:flex; align-items:center; gap:29px; margin-left:auto; }
.nav-links a { color:var(--ink); font-size:15px; font-weight:500; text-decoration:none; padding:28px 0; position:relative; }
.nav-links a:hover,.nav-links a[aria-current],.nav-links a.section-active { color:var(--blue); }
.nav-links a[aria-current]::after,.nav-links a.section-active::after { content:""; position:absolute; height:2px; background:var(--blue); bottom:18px; left:0; right:0; }
.nav-tools { display:flex; align-items:center; gap:28px; }
.header-phone { color:var(--ink); font-size:15px; font-weight:600; text-decoration:none; white-space:nowrap; }
.nav-cta { min-height:46px; padding:12px 17px; white-space:nowrap; }
.nav-cta .arrow { margin-left:9px; }
.mobile-menu-btn { display:none; }
/* Homepage: editorial composition, a real comparison photograph, no hero card. */
.home-hero { background:var(--wash); padding:26px 0 0; }
.hero-topline,.intro-bottom,.visual-label { display:flex; align-items:center; justify-content:space-between; gap:20px; font:11px/1.5 var(--mono); letter-spacing:.075em; color:var(--muted); }
.hero-topline { border-bottom:1px solid #ced3d6; padding-bottom:18px; }
.intro-grid { display:grid; grid-template-columns:1.12fr 1fr; align-items:center; gap:46px; padding-block:38px 32px; }
.intro-copy { min-width:0; padding-block:12px; }
.intro-copy .eyebrow { color:var(--muted); text-transform:none; letter-spacing:0; font-family:var(--sans); font-size:14px; margin-bottom:28px; }
.intro-copy h1 { font-size:clamp(42px,4.03vw,58px); line-height:1.1; letter-spacing:-.047em; margin-bottom:26px; font-weight:600; }
.intro-copy h1 span { color:var(--blue); }
.intro-lead { max-width:520px; font-size:18px; line-height:1.7; margin-bottom:27px; }
.intro-copy .hero-actions { margin-top:0; gap:24px; }
.intro-copy .text-link { color:var(--ink); font-size:15px; }
.intro-copy .text-link span { margin-left:10px; }
.intro-note { font-size:13px; color:var(--muted); line-height:1.6; margin-top:30px; }
.intro-visual { min-width:0; }
.visual-label { font-size:10px; border-bottom:1px solid var(--line); padding:0 0 11px; }
.intro-photo { display:block; }
.intro-photo img { width:100%; height:480px; object-fit:contain; mix-blend-mode:multiply; }
.intro-visual figcaption { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--line); color:var(--ink); font-size:13px; }
.intro-visual figcaption a { min-width:44px; min-height:44px; display:grid; place-items:center; color:var(--blue); text-decoration:none; }
.intro-visual figcaption .arrow { margin:0; font-size:24px; }
.intro-bottom { padding:20px 0; border-top:1px solid #ced3d6; font-size:11px; letter-spacing:0; }
.service-editorial,.process-editorial,.pricing-editorial { display:grid; grid-template-columns:.84fr 1.5fr; gap:104px; }
.section-side p { max-width:340px; }
.section-side h2 { font-size:36px; }
.section-side .text-link { margin-top:7px; }
.service-row { display:grid; grid-template-columns:30px 1fr; gap:28px; padding:27px 0; border-bottom:1px solid var(--line); }
.service-row:first-child { padding-top:0; }
.row-number { font:12px/1.5 var(--mono); color:var(--muted); padding-top:8px; }
.service-row h3 { margin-bottom:10px; font-size:26px; }
.service-row h3 a { color:var(--ink); text-decoration:none; display:flex; align-items:center; justify-content:space-between; }
.service-row h3 a:hover { color:var(--blue); }
.service-row .arrow { color:var(--blue); margin-right:3px; font-size:23px; }
.service-row p { font-size:16px; max-width:590px; margin:0; }
.service-related { font-size:14px; margin-top:22px; line-height:1.85; }
.home-work { background:var(--wash); border:0!important; }
.work-composition { display:grid; grid-template-columns:1.05fr 1fr; gap:48px; }
.work-image { display:block; background:#e9eceb; }
.work-image img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.work-major .work-image { height:505px; }
.work-major img { height:505px; }
.work-type { display:block; margin:19px 0 9px; color:var(--muted); font:11px/1.5 var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.work h3 { font-size:25px; margin:0; }
.work h3 a { text-decoration:none; color:var(--ink); display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.work h3 a:hover { color:var(--blue); }
.work h3 .arrow { color:var(--blue); }
.work-stack { display:flex; flex-direction:column; justify-content:space-between; gap:32px; }
.work-stack .work { display:grid; grid-template-columns:1.07fr 1fr; align-items:center; gap:26px; padding-bottom:32px; border-bottom:1px solid var(--line); }
.work-stack .work:last-child { padding-bottom:0; border:0; }
.work-stack .work-image { height:258px; }
.work-stack h3 { font-size:25px; line-height:1.18; }
.work-stack .work-type { margin-top:0; }
.business-strip { background:var(--navy); color:#d5dde7; padding-block:65px; }
.business-inner { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.business-inner h2 { color:white; margin:0; font-size:36px; }
.business-inner .eyebrow { color:#b7cafa; }
.business-inner p { max-width:510px; }
.business-inner .text-link { color:#fff; }
.process-list { list-style:none; margin:0; padding:0; }
.process-list li { display:grid; grid-template-columns:32px 1fr; gap:26px; padding:20px 0; margin:0; border-bottom:1px solid var(--line); }
.process-list li:first-child { padding-top:0; }
.process-list li > span { color:var(--blue); font:12px/1.5 var(--mono); padding-top:6px; }
.process-list h3 { font-size:23px; margin-bottom:6px; }
.process-list p { font-size:16px; }
.home-pricing { background:var(--wash); border:0!important; }
.pricing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 42px; }
.price-card { border-top:1px solid var(--line); padding:23px 0; display:grid; grid-template-columns:1fr auto; gap:7px 18px; align-content:start; }
.price-card h3 { font-size:18px; margin:0; }
.price-card p { font-size:14px; line-height:1.6; margin:0; grid-column:1/-1; grid-row:2; }
.price-card > strong { color:var(--blue); font-size:18px; white-space:nowrap; }
.pricing-editorial .pricing-grid { display:block; }
.pricing-editorial .price-card { padding-block:19px; }
.pricing-editorial .price-card p { max-width:515px; }
.pricing-note { margin-top:25px; }
.home-location { padding:55px 0; border-top:1px solid var(--line); }
.home-location .container { display:flex; justify-content:space-between; align-items:center; gap:50px; }
.home-location h2 { font-size:31px; }
.home-location p { font-size:15px; max-width:780px; }
.home-location .text-link { flex-shrink:0; }
/* Forms remain normal multipart forms, with useful loading/error states. */
.quote-section { background:#f8f9fb; border-top:1px solid var(--line); }
.quote-box { display:grid; grid-template-columns:.84fr 1.5fr; gap:104px; align-items:start; }
.quote-copy { position:sticky; top:125px; }
.quote-copy h2 { font-size:38px; }
.quote-copy > p { max-width:355px; }
.quote-copy a { overflow-wrap:anywhere; }
.quote-checklist { list-style:none; margin:27px 0; padding:0; }
.quote-checklist li { padding:11px 0 11px 24px; position:relative; border-top:1px solid var(--line); font-size:15px; }
.quote-checklist li::before { content:"+"; position:absolute; left:0; color:var(--blue); }
.quote-hint { border-left:2px solid var(--blue); padding:2px 0 2px 23px; margin-top:25px; font-size:15px; }
.quote-hint strong,.quote-hint span { display:block; }
.quote-hint strong { margin-bottom:9px; }
.quote-form { min-width:0; padding:0; }
.quote-form label { display:block; font-size:14px; line-height:1.5; font-weight:600; color:var(--ink); }
.quote-form input:not([type=radio]):not([type=checkbox]):not([type=file]),.quote-form select,.quote-form textarea { display:block; width:100%; max-width:100%; min-height:49px; border:1px solid #acb8c6; background:#fff; color:var(--ink); border-radius:var(--radius); padding:12px 14px; margin:8px 0 23px; font-size:16px; font-weight:400; line-height:1.45; }
.quote-form textarea { min-height:140px; resize:vertical; }
.quote-form input::placeholder,.quote-form textarea::placeholder { color:#647081; opacity:1; }
.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus { outline:2px solid var(--blue); outline-offset:2px; border-color:var(--blue); }
.quote-form select { cursor:pointer; }
.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; min-height:0!important; opacity:0; }
.form-mode { padding:0; border:0; margin:0; display:flex; gap:12px; flex-wrap:wrap; }
.form-mode legend { padding:0; margin-bottom:13px; font-size:15px; font-weight:600; color:var(--ink); }
.form-mode .mode-choice { display:flex; align-items:center; flex:1; gap:10px; padding:12px 13px; min-height:48px; border:1px solid #aeb9c6; border-radius:var(--radius); cursor:pointer; background:white; white-space:nowrap; font-size:13px; }
.mode-choice:has(input:checked) { color:var(--blue); border-color:var(--blue); background:#edf2ff; }
.mode-choice input { accent-color:var(--blue); margin:0; width:16px; height:16px; }
.mode-help { margin:14px 0 30px; font-size:14px; color:var(--muted); min-height:46px; }
.file-upload-group { border:0; border-top:1px solid var(--line); padding:24px 0 0; margin:12px 0 27px; min-width:0; }
.file-upload-group legend { float:left; width:100%; padding:0 0 8px; font-size:15px; font-weight:600; color:var(--ink); }
.file-upload-info { clear:both; font-size:13px; margin-bottom:20px; color:var(--muted); }
.file-upload-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.custom-file-field { position:relative; border:1px dashed #96a4b5; padding:15px 12px; min-width:0; background:white; border-radius:var(--radius); cursor:pointer; }
.custom-file-field:focus-within { outline:2px solid var(--blue); outline-offset:3px; }
.custom-file-field.has-file { border-style:solid; border-color:var(--blue); }
.custom-file-input { position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer; }
.custom-file-label,.custom-file-button,.custom-file-status { display:block; }
.custom-file-label { font-size:12px; font-weight:400; }
.custom-file-button { color:var(--blue); font-size:13px; font-weight:600; margin:8px 0; }
.custom-file-status { font-size:11px; font-weight:400; color:var(--muted); overflow-wrap:anywhere; }
.technical-upload { margin-top:22px; }
.technical-upload input { display:block; width:100%; max-width:100%; margin:8px 0; border:1px solid #acb8c6; border-radius:var(--radius); padding:6px; background:#fff; font-size:13px; }
input::file-selector-button { background:var(--soft); color:var(--ink); border:0; border-radius:2px; padding:10px 12px; margin-right:10px; cursor:pointer; }
.technical-upload .small-note { font-weight:400; font-size:12px; }
.form-direct-email { font-size:13px; margin-top:18px; overflow-wrap:anywhere; }
.file-clear { padding:4px 0; min-height:30px; border:0; color:var(--blue); background:transparent; font-size:12px; text-align:left; text-decoration:underline; }
/* Clear controls follow their labels and are associated by JS, not nested in labels. */
.file-upload-grid .file-clear { grid-row:auto; }
.quote-form .form-consent { display:flex; gap:13px; align-items:flex-start; font-weight:400; font-size:13px; color:var(--text); line-height:1.65; margin:7px 0 24px; }
.form-consent input { flex-shrink:0; width:19px; height:19px; margin:1px 0 0; accent-color:var(--blue); }
.form-error:empty { display:none; }
.form-error { padding:15px 18px; background:#fff0ec; color:#8b2515; border-left:3px solid #9e3726; font-size:14px; }
.quote-form > button[type=submit] { min-width:270px; }
.quote-form > .small-note { margin-top:13px; font-size:12px; max-width:550px; }
.quote-page > main > section:first-child { padding-bottom:24px; }
.quote-page #wycena { padding-top:35px; border-top:0; }
.quote-page > main > section:first-child .section-head { margin-bottom:0; max-width:850px; }
/* Services: photographs, specification strips, structured text, not boxed tiles. */
.breadcrumbs,.article-breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:6px 9px; margin-bottom:33px; font-size:12px; line-height:1.7; color:var(--muted); }
.breadcrumbs a,.article-breadcrumbs a { color:var(--muted); }
.service-hero { padding:37px 0 44px; background:var(--wash); }
.service-hero-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:76px; align-items:center; }
.service-hero-grid .section-head { margin:0; max-width:none; }
.service-hero h1 { font-size:clamp(35px,3.45vw,50px); }
.service-hero .section-head p:not(.kicker) { font-size:17px; line-height:1.65; }
.service-visual { min-width:0; }
.service-visual > a { display:block; }
.service-visual img { height:390px; width:100%; object-fit:contain; mix-blend-mode:multiply; }
.service-visual figcaption { font-size:12px; border-top:1px solid var(--line); padding:12px 0 0; display:flex; flex-direction:column; gap:5px; }
.service-visual figcaption > span { font:10px var(--mono); text-transform:uppercase; letter-spacing:.07em; color:var(--muted); }
.service-visual figcaption a { color:var(--ink); }
.facts-section { padding:29px 0; border-bottom:1px solid var(--line); }
.service-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.service-facts article + article { border-left:1px solid var(--line); padding-left:32px; }
.service-facts span { display:block; font-size:12px; color:var(--muted); }
.service-facts strong { display:block; margin:8px 0; font-size:23px; line-height:1.3; letter-spacing:-.02em; }
.service-facts small { display:block; max-width:350px; font-size:13px; }
.two-col,.b2b-layout,.seo-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:75px; }
.text-block h2,.seo-feature-copy h2 { font-size:32px; }
.text-block p { max-width:620px; }
.check-list { list-style:none; padding:0; margin:18px 0 26px; }
.check-list li { padding:10px 0 10px 25px; margin:0; border-bottom:1px solid var(--line); position:relative; }
.check-list li::before { content:"+"; color:var(--blue); position:absolute; left:0; }
.process-section > .container { display:grid; grid-template-columns:.8fr 1.3fr; gap:90px; align-items:start; }
.process-section .section-head { margin:0; }
.seo-process { list-style:none; padding:0; margin:0; }
.seo-process li { display:grid; grid-template-columns:30px 1fr; gap:19px; padding:18px 0; margin:0; border-top:1px solid var(--line); }
.seo-process li > span { font:12px/1.6 var(--mono); color:var(--blue); }
.seo-process strong { font-weight:500; line-height:1.5; }
.steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:35px; }
.step { padding-top:22px; border-top:1px solid #a4b0c0; }
.step > span { font:12px var(--mono); color:var(--blue); display:block; margin-bottom:24px; }
.step h3 { font-size:22px; }
.step p { font-size:15px; }
.detail-summary { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.detail-summary > div { max-width:790px; }
.detail-summary > .btn { flex-shrink:0; max-width:320px; }
.detail-summary h2 { font-size:32px; }
.summary-section { background:var(--wash); border-top:1px solid var(--line); padding-block:55px; }
.summary-section .kicker { margin-bottom:14px; }
.service-context-link,.inline-links { margin-top:25px; font-size:15px; }
.service-hub-grid { display:block; }
.editorial-rows > .card { position:relative; padding:27px 0 27px 54px; border-bottom:1px solid var(--line); }
.editorial-rows .row-number { position:absolute; left:0; top:22px; }
.editorial-rows > .card > h3 { font-size:26px; }
.editorial-rows > .card > p { max-width:890px; font-size:16px; }
/* Generic content components adapt to prose, process and informational indexes. */
.cards-grid { display:grid; gap:32px; }
.cards-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cards-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.card { min-width:0; padding:25px 0; border-top:1px solid var(--line); }
.card h3 { font-size:22px; }
.card p { font-size:15px; }
.card .icon { display:none; }
.related-grid { gap:35px; }
.related-grid .card { padding-top:0; border:0; }
.related-photo { display:block; margin-bottom:23px; background:#e9eceb; }
.related-photo img { width:100%; height:250px; object-fit:contain; mix-blend-mode:multiply; }
.related-grid h3 { font-size:22px; line-height:1.3; }
.related-grid h3 a { text-decoration:none; color:var(--ink); }
.related-grid h3 a:hover { color:var(--blue); }
.related-grid p { color:var(--muted); font-size:14px; }
.feature-panel { padding:10px 0; }
.feature-panel h3 { font-size:28px; }
.feature-panel.accent-panel { padding-left:40px; border-left:1px solid var(--line); }
.local-box { display:grid; grid-template-columns:1.7fr 1fr; gap:55px; align-items:center; }
.local-box h2 { font-size:31px; }
.local-box .btn { justify-self:end; }
.service-link-cloud,.realization-link-cloud,.inline-links { display:flex; flex-wrap:wrap; gap:7px 22px; }
.service-link-cloud a,.realization-link-cloud a { font-size:14px; min-height:34px; display:flex; align-items:center; }
.example-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.example-list > div { border-top:1px solid var(--line); padding-top:18px; }
.example-list strong { display:block; }
.example-list span { font-size:15px; }
.seo-content-figure { background:var(--wash); }
.seo-content-figure img { width:100%; height:460px; object-fit:contain; }
.seo-content-figure figcaption { padding:15px 20px; font-size:13px; }
.comparison-grid,.before-after-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.comparison-card { padding:25px; background:var(--wash); border-top:1px solid var(--line); }
.case-spec-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.testimonials { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; }
.testimonial { margin:0; border-top:1px solid var(--line); padding-top:20px; font-size:16px; }
.testimonial footer,.testimonial span { font:12px/1.5 var(--mono); color:var(--muted); }
/* Project documentation and portfolio. */
.realization-detail-hero { padding-block:38px 58px; background:var(--wash); }
.detail-layout { display:grid; grid-template-columns:1.12fr 1fr; gap:80px; align-items:center; }
.detail-copy { order:2; }
.detail-hero-image { order:1; }
.detail-copy h1 { font-size:clamp(36px,3.5vw,50px); }
.detail-copy .detail-lead { font-size:17px; }
.detail-hero-image img { width:100%; height:485px; object-fit:contain; mix-blend-mode:multiply; }
.detail-hero-image figcaption { padding-top:13px; margin-top:13px; border-top:1px solid var(--line); font:11px/1.5 var(--mono); color:var(--muted); }
.detail-actions { gap:16px; }
.detail-actions .btn { font-size:13px; }
.detail-content-grid { display:block; }
.detail-content-grid .detail-panel { display:grid; grid-template-columns:.7fr 1fr; gap:0 80px; padding:28px 0; border-top:1px solid var(--line); }
.detail-panel .kicker { grid-column:1; margin-bottom:8px; }
.detail-panel h2 { grid-column:1; font-size:26px; margin:0; }
.detail-panel > p:not(.kicker) { grid-column:2; grid-row:1/3; margin:0; align-self:center; }
.detail-content-grid .detail-panel:first-child { border:0; padding-top:0; }
.detail-content-grid .detail-panel:last-child { padding-bottom:0; }
.detail-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.detail-gallery:has(> figure:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.detail-gallery-item { min-width:0; }
.detail-gallery-item img { width:100%; height:auto; background:var(--wash); }
.detail-gallery-item figcaption { padding:15px 0 0; font-size:13px; color:var(--muted); }
.zoom-image { display:block; cursor:zoom-in; }
.zoom-image:hover { opacity:.94; }
.realization-evaluation h2 { font-size:30px; }
.portfolio-page main > section:first-child { padding-block:60px 38px; }
.portfolio-page main > section:first-child .section-head { margin-bottom:0; max-width:990px; }
.portfolio-page #realizacje { padding-top:36px; background:#fff; border-top:0; }
.portfolio-page #realizacje > .container > .section-head { border-top:1px solid var(--line); padding-top:26px; margin-bottom:34px; display:flex; gap:40px; max-width:none; align-items:center; }
.portfolio-page #realizacje > .container > .section-head .kicker { display:none; }
.portfolio-page #realizacje > .container > .section-head h2 { font-size:23px; flex:1; margin:0; }
.portfolio-page #realizacje > .container > .section-head p { flex:1; font-size:14px; margin:0; }
.realizacje-photo-grid { display:flex; flex-direction:column; gap:48px; }
.portfolio-entry { display:grid; grid-template-columns:1.55fr 1fr; gap:52px; align-items:center; border-bottom:1px solid var(--line); padding-bottom:48px; }
.portfolio-entry:nth-child(even) { grid-template-columns:1fr 1.55fr; }
.portfolio-entry:nth-child(even) .portfolio-images { order:2; }
.portfolio-entry:nth-child(even) .case-body { order:1; }
.portfolio-images { display:grid; grid-template-columns:1fr 1fr; gap:10px; height:365px; }
.portfolio-images figure { min-height:0; background:#eff0ef; }
.portfolio-images figure a { display:block; height:100%; }
.portfolio-images img { height:100%; width:100%; object-fit:contain; mix-blend-mode:multiply; }
.portfolio-images:has(> figure:nth-child(3)) { grid-template-columns:1.7fr 1fr; grid-template-rows:1fr 1fr; }
.portfolio-images:has(> figure:nth-child(3)) > figure:first-child { grid-row:1/3; }
.case-body { min-width:0; }
.case-body h3 { font-size:30px; margin-bottom:18px; }
.case-body p { font-size:16px; }
.case-tag { display:block; color:var(--muted); font:11px/1.6 var(--mono); letter-spacing:.05em; text-transform:uppercase; margin-bottom:20px; }
.portfolio-actions,.center-actions { margin-top:35px; }
.gallery-hero { padding-block:55px 35px; background:var(--wash); }
.gallery-hero h1 { max-width:950px; }
.gallery-actions { display:flex; gap:20px; margin-top:25px; flex-wrap:wrap; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 32px; }
.gallery-item { min-width:0; }
.gallery-image { display:block; background:var(--wash); }
.gallery-image img { width:100%; height:335px; object-fit:contain; mix-blend-mode:multiply; }
.gallery-item h2 { font-size:23px; line-height:1.3; margin:0; }
.gallery-item h2 a { color:var(--ink); text-decoration:none; }
/* Native details/summary provide fully functional no-JS FAQ. */
.faq-list,.accordion-grid { display:block; }
details { border-bottom:1px solid var(--line); padding:0; }
details:first-child { border-top:1px solid var(--line); }
summary { position:relative; cursor:pointer; list-style:none; color:var(--ink); font-size:17px; font-weight:500; line-height:1.5; padding:22px 45px 22px 0; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; position:absolute; right:5px; top:19px; color:var(--blue); font:25px/1.3 var(--sans); }
details[open] > summary::after { content:"−"; }
details > p,details > ul,details > div { padding-right:38px; font-size:16px; margin:0 0 24px; max-width:970px; }
.faq-section > .container,.home-faq > .container { display:grid; grid-template-columns:.84fr 1.5fr; gap:0 104px; align-items:start; }
.faq-section .section-head,.home-faq .section-head { grid-column:1; margin-bottom:0; }
.faq-section .faq-list,.home-faq .faq-list { grid-column:2; grid-row:1/3; }
.faq-section .small-note,.home-faq .small-note { grid-column:1; max-width:340px; }
.compact-info .section-head { max-width:850px; }
/* Long-form reading, tables and article index. */
.article-shell { padding-block:40px 75px; }
.article-grid { display:grid; grid-template-columns:minmax(0,850px) minmax(230px,1fr); gap:90px; align-items:start; }
.article-main { min-width:0; }
.article-main h1 { font-size:46px; line-height:1.12; margin-block:20px 28px; }
.article-main h2 { margin-top:46px; font-size:31px; line-height:1.25; }
.article-main h3 { margin-top:30px; font-size:24px; }
.article-main p,.article-main li { font-size:17px; line-height:1.8; }
.article-main .article-lead { font-size:20px; line-height:1.65; padding-bottom:26px; border-bottom:1px solid var(--line); }
.article-breadcrumbs { display:block; line-height:1.85; }
.blog-card-meta { display:flex; gap:17px; align-items:center; color:var(--muted); font:11px/1.5 var(--mono); }
.blog-badge { color:var(--blue); text-transform:uppercase; letter-spacing:.07em; }
.blog-sidebar { min-width:0; }
.article-toc { padding:24px 0; border-block:1px solid var(--line); margin:34px 0; }
.article-toc h2 { font-size:14px; letter-spacing:0; }
.article-toc a,.blog-sidebox > a:not(.btn) { display:block; padding:9px 0; color:var(--muted); font-size:14px; line-height:1.6; }
.blog-sidebox { border-top:1px solid var(--line); padding-top:25px; margin-bottom:35px; }
.blog-sidebox h3 { font-size:20px; }
.blog-sidebox p { font-size:14px; }
.blog-sidebox .btn { font-size:13px; }
.article-cta-box { background:var(--wash); padding:30px; margin-top:42px; border-left:2px solid var(--blue); }
.article-cta-box h2 { margin-top:0; font-size:29px; }
.article-cta-box p { font-size:16px; }
.article-note,.article-author-box { background:var(--wash); padding:24px; border-left:2px solid var(--blue); margin-block:28px; font-size:15px; }
.article-author-box h2,.article-author-box h3 { margin-top:0; }
.article-table,.seo-table-wrap { overflow:auto; margin-block:25px; width:100%; border:1px solid var(--line); }
table { width:100%; border-collapse:collapse; text-align:left; font-size:14px; }
th { background:var(--wash); color:var(--ink); font-weight:600; }
th,td { border-bottom:1px solid var(--line); padding:15px 18px; vertical-align:top; }
tr:last-child td { border-bottom:0; }
.article-feature-image { margin-block:30px; }
.article-feature-image img { width:100%; max-height:480px; object-fit:contain; background:var(--wash); }
.article-feature-image figcaption { font-size:13px; padding-top:12px; }
.article-grid-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; }
.article-grid-cards > * { padding:22px; background:var(--wash); }
.blog-page { padding-block:60px 85px; }
.blog-header { max-width:980px; margin-bottom:52px; }
.blog-grid { display:grid; grid-template-columns:1fr 285px; gap:90px; }
.blog-cards { display:block; }
.blog-card { padding:29px 0; border-top:1px solid var(--line); }
.blog-card h2 { font-size:29px; line-height:1.22; margin-block:16px; }
.blog-card p { font-size:16px; }
.legal-content { max-width:850px; }
.legal-content h2 { font-size:28px; margin-top:38px; }
.sitemap-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:45px 80px; }
.sitemap-groups h2 { font-size:28px; }
.sitemap-groups a { display:inline-flex; align-items:center; min-height:38px; }
.contact-grid { display:grid; grid-template-columns:1.45fr 1fr; gap:90px; }
.contact-methods { margin-top:30px; }
.contact-methods > a,.contact-methods > div { display:flex; gap:20px; flex-wrap:wrap; padding:18px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.contact-methods span { width:75px; color:var(--muted); font-size:13px; padding-top:5px; }
.contact-methods strong { font-size:24px; line-height:1.35; overflow-wrap:anywhere; }
.final-cta { padding:32px; background:var(--wash); align-self:start; }
.final-cta h3 { font-size:28px; }
.final-cta p { font-size:15px; }
.final-cta .btn { margin-top:12px; }
.error-page { padding-block:80px; min-height:57vh; }
.error-card { max-width:850px; }
.error-card .small-note { margin-top:30px; }
.status-page main:not(.error-page) { padding-block:40px; }
.status-page main h1 { max-width:850px; }
/* Footer and consent use the same typographic rhythm as the page. */
.footer { background:#eff1f2; border-top:1px solid #d7dce0; padding:65px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.1fr 1fr .85fr 1.3fr; gap:48px; padding-bottom:45px; }
.footer-brand img { width:196px; height:auto; margin-bottom:25px; }
.footer-brand p { font-size:14px; line-height:1.7; margin-bottom:15px; }
.footer h2 { font:12px/1.5 var(--mono); color:var(--muted); letter-spacing:.025em; margin:0 0 23px; }
.footer nav > a { display:block; padding:5px 0; color:var(--ink); font-size:14px; text-decoration:none; }
.footer nav > a:hover { text-decoration:underline; }
.footer-contact > a { display:block; color:var(--ink); font-size:14px; overflow-wrap:anywhere; }
.footer-contact > .footer-phone { font-size:27px; letter-spacing:-.025em; text-decoration:none; line-height:1.3; margin-bottom:15px; }
.footer-contact p { font-size:14px; margin:23px 0 15px; }
.footer-contact > .text-link { font-size:13px; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #cbd2d8; padding:22px 0; font-size:11px; color:var(--muted); }
.footer-bottom > div { display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
.footer-bottom a { color:var(--muted); }
.footer-cookie-button { padding:8px 0; font-size:11px; border:0; background:none; color:var(--muted); text-decoration:underline; text-underline-offset:4px; }
.cookie-panel { position:fixed; z-index:120; bottom:20px; left:20px; width:min(425px,calc(100% - 40px)); padding:23px; background:#fff; color:var(--text); border:1px solid #a9b4c3; box-shadow:0 7px 35px #172b4621; border-radius:3px; font-size:13px; line-height:1.65; }
.cookie-panel strong,.cookie-panel h2 { display:block; color:var(--ink); font-size:16px; margin-bottom:10px; letter-spacing:0; }
.cookie-panel p { margin-bottom:15px; }
.cookie-actions { display:flex; gap:10px; }
.cookie-panel button { border:1px solid #9aa8bc; background:#fff; color:var(--ink); padding:10px 13px; min-height:44px; border-radius:2px; font-size:13px; line-height:1.3; font-weight:500; }
.cookie-panel button:hover { background:var(--soft); border-color:var(--blue); }
.cookie-panel [data-cookie-accept] { border-color:var(--blue); color:var(--blue); }
.mobile-contact-bar { display:none; }
.image-dialog { padding:22px; border:0; border-radius:3px; width:min(980px,calc(100% - 32px)); max-height:calc(100% - 32px); color:var(--ink); }
.image-dialog::backdrop { background:#101e31d9; }
.image-dialog img { height:auto; width:auto; max-width:100%; max-height:calc(100dvh - 190px); margin:0 auto; object-fit:contain; }
.dialog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:15px; }
.dialog-toolbar p { margin:0; font-size:12px; color:var(--muted); }
.dialog-close { min-width:44px; min-height:44px; padding:10px 13px; font-size:13px; background:var(--wash); border:1px solid var(--line); }
.dialog-caption { margin:15px 0 0; font-size:13px; }
/* Tablet: no overcrowded nav, cards or four-column fields. */
@media(min-width:1650px) { .intro-copy h1 { font-size:60px; } .intro-photo img { height:510px; } }
@media(max-width:1200px) {
  :root { --section:70px; }
  .container { width:calc(100% - 72px); }
  .nav { gap:25px; }
  .brand-logo { width:185px; }
  .nav-links { gap:22px; }
  .nav-tools { gap:18px; }
  .header-phone { display:none; }
  .intro-grid { gap:30px; }
  .intro-copy h1 { font-size:48px; }
  .intro-photo img { height:450px; }
  .intro-lead { font-size:17px; }
  .service-editorial,.process-editorial,.pricing-editorial,.quote-box,.home-faq > .container,.faq-section > .container { gap:60px; grid-template-columns:.9fr 1.4fr; }
  .work-composition { gap:30px; }
  .work-major img,.work-major .work-image { height:440px; }
  .work-stack .work-image { height:220px; }
  .work-stack .work { gap:20px; padding-bottom:24px; }
  .work-stack h3 { font-size:22px; }
  .work-type { font-size:10px; }
  .business-inner { gap:60px; }
  .form-mode { gap:8px; }
  .form-mode .mode-choice { font-size:12px; padding-inline:10px; }
  .service-hero-grid { gap:45px; }
  .service-hero h1 { font-size:42px; }
  .service-visual img { height:340px; }
  .service-hero .hero-actions { gap:14px; }
  .service-hero .btn { font-size:13px; }
  .two-col,.b2b-layout,.seo-feature-grid,.process-section > .container { gap:50px; }
  .related-photo img { height:215px; }
  .detail-layout { gap:45px; }
  .detail-hero-image img { height:420px; }
  .detail-copy h1 { font-size:42px; }
  .portfolio-entry { gap:35px; }
  .portfolio-images { height:300px; }
  .case-body h3 { font-size:26px; }
  .article-grid,.blog-grid { gap:50px; }
  .article-main h1 { font-size:40px; }
  .footer-grid { gap:30px; }
  .footer-contact > .footer-phone { font-size:24px; }
}
@media(max-width:960px) {
  :root { --header:78px; --section:62px; }
  .container { width:calc(100% - 48px); }
  .nav { position:relative; flex-wrap:wrap; gap:0 20px; padding-block:14px; }
  .brand-logo { width:182px; }
  .nav-tools { margin-left:auto; margin-right:15px; order:2; }
  .nav-links { order:4; flex-basis:100%; margin-top:14px; margin-left:0; padding-top:12px; gap:26px; border-top:1px solid var(--line); }
  .nav-links a { padding:10px 0; }
  .nav-links a[aria-current]::after,.nav-links a.section-active::after { bottom:3px; }
  .js .nav-links { display:none; }
  .js .menu-open .nav-links { display:flex; }
  .js .mobile-menu-btn { display:block; position:relative; order:3; width:52px; height:44px; background:none; border:0; padding:8px 12px; color:var(--ink); }
  .mobile-menu-btn span { display:block; background:currentColor; width:23px; height:1.5px; margin:4px 0; }
  .mobile-menu-btn b { display:none; }
  .menu-open .mobile-menu-btn span:nth-child(1) { transform:translateY(5.5px) rotate(45deg); }
  .menu-open .mobile-menu-btn span:nth-child(2) { opacity:0; }
  .menu-open .mobile-menu-btn span:nth-child(3) { transform:translateY(-5.5px) rotate(-45deg); }
  .intro-copy h1 { font-size:39px; }
  .intro-copy .eyebrow { font-size:12px; }
  .intro-grid { grid-template-columns:1.12fr 1fr; gap:25px; }
  .intro-photo img { height:365px; }
  .intro-lead { font-size:16px; }
  .intro-note { margin-top:23px; }
  .intro-copy .hero-actions { gap:10px 18px; }
  .intro-copy .hero-actions .btn { font-size:14px; }
  .visual-label { font-size:8px; letter-spacing:0; }
  .intro-visual figcaption { font-size:11px; }
  .intro-bottom { font-size:10px; gap:15px; }
  .service-editorial,.process-editorial,.pricing-editorial,.quote-box,.home-faq > .container,.faq-section > .container { gap:38px; grid-template-columns:.9fr 1.3fr; }
  .section-side h2 { font-size:30px; }
  .section-side p { font-size:15px; }
  .service-row { gap:18px; }
  .service-row h3 { font-size:23px; }
  .service-row p { font-size:14px; }
  .work-composition { gap:24px; }
  .work-stack .work { display:block; padding-bottom:20px; }
  .work-stack .work-image { height:185px; }
  .work-stack .work-type { margin-top:15px; }
  .work-stack h3 { font-size:21px; }
  .work-stack .work h3 a { align-items:center; }
  .work-stack { gap:25px; }
  .work-major img,.work-major .work-image { height:475px; }
  .business-inner { gap:38px; }
  .business-inner h2 { font-size:30px; }
  .business-inner p { font-size:15px; }
  .quote-box { grid-template-columns:1fr 1.7fr; gap:35px; }
  .quote-copy { position:static; }
  .quote-copy h2 { font-size:30px; }
  .quote-copy p { font-size:15px; }
  .form-mode .mode-choice { min-width:calc(50% - 8px); flex:1 1 auto; }
  .form-row { gap:14px; }
  .file-upload-grid { gap:7px; }
  .custom-file-field { padding:12px 8px; }
  .custom-file-button { font-size:12px; }
  .service-hero-grid { gap:35px; }
  .service-hero h1,.detail-copy h1 { font-size:36px; }
  .service-visual img { height:340px; }
  .service-facts { gap:20px; }
  .service-facts article + article { padding-left:20px; }
  .service-facts strong { font-size:21px; }
  .service-facts small { font-size:12px; }
  .text-block h2 { font-size:28px; }
  .two-col,.b2b-layout,.seo-feature-grid,.process-section > .container { gap:35px; }
  .detail-summary { gap:30px; }
  .detail-summary h2 { font-size:29px; }
  .detail-summary > .btn { flex-shrink:1; min-width:190px; font-size:13px; }
  .cards-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cards-grid-3 { gap:23px; }
  .related-photo img { height:180px; }
  .related-grid h3 { font-size:20px; }
  .related-grid p { font-size:13px; }
  .steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
  .detail-layout { gap:35px; }
  .detail-content-grid .detail-panel { gap:0 38px; }
  .detail-hero-image img { height:400px; }
  .detail-panel h2 { font-size:24px; }
  .detail-gallery { gap:20px; }
  .portfolio-entry,.portfolio-entry:nth-child(even) { grid-template-columns:1.3fr 1fr; gap:30px; }
  .portfolio-entry:nth-child(even) .portfolio-images { order:0; }
  .portfolio-entry:nth-child(even) .case-body { order:1; }
  .portfolio-images { height:270px; }
  .case-body h3 { font-size:24px; }
  .case-body p { font-size:14px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px 25px; }
  .gallery-image img { height:320px; }
  .article-grid,.blog-grid { grid-template-columns:minmax(0,1fr) 230px; gap:35px; }
  .article-main h1 { font-size:35px; }
  .article-main h2 { font-size:28px; }
  .article-main .article-lead { font-size:18px; }
  .article-main p,.article-main li { font-size:16px; }
  .article-grid-cards { grid-template-columns:1fr; }
  .contact-grid { gap:35px; grid-template-columns:1fr 1fr; }
  .contact-methods strong { font-size:22px; }
  .final-cta { padding:23px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:40px 65px; }
  .footer-contact { grid-column:2; grid-row:1; }
  .footer-bottom { align-items:flex-start; font-size:11px; }
}
/* Phone: reordered reading flow, native controls, no clipped content. */
@media(max-width:680px) {
  :root { --section:49px; --header:74px; }
  html { scroll-padding-top:94px; }
  body { font-size:16px; padding-bottom:62px; }
  .container { width:calc(100% - 40px); }
  h1 { font-size:35px; }
  h2 { font-size:29px; }
  h3 { font-size:22px; }
  .kicker,.eyebrow,.section-kicker { font-size:10px; margin-bottom:16px; }
  .nav { padding-block:14px; gap:0; }
  .brand-logo { width:162px; }
  .nav-tools { margin-right:8px; }
  .nav-cta { font-size:12px; padding:9px 12px; min-height:40px; }
  .nav-cta .arrow { display:none; }
  .js .mobile-menu-btn { width:34px; padding:8px 4px; }
  .nav-links { flex-direction:column; align-items:stretch; gap:0; margin-top:13px; padding-top:7px; }
  .nav-links a { padding:12px 0; font-size:16px; }
  .nav-links a[aria-current]::after,.nav-links a.section-active::after { display:none; }
  .home-hero { padding-top:18px; }
  .hero-topline { font-size:9px; padding-bottom:13px; letter-spacing:.03em; }
  .hero-topline > span:last-child { display:none; }
  .intro-grid { grid-template-columns:1fr; gap:29px; padding-top:25px; padding-bottom:22px; }
  .intro-copy { padding:0; }
  .intro-copy .eyebrow { font-size:12px; margin-bottom:21px; }
  .intro-copy h1 { font-size:36px; letter-spacing:-.047em; line-height:1.14; margin-bottom:21px; }
  .intro-lead { font-size:16px; line-height:1.7; margin-bottom:22px; max-width:490px; }
  .intro-copy .hero-actions { gap:12px 20px; }
  .intro-copy .hero-actions .btn { padding:13px 16px; }
  .intro-copy .text-link { font-size:13px; }
  .intro-copy .text-link span { margin-left:1px; }
  .intro-note { font-size:12px; margin-top:18px; }
  .visual-label { font-size:9px; letter-spacing:.045em; }
  .intro-photo img { height:auto; aspect-ratio:1.1; width:100%; object-fit:contain; }
  .intro-visual figcaption { font-size:11px; }
  .intro-bottom { flex-wrap:wrap; gap:7px 20px; font-size:10px; padding:16px 0; }
  .intro-bottom span:nth-child(3) { width:100%; }
  .service-editorial,.process-editorial,.pricing-editorial,.quote-box { grid-template-columns:1fr; gap:30px; }
  .section-side h2 { font-size:30px; }
  .section-side p { max-width:500px; }
  .section-side h2 br { display:none; }
  .section-side .text-link { margin-top:0; }
  .service-row { gap:17px; grid-template-columns:23px 1fr; padding:23px 0; }
  .service-row:first-child { border-top:1px solid var(--line); padding-top:23px; }
  .row-number { font-size:10px; padding-top:6px; }
  .service-row h3 { font-size:23px; }
  .service-row h3 a { gap:8px; align-items:flex-start; }
  .service-row .arrow { font-size:21px; margin-left:6px; }
  .service-row p { font-size:15px; }
  .service-related { font-size:13px; }
  .section-heading-row { display:block; margin-bottom:27px; }
  .section-heading-row .text-link { margin-top:15px; }
  .section-heading-row h2 br { display:none; }
  .work-composition { display:block; }
  .work-major .work-image,.work-major img { width:100%; height:auto; aspect-ratio:1; }
  .work-major h3 { font-size:24px; }
  .work-type { font-size:10px; }
  .work-stack { margin-top:32px; gap:25px; }
  .work-stack .work { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:center; padding-bottom:25px; }
  .work-stack .work-image { height:auto; aspect-ratio:.9; }
  .work-stack .work-type { margin-top:0; font-size:9px; }
  .work-stack h3 { font-size:21px; }
  .work-stack .work h3 a { display:block; }
  .work-stack .arrow { display:block; margin:12px 0 0; }
  .business-strip { padding-block:44px; }
  .business-inner { grid-template-columns:1fr; gap:24px; }
  .business-inner h2 { font-size:30px; }
  .business-inner p { font-size:16px; }
  .process-list li { gap:20px; }
  .process-list h3 { font-size:22px; }
  .process-list p { font-size:15px; }
  .pricing-grid { grid-template-columns:1fr; }
  .price-card h3 { font-size:17px; }
  .price-card strong { font-size:17px; }
  .price-card p { font-size:13px; }
  .pricing-editorial { gap:27px; }
  .home-location .container { display:block; }
  .home-location h2 { font-size:27px; }
  .home-location .text-link { margin-top:20px; }
  .quote-copy h2 { font-size:30px; }
  .quote-copy > p { max-width:none; font-size:16px; }
  .quote-checklist { margin:20px 0; }
  .quote-checklist li { font-size:14px; }
  .quote-box { gap:30px; }
  .quote-copy { position:static; }
  .quote-form { border-top:1px solid var(--line); padding-top:23px; }
  .form-mode { display:flex; gap:8px; }
  .form-mode .mode-choice { flex:1 1 42%; font-size:13px; padding:12px 10px; min-width:0; }
  .form-mode .mode-choice:last-child { flex-basis:100%; }
  .mode-help { font-size:13px; min-height:44px; margin-bottom:25px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .quote-form label { font-size:14px; }
  .quote-form input:not([type=radio]):not([type=checkbox]):not([type=file]),.quote-form select,.quote-form textarea { margin-bottom:21px; }
  .file-upload-grid { grid-template-columns:1fr; gap:10px; }
  .custom-file-field { display:grid!important; grid-template-columns:1fr 1fr; gap:7px 12px; padding:12px 15px; min-height:76px; align-items:center; }
  .custom-file-button { grid-column:2; grid-row:1; margin:0; text-align:right; font-size:13px; }
  .custom-file-status { grid-column:1/-1; font-size:12px; }
  .file-upload-info { font-size:13px; }
  .quote-form > button[type=submit] { width:100%; min-width:0; }
  .quote-page main > section:first-child { padding-block:38px 10px; }
  .quote-page main > section:first-child h1 { font-size:33px; }
  .quote-page #wycena { padding-top:25px; }
  .home-faq > .container,.faq-section > .container { display:block; }
  .home-faq .section-head,.faq-section .section-head { margin-bottom:24px; }
  .home-faq .small-note,.faq-section .small-note { margin-top:24px; max-width:none; }
  summary { font-size:16px; padding-block:19px; }
  summary::after { top:16px; }
  details > p,details > ul,details > div { font-size:15px; padding-right:10px; }
  .section-head { margin-bottom:28px; }
  .section-head h1 + p,.service-lead,.detail-lead,.article-lead { font-size:16px; }
  .service-hero { padding-block:24px 32px; }
  .breadcrumbs { font-size:11px; margin-bottom:25px; }
  .service-hero-grid { grid-template-columns:1fr; gap:30px; }
  .service-hero h1 { font-size:34px; line-height:1.13; }
  .service-hero .section-head p:not(.kicker) { font-size:16px; }
  .service-hero .hero-actions { gap:12px; }
  .service-hero .btn { font-size:13px; padding-inline:15px; }
  .service-visual img { height:320px; }
  .service-visual figcaption { font-size:12px; }
  .facts-section { padding:10px 0; }
  .service-facts { display:block; }
  .service-facts article { padding:19px 0; }
  .service-facts article + article { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .service-facts strong { font-size:24px; margin:4px 0 8px; }
  .service-facts small { font-size:13px; max-width:none; }
  .two-col,.b2b-layout,.seo-feature-grid,.process-section > .container { grid-template-columns:1fr; gap:35px; }
  .text-block h2,.seo-feature-copy h2 { font-size:28px; }
  .check-list li { font-size:15px; }
  .process-section .section-head { margin:0; }
  .steps { gap:28px 20px; }
  .step h3 { font-size:20px; }
  .step p { font-size:14px; }
  .step > span { margin-bottom:20px; }
  .detail-summary { display:block; }
  .detail-summary h2 { font-size:28px; }
  .detail-summary > .btn { max-width:100%; margin-top:25px; min-width:0; }
  .summary-section { padding-block:43px; }
  .cards-grid-3,.cards-grid-4 { grid-template-columns:1fr; gap:18px; }
  .card { padding-block:22px; }
  .card h3 { font-size:23px; }
  .related-grid { gap:30px; }
  .related-photo img { height:295px; }
  .related-photo { margin-bottom:18px; }
  .related-grid h3 { font-size:24px; }
  .related-grid p { font-size:15px; }
  .feature-panel.accent-panel { border-left:0; padding:28px 0 0; border-top:1px solid var(--line); }
  .feature-panel h3 { font-size:25px; }
  .local-box { display:block; }
  .local-box .btn { margin-top:22px; }
  .local-box h2 { font-size:27px; }
  .example-list { grid-template-columns:1fr; gap:20px; }
  .editorial-rows > .card { padding-left:38px; }
  .editorial-rows > .card > h3 { font-size:25px; }
  .service-link-cloud,.realization-link-cloud { flex-direction:column; gap:4px; }
  .service-link-cloud a,.realization-link-cloud a { min-height:44px; }
  .comparison-grid,.before-after-grid,.case-spec-grid,.testimonials { grid-template-columns:1fr; gap:25px; }
  .seo-content-figure img { height:360px; }
  .realization-detail-hero { padding-block:24px 32px; }
  .detail-layout { grid-template-columns:1fr; gap:30px; }
  .detail-copy { order:0; }
  .detail-hero-image { order:1; }
  .detail-copy h1 { font-size:34px; }
  .detail-copy .detail-lead { font-size:16px; }
  .detail-hero-image img { height:370px; }
  .detail-actions { gap:12px; }
  .detail-actions .btn { font-size:13px; }
  .detail-content-grid .detail-panel { display:block; padding:24px 0; }
  .detail-panel h2 { font-size:26px; margin-bottom:17px; }
  .detail-panel .kicker { margin-bottom:10px; }
  .detail-panel > p:not(.kicker) { font-size:16px; }
  .detail-gallery,.detail-gallery:has(> figure:nth-child(2):last-child) { grid-template-columns:1fr; gap:30px; }
  .detail-gallery-item img { max-height:480px; object-fit:contain; }
  .detail-gallery-item figcaption { font-size:13px; }
  .realization-evaluation h2 { font-size:27px; }
  .portfolio-page main > section:first-child { padding-block:38px 25px; }
  .portfolio-page #realizacje { padding-top:22px; }
  .portfolio-page #realizacje > .container > .section-head { display:block; }
  .portfolio-page #realizacje > .container > .section-head h2 { margin-bottom:14px; font-size:24px; }
  .portfolio-entry,.portfolio-entry:nth-child(even) { display:flex; flex-direction:column; align-items:stretch; gap:23px; padding-bottom:34px; }
  .portfolio-images { height:295px; }
  .portfolio-entry .portfolio-images { order:0; }
  .portfolio-entry .case-body { order:1; }
  .case-body h3 { font-size:27px; }
  .case-body p { font-size:15px; }
  .case-tag { font-size:10px; margin-bottom:13px; }
  .realizacje-photo-grid { gap:34px; }
  .gallery-grid { grid-template-columns:1fr; gap:32px; }
  .gallery-image img { height:360px; }
  .gallery-item h2 { font-size:24px; }
  .article-shell { padding-block:28px 48px; }
  .article-grid,.blog-grid { grid-template-columns:1fr; gap:40px; }
  .article-main h1 { font-size:34px; line-height:1.15; margin:20px 0; }
  .article-main h2 { font-size:27px; margin-top:35px; }
  .article-main .article-lead { font-size:18px; }
  .article-main p,.article-main li { font-size:16px; }
  .article-main .article-breadcrumbs { font-size:11px; }
  .article-cta-box { padding:23px; }
  .article-cta-box h2 { font-size:26px; margin-top:0; }
  .article-toc { margin-top:0; }
  .article-table table,.seo-table { min-width:490px; }
  .article-table,.seo-table-wrap { max-width:100%; }
  .article-feature-image img { max-height:360px; }
  .blog-page { padding-block:38px 45px; }
  .blog-header { margin-bottom:30px; }
  .blog-card h2 { font-size:26px; }
  .legal-content h2 { font-size:26px; }
  .sitemap-groups { grid-template-columns:1fr; gap:32px; }
  .contact-grid { grid-template-columns:1fr; gap:30px; }
  .contact-methods strong { font-size:23px; }
  .contact-methods > a,.contact-methods > div { display:block; }
  .contact-methods span { display:block; padding:0; margin-bottom:5px; }
  .error-page { padding-block:50px; }
  .error-card .hero-actions { gap:13px; }
  .footer { padding-top:44px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:32px 24px; padding-bottom:32px; }
  .footer-brand { grid-column:1/-1; }
  .footer-brand img { width:177px; }
  .footer-brand > p { font-size:14px; }
  .footer-contact { grid-column:1/-1; grid-row:auto; border-top:1px solid #cbd2d8; padding-top:27px; }
  .footer h2 { font-size:11px; margin-bottom:16px; }
  .footer nav > a { padding:7px 0; font-size:13px; }
  .footer-contact > .footer-phone { font-size:29px; }
  .footer-bottom { display:block; padding-block:20px; font-size:10px; }
  .footer-bottom > div { margin-top:12px; gap:20px; }
  .footer-cookie-button { font-size:11px; min-height:36px; }
  .mobile-contact-bar { display:grid; grid-template-columns:1fr 1.35fr; gap:0; position:fixed; z-index:80; bottom:0; left:0; width:100%; padding:8px 20px calc(8px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid #bfc9d3; }
  .mobile-contact-bar a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 15px; font-size:14px; color:var(--ink); font-weight:600; text-decoration:none; }
  .mobile-contact-bar a:last-child { background:var(--blue); border-radius:2px; color:#fff; }
  .cookie-panel { left:10px; bottom:76px; width:calc(100% - 20px); padding:19px; font-size:12px; }
  .cookie-panel strong,.cookie-panel h2 { font-size:15px; }
  .cookie-actions { gap:8px; }
  .cookie-panel button { font-size:12px; padding:10px 12px; }
  .image-dialog { padding:15px; }
}
@media(max-width:370px) {
  .container { width:calc(100% - 36px); }
  .brand-logo { width:145px; }
  .nav-tools { margin-right:5px; }
  .nav-cta { padding-inline:10px; font-size:11px; }
  .intro-copy h1 { font-size:33px; }
  .intro-copy .hero-actions { gap:10px 15px; }
  .intro-copy .hero-actions .btn { font-size:13px; padding-inline:13px; }
  .intro-copy .text-link { font-size:12px; }
  .work-stack h3 { font-size:20px; }
  .form-mode .mode-choice { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media print {
  .site-header,.footer,.mobile-contact-bar,.cookie-panel,.hero-actions,.detail-actions,.quote-form,.nav-cta { display:none!important; }
  body { font-size:11pt; color:#000; background:white; padding:0; }
  .container { width:100%; }
  .section-pad { padding-block:20px; }
  .quote-copy { position:static; }
  h1 { font-size:28pt; } h2 { font-size:21pt; }
  a { color:inherit; }
  details { break-inside:avoid; }
}

.file-control { min-width:0; }


/* 2026-10-01 hotfix: remove visible side bands around images across the site. */
.intro-photo,
.work-image,
.related-photo,
.seo-content-figure,
.detail-hero-image,
.portfolio-images figure,
.gallery-image,
.article-feature-image,
.service-visual,
.detail-gallery-item,
.comparison-card,
.work-major,
.work-stack .work,
.portfolio-entry {
  background:#fff;
}

.intro-photo img,
.work-image img,
.related-photo img,
.seo-content-figure img,
.detail-hero-image img,
.portfolio-images img,
.gallery-image img,
.article-feature-image img,
.service-visual img,
.detail-gallery-item img {
  background:transparent !important;
  mix-blend-mode:normal !important;
  object-position:center center;
}


/* 2026-10-01 case showcase redesign for porownanie-oryginalu-i-wydruku-3d */
.case-showcase-page {
  padding-block: 38px 34px;
  background: #f5f5f4;
}
.case-showcase-shell {
  max-width: 1320px;
}
.case-showcase-breadcrumbs {
  margin-bottom: 26px;
}
.case-showcase-topline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 0 18px;
  border-bottom:1px solid var(--line);
  color:#6b7890;
  font: 12px/1.5 var(--mono);
  letter-spacing:.11em;
  text-transform:uppercase;
}
.case-showcase-figure {
  margin:12px 0 0;
  background:#fff;
  border:1px solid #dde2e8;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(16,31,54,.06);
}
.case-showcase-image-link {
  display:block;
  padding:22px 22px 0;
  background:#fff;
}
.case-showcase-figure img {
  width:100%;
  height:680px;
  object-fit:contain;
  display:block;
  background:linear-gradient(180deg,#fbfbfb 0%, #f7f7f7 100%);
  border-radius:12px;
}
.case-showcase-caption {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  padding:26px 28px 28px;
  border-top:1px solid var(--line);
}
.case-showcase-kicker {
  display:block;
  margin-bottom:12px;
  color:#6b7890;
  font:12px/1.5 var(--mono);
  letter-spacing:.10em;
  text-transform:uppercase;
}
.case-showcase-caption h1 {
  margin:0 0 10px;
  font-size:clamp(30px,2.5vw,48px);
  line-height:1.1;
  letter-spacing:-.04em;
}
.case-showcase-caption p {
  margin:0;
  max-width:900px;
  font-size:18px;
  line-height:1.7;
  color:var(--muted);
}
.case-showcase-arrow {
  flex-shrink:0;
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  align-self:flex-end;
  border:1px solid #ccd6e3;
  border-radius:999px;
  color:var(--blue);
  text-decoration:none;
  background:#fff;
}
.case-showcase-arrow .arrow {
  margin:0;
  font-size:32px;
}
.case-showcase-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 4px 0;
  border-top:1px solid var(--line);
  margin-top:18px;
  color:#6b7890;
  font:12px/1.5 var(--mono);
  letter-spacing:.06em;
}
.case-showcase-intro {
  padding-top: 8px;
}
.case-showcase-intro-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
}
.compact-actions {
  margin-top:22px;
}
.compact-actions .btn {
  margin-right:12px;
  margin-bottom:12px;
}
@media (max-width: 1000px) {
  .case-showcase-figure img { height:560px; }
  .case-showcase-caption { padding:24px; }
  .case-showcase-intro-grid { gap:42px; }
}
@media (max-width: 760px) {
  .case-showcase-page { padding-block:28px 28px; }
  .case-showcase-breadcrumbs { margin-bottom:18px; }
  .case-showcase-topline,
  .case-showcase-meta {
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }
  .case-showcase-image-link { padding:14px 14px 0; }
  .case-showcase-figure img { height:320px; border-radius:10px; }
  .case-showcase-caption {
    padding:18px 16px 18px;
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }
  .case-showcase-caption h1 { font-size:clamp(28px,7vw,36px); }
  .case-showcase-caption p { font-size:16px; }
  .case-showcase-arrow {
    width:54px;
    height:54px;
    align-self:flex-end;
  }
  .case-showcase-arrow .arrow { font-size:28px; }
  .case-showcase-meta { padding-top:16px; margin-top:14px; }
  .case-showcase-intro-grid { grid-template-columns:1fr; gap:28px; }
}
