.kapcsolat-page {
  background: var(--color-deep-graphite);
}

.kapcsolat-page a:focus-visible,
.kapcsolat-page button:focus-visible,
.kapcsolat-page summary:focus-visible {
  outline: var(--focus-outline);
  outline-offset: 3px;
}

.kapcsolat-hero {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 45rem;
  overflow: hidden;
  isolation: isolate;
}

.kapcsolat-hero__media,
.kapcsolat-hero__scrim,
.kapcsolat-hero__grid {
  grid-area: 1 / 1;
}

.kapcsolat-hero__media {
  z-index: -2;
  width: 100%;
  min-width: 0;
  height: 100vh;
}

.kapcsolat-hero__media img {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.kapcsolat-hero__scrim {
  z-index: -1;
  background: linear-gradient(90deg, rgba(11, 13, 14, 0.84) 0%, rgba(11, 13, 14, 0.66) 38%, rgba(11, 13, 14, 0.25) 72%, rgba(11, 13, 14, 0.34) 100%);
}

.kapcsolat-hero__grid {
  display: grid;
  width: min(100% - (var(--gutter) * 2), var(--container-max));
  min-width: 0;
  min-height: 45rem;
  margin-inline: auto;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--grid-gap);
  align-items: end;
  padding-block: 4.5rem 3rem;
}

.kapcsolat-hero__rail {
  display: flex;
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 37.5rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-6);
}

.kapcsolat-hero__rail h1,
.kapcsolat-hero__rail p {
  margin: 0;
}

.kapcsolat-hero__breadcrumb {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.kapcsolat-hero__breadcrumb a {
  color: var(--color-warm-linen);
}

.kapcsolat-hero__lead {
  max-width: 33rem;
  color: var(--color-warm-linen);
  font-size: var(--text-lead);
  line-height: var(--line-lead);
}

.kapcsolat-hero__actions,
.kapcsolat-closing__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.kapcsolat-hero__actions > *,
.kapcsolat-closing__actions > * {
  min-width: 0;
}

.kapcsolat-hero__caption {
  grid-column: 10 / span 3;
  align-self: end;
  min-width: 0;
  margin: 0;
  padding-inline-start: var(--space-4);
  border-inline-start: 1px solid var(--color-copper);
  text-align: left;
}

.kapcsolat-direct__grid,
.kapcsolat-form-section__grid,
.kapcsolat-hours__grid,
.kapcsolat-arrival__grid,
.kapcsolat-venue__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--grid-gap);
}

.kapcsolat-direct__intro {
  grid-column: 1 / span 4;
  min-width: 0;
  max-width: 26.25rem;
}

.kapcsolat-direct__panels {
  display: grid;
  grid-column: 5 / span 8;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--grid-gap);
}

.kapcsolat-contact-card {
  display: flex;
  min-width: 0;
  min-height: 16rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  border: 1px solid var(--color-border-dark);
  border-top-width: 2px;
  background: var(--color-graphite-lift);
  transition: border-color var(--transition-fast), color var(--transition-fast);
}

.kapcsolat-contact-card > * {
  min-width: 0;
  margin: 0;
}

.kapcsolat-contact-card--email { border-top-color: var(--color-cobalt-night); }
.kapcsolat-contact-card--phone { border-top-color: var(--color-copper); }
.kapcsolat-contact-card--address { border-top-color: var(--color-smoke-grey); }

.kapcsolat-contact-card:hover {
  border-color: rgba(238, 229, 213, 0.4);
}

.kapcsolat-contact-card h3 {
  width: 100%;
  font-size: clamp(1.5rem, 2vw, 2.1rem);
  overflow-wrap: anywhere;
}

.kapcsolat-contact-card h3 a {
  text-decoration: none;
}

.kapcsolat-contact-card p:not(.eyebrow) {
  color: var(--color-smoke-grey);
  font-size: var(--text-small);
  line-height: var(--line-small);
}

.kapcsolat-text-link,
.kapcsolat-venue__links a {
  color: var(--color-warm-linen);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-caption);
  text-decoration-color: var(--color-cobalt-night);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.35em;
  text-transform: uppercase;
}

.kapcsolat-text-link:hover,
.kapcsolat-venue__links a:hover {
  color: var(--color-limestone);
}

.kapcsolat-form-section__intro {
  grid-column: 1 / span 4;
  min-width: 0;
  max-width: 26.875rem;
  align-self: start;
}

.kapcsolat-form {
  display: flex;
  grid-column: 6 / span 7;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-6);
  padding: var(--space-8);
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius-panel);
  background: var(--color-graphite-lift);
}

.kapcsolat-form__fields {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6) var(--space-4);
}

.kapcsolat-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
}

.kapcsolat-field label,
.kapcsolat-field__error,
.kapcsolat-form__note {
  margin: 0;
}

.kapcsolat-field--message {
  grid-column: 1 / -1;
}

.kapcsolat-field textarea {
  min-height: 9rem;
}

.kapcsolat-field__error {
  min-height: 1.25rem;
  color: #d79b82;
  font-size: var(--text-caption);
  line-height: var(--line-caption);
}

.kapcsolat-form__note {
  max-width: 32rem;
}

.kapcsolat-form .button {
  align-self: flex-start;
}

.kapcsolat-form__status {
  min-height: 1.5rem;
  font-size: var(--text-small);
}

.kapcsolat-form__status--error { color: #d79b82; }
.kapcsolat-form__status--success { color: var(--color-success-venue); }

.kapcsolat-map-section__intro {
  width: min(100%, 35.625rem);
  margin: 0 0 var(--space-12);
}

.kapcsolat-map {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 35rem;
  overflow: hidden;
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius-panel);
  background: #191d20;
}

.kapcsolat-map svg {
  width: 100%;
  height: 100%;
}

.kapcsolat-map__street {
  fill: none;
  stroke: rgba(154, 155, 150, 0.48);
  stroke-width: 7;
}

.kapcsolat-map__route {
  fill: none;
  stroke: var(--color-cobalt-night);
  stroke-linecap: round;
  stroke-width: 13;
}

.kapcsolat-map__route--secondary {
  opacity: 0.65;
  stroke-width: 8;
}

.kapcsolat-map__node { fill: var(--color-limestone); }
.kapcsolat-map__marker-ring { fill: none; stroke: rgba(169, 104, 79, 0.52); stroke-width: 2; }
.kapcsolat-map__marker { fill: var(--color-copper); }

.kapcsolat-map__label {
  position: absolute;
  bottom: var(--space-6);
  left: var(--space-6);
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4);
  border-inline-start: 2px solid var(--color-copper);
  background: rgba(11, 13, 14, 0.8);
}

.kapcsolat-map__label strong {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1;
}

.kapcsolat-map__label span:last-child {
  color: var(--color-warm-linen);
  font-size: var(--text-caption);
  letter-spacing: var(--tracking-caption);
}

.kapcsolat-map-section__bottom {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
  padding-block-start: var(--space-6);
}

.kapcsolat-map-section__bottom > * { min-width: 0; }
.kapcsolat-map-section__bottom p { max-width: 42.5rem; margin: 0; }

.kapcsolat-hours__intro {
  grid-column: 1 / span 4;
  min-width: 0;
  max-width: 26.25rem;
}

.kapcsolat-hours__content {
  display: flex;
  grid-column: 6 / span 7;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-12);
}

.kapcsolat-hours__list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  margin: 0;
  border-top: 1px solid var(--color-border-dark);
}

.kapcsolat-hours__list > div {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(9.375rem, auto);
  gap: var(--space-4);
  padding-block: var(--space-6);
  border-bottom: 1px solid var(--color-border-dark);
}

.kapcsolat-hours__list dt,
.kapcsolat-hours__list dd { min-width: 0; margin: 0; }
.kapcsolat-hours__list dt { color: var(--color-warm-linen); font-size: var(--text-lead); }
.kapcsolat-hours__list dd { color: var(--color-limestone); font-size: var(--text-lead); text-align: right; white-space: nowrap; }

.kapcsolat-hours__note {
  max-width: 37rem;
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border-dark);
}

.kapcsolat-hours__note p:last-child { margin-bottom: 0; color: var(--color-smoke-grey); }

.kapcsolat-arrival__intro {
  grid-column: 1 / span 3;
  min-width: 0;
  max-width: 20rem;
}

.kapcsolat-arrival__items {
  display: grid;
  grid-column: 4 / span 9;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--color-border-dark);
  border-left: 1px solid var(--color-border-dark);
}

.kapcsolat-arrival__item {
  min-width: 0;
  padding: var(--space-6);
  border-right: 1px solid var(--color-border-dark);
  border-bottom: 1px solid var(--color-border-dark);
  background: var(--color-graphite-lift);
}

.kapcsolat-arrival__item--accessible { border-color: rgba(238, 229, 213, 0.34); }

.kapcsolat-arrival__item summary {
  color: var(--color-warm-linen);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-utility);
  list-style: none;
  text-transform: uppercase;
  cursor: default;
}

.kapcsolat-arrival__item summary::-webkit-details-marker { display: none; }
.kapcsolat-arrival__item > div { padding-top: var(--space-4); }
.kapcsolat-arrival__item p { margin: 0; color: var(--color-smoke-grey); font-size: var(--text-small); line-height: var(--line-small); }
.kapcsolat-arrival__item .kapcsolat-text-link { display: inline-block; margin-top: var(--space-4); }

.kapcsolat-venue__figure {
  display: flex;
  grid-column: 1 / span 6;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.kapcsolat-venue__media {
  width: 100%;
  aspect-ratio: 4 / 5;
}

.kapcsolat-venue__figure figcaption { margin: 0; }

.kapcsolat-venue__copy {
  display: flex;
  grid-column: 8 / span 5;
  min-width: 0;
  max-width: 31.25rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-6);
  align-self: center;
}

.kapcsolat-venue__copy > * { margin: 0; min-width: 0; }
.kapcsolat-venue__copy > p:not(.eyebrow) { max-width: 31rem; }
.kapcsolat-venue__rule { width: 3rem; height: 1px; background: var(--color-copper); }

.kapcsolat-venue__links {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4) var(--space-6);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border-dark);
}

.kapcsolat-venue__links a { min-width: 0; }

.kapcsolat-closing {
  padding-bottom: var(--section-space);
}

.kapcsolat-closing__block {
  display: flex;
  width: min(100%, 45rem);
  min-width: 0;
  margin-inline: auto;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-6);
}

.kapcsolat-closing__block > * { margin: 0; min-width: 0; }
.kapcsolat-closing__block .rule { margin-bottom: var(--space-2); }
.kapcsolat-closing__block > p:not(.eyebrow) { max-width: 42rem; }

@media (max-width: 67.5rem) {
  .kapcsolat-direct__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .kapcsolat-direct__intro { grid-column: 1 / -1; }
  .kapcsolat-direct__panels { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kapcsolat-contact-card:last-child { grid-column: 1 / span 1; }

  .kapcsolat-arrival__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .kapcsolat-arrival__intro { grid-column: 1 / -1; max-width: 32rem; }
  .kapcsolat-arrival__items { grid-column: 1 / -1; }
}

@media (max-width: 61.25rem) {
  .kapcsolat-hero__rail { grid-column: 1 / span 6; }
  .kapcsolat-form-section__grid,
  .kapcsolat-hours__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .kapcsolat-form-section__intro,
  .kapcsolat-hours__intro { grid-column: 1 / -1; max-width: 33rem; }
  .kapcsolat-form,
  .kapcsolat-hours__content { grid-column: 1 / -1; }

  .kapcsolat-venue__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .kapcsolat-venue__figure { grid-column: 1 / -1; }
  .kapcsolat-venue__copy { grid-column: 1 / span 6; max-width: 31.25rem; }
}

@media (max-width: 56.25rem) {
  .kapcsolat-map { min-height: 28.75rem; }
  .kapcsolat-map-section__intro { width: min(100%, 39rem); }
}

@media (max-width: 47.9375rem) {
  .kapcsolat-hero {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow: visible;
  }

  .kapcsolat-hero__media {
    position: relative;
    z-index: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .kapcsolat-hero__media img { max-width: 100%; object-position: center; }
  .kapcsolat-hero__scrim { display: none; }

  .kapcsolat-hero__grid {
    display: flex;
    width: 100%;
    min-height: 0;
    margin: 0;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-6) var(--gutter) var(--space-16);
  }

  .kapcsolat-hero__rail { display: contents; max-width: none; }
  .kapcsolat-hero__breadcrumb { order: 1; }
  .kapcsolat-hero__rail .status-label { order: 2; }
  .kapcsolat-hero__rail h1 { order: 3; font-size: clamp(3.25rem, 15vw, 4rem); }
  .kapcsolat-hero__lead { order: 4; max-width: 100%; }
  .kapcsolat-hero__actions { order: 5; width: 100%; flex-direction: column; }
  .kapcsolat-hero__actions > * { width: 100%; }
  .kapcsolat-hero__caption { order: 6; width: 100%; padding-top: var(--space-4); }

  .kapcsolat-direct__grid,
  .kapcsolat-form-section__grid,
  .kapcsolat-hours__grid,
  .kapcsolat-arrival__grid,
  .kapcsolat-venue__grid { grid-template-columns: minmax(0, 1fr); }

  .kapcsolat-direct__intro,
  .kapcsolat-direct__panels,
  .kapcsolat-form-section__intro,
  .kapcsolat-form,
  .kapcsolat-hours__intro,
  .kapcsolat-hours__content,
  .kapcsolat-arrival__intro,
  .kapcsolat-arrival__items,
  .kapcsolat-venue__figure,
  .kapcsolat-venue__copy { grid-column: 1; max-width: none; }

  .kapcsolat-direct__panels { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .kapcsolat-contact-card:last-child { grid-column: 1; }
  .kapcsolat-contact-card { min-height: 0; padding: var(--space-6); }

  .kapcsolat-form { padding: var(--space-6); }
  .kapcsolat-form__fields { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .kapcsolat-field--message { grid-column: 1; }
  .kapcsolat-form .button { width: 100%; }

  .kapcsolat-map-section__intro { width: 100%; margin-bottom: var(--space-8); }
  .kapcsolat-map { min-height: 0; aspect-ratio: 16 / 10; }
  .kapcsolat-map__label { bottom: var(--space-4); left: var(--space-4); padding: var(--space-3); }
  .kapcsolat-map__label strong { font-size: 1.25rem; }
  .kapcsolat-map-section__bottom { align-items: stretch; flex-direction: column; gap: var(--space-4); }
  .kapcsolat-map-section__bottom .button-secondary { width: 100%; }

  .kapcsolat-hours__content { gap: var(--space-8); }
  .kapcsolat-hours__list > div { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); padding-block: var(--space-4); }
  .kapcsolat-hours__list dd { text-align: left; }

  .kapcsolat-arrival__items { grid-template-columns: minmax(0, 1fr); border-left: 0; }
  .kapcsolat-arrival__item { padding: var(--space-5, 1.25rem); border-left: 1px solid var(--color-border-dark); }
  .kapcsolat-arrival__item summary { cursor: pointer; }
  .kapcsolat-arrival__item:not([open]) > div { display: none; }

  .kapcsolat-venue__copy { gap: var(--space-4); }
  .kapcsolat-venue__links { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }

  .kapcsolat-closing { padding-bottom: var(--space-16); }
  .kapcsolat-closing__block { width: 100%; margin: 0; }
  .kapcsolat-closing__actions { width: 100%; flex-direction: column; }
  .kapcsolat-closing__actions > * { width: 100%; }
}

@media (prefers-reduced-motion: no-preference) {
  .kapcsolat-hero__media img { animation: kapcsolat-hero-drift 20s ease-in-out infinite alternate; }
  .kapcsolat-venue__media img { transition: transform var(--transition-transform), filter var(--transition-fast); }
  .kapcsolat-venue__figure:hover .kapcsolat-venue__media img { transform: scale(1.025); filter: brightness(0.82); }
}

@keyframes kapcsolat-hero-drift {
  from { transform: scale(1.01) translateX(0); }
  to { transform: scale(1.03) translateX(-0.8%); }
}
