:root {
  --blue:#063861;
  --navy:#082945;
  --navy-dark:#061c33;
  --red:#cb2346;
  --paper:#f6f8fa;
  --ink:#182b3b;
  --muted:#617185;
  --line:#e2e8ee;
  --white:#fff;
  --max:1216px
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:"Segoe UI",Inter,Arial,sans-serif;
  line-height:1.62;
  -webkit-font-smoothing:antialiased
}

a {
  color:inherit;
  text-decoration:none
}

button,input,select,textarea {
  font:inherit
}

button {
  cursor:pointer
}

img,svg {
  max-width:100%;
  display:block
}

h1,h2,h3,h4,p {
  margin-top:0
}

h1,h2,h3,h4 {
  line-height:1.14
}

h1,h2,h3,.brand-title,.button,.eyebrow,.small-title {
  font-family:Montserrat,"Arial Narrow","Segoe UI",sans-serif
}

h1,h2,h3 {
  letter-spacing:-.035em
}

p {
  color:inherit
}

.container {
  width:min(var(--max),calc(100% - 56px));
  margin-inline:auto
}

.container.narrow {
  max-width:920px
}

.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.skip-link {
  position:absolute;
  top:-100px;
  left:24px;
  z-index:200;
  background:#fff;
  color:var(--navy);
  padding:9px 20px
}

.skip-link:focus {
  top:8px
}

.rp-strip {
  background:#0c2238;
  color:#dce7ee;
  padding:9px 16px;
  text-align:center;
  font-size:12px;
  letter-spacing:.045em;
  font-weight:600
}

.rp-strip strong {
  color:#ff9cad;
  font-weight:800
}

.rp-strip a {
  text-decoration:underline;
  text-underline-offset:3px
}

.site-header {
  background:#fff;
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:1px solid #e4ebf1;
  box-shadow:0 8px 30px rgba(10,38,61,.055)
}

.nav-inner {
  height:85px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}

.brand {
  display:inline-flex;
  gap:13px;
  align-items:center;
  flex-shrink:0;
  min-width:0
}

.brand img {
  width:60px;
  height:66px
}

.brand-title {
  display:block;
  color:var(--blue);
  font-weight:850;
  font-size:23px;
  line-height:1.04;
  letter-spacing:.018em
}

.brand-sub {
  display:block;
  color:#6f7d8b;
  font-weight:600;
  letter-spacing:.15em;
  font-size:9px;
  line-height:1.6;
  text-transform:uppercase
}

.nav-list {
  display:flex;
  align-items:center;
  gap:32px
}

.nav-link {
  font-weight:700;
  color:#3d4b5e;
  font-size:13px;
  white-space:nowrap;
  transition:color .2s
}

.nav-link:hover,.nav-link.active {
  color:var(--red)
}

.nav-cta,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:47px;
  padding:13px 26px;
  background:var(--blue);
  border:1px solid var(--blue);
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.006em;
  border-radius:4px;
  transition:background-color .2s,color .2s,transform .2s,box-shadow .2s
}

.nav-cta:hover,.button:hover {
  background:#145078;
  box-shadow:0 8px 20px rgba(5,44,77,.18)
}

.button svg,.nav-cta svg,.text-link svg {
  width:18px;
  height:18px
}

.button.light {
  background:#fff;
  color:var(--blue);
  border-color:#fff
}

.button.light:hover {
  background:#e6edf3
}

.button.outline {
  color:#fff;
  border-color:rgba(255,255,255,.58);
  background:transparent
}

.button.outline:hover {
  background:rgba(255,255,255,.14)
}

.button.red {
  background:var(--red);
  border-color:var(--red)
}

.button.red:hover {
  background:#ae1939
}

.button.ghost {
  background:#fff;
  color:var(--blue);
  border-color:#d8e2ea
}

.button.ghost:hover {
  background:#f3f7fb
}

.button.small {
  min-height:36px;
  padding:8px 14px;
  font-size:12px
}

.button.danger {
  background:#a62842;
  border-color:#a62842
}

.button:disabled {
  background:#9aa8b6;
  border-color:#9aa8b6;
  cursor:not-allowed;
  box-shadow:none
}

.mobile-toggle {
  display:none;
  background:none;
  border:1px solid var(--line);
  color:var(--navy);
  width:46px;
  height:44px;
  align-items:center;
  justify-content:center
}

.mobile-toggle svg {
  width:24px
}

.home-hero {
  min-height:625px;
  height:min(76vh,790px);
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#183a56
}

.home-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background:url(../img/hamburg-hafen.svg) center center/cover no-repeat;
  transform:scale(1.01)
}

.home-hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(5,20,36,.96) 0%,rgba(5,24,43,.9) 31%,rgba(7,30,50,.53) 65%,rgba(7,30,50,.12) 100%)
}

.home-hero>.container {
  position:relative;
  z-index:2;
  padding-block:90px
}

.hero-copy {
  max-width:710px;
  color:#fff
}

.hero-kicker {
  display:inline-block;
  color:#fff;
  background:var(--red);
  padding:8px 13px;
  margin-bottom:24px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase
}

.hero-copy h1 {
  font-size:clamp(46px,6.3vw,83px);
  line-height:1.06;
  letter-spacing:-.06em;
  font-weight:900;
  margin-bottom:27px;
  text-transform:uppercase
}

.hero-copy h1 span {
  color:#9ac3e5
}

.hero-copy p {
  font-size:clamp(16px,1.7vw,21px);
  font-weight:400;
  max-width:620px;
  line-height:1.65;
  color:#dce5ef;
  margin-bottom:37px
}

.hero-actions {
  display:flex;
  gap:15px;
  flex-wrap:wrap
}

.hero-info {
  position:absolute;
  z-index:2;
  bottom:27px;
  right:max(calc((100vw - var(--max))/2),28px);
  color:#e4eef6;
  text-align:right;
  font-size:11px;
  letter-spacing:.13em;
  font-weight:700
}

.hero-info strong {
  display:block;
  font-size:16px;
  color:#fff;
  letter-spacing:.04em
}

.hero-rail {
  height:5px;
  background:var(--red)
}

.eyebrow {
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.145em;
  font-size:12px;
  color:var(--red);
  display:block;
  margin-bottom:16px
}

.eyebrow.light {
  color:#ff9dae
}

.section {
  padding:102px 0
}

.section.white {
  background:#fff
}

.section.blue {
  background:var(--blue);
  color:#fff
}

.section-head {
  text-align:center;
  margin-bottom:52px
}

.section-head h2 {
  font-size:clamp(34px,4vw,49px);
  font-weight:900;
  color:var(--blue);
  margin-bottom:20px
}

.section-head p {
  max-width:650px;
  margin:0 auto;
  color:var(--muted);
  font-size:16px
}

.heading-line {
  width:75px;
  height:4px;
  background:var(--red);
  margin:19px auto 0
}

.split-heading {
  display:flex;
  justify-content:space-between;
  gap:35px;
  align-items:end;
  margin-bottom:45px
}

.split-heading h2 {
  font-size:clamp(34px,4vw,49px);
  color:var(--blue);
  font-weight:900;
  margin-bottom:0
}

.split-heading p {
  max-width:410px;
  color:var(--muted);
  margin-bottom:5px
}

.feature-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px
}

.feature-card {
  display:block;
  min-height:390px;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#163956;
  color:#fff
}

.feature-card::before {
  content:"";
  position:absolute;
  inset:0;
  background:url(../img/stadtverkehr.svg) center/cover no-repeat;
  transition:transform .4s
}

.feature-card.water::before {
  background-image:url(../img/hamburg-hafen.svg)
}

.feature-card::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(1,19,35,.98),rgba(4,22,39,.4) 58%,transparent)
}

.feature-card:hover::before {
  transform:scale(1.04)
}

.feature-content {
  position:absolute;
  z-index:1;
  bottom:0;
  left:0;
  right:0;
  padding:36px
}

.feature-content small {
  display:block;
  color:#ff9eb0;
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase
}

.feature-content h3 {
  font-size:32px;
  margin:10px 0 9px;
  letter-spacing:-.03em
}

.feature-content p {
  color:#dbe3eb;
  font-size:14px;
  max-width:420px;
  line-height:1.65;
  margin:0
}

.feature-arrow {
  position:absolute;
  right:26px;
  bottom:30px;
  border:1px solid rgba(255,255,255,.5);
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  z-index:2;
  color:#fff
}

.feature-arrow svg {
  width:20px
}

.band {
  position:relative;
  background:#0c3559;
  color:#fff;
  overflow:hidden
}

.band::before {
  content:"";
  position:absolute;
  inset:0;
  background:url(../img/hamburg-hafen.svg) center 46%/cover no-repeat;
  opacity:.24
}

.band::after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(4,35,65,.66)
}

.band-inner {
  position:relative;
  z-index:2;
  text-align:center;
  padding:100px 0
}

.band h2 {
  font-size:clamp(35px,5.2vw,64px);
  text-transform:uppercase;
  max-width:830px;
  margin:0 auto 21px;
  font-weight:900
}

.band p {
  color:#dce6ef;
  font-size:17px;
  max-width:640px;
  margin:0 auto 30px
}

.text-link {
  display:inline-flex;
  gap:9px;
  align-items:center;
  color:var(--blue);
  font-weight:800;
  font-size:13px;
  border-bottom:2px solid var(--red);
  padding-bottom:8px
}

.text-link:hover {
  color:var(--red)
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:#dce3ea;
  border:1px solid #dce3ea
}

.service {
  background:#fff;
  padding:33px 30px 31px;
  min-height:236px
}

.service .service-number {
  font-size:12px;
  font-weight:800;
  color:var(--red);
  letter-spacing:.16em;
  display:block;
  margin-bottom:40px
}

.service h3 {
  font-size:23px;
  color:var(--blue);
  font-weight:850;
  margin-bottom:10px
}

.service p {
  font-size:14px;
  color:var(--muted);
  line-height:1.7;
  margin:0
}

.service:hover {
  background:#f4f7fa
}

.editorial {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  background:#fff
}

.editorial-art {
  min-height:510px;
  background:linear-gradient(180deg,transparent,rgba(5,22,39,.35)),url(../img/hamburg-hafen.svg) center center/cover no-repeat;
  position:relative
}

.editorial-art span {
  position:absolute;
  left:40px;
  bottom:32px;
  color:white;
  font-size:12px;
  font-weight:800;
  letter-spacing:.1em
}

.editorial-content {
  padding:70px clamp(38px,6vw,112px);
  display:flex;
  align-items:center
}

.editorial-content h2 {
  color:var(--blue);
  font-size:clamp(33px,3.8vw,47px);
  font-weight:900;
  margin-bottom:23px
}

.editorial-content p {
  font-size:16px;
  line-height:1.8;
  color:var(--muted);
  margin-bottom:24px
}

.editorial-content ul {
  margin:0 0 32px;
  padding-left:20px;
  color:var(--ink)
}

.editorial-content li {
  padding:4px 0
}

.cta-block {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:44px 0
}

.cta-block h2 {
  font-weight:800;
  font-size:clamp(24px,3.2vw,35px);
  margin:0
}

.cta-block p {
  margin:5px 0 0;
  color:#dce7ef
}

.page-hero {
  min-height:270px;
  position:relative;
  display:flex;
  align-items:center;
  color:#fff;
  background:#103b61;
  overflow:hidden
}

.page-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background:url(../img/hamburg-hafen.svg) center/cover no-repeat;
  opacity:.3
}

.page-hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(5,28,49,.91),rgba(5,43,72,.62))
}

.page-hero .container {
  position:relative;
  z-index:2;
  padding-block:55px
}

.page-hero h1 {
  font-size:clamp(34px,5vw,56px);
  font-weight:900;
  margin:0 0 14px;
  text-transform:uppercase
}

.page-hero p {
  margin:0;
  max-width:670px;
  color:#e0e8f0;
  font-size:17px
}

.breadcrumbs {
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.13em;
  color:#bed7e9;
  margin-bottom:16px
}

.breadcrumbs a:hover {
  text-decoration:underline
}

.page-main {
  padding:76px 0 104px
}

.article-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 305px;
  gap:50px;
  align-items:start
}

.article h2 {
  font-size:32px;
  color:var(--blue);
  font-weight:850;
  margin:28px 0 14px
}

.article h2:first-child {
  margin-top:0
}

.article h3 {
  font-size:21px;
  color:var(--blue);
  margin:26px 0 12px
}

.article p {
  line-height:1.83;
  color:#415061
}

.article ul {
  padding-left:23px;
  color:#415061
}

.article li {
  margin:8px 0
}

.article a:not(.button) {
  text-decoration:underline;
  text-decoration-color:var(--red);
  text-underline-offset:4px
}

.article-panel,.paper-card {
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 8px 35px rgba(20,44,64,.06)
}

.article-panel {
  padding:43px
}

.sidebar {
  background:#fff;
  border-top:4px solid var(--red);
  padding:30px;
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line)
}

.sidebar h3 {
  font-size:19px;
  color:var(--blue)
}

.sidebar p {
  font-size:14px;
  color:var(--muted)
}

.sidebar .button {
  width:100%;
  margin-top:15px
}

.division {
  background:#fff;
  border:1px solid var(--line);
  margin-bottom:24px;
  display:grid;
  grid-template-columns:92px 1fr;
  gap:22px;
  padding:30px
}

.division-icon {
  width:64px;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eff4f8;
  color:var(--blue);
  font-weight:900;
  font-size:24px
}

.division h2 {
  font-size:25px;
  color:var(--blue);
  margin:0 0 11px
}

.division p {
  font-size:15px;
  color:var(--muted);
  margin:0;
  line-height:1.75
}

.division ul {
  font-size:14px;
  color:var(--ink);
  margin-bottom:0
}

.steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-top:32px
}

.step {
  background:#fff;
  border:1px solid var(--line);
  padding:28px
}

.step-no {
  display:block;
  font-weight:900;
  color:var(--red);
  font-size:28px;
  margin-bottom:27px
}

.step h3 {
  font-size:19px;
  color:var(--blue)
}

.step p {
  font-size:14px;
  color:var(--muted)
}

.form-wrap {
  max-width:890px;
  margin:auto
}

.notice {
  padding:17px 20px;
  border-left:4px solid #195b8e;
  background:#eaf3f9;
  font-size:14px;
  color:#173e5b;
  margin-bottom:25px
}

.notice.error {
  background:#fff1f1;
  border-color:#c3203f;
  color:#7f1931
}

.notice.success {
  background:#eaf8ef;
  border-color:#26794c;
  color:#205f39
}

.paper-card {
  overflow:hidden
}

.form-section {
  padding:33px 38px;
  border-bottom:1px solid var(--line)
}

.form-section:nth-child(even) {
  background:#fafbfc
}

.form-heading {
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:23px
}

.form-heading .number {
  display:grid;
  place-items:center;
  background:var(--blue);
  color:#fff;
  width:39px;
  height:39px;
  font-size:13px;
  font-weight:900;
  flex-shrink:0
}

.form-heading h2 {
  color:var(--blue);
  font-size:22px;
  margin:0 0 3px
}

.form-heading p {
  font-size:13px;
  color:var(--muted);
  margin:0
}

.form-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:21px
}

.field.full {
  grid-column:1/-1
}

.field label {
  display:block;
  color:#38485a;
  font-weight:700;
  font-size:13px;
  margin-bottom:8px
}

.field label span {
  color:var(--red)
}

.field input,.field textarea,.field select,.login-form input,.login-form select {
  display:block;
  width:100%;
  padding:12px 14px;
  border:1px solid #cbd6e0;
  background:#fff;
  color:#172c3f;
  border-radius:3px;
  min-height:48px;
  outline:none
}

.field input:focus,.field textarea:focus,.field select:focus,.login-form input:focus {
  border-color:#3577a2;
  box-shadow:0 0 0 3px rgba(33,103,147,.12)
}

.field textarea {
  min-height:190px;
  resize:vertical
}

.field small {
  display:block;
  font-size:12px;
  color:#82909e;
  margin-top:7px
}

.form-consent {
  display:flex;
  gap:13px;
  align-items:flex-start;
  color:#415061;
  font-size:14px;
  line-height:1.6
}

.form-consent input {
  accent-color:var(--blue);
  margin-top:6px;
  min-width:19px;
  min-height:19px
}

.form-consent a {
  color:var(--blue);
  text-decoration:underline
}

.form-submit {
  padding:24px 38px;
  display:flex;
  align-items:center;
  gap:24px;
  justify-content:space-between
}

.form-submit small {
  max-width:410px;
  font-size:12px;
  color:var(--muted);
  line-height:1.6
}

.status-form {
  display:flex;
  gap:12px
}

.status-form input {
  flex:1;
  min-width:0;
  border:1px solid #ccd7e0;
  padding:13px 15px;
  letter-spacing:.06em
}

.case-heading {
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:20px
}

.case-heading .case-icon {
  width:57px;
  height:57px;
  display:grid;
  place-items:center;
  color:var(--blue);
  background:#eaf1f7
}

.case-heading h2 {
  font-size:23px;
  color:var(--blue);
  margin:0 0 3px
}

.case-heading p {
  margin:0;
  color:var(--muted);
  font-size:13px
}

.status-pill {
  display:inline-block;
  background:#eaf3fa;
  color:#1a5980;
  padding:7px 12px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.03em
}

.case-meta {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
  border-block:1px solid var(--line);
  padding-block:19px;
  margin:23px 0
}

.case-meta span {
  font-size:12px;
  color:var(--muted);
  display:block
}

.case-meta strong {
  font-size:14px;
  color:var(--ink)
}

.progress-list {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-top:36px
}

.progress-stage {
  text-align:center;
  position:relative;
  font-size:12px;
  color:#7f8a98;
  font-weight:700
}

.progress-stage:not(:last-child)::after {
  content:"";
  position:absolute;
  top:19px;
  left:calc(50% + 21px);
  width:calc(100% - 42px);
  height:2px;
  background:#dde5eb
}

.progress-stage .dot {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  background:#dce4ea;
  color:#526374;
  margin:0 auto 13px;
  border-radius:50%;
  font-size:13px;
  position:relative;
  z-index:1
}

.progress-stage.done .dot,.progress-stage.current .dot {
  background:var(--blue);
  color:#fff
}

.progress-stage.done::after {
  background:var(--blue)
}

.progress-stage.current {
  color:var(--blue)
}

.status-result {
  margin-top:28px
}

.reference {
  display:inline-block;
  letter-spacing:.045em;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:19px;
  font-weight:800;
  overflow-wrap:anywhere
}

.copy-inline {
  margin-left:8px;
  vertical-align:middle;
  border:1px solid #b9c7d3;
  padding:5px 10px;
  background:#fff;
  color:var(--blue);
  font-size:12px;
  font-weight:800
}

.admin-table-wrap {
  overflow-x:auto
}

.admin-table {
  width:100%;
  border-collapse:collapse;
  font-size:13px;
  min-width:790px
}

.admin-table th {
  text-align:left;
  padding:14px 12px;
  border-bottom:2px solid #dfe7ed;
  background:#f4f7f9;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:#6c7b89
}

.admin-table td {
  padding:15px 12px;
  border-bottom:1px solid #e6eaee;
  vertical-align:middle
}

.admin-table td strong {
  display:block;
  color:#173c5d
}

.admin-table td small {
  display:block;
  color:var(--muted)
}

.admin-card {
  padding:28px;
  background:#fff;
  border:1px solid var(--line);
  margin-bottom:25px
}

.admin-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:28px
}

.admin-top h2 {
  margin:0;
  color:var(--blue);
  font-size:27px
}

.admin-table input,.admin-table select {
  width:100%;
  min-height:35px;
  padding:7px;
  border:1px solid #cbd5de;
  font-size:12px
}

.admin-actions {
  display:flex;
  align-items:end;
  gap:8px
}

.admin-actions .button {
  white-space:nowrap
}

.login-panel {
  max-width:540px;
  margin:auto;
  padding:39px
}

.login-panel h2 {
  font-size:28px;
  color:var(--blue);
  margin-bottom:15px
}

.login-panel p {
  color:var(--muted);
  font-size:14px
}

.login-form .field {
  margin-bottom:19px
}

.login-form .button {
  width:100%;
  margin-top:5px
}

.legal h2 {
  font-size:24px;
  color:var(--blue);
  margin:30px 0 12px
}

.legal h2:first-child {
  margin-top:0
}

.legal h3 {
  color:var(--blue);
  font-size:17px
}

.legal p,.legal li {
  font-size:14px;
  line-height:1.9;
  color:#405164
}

.legal address {
  font-style:normal;
  line-height:1.9;
  font-weight:600
}

.legal a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px
}

.legal .legal-card {
  background:#fff;
  padding:45px 52px;
  border:1px solid var(--line);
  box-shadow:0 8px 35px rgba(20,44,64,.06)
}

.site-footer {
  background:#091d30;
  color:#d5e0e9;
  border-top:6px solid var(--blue);
  padding:65px 0 26px
}

.footer-grid {
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr 1.05fr;
  gap:48px
}

.footer-brand {
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:17px
}

.footer-brand img {
  width:51px;
  height:59px
}

.footer-brand strong {
  font-size:18px;
  color:#fff;
  line-height:1.1
}

.footer-grid h3 {
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  margin-bottom:23px
}

.footer-grid p {
  font-size:13px;
  color:#aabbc9;
  line-height:1.8
}

.footer-grid a:not(.brand):not(.footer-brand) {
  display:block;
  font-size:13px;
  color:#abbcca;
  margin:0 0 11px
}

.footer-grid a:hover {
  color:#fff
}

.footer-bottom {
  border-top:1px solid #234054;
  margin-top:50px;
  padding-top:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  font-size:12px;
  color:#9fadb9
}

.footer-bottom a {
  margin-left:20px;
  color:#dce6ed
}

.footer-bottom a:hover {
  text-decoration:underline
}

.footer-disclaimer {
  font-weight:700;
  color:#e4a6b0
}

.callout-note {
  padding:20px;
  background:#f0f5f9;
  border-left:3px solid var(--blue);
  font-size:14px;
  color:#47566a;
  margin:23px 0
}

.muted {
  color:var(--muted)
}

.hidden {
  display:none!important
}

.admin-entry {
  background:#fff;
  border:1px solid var(--line);
  padding:25px;
  margin-bottom:17px
}

.admin-entry summary {
  cursor:pointer;
  font-weight:800;
  color:var(--blue);
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center
}

.admin-entry summary small {
  font-weight:600;
  color:var(--muted)
}

.admin-entry-body {
  margin-top:25px;
  border-top:1px solid var(--line);
  padding-top:25px
}

.admin-entry-body dl {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px
}

.admin-entry-body dt {
  color:var(--muted);
  font-size:12px
}

.admin-entry-body dd {
  margin:0;
  font-weight:700;
  font-size:14px;
  overflow-wrap:anywhere
}

.admin-entry-body blockquote {
  white-space:pre-wrap;
  margin:20px 0;
  border-left:3px solid #b6c7d3;
  padding:13px 18px;
  background:#f7f9fa;
  font-size:14px
}

.admin-entry-body form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:20px
}

.admin-entry-body .form-buttons {
  grid-column:1/-1;
  display:flex;
  gap:12px;
  flex-wrap:wrap
}

.admin-entry-body .field.full {
  grid-column:1/-1
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid #e6a33f;
  outline-offset:3px
}

@media(max-width:1060px) {
  .nav-list {
    gap:18px
  }

  .nav-link {
    font-size:12px
  }

  .brand-title {
    font-size:20px
  }

  .brand img {
    width:52px;
    height:60px
  }

  .editorial-content {
    padding:55px 35px
  }

  .footer-grid {
    gap:24px
  }

  
}

@media(max-width:810px) {
  .container {
    width:min(var(--max),calc(100% - 36px))
  }

  .nav-inner {
    height:75px
  }

  .mobile-toggle {
    display:flex
  }

  .nav-list {
    display:none;
    position:absolute;
    top:100%;
    right:0;
    left:0;
    background:#fff;
    flex-direction:column;
    align-items:stretch;
    padding:22px 25px 27px;
    gap:0;
    box-shadow:0 15px 30px rgba(8,29,48,.13)
  }

  .nav-list.open {
    display:flex
  }

  .nav-link {
    padding:12px 0;
    font-size:15px;
    border-bottom:1px solid #edf0f3
  }

  .nav-list .nav-cta {
    margin-top:16px
  }

  .home-hero {
    min-height:560px;
    height:auto
  }

  .home-hero>.container {
    padding-block:110px
  }

  .home-hero::after {
    background:linear-gradient(90deg,rgba(5,20,36,.96),rgba(5,24,43,.75))
  }

  .feature-grid,.editorial {
    grid-template-columns:1fr
  }

  .feature-card {
    min-height:340px
  }

  .editorial-art {
    min-height:355px
  }

  .editorial-content {
    padding:55px 25px
  }

  .service-grid {
    grid-template-columns:repeat(2,1fr)
  }

  .article-grid {
    grid-template-columns:1fr
  }

  .sidebar {
    order:-1
  }

  .steps {
    grid-template-columns:repeat(2,1fr)
  }

  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:42px
  }

  .split-heading {
    align-items:start;
    flex-direction:column
  }

  .split-heading p {
    max-width:600px
  }

  .cta-block {
    align-items:flex-start;
    flex-direction:column
  }

  .section {
    padding:75px 0
  }

  
}

@media(max-width:540px) {
  .brand img {
    width:45px;
    height:52px
  }

  .brand-title {
    font-size:18px
  }

  .brand-sub {
    letter-spacing:.07em;
    font-size:8px
  }

  .hero-copy h1 {
    font-size:44px
  }

  .hero-copy p {
    font-size:16px
  }

  .hero-actions .button {
    width:100%
  }

  .home-hero>.container {
    padding-block:87px
  }

  .hero-info {
    display:none
  }

  .section-head h2,.split-heading h2 {
    font-size:35px
  }

  .feature-card {
    min-height:310px
  }

  .feature-content {
    padding:25px
  }

  .feature-content h3 {
    font-size:27px
  }

  .feature-arrow {
    right:16px;
    bottom:18px
  }

  .service-grid,.steps {
    grid-template-columns:1fr
  }

  .service {
    min-height:auto
  }

  .service .service-number {
    margin-bottom:22px
  }

  .page-main {
    padding:45px 0 70px
  }

  .page-hero .container {
    padding-block:43px
  }

  .article-panel,.legal .legal-card {
    padding:26px 22px
  }

  .division {
    grid-template-columns:1fr;
    padding:24px
  }

  .form-section {
    padding:25px 22px
  }

  .form-grid {
    grid-template-columns:1fr
  }

  .form-submit {
    padding:23px;
    flex-direction:column;
    align-items:stretch
  }

  .status-form {
    flex-direction:column
  }

  .status-form .button {
    width:100%
  }

  .case-meta {
    grid-template-columns:1fr
  }

  .progress-stage {
    font-size:10px
  }

  .progress-stage .dot {
    width:35px;
    height:35px
  }

  .progress-stage:not(:last-child)::after {
    top:17px;
    left:calc(50% + 18px);
    width:calc(100% - 36px)
  }

  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:24px
  }

  .footer-grid>div:first-child {
    grid-column:1/-1
  }

  .footer-bottom {
    flex-direction:column;
    align-items:flex-start
  }

  .footer-bottom a {
    margin:0 17px 0 0
  }

  .admin-entry-body form,.admin-entry-body dl {
    grid-template-columns:1fr
  }

  .legal .legal-card {
    padding:25px
  }

  .login-panel {
    padding:27px 22px
  }

  .band-inner {
    padding:70px 0
  }

  .band h2 {
    font-size:38px
  }

  
}



.steps+.article-panel {
  margin-top:28px
}

.nav-cta,
.button,
.hero-kicker {
  border-radius:999px;
}

.feature-card {
  border-radius:14px;
}
