/* ─── Tokens ─────────────────────────────────────────────────────────── */
:root {
  --ink:    #0E2A39;
  --deep:   #0d2233;
  --sky:    #5EA3CA;
  --mist:   #E3E3E3;
  --font-d: 'Ubuntu', sans-serif;
  --font-b: 'Source Sans 3', sans-serif;
}

/* ─── Reset ──────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--ink); color: var(--mist); font-family: var(--font-b); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
h1,h2,h3 { font-family: var(--font-d); }

/* ─── Utilities ──────────────────────────────────────────────────────── */
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.eyebrow { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sky); margin-bottom: 1rem; }
.section-lead { color: rgba(227,227,227,.9); font-size: 1.1rem; line-height: 1.7; max-width: 720px; margin-top: 1.25rem; }
.section-header { margin-bottom: 3.5rem; }
.section-header h2 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; line-height: 1.15; max-width: 760px; }

/* Fade-in animation */
.fade-in { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.fade-in.visible { opacity: 1; transform: none; }

/* Buttons */
.btn-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1rem 2rem; border-radius: 999px;
  font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #fff;
  background: linear-gradient(135deg, #14597A 0%, var(--sky) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 8px 24px -10px rgba(94,163,202,.55);
  transition: transform .2s;
}
.btn-primary:hover { transform: scale(1.02); }
.btn-ghost {
  display: inline-flex; align-items: center;
  padding: .875rem 1.75rem; border-radius: 999px;
  font-size: .8rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: #fff; border: 1px solid rgba(255,255,255,.55);
  text-shadow: 0 1px 6px rgba(0,0,0,.5);
  transition: color .2s, border-color .2s, background .2s;
}
.btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }

/* ─── Header ─────────────────────────────────────────────────────────── */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  padding: 1.5rem 1.25rem;
  transition: all .3s cubic-bezier(.4,0,.2,1);
}
@media(min-width:640px)  { .site-header { padding: 1.5rem 2rem; } }
@media(min-width:1024px) { .site-header { padding: 1.5rem 3.5rem; } }

.site-header.scrolled {
  padding-top: .75rem; padding-bottom: .75rem;
  background: rgba(14,42,57,.92);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 20px rgba(0,0,0,.25);
}

.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }

/* Logo — identyczny z oryginałem: h-16 sm:h-24 lg:h-[7.5rem] */
.header-logo img { height: 4rem; width: auto; }
@media(min-width:640px)  { .header-logo img { height: 6rem; } }
@media(min-width:1024px) { .header-logo img { height: 7.5rem; } }

/* Desktop nav */
.header-nav { display: none; align-items: center; gap: 1.5rem; }
.header-nav a {
  font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
  color: var(--mist); transition: color .2s; position: relative;
}
.header-nav a::after {
  content:''; position:absolute; bottom:-4px; left:0;
  width:0; height:2px; background:var(--sky);
  transition: width .3s;
}
.header-nav a:hover { color:#fff; }
.header-nav a:hover::after { width:100%; }
@media(min-width:1024px) { .header-nav { display:flex; } }

/* Worker button — w nav, po Kontakt */
.header-worker-btn {
  border: 1px solid rgba(94,163,202,.4); border-radius: 999px;
  padding: .375rem .875rem; color: var(--sky); font-size: 10px; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase; white-space: nowrap;
  transition: background .2s;
}
.header-worker-btn:hover { background: rgba(94,163,202,.1); }

/* Right side: lang + burger */
.header-right { display:flex; align-items:center; gap:.5rem; }

/* Language switcher */
.lang-switcher {
  display: flex; align-items: center; gap: .1rem;
  border: 1px solid rgba(94,163,202,.6); border-radius: 999px;
  background: rgba(14,42,57,.85); backdrop-filter: blur(4px);
  padding: .25rem;
}
.lang-btn {
  padding: .5rem .875rem; border-radius: 999px;
  font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
  color: #fff; transition: .2s;
}
.lang-btn:hover { color: #fff; }
.lang-active { background: var(--sky); color: #fff !important; box-shadow: 0 2px 6px rgba(94,163,202,.4); }

/* Burger */
.header-burger {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem;
  border-radius: 999px; border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.05); cursor: pointer; padding: .625rem;
}
.header-burger span { display:block; width:100%; height:2px; background:var(--mist); border-radius:2px; transition:.25s; }
.header-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.header-burger.open span:nth-child(2) { opacity:0; }
.header-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media(min-width:1024px) { .header-burger { display:none; } }

/* Mobile nav */
.mobile-nav {
  display: none; flex-direction: column; gap: .25rem;
  margin-top: .75rem; padding: 1rem;
  border: 1px solid rgba(255,255,255,.1); border-radius: 1rem;
  background: rgba(14,42,57,.95); backdrop-filter: blur(12px);
}
.mobile-nav.open { display:flex; }
.mobile-nav-link {
  padding: .75rem 1rem; border-radius: .75rem;
  font-size: .875rem; letter-spacing: .18em; text-transform: uppercase; transition: background .2s;
}
.mobile-nav-link:hover { background: rgba(255,255,255,.05); }
.mobile-worker { text-align:center; border:1px solid rgba(94,163,202,.4); color:var(--sky); margin-top:.5rem; border-radius:.75rem; }
.mobile-lang {
  display: flex; gap: .5rem; padding: .75rem 1rem 0;
  border-top: 1px solid rgba(255,255,255,.1); margin-top: .5rem;
}
.mobile-lang .lang-btn { flex:1; text-align:center; border:1px solid rgba(255,255,255,.15); border-radius:.75rem; padding:.5rem; }
.mobile-lang .lang-active { background:var(--sky); border-color:var(--sky); }

/* ─── Hero ───────────────────────────────────────────────────────────── */
.section-hero {
  position: relative; height: 100vh; min-height: 700px;
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--ink);
}
.hero-video-wrap { position: absolute; inset: 0; z-index: 0; }
.hero-video-wrap video { width:100%; height:100%; object-fit:cover; }
.hero-overlay {
  position: absolute; inset: 0;
  background: rgba(14,42,57,.6);
}
.hero-overlay::before {
  content:''; position:absolute; inset-x:0; top:0; height:10rem;
  background: linear-gradient(to bottom, rgba(14,42,57,.7), transparent);
}
.hero-overlay::after {
  content:''; position:absolute; inset-x:0; bottom:0; height:12rem;
  background: linear-gradient(to top, rgba(14,42,57,.9), transparent);
}
.hero-content {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  flex: 1; text-align: center; padding: 2rem 1.5rem 5rem;
}
.hero-heading {
  font-size: clamp(3.5rem, 11vw, 140px); font-weight: 700;
  line-height: 1; letter-spacing: -.02em; text-transform: uppercase;
  background: linear-gradient(180deg, #e3e3e3, #5ea3ca);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero-sub {
  margin-top: 2rem; max-width: 680px; font-size: 1.1rem; line-height: 1.7;
  color: #fff; font-weight: 400;
  text-shadow: 0 1px 8px rgba(0,0,0,.6);
}
.hero-ctas { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

/* ─── Stacking cards (About + Services) ─────────────────────────────── */
.section-about { background: var(--ink); padding-top: 7rem; }
.section-about .container { padding-bottom: 0; }
.section-services { background: var(--ink); padding-top: 7rem; }
.section-services .container { padding-bottom: 0; }

.stacking-cards { margin-top: 4rem; }
.stack-wrap { position: sticky; padding: 0 1rem; }
.stack-card {
  display: grid; max-width: 1200px; margin: 1.5rem auto;
  border-radius: 2.5rem; overflow: hidden;
  border: 1px solid rgba(94,163,202,.2);
}
@media(min-width:768px){ .stack-card { grid-template-columns: 1fr 1fr; min-height: 360px; } }
.stack-card-text {
  display: flex; flex-direction: column; justify-content: center; gap: 1.25rem;
  background: rgba(13,34,51,.5); backdrop-filter: blur(20px);
  padding: 2.5rem 3rem;
  border-right: 1px solid rgba(255,255,255,.06);
}
.stack-card-text h3 { font-size: clamp(1.4rem, 2.8vw, 2.25rem); font-weight: 700; line-height: 1.25; }
.stack-card-text p { color: rgba(227,227,227,.92); line-height: 1.75; font-size: 1.05rem; }
.stack-card-img { position: relative; min-height: 240px; background: rgba(14,42,57,.6); }
.stack-card-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.stack-card-img::after {
  content:''; position:absolute; inset-y:0; left:0; width:6rem;
  background: linear-gradient(to right, var(--deep), transparent);
}

.section-cta { text-align:center; padding: 5rem 1.5rem 8rem; }

/* ─── Why Us ─────────────────────────────────────────────────────────── */
.section-why { background: var(--ink); padding: 6rem 0; }
.why-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin-top: 3.5rem; }
@media(min-width:640px){ .why-grid { grid-template-columns: 1fr 1fr; } }
@media(min-width:1024px){ .why-grid { grid-template-columns: repeat(3, 1fr); } }
.why-card {
  display: flex; gap: 1rem; padding: 1.5rem;
  border-radius: 1.25rem; border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.04);
}
.check-icon { width:1.25rem; height:1.25rem; color:var(--sky); flex-shrink:0; margin-top:.15rem; }
.why-card p { color: rgba(227,227,227,.95); line-height: 1.65; font-size: .94rem; }

/* ─── Marquee ────────────────────────────────────────────────────────── */
.section-marquee { background: var(--ink); padding: 6rem 0; overflow: hidden; display:flex; flex-direction:column; gap:1rem; }
.marquee-row { display:flex; gap:1rem; will-change:transform; }
.marquee-left  { animation: marquee-l 30s linear infinite; }
.marquee-right { animation: marquee-r 30s linear infinite; }
@keyframes marquee-l { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes marquee-r { from{transform:translateX(-50%)} to{transform:translateX(0)} }
.marquee-tile { flex-shrink:0; width:420px; height:270px; border-radius:1.25rem; overflow:hidden; background:rgba(255,255,255,.05); }
.marquee-tile img { width:100%; height:100%; object-fit:cover; }

/* ─── Projects ───────────────────────────────────────────────────────── */
.section-projects { background: var(--ink); padding-top: 6rem; padding-bottom: 8rem; }
.proj-cards { margin-top: 4rem; }

.proj-card {
  max-width: 1200px; margin: 2rem auto;
  border-radius: 3rem;
  border: 2px solid rgba(94,163,202,.35);
  background: rgba(255,255,255,.04);
  backdrop-filter: blur(40px);
  padding: 2rem;
}
@media(min-width:640px){ .proj-card { padding: 3rem; } }

.proj-top { margin-bottom: 2rem; }
.proj-cat {
  font-family: monospace; font-size: .7rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: rgba(94,163,202,.7); margin-bottom: .5rem;
}
.proj-name {
  font-family: var(--font-d); font-weight: 700;
  font-size: clamp(1.3rem, 3vw, 1.875rem); color: var(--mist);
}

.proj-body {
  display: grid; gap: 2rem; align-items: start;
}
@media(min-width:768px){ .proj-body { grid-template-columns: 1fr 1fr; } }

.proj-stat {
  font-family: var(--font-d); font-weight: 700; line-height: 1;
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  color: var(--sky);
  filter: drop-shadow(0 0 24px rgba(94,163,202,.45));
  margin-bottom: 1rem;
}
.proj-left { display: flex; flex-direction: column; gap: .75rem; }
.proj-desc { color: rgba(227,227,227,.92); line-height: 1.7; font-size: 1rem; max-width: 28rem; }

.proj-img {
  aspect-ratio: 16/9; border-radius: 1.75rem;
  overflow: hidden; background: rgba(255,255,255,.05);
}
.proj-img img { width: 100%; height: 100%; object-fit: cover; }

/* ─── FAQ ────────────────────────────────────────────────────────────── */
.section-faq { background: var(--ink); padding: 7rem 0; }
.section-faq .container { max-width:800px; }
.faq-list { margin-top:3rem; border-top:1px solid rgba(255,255,255,.1); }
.faq-item { border-bottom:1px solid rgba(255,255,255,.1); }
.faq-question {
  width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  padding:1.25rem 0; text-align:left; background:none; border:none; cursor:pointer; color:var(--mist);
}
.faq-question span { font-size:.94rem; font-weight:500; line-height:1.5; }
.faq-question:hover span { color:#fff; }
.faq-chevron { width:1.25rem; height:1.25rem; flex-shrink:0; color:var(--sky); margin-top:.15rem; transition:transform .25s; }
.faq-question[aria-expanded="true"] .faq-chevron { transform:rotate(180deg); }
.faq-answer { overflow:hidden; }
.faq-answer p { padding-bottom:1.25rem; color:rgba(255,255,255,.92); font-size:.9rem; line-height:1.75; }

/* ─── Contact ────────────────────────────────────────────────────────── */
.section-contact { background: var(--ink); padding: 7rem 0; }
.section-contact .container { max-width: 960px; }
.contact-form-wrap { margin-top: 3rem; }

/* CF7 wrapper reset */
.wpcf7 { margin: 0; padding: 0; }
.wpcf7-form { display: flex; flex-direction: column; gap: 1rem; }
.wpcf7-form p { display: contents; }
.wpcf7-form br { display: none; }
.wpcf7-form-control-wrap { display: block; width: 100%; }

/* shared input look */
.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%; padding: 1.1rem 1.375rem; border-radius: 1rem;
  border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06);
  color: #fff; font-family: var(--font-b); font-size: .95rem;
  outline: none; transition: border-color .2s, background .2s;
  appearance: none; -webkit-appearance: none; box-sizing: border-box;
}
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder { color: rgba(255,255,255,.38); }
.wpcf7-form input[type=text]:focus,
.wpcf7-form input[type=email]:focus,
.wpcf7-form input[type=tel]:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  border-color: rgba(94,163,202,.65); background: rgba(255,255,255,.09);
}
.wpcf7-form textarea { resize: none; }

/* intl-tel-input (kierunkowy telefonu) — dopasowanie do ciemnego motywu */
.wpcf7-form .iti { display: block; width: 100%; }
.iti__selected-flag {
  background: rgba(255,255,255,.06); border-radius: 1rem 0 0 1rem;
  border-right: 1px solid rgba(255,255,255,.14);
}
.iti__selected-flag:hover,
.iti__selected-flag:focus { background: rgba(255,255,255,.09); }
.iti--separate-dial-code .iti__selected-dial-code { color: #fff; }
.iti {
  --iti-dropdown-bg: #0f2733; --iti-border-color: rgba(255,255,255,.14);
  --iti-hover-color: rgba(255,255,255,.09); --iti-divider-color: rgba(255,255,255,.14);
  --iti-text-color: #fff; --iti-search-bg: rgba(255,255,255,.06);
}
.iti__dropdown-content { background-color: #0f2733 !important; }
.iti__country-list {
  background: #0f2733; border: 1px solid rgba(255,255,255,.14);
  border-radius: .75rem; color: #fff;
}
.iti__country { color: #fff; }
.iti__country.iti__highlight,
.iti__country:hover { background: rgba(255,255,255,.09); }
.iti__divider { border-bottom: 1px solid rgba(255,255,255,.14); }
.iti__search-input {
  background: rgba(255,255,255,.06); border: none;
  border-bottom: 1px solid rgba(255,255,255,.14);
  color: #fff; padding: .6rem .75rem;
}
.iti__search-input::placeholder { color: rgba(255,255,255,.38); }

/* 2-col row */
.cf7-2col {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
}

/* phone row */
.cf7-phone-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start;
}
.cf7-phone-wrap { display: flex; gap: .625rem; align-items: center; }
.cf7-phone-wrap [data-name="phone_prefix"] {
  flex-shrink: 0; width: auto; position: relative;
}
.cf7-phone-wrap [data-name="phone_prefix"]::after {
  content: '▾'; position: absolute; right: .875rem; top: 50%; transform: translateY(-50%);
  color: rgba(255,255,255,.45); pointer-events: none; font-size: .7rem;
}
.cf7-phone-wrap [data-name="phone_prefix"] select {
  width: auto; min-width: 110px; padding-right: 2.25rem; cursor: pointer;
}
.cf7-phone-wrap [data-name="phone"] { flex: 1; min-width: 0; width: auto; }

/* checkboxes — acceptance */
.cf7-checks { display: flex; flex-direction: column; gap: .875rem; margin-top: .25rem; }
.cf7-checks .wpcf7-form-control-wrap { width: 100%; }
.wpcf7-acceptance { display: block; }
.wpcf7-acceptance label {
  display: flex; gap: .875rem; cursor: pointer; align-items: flex-start;
}
.wpcf7-acceptance input[type=checkbox] {
  flex-shrink: 0; width: 1.25rem; height: 1.25rem; border-radius: .3rem;
  margin-top: .15rem; padding: 0;
  border: 1.5px solid rgba(255,255,255,.35) !important;
  background: rgba(255,255,255,.05) !important;
  accent-color: var(--sky); cursor: pointer;
}
.wpcf7-acceptance label > span {
  font-size: .82rem; color: rgba(255,255,255,.88); line-height: 1.6;
}
.wpcf7-acceptance label > span a { color: var(--sky); text-decoration: underline; }

/* submit button */
.wpcf7-form input[type=submit],
.wpcf7-submit {
  display: inline-flex; align-items: center; gap: .75rem;
  padding: 1rem 2.25rem; border-radius: 999px; border: none; cursor: pointer;
  background: linear-gradient(135deg, #14597A 0%, var(--sky) 100%);
  color: #fff; font-family: var(--font-b); font-size: .8rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; width: auto !important;
  transition: transform .2s, opacity .2s;
}
.wpcf7-form input[type=submit]:hover { transform: scale(1.03); }
.wpcf7-form input[type=submit]:disabled { opacity: .55; cursor: not-allowed; transform: none; }

/* required note */
.cf-required-note { font-size: .75rem; color: rgba(255,255,255,.35); margin-top: .25rem; }
.cf7-required-star { color: #fca5a5; }

/* CF7 response / spinner */
.wpcf7-response-output {
  margin: .5rem 0 0 !important; padding: .75rem 1rem !important; border-radius: .75rem;
  font-size: .85rem; border: none !important;
}
.wpcf7-mail-sent-ok { background: rgba(110,231,183,.12); color: #6ee7b7; }
.wpcf7-mail-sent-ng,
.wpcf7-validation-errors,
.wpcf7-spam-blocked { background: rgba(252,165,165,.1); color: #fca5a5; }
.wpcf7-not-valid-tip { color: #fca5a5; font-size: .78rem; margin-top: .25rem; display: block; }
.wpcf7-spinner { display: none; }

/* responsive */
@media (max-width: 639px) {
  .cf7-2col, .cf7-phone-row { grid-template-columns: 1fr; }
  .cf7-phone-wrap { flex-direction: row; }
}

/* ─── Footer ─────────────────────────────────────────────────────────── */
.site-footer { background:var(--ink); color:#fff; border-top:1px solid rgba(255,255,255,.1); }
.footer-inner { max-width:1280px; margin:0 auto; padding:4rem 1.5rem; display:grid; gap:2.5rem; }
@media(min-width:768px){ .footer-inner { grid-template-columns:2fr 2.5fr 1.5fr; } }
.footer-logo { height:5rem; width:auto; }
.footer-tagline { margin-top:1rem; color:rgba(255,255,255,.92); font-size:.94rem; line-height:1.65; max-width:340px; }
.footer-legal { margin-top:1.25rem; font-family:monospace; font-size:.75rem; color:rgba(255,255,255,.72); line-height:1.8; }
.footer-heading { font-size:.75rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--sky); margin-bottom:1rem; }
.offices-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.office-item { display:flex; gap:.75rem; align-items:flex-start; }
.pin-icon { width:1.25rem; height:1.25rem; color:var(--sky); flex-shrink:0; margin-top:.15rem; }
.office-city { font-weight:600; font-size:.9rem; }
.office-label { font-size:.75rem; color:rgba(255,255,255,.82); margin-top:.15rem; }
.office-addr { font-size:.75rem; color:rgba(255,255,255,.88); margin-top:.15rem; }
.office-map-link { display:inline-flex; align-items:center; gap:.25rem; margin-top:.35rem; font-size:.75rem; color:var(--sky); transition:color .2s; }
.office-map-link:hover { color:#fff; }
.contact-list { list-style:none; display:flex; flex-direction:column; gap:.625rem; font-size:.9rem; }
.contact-list a { color:rgba(255,255,255,.95); transition:color .2s; }
.contact-list a:hover { color:#fff; }
.footer-bottom {
  max-width:1280px; margin:0 auto; padding:1.5rem 1.5rem 2rem;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex; flex-wrap:wrap; gap:.75rem; justify-content:space-between; align-items:center;
  font-size:.75rem; color:rgba(255,255,255,.78);
}
.footer-links { display:flex; gap:1.25rem; }
.footer-links a { transition:color .2s; }
.footer-links a:hover { color:#fff; }

/* ─── Legal pages ────────────────────────────────────────────────────── */
.legal-main {
  padding: clamp(100px,12vw,148px) 0 clamp(56px,8vw,104px);
}
.legal-shell {
  width: min(920px, calc(100% - clamp(20px,4vw,64px)));
  margin: 0 auto;
}
.legal-shell h1 {
  margin: 0;
  font-size: clamp(2.8rem,8vw,78px);
  font-weight: 800;
  line-height: 1;
}
.legal-updated { color: rgba(227,227,227,.68); margin: .5rem 0 0; font-size: .85rem; }
.legal-intro {
  max-width: 760px;
  margin: 1.25rem 0 0;
  font-size: 1.1rem;
  line-height: 1.7;
  color: rgba(227,227,227,.68);
}
.legal-block {
  border-top: 1px solid rgba(94,163,202,.22);
  margin-top: 2.5rem;
  padding-top: 2rem;
}
.legal-block h2 {
  font-size: clamp(1.4rem,4vw,2.2rem);
  font-weight: 800;
  margin-bottom: .75rem;
}
.legal-block p,
.legal-block li { color: rgba(227,227,227,.78); line-height: 1.7; margin-top: .6rem; }
.legal-block a { color: var(--sky); text-decoration: underline; text-underline-offset: 3px; }
.legal-block ul { display: grid; gap: .4rem; margin: .6rem 0 0; padding-left: 1.25rem; }
.legal-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
  border: 1px solid rgba(94,163,202,.24);
  border-radius: 18px;
  overflow: hidden;
}
.legal-table th,
.legal-table td {
  border-bottom: 1px solid rgba(94,163,202,.16);
  color: rgba(227,227,227,.82);
  padding: 14px;
  text-align: left;
  vertical-align: top;
  font-family: var(--font-b);
}
.legal-table th { color: var(--mist); font-size: .8rem; text-transform: uppercase; font-weight: 700; }
.legal-table tr:last-child td,
.legal-table tr:last-child th { border-bottom: 0; }

@media (max-width: 680px) {
  .legal-table,
  .legal-table tbody,
  .legal-table tr,
  .legal-table th,
  .legal-table td { display: block; }
  .legal-table tr { border-bottom: 1px solid rgba(94,163,202,.16); }
  .legal-table tr:last-child { border-bottom: 0; }
  .legal-table th,
  .legal-table td { border-bottom: 0; }
  .legal-table td { padding-top: 0; }
}
