:root {
  --do-blue: #1e6571;
  --do-blue-dark: #134b55;
  --do-blue-soft: #e8f0ee;
  --do-red: #d73542;
  --do-ink: #17272b;
  --do-muted: #5c6a6e;
  --do-line: #d9dedb;
  --do-page: #f3f2ed;
  --do-surface: #fff;
  --do-night: #14272c;
  --do-shadow: 0 18px 50px rgba(20, 39, 44, .11);
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body { min-width: 320px; min-height: 100vh; margin: 0; color: var(--do-ink); background: #fbfbf8; font-size: 16px; line-height: 1.55; }
a { color: var(--do-blue-dark); }
a:hover, a:focus { color: var(--do-red); }
button, input, textarea { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.site-header { position: relative; z-index: 20; min-height: 60px; color: #fff; background: var(--do-blue); box-shadow: 0 7px 22px rgba(20, 39, 44, .16); }
.site-header__inner { display: flex; width: min(1170px, calc(100% - 2rem)); min-height: 60px; margin: 0 auto; align-items: center; justify-content: space-between; gap: 2rem; }
.site-brand { display: flex; flex: 0 0 auto; height: 60px; padding: 6px 0; align-items: center; }
.site-brand img { display: block; width: auto; max-width: 128px; height: 44px; object-fit: contain; }
.site-navigation { display: flex; height: 60px; margin-left: auto; align-items: stretch; }
.site-navigation > a, .site-navigation summary { display: flex; min-height: 60px; padding: 0 1rem; align-items: center; justify-content: center; color: #fff; font-size: 16px; font-weight: 500; text-decoration: none; cursor: pointer; list-style: none; }
.site-navigation summary::-webkit-details-marker { display: none; }
.site-navigation summary::after { content: "⌄"; margin: -3px 0 0 6px; font-size: 15px; }
.site-navigation > a:hover, .site-navigation > a:focus, .site-navigation > a[aria-current="page"], .site-navigation summary:hover, .site-navigation summary:focus, .site-navigation details[open] summary, .site-navigation details[data-current-section="true"] summary { color: #fff; outline: none; background: var(--do-blue-dark); }
.site-navigation__login { margin-left: .45rem; font-weight: 750 !important; background: var(--do-blue-dark); }
.site-navigation__login:hover, .site-navigation__login:focus { background: #0f3d45 !important; }
.site-navigation__home { min-width: 54px; padding: 0 .8rem !important; font-size: 24px !important; }
.site-navigation__group { position: relative; }
.site-navigation__dropdown { position: absolute; top: calc(100% - 1px); right: 0; display: grid; min-width: 230px; padding: .45rem 0; border: 1px solid var(--do-line); background: #fbfbf8; box-shadow: 0 16px 34px rgba(20, 39, 44, .14); }
.site-navigation__dropdown a { display: block; padding: .64rem 1rem; color: var(--do-ink); font-size: 15px; text-decoration: none; white-space: nowrap; }
.site-navigation__dropdown a:hover, .site-navigation__dropdown a:focus, .site-navigation__dropdown a[aria-current="page"] { color: var(--do-blue-dark); outline: none; background: var(--do-blue-soft); }
.site-menu-toggle { display: none; min-height: 42px; padding: .45rem .8rem; border: 1px solid rgba(255,255,255,.5); border-radius: 4px; color: #fff; background: transparent; cursor: pointer; }

.site-account[hidden], .site-navigation__login[hidden] { display: none !important; }
.site-account { position: relative; flex: 0 1 240px; min-width: 0; }
.site-account > summary { display: flex; align-items: center; gap: .6rem; min-height: 60px; padding: .35rem .65rem; cursor: pointer; list-style: none; border-radius: 6px; }
.site-account > summary::-webkit-details-marker { display: none; }
.site-account > summary:hover, .site-account > summary:focus-visible, .site-account[open] > summary { background: var(--do-blue-dark); }
.site-account__icon { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; border: 1px solid #87b5b9; border-radius: 50%; font-size: 12px; }
.site-account__identity { display: grid; min-width: 0; line-height: 1.3; }
.site-account__identity strong, .site-account__identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-account__identity strong { font-size: 14px; }
.site-account__identity small { font-size: 12px; color: #d9eeeb; }
.site-account__panel { position: absolute; top: 100%; right: 0; display: grid; gap: .65rem; width: min(340px, calc(100vw - 24px)); padding: 1.2rem; border: 1px solid var(--do-line); border-radius: 0 0 10px 10px; color: var(--do-ink); background: #fff; box-shadow: var(--do-shadow); overflow-wrap: anywhere; }
.site-account__panel > small { color: var(--do-muted); }
.site-account__panel label { margin-top: .4rem; font-size: 13px; font-weight: 700; }
.site-account__panel select { width: 100%; min-height: 44px; padding: .55rem; border: 1px solid var(--do-line); border-radius: 5px; font: inherit; background: #fff; color: var(--do-ink); }
.site-account__panel a, .site-account__panel button { display: block; padding: .55rem .7rem; border: 1px solid var(--do-line); border-radius: 5px; font-size: 14px; text-align: left; background: #fff; color: var(--do-blue-dark); text-decoration: none; cursor: pointer; }
.site-account__panel a:hover, .site-account__panel button:hover { background: var(--do-blue-soft); }
.site-account__panel p { margin: 0; color: var(--do-muted); font-size: 13px; }
.site-account__panel p:empty { display: none; }
@media (max-width: 760px) {
  .site-account { position: static; margin-left: auto; flex-basis: 170px; }
  .site-account > summary { min-height: 56px; padding: .25rem 0; gap: .35rem; }
  .site-account__icon { display: none; }
  .site-account__panel { right: 12px; }
  .site-header__inner:has(.site-account:not([hidden])) { gap: .5rem; }
  .site-header__inner:has(.site-account:not([hidden])) .site-brand img { max-width: 88px; }
  .site-menu-toggle { order: 3; }
}

main { min-height: 52vh; }
.content-host { padding: clamp(2.7rem, 6vw, 5.5rem) 0 clamp(3.5rem, 7vw, 6rem); background: var(--do-page); }
.content-host .datost-info-page { padding-top: 0; }
.content-host .datost-info-page + .datost-info-page { padding-top: 0; }
.content-error { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: 3rem; border-radius: 12px; background: #fff; box-shadow: var(--do-shadow); }

.site-footer { position: relative; overflow: hidden; color: #e5eeeb; background: linear-gradient(135deg, #0f1d21, var(--do-night)); }
.site-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--do-blue) 0 78%, var(--do-red) 78%); }
.site-footer__inner { width: min(1170px, calc(100% - 2rem)); margin: 0 auto; padding-top: clamp(2rem, 4vw, 3rem); }
.site-footer h2 { margin: 0 0 1.2rem; color: #fff; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.08; }
.site-footer h2::after { content: ""; display: block; width: 48px; height: 3px; margin-top: 1rem; background: var(--do-red); }
.site-footer__contacts { display: grid; padding-bottom: 2rem; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem 2rem; }
.site-footer p { margin: 0; color: rgba(229,238,235,.88); font-size: 14px; line-height: 1.55; }
.site-footer a, .site-footer__cookie { color: #9bd0d4; background: transparent; }
.site-footer a:hover, .site-footer a:focus, .site-footer__cookie:hover, .site-footer__cookie:focus { color: #fff; }
.site-footer__cookie { padding: 0; border: 0; font-size: inherit; text-decoration: underline; cursor: pointer; }
.site-footer__bar { display: flex; padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.1); justify-content: space-between; gap: 1rem; color: rgba(229,238,235,.76); font-size: 14px; }

.route-overview { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.route-overview__hero { max-width: 780px; margin-bottom: 3.2rem; }
.route-overview__eyebrow { margin: 0 0 .55rem; color: var(--do-blue-dark); font-size: 13px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.route-overview h1 { margin: 0; color: var(--do-ink); font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.05; letter-spacing: -.045em; }
.route-overview h1::after { content: ""; display: block; width: 62px; height: 4px; margin-top: 1.1rem; background: var(--do-red); }
.route-overview__lead { max-width: 730px; margin: 1.25rem 0 0; color: var(--do-muted); font-size: 18px; }
.route-overview__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.route-card { display: flex; min-height: 190px; padding: 1.6rem; flex-direction: column; border: 1px solid var(--do-line); border-radius: 14px; background: #fff; box-shadow: 0 10px 28px rgba(20,39,44,.07); }
.route-card h2 { margin: 0 0 .7rem; font-size: 21px; line-height: 1.2; }
.route-card p { margin: 0; color: var(--do-muted); }
.route-card a { margin-top: auto; padding-top: 1rem; font-weight: 750; }

.prepared-form { display: grid; gap: 1rem; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--do-line); border-radius: 14px; background: #fff; box-shadow: var(--do-shadow); }
.prepared-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.prepared-form label { display: grid; gap: .42rem; color: var(--do-ink); font-size: 15px; font-weight: 700; }
.prepared-form .wide { grid-column: 1 / -1; }
.prepared-form input, .prepared-form textarea { width: 100%; min-height: 48px; padding: .72rem .85rem; border: 1px solid #bdcac8; border-radius: 8px; color: var(--do-ink); background: #fff; }
.prepared-form textarea { min-height: 145px; resize: vertical; }
.prepared-form input:focus, .prepared-form textarea:focus { border-color: var(--do-blue); outline: 3px solid rgba(30,101,113,.18); }
.prepared-form button, .datost-info-button { display: inline-flex; min-height: 48px; padding: .72rem 1.1rem; align-items: center; justify-content: center; border: 1px solid var(--do-blue); border-radius: 8px; color: #fff; background: var(--do-blue); box-shadow: 0 9px 20px rgba(19,75,85,.22); font-size: 15px; font-weight: 800; text-decoration: none; cursor: pointer; }
.prepared-form button:hover, .prepared-form button:focus, .datost-info-button:hover, .datost-info-button:focus { color: #fff; background: var(--do-blue-dark); }
.form-status, [data-cookie-message] { min-height: 1.5rem; margin: 0; color: var(--do-muted); font-size: 14px; }
.prepared-form .inquiry-privacy { display: flex; align-items: flex-start; gap: .65rem; font-weight: 400; }
.prepared-form .inquiry-privacy input { flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; margin-top: .2rem; padding: 0; accent-color: var(--do-blue); }
[data-public-inquiry] [data-refresh-challenge] { justify-self: start; min-height: 36px; padding: .4rem .7rem; border: 1px solid #bdcac8; border-radius: 6px; background: #fff; color: var(--do-blue); box-shadow: none; cursor: pointer; }
[data-public-inquiry] button:disabled { opacity: .6; cursor: default; }

@media (max-width: 760px) {
  .site-header__inner { width: min(100%, calc(100% - 1.25rem)); min-height: 56px; gap: .8rem; }
  .site-brand { height: 56px; }
  .site-brand img { max-width: 112px; height: 40px; }
  .site-menu-toggle { display: inline-flex; align-items: center; }
  .site-navigation { position: absolute; top: 100%; right: 0; left: 0; display: none; height: auto; padding: .45rem .625rem .75rem; flex-direction: column; background: var(--do-blue); box-shadow: 0 12px 20px rgba(20,39,44,.2); }
  .site-navigation.is-open { display: flex; }
  .site-navigation > a, .site-navigation summary { min-height: 46px; padding: .45rem .8rem; justify-content: flex-start; }
  .site-navigation__home { display: none !important; }
  .site-navigation__login { margin-left: 0; }
  .site-navigation__group { width: 100%; }
  .site-navigation__dropdown { position: static; min-width: 0; margin: 0 .7rem; box-shadow: none; }
  .site-footer__contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__bar { flex-direction: column; }
  .route-overview__cards, .prepared-form__grid { grid-template-columns: 1fr; }
  .prepared-form .wide { grid-column: auto; }
}
