.hero-home{padding:82px 0 48px}.hero-layout{display:grid;grid-template-columns:1.12fr .88fr;gap:34px;align-items:center}.hero-panel{padding:18px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.hero-panel .mini-map{height:320px;border-radius:14px;background:radial-gradient(circle at 22% 38%,#5f9fc1 0 5px,transparent 6px),radial-gradient(circle at 54% 48%,#4e8fb2 0 5px,transparent 6px),radial-gradient(circle at 76% 24%,#6ba8c7 0 5px,transparent 6px),linear-gradient(145deg,#dcebf2,#b9d7e5);position:relative}.hero-panel .mini-map:after{content:'Weltweite Hafeninformationen';position:absolute;left:18px;bottom:18px;padding:8px 11px;background:rgba(255,255,255,.94);border-radius:9px;font-size:13px}.home-stats{margin-top:0;position:relative}.home-stats .card{box-shadow:var(--shadow-soft)}.split-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;align-items:start}.feature-list{display:grid;gap:18px}.feature-list div{display:grid;grid-template-columns:30px 1fr;gap:10px}.geo-wrap{max-width:1080px;margin:0 auto}.geo-search{position:relative;max-width:520px;margin-bottom:30px}.geo-search input{padding-right:45px}.geo-clear{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:#88848d;background:transparent;border:0;font-size:22px}.geo-grid-top,.geo-grid-live{display:grid;grid-template-columns:1fr 1fr;gap:24px}.geo-grid-live{margin-top:24px}.geo-card{min-height:360px}.geo-map-card{display:flex;flex-direction:column}.geo-map{flex:1;min-height:285px;overflow:hidden;border-radius:14px}.geo-port-title{margin-bottom:6px;font-size:28px;font-weight:500}.geo-muted{margin-bottom:17px;color:var(--muted);font-size:13px}.geo-description{color:#52505a;line-height:1.75}.geo-value{margin:7px 0 8px;font-size:34px;font-weight:500}.weather-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}.weather-tile{padding:11px;background:#fafafa;border:1px solid var(--line);border-radius:11px;font-size:13px}.service-groups{display:grid;gap:22px}.service-group h3{margin-bottom:10px;color:#66626b;font-size:13px;font-weight:500}.service-buttons{display:flex;flex-wrap:wrap;gap:10px}.service-button{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;color:#35323a;background:#fff;border:1px solid var(--line2);border-radius:999px;text-decoration:none;font-size:13px}.service-button:hover{border-color:#9e9aa3;box-shadow:var(--shadow-soft)}.geo-empty{padding:22px 0;color:var(--muted)}@media(max-width:900px){.hero-layout,.split-section,.geo-grid-top,.geo-grid-live{grid-template-columns:1fr}.geo-card{min-height:auto}.geo-map{height:300px;min-height:300px;flex:none}}@media(max-width:680px){.weather-grid{grid-template-columns:1fr}.hero-panel .mini-map{height:240px}}

/* V1.6 – Live Services Feinschliff */
.geo-right-column {
  display: grid;
  gap: 16px;
}

.geo-time-card {
  min-height: 0;
  padding: 18px 22px;
}

.geo-time-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.geo-local-time {
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
}

.geo-local-date {
  margin-top: 7px;
  color: var(--muted);
  font-size: 13px;
}

.geo-time-zone {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.geo-data-list {
  display: grid;
  gap: 16px;
}

.geo-data-block {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.geo-data-block:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.geo-data-label {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 12px;
}

.geo-data-value {
  color: #3e3b43;
  overflow-wrap: anywhere;
}

.geo-coordinate-table {
  display: grid;
  gap: 10px;
}

.geo-coordinate-row {
  display: grid;
  grid-template-columns: 155px 1fr;
  gap: 14px;
  align-items: start;
}

.geo-coordinate-name {
  color: var(--muted);
  font-size: 12px;
}

.geo-coordinate-value {
  font-family: Consolas, "Courier New", monospace;
  font-size: 13px;
  overflow-wrap: anywhere;
}

.geo-status-line {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 5px 0 10px;
}

.geo-status-arrow {
  color: #77737c;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}

.geo-status-text {
  color: #4a474f;
}

.geo-small-note {
  margin-top: 16px;
  color: var(--muted);
  font-size: 12px;
}

.geo-map-card {
  min-height: 360px;
}

@media (max-width: 900px) {
  .geo-time-row {
    align-items: flex-start;
  }

  .geo-coordinate-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

/* V1.7 – Reiseinformationen für den Reisetag */
.geo-selection-row {
  display: grid;
  grid-template-columns: minmax(280px, 520px) minmax(220px, 300px);
  gap: 18px;
  align-items: end;
  margin-bottom: 30px;
}

.geo-selection-row .geo-search {
  max-width: none;
  margin-bottom: 0;
}

.geo-trip-date {
  min-width: 0;
}

.geo-selection-label {
  display: block;
  margin-bottom: 7px;
  color: #45424a;
  font-size: 13px;
  font-weight: 600;
}

.geo-trip-date-note {
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
}

.geo-travel-section {
  margin-top: 24px;
}

.geo-travel-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
}

.geo-travel-header h2 {
  margin-bottom: 4px;
  font-size: 25px;
}

.geo-travel-date {
  color: var(--muted);
  font-size: 13px;
  text-align: right;
}

.geo-travel-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.geo-travel-card {
  min-height: 220px;
}

.geo-travel-card h3 {
  margin-bottom: 14px;
}

.geo-travel-main-value {
  margin: 4px 0 12px;
  color: #37343c;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.1;
}

.geo-travel-lines {
  display: grid;
  gap: 7px;
  color: #55515a;
  font-size: 13px;
}

.geo-travel-lines strong {
  color: #37343c;
  font-weight: 500;
}

.geo-history-notice {
  margin-top: 16px;
}

.geo-data-basis {
  display: inline-flex;
  margin-top: 12px;
  padding: 5px 9px;
  color: #66616a;
  background: #f1f1f0;
  border-radius: 999px;
  font-size: 11px;
}

.geo-travel-loading {
  min-height: 160px;
  display: grid;
  place-items: center;
  color: var(--muted);
}

@media (max-width: 1000px) {
  .geo-travel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .geo-selection-row,
  .geo-travel-grid {
    grid-template-columns: 1fr;
  }

  .geo-travel-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .geo-travel-date {
    text-align: left;
  }
}


/* V1.7.1 – korrigierte Anordnung */
.geo-selection-row {
  grid-template-columns: minmax(300px, 1fr) minmax(280px, 360px);
  align-items: stretch;
}

.geo-top-clock-card {
  min-height: 0;
  padding: 12px 16px;
  box-shadow: var(--shadow-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.geo-top-clock-card .geo-selection-label { margin-bottom: 4px; }

.geo-top-clock-time {
  color: #37343c;
  font-size: 25px;
  font-weight: 500;
  line-height: 1;
}

.geo-top-clock-meta {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
}

.geo-right-column { display: block; }
.geo-map-card { min-height: 360px; }

.geo-travel-header { align-items: center; }
.geo-travel-title-block { min-width: 0; }

.geo-travel-date-control {
  width: min(100%, 300px);
  flex: 0 0 300px;
}

.geo-travel-date-control .geo-selection-label { margin-bottom: 6px; }
.geo-travel-date-control .input { min-height: 44px; }
.geo-travel-date-control .geo-trip-date-note { margin-top: 5px; }

@media (max-width: 900px) {
  .geo-selection-row { grid-template-columns: 1fr; }
  .geo-top-clock-card { min-height: 64px; }
  .geo-travel-header { align-items: stretch; }
  .geo-travel-date-control { width: 100%; flex-basis: auto; }
}


/* V1.7.2 – exakt bündiges Zwei-Spalten-Raster */

/* Oberes Raster verwendet exakt dieselben Spalten wie Beschreibung/Karte. */
.geo-selection-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

/* Hafensuche füllt ihre komplette linke Spalte. */
.geo-selection-row .geo-search {
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

/* Uhr hat exakt dieselbe Gesamthöhe wie Label + Eingabefeld links. */
.geo-top-clock-card {
  width: 100%;
  min-height: 74px;
  height: 74px;
  padding: 10px 16px;
  align-self: stretch;
}

/* Beschreibung und Kartenbereich werden immer gleich hoch. */
.geo-grid-top {
  align-items: stretch;
}

.geo-grid-top > .geo-card,
.geo-grid-top > .geo-right-column {
  min-width: 0;
  height: 100%;
}

.geo-grid-top > .geo-card {
  display: flex;
  flex-direction: column;
}

.geo-grid-top .geo-description {
  flex: 1;
}

.geo-grid-top .geo-right-column {
  display: flex;
}

.geo-grid-top .geo-map-card {
  width: 100%;
  height: 100%;
  min-height: 360px;
}

/* Die Karte nutzt die gesamte verbleibende Kartenkachel. */
.geo-grid-top .geo-map {
  flex: 1 1 auto;
  height: auto;
  min-height: 285px;
}

@media (max-width: 900px) {
  .geo-selection-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .geo-top-clock-card {
    height: 68px;
    min-height: 68px;
  }

  .geo-grid-top > .geo-card,
  .geo-grid-top > .geo-right-column {
    height: auto;
  }

  .geo-grid-top .geo-map-card {
    min-height: 360px;
  }
}


/* V1.7.3 – Hafensuche und Datum/Uhrzeit exakt gleich hoch */
.geo-selection-row {
  align-items: stretch;
}

/* Linke Suchspalte */
.geo-selection-row .geo-search {
  display: grid;
  grid-template-rows: auto 48px;
  gap: 7px;
  align-self: stretch;
}

.geo-selection-row .geo-search .input {
  height: 48px;
  min-height: 48px;
}

/* Rechte Datum-/Uhrzeitkarte */
.geo-top-clock-card {
  height: auto;
  min-height: 0;
  padding: 12px 16px;
  display: grid;
  grid-template-rows: auto 48px;
  gap: 7px;
  align-self: stretch;
}

.geo-top-clock-title {
  color: #45424a;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}

.geo-top-clock-line {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 2px;
  color: #3d3942;
  white-space: nowrap;
  overflow: hidden;
}

.geo-top-clock-line span {
  min-width: 0;
}

#localTimeZone,
#localDate {
  color: #55515a;
  font-size: 13px;
}

#localTime {
  color: #2f2c34;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .01em;
}

.geo-clock-separator {
  color: #c7c4c9;
  flex: 0 0 auto;
}

@media (max-width: 720px) {
  .geo-top-clock-line {
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .geo-top-clock-line::-webkit-scrollbar {
    display: none;
  }

  #localTime {
    font-size: 18px;
  }
}


/* V1.7.4 – finale Kopfzeile */
.geo-selection-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

/* Beide oberen Felder sind echte, gleich große Karten */
.geo-search-card,
.geo-top-clock-card {
  width: 100%;
  min-width: 0;
  height: 112px;
  min-height: 112px;
  padding: 16px 20px;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

/* Linke Karte */
.geo-search-card {
  position: relative;
  display: grid;
  grid-template-rows: auto 52px;
  gap: 10px;
  max-width: none;
}

.geo-search-card .geo-selection-label {
  margin: 0;
  color: #35323a;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}

.geo-search-card .input {
  width: 100%;
  height: 52px;
  min-height: 52px;
  padding: 0 46px 0 16px;
  font-size: 16px;
}

.geo-search-card .geo-clear {
  right: 28px;
  top: 65px;
  transform: translateY(-50%);
}

/* Rechte Karte */
.geo-top-clock-card {
  display: grid;
  grid-template-rows: auto 52px;
  gap: 10px;
}

.geo-top-clock-title {
  margin: 0;
  color: #35323a;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}

.geo-top-clock-line {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  overflow: hidden;
  white-space: nowrap;
}

/* Alle drei Werte exakt gleich groß */
#localTimeZone,
#localDate,
#localTime {
  color: #35323a;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
}

.geo-clock-separator {
  color: #bdb9c0;
  font-size: 16px;
  line-height: 1;
  flex: 0 0 auto;
}

/* Oberes Raster exakt wie Beschreibung und Karte darunter */
.geo-selection-row,
.geo-grid-top {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

@media (max-width: 900px) {
  .geo-selection-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .geo-search-card,
  .geo-top-clock-card {
    height: 108px;
    min-height: 108px;
  }
}

@media (max-width: 560px) {
  .geo-top-clock-line {
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .geo-top-clock-line::-webkit-scrollbar {
    display: none;
  }

  #localTimeZone,
  #localDate,
  #localTime,
  .geo-clock-separator {
    font-size: 14px;
  }
}


/* V1.7.5 */
.geo-search-card{
  display:grid;
  grid-template-rows:auto 1fr;
}
.geo-search-card .geo-selection-label{
  text-align:left;
  margin:0 0 8px 0;
}
.geo-search-card .input,
.geo-search-card .select2,
.geo-search-card .select2-container{
  width:100%!important;
  max-width:none!important;
}
.geo-search-card .select2-container{
  display:block!important;
}
.geo-search-card .select2-selection{
  width:100%!important;
  height:52px!important;
  display:flex!important;
  align-items:center!important;
}

.geo-top-clock-line{
  display:grid;
  grid-template-columns:1.6fr auto 1.2fr auto 1fr;
  align-items:center;
  column-gap:12px;
}
.geo-top-clock-title{
  margin-bottom:8px;
}
#localTimeZone,#localDate,#localTime{
  font-size:16px;
  line-height:1.2;
}
#localTime{
  font-weight:400;
}


/* V1.7.6 – echte volle Hafensuche und synchrones Zeitraster */
.geo-search-card {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto 52px !important;
  justify-items: stretch !important;
  align-items: stretch !important;
}

.geo-search-card .geo-selection-label,
.geo-search-card #portCombo {
  grid-column: 1 / -1;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  justify-self: stretch !important;
  text-align: left !important;
}

.geo-search-card datalist {
  display: none !important;
}

.geo-search-card .geo-clear {
  position: absolute;
}

.geo-top-clock-card {
  display: grid;
  grid-template-rows: auto 52px;
  gap: 10px;
}

.geo-clock-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) auto minmax(0, 1.2fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  min-width: 0;
}

.geo-clock-grid > span {
  min-width: 0;
  white-space: nowrap;
}

.geo-clock-labels {
  color: #35323a;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}

.geo-clock-values {
  min-height: 52px;
  color: #35323a;
}

.geo-clock-values #localTimeZone,
.geo-clock-values #localDate,
.geo-clock-values #localTime {
  color: #35323a;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
}

.geo-clock-separator {
  color: #bdb9c0;
  text-align: center;
}

@media (max-width: 620px) {
  .geo-clock-grid {
    grid-template-columns: minmax(120px, 1.5fr) auto minmax(95px, 1.1fr) auto minmax(75px, .9fr);
    column-gap: 8px;
    overflow-x: auto;
  }

  .geo-clock-labels,
  .geo-clock-values #localTimeZone,
  .geo-clock-values #localDate,
  .geo-clock-values #localTime {
    font-size: 13px;
  }
}


/* V1.7.7 – Reisekacheln gleichmäßig ausrichten */
.geo-travel-card {
  display: flex;
  flex-direction: column;
}

.geo-travel-card .geo-data-basis {
  margin-top: auto;
  align-self: flex-start;
}

.geo-travel-card .geo-travel-lines {
  margin-bottom: 14px;
}


/* V1.8 – Live-Karten */
.geo-live-maps-section {
  margin-top: 24px;
}

.geo-live-maps-header {
  margin-bottom: 16px;
}

.geo-live-maps-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.geo-live-map-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

.geo-live-map-head {
  padding: 22px 24px 14px;
}

.geo-live-map-head h3 {
  margin-bottom: 4px;
}

.geo-live-map-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.geo-live-map-preview {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #ecebea;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.geo-live-map-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.geo-live-map-example {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 5px 8px;
  color: #55515a;
  background: rgba(255, 255, 255, .92);
  border-radius: 8px;
  font-size: 11px;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

.geo-live-map-actions {
  display: flex;
  justify-content: flex-end;
  padding: 16px 20px 20px;
}

.geo-live-map-actions .btn {
  min-height: 40px;
  padding: 8px 15px;
}

.geo-external-services-card {
  margin-top: 24px;
}

@media (max-width: 900px) {
  .geo-live-maps-grid {
    grid-template-columns: 1fr;
  }
}


/* V1.9 – Weiterreise mit Rome2Rio */
.geo-onward-section {
  margin-top: 24px;
}

.geo-onward-header {
  margin-bottom: 16px;
}

.geo-onward-card {
  padding: 24px;
}

.geo-onward-intro {
  margin-bottom: 20px;
  color: var(--muted);
  font-size: 13px;
}

.geo-onward-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
}

.geo-onward-field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.geo-onward-field label {
  color: #45424a;
  font-size: 13px;
  font-weight: 600;
}

.geo-onward-origin {
  min-height: 46px;
  display: flex;
  align-items: center;
  padding: 11px 14px;
  color: #3d3942;
  background: #f7f7f6;
  border: 1px solid var(--line);
  border-radius: 11px;
  overflow-wrap: anywhere;
}

.geo-onward-button {
  min-height: 46px;
  white-space: nowrap;
}

.geo-onward-note {
  margin-top: 14px;
  color: var(--muted);
  font-size: 11px;
}

.geo-onward-error {
  margin-top: 12px;
  color: #9a3f3f;
  font-size: 12px;
}

@media (max-width: 900px) {
  .geo-onward-form {
    grid-template-columns: 1fr;
  }

  .geo-onward-button {
    width: 100%;
  }
}


/* V1.9.2 – Rome2Rio als echter Link */
.geo-onward-button.is-disabled {
  opacity: .48;
  pointer-events: none;
  cursor: default;
  box-shadow: none;
}


/* V1.9.3 – Rome2Rio-Button immer anklickbar */
.geo-onward-button,
.geo-onward-button.is-disabled {
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}


/* V1.9.4 – Rome2Rio-Direktbutton */
.geo-onward-button {
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}


/* V1.10 – GeoNames-Zielortvorschläge */
.geo-onward-field-destination {
  position: relative;
}

.geo-place-suggestions {
  position: absolute;
  z-index: 1200;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  display: none;
  max-height: 280px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(42, 38, 46, .14);
}

.geo-place-suggestions.is-open {
  display: block;
}

.geo-place-suggestion {
  width: 100%;
  display: block;
  padding: 11px 14px;
  color: #3d3942;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
  cursor: pointer;
}

.geo-place-suggestion:last-child {
  border-bottom: 0;
}

.geo-place-suggestion:hover,
.geo-place-suggestion:focus {
  background: #f5f7f8;
  outline: none;
}

.geo-place-suggestion-name {
  display: block;
  font-size: 14px;
  font-weight: 500;
}

.geo-place-suggestion-meta {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
}

.geo-place-suggestion-status {
  padding: 11px 14px;
  color: var(--muted);
  font-size: 12px;
}

.geo-geonames-credit {
  margin-top: 6px;
  color: var(--muted);
  font-size: 10px;
}

.geo-geonames-credit a {
  color: inherit;
}


/* V1.10.1 – Rome2Rio neuer Tab und gleich hohe Felder */
.geo-onward-form {
  align-items: end;
}

.geo-onward-field {
  align-self: end;
}

.geo-onward-field-destination {
  padding-bottom: 0;
}

.geo-onward-field .input,
.geo-onward-origin,
.geo-onward-button {
  min-height: 46px;
  height: 46px;
}

.geo-onward-note a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* V1.11 – Entdecken & Outdoor / Sehenswürdigkeiten */
.geo-external-services-card > h3 {
  margin-bottom: 18px;
}

.service-groups {
  display: grid;
  gap: 24px;
}

.service-discovery-group {
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.service-discovery-head {
  margin-bottom: 14px;
}

.service-discovery-head h3 {
  margin-bottom: 5px;
}

.service-discovery-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.service-discovery-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.service-discovery-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: 16px;
  background: #f8f8f7;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.service-discovery-copy {
  margin-bottom: 14px;
}

.service-discovery-copy h4 {
  margin: 0 0 5px;
  color: var(--text);
  font-size: 15px;
}

.service-discovery-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.service-discovery-item .service-button {
  margin-top: auto;
}

@media (max-width: 760px) {
  .service-discovery-list {
    grid-template-columns: 1fr;
  }
}

/* V1.14 – neue, aufgeräumte Startseite */
.home-hero-v2 {
  padding: 88px 0 58px;
}

.home-hero-v2-inner {
  max-width: 1120px;
}

.home-hero-v2 h1 {
  max-width: 1020px;
  margin-bottom: 22px;
  font-size: clamp(2.75rem, 6.3vw, 5.7rem);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.home-hero-v2 .lead {
  max-width: 820px;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
}

.home-primary-actions {
  margin-top: 30px;
}

.home-stats-v2 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 58px;
}

.home-stat-v2 {
  min-width: 0;
  padding: 22px 0 4px;
  border-top: 1px solid var(--line2);
}

.home-tools-section {
  padding-top: 82px;
  background: rgba(255,255,255,.45);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.home-section-heading {
  max-width: 850px;
  margin-bottom: 38px;
}

.home-section-heading h2,
.home-problem-grid h2,
.home-mobile-panel h2 {
  font-size: clamp(2rem, 4.2vw, 3.8rem);
  line-height: 1.08;
  letter-spacing: -.035em;
}

.home-product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.home-product-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
}

.home-product-image {
  display: block;
  padding: 18px 18px 0;
  background: #f4f5f4;
}

.home-product-image img {
  display: block;
  width: 100%;
  height: 440px;
  object-fit: cover;
  object-position: top center;
  border: 1px solid var(--line);
  border-radius: 15px 15px 0 0;
}

.home-product-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 28px;
}

.home-product-copy h3 {
  margin-bottom: 12px;
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
}

.home-product-copy p {
  margin-bottom: 24px;
  color: var(--muted);
  line-height: 1.7;
}

.home-product-copy .btn {
  margin-top: auto;
}

.home-problem-section {
  padding-top: 92px;
}

.home-problem-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 58px;
  align-items: start;
}

.home-question-panel {
  display: grid;
  gap: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
}

.home-question-panel > * {
  padding: 20px 24px;
  border-bottom: 1px solid var(--line);
}

.home-question-panel > *:last-child {
  border-bottom: 0;
}

.home-question-panel strong {
  color: #275f80;
  background: #eef5f8;
  font-weight: 600;
}

.home-mobile-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  padding: 38px 42px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
}

.home-mobile-panel > div {
  max-width: 800px;
}

.home-mobile-panel p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
}

.home-mobile-panel .btn {
  flex: 0 0 auto;
}

.home-project-card {
  padding: 42px;
}

@media (max-width: 980px) {
  .home-product-image img {
    height: 360px;
  }

  .home-problem-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }
}

@media (max-width: 760px) {
  .home-hero-v2 {
    padding: 58px 0 42px;
  }

  .home-stats-v2,
  .home-product-grid {
    grid-template-columns: 1fr;
  }

  .home-stats-v2 {
    gap: 10px;
    margin-top: 42px;
  }

  .home-product-image img {
    height: auto;
    max-height: 520px;
    object-fit: contain;
    background: #fff;
  }

  .home-mobile-panel {
    align-items: flex-start;
    flex-direction: column;
    padding: 28px;
  }

  .home-project-card {
    padding: 28px;
  }
}

/* V1.12 – Währung & Wechselkurs */
.geo-currency-section {
  margin-top: 24px;
}

.geo-currency-header {
  margin-bottom: 16px;
}

.geo-currency-header h2 {
  margin-bottom: 4px;
  font-size: 25px;
}

.geo-currency-card {
  padding: 24px;
}

.geo-currency-loading {
  min-height: 150px;
  display: grid;
  place-items: center;
  color: var(--muted);
}

.geo-currency-top {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr);
  gap: 28px;
  align-items: end;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}

.geo-currency-place {
  margin: 3px 0;
  font-size: 20px;
}

.geo-currency-name {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
}

.geo-currency-rate-content {
  padding-top: 22px;
}

.geo-currency-rate-content.is-loading {
  min-height: 120px;
  display: grid;
  place-items: center;
  color: var(--muted);
}

.geo-currency-rate-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.geo-currency-rate {
  margin-top: 5px;
  color: #37343c;
  font-size: 27px;
  font-weight: 500;
  line-height: 1.15;
}

.geo-currency-reverse,
.geo-currency-date {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}

.geo-currency-table-wrap {
  overflow-x: auto;
}

.geo-currency-table {
  width: 100%;
  border-collapse: collapse;
}

.geo-currency-table th,
.geo-currency-table td {
  padding: 10px 12px;
  text-align: right;
  border-bottom: 1px solid var(--line);
}

.geo-currency-table th:first-child,
.geo-currency-table td:first-child {
  text-align: left;
}

.geo-currency-table th {
  color: #55515a;
  background: #f7f7f6;
  font-size: 12px;
  font-weight: 600;
}

.geo-currency-table td {
  color: #37343c;
  font-size: 14px;
}

.geo-currency-custom {
  margin-top: 22px;
  max-width: 520px;
}

.geo-currency-custom-row {
  display: grid;
  grid-template-columns: minmax(120px, 180px) auto minmax(150px, 1fr);
  gap: 12px;
  align-items: center;
}

.geo-currency-custom-row strong {
  color: #37343c;
  font-size: 20px;
  font-weight: 500;
}

.geo-currency-notice {
  margin-top: 20px;
}

.geo-currency-same p {
  margin: 8px 0 0;
  color: var(--muted);
}

@media (max-width: 720px) {
  .geo-currency-top {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .geo-currency-rate-head {
    flex-direction: column;
    gap: 4px;
  }

  .geo-currency-rate {
    font-size: 23px;
  }

  .geo-currency-custom-row {
    grid-template-columns: minmax(100px, 1fr) auto;
  }

  .geo-currency-custom-row strong {
    grid-column: 1 / -1;
  }
}

/* Paket 8.6: externer Währungsrechner und gefilterte Heimatwährungen */
.geo-currency-external {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--border, #d9e2ec);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.geo-currency-external strong {
  display: block;
  margin-bottom: 4px;
}

.geo-currency-external p {
  margin: 0;
  color: var(--muted, #5f6b76);
}

.geo-currency-external .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 700px) {
  .geo-currency-external {
    align-items: stretch;
    flex-direction: column;
  }

  .geo-currency-external .btn {
    width: 100%;
    text-align: center;
  }
}

/* Paket 8.8: Referenzwerte in beide Richtungen */
.geo-currency-table-bidirectional {
  min-width: 700px;
}

.geo-currency-table-bidirectional th,
.geo-currency-table-bidirectional td {
  width: 25%;
}

.geo-currency-table-bidirectional th:nth-child(1),
.geo-currency-table-bidirectional td:nth-child(1),
.geo-currency-table-bidirectional th:nth-child(3),
.geo-currency-table-bidirectional td:nth-child(3) {
  text-align: left;
}

.geo-currency-table-bidirectional th:nth-child(2),
.geo-currency-table-bidirectional td:nth-child(2),
.geo-currency-table-bidirectional th:nth-child(4),
.geo-currency-table-bidirectional td:nth-child(4) {
  text-align: right;
}

.geo-currency-table-bidirectional .geo-currency-reverse-start {
  border-left: 2px solid var(--line);
  padding-left: 22px;
}

@media (max-width: 720px) {
  .geo-currency-table-bidirectional {
    min-width: 650px;
  }
}
/* ==========================================================
   International visitors notice
   ========================================================== */

.international-notice{
    max-width:900px;
    margin:22px auto 28px;
    padding:14px 18px;
    background:#eef6ff;
    border:1px solid #cfe2ff;
    border-left:5px solid #2d7ff9;
    border-radius:8px;
    color:#29465b;
    font-size:0.96rem;
    line-height:1.6;
    text-align:left;
    box-sizing:border-box;
}

.international-notice strong{
    color:#1558c0;
}

@media (max-width:700px){
    .international-notice{
        margin:18px 0 24px;
        font-size:0.92rem;
    }
}
