/* Project improvements layered above the original layout; keep original palette. */
html { scroll-behavior: smooth; }
main section[id] { scroll-margin-top: 105px; }
img { max-width: 100%; }
a, button { cursor: pointer; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid #316d87; outline-offset: 3px; }
.site-header { position: relative; z-index: 100; }
.site-footer { overflow-wrap: anywhere; }
.newsletter-helper { margin: 8px 0 0; font-size: .85rem; line-height: 1.5; opacity: .8; }
.location-image { display: block; width: 100%; height: 360px; object-fit: cover; border: 0; }
.location-caption { margin: 12px 0 0; text-align: center; font-size: 1rem; }
.site-legal-info { margin-top: 2.1rem; padding: 1.6rem 1rem 0; border-top: 1px solid rgba(18,30,33,.22); }
.site-legal-info__title { margin: 0 0 1rem; font-size: 1.2rem; font-weight: 700; text-align: center; }
.site-legal-info__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 940px; margin: 0 auto; gap: 14px 30px; }
.site-legal-info__item { display: grid; gap: 3px; min-width: 0; }
.site-legal-info__item dt { font-size: .82rem; font-weight: 700; opacity: .72; }
.site-legal-info__item dd { margin: 0; font-size: .96rem; line-height: 1.5; overflow-wrap: anywhere; }
.site-data-notice { max-width: 1040px; margin: 24px auto 0; padding: 1.1rem 1rem; border: 1px solid rgba(18,30,33,.24); border-radius: 12px; background: rgba(255,255,255,.15); }
.site-data-notice__title { font-size: 1rem; margin: 0 0 .5rem; font-weight: 700; }
.site-data-notice__text { margin: 0; font-size: .88rem; line-height: 1.65; }
.site-footer-copyright { text-align: center; font-size: .85rem; margin-top: 24px; opacity: .75; }
.legal-page { padding: 150px 24px 70px; min-height: 65vh; }
.legal-page__inner { max-width: 950px; margin: 0 auto; }
.legal-page__back { display: inline-block; margin-bottom: 23px; text-decoration: underline; color: inherit; }
.legal-page__title { font-size: clamp(2rem,5vw,3.6rem); line-height: 1.16; margin: 0 0 14px; font-weight: 700; }
.legal-page__date { font-size: .92rem; opacity: .7; margin-bottom: 42px; }
.legal-page__section { margin-bottom: 30px; padding: 1rem;}
.legal-page__section h2 { font-size: clamp(1.15rem,2vw,1.55rem); margin-bottom: 10px; font-weight: 700; }
.legal-page__section p { line-height: 1.7; font-size: 1rem; }
@media (max-width: 991.98px) {
 .site-header .navbar-toggler { display: block !important; visibility: visible !important; opacity: 1 !important; min-width: 32px; flex-shrink: 0; z-index: 20; }
 .site-header .navbar-collapse:not(.show) { display: none !important; }
 .site-header .navbar-collapse.show { display: block !important; }
 .site-header .navbar .navbar-brand { min-width: 0; flex: 1; max-width: calc(100% - 55px); padding-right: .5rem; }
 .site-header .navbar-caption { overflow-wrap: anywhere; }
 .site-header .navbar { align-items: center; }
 .site-header .navbar-nav { width: 100%; }
 .site-header .navbar.opened .navbar-toggler { position: relative; z-index: 25; }
 .site-header .navbar-collapse { max-height: calc(100dvh - 85px); overflow-y: auto !important; }
 .site-legal-info__grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
 .site-header .navbar .navbar-brand { padding-left: 0; }
 .site-header .navbar .navbar-logo img { height: 2.2rem !important; }
 .site-header .navbar .navbar-caption { font-size: .94rem; }
 .site-legal-info { padding-left: .15rem; padding-right: .15rem; }
 .site-data-notice { padding: 1rem .8rem; }
 .legal-page { padding: 125px 15px 55px; }
 .location-image { height: 260px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }


/* 2026-10-29: Keep the original section design without viewport-width overflow. */
:root { --site-content-max-width: 1280px; }

/* Full-bleed section backgrounds remain full-width; content is centered. */
main > section > .container-fluid,
.site-footer > section > .container-fluid {
  width: 100%;
  max-width: var(--site-content-max-width);
  margin-left: auto;
  margin-right: auto;
}

/* Bootstrap rows/grid columns must be allowed to shrink at narrow widths. */
main > section .row > [class*="col-"],
main > section .item-wrap,
main > section .item,
main > section .image-wrapper,
main > section .grid-item {
  min-width: 0;
}
main > section img {
  max-width: 100%;
  object-position: center;
}

/* Hero photograph: keep a natural photo frame, never stretch to viewport size. */
#kezdolap .image-wrapper {
  width: 100%;
  max-width: 620px;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
}
#kezdolap .image-wrapper img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* This originally used 115vw plus horizontal shifts, pushing images offscreen. */
.cid-vzrnwYV4XA .grid-container {
  width: 100%;
  max-width: 100%;
  transform: none;
  min-width: 0;
}
.cid-vzrnwYV4XA .grid-container-1,
.cid-vzrnwYV4XA .grid-container-2,
.cid-vzrnwYV4XA .grid-container-3 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-columns: auto;
  grid-auto-flow: row;
  gap: 16px;
  width: 100%;
  max-width: 100%;
  transform: none !important; /* original markup has an inline -200px translate */
}
.cid-vzrnwYV4XA .grid-item {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.cid-vzrnwYV4XA .grid-item img {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: clamp(150px, 20vw, 260px);
  object-fit: cover;
}

/* The full-row photo should not occupy the entire wide browser window. */
#image-1-vzrnwYYMz8 .item-wrap > img {
  display: block;
  width: 100%;
  max-width: 980px;
  height: auto;
  margin-inline: auto;
  object-fit: cover;
}

@media (max-width: 767.98px) {
  main > section > .container-fluid {
    padding-left: 16px;
    padding-right: 16px;
  }
  #kezdolap .container-fluid {
    padding-left: 16px;
    padding-right: 16px;
  }
  .cid-vzrnwYV4XA .grid-container-1,
  .cid-vzrnwYV4XA .grid-container-2,
  .cid-vzrnwYV4XA .grid-container-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .cid-vzrnwYV4XA .grid-item img {
    height: clamp(130px, 38vw, 210px);
  }
  #kezdolap .image-wrapper {
    max-width: 100%;
    aspect-ratio: 3 / 2;
  }
}
