/* ============================================================================ SoftSPM - system "Industry" / HydroNexis Tokeny i komponenty wg doc/SoftSPM_projekt.doc v1.0. Jasny grunt techniczny, jedna barwa akcentu (stalowa), rysunek liniowy, krzyzyki rejestracyjne. Czysty CSS, bez build stepu. ========================================================================= */ @import url("https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@500;600;700&display=swap"); :root { --color-bg: #f2f2f3; --color-surface: #e9e9ea; --color-text: #1d1f20; --color-accent: #5980a6; --color-accent-2: #728fab; --color-divider: color-mix(in srgb, #1d1f20 16%, transparent); /* Rampy tonalne - jedna wspolna skala jasnosci OKLCH */ --color-neutral-100: #f5f5f8; --color-neutral-200: #e7e7ea; --color-neutral-300: #d4d4d7; --color-neutral-400: #b7b7ba; --color-neutral-500: #98989b; --color-neutral-600: #7a7a7d; --color-neutral-700: #5d5d60; --color-neutral-800: #424244; --color-neutral-900: #2b2b2d; --color-accent-100: #eef6ff; --color-accent-200: #d6ebff; --color-accent-300: #b5d9fd; --color-accent-400: #94bce3; --color-accent-500: #749dc4; --color-accent-600: #597ea3; --color-accent-700: #416180; --color-accent-800: #2c455d; --color-accent-900: #1d2d3d; --font-heading: "Barlow Condensed", system-ui, sans-serif; --font-heading-weight: 600; --font-body: "Barlow", system-ui, sans-serif; --space-1: 3.4px; --space-2: 6.8px; --space-3: 10.2px; --space-4: 13.6px; --space-6: 20.4px; --space-8: 27.2px; --radius-sm: 2px; --radius-md: 4px; --radius-lg: 7px; --shadow-sm: 0 1px 2px color-mix(in srgb, #2b2b2d 14%, transparent); --shadow-md: 0 3px 10px color-mix(in srgb, #2b2b2d 16%, transparent); --shadow-lg: 0 12px 32px color-mix(in srgb, #2b2b2d 22%, transparent); /* Rytm strony - jednostka wiodaca 24px, polkrok 12px */ --leading: 24px; --half: 12px; --edge: clamp(20px, 5vw, 72px); --measure: 62ch; } *, *::before, *::after { box-sizing: border-box; } html { scroll-behavior: smooth; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } } body { margin: 0; background: var(--color-bg); color: var(--color-text); font-family: var(--font-body); font-size: 16px; line-height: 1.5; text-wrap: pretty; -webkit-font-smoothing: antialiased; } /* dlugie slowa i adresy nie rozpychaja ukladu na waskich ekranach */ p, li, h1, h2, h3, h4, td, th, blockquote, figcaption { overflow-wrap: break-word; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: var(--font-heading-weight); line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 var(--space-2); } h1 { font-size: 42px; } h2 { font-size: 32px; } h3 { font-size: 25px; } h4 { font-size: 20px; } h5 { font-size: 16px; } h6 { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; } p { margin: 0 0 var(--space-3); } a { color: var(--color-accent-700); text-underline-offset: 3px; } img { display: block; max-width: 100%; } .wrap { max-width: 1200px; margin: 0 auto; padding: 0 var(--edge); } .text-muted { color: color-mix(in srgb, var(--color-text) 62%, transparent); } .lead { font-size: 17.5px; line-height: var(--leading); max-width: var(--measure); } .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } /* -- nawigacja ---------------------------------------------------------- */ .nav { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; gap: var(--space-4); min-height: 62px; padding-inline: max(var(--edge), calc((100% - 1200px) / 2 + var(--edge))); background: color-mix(in srgb, var(--color-bg) 88%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--color-divider); } .nav-brand { display: inline-flex; align-items: center; margin-right: var(--space-2); text-decoration: none; } .nav-brand img { height: 30px; width: auto; } @media (max-width: 420px) { .nav-brand img { height: 26px; } } .nav-links { display: flex; align-items: center; gap: var(--space-4); margin-left: auto; } .nav a { font-size: 14px; white-space: nowrap; text-decoration: none; color: color-mix(in srgb, var(--color-text) 78%, transparent); } .nav a:hover { color: var(--color-accent-700); } .nav a[aria-current] { color: var(--color-accent-700); font-weight: 500; } .nav .btn { margin-left: var(--space-2); } @media (max-width: 900px) { .nav-links a:not(.nav-keep) { display: none; } } /* -- linijki podpisowe: etykieta NAD kreska, tresc pod nia -------------- */ .kicker { display: block; font-size: 13px; line-height: var(--half); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--color-accent-700); font-feature-settings: "tnum" 1; margin: 0 0 var(--half); } .caption-rule { height: 1px; border: 0; background: var(--color-divider); margin: 0 0 calc(var(--leading) - var(--half)); } .section-intro { max-width: var(--measure); margin-bottom: calc(1.5 * var(--leading)); } .section-intro h2 { text-transform: uppercase; font-size: clamp(28px, 3.4vw, 40px); } /* -- krzyzyki rejestracyjne -------------------------------------------- */ .corner { position: absolute; width: 13px; height: 13px; color: color-mix(in srgb, var(--color-text) 55%, transparent); pointer-events: none; } .corner::before, .corner::after { content: ""; position: absolute; background: currentColor; } .corner::before { left: 6px; top: 0; width: 1px; height: 100%; } .corner::after { top: 6px; left: 0; width: 100%; height: 1px; } .corner.tl { top: -7px; left: -7px; } .corner.tr { top: -7px; right: -7px; } .corner.bl { bottom: -7px; left: -7px; } .corner.br { bottom: -7px; right: -7px; } /* -- przyciski ---------------------------------------------------------- */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; text-decoration: none; font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 15px; line-height: 1.2; color: var(--color-text); background: transparent; border: 1px solid var(--color-divider); border-radius: 0; padding: 9px 16px; } .btn svg { display: block; } .btn-primary { background: var(--color-accent); color: var(--color-bg); border-color: var(--color-accent); } .btn-primary:hover { background: var(--color-accent-600); border-color: var(--color-accent-600); } .btn-primary:active { background: var(--color-accent-700); border-color: var(--color-accent-700); } .btn-ghost { color: var(--color-accent-700); border-color: var(--color-divider); } .btn-ghost:hover { background: color-mix(in srgb, var(--color-accent) 10%, transparent); } .btn-ghost:active { background: color-mix(in srgb, var(--color-accent) 18%, transparent); } .btn-lg { padding: 12px 22px; font-size: 17px; } .btn-block { width: 100%; } .btn:focus-visible { outline: 2px solid var(--color-accent-700); outline-offset: 2px; } /* -- tagi --------------------------------------------------------------- */ .tag { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 0; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; border: 1px solid var(--color-divider); white-space: nowrap; } .tag-accent { background: var(--color-accent); color: var(--color-bg); border-color: var(--color-accent); } .tag-outline { color: var(--color-accent-700); border-color: var(--color-accent-400); } .tag-neutral { color: color-mix(in srgb, var(--color-text) 65%, transparent); } .tag-live { background: var(--color-accent-900); color: var(--color-bg); border-color: var(--color-accent-900); } /* status zamiast daty - termin jeszcze nieustalony */ .tag-soon { color: var(--color-accent-700); border-style: dashed; border-color: var(--color-accent-400); letter-spacing: 0.08em; } /* -- formularze --------------------------------------------------------- */ .field { margin-bottom: var(--space-3); } .field > label { display: block; font-size: 12px; margin-bottom: 5px; letter-spacing: 0.04em; text-transform: uppercase; font-weight: 600; color: color-mix(in srgb, var(--color-text) 70%, transparent); } .input { width: 100%; min-height: 40px; padding: 8px 11px; font: inherit; font-size: 15px; color: var(--color-text); caret-color: var(--color-accent); background: color-mix(in srgb, var(--color-bg) 60%, #fff); border: 1px solid var(--color-divider); border-radius: 0; } .input:hover { border-color: color-mix(in srgb, var(--color-text) 45%, transparent); } .input:focus-visible { border-color: var(--color-accent); outline: 1px solid var(--color-accent); outline-offset: 0; } textarea.input { min-height: 110px; resize: vertical; } .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-4); } @media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } } .form-note { font-size: 12.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); } /* -- ramka blueprint / plyta arkusza ----------------------------------- */ .plate { position: relative; border: 1px solid var(--color-divider); background: transparent; } .title-block { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-4); padding: var(--half) var(--space-4); border-bottom: 1px solid var(--color-divider); background: color-mix(in srgb, var(--color-accent) 7%, transparent); } .tb-title { font-family: var(--font-heading); font-weight: 600; font-size: 16px; letter-spacing: 0.04em; text-transform: uppercase; margin-right: auto; } .tb-cell { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-feature-settings: "tnum" 1; color: color-mix(in srgb, var(--color-text) 62%, transparent); } /* -- tabele ------------------------------------------------------------- */ .table { width: 100%; border-collapse: collapse; font-size: 15px; } .table th { text-align: left; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: color-mix(in srgb, var(--color-text) 60%, transparent); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-divider); } .table td { padding: var(--space-3) var(--space-4); border-bottom: 1px solid color-mix(in srgb, var(--color-text) 8%, transparent); vertical-align: middle; } .table tbody tr:last-child td { border-bottom: 0; } .table tbody tr:hover { background: color-mix(in srgb, var(--color-text) 4%, transparent); } .s-num, .s-val, .s-date { font-feature-settings: "tnum" 1; } .s-num { color: color-mix(in srgb, var(--color-text) 55%, transparent); width: 3rem; } .s-val { font-family: var(--font-heading); font-weight: 700; font-size: 21px; color: var(--color-accent-800); white-space: nowrap; } .s-prop { font-weight: 500; } .s-rem { font-size: 14px; color: color-mix(in srgb, var(--color-text) 68%, transparent); } .s-date { white-space: nowrap; font-weight: 500; width: 1%; } .s-topic { font-family: var(--font-heading); font-weight: 600; font-size: 18px; } .s-act { text-align: right; white-space: nowrap; } .sign { font-family: var(--font-heading); font-weight: 600; font-size: 15px; color: var(--color-accent-700); text-decoration: none; } .sign:hover { text-decoration: underline; } .sheet-note { margin: 0; padding: var(--half) var(--space-4); border-top: 1px solid var(--color-divider); font-size: 12px; letter-spacing: 0.03em; color: color-mix(in srgb, var(--color-text) 55%, transparent); } /* -- zdjecia: duotone w ramce blueprint -------------------------------- */ .duotone { position: relative; overflow: hidden; background: var(--color-accent-900); } .duotone img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08) brightness(1.04); } .duotone::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--color-accent); mix-blend-mode: screen; opacity: 0.62; } .figure { position: relative; border: 1px solid var(--color-divider); } .figure .duotone { aspect-ratio: 4 / 3; } /* rysunki wlasne (SVG) - juz sa w kolorystyce systemu, bez duotone */ .plot { display: block; width: 100%; background: #eaeef2; } .figure .plot { border-bottom: 1px solid var(--color-divider); } .figure figcaption { padding: var(--half) var(--space-4); border-top: 1px solid var(--color-divider); font-size: 12px; letter-spacing: 0.05em; text-transform: uppercase; color: color-mix(in srgb, var(--color-text) 58%, transparent); } /* -- ikony -------------------------------------------------------------- */ .ico { width: 28px; height: 28px; stroke: var(--color-accent); stroke-width: 1.5; fill: none; stroke-linecap: round; stroke-linejoin: round; } .ico-sm { width: 16px; height: 16px; stroke-width: 1.5; } /* -- sekcje ------------------------------------------------------------- */ .section { padding: calc(3 * var(--leading)) 0; } .section-tight { padding: calc(2 * var(--leading)) 0; } /* -- hero --------------------------------------------------------------- */ .hero { padding: calc(3.5 * var(--leading)) 0 calc(2.5 * var(--leading)); } .hero-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: calc(2 * var(--leading)); align-items: center; } .display { font-family: var(--font-heading); font-weight: var(--font-heading-weight); /* skalowanie wzgledem szerokosci kolumny hero, zeby dluzsza linia ("W PRAKTYCE OD 2014.") miescila sie bez lamania w srodku slowa */ font-size: clamp(40px, 5.1cqi, 82px); line-height: 1.04; letter-spacing: 0.01em; text-transform: uppercase; margin: 0; margin-left: -0.052em; text-wrap: balance; } .display .line { display: block; } .hero-grid > div:first-child { container-type: inline-size; } @supports not (font-size: 1cqi) { .display { font-size: clamp(40px, 5.6vw, 82px); } } .hero .sub { font-size: 17px; line-height: var(--leading); max-width: var(--measure); margin: var(--leading) 0 0; } .hero .row { display: flex; gap: var(--space-4); flex-wrap: wrap; margin-top: calc(1.5 * var(--leading)); } .hero-marks { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8); margin-top: calc(1.5 * var(--leading)); padding-top: var(--half); border-top: 1px solid var(--color-divider); font-size: 13px; letter-spacing: 0.05em; text-transform: uppercase; color: color-mix(in srgb, var(--color-text) 58%, transparent); } .page-hero { padding: calc(2.5 * var(--leading)) 0 calc(1.5 * var(--leading)); } .page-hero h1 { font-size: clamp(40px, 5.4vw, 68px); text-transform: uppercase; margin-left: -0.052em; } @media (max-width: 880px) { .hero-grid { grid-template-columns: 1fr; } .hero-figure { display: none; } } /* -- siatka komorek (karty jako rysunki liniowe) ----------------------- */ .cells { display: grid; gap: calc(1.5 * var(--leading)); } .cells-2 { grid-template-columns: repeat(2, 1fr); } .cells-3 { grid-template-columns: repeat(3, 1fr); } .cells-4 { grid-template-columns: repeat(4, 1fr); } @media (max-width: 980px) { .cells-3, .cells-4 { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 640px) { .cells-2, .cells-3, .cells-4 { grid-template-columns: 1fr; } } .cell-frame { position: relative; display: flex; flex-direction: column; padding: var(--space-6); border: 1px solid var(--color-divider); background: transparent; } .cell-frame h2, .cell-frame h3 { font-size: 25px; margin-bottom: var(--half); } .cell-frame p { font-size: 15px; flex: 1; margin-bottom: var(--space-4); } .cell-frame .ico { margin-bottom: var(--space-3); } .cell-link { font-family: var(--font-heading); font-weight: 600; font-size: 15px; color: var(--color-accent-700); text-decoration: none; margin-top: auto; } .cell-link:hover { text-decoration: underline; } .cell-span { grid-column: 1 / -1; } .cell-num { position: absolute; top: var(--space-3); right: var(--space-4); font-size: 12px; letter-spacing: 0.08em; font-feature-settings: "tnum" 1; color: color-mix(in srgb, var(--color-text) 35%, transparent); } /* -- karta kursu -------------------------------------------------------- */ .course { position: relative; display: flex; flex-direction: column; border: 1px solid var(--color-divider); } .course .duotone { aspect-ratio: 16 / 9; border-bottom: 1px solid var(--color-divider); } .course .plot { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-bottom: 1px solid var(--color-divider); } .expert .plot { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-bottom: 1px solid var(--color-divider); } .course-body { padding: var(--space-6); display: flex; flex-direction: column; flex: 1; } .course-tags { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-3); } .course h3 { font-size: 22px; margin-bottom: var(--half); } .course p { font-size: 14.5px; flex: 1; } .course-meta { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); padding-top: var(--half); margin-bottom: var(--space-4); border-top: 1px solid var(--color-divider); font-size: 13px; color: color-mix(in srgb, var(--color-text) 62%, transparent); } .course-meta span { display: inline-flex; align-items: center; gap: 5px; } .course-foot { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); } .price { font-family: var(--font-heading); font-weight: 700; font-size: 24px; color: var(--color-accent-800); font-feature-settings: "tnum" 1; line-height: 1.1; } .price small { font-size: 11.5px; font-weight: 500; letter-spacing: 0.06em; color: color-mix(in srgb, var(--color-text) 55%, transparent); display: block; } /* -- uklad dwudzielny --------------------------------------------------- */ .split { display: grid; grid-template-columns: 1fr 1fr; gap: calc(2 * var(--leading)); align-items: center; } @media (max-width: 880px) { .split { grid-template-columns: 1fr; } .split-media { order: 2; } } .split-title { font-size: clamp(30px, 3.6vw, 42px); text-transform: uppercase; margin-bottom: var(--space-4); } /* -- lista kontrolna ---------------------------------------------------- */ .checks { list-style: none; margin: 0 0 var(--space-6); padding: 0; } .checks li { position: relative; padding-left: 26px; margin-bottom: var(--half); font-size: 15.5px; } .checks li::before { content: ""; position: absolute; left: 0; top: 7px; width: 11px; height: 6px; border-left: 1.5px solid var(--color-accent); border-bottom: 1.5px solid var(--color-accent); transform: rotate(-45deg); } /* -- kroki procesu ------------------------------------------------------ */ .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(1.5 * var(--leading)); } @media (max-width: 780px) { .steps { grid-template-columns: 1fr; } } .step { position: relative; padding-top: var(--space-6); border-top: 2px solid var(--color-accent); } .step-num { font-family: var(--font-heading); font-weight: 700; font-size: 44px; line-height: 1; color: color-mix(in srgb, var(--color-accent) 42%, transparent); font-feature-settings: "tnum" 1; display: block; margin-bottom: var(--space-3); } .step h3 { font-size: 22px; } .step p { font-size: 15px; margin-bottom: 0; } /* -- eksperci ----------------------------------------------------------- */ .expert { position: relative; border: 1px solid var(--color-divider); display: flex; flex-direction: column; } .expert .duotone { aspect-ratio: 1 / 1; border-bottom: 1px solid var(--color-divider); } .expert-body { padding: var(--space-6); } .expert h3 { font-size: 21px; margin-bottom: 2px; } .expert .role { font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-accent-700); margin-bottom: var(--space-3); } .expert p { font-size: 14.5px; margin-bottom: 0; } /* -- cytat -------------------------------------------------------------- */ .quote { padding: calc(2.5 * var(--leading)) 0; } .quote blockquote { margin: 0; font-family: var(--font-heading); font-weight: 600; font-size: clamp(24px, 3.1vw, 36px); line-height: 1.24; max-width: 28ch; margin-left: -0.316em; } .quote figcaption { margin-top: var(--leading); font-size: 14px; color: color-mix(in srgb, var(--color-text) 62%, transparent); margin-left: -0.885em; } /* -- pasek ekosystemu --------------------------------------------------- */ .eco { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(1.5 * var(--leading)); } @media (max-width: 780px) { .eco { grid-template-columns: 1fr; } } .eco-item { position: relative; padding: var(--space-6); border: 1px solid var(--color-divider); text-decoration: none; color: inherit; display: block; } .eco-item:hover { background: color-mix(in srgb, var(--color-accent) 6%, transparent); } .eco-item h3 { font-size: 21px; margin-bottom: var(--space-2); } .eco-item p { font-size: 14.5px; margin-bottom: var(--space-2); } .eco-url { font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-accent-700); } /* -- newsletter / CTA --------------------------------------------------- */ .cta-band { position: relative; padding: calc(2 * var(--leading)) var(--space-8); border: 1px solid var(--color-divider); background: color-mix(in srgb, var(--color-accent) 7%, transparent); } .form-row { display: flex; gap: var(--space-3); flex-wrap: wrap; max-width: 560px; } .form-row .input { flex: 1 1 240px; } /* -- zgoda na kontakt --------------------------------------------------- */ .consent { display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); align-items: start; max-width: var(--measure); margin: var(--leading) 0 var(--space-4); font-size: 13.5px; line-height: calc(var(--leading) - 3px); color: color-mix(in srgb, var(--color-text) 78%, transparent); cursor: pointer; } .consent input[type="checkbox"] { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 2px 0 0; flex: none; border: 1px solid color-mix(in srgb, var(--color-text) 38%, transparent); background: var(--color-bg); cursor: pointer; display: grid; place-content: center; } .consent input[type="checkbox"]::before { content: ""; width: 10px; height: 10px; transform: scale(0); background: var(--color-bg); clip-path: polygon(14% 46%, 0 60%, 40% 100%, 100% 20%, 86% 8%, 38% 72%); } .consent input[type="checkbox"]:checked { background: var(--color-accent); border-color: var(--color-accent); } .consent input[type="checkbox"]:checked::before { transform: scale(1); } .consent input[type="checkbox"]:focus-visible { outline: 2px solid var(--color-accent-700); outline-offset: 2px; } .consent .req { color: var(--color-accent-700); font-weight: 500; } /* -- suwak antybotowy --------------------------------------------------- */ .verify { max-width: 420px; margin: var(--leading) 0; } .verify-label { display: block; margin-bottom: var(--space-2); font-family: var(--font-heading); font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--color-text) 62%, transparent); } .verify-track { position: relative; height: 46px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--color-text) 30%, transparent); background: var(--color-bg); touch-action: none; user-select: none; } .verify-fill { position: absolute; inset: 0 auto 0 0; width: 0; background: color-mix(in srgb, var(--color-accent) 16%, transparent); pointer-events: none; } .verify-hint { position: absolute; inset: 0; display: grid; place-content: center; padding-left: 44px; pointer-events: none; font-size: 14px; color: color-mix(in srgb, var(--color-text) 55%, transparent); } .verify-handle { position: absolute; top: -1px; left: 0; width: 60px; height: 46px; display: grid; place-content: center; cursor: grab; border: 1px solid var(--color-accent); background: var(--color-accent); color: var(--color-bg); transition: left .18s ease; } .verify-handle svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.8; fill: none; } .verify-handle:focus-visible { outline: 2px solid var(--color-accent-700); outline-offset: 2px; } .verify.is-dragging .verify-handle { cursor: grabbing; transition: none; } .verify.is-verified .verify-track { border-color: var(--color-accent); } .verify.is-verified .verify-handle { background: var(--color-accent-700); border-color: var(--color-accent-700); cursor: default; } .verify.is-verified .verify-hint { color: var(--color-accent-700); font-weight: 500; } .verify-check { display: none; } .verify.is-verified .verify-chevrons { display: none; } .verify.is-verified .verify-check { display: block; } @media (prefers-reduced-motion: reduce) { .verify-handle { transition: none; } } /* -- pole-pułapka: widoczne wyłącznie dla automatów --------------------- */ .hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; } /* -- komunikat po wysłaniu formularza ----------------------------------- */ .form-status { margin: var(--space-3) 0 0; min-height: var(--leading); font-size: 14px; line-height: var(--leading); } .form-status:empty { margin: 0; min-height: 0; } .form-status.is-ok { color: var(--color-accent-700); font-weight: 500; padding-left: var(--space-3); border-left: 2px solid var(--color-accent); } /* System dopuszcza jedną barwę akcentu - błąd odróżniamy tonem i wypełnieniem, nie nowym kolorem. Sam komunikat i tak mówi wprost, co się stało. */ .form-status.is-error { color: var(--color-accent-900); font-weight: 500; padding: var(--space-2) var(--space-3); border-left: 2px solid var(--color-accent-900); background: color-mix(in srgb, var(--color-accent) 10%, transparent); } .form-status.is-busy { color: color-mix(in srgb, var(--color-text) 60%, transparent); } /* -- stopka ------------------------------------------------------------- */ .foot { margin-top: calc(2 * var(--leading)); border-top: 1px solid var(--color-divider); padding: calc(2 * var(--leading)) 0 calc(1.5 * var(--leading)); font-size: 14px; } .foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: calc(1.5 * var(--leading)); } @media (max-width: 880px) { .foot-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 520px) { .foot-grid { grid-template-columns: 1fr; } } .foot-logo { height: 42px; width: auto; margin-bottom: var(--space-4); } .foot h4 { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: color-mix(in srgb, var(--color-text) 58%, transparent); margin-bottom: var(--space-3); } .foot ul { list-style: none; margin: 0; padding: 0; } .foot li { margin-bottom: var(--space-2); } .foot a { text-decoration: none; color: color-mix(in srgb, var(--color-text) 80%, transparent); } .foot a:hover { color: var(--color-accent-700); text-decoration: underline; } .foot-bar { margin-top: calc(1.5 * var(--leading)); padding-top: var(--half); border-top: 1px solid var(--color-divider); display: flex; flex-wrap: wrap; gap: var(--space-4); justify-content: space-between; font-size: 12.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); } /* -- responsywne tabele: wiersze skladaja sie do kart ------------------- */ @media (max-width: 760px) { .table.sched thead { display: none; } .table.sched tbody tr { display: grid; grid-template-columns: 1fr auto; gap: 4px var(--space-3); padding: var(--space-4); border-bottom: 1px solid var(--color-divider); } .table.sched td { border: 0; padding: 0; } .table.sched .s-date { order: 1; font-size: 14px; color: var(--color-accent-700); } .table.sched .s-form { order: 2; text-align: right; } .table.sched .s-topic { grid-column: 1 / -1; order: 3; } .table.sched .s-place { order: 4; font-size: 13.5px; color: color-mix(in srgb, var(--color-text) 60%, transparent); } .table.sched .s-act { order: 5; text-align: right; } .table.spec thead { display: none; } .table.spec tbody tr { display: grid; grid-template-columns: auto 1fr; gap: 2px var(--space-3); padding: var(--space-4); border-bottom: 1px solid var(--color-divider); } .table.spec td { border: 0; padding: 0; } .table.spec .s-val { grid-column: 2; } .table.spec .s-rem { grid-column: 2; } } @media print { .nav, .btn { display: none; } body { background: #fff; } }