@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');:root{--ink:#132b37;--muted:#61737b;--teal:#007f73;--pale:#eff8f5;--line:#e3eceb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px 'DM Sans',sans-serif;color:var(--ink);background:white}header{height:80px;display:flex;align-items:center;justify-content:space-between;max-width:1220px;margin:auto;padding:0 24px}.brand{text-decoration:none;color:var(--ink);font-family:Manrope;font-size:23px;font-weight:800;letter-spacing:-1px}.brand span{color:var(--teal)}.brand small{font-size:13px}nav{display:flex;gap:26px}nav a{text-decoration:none;color:#405660;font-size:14px;font-weight:600}.hero{background:linear-gradient(125deg,#eff8f5,#e5f3f0 58%,#f5f9f7);padding:105px 24px 85px;text-align:center}.badge,.eyebrow{color:var(--teal);font-size:12px;letter-spacing:2px;font-weight:800;text-transform:uppercase}.badge{display:inline-block;background:#d5ebe5;border-radius:50px;padding:10px 18px;letter-spacing:.6px}.hero h1{font:800 clamp(38px,5vw,65px)/1.16 Manrope;max-width:850px;margin:22px auto;letter-spacing:-2px}.hero h1 em{font-style:normal;color:var(--teal)}.hero p{max-width:620px;margin:0 auto;color:var(--muted);font-size:18px;line-height:1.7}.hero-actions{display:flex;justify-content:center;gap:12px;margin:30px}.button,button{background:var(--teal);border:1px solid var(--teal);border-radius:10px;color:white;padding:13px 22px;cursor:pointer;font-weight:700;font:700 14px 'DM Sans';text-decoration:none;display:inline-block}.outline{background:white;color:var(--teal);border:1px solid #b9d6cf}.chips{display:flex;gap:24px;justify-content:center;color:#456d67;font-size:13px}.section{padding:75px 24px;max-width:1220px;margin:auto}.section.light{max-width:none;background:#f6f9f8;padding-left:max(24px,calc((100vw - 1172px)/2));padding-right:max(24px,calc((100vw - 1172px)/2))}h2{font:800 clamp(28px,3vw,38px) Manrope;margin:10px 0 12px;letter-spacing:-1px}h3{font:800 19px Manrope}p{color:var(--muted);line-height:1.65}.searchbar{display:flex;gap:12px;background:white;padding:14px;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px #183e3410;margin:25px 0}.searchbar input{flex:1;min-width:0}.cards,.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card,.tool{background:white;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 5px 25px #1a483508}.card h3{margin:10px 0}.card small{color:var(--teal)}.tool-icon{height:42px;width:42px;border-radius:11px;background:#e1f4ee;color:var(--teal);display:grid;place-items:center;font-weight:800;font-size:22px}.tool label,.form-grid label,.auth-grid label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700;margin:14px 0;color:#52656d}input,select,textarea{font:inherit;padding:13px;border:1px solid #dce6e5;border-radius:9px;background:#fff;width:100%;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid #94d2c4}.result{padding:17px;background:var(--pale);border-radius:9px;line-height:1.9;font-weight:700}.tool small{display:block;margin-top:15px;color:var(--muted);line-height:1.5}.upcoming,.empty{padding:25px;background:#eaf4f0;border-radius:12px;color:#45665e;margin-top:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px;max-width:900px}.wide{grid-column:1/-1}.check{flex-direction:row!important;align-items:center;font-weight:400!important;line-height:1.6}.check input{width:auto}.message{padding:12px;color:var(--teal)}.auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,380px));gap:20px;margin:25px 0}table{border-collapse:collapse;width:100%;background:white;margin:20px 0}th,td{border-bottom:1px solid var(--line);padding:12px;text-align:left;font-size:13px}td button{padding:7px}footer{padding:40px 24px;background:#142e35;color:white;text-align:center}footer p{color:#c2d0d2}@media(max-width:800px){nav{gap:10px;flex-wrap:wrap}header{height:auto;padding:20px;display:block}nav{margin-top:14px}nav a{font-size:12px}.cards,.tools,.auth-grid,.form-grid{grid-template-columns:1fr}.hero{padding:70px 20px}.hero h1{letter-spacing:-1px}.searchbar{flex-direction:column}.chips{flex-wrap:wrap;gap:8px}.section{padding:50px 20px}.wide{grid-column:auto}}
.comparebar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}.comparebar span{flex:1}.compare-label{display:flex;gap:9px;align-items:center;margin-top:16px;font-weight:700}.compare-label input{width:auto}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:20px 0}.comparebar button:disabled{opacity:.45;cursor:not-allowed}

/* Kalkulator faktury: kolejne pozycje i komunikaty walidacji */
.invoice-line{display:grid;grid-template-columns:1fr .7fr .7fr auto;gap:8px;align-items:end;margin:12px 0;padding:12px;border:1px solid #dbe4ef;border-radius:12px;background:#f8fafc}
.invoice-line label{min-width:0}.invoice-line input,.invoice-line select{width:100%;box-sizing:border-box}.invoice-line button{margin-bottom:2px}.calc-error{color:#a01c24;font-weight:600}
@media(max-width:650px){.invoice-line{grid-template-columns:1fr 1fr}.invoice-line button{grid-column:1/-1}}
/* Dedicated calculator pages */
.calc-page{max-width:1100px;margin:0 auto}.calc-intro{font-size:1.15rem;color:#475569;max-width:720px}.calc-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:1.5rem;align-items:start;margin-top:2rem}.calc-card,.calc-help{background:white;border:1px solid #dbe4ee;border-radius:20px;padding:2rem;box-shadow:0 12px 35px #102b4e0c}.calc-card form{display:grid;gap:1rem}.calc-card label{display:grid;gap:.5rem;font-weight:600}.calc-card input,.calc-card select{width:100%;border:1px solid #b9c8d8;border-radius:10px;padding:.8rem;background:white;color:#102b4e}.calc-submit{margin-top:.5rem}.calc-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.calc-result-grid>div{background:#eff6ff;border-radius:12px;padding:1rem}.calc-result-grid dt{font-size:.85rem;color:#475569}.calc-result-grid dd{margin:.4rem 0 0;font-weight:800;font-size:1.25rem;overflow-wrap:anywhere}.calc-error{color:#b91c1c;font-weight:600}.calc-help h2{margin-top:0}.calc-disclaimer{font-size:.85rem;color:#64748b}.invoice-entry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;border-bottom:1px solid #dbe4ee;padding-bottom:1rem}.calc-remove,.calc-secondary{border:1px solid #a6bbd1;border-radius:9px;background:white;color:#17385f;padding:.65rem;cursor:pointer}.calc-remove{grid-column:1/-1;justify-self:start}@media(max-width:760px){.calc-layout{grid-template-columns:1fr}.calc-result-grid,.invoice-entry{grid-template-columns:1fr}.calc-card,.calc-help{padding:1.2rem}}

/* Accessible office search and clear feedback */
.search-field{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:var(--ink)}
.searchbar{align-items:end}.searchbar input{width:100%}.searchbar button{min-height:48px}.search-status{min-height:1.5em;margin:0 0 16px;font-size:14px}
#offices[aria-busy="true"]{opacity:.6;pointer-events:none}.office-link{display:inline-block;margin-top:8px;font-weight:700;color:var(--teal);text-underline-offset:3px}
button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:3px solid #bd842c;outline-offset:3px}
@media(max-width:800px){.searchbar{align-items:stretch}.search-field{width:100%}.searchbar button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Dobór w trzech krokach: bez zbierania danych osobowych */
.matching-section{padding-top:45px;padding-bottom:35px}.matching-card{max-width:820px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:28px;box-shadow:0 10px 32px #153b3010}.matching-progress{color:var(--teal);font-size:13px;font-weight:800;margin-bottom:18px}.matching-step{border:0;padding:0;margin:0;min-width:0}.matching-step[hidden]{display:none}.matching-step legend{font:800 21px Manrope;margin-bottom:15px}.matching-step label{display:flex;align-items:center;gap:12px;padding:12px 15px;border:1px solid var(--line);border-radius:10px;margin:10px 0;cursor:pointer}.matching-step label:has(input[type=number]),.matching-step label:has(input[name=match_city]){display:block}.matching-step label input[type=radio],.matching-step label input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:var(--teal)}.matching-step label input[type=number],.matching-step label input[name=match_city]{margin-top:8px}.matching-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.matching-error{color:#b91c1c}.matching-actions [hidden]{display:none}@media(max-width:600px){.matching-card{padding:18px}.matching-actions button{flex:1 1 100%}}

/* Filtr online pozostaje czytelny na telefonach i nie wymusza wyszukiwania tekstowego. */
.remote-filter{display:flex;align-items:center;gap:.55rem;white-space:normal;font-size:.91rem;line-height:1.35;cursor:pointer}.remote-filter input{width:1.15rem;height:1.15rem;flex:none;accent-color:#bd913b}.remote-filter:focus-within{outline:2px solid #bd913b;outline-offset:4px}

/* Szeroki, adaptacyjny layout: 1900 px bez rozciągania tekstu i formularzy. */
:root{--site-max:1900px;--page-gutter:clamp(20px,2.5vw,48px)}
header,.section{max-width:var(--site-max);width:100%}
header{padding-inline:var(--page-gutter)}
.section{padding-inline:var(--page-gutter)}
.section.light{padding-left:max(var(--page-gutter),calc((100vw - var(--site-max))/2 + var(--page-gutter)));padding-right:max(var(--page-gutter),calc((100vw - var(--site-max))/2 + var(--page-gutter)))}
/* Więcej kolumn wyłącznie tam, gdzie zapewniają czytelne karty. */
@media(min-width:1450px){.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.tools{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1800px){.cards{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:801px) and (max-width:1100px){.cards,.tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
.calc-page{max-width:1200px}
/* Długie treści i formularze pozostają wygodne do czytania. */
.calc-intro{max-width:800px}
.matching-card{max-width:900px}
@media(max-width:800px){header,.section{padding-inline:20px}.section.light{padding-inline:20px}}

/* Accessible comparison table: readable at 1900px and scrollable on phones. */
.comparison-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--line);border-radius:14px;margin:16px 0 28px}
.comparison-scroll:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.comparison-table{width:100%;min-width:640px;border-collapse:separate;border-spacing:0;text-align:left}
.comparison-table th,.comparison-table td{padding:17px 20px;vertical-align:top;border-bottom:1px solid var(--line);min-width:175px;overflow-wrap:anywhere}
.comparison-table th:first-child{min-width:160px;background:#f5faf9;position:sticky;left:0;z-index:1}
.comparison-table thead th{background:#eaf5f2;font-weight:800}
.comparison-table thead th:first-child{z-index:2}
.comparison-table tr:last-child th,.comparison-table tr:last-child td{border-bottom:0}
.comparison-table a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.comparison-note{color:var(--muted);max-width:950px;line-height:1.6}
@media(max-width:640px){.comparison-table th,.comparison-table td{padding:12px;min-width:155px}.comparison-table th:first-child{min-width:125px}}

/* Shareable comparisons without requiring an account. */
.comparebar{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#compareShareStatus:not(:empty){margin:12px 0}
#compareShareStatus input{max-width:100%;width:min(100%,650px);padding:10px;border:1px solid var(--line);border-radius:8px}

/* Moderacja biur w panelu administratora */
.admin-table-scroll{max-width:100%;overflow-x:auto}.admin-table-scroll table{min-width:690px}.admin-hint{max-width:850px}.verification-status{display:inline-block;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-weight:700}.verification-status.is-verified{background:#dff4e8;color:#126343}.verification-button{white-space:nowrap}

/* Public office details: broad shell, comfortable reading width. */
.office-detail{max-width:1200px;margin:0 auto;color:#17314e}
.office-detail nav{font-size:.9rem;margin-bottom:1.5rem;color:#52657c}
.office-detail-hero{padding:clamp(1.5rem,4vw,3.5rem);background:linear-gradient(120deg,#102b4e,#1d4970);color:#fff;border-radius:22px;margin-bottom:2rem}
.office-detail-hero h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1.15;margin:.5rem 0 1rem;color:#fff}
.office-eyebrow{font-weight:700;letter-spacing:.03em}
.office-trust{display:inline-block;background:#f6e9b4;color:#243b51;padding:.5rem .85rem;border-radius:999px;font-weight:700}
.office-detail-cta{display:inline-block;margin-top:.7rem;padding:.85rem 1.4rem;background:#f5c65d;color:#142a46!important;border-radius:12px;font-weight:800;text-decoration:none}
.office-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:clamp(1rem,3vw,3rem)}
.office-detail-grid section p{line-height:1.8;overflow-wrap:anywhere}
.office-detail-aside{background:#f3f7fb;padding:1.5rem;border-radius:18px;align-self:start}
.office-detail-aside dl>div{padding:.7rem 0;border-bottom:1px solid #dbe5ee}
.office-detail-aside dt{font-size:.88rem;color:#51657c}
.office-detail-aside dd{margin:.25rem 0 0;font-weight:700;overflow-wrap:anywhere}
.office-detail-note{font-size:.88rem;line-height:1.6;color:#51657c}
.office-detail-next{border-top:1px solid #dbe5ee;margin-top:2rem;padding-top:1.5rem}
@media(max-width:760px){.office-detail-grid{grid-template-columns:1fr}.office-detail-hero{border-radius:14px}.office-trust{border-radius:12px}}

/* Admin data-quality overview */
.quality-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:18px 0}.quality-metric{padding:18px;border:1px solid #dce3ee;border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:8px}.quality-metric span{color:#4a5871;font-size:.9rem}.quality-metric strong{font-size:1.7rem;color:#142849}.quality-details{margin:12px 0 28px}.quality-details summary{cursor:pointer;font-weight:700;padding:12px 0}

/* Logo: preserve aspect ratio, never stretch or crop. */
.office-profile-logo,.logo-editor img{display:block;max-width:180px;width:100%;height:120px;object-fit:contain;object-position:center;background:#fff;border:1px solid #e4e8ef;border-radius:12px;padding:8px;margin:12px 0}.logo-editor{margin:16px 0}.logo-editor input[type=file]{max-width:100%}

/* Edytor danych biur w panelu administratora */
.admin-office-editor{margin:1.5rem 0;padding:clamp(1rem,2vw,2rem);border:1px solid #dce4ed;border-radius:16px;background:#f8fafc}
.admin-office-editor[hidden]{display:none}
.admin-office-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.admin-office-edit-form h4,.admin-office-edit-form label:has(textarea),.admin-office-edit-form label:has([name="confirm_owner_edit"]),.admin-office-edit-form p{grid-column:1/-1}
.admin-office-edit-form label{display:flex;flex-direction:column;gap:.4rem;font-weight:600}
.admin-office-edit-form input:not([type="checkbox"]),.admin-office-edit-form textarea{width:100%;min-width:0;padding:.75rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit}
.admin-office-edit-form textarea{min-height:90px}
@media(max-width:720px){.admin-office-edit-form{grid-template-columns:1fr}}

.session-notice{position:fixed;z-index:9999;bottom:1rem;left:50%;transform:translateX(-50%);max-width:min(94vw,820px);padding:1rem 1.3rem;border:2px solid #b58c34;border-radius:14px;background:#fff;color:#12243e;box-shadow:0 8px 35px #12243e33;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.session-notice[hidden]{display:none}.session-notice button{padding:.6rem .9rem;border-radius:8px;cursor:pointer}

/* Direct office enquiry: distinct from automatic matching */
.direct-office-banner{grid-column:1/-1;padding:1.1rem 1.3rem;border:1px solid #d7b66b;border-radius:12px;background:#fff9eb;color:#172a48}.direct-office-banner p{margin:.4rem 0 .8rem}.direct-office-banner button{max-width:100%}

/* Comparison selections persist across catalogue pages in this browser tab. */
.comparison-contact{display:inline-block;padding:.65rem .85rem;border-radius:10px;background:#123458;color:#fff!important;text-decoration:none!important;font-weight:700;white-space:nowrap}
.comparison-contact:hover,.comparison-contact:focus-visible{background:#20527d;outline-offset:3px}
@media(max-width:640px){.comparison-scroll{box-shadow:inset -12px 0 14px -15px #17314e}.comparison-table thead th{position:sticky;top:0;z-index:1}.comparison-table thead th:first-child{z-index:3}}

/* Office detail: scannable services and transparent information coverage */
.office-service-list{display:flex;flex-wrap:wrap;gap:.65rem;list-style:none;margin:1rem 0 1.8rem;padding:0}
.office-service-list li{background:#eef4fa;border:1px solid #d7e4ef;border-radius:999px;padding:.55rem .9rem;font-weight:650;color:#193c60;overflow-wrap:anywhere;max-width:100%}
.office-profile-transparency{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #dbe5ee}
.office-profile-transparency h3{margin:.2rem 0;font-size:1.05rem}
.office-profile-transparency progress{width:100%;height:.8rem;accent-color:#1d6b80}

/* Branże deklarowane przez biura */
.specialization-picker{border:1px solid #d6dfeb;border-radius:12px;padding:14px;display:flex;flex-wrap:wrap;gap:10px 20px}.specialization-picker legend{font-weight:700;padding:0 6px}.specialization-picker .muted{width:100%;margin:0}.specialization-picker .check{display:inline-flex;align-items:center;gap:7px}.specialization-tags{display:flex;gap:6px;flex-wrap:wrap}.specialization-tags span{border-radius:20px;background:#eaf0f8;color:#1d3859;padding:4px 10px;font-size:.82rem}

/* Route-specific sections remain in the DOM for shared form handlers. */
[hidden] { display: none !important; }
.route-intro { padding-top: 55px; padding-bottom: 12px; }
.route-intro h1 { font-size: clamp(2rem, 4vw, 3.3rem); margin-bottom: 10px; }
