/* Nunito (SIL OFL 1.1), helyben tárolt változó betűtípus – nem töltődik le külső szerverről. */
@font-face { font-family: "Nunito"; font-style: normal; font-weight: 200 1000; font-display: swap; src: url("../fonts/nunito-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Nunito"; font-style: normal; font-weight: 200 1000; font-display: swap; src: url("../fonts/nunito-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Sansita (SIL OFL 1.1, Google Fonts), helyben tárolt betűtípus a címsorokhoz (400 és 700) – szintén nem töltődik le külső szerverről. */
@font-face { font-family: "Sansita"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/sansita-latin-ext-400.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Sansita"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/sansita-latin-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Sansita"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/sansita-latin-ext-700.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Sansita"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/sansita-latin-700.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Bitter (SIL OFL 1.1, Google Fonts), helyben tárolt változó betűtípus a SÁRGA doboz-fejlécekhez (400–700) – szintén nem töltődik le külső szerverről. */
@font-face { font-family: "Bitter"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/bitter-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Bitter"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../fonts/bitter-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* FalusiVakáció – új arculat, design-terv (1. fázis)
   A színek a mostani arculatból származnak (stilusuj5.css): főzöld, világoszöld, lime, sárga, kék, narancs. */

:root {
  --green-950: #00300d;
  --green-900: #004f14;
  --green-800: #446d1c;
  --green-700: #669228;   /* fő márkazöld */
  --green-500: #669228;   /* világoszöld */
  --lime:      #bbcf2e;
  --yellow:    #fdc703;   /* az oldal sárgája (logó, dobozfejlécek, kiemelések) */
  --orange:    #fc7e01;
  --blue-700:  #2f6c93;
  --blue-300:  #b1d7ef;
  --blue-50:   #eaf4fb;
  --ink:       #1d2a1d;
  --muted:     #5b685b;
  --line:      #dfe7d6;
  --bg:        #f8f7f0;
  --card:      #ffffff;
  --danger:    #c62828;

  --radius:    16px;
  --radius-sm: 10px;
  --shadow:    0 1px 2px rgba(0,48,13,.06), 0 8px 24px rgba(0,48,13,.08);
  --shadow-lg: 0 2px 4px rgba(0,48,13,.08), 0 16px 40px rgba(0,48,13,.16);
  --maxw:      1780px;
  --font:      "Nunito", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: clamp(16px, 0.6vw + 10px, 19px); }   /* minden rem-es méret ehhez igazodik: telefonon 18px, 1600px fölött 21px */
body { margin: 0; font-family: var(--font); color: var(--ink); background: var(--bg); line-height: 1.6; font-size: 1rem; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: var(--green-700); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--green-900); }
h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 .5em; color: var(--green-900); font-weight: 800; letter-spacing: -.01em; }
h1 { font-size: clamp(1.8rem, 1.2rem + 2.4vw, 2.7rem); }
h2 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); }
h3 { font-size: 1.15rem; }
p { margin: 0 0 1em; }
.wrap { width: min(100% - 32px, var(--maxw)); margin-inline: auto; }
@media (min-width: 1200px) { .wrap { width: min(100% - 56px, var(--maxw)); } }   /* 28 px margó mindkét oldalon */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--blue-700); outline-offset: 2px; border-radius: 5px; }


/* ===== Fejléc (a látványterv szerint: sötétzöld felső sáv + fehér menüsor) ===== */
.site-header { position: sticky; top: -104px; z-index: 50; box-shadow: 0 2px 10px rgba(0,0,0,.18); }   /* a felső sáv elgörög, a menüsor a képernyő tetején marad */
.top-bar { background: linear-gradient(180deg, #446d1c, #395c18); color: #fff; }
.top-bar .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 104px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: #fff; flex: none; }
.brand .leaf { width: 72px; height: 72px; flex: none; }
.brand-text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; }
.brand-text img { height: 47px; width: auto; max-width: none; }
.brand-text small { font-size: .78rem; letter-spacing: .15em; font-weight: 700; color: #dcecc6; padding-left: 5px; margin-top: 3px; }
.top-right { display: flex; align-items: center; gap: 6px; }
.top-links { display: flex; align-items: center; font-size: .92rem; }
.top-links a { color: #fff; text-decoration: none; padding: 2px 12px; border-left: 1px solid rgba(255,255,255,.5); }
.top-links a:first-child { border-left: 0; }
.top-links a:hover { text-decoration: underline; color: #fff; }
.fav-link { position: relative; color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; font-weight: 700; font-size: .85rem; }
.fav-link:hover { background: rgba(255,255,255,.14); color: #fff; }
.fav-link svg { width: 20px; height: 20px; }
.fav-count { background: var(--yellow); color: var(--green-950); border-radius: 999px; font-size: .85rem; min-width: 22px; height: 22px; display: inline-grid; place-items: center; padding: 0 6px; font-weight: 800; }
.fav-count[data-n="0"] { display: none; }
.menu-toggle { display: none; background: transparent; border: 1px solid rgba(255,255,255,.55); color: #fff; border-radius: 10px; padding: 8px 14px; font: inherit; font-weight: 700; cursor: pointer; }
.main-nav { background: #fff; border-bottom: 1px solid #e3e8dc; }
.main-nav .wrap { display: flex; justify-content: flex-start; flex-wrap: wrap; }
.main-nav a { color: #1d2a1d; text-decoration: none; font-weight: 700; font-size: .92rem; padding: 17px 15px; position: relative; white-space: nowrap; display: inline-flex; align-items: center; gap: 7px; }
.main-nav a svg { width: 17px; height: 17px; fill: var(--green-700); }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--green-700); }
.main-nav a:hover::after, .main-nav a[aria-current="page"]::after { content: ""; position: absolute; left: 15px; right: 15px; bottom: 0; height: 3px; background: var(--green-700); border-radius: 3px 3px 0 0; }
.main-nav .mobile-only { display: none; }
.main-nav .nav-fav { margin-left: auto; }
.main-nav .nav-fav svg { fill: none; stroke: currentColor; }
.top-right .fav-top { display: none; }
/* ===== Gombok ===== */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 999px; padding: 12px 22px; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; transition: transform .12s ease, box-shadow .12s ease, background .12s ease; line-height: 1.2; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--yellow); color: var(--green-950); box-shadow: 0 4px 14px rgba(253,199,3,.35); }
.btn-primary:hover { background: #fdd54a; color: var(--green-950); }
.btn-green { background: var(--green-700); color: #fff; }
.btn-green:hover { background: var(--green-800); color: #fff; }
.btn-outline { background: transparent; color: var(--green-800); box-shadow: inset 0 0 0 2px var(--green-700); }
.btn-outline:hover { background: var(--green-700); color: #fff; }
.btn-sm { padding: 8px 16px; font-size: .9rem; }
.btn-block { width: 100%; }

/* ===== Hero + kereső ===== */

.field label { display: block; font-size: .9rem; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field textarea {
  width: 100%; font: inherit; color: var(--ink); background: #fff; border: 2px solid var(--line); border-radius: 14px; padding: 11px 14px; transition: border-color .12s;
}
.field select:focus, .field input:focus, .field textarea:focus { outline: none; border-color: var(--green-500); box-shadow: 0 0 0 4px rgba(102,146,40,.25); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.chip { display: inline-flex; align-items: center; gap: 6px; border: 2px solid var(--line); background: #fff; color: var(--ink); border-radius: 999px; padding: 6px 14px; font-size: .9rem; font-weight: 700; cursor: pointer; text-decoration: none; user-select: none; }
.chip img { width: 16px; height: 16px; opacity: .75; }
.chip:hover { border-color: var(--green-500); }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip:has(input:checked) { background: var(--green-700); border-color: var(--green-700); color: #fff; }
.chip:has(input:checked) img { filter: invert(1); opacity: 1; }
.chip:has(input:focus-visible) { outline: 3px solid var(--blue-700); outline-offset: 2px; }

/* ===== Szekciók ===== */
section { padding: 56px 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.section-head p { margin: 0; color: var(--muted); }

.pills { display: flex; flex-wrap: wrap; gap: 10px; }
.pill { background: #fff; border: 2px solid var(--line); border-radius: 999px; padding: 8px 18px; font-weight: 800; text-decoration: none; color: var(--green-800); }
.pill:hover { background: var(--green-700); border-color: var(--green-700); color: #fff; }

/* ===== Kártyák ===== */
.grid { display: grid; gap: 22px; }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; position: relative; transition: transform .15s ease, box-shadow .15s ease; }
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.card .thumb { aspect-ratio: 4 / 3; overflow: hidden; background: var(--blue-50); }
.card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.card:hover .thumb img { transform: scale(1.05); }
.card .body { padding: 14px 16px 16px; }
.card h3 { margin: 0 0 2px; font-size: 1.05rem; }
.card h3 a { color: var(--green-900); text-decoration: none; }
.card h3 a::after { content: ""; position: absolute; inset: 0; }   /* teljes kártya kattintható */
.card .loc { color: var(--muted); font-size: .92rem; margin: 0 0 8px; }
.feat { display: flex; gap: 8px; align-items: center; min-height: 22px; }
.feat img { width: 18px; height: 18px; opacity: .6; }
.feat .szep { width: auto; height: 20px; opacity: 1; }
.badge { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--orange); color: var(--green-950); font-size: .75rem; font-weight: 800; padding: 4px 10px; border-radius: 999px; text-transform: uppercase; letter-spacing: .04em; }
.heart { position: absolute; top: 10px; right: 10px; z-index: 3; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.2); transition: transform .12s; }
.heart:hover { transform: scale(1.1); }
.heart svg { width: 22px; height: 22px; fill: none; stroke: var(--green-800); stroke-width: 2; transition: fill .12s, stroke .12s; }
.heart[aria-pressed="true"] svg { fill: #e53935; stroke: #e53935; }

.tile { display: block; padding: 20px; border-radius: var(--radius); background: linear-gradient(135deg, var(--green-700), var(--green-900)); color: #fff; text-decoration: none; box-shadow: var(--shadow); transition: transform .15s; position: relative; overflow: hidden; }
.tile:nth-child(3n+2) { background: linear-gradient(135deg, var(--blue-700), #1d4a68); }
.tile:nth-child(3n+3) { background: linear-gradient(135deg, var(--green-500), var(--green-800)); }
.tile:hover { transform: translateY(-3px); color: #fff; }
.tile strong { display: block; font-size: 1.1rem; }
.tile span { opacity: .85; font-size: .9rem; }
.tile::after { content: "→"; position: absolute; right: 18px; bottom: 12px; font-size: 1.4rem; opacity: .7; }

.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.value { background: #fff; border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); }
.value .ico { width: 48px; height: 48px; border-radius: 16px; background: var(--blue-50); display: grid; place-items: center; font-size: 1.5rem; margin-bottom: 12px; }

.band { background: linear-gradient(120deg, var(--green-900), var(--green-700)); color: #fff; border-radius: 26px; padding: 36px; display: grid; grid-template-columns: 1.4fr auto; gap: 24px; align-items: center; }
.band h2 { color: #fff; }
.band p { margin: 0; opacity: .92; }
.band-blue { background: linear-gradient(120deg, #1d4a68, var(--blue-700)); }

/* ===== Lábléc ===== */
.site-footer { background: var(--green-950); color: #cfe0c4; padding: 48px 0 28px; margin-top: 40px; }
.site-footer a { color: #e5f2da; text-decoration: none; }
.site-footer a:hover { color: var(--yellow); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 28px; }
.site-footer h4 { color: #fff; font-size: 1rem; margin-bottom: .8em; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.copyright { border-top: 1px solid rgba(255,255,255,.12); margin-top: 28px; padding-top: 18px; font-size: .88rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }

/* ===== Lista oldal ===== */
.crumbs { font-size: .9rem; color: var(--muted); padding: 18px 0 6px; }
.crumbs a { color: var(--muted); }
.layout-list { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 32px; align-items: start; padding-bottom: 20px; }
.filters { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; position: sticky; top: 88px; }
.filters h3 { margin-bottom: 10px; }
.filters .group { border-top: 1px solid var(--line); padding: 14px 0; }
.filters .group:first-of-type { border-top: 0; padding-top: 0; }
.check { display: flex; align-items: center; gap: 10px; padding: 5px 0; cursor: pointer; font-weight: 600; }
.check input { width: 18px; height: 18px; accent-color: var(--green-700); }
.check img { width: 18px; height: 18px; opacity: .6; }
.check small { margin-left: auto; color: var(--muted); font-weight: 600; }
.results-head { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.results-head h1 { margin: 0; font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.1rem); }
.hcard { display: grid; grid-template-columns: minmax(0, 360px) 1fr; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; margin-bottom: 18px; position: relative; transition: box-shadow .15s; }
.hcard:hover { box-shadow: var(--shadow-lg); }
.hcard .thumb { min-height: 210px; overflow: hidden; }
.hcard .thumb img { width: 100%; height: 100%; object-fit: cover; }
.hcard .body { padding: 18px 22px; display: flex; flex-direction: column; gap: 6px; }
.hcard h2 { font-size: 1.3rem; margin: 0; }
.hcard h2 a { text-decoration: none; color: var(--green-900); }
.hcard h2 a::after { content: ""; position: absolute; inset: 0; }
.hcard .desc { color: #3b473b; margin: 4px 0 6px; }
.hcard .foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.hcard.featured { box-shadow: 0 0 0 3px var(--yellow), var(--shadow); }
.filter-toggle { display: none; }

/* ===== Adatlap ===== */
.title-row { display: flex; justify-content: space-between; align-items: start; gap: 16px; flex-wrap: wrap; margin: 6px 0 18px; }
.title-row h1 { margin: 0; }
.title-row .loc { color: var(--muted); margin: 4px 0 0; }
.gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 10px; border-radius: var(--radius); overflow: hidden; height: clamp(400px, 30vw, 600px); position: relative; }
.gallery button { border: 0; padding: 0; background: var(--blue-50); cursor: zoom-in; overflow: hidden; }
.gallery button:first-child { grid-row: 1 / span 2; }
.gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.gallery button:hover img { transform: scale(1.04); }
.gallery .all { position: absolute; right: 14px; bottom: 14px; background: #fff; color: var(--green-900); border-radius: 999px; padding: 8px 16px; font-weight: 800; border: 0; cursor: pointer; box-shadow: var(--shadow); }
.layout-detail { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start; padding: 28px 0; }
.panel { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; margin-bottom: 20px; }
.panel h2 { font-size: 1.35rem; }
.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 20px; }
.feature-grid div { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.feature-grid img { width: 24px; height: 24px; opacity: .7; }
.contact-card { margin-bottom: 0; }
.contact-card dl { margin: 0 0 16px; display: grid; gap: 10px; }
.contact-card dt { font-size: .88rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); font-weight: 800; }
.contact-card dd { margin: 0; font-weight: 700; word-break: break-word; }
.mapbox { height: 260px; border-radius: var(--radius-sm); background: repeating-linear-gradient(45deg, var(--blue-50), var(--blue-50) 12px, #dcecf7 12px, #dcecf7 24px); display: grid; place-items: center; color: var(--blue-700); font-weight: 800; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-grid .full { grid-column: 1 / -1; }
.hint { font-size: .85rem; color: var(--muted); margin-top: 4px; }
.ok-note { background: #e8f5e0; border-left: 4px solid var(--green-500); padding: 10px 14px; border-radius: 10px; font-size: .92rem; }

dialog.lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
dialog.lightbox::backdrop { background: rgba(0,20,5,.92); }
.lb-stage { position: fixed; inset: 0; display: grid; place-items: center; padding: 56px 70px; }
.lb-stage img { max-width: 100%; max-height: 100%; border-radius: 10px; }
.lb-btn { position: fixed; background: rgba(255,255,255,.15); color: #fff; border: 0; width: 48px; height: 48px; border-radius: 50%; font-size: 1.6rem; cursor: pointer; }
.lb-btn:hover { background: rgba(255,255,255,.3); }
.lb-close { top: 14px; right: 14px; }
.lb-prev { left: 12px; top: 50%; }
.lb-next { right: 12px; top: 50%; }
.lb-count { position: fixed; bottom: 16px; left: 0; right: 0; text-align: center; color: #fff; }

/* ===== Admin ===== */
.admin-body { background: #eef2ea; }
.admin-shell { display: grid; grid-template-columns: 250px 1fr; min-height: calc(100vh - 34px); }
.admin-side { background: var(--green-950); color: #cfe0c4; padding: 20px 14px; }
.admin-side .brand img { height: 46px; margin-bottom: 18px; }
.admin-side a { display: flex; align-items: center; justify-content: space-between; color: #dcebd2; text-decoration: none; padding: 10px 14px; border-radius: 12px; font-weight: 700; margin-bottom: 2px; }
.admin-side a:hover, .admin-side a[aria-current="page"] { background: rgba(255,255,255,.12); color: #fff; }
.admin-side .count { background: var(--yellow); color: var(--green-950); border-radius: 999px; font-size: .85rem; padding: 1px 8px; font-weight: 800; }
.admin-side .sep { font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; opacity: .6; margin: 18px 14px 6px; }
.admin-main { padding: 28px; min-width: 0; }
.admin-main h1 { font-size: 1.7rem; }
.admin-cimsor { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 14px; }
.admin-cimsor h1 { margin: 0; }
.admin-cimsor-gombok { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.stat { background: #fff; border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow); }
.stat b { display: block; font-size: 2rem; color: var(--green-900); line-height: 1.1; }
.stat span { color: var(--muted); font-size: .9rem; font-weight: 700; }
.stat.warn b { color: var(--orange); }
.toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; align-items: center; }
.toolbar .field { min-width: 160px; }
.tablewrap { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow-x: auto; }
table.data { width: 100%; border-collapse: collapse; font-size: .93rem; }
table.data th { text-align: left; background: #f3f7ee; color: var(--muted); font-size: .86rem; text-transform: uppercase; letter-spacing: .05em; padding: 12px 14px; white-space: nowrap; }
table.data td { padding: 12px 14px; border-top: 1px solid var(--line); vertical-align: middle; }
table.data td { white-space: nowrap; }
table.data td:nth-child(2) { white-space: normal; min-width: 190px; }
table.data tr:hover td { background: #fafcf7; }
.tag { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .88rem; font-weight: 800; white-space: nowrap; }
.tag-ok { background: #dff2d0; color: #304d14; }
.tag-new { background: #dcecf7; color: #1d4a68; }
.tag-wait { background: #fff1c2; color: #6b5200; }
.tag-off { background: #eceeea; color: #555; }
.tag-warn { background: #ffe0c2; color: #8a3f00; }
.mini { display: inline-block; font-size: .82rem; background: var(--blue-50); color: var(--blue-700); border-radius: 8px; padding: 1px 6px; font-weight: 800; margin-right: 3px; }
.stepper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 6px 0 22px; counter-reset: s; }
.step { position: relative; text-align: center; font-size: .85rem; font-weight: 700; color: var(--muted); padding-top: 38px; }
.step::before { counter-increment: s; content: counter(s); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 30px; height: 30px; border-radius: 50%; background: #dfe7d6; color: var(--muted); display: grid; place-items: center; font-weight: 800; z-index: 1; }
.step::after { content: ""; position: absolute; top: 14px; left: calc(50% + 18px); right: calc(-50% + 18px); height: 3px; background: #dfe7d6; }
.step:last-child::after { display: none; }
.step.done::before { background: var(--green-500); color: #fff; content: "✓"; }
.step.done::after { background: var(--green-500); }
.step.now::before { background: var(--yellow); color: var(--green-950); box-shadow: 0 0 0 5px rgba(253,199,3,.35); }
.step.now { color: var(--green-950); }
.admin-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 20px; align-items: start; }
.mail-preview { border: 2px dashed var(--line); border-radius: var(--radius-sm); padding: 14px; background: #fcfdfb; font-size: .9rem; }
.mail-preview .m-head { background: var(--green-700); color: var(--yellow); text-align: center; padding: 10px; border-radius: 10px 10px 0 0; font-weight: 800; }
.dropzone { border: 2px dashed var(--green-500); border-radius: var(--radius-sm); padding: 18px; text-align: center; color: var(--muted); background: #f7fbf1; }

/* ===== Reszponzív ===== */
/* 1150 px alatt (tablet, kis laptop, a nagyobb betűméret miatt) egy oszlopos elrendezés és lenyíló menü */
@media (max-width: 1150px) {
  .site-header { top: 0; }
  .menu-toggle { display: inline-block; }
  .top-links, .fav-link .hide-m { display: none; }
  .top-right .fav-top { display: inline-flex; }
  .main-nav .nav-fav { display: none; }
  .main-nav { display: none; }
  .site-header.open .main-nav { display: block; }
  .main-nav .wrap { flex-direction: column; justify-content: flex-start; }
  .main-nav a { padding: 13px 4px; border-top: 1px solid #eef1e8; font-size: .95rem; }
  .main-nav a:hover::after, .main-nav a[aria-current="page"]::after { display: none; }
  .main-nav .mobile-only { display: inline-flex; }
  .layout-list { grid-template-columns: 1fr; }
  .layout-list aside { display: contents; }
  .layout-list .filter-toggle { order: 1; }
  .layout-list .filters { order: 2; }
  .layout-list .results { order: 3; }
  .layout-list .side-links { order: 4; }
  .filters { position: static; display: none; }
  .filters.open { display: block; }
  .filter-toggle { display: inline-flex; }
  .layout-detail { grid-template-columns: 1fr; }
  .contact-card { position: static; }
}
@media (max-width: 1000px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3, .values { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .admin-grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .top-bar .wrap { min-height: 84px; }
  .brand .leaf { width: 56px; height: 56px; }
  .brand-text img { height: 46px; }
  .brand-text small { font-size: .66rem; }
  .hcard { grid-template-columns: 1fr; }

  .hcard .thumb { min-height: 0; aspect-ratio: 16 / 10; }
  .gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 120px; height: auto; }
  .gallery button:first-child { grid-column: 1 / -1; grid-row: 1; }
  .gallery button:nth-child(n+4) { display: none; }
  .band { grid-template-columns: 1fr; padding: 26px; }
  .admin-shell { grid-template-columns: 1fr; }
  .admin-side { display: flex; overflow-x: auto; gap: 4px; padding: 10px; }
  .admin-side .brand, .admin-side .sep { display: none; }
  .admin-side a { white-space: nowrap; }
  .hero { padding: 40px 0 100px; }
}
@media (max-width: 560px) {
  .grid-4, .grid-3, .values, .footer-grid, .form-grid, .feature-grid, .stats { grid-template-columns: 1fr; }
  .stepper { grid-template-columns: 1fr 1fr; row-gap: 12px; }
  .step::after { display: none; }
  .lb-stage { padding: 56px 8px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ===== Új rendszer kiegészítései ===== */
.skip-link { position: absolute; left: -999px; top: 0; background: var(--yellow); color: var(--green-950); padding: 10px 16px; z-index: 100; font-weight: 800; }
.skip-link:focus { left: 8px; top: 8px; }
.wrap.narrow { width: min(100% - 32px, 1040px); }
main { min-height: 50vh; padding-bottom: 24px; }
.lead-text { max-width: 820px; color: #3b473b; }
.center { text-align: center; }
.btn-row { display: flex; flex-wrap: wrap; gap: 10px; }
.btn[aria-current="page"] { pointer-events: none; }

.prose { line-height: 1.7; }
.prose h2, .prose h3, .prose h4 { margin-top: 1.4em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .4em; }
.prose img { height: auto; border-radius: var(--radius-sm); margin: .6em 0; }
.prose .tartalom { margin: 0; }
.prose .row { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 18px; }
.prose .row > * { flex: 1 1 280px; min-width: 0; }
.content-page { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px; margin-bottom: var(--dobozkoz, 26px); }
.content-page .listadoboz { align-items: center; }

.area-grid .tile { min-height: 96px; }
.side-links { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px 20px; margin-top: 18px; }
.side-links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.side-links a { text-decoration: none; display: block; padding: 3px 0; }
.results-head .count { margin: 0; color: var(--muted); }
/* Főoldali térképes doboz: fejlécében fülekkel váltható a régió / megye / tájegység térkép */
.terkep-box { background: #fff; border: 1px solid #e4e8dc; border-radius: 12px; box-shadow: 0 1px 4px rgba(0,0,0,.08); margin: 0 0 var(--dobozkoz, 26px); overflow: hidden; }
.terkep-fejlec { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; padding: 0 20px; background: var(--forest); color: #fff; }
.terkep-cim { margin: 0; padding: 14px 0; font-size: var(--fh-cim); font-weight: 700; color: #fff; }
.terkep-fulek { display: flex; gap: 4px; align-self: flex-end; }
.terkep-fulek button { font: inherit; font-size: .9rem; font-weight: 700; padding: 10px 18px; border: 0; border-radius: 10px 10px 0 0; background: transparent; color: #fff; cursor: pointer; }
.terkep-fulek button:hover { background: rgba(255,255,255,.14); }
.terkep-fulek button[aria-selected="true"] { background: #fff; color: var(--forest); }
.terkep { position: relative; max-width: 640px; margin: 20px auto; }
.terkep[hidden] { display: none; }
.terkep img { display: block; width: 100%; height: auto; }
.terkep svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.terkep polygon { fill: transparent; stroke: none; cursor: pointer; transition: fill .15s; }
.terkep a:hover polygon, .terkep a:focus polygon { fill: rgba(255, 255, 255, .45); }
@media (max-width: 560px) {
  .terkep-fejlec { padding: 0 12px; }
  .terkep-fulek button { padding: 9px 10px; font-size: .8rem; }
  .terkep { margin: 12px; }
}
.pagination { display: flex; gap: 8px; justify-content: center; align-items: center; flex-wrap: wrap; margin: 26px 0 10px; }
.hcard .loc { margin: 0; color: var(--muted); font-size: .95rem; }
.hcard .foot .feat { margin-right: auto; }

.preview-note { background: #fff1c2; border-left: 4px solid var(--orange); padding: 10px 14px; border-radius: 10px; margin: 16px 0 0; }
.error-note { background: #fde8e8; border-left: 4px solid var(--danger); padding: 10px 14px; border-radius: 10px; margin-bottom: 14px; }
.error-note ul { margin: 6px 0 0; padding-left: 1.2em; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.side-note { margin: 12px 0 0; text-align: center; }
.panel .prose p:last-child { margin-bottom: 0; }

.heart-inline { position: static; width: auto; height: auto; border-radius: 999px; padding: 10px 18px; background: #fff; box-shadow: inset 0 0 0 2px var(--green-700); display: inline-flex; align-items: center; gap: 8px; color: var(--green-800); font-weight: 800; border: 0; cursor: pointer; }
.heart-inline svg { width: 20px; height: 20px; fill: none; stroke: var(--green-800); stroke-width: 2; }
.heart-inline[aria-pressed="true"] svg { fill: #e53935; stroke: #e53935; }
.feature-grid .szep { width: auto; height: 26px; opacity: 1; }
.feature-grid .dot { width: 24px; height: 24px; border-radius: 50%; background: var(--blue-50); color: var(--blue-700); display: inline-grid; place-items: center; font-size: .9rem; font-weight: 800; }

.gallery-n1 { grid-template-columns: 1fr; grid-template-rows: 1fr; height: 420px; }
.gallery-n2 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
.gallery-n2 button:first-child, .gallery-n1 button:first-child { grid-row: auto; }
.gallery-n3 { grid-template-columns: 2fr 1fr; }

.mapbox { overflow: hidden; }
.mapbox-big { height: min(70vh, 640px); margin-bottom: 24px; }
.leaflet-popup-content { font-family: var(--font); min-width: 190px; }
.leaflet-popup-content img { border-radius: 10px; margin: 6px 0; width: 100%; height: auto; }

/* Szálláshelyeknek oldal, Választható megjelenési módok: két hasáb – balra az Alap megjelenés, jobbra a három extra egymás alatt (820 px alatt mind egymás alatt) */
.packages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 18px 0 26px; }
.package-extrak { display: grid; gap: 20px; align-content: start; }
.package { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; }
.package-main { border: 3px solid var(--green-500); }
.package h3 { margin-bottom: .4em; }
.price { font-size: 1.7rem; font-weight: 800; color: var(--green-800); margin: .3em 0; }
.price span { font-size: 1rem; font-weight: 700; color: var(--muted); margin-left: 4px; }

.fav-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 22px; }
.not-found { padding: 40px 0; }

@media (max-width: 820px) {
  .packages { grid-template-columns: 1fr; }
}

/* ===== Megrendelőlap ===== */
.order-form .panel { margin-bottom: 22px; }
.order-form h2 { margin-bottom: .6em; }
.option { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border: 2px solid var(--line); border-radius: 14px; margin-bottom: 10px; cursor: pointer; }
.option:has(input:checked) { border-color: var(--green-500); background: #f4faea; }
.option input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--green-700); flex: none; }
.option .opt-price { display: block; font-style: normal; font-weight: 800; color: var(--green-800); margin-top: 2px; }
.total { font-size: 1.2rem; text-align: right; margin: 16px 0 6px; }
.total strong { font-size: 1.6rem; color: var(--green-800); }
.features { border: 2px solid var(--line); border-radius: 14px; margin: 18px 0 0; padding: 12px 16px; }
.features legend { font-weight: 800; padding: 0 8px; }
.check-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px 20px; }
.consent { align-items: flex-start; margin-bottom: 14px; }
.consent input { margin-top: 4px; }
.order-form .dropzone { cursor: pointer; transition: background .15s, border-color .15s; }
.order-form .dropzone:hover, .order-form .dropzone.over { background: #eaf5da; border-color: var(--green-700); }
.uploads { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.uploads li { position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--blue-50); box-shadow: var(--shadow); }
.uploads li img { width: 100%; height: 100%; object-fit: cover; }
.uploads li.loading img { opacity: .4; }
.uploads li.loading::after { content: ""; position: absolute; inset: 0; margin: auto; width: 28px; height: 28px; border: 3px solid var(--green-700); border-top-color: transparent; border-radius: 50%; animation: spin .8s linear infinite; }
.uploads li.small { outline: 3px solid var(--orange); }
.uploads .remove { position: absolute; top: 4px; right: 4px; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(0,0,0,.65); color: #fff; font-size: 1.1rem; cursor: pointer; line-height: 1; }
.uploads .warn { position: absolute; left: 0; right: 0; bottom: 0; background: var(--orange); color: var(--green-950); font-size: .85rem; font-weight: 800; text-align: center; padding: 2px 4px; }
#upload-msg.bad { color: #a14500; font-weight: 700; }
.done { text-align: center; }
.done h1 { margin-bottom: .4em; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 560px) { .check-grid { grid-template-columns: 1fr; } }

/* ===== Főoldal és új arculat (a látványterv szerint) ===== */
:root { --fh-cim: clamp(1.25rem, 1rem + .9vw, 1.6rem); --serif: "Sansita", Georgia, "Times New Roman", Times, serif; --rust: #c0431a; --cta: #d9531e; --cta-dark: #b8430f; --forest: #446d1c; }
body { background: #f8f7f0; }
h1, h2 { font-family: var(--serif); font-weight: 700; }

.fh-hero { position: relative; color: #fff; background: #304d14 url("/image/hatter.jpg") center 30% / cover no-repeat; padding-top: clamp(56px, 6vw, 110px); }
.fh-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,38,4,.66) 0%, rgba(8,38,4,.3) 55%, rgba(8,38,4,.08) 100%), linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.38)); }
.fh-hero .wrap { position: relative; }
.fh-hero-title { font-family: var(--serif); font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.05rem); line-height: 1.15; margin: 18px 0 14px; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.fh-hero-title em { color: var(--yellow); font-style: normal; }
.fh-hero-lead { max-width: 560px; font-size: .95rem; font-weight: 600; line-height: 1.55; text-shadow: 0 1px 6px rgba(0,0,0,.65); margin: 0 0 clamp(56px, 7vw, 120px); }

.fh-search { background: rgba(37,78,17,.93); border-radius: 12px; padding: 16px 18px; margin-top: 26px; box-shadow: 0 4px 24px rgba(0,0,0,.3); }
.fh-search-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.fh-search .field label { color: #fff; font-size: .88rem; letter-spacing: 0; text-transform: none; font-weight: 700; }
.fh-search .field select, .fh-search .field input[type=text] { border: 0; border-radius: 8px; padding: 12px 12px; font-size: .9rem; color: #333; }
.fh-search .fh-pin input { padding-left: 38px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23446d1c'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.500A2.500 2.500 0 1 1 12 6.500a2.500 2.500 0 0 1 0 5z'/%3E%3C/svg%3E") 11px center / 18px no-repeat; }
.fh-search-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--cta); color: #fff; border: 0; border-radius: 8px; padding: 0 30px; height: 46px; font: inherit; font-weight: 800; letter-spacing: .06em; font-size: .9rem; cursor: pointer; }
.fh-search-btn:hover { background: var(--cta-dark); }
.fh-search-btn svg { width: 19px; height: 19px; fill: #fff; }
.fh-chips { margin-top: 12px; }
.fh-chips .chip { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.4); color: #fff; padding: 4px 12px; font-size: .9rem; font-weight: 600; }
.fh-chips .chip:hover { border-color: #fff; }
.fh-chips .chip:has(input:checked) { background: #fff; border-color: #fff; color: var(--forest); }

.fh-layout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 40px; padding-top: 38px; padding-bottom: 20px; align-items: start; }
.fh-layout section { padding: 0; }
.fh-main > section { margin-bottom: 34px; }
.fh-title { font-size: var(--fh-cim); color: var(--forest); line-height: 1.3; font-weight: 400; }
.fh-heading { font-size: var(--fh-cim); color: var(--forest); font-weight: 400; margin-bottom: 16px; }
.fh-heading::after { content: ""; display: inline-block; width: 17px; height: 17px; margin-left: 8px; vertical-align: -1px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M6 42C6 21 21 5 44 5c0 22-13 37-32 37z' fill='%23669228'/%3E%3C/svg%3E") center / contain no-repeat; }
.fh-divider { height: 14px; margin: 6px 0 16px; background: linear-gradient(#a8c97c, #a8c97c) left 7px / 56% 1px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M6 42C6 21 21 5 44 5c0 22-13 37-32 37z' fill='%23669228'/%3E%3C/svg%3E") 58% center / 12px no-repeat; }
.fh-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; }
.fh-intro-text p { font-size: .92rem; }
.fh-intro-map img { width: 100%; height: auto; border-radius: 14px; filter: saturate(.75); }
.fh-btn { display: inline-block; background: var(--forest); color: #fff; text-decoration: none; font-weight: 800; font-size: .9rem; letter-spacing: .06em; padding: 11px 24px; border-radius: 999px; }
.fh-btn:hover { background: #395c18; color: #fff; }
.fh-video video { width: 100%; aspect-ratio: 16 / 9; background: #000; border-radius: 5px; display: block; }
.fh-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 20px; }
.fh-cards .card { border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,.14); border: 1px solid #e4e8dc; }
.fh-cards .card:hover { transform: none; box-shadow: 0 3px 10px rgba(0,0,0,.18); }
.fh-cards .card .body { padding: 9px 10px 11px; }
.fh-cards .card h3 { font-size: .86rem; font-weight: 800; margin-bottom: 1px; }
.fh-cards .card .loc { font-size: .86rem; margin: 0; }
.fh-cards .card .feat { display: none; }
.fh-cards .card h3 a { color: #1d2a1d; }
.fh-cards .badge { top: 8px; left: 8px; font-size: .6rem; padding: 2px 7px; }
.fh-cards .heart { width: 30px; height: 30px; top: 7px; right: 7px; }
.fh-cards .heart svg { width: 17px; height: 17px; }
.fh-about .prose { font-size: .88rem; color: #333; line-height: 1.65; }
.fh-about .prose h2 { font-size: var(--fh-cim); color: var(--forest); font-weight: 400; margin: 1.2em 0 .4em; }

.fh-side { display: grid; gap: 22px; align-content: start; }
.fh-layout .fh-box { background: #f3f2ec; border-radius: 12px; padding: 24px 26px 14px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.fh-box h2 { font-size: 1.1rem; line-height: 1.3; font-weight: 400; margin: 0 0 12px; }
.fh-box h2 a { color: var(--rust); text-decoration: none; }
.fh-box h2 a:hover { text-decoration: underline; }
.fh-box ul { list-style: none; margin: 0; padding: 0; }
.fh-box li { display: grid; grid-template-columns: 104px 1fr; gap: 16px; align-items: center; padding: 12px 0; border-top: 1px solid #e0ded3; }
.fh-box li:first-child { border-top: 0; }
.fh-thumb { display: block; border-radius: 8px; overflow: hidden; aspect-ratio: 1.25 / 1; background: var(--blue-50); }
.fh-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fh-name { display: block; font-weight: 800; font-size: .94rem; line-height: 1.25; color: #1d2a1d; text-decoration: none; }
.fh-name:hover { color: var(--green-700); }
.fh-box li span { display: block; font-size: .86rem; color: var(--muted); line-height: 1.3; margin-top: 2px; }

/* Lábléc (látványterv szerint) */
.site-footer { background: #446d1c; color: #d8e8c4; padding: 40px 0 0; margin-top: 30px; }
.site-footer .footer-grid { grid-template-columns: 1.3fr 1fr 1fr 1.2fr; }
.site-footer .brand { margin-bottom: 12px; }
.footer-brand p { font-size: .88rem; max-width: 300px; }
.footer-contact li { display: flex; align-items: center; gap: 10px; }
.footer-contact svg { width: 18px; height: 18px; fill: #cfe6b0; flex: none; }
.social svg { width: 36px; height: 36px; background: #fff; border-radius: 50%; padding: 8px; fill: #446d1c; }
.social:hover svg { background: var(--yellow); }
.site-footer .copyright { justify-content: center; text-align: center; margin-top: 30px; padding: 16px 0 18px; font-size: .92rem; }


/* a főoldal egy oszlopra váltása (a fenti alapszabályok után kell állnia, hogy felülírja őket) */
@media (max-width: 1400px) {   /* a jobb oldali sáv (régiós dobozok) 1400 px alatt a főtartalom alá kerül (2026-11-04) */
  .fh-layout { grid-template-columns: minmax(0, 1fr); }
  .fh-side { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); }
}
@media (max-width: 1150px) {
  .fh-search-grid { grid-template-columns: minmax(0, 1fr); }
  .fh-search-btn { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .fh-intro { grid-template-columns: 1fr; }
  .fh-cards { grid-template-columns: repeat(2, 1fr); }
  .fh-hero-lead { margin-bottom: 48px; }
  .site-footer .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .fh-search-grid { grid-template-columns: 1fr; }
  .site-footer .footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .top-bar .wrap { gap: 8px; min-height: 70px; }
  .brand { gap: 8px; }
  .brand .leaf { width: 38px; height: 38px; }
  .brand-text img { height: 30px; }
  .brand-text small { display: none; }
  .top-right { gap: 4px; }
  .fav-link { padding: 6px; }
  .menu-toggle { padding: 7px 11px; }
}

/* Jobb oldali dobozok: a szálláshely-hármasok egymás fölött állnak, és halványodva váltják egymást (site.js) */
.fh-slides { display: grid; }
.fh-group { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.fh-group.is-active { opacity: 1; visibility: visible; }
.fh-box .fh-group { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .fh-group { transition: none; } }

/* Összetett keresés (/kereses) */
.kereso-cim { font-size: 1.2rem; margin: 0 0 14px; }
.kereso-teruletek { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.kereso-alcim { font-size: 1rem; margin: 20px 0 8px; padding-top: 16px; border-top: 1px solid var(--line); }
.kereso-jellemzok { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 0 16px; }
.kereso-gombok { display: flex; align-items: center; gap: 18px; margin-top: 18px; }
.kereso-oldal .filters { position: static; display: block; margin-bottom: 36px; }
.kereso-terulet-cim { margin: 8px 0 14px; }
/* Oldalsáv a Szálláshelyeknek / Hirdetés / Tippek / Kapcsolat oldalakon: tartalom + kiemelt ajánlatok hasáb */
.oldalsav-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; }
.oldalsav .fh-box { background: #f3f2ec; border-radius: 12px; padding: 22px 22px 8px; box-shadow: 0 1px 3px rgba(0,0,0,.08); margin-top: 20px; }
.oldalsav .fh-box h2 { font-size: 1.2rem; text-align: center; margin: 0 0 14px; color: var(--forest); }
.kiemelt-lista li { display: block; text-align: center; padding: 0 0 18px; border-top: 0; }
.kiemelt-lista li + li { padding-top: 18px; border-top: 1px solid #e0ded3; }
.kiemelt-kep { display: block; border-radius: 8px; overflow: hidden; aspect-ratio: 5 / 3; background: var(--blue-50); margin-bottom: 10px; }
.kiemelt-kep img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiemelt-lista .fh-name { font-size: 1rem; }
@media (max-width: 1150px) {
  .oldalsav-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .kiemelt-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 18px; }
  .kiemelt-lista li, .kiemelt-lista li + li { padding: 0; border-top: 0; }
}
/* Találati lista: lista / kártyák nézetváltó */
.nezet-valto { display: inline-flex; border: 2px solid var(--line); border-radius: 999px; overflow: hidden; background: #fff; }
.nezet-valto a { display: inline-flex; align-items: center; gap: 7px; padding: 7px 16px; font-weight: 700; font-size: .92rem; text-decoration: none; color: var(--ink); }
.nezet-valto a svg { width: 16px; height: 16px; fill: currentColor; }
.nezet-valto a:hover { background: var(--blue-50); }
.nezet-valto a[aria-current="true"] { background: var(--green-700); color: #fff; }
.kartya-racs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-bottom: 18px; }
@media (max-width: 820px) { .kartya-racs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .kartya-racs { grid-template-columns: minmax(0, 1fr); } }
/* Szállás-adatlap: a Kapcsolat panel a tartalom tetején, az adatok több oszlopban */
.detail-fo .contact-card dl { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
/* Szállás-adatlap: Kapcsolat és Elhelyezkedés (térkép) két egyenlő doboz egymás mellett */
.ketto-doboz { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 20px; align-items: stretch; }
.ketto-doboz .panel { margin-bottom: 0; }
@media (max-width: 820px) { .ketto-doboz { grid-template-columns: minmax(0, 1fr); } }
/* Terület-választó: fülekkel (Régió / Megye / Tájegység) váltható lista */
.terulet-felirat { display: block; font-size: .9rem; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.fh-search .terulet-felirat { color: #fff; text-transform: none; letter-spacing: 0; font-size: .88rem; font-weight: 700; margin-bottom: 4px; }
.terulet-fulek { display: flex; gap: 6px; margin-bottom: 8px; }
.terulet-fulek[hidden], .terulet-mezo[hidden] { display: none; }
.terulet-fulek button { font: inherit; font-size: .82rem; font-weight: 700; padding: 4px 13px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); cursor: pointer; }
.terulet-fulek button:hover { border-color: var(--green-500); }
.terulet-fulek button[aria-selected="true"] { background: var(--green-700); border-color: var(--green-700); color: #fff; }
.fh-search .terulet-fulek button { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.4); color: #fff; }
.fh-search .terulet-fulek button[aria-selected="true"] { background: #fff; border-color: #fff; color: var(--forest); }
.terulet-mezo + .terulet-mezo { margin-top: 8px; }
.terulet-valaszto.van-js .terulet-cimke { display: none; }
/* Főoldal, régió-dobozok alján: link a régió listaoldalára */
.fh-more { display: block; margin: 4px 0 12px; padding-top: 12px; border-top: 1px solid #e0ded3; text-align: center; font-weight: 800; font-size: .92rem; color: var(--rust); text-decoration: none; }
.fh-more:hover { text-decoration: underline; }
/* Főoldal: a térképes doboz és a jellemző-csempék két egyenlő doboz egymás mellett */
.fh-ketto { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 32px; align-items: stretch; }
.fh-ketto .terkep-box { margin: 0; }
.jellemzo-csempek { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 16px; }
.jellemzo-csempek a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 14px 6px; border: 1px solid #e4e8dc; border-radius: 10px; background: #f8f7f0; color: var(--ink); text-decoration: none; text-align: center; font-weight: 700; font-size: .88rem; line-height: 1.2; transition: border-color .15s, box-shadow .15s, background .15s; }
.jellemzo-csempek a:hover { border-color: var(--green-500); background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.jellemzo-csempek img { width: 34px; height: 34px; object-fit: contain; opacity: .85; }
@media (max-width: 820px) { .fh-ketto { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .jellemzo-csempek { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; } }
/* Hero: bal oldalon a szöveg, jobb oldalon a néma, ismétlődő bemutató klip */
.fh-hero-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 46%); gap: 40px; align-items: center; padding-bottom: clamp(40px, 4vw, 64px); }
.fh-hero-top .fh-hero-lead { margin-bottom: 0; }
.klip { position: relative; border-radius: 14px; overflow: hidden; box-shadow: 0 10px 36px rgba(0,0,0,.45); aspect-ratio: 16 / 9; background: #304d14; }
.klip video { width: 100%; height: 100%; object-fit: cover; display: block; }
.fh-video-gombok { position: absolute; right: 12px; bottom: 12px; display: flex; gap: 8px; }
.fh-video-gombok button { font: inherit; font-weight: 800; font-size: .82rem; color: #fff; background: rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.55); border-radius: 999px; padding: 7px 14px; cursor: pointer; backdrop-filter: blur(4px); }
.fh-video-gombok button:hover { background: rgba(0,0,0,.75); }
.film-dialog { width: min(1100px, 94vw); padding: 0; border: 0; border-radius: 12px; background: #000; overflow: visible; }
.film-dialog::backdrop { background: rgba(0,0,0,.8); }
.film-dialog video { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; }
.film-bezar { position: absolute; top: -16px; right: -16px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: #000; font-size: 1.6rem; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
@media (max-width: 1150px) {
  .fh-hero-top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .fh-hero-video { max-width: 560px; }
}
@media (max-width: 560px) { .film-bezar { top: 6px; right: 6px; } }
.fh-klip-fo { margin: 0 0 32px; box-shadow: 0 2px 12px rgba(0,0,0,.2); }

/* ===== Finomított arculat (a Design-vászon alapján) =====
   Elv: egy márkazöld, egy akciószín (narancs, csak a fő gombokon), egységes fehér dobozok vékony szegéllyel, 12 px / 8 px lekerekítés,
   egy árnyékszint, Georgia címsorok és Nunito szöveg. Ez a blokk a korábbi szabályok FELETT áll, ezért felülírja őket. */
:root {
  --green-950: #304d14; --green-900: #304d14; --green-800: #395c18; --green-700: #446d1c; --green-500: #669228;
  --forest: #446d1c; --cta: #c2410c; --cta-dark: #9a3412; --ink: #1c2a1c; --muted: #5a675a; --line: #e3e9da; --bg: #f8f7f0;
  --radius: 14px; --radius-sm: 10px; --shadow: 0 1px 2px rgba(20,40,10,.05); --shadow-lg: 0 6px 20px rgba(20,40,10,.1);
}
body { background: var(--bg); color: var(--ink); }

/* Címsorok: Georgia, nem félkövér, márkazöld; az oldalcím és a főoldali szakaszcímek egyforma méretűek */
h1, h2 { font-weight: 400; letter-spacing: 0; color: var(--forest); }
h1 { font-size: var(--fh-cim); }
h2 { font-size: clamp(1.3rem, 1.1rem + .5vw, 1.55rem); }
h3 { color: var(--ink); }
.results-head h1 { font-size: var(--fh-cim); }
.hcard h2 { font-family: var(--font); font-weight: 800; font-size: 1.15rem; color: var(--ink); }
.hcard h2 a { color: var(--ink); }
.card h3 a { color: var(--ink); }

/* Gombok: 8 px sarkok, a narancs csak a fő műveleten */
.btn { border-radius: 10px; }
.btn:hover { transform: none; }
.btn-primary { background: var(--cta); color: #fff; box-shadow: none; }
.btn-primary:hover { background: var(--cta-dark); color: #fff; }
.btn-green { background: var(--forest); }
.btn-green:hover { background: var(--green-900); }
.btn-outline { color: var(--forest); box-shadow: inset 0 0 0 1px var(--forest); }
.btn-outline:hover { background: var(--forest); color: #fff; }
.fh-btn { border-radius: 10px; letter-spacing: .05em; }

/* Mezők */
.field label { font-size: .8rem; }
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field textarea { border: 1px solid #c9d3bb; border-radius: 10px; padding: 12px 14px; }
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search] { min-height: 48px; }
.chip { border-width: 1px; }

/* Dobozok és kártyák: fehér, vékony szegély, 12 px, halvány árnyék */
.card, .hcard, .panel, .filters, .side-links, .package, .content-page, .terkep-box, .fh-layout .fh-box, .oldalsav .fh-box {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
}
.card:hover, .hcard:hover { transform: none; box-shadow: var(--shadow-lg); }
.filters { padding: 24px; }
.panel { padding: 24px 28px; }
.hcard .body { padding: 18px 22px; }
.nezet-valto { border-width: 1px; border-color: #cfd8c2; }
.nezet-valto a[aria-current="true"] { background: var(--forest); }

/* Fejléc és lábléc: egyszínű zöld felületek */
.top-bar { background: #395c18; }
.site-footer { background: #304d14; color: #dfeccc; }
.site-footer .copyright { color: #b9cfa0; }

/* Főoldal: hero keresődoboz fehér, a videó mellett */
.fh-hero::before { background: linear-gradient(90deg, rgba(14,38,8,.88) 0%, rgba(14,38,8,.6) 55%, rgba(14,38,8,.3) 100%); }
.fh-hero-lead { font-size: 1.05rem; font-weight: 500; }
.fh-search { background: #fff; color: var(--ink); border-radius: 14px; padding: 20px 22px; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.fh-search .field label, .fh-search .terulet-felirat { color: var(--ink); }
.fh-search .terulet-felirat { font-size: .9rem; font-weight: 800; margin-bottom: 10px; }
.fh-search .field select, .fh-search .field input[type=text] { border: 1px solid #c9d3bb; border-radius: 10px; min-height: 50px; font-size: 1rem; color: var(--ink); }
.fh-search .terulet-fulek button { background: #eef2e6; border-color: #dfe7d2; color: var(--ink); }
.fh-search .terulet-fulek button:hover { border-color: var(--green-500); }
.fh-search .terulet-fulek button[aria-selected="true"] { background: var(--forest); border-color: var(--forest); color: #fff; }
.fh-search-btn { background: var(--cta); border-radius: 10px; height: 50px; }
.fh-search-btn:hover { background: var(--cta-dark); }

/* Főoldal: szakaszok, kártyák, jobb oldali dobozok */
.fh-heading::after { display: none; }
.fh-divider { width: 56px; height: 3px; margin: 8px 0 18px; background: var(--green-500); border-radius: 3px; }
.fh-intro-text p { font-size: 1rem; color: #3a483a; }
.fh-about .prose { font-size: 1rem; color: #3a483a; }
.fh-cards { gap: 20px; }
.fh-cards .card { border-radius: var(--radius); border: 1px solid var(--line); box-shadow: var(--shadow); }
.fh-cards .card:hover { box-shadow: var(--shadow-lg); }
.fh-cards .card .body { padding: 14px 16px 16px; }
.fh-cards .card h3 { font-size: 1rem; }
.fh-cards .card .loc { font-size: .88rem; }
.fh-cards .card h3 a { color: var(--ink); }
.fh-layout .fh-box { padding: 20px 20px 8px; }
.fh-box h2 { font-size: 1.15rem; }
.fh-box h2 a { color: var(--forest); }
.fh-box li { grid-template-columns: 84px 1fr; gap: 14px; border-top-color: #edf1e6; }
.fh-thumb { border-radius: 10px; }
.fh-name { color: var(--ink); }
.fh-more { border-top-color: #edf1e6; color: var(--cta); }
.oldalsav .fh-box { padding: 22px 22px 8px; }
.oldalsav .fh-box h2 { font-size: 1.3rem; }
.kiemelt-lista li + li { border-top-color: #edf1e6; }
.kiemelt-kep { border-radius: 10px; }

/* Főoldali térképes és jellemző-doboz: egyszerű fehér doboz, a cím felül, alatta a fülek */
.fh-ketto .terkep-box { padding: 0; }
.terkep-fejlec { flex-direction: column; align-items: flex-start; gap: 14px; padding: 24px 28px 0; background: none; color: var(--forest); }
.terkep-cim { padding: 0; font-weight: 400; color: var(--forest); }
.terkep-fulek { align-self: auto; gap: 8px; }
.terkep-fulek button { padding: 6px 16px; font-size: .88rem; border: 1px solid #dfe7d2; border-radius: 999px; background: #eef2e6; color: var(--ink); }
.terkep-fulek button:hover { border-color: var(--green-500); background: #eef2e6; }
.terkep-fulek button[aria-selected="true"] { background: var(--forest); border-color: var(--forest); color: #fff; }
.terkep { width: calc(100% - 56px); max-width: 640px; margin: 18px auto 28px; }
.jellemzo-csempek { padding: 18px 28px 28px; }
.jellemzo-csempek a { border: 1px solid var(--line); border-radius: 12px; background: var(--bg); padding: 14px 6px; }
.jellemzo-csempek a:hover { border-color: var(--green-500); background: #fff; box-shadow: var(--shadow-lg); }
.jellemzo-csempek img { opacity: .8; }
@media (max-width: 560px) { .terkep-fejlec { padding: 20px 16px 0; } .terkep { width: calc(100% - 32px); } .jellemzo-csempek { padding: 14px 16px 18px; } }

/* Szállás-adatlap */
.gallery { gap: 8px; }
.gallery .all { background: rgba(0,0,0,.6); color: #fff; border: 1px solid rgba(255,255,255,.6); box-shadow: none; font-size: .85rem; }
.heart-inline { box-shadow: inset 0 0 0 1px var(--forest); }
.panel h2 { font-size: 1.45rem; }
.ketto-doboz .panel h2 { font-size: 1.35rem; }
/* Összetett keresés űrlap: a jellemzők két oszlopban, a fülek szükség esetén törnek */
.kereso-jellemzok { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.terulet-fulek { flex-wrap: wrap; }
@media (max-width: 380px) { .kereso-jellemzok { grid-template-columns: minmax(0, 1fr); } }
/* Szállás-adatlap: a megye és a régió a cím alatt link a saját listaoldalára */
.title-row .loc a { color: inherit; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.title-row .loc a:hover { color: var(--forest); text-decoration-color: var(--forest); }
/* A morzsamenü megszűnt: a tartalom (a főoldal kivételével) kapjon saját fejléc alatti helyet */
body:not(.home) main { padding-top: 28px; }
/* Hero: kisebb főcím; a keresődoboz és a videó alja egy vonalban */
.fh-hero-title { font-size: clamp(1.7rem, 1.1rem + 2.1vw, 2.6rem); }
.fh-hero-top { align-items: end; }.fh-hero-lead { max-width: none; }   /* a leírás ugyanolyan széles, mint a keresődoboz */
/* Település-javaslatlista: a mezővel azonos szélesség és stílus */
.telepules-doboz { position: relative; }
.telepules-lista { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 40; margin: 0; padding: 6px; list-style: none; max-height: 320px; overflow-y: auto; background: #fff; border: 1px solid #c9d3bb; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.telepules-lista[hidden] { display: none; }
.telepules-lista li { padding: 10px 12px; border-radius: 8px; cursor: pointer; font-size: 1rem; color: var(--ink); }
.telepules-lista li:hover, .telepules-lista li[aria-selected="true"] { background: #eef2e6; color: var(--forest); }
/* "Tippek tőlünk": a cikksorok a szállás-listanézet soraira hasonlítanak; a gomb jobbra áll */
.hcard .foot.foot-jobbra { justify-content: flex-end; }
/* Találati oldalak: a jobb oldali oszlop (.results, egy <section>) ne kapjon a szakaszok általános felső közét – egy vonalban indul a bal oldali űrlappal */
.results { padding: 0; }
/* Jellemzők az űrlapon: a jelölőnégyzet és az ikon ne zsugorodjon, a felirat törhet */
.kereso-jellemzok .check { gap: 8px; font-size: .95rem; min-width: 0; }
.check input, .check img { flex: none; }
.check img { object-fit: contain; }
/* Összetett keresés: a jellemzők egy oszlopban */
.kereso-jellemzok { grid-template-columns: minmax(0, 1fr); }.filters.kereso-urlap { position: static; }   /* az űrlap magasabb, mint a képernyő: ne ragadjon, különben az alja (Keresés gomb) elérhetetlen */
/* Összetett keresés (üres oldal): a cím a két oszlop fölött áll, így az űrlap és a Kiemelt ajánlatok egy magasságban indul */
.kereso-fejlec { margin-bottom: 24px; }
.results > .fh-heading:first-child { margin-top: 0; }
/* Kiemelt ajánlatok hasáb: nincs felső eltartás, így egy vonalban indul a tartalom tetejével */
.oldalsav .fh-box { margin-top: 0; }
/* Betűméret 2 px-szel kisebb: a keresőmezők szövege és a főoldal normál szövege */
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field textarea { font-size: calc(1rem - 2px); }
.fh-search .field select, .fh-search .field input[type=text] { font-size: calc(1rem - 2px); }
.telepules-lista li { font-size: calc(1rem - 2px); }
.fh-hero-lead { font-size: calc(1.05rem - 2px); }
.fh-intro-text p, .fh-about .prose { font-size: 1rem; }
/* Lábléc: a linkek és a copyright 2 px-szel kisebb */
.site-footer ul { font-size: calc(1rem - 2px); }
.site-footer .copyright { font-size: calc(.92rem - 2px); }
/* Szállás-adatlap: a galéria alatt hely marad a dobozoknak */
.gallery { margin-bottom: 24px; }
/* A bevezető szövegek és a "keskeny" oldalak is a teljes tartalom-szélességet használják */
.lead-text { max-width: none; }
.wrap.narrow { width: min(100% - 32px, var(--maxw)); }
@media (min-width: 1200px) { .wrap.narrow { width: min(100% - 56px, var(--maxw)); } }
/* Hero: nagyobb videó, keskenyebb bal oldali hasáb */
.fh-hero-top { grid-template-columns: minmax(0, 1fr) minmax(0, 56%); }
@media (max-width: 1150px) { .fh-hero-top { grid-template-columns: minmax(0, 1fr); } }.fh-search .terulet-fulek { gap: 6px; }
.fh-search .terulet-fulek button { padding: 4px 12px; font-size: .8rem; }
.fh-search-btn { padding: 0 22px; }
/* Hero: a videó 720 px széles (keskenyebb képernyőn legfeljebb a hero 52%-a) */
.fh-hero-top { grid-template-columns: minmax(0, 1fr) min(720px, 52%); }
@media (max-width: 1150px) { .fh-hero-top { grid-template-columns: minmax(0, 1fr); } }
/* Hero: a videó a hero szélességének 52%-a */
.fh-hero-top { grid-template-columns: minmax(0, 1fr) 52%; }
@media (max-width: 1150px) { .fh-hero-top { grid-template-columns: minmax(0, 1fr); } }
/* Hero: a videó a szélesség 50%-a; az alsó térköz 20 px-szel kisebb */
.fh-hero-top { grid-template-columns: minmax(0, 1fr) 50%; padding-bottom: calc(clamp(40px, 4vw, 64px) - 20px); }
@media (max-width: 1150px) { .fh-hero-top { grid-template-columns: minmax(0, 1fr); } }
/* Hero: a szövegeknek nincs betűárnyéka */
.fh-hero-title, .fh-hero-lead { text-shadow: none; }
/* Hero: kicsit világosabb háttér (kisebb sötétítés) */
.fh-hero::before { background: linear-gradient(90deg, rgba(14,38,8,.78) 0%, rgba(14,38,8,.5) 55%, rgba(14,38,8,.2) 100%); }.fh-hero::before { background: linear-gradient(90deg, rgba(14,38,8,.68) 0%, rgba(14,38,8,.4) 55%, rgba(14,38,8,.2) 100%); }   /* még egy kicsit világosabb a bal szél és a közép */.fh-hero::before { background: linear-gradient(90deg, rgba(14,38,8,.62) 0%, rgba(14,38,8,.35) 55%, rgba(14,38,8,.2) 100%); }   /* még egy picit világosabb a bal szél és a közép */
/* Fejléc és lábléc: élénkebb zöld, színátmenettel – balra világosodik */
.top-bar, .site-footer { background: linear-gradient(90deg, #669228 0%, #669228 45%, #304d14 100%); }
/* Fejléc és lábléc: élénk zöld, enyhe színátmenet – jobbra világosodik */
.top-bar, .site-footer { background: linear-gradient(90deg, #446d1c 0%, #669228 100%); }
/* A bal szél visszakapta a korábbi színt (fejléc #395c18, lábléc #304d14), jobbra világosodik */
.top-bar { background: linear-gradient(90deg, #395c18 0%, #669228 100%); }
.site-footer { background: linear-gradient(90deg, #304d14 0%, #669228 100%); }
/* Logó: levél nélkül, alatta a webcím (kisbetűs, kisebb betűköz) */
.brand-text small { text-transform: none; letter-spacing: .04em; font-size: .92rem; padding-left: 4px; }
@media (max-width: 820px) { .brand-text small { font-size: .78rem; } }
/* Jellemző-csempék: nagyobb ikonok, a Keresés gomb színében (SVG-maszk) */
.csempe-ikon { display: block; width: 48px; height: 48px; background: var(--cta); -webkit-mask: var(--ikon) center / contain no-repeat; mask: var(--ikon) center / contain no-repeat; }
.jellemzo-csempek img { width: 48px; height: 48px; opacity: 1; }
.jellemzo-csempek a { gap: 10px; padding: 16px 6px; }.csempe-ikon { width: 40px; height: 40px; }   /* az ikonok 40 px-esek */.jellemzo-csempek a { padding-top: 12px; padding-bottom: 12px; }   /* a csempék alsó-felső belső margója 4 px-szel kisebb */.jellemzo-csempek a { padding-top: 11px; padding-bottom: 11px; }   /* még 1 px-szel kisebb alsó-felső belső margó */
/* Normál szöveg az egész oldalon akkora, mint a főoldalon (2 px-szel kisebb az alapnál) */
body { font-size: 1rem; }
/* Kiemelt ajánlatok hasáb: 10 px-szel szélesebb (370 px) */
.oldalsav-layout { grid-template-columns: minmax(0, 1fr) 370px; }
@media (max-width: 1150px) { .oldalsav-layout { grid-template-columns: minmax(0, 1fr); } }
/* Főoldal, jobb oldali dobozok: a képek 8 px-szel nagyobbak (92 px széles) */
.fh-side .fh-box li { grid-template-columns: 92px 1fr; }
/* ===== Ügyfélkapu (szállásadók belépése és adminisztrációja) ===== */
.ugyfel-belepes { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 40px; align-items: start; }
.ugyfel-belepes h1 { margin-bottom: 14px; }
.ugyfel-tajekoztato h2 { margin-bottom: 12px; }
.ugyfel-kicsi { margin: 0 0 2px; color: var(--muted); font-size: .88rem; }
.ugyfel-kartyak { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.ugyfel-kartyak .panel { margin-bottom: 0; }
.ugyfel-kartyak h2 { font-size: 1.2rem; margin-bottom: 10px; }
.ugyfel-lista { margin: 0; padding-left: 1.2em; }
.ugyfel-urlap { max-width: 560px; }
@media (max-width: 820px) { .ugyfel-belepes { grid-template-columns: minmax(0, 1fr); gap: 24px; } }
/* Jelszó-mező: ugyanolyan, mint a többi szövegmező */
.field input[type=password] { width: 100%; font: inherit; font-size: calc(1rem - 2px); color: var(--ink); background: #fff; border: 1px solid #c9d3bb; border-radius: 10px; padding: 12px 14px; min-height: 48px; transition: border-color .12s; }
.field input[type=password]:focus { outline: none; border-color: var(--green-500); box-shadow: 0 0 0 4px rgba(102,146,40,.25); }.ugyfel-szerkeszto { max-width: 980px; }
.ugyfel-szerkeszto .panel h2 { margin-bottom: 14px; }
.ugyfel-szerkeszto textarea { min-height: 8rem; }
.ugyfel-szerkeszto .check.full { grid-column: 1 / -1; }
/* Ügyfélkapu, képek */
.kep-racs { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; margin-top: 16px; }
.kep-kartya { margin: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; }
.kep-kartya.ikon { border-color: var(--green-500); box-shadow: 0 0 0 2px var(--green-500); }
.kep-kep { position: relative; aspect-ratio: 4 / 3; background: #e9f0dc; }
.kep-kep img { width: 100%; height: 100%; object-fit: cover; }
.kep-jelzes { position: absolute; left: 8px; top: 8px; background: var(--forest); color: #fff; font-size: .78rem; font-weight: 800; padding: 2px 9px; border-radius: 999px; }
.kep-jelzes.kicsi { left: auto; right: 8px; background: var(--cta); }
.kep-kartya figcaption { padding: 10px 12px 12px; }
.kep-muveletek { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.kep-muveletek .btn[disabled] { opacity: .4; cursor: default; }
.feltoltes-allapot { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 4px; }
.feltoltes-allapot .hiba { color: var(--danger); font-weight: 700; }
/* ===== Egységes doboz-fejléc: minden doboz címe világosszürke sávban (#EEEFEB) áll, alatta fehér törzs; a beviteli mezők háttere is ez ===== */
:root { --doboz-fej: #fdc703; --mezo-hatter: #eaefe4; }
.panel { --px: 28px; --py: 24px; }
.filters { --px: 24px; --py: 24px; }
.side-links { --px: 20px; --py: 18px; }
.package { --px: 22px; --py: 22px; }
.fh-layout .fh-box { --px: 20px; --py: 20px; }
.oldalsav .fh-box { --px: 22px; --py: 22px; }
.panel > h1:first-child, .panel > h2:first-child,
.filters > h2:first-child, .side-links > h3:first-child, .package > h3:first-child,
.fh-layout .fh-box > h2:first-child, .oldalsav .fh-box > h2:first-child {
  margin: calc(-1 * var(--py)) calc(-1 * var(--px)) 18px; padding: 14px var(--px);
  background: var(--doboz-fej); border-radius: calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;
  font-family: var(--serif); font-size: 1.45rem; font-weight: 400; line-height: 1.25; color: var(--forest); text-align: left;
}
.ketto-doboz .panel > h2:first-child, .ugyfel-kartyak .panel > h2:first-child { font-size: 1.35rem; }
.fh-layout .fh-box > h2:first-child a, .oldalsav .fh-box > h2:first-child a { color: var(--forest); }
/* a főoldali térképes és jellemző-doboz fejlécében a cím és a fülek közös sávban vannak */
.terkep-fejlec, .fh-ketto .terkep-fejlec { flex-direction: row; align-items: center; justify-content: space-between; background: var(--doboz-fej); padding: 14px 28px; gap: 10px 16px; min-height: 62px; }
.terkep-cim { font-size: 1.45rem; line-height: 1.25; }
.terkep-fulek button { background: #fff; }
.terkep-fulek button[aria-selected="true"] { background: var(--forest); }
@media (max-width: 560px) { .terkep-fejlec, .fh-ketto .terkep-fejlec { padding: 12px 16px; } }
/* beviteli mezők háttere */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=image]):not([type=range]), select, textarea, .field select, .field textarea, form select, form textarea { background-color: var(--mezo-hatter); }
/* Kiemelt ajánlatok hasáb: az elemek kártyák – felül a kép, alatta világos sávban középre igazítva a név és a település */
.kiemelt-lista { display: grid; gap: 24px; }
.kiemelt-lista li, .kiemelt-lista li + li { padding: 0; border: 0; background: var(--mezo-hatter); border-radius: var(--radius); overflow: hidden; text-align: center; }
.oldalsav .fh-box { padding-bottom: 22px; }
.kiemelt-lista .kiemelt-kep { border-radius: 0; margin: 0; }
.kiemelt-lista .fh-name { padding: 9px 14px 0; font-size: 1.05rem; }
.kiemelt-lista li span { padding: 2px 14px 11px; margin: 0; font-size: .95rem; }
/* Beviteli mezők: a betűméret és a belső margó 1 px-szel kisebb (a minimális magasság 2 px-szel, hogy a mező ténylegesen alacsonyabb legyen) */
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field input[type=password], .field textarea { font-size: calc(1rem - 3px); padding: 11px 13px; }
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field input[type=password] { min-height: 46px; }
.fh-search .field select, .fh-search .field input[type=text] { font-size: calc(1rem - 3px); padding: 11px 13px; min-height: 48px; }
.telepules-lista li { font-size: calc(1rem - 3px); }
/* Beviteli mezők (keresőmezők): a betűméret pontosan 17 px */
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field input[type=password], .field textarea { font-size: 17px; }
.fh-search .field select, .fh-search .field input[type=text] { font-size: 17px; }
.telepules-lista li { font-size: 17px; }
/* Minden beviteli mező betűmérete kerek 17 px (nem csak a .field-ben lévőké) */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=image]):not([type=range]), select, textarea, .field select, .field textarea, form select, form textarea { font-size: 17px; }
/* ===== Betűméretek és szövegszín egységesítése (asztali nézetben a megadott méretek; keskenyebb képernyőn arányosan kisebbek) ===== */
:root { --ink: #3b473b; --fh-cim: clamp(24px, 1rem + 1.2vw, 33px); --doboz-cim: clamp(22px, 1rem + .6vw, 28px); }
.main-nav a, .fh-cards .card h3 a { color: var(--ink); }
.fh-intro-text p, .fh-about .prose { color: var(--ink); }
/* Hero főcím: 52 px */
.fh-hero-title { font-size: clamp(1.7rem, 1.1rem + 2.1vw, 52px); }
/* Dobozfejlécek: 30 px (a két egymás melletti dobozban és az ügyfélkapu-kártyákon is) */
.panel > h1:first-child, .panel > h2:first-child, .filters > h2:first-child, .side-links > h3:first-child, .package > h3:first-child,
.fh-layout .fh-box > h2:first-child, .oldalsav .fh-box > h2:first-child, .ketto-doboz .panel > h2:first-child, .ugyfel-kartyak .panel > h2:first-child, .terkep-cim { font-size: var(--doboz-cim); }
/* Szállás neve: listanézet 26 px; kártyák, régiós és Kiemelt dobozok 22 px */
.hcard h2 { font-size: clamp(20px, 1rem + .5vw, 26px); }
.card h3, .card h3 a, .fh-cards .card h3, .fh-name { font-size: 22px; }
.kiemelt-lista .fh-name { font-size: 21px; }   /* a kiemelt hasáb szállásneve 1 px-szel kisebb (2026-11-04) */
/* Jellemzők (jelölőnégyzetek és az adatlap jellemzői): 19 px, normál vastagság */
.check, .kereso-jellemzok .check, .feature-grid div { font-size: 19px; font-weight: 400; }
/* Űrlapcímkék és adatlap-címkék (Cím, Telefon): 17 px, nagybetűs */
.field label, .fh-search .field label, .contact-card dt { font-size: 17px; text-transform: uppercase; }
/* Lábléc: oszlopcím 26 px, copyright 17 px */
.site-footer h4 { font-size: 26px; }
.site-footer .copyright, .site-footer .copyright span { font-size: 17px; }
/* Szállás neve a kártyákon, a Kiemelt ajánlatok dobozban és a főoldali dobozokban: márkazöld */
.card h3 a, .fh-cards .card h3 a, .fh-name, .kiemelt-lista .fh-name { color: var(--forest); }
/* Szállás neve a listanézetben is márkazöld */
.hcard h2, .hcard h2 a { color: var(--forest); }
/* Linkek egérrel fölé víve: #C2410C (a gombok, a logó, az aktuális menüpont és a kihagyó link kivételével – azok saját színt használnak) */
a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { color: #c2410c; text-decoration-color: currentColor; }
/* Főoldal, jobb oldali hasáb: a dobozcímek kisebbek (24 px) */
.fh-side .fh-box > h2:first-child { font-size: 22px; }
/* Főoldal: a Facebook-közösség szakasza doboz nélkül, a bemutatkozó résszel azonos stílusban */
.fh-fb-szakasz p { margin: 0 0 14px; font-size: 1rem; color: var(--ink); }
.fh-fb-szakasz .fh-divider { margin: 8px 0 18px; }
.fh-fb-szakasz .btn-row { margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 12px; }
/* Süti-sáv és a láblécbeli "Süti-beállítások" gomb */
.suti-sav { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 900; max-width: 920px; margin: 0 auto; padding: 16px 22px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 30px rgba(20,40,10,.22); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; font-size: 17px; }
.suti-sav[hidden] { display: none; }
.suti-sav p { margin: 0; flex: 1 1 420px; }
.suti-sav .suti-gombok { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 10px; }
.link-gomb { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin-left: 18px; text-decoration: underline; cursor: pointer; }
.link-gomb:hover { color: #c2410c; }
.site-footer .copyright { flex-wrap: wrap; gap: 4px 0; }
/* Településjavaslat-lista: a mezővel azonos háttér (a kiemelt sor kicsit sötétebb) */
.telepules-lista { background: var(--mezo-hatter); }
.telepules-lista li:hover, .telepules-lista li[aria-selected="true"] { background: #dfe3d8; color: var(--forest); }
/* Megrendelő űrlap: a kiválasztott csomag és a képfeltöltő mező háttere a beviteli mezőkével azonos */
.option:has(input:checked) { background: var(--mezo-hatter); }
.dropzone { background: var(--mezo-hatter); }
.order-form .dropzone:hover, .order-form .dropzone.over { background: #e3e6dc; }
/* Kedvencek: a keskenyebb főoszlopban a kártyák 3 oszlopban állnak (szélesebb nézetben), a jobb oldalon a Kiemelt ajánlatok hasáb */
.oldalsav-fo .grid-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 820px) { .oldalsav-fo .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .oldalsav-fo .grid-4 { grid-template-columns: minmax(0, 1fr); } }
/* Főoldal, jobb oldali dobozok: a képek újabb 8 px-szel nagyobbak (100 px széles) */
.fh-side .fh-box li { grid-template-columns: 100px 1fr; }
/* Főoldal, Keresés jellemzők szerint: a csempe háttere a dobozfejléc színe, az ikon zöld, a felirat a normál szöveg betűje */
.jellemzo-csempek a { background: var(--mezo-hatter); color: var(--ink); font-size: calc(1rem - 2px); font-weight: 400; }
.jellemzo-csempek a:hover { background: #fff; }
.csempe-ikon { background: var(--forest); }
/* Megrendelő űrlap: a csomagválasztó mellett az Alap csomag ajándékát bemutató doboz */
.csomag-sor { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 22px; align-items: start; margin-bottom: 22px; }
.csomag-sor .panel { margin-bottom: 0; }
.ajandek-doboz p { margin: 0 0 12px; }
.ajandek-doboz p:last-child { margin-bottom: 0; }
@media (max-width: 1000px) { .csomag-sor { grid-template-columns: minmax(0, 1fr); } }
/* Főoldal, Kiemelt ajánlatok: 3 oszlopban, 24 szállással */
.fh-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 820px) { .fh-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .fh-cards { grid-template-columns: minmax(0, 1fr); } }
/* Kártyák: a kép nem éri el a kártya szélét, 12 px belső tér veszi körül (lekerekített sarkokkal); a szív és a címke a képen belül marad */
.card .thumb { margin: 12px 12px 0; border-radius: 10px; }
.card .heart { top: 22px; right: 22px; }
.card .badge { top: 24px; left: 24px; }
.fh-cards .heart { top: 19px; right: 19px; }
.fh-cards .badge { top: 20px; left: 20px; }
/* Kártyák: alacsonyabb képek (16:10 a korábbi 4:3 helyett) */
.card .thumb { aspect-ratio: 16 / 10; }
/* Szállás-adatlap: a jellemzők ikonos csempékben a képek alatt; az Árak és a Programlehetőségek zöld kiscímmel a Bemutatkozás dobozban */
.adatlap-jellemzok { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.adatlap-jellemzo { flex: 1 1 118px; max-width: 170px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 12px 8px; background: var(--mezo-hatter); border: 1px solid var(--line); border-radius: 12px; text-align: center; color: var(--ink); font-size: calc(1rem - 2px); line-height: 1.2; }
.adatlap-jellemzo img { width: 40px; height: 40px; object-fit: contain; }
.adatlap-jellemzo .csempe-ikon { flex: none; }
.csempe-pipa { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--forest); color: #fff; font-size: 1.3rem; font-weight: 800; }
.panel h3.kiscim { margin: 22px 0 8px; color: var(--forest); font-family: var(--font); font-size: 1.2rem; font-weight: 800; letter-spacing: 0; }
/* Szállás-adatlap: az Elhelyezkedés doboz egészét a térkép tölti ki (a fejléc alatt a doboz széléig és aljáig); térkép nélkül a Kapcsolat doboz teljes szélességű */
.terkep-doboz { display: flex; flex-direction: column; padding-bottom: 0; overflow: hidden; }
.terkep-doboz > h2:first-child { margin-bottom: 0; }
.terkep-doboz .mapbox { flex: 1 1 auto; min-height: 280px; margin: 0 calc(-1 * var(--px)); border-radius: 0; }
.ketto-doboz > :only-child { grid-column: 1 / -1; }
/* Főoldal, hero keresődoboz: a többi dobozzal azonos fejléc ("Hova mennél?"); a mező fölötti "Hol keres?" felirat helyette elmarad */
.fh-search { --px: 22px; --py: 20px; }
.fh-search > .fh-search-cim { margin: calc(-1 * var(--py)) calc(-1 * var(--px)) 18px; padding: 14px var(--px); background: var(--doboz-fej); border-radius: 14px 14px 0 0; font-family: var(--serif); font-size: var(--doboz-cim); font-weight: 400; line-height: 1.25; letter-spacing: 0; color: var(--forest); text-align: left; }
.fh-search .terulet-felirat { display: none; }
/* Főoldal: a Keresés a térképen doboz a saját (alacsonyabb) magasságában áll, alatta a Facebook-doboz; mellette a jellemző-csempék */
.fh-ketto-bal { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.fh-ketto-bal .terkep-box { flex: none; }
.fh-ketto-bal > .fh-fb-szakasz { flex: 1 1 auto; padding: 0; margin: 0; }

/* Térképes kereső: a jelölőre kattintva megjelenő szálláshely-doboz a főoldali keresődoboz mintájára (sárga fejlécsáv + fehér törzs) */
.terkep-popup .leaflet-popup-content-wrapper { padding: 0; border-radius: var(--radius); overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.terkep-popup .leaflet-popup-content { margin: 0; font-family: var(--font); font-size: calc(1rem - 2px); line-height: 1.4; min-width: 0; }
.terkep-popup .terkep-popup-fej { background: var(--doboz-fej); color: var(--forest); font-family: var(--serif); font-size: 1.1rem; line-height: 1.25; padding: 12px 44px 12px 16px; }
.terkep-popup .terkep-popup-torzs { padding: 14px 16px 16px; }
.terkep-popup .terkep-popup-kep { display: block; margin-bottom: 12px; }
.terkep-popup .terkep-popup-kep img { display: block; margin: 0; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px; }
.terkep-popup .terkep-popup-hely { margin: 0 0 14px; color: var(--ink); }
.leaflet-container .terkep-popup a.btn { color: #fff; }
.leaflet-container .terkep-popup a.leaflet-popup-close-button { top: 10px; right: 10px; width: 28px; height: 28px; font-size: 26px; line-height: 26px; color: var(--forest); background: none; border-radius: 0; box-shadow: none; text-align: center; }
.leaflet-container .terkep-popup a.leaflet-popup-close-button:hover { color: #c2410c; background: none; }
.terkep-popup .leaflet-popup-content-wrapper { text-align: left; }
/* a felugró ablak gombjai: „Megnézem” + kerek szív-gomb (kedvencekhez adás, ugyanaz a .heart, mint a listákon) */
.terkep-popup .terkep-popup-gombok { display: flex; align-items: center; gap: 10px; }
.terkep-popup .heart.heart-popup { position: static; flex: none; width: 40px; height: 40px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--forest); }
.terkep-popup .heart.heart-popup:hover { transform: none; background: var(--yellow); box-shadow: inset 0 0 0 1.5px var(--yellow); }
/* Főoldal, Keresés jellemzők szerint: a csempék felirata egy picit kisebb (17 px) */
.jellemzo-csempek a { font-size: 17px; }
/* Kártyák: a település és a megye neve 1 px-szel kisebb, kicsit kisebb sorközzel */
.card .loc { font-size: calc(.92rem - 1px); line-height: 1.4; }
.fh-cards .card .loc { font-size: calc(.88rem - 1px); }
/* Kártyák (főoldal, kártyás lista, Kedvencek): a település és a megye neve 17,5 px, 23 px sormagasság */
.card .loc, .fh-cards .card .loc { font-size: 17.5px; line-height: 23px; }
/* Kártyákon a szálláshely neve 23 px, 25 px sormagassággal (a Kiemelt hasáb és a régiós dobozok nevei 22 px maradnak) */
.card h3, .card h3 a, .fh-cards .card h3 { font-size: 23px; line-height: 25px; }
/* Kiemelt ajánlatok hasáb: a név sormagassága 26 px; a település neve 17,5 px, 23 px sormagassággal */
.kiemelt-lista .fh-name { line-height: 26px; }
.kiemelt-lista li span { font-size: 17.5px; line-height: 23px; }
/* Kártyák jellemző-ikonjai: zöld ikon sárga körben, a korábbinál nagyobb */
.feat { gap: 8px; min-height: 36px; }
.feat-ikon { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--yellow); display: inline-grid; place-items: center; }
.feat-ikon i { display: block; width: 21px; height: 21px; background: var(--forest); -webkit-mask: var(--ikon) center / contain no-repeat; mask: var(--ikon) center / contain no-repeat; }
.feat-ikon img.szep { width: 24px; height: 24px; object-fit: contain; opacity: 1; }
/* Kártyák: a belső tér 1 px-szel nagyobb (kép körül 13 px, szöveg körül 15/17/17 px); a szív és a címke a képen belül marad */
.card .thumb { margin: 13px 13px 0; }
.card .body, .fh-cards .card .body { padding: 15px 17px 17px; }
.card .heart { top: 23px; right: 23px; }
.card .badge { top: 25px; left: 25px; }
.fh-cards .heart { top: 20px; right: 20px; }
.fh-cards .badge { top: 21px; left: 21px; }
/* Hero: a főcím és a leírás 30 px-szel feljebb áll; a keresődoboz és a videó a helyén marad (csak vizuális eltolás) */
.fh-hero-title, .fh-hero-lead { transform: translateY(-30px); }
/* Főoldal, jobb oldali régiós dobozok: a szálláshely neve és a település neve 1 px-szel kisebb */
.fh-side .fh-box .fh-name { font-size: 21px; }
.fh-side .fh-box li span { font-size: calc(.86rem - 1px); }
/* Főoldal, jobb oldali régiós dobozok: az oldalsó belső tér 1 px-szel, a felső és az alsó 2 px-szel kisebb (a fejlécsáv a dobozszélig ér) */
.fh-side .fh-box { --px: 18px; --py: 12px; padding: 12px 18px 6px; }
.fh-side .fh-box > h2:first-child { margin-bottom: 0; }   /* a felső tér a fejlécsáv és az első szállás között: 12 px (az első sor saját belső tere) */
/* Főoldal, jobb oldali régiós dobozok: a szálláshely neve normál vastagságú */
.fh-side .fh-box .fh-name { font-weight: 400; }
/* Főoldal, Keresés a térképen és Keresés jellemzők szerint: a bal és jobb oldali belső tér 4 px-szel kisebb (28 px helyett 24 px) */
@media (min-width: 561px) {
  .terkep-fejlec, .fh-ketto .terkep-fejlec { padding-left: 24px; padding-right: 24px; }
  .jellemzo-csempek { padding-left: 24px; padding-right: 24px; }
  .terkep { width: calc(100% - 48px); }
}
/* Szállás-adatlap, jellemző-csempék: kisebb felirat (17 px) és keskenyebb csempe (legfeljebb 140 px) */
.adatlap-jellemzo { flex: 1 1 100px; max-width: 140px; font-size: 17px; }
/* Főoldal, Hova mennél? kapszulagombjai: ugyanakkorák, mint a Keresés a térképen fülei */
.fh-search .terulet-fulek { gap: 8px; }
.fh-search .terulet-fulek button { padding: 6px 16px; font-size: .88rem; }
/* A főoldali kapszulagombok (Hova mennél? és Keresés a térképen) belső tere 1 px-szel kisebb: 5 / 15 px */
.fh-search .terulet-fulek button, .terkep-fulek button { padding: 5px 15px; }
/* Összetett keresés: a helyszín-fülek kapszulagombjai ugyanakkorák, mint a főoldali dobozokban (5 / 15 px belső tér, .88rem betű) */
.terulet-fulek { gap: 8px; }
.terulet-fulek button { padding: 5px 15px; font-size: .88rem; }
/* Keresőoldalak: a keresődoboz szélesebb (széles képernyőn 480 px, keskenyebben fokozatosan a korábbi 400 px-ig), így a helyszín-fülek egy sorba férnek */
.layout-list { grid-template-columns: clamp(400px, 32vw, 480px) minmax(0, 1fr); }
@media (max-width: 1150px) { .layout-list { grid-template-columns: 1fr; } }   /* a korábbi egyoszlopos elrendezés töréspontja */
/* Kapszulagombok (Hova mennél?, Keresés a térképen, összetett keresés fülei): a felirat normál vastagságú */
.terulet-fulek button, .terkep-fulek button { font-weight: 400; }
/* Kapszulagombok közti hézag 6 px (2 px-szel kisebb) mindenhol; a keresődoboz 20 px-szel keskenyebb (széles képernyőn 460 px) */
.terulet-fulek, .fh-search .terulet-fulek, .terkep-fulek { gap: 6px; }
.layout-list { grid-template-columns: clamp(384px, calc(32vw - 16px), 464px) minmax(0, 1fr); }
@media (max-width: 1150px) { .layout-list { grid-template-columns: 1fr; } }
/* Fejléc: a felső sáv felső és alsó belső tere 18 px (a magasságot ez és a logó adja, nincs külön minimum) */
.top-bar .wrap { min-height: 0; padding-top: 18px; padding-bottom: 18px; }
/* Fejléc: felső-alsó belső tér 24 px; a logó alatti webcím 1 px-szel nagyobb, 6 px felső eltartással */
.top-bar .wrap { padding-top: 24px; padding-bottom: 24px; }
.brand-text small { font-size: calc(.92rem + 1px); margin-top: 6px; }
@media (max-width: 820px) { .brand-text small { font-size: calc(.78rem + 1px); } }
/* Hero: a sötétítés 5 százalékponttal kisebb (a három színmegálló átlátszatlansága 62/35/20 %-ról 57/30/15 %-ra) */
.fh-hero::before { background: linear-gradient(90deg, rgba(14,38,8,.50) 0%, rgba(14,38,8,.30) 55%, rgba(14,38,8,.18) 100%); }
/* Belső oldalak (a főoldal kivételével): a tartalom felső belső tere 10 px-szel nagyobb (28 px helyett 38 px) */
body:not(.home) main { padding-top: 38px; }
/* Főoldal: a hero alatti rész (térképes és jellemzős doboz) fölötti tér 10 px-szel nagyobb (38 px helyett 48 px) */
.fh-layout { padding-top: 48px; }
/* Dobozok és kártyák közti függőleges távolság 4 px-szel nagyobb mindenhol (a vízszintes hézagok változatlanok) */
.panel { margin-bottom: var(--dobozkoz, 26px); }
.order-form .panel { margin-bottom: var(--dobozkoz, 26px); }
.csomag-sor { margin-bottom: 26px; row-gap: 26px; }
.csomag-sor .panel, .ketto-doboz .panel, .ugyfel-kartyak .panel { margin-bottom: 0; }
.ketto-doboz { margin-bottom: 24px; row-gap: 24px; }
.ugyfel-kartyak { row-gap: 24px; }
.fh-cards { row-gap: 24px; }
.kartya-racs, .grid { row-gap: 26px; }
.hcard { margin-bottom: 22px; }
.fh-side { row-gap: 26px; }
.fh-ketto, .fh-ketto-bal { row-gap: 28px; }
/* Ügyfélkapu: csomag, díjbekérők, számlázás és üzenetek */
.csomag-lista { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.csomag-lista .tag { margin-right: 6px; }
.csomag-urlap .option { margin-bottom: 12px; }
.csomag-urlap .opt-price small { font-weight: 400; color: var(--muted); }
.rendeles-sor { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 14px 0; border-top: 1px solid var(--line); }
.rendeles-sor:first-of-type { border-top: 0; }
.rendeles-muveletek { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rendeles-muveletek form { margin: 0; }
.uzenet-adatok { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px 24px; margin: 0 0 14px; }
.uzenet-adatok dt { font-size: 17px; text-transform: uppercase; color: var(--muted); font-weight: 800; }
.uzenet-adatok dd { margin: 0; word-break: break-word; }
.uzenet-szoveg { margin: 0; }
.lapozo { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 20px 0; }
/* Ügyfélkapu: a fejlécben a belépett felhasználó, a szálláshely és a Kilépés gomb; a főmenü helyén az ügyfélkapu menüpontjai; az oldal főcíme az aktuális menüpont neve */
.top-ugyfel { display: flex; align-items: center; gap: 14px; }
.top-ugyfel-adat { display: flex; flex-direction: column; align-items: flex-end; text-align: right; line-height: 1.25; }
.top-ugyfel-adat strong { font-weight: 800; color: #fff; }
.top-ugyfel-adat small { font-size: calc(1rem - 2px); color: #dcecc6; }
.top-ugyfel form { margin: 0; }
.top-ugyfel .btn { color: #fff; background: transparent; box-shadow: inset 0 0 0 1px rgba(255,255,255,.75); }
.top-ugyfel .btn:hover { background: rgba(255,255,255,.18); color: #fff; }
.ugyfel-oldalcim { margin: 0 0 20px; }
@media (max-width: 820px) { .top-ugyfel-adat small { display: none; } }
@media (max-width: 560px) { .top-ugyfel-adat { display: none; } }
/* Fejléc és lábléc: a színátmenet kezdő színe #446d1c, a végszíne #669228 */
.top-bar, .site-footer { background: linear-gradient(90deg, #446d1c 0%, #669228 100%); }
/* Szálláshely neve a kártyákon: a betűszín a korábbi hover-szín (narancsvörös), egérrel fölé víve a korábbi betűszín (márkazöld) */
.card h3 a, .fh-cards .card h3 a { color: var(--forest); }
.card h3 a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { color: #c2410c; }
/* Jellemző-ikonok (kártyák, listanézet, összetett keresés): fehér ikon zöld körben; a színes SZÉP-kártya képe fehér korongon */
.feat-ikon { background: var(--forest); }
.feat-ikon i { background: #fff; }
.feat-ikon img.szep { width: 28px; height: 28px; padding: 3px; box-sizing: border-box; background: #fff; border-radius: 50%; object-fit: contain; }
/* Jellemző-ikonok: az ikon a weblap sárgája (#FDC703) a zöld körben */
.feat-ikon i { background: var(--yellow); }
/* Jellemző-ikonok: a kör háttere a településnevek szürkéje (--muted, #5A675A), az ikon fehér */
.feat-ikon { background: var(--muted); }
.feat-ikon i { background: #fff; }
/* Jellemző-ikonok (próba): a kör háttere a beviteli mezőké (--mezo-hatter), az ikon a beviteli mezők betűszíne (--ink) */
.feat-ikon { background: var(--mezo-hatter); }
.feat-ikon i { background: var(--ink); }
/* Jellemző-ikonok: az ikon a márkazöld (#446d1c) a beviteli mezők világoszöld hátterű körében */
.feat-ikon i { background: var(--forest); }
/* Jellemző-ikonok: nagyobb kör (42 px) és ikon (25 px, tehát nagyobb belső tér); kisebb hézag az ikonok között (kártyákon 6 px; az összetett keresésben a sorok és az ikon-felirat közti tér is szűkebb) */
.feat { gap: 6px; min-height: 42px; }
.feat-ikon { width: 42px; height: 42px; }
.feat-ikon i { width: 25px; height: 25px; }
.feat-ikon img.szep { width: 32px; height: 32px; }
.kereso-jellemzok .check { gap: 6px; padding: 3px 0; }
/* Listanézet: a szálláshely neve ugyanolyan színű, mint a kártyákon (narancsvörös; egérrel fölé víve márkazöld) */
.hcard h2, .hcard h2 a { color: var(--forest); }
.hcard h2 a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { color: #c2410c; }
/* Főoldal, jobb oldali régiós dobozok: a fejléc betűmérete 1 px-szel nagyobb (23 px) */
.fh-side .fh-box > h2:first-child { font-size: 23px; }
/* ===== Gombok egységesen a teljes weblapon =====
   Méret: minden gombnak egyforma a magassága, a betűje és a belső tere (csak a hosszuk változik).
   Szín: az űrlapok gombjai (küldés, mentés, keresés...) téglavörösek; a többi, továbblépő jellegű gomb (linkek: részletek, megnyitás,
   tovább...) zöld hátterű, sárga betűs; a másodlagos műveletek (kijelölés, törlés, lapozó) körvonalasak maradnak. */
.btn, .fh-btn, .fh-search-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; height: auto; padding: 10px 22px; font-size: 17px; font-weight: 800; line-height: 1.25; letter-spacing: 0; text-transform: none; border-radius: 10px; }
.btn-block { width: 100%; }
.kep-muveletek .btn { padding-left: 14px; padding-right: 14px; }
/* űrlap-gombok: téglavörös */
button.btn-primary, button.btn-green, .fh-search-btn { background: var(--cta); color: #fff; box-shadow: none; }
button.btn-primary:hover, button.btn-green:hover, .fh-search-btn:hover { background: var(--cta-dark); color: #fff; }
/* továbblépő gombok: zöld háttér, sárga betű */
a.btn-primary, a.btn-green, span.btn-green, a.btn-outline, .fh-btn { background: var(--forest); color: var(--yellow); box-shadow: none; }
a.btn-primary:hover, a.btn-green:hover, a.btn-outline:hover, .fh-btn:hover { background: var(--green-800); color: var(--yellow); }
/* a lapozó gombjai körvonalasak maradnak */
.pagination a.btn-outline, .lapozo a.btn-outline { background: transparent; color: var(--forest); box-shadow: inset 0 0 0 1px var(--forest); }
.pagination a.btn-outline:hover, .lapozo a.btn-outline:hover { background: var(--forest); color: #fff; }
/* Továbblépő ("bővebben") gombok: fehér, vékonyabb betű, a felirat után kis nyíl (a lapozó és az aktuális oldal jelölője nyíl nélkül) */
a.btn-primary, a.btn-green, span.btn-green, a.btn-outline, .fh-btn { color: #fff; font-weight: 600; }
a.btn-primary:hover, a.btn-green:hover, a.btn-outline:hover, .fh-btn:hover { color: #fff; }
a.btn-primary::after, a.btn-green::after, a.btn-outline::after, .fh-btn::after { content: ""; flex: none; width: 1.05em; height: 1.05em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.pagination a.btn-outline::after, .lapozo a.btn-outline::after { content: none; }
/* Továbblépő gombok nyila: kis áttetsző korongban álló nyíl, egérrel fölé víve kicsit jobbra csúszik */
a.btn-primary::after, a.btn-green::after, a.btn-outline::after, .fh-btn::after { width: 24px; height: 24px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23fff' fill-opacity='.22'/%3E%3Cpath d='M7 12h9.500M12.500 7.500 17 12l-4.500 4.500' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; -webkit-mask: none; mask: none; transition: transform .15s ease; }
a.btn-primary:hover::after, a.btn-green:hover::after, a.btn-outline:hover::after, .fh-btn:hover::after { transform: translateX(3px); }
.pagination a.btn-outline::after, .lapozo a.btn-outline::after { content: none; }
/* A nyíl korongja sárga (#FDC703), a nyíl márkazöld, hogy olvasható maradjon */
a.btn-primary::after, a.btn-green::after, a.btn-outline::after, .fh-btn::after { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23fdc703'/%3E%3Cpath d='M7 12h9.500M12.500 7.500 17 12l-4.500 4.500' fill='none' stroke='%23446d1c' stroke-width='2.200' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.pagination a.btn-outline::after, .lapozo a.btn-outline::after { content: none; }
/* Gombok belső tere: oldalt 1 px-szel kisebb (21 px), fent és lent 1 px-szel nagyobb (11 px); a minimális magasság ennek megfelelően 46 px */
.btn, .fh-btn, .fh-search-btn { padding: 11px 21px; min-height: 46px; }
.kep-muveletek .btn { padding-left: 13px; padding-right: 13px; }
/* Űrlap-gombok (téglavörösek): a felirat csupa nagybetűs */
button.btn-primary, button.btn-green, .fh-search-btn { text-transform: uppercase; letter-spacing: .03em; }
/* A logó alatti felirat (a webcím, illetve az ügyfélkapuban az "Adminisztrációs felület") fehér */
.brand-text small { color: #fff; }
/* Logó asztali nézetben egy picit kisebb (44 px magas az eddigi 47 px helyett); keskenyebb nézetben a korábbi méretek maradnak */
@media (min-width: 1151px) { .brand-text img { height: 44px; } }
/* A "Keresés módosítása" gomb csak ott kell, ahol a keresődoboz alapból el van rejtve (1150 px alatt); asztali nézetben nem jelenik meg
   (az egységes gombméret szabálya korábban véletlenül mindenhol láthatóvá tette) */
.btn.filter-toggle { display: none; }
@media (max-width: 1150px) { .btn.filter-toggle { display: inline-flex; } }
/* Lista / Kártyák váltó: sárga, kicsit nagyobb ikonok; a felirat vékonyabb és akkora, mint a továbblépő gomboké (17 px / 600) */
.nezet-valto a { font-size: 17px; font-weight: 600; }
.nezet-valto a svg { width: 19px; height: 19px; fill: var(--yellow); }
/* Lista / Kártyák váltó: az ikon az aktív (zöld hátterű) gombon sárga, a fehér hátterűn márkazöld */
.nezet-valto a svg { fill: var(--forest); }
.nezet-valto a[aria-current="true"] svg { fill: var(--yellow); }
/* Főoldal, jobb oldali régiós dobozok: az alsó link "bővebben" gomb (zöld háttér, fehér betű, sárga nyíl); a nyilat a gomb stílusa adja */
.fh-side .fh-more-gomb { margin: 8px 0 14px; }
/* Menüsor: a Nyitólap házikója és a Kedvencek szivecskéje nagyobb (23 px, korábban 17 px) */
.main-nav a svg { width: 23px; height: 23px; }
/* Kedvencek-számláló: a szám a körben függőlegesen is középen áll (a sormagasság nem lóghat ki a körből) */
.fav-count { line-height: 1; padding: 0 6px; }.fav-count { padding: 1px 6px 0; }
/* Kedvencek-számláló: a kör 2 px-szel nagyobb (24 px) */
.fav-count { min-width: 24px; height: 24px; }
/* Szálláshely-kártyák: a vendégház neve 1 px-szel nagyobb (24 px; a sormagasság 25 px marad) */
.card h3, .card h3 a, .fh-cards .card h3 { font-size: 24px; }
/* Kapcsolat (impresszum) oldal: adatok címke–érték párokban */
.kapcsolat-adatok { display: grid; gap: 12px; margin: 0 0 16px; }
.kapcsolat-adatok dt { font-size: 17px; font-weight: 800; text-transform: uppercase; color: var(--muted); }
.kapcsolat-adatok dd { margin: 0; font-weight: 700; word-break: break-word; }
.panel .prose > p:last-child { margin-bottom: 0; }
/* Kapszulagombok (Régió, Megye, Tájegység, Település / Régiók, Megyék, Tájegységek): egyforma stílus és méret a weblap minden részén */
.terulet-fulek button, .fh-search .terulet-fulek button, .terkep-fulek button { padding: 5px 15px; font-size: .88rem; font-weight: 400; line-height: 1.6; border: 1px solid #dfe7d2; border-radius: 999px; background: var(--mezo-hatter); color: var(--ink); }
.terulet-fulek button:hover, .fh-search .terulet-fulek button:hover, .terkep-fulek button:hover { background: var(--mezo-hatter); border-color: var(--green-500); }
.terulet-fulek button[aria-selected="true"], .fh-search .terulet-fulek button[aria-selected="true"], .terkep-fulek button[aria-selected="true"],
.terulet-fulek button[aria-selected="true"]:hover, .fh-search .terulet-fulek button[aria-selected="true"]:hover, .terkep-fulek button[aria-selected="true"]:hover { background: var(--forest); border-color: var(--forest); color: #fff; }
/* Címkék mindenhol márkazöldek: űrlapcímkék, adatlap- és kapcsolati adatok címkéi (Cím, Telefon...), a "Hol keres?" felirat, a jelölőcsoportok címe */
.field label, .fh-search .field label, .terulet-felirat, .fh-search .terulet-felirat, .terulet-cimke, dt, .features legend { color: var(--forest); }.contact-card dt, .kapcsolat-adatok dt, .uzenet-adatok dt { color: var(--forest); }
/* Összetett keresés: az "Elhelyezkedés" és "A szállás jellemzői" felirat az űrlapcímkék stílusában (17 px, vastag, nagybetűs, márkazöld) */
.terulet-felirat, .kereso-alcim { font-family: var(--font); font-size: 17px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--forest); }
.terulet-felirat { margin-bottom: 4px; }
/* Találati fejléc: a Lista/Kártyák váltó a főcímmel egy vonalban (felül), nem a mellette lévő alsó sorral; a Kiemelt ajánlatok fejlécében is */
.results-head { align-items: flex-start; }
.results-head h2.fh-heading { margin: 0; }
/* Beviteli mezők: a függőleges belső tér 1 px-szel kisebb (11 → 10 px) */
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field input[type=password], .field textarea,
.fh-search .field select, .fh-search .field input[type=text] { padding-top: 10px; padding-bottom: 10px; }
.field select, .field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=search], .field input[type=password] { min-height: 44px; }
.fh-search .field select, .fh-search .field input[type=text] { min-height: 46px; }

/* Ugrás a lap tetejére: csak ikon, jobb alul; görgetés után magától megjelenik (az assets/js/site.js adja hozzá a .latszik osztályt) */
.lap-tetejere { position: fixed; right: 24px; bottom: 24px; z-index: 800; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--forest); box-shadow: 0 4px 14px rgba(20,40,10,.3); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .25s, transform .25s, visibility .25s, background-color .15s; }
.lap-tetejere[hidden] { display: none; }
.lap-tetejere.latszik { opacity: 1; visibility: visible; transform: none; }
.lap-tetejere svg { width: 26px; height: 26px; fill: none; stroke: var(--yellow); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.lap-tetejere:hover { background: var(--green-800); }
.lap-tetejere:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
@media (max-width: 600px) { .lap-tetejere { right: 14px; bottom: 14px; width: 46px; height: 46px; } }

/* Lista nézet: az álló képek ne nyújtsák meg a sort – a kép kitölti a keretet (levágva), a sor magasságát a szöveg és a minimum adja */
.hcard .thumb { position: relative; }
.hcard .thumb > img, .hcard .thumb picture { position: absolute; inset: 0; width: 100%; height: 100%; }
.hcard .thumb picture img { width: 100%; height: 100%; object-fit: cover; }

/* Szállás adatlap: a név, a képek és a jellemzők közös fehér dobozban (nincs sárga fejléc-sáv, az első elem a címsor) */
.adatlap-fej .title-row { margin: 0 0 20px; }
.adatlap-fej .gallery { margin-bottom: 20px; }
.adatlap-fej .adatlap-jellemzok { margin-bottom: 0; }
.adatlap-fej > :last-child { margin-bottom: 0; }

/* Adatlap fejléc-doboz: az Érdeklődés gomb a Kedvencekhez mellett, a nyitvatartás és az NTAK-szám a helyszín alatt */
.title-gombok { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.title-row .fej-adat { margin: 6px 0 0; color: var(--muted); font-size: 17px; }
.title-row .fej-adat strong { color: var(--ink); font-weight: 700; }

/* Adatlap: a Bemutatkozás doboz nélkül, a lap hátterén áll (a kiscímek zöldek maradnak) */
.bemutatkozas { margin: 0 0 24px; }
.bemutatkozas > .fh-heading { margin: 0 0 12px; }
.bemutatkozas h3.kiscim { margin: 22px 0 8px; color: var(--forest); font-family: var(--font); font-size: 1.2rem; font-weight: 800; letter-spacing: 0; }
.bemutatkozas .prose > :last-child { margin-bottom: 0; }
.bemutatkozas { padding: 0; }

/* Adatlap: kétoszlopos rács, soronként: Bemutatkozás | jellemzők + programlehetőségek; Kapcsolat | árak; további képek | üzenetküldő űrlap.
   Két egyenlő (50%-os) hasáb minden sorban: a bal oldali elem .racs-bal / .racs-fel-bal, a jobb oldali .racs-jobb / .racs-fel-jobb (a két név ugyanazt jelenti, a forrásban a sorokat jelölik).
   A hiányzó elemek nem hagynak üres helyet maguk után; keskeny nézetben egymás alatt, a DOM sorrendjében. */
.adatlap-racs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; align-items: start; margin-bottom: 24px; }
.adatlap-racs > .racs-bal, .adatlap-racs > .racs-fel-bal { grid-column: 1; }
.adatlap-racs > .racs-jobb, .adatlap-racs > .racs-fel-jobb { grid-column: 2; }
.adatlap-racs > *, .adatlap-racs .bemutatkozas, .adatlap-racs .panel { margin-bottom: 0; }
.adatlap-racs .contact-card > h2:first-child, .adatlap-racs #urlap > h2:first-child { font-size: var(--doboz-cim); }
.adatlap-racs #urlap .form-grid { grid-template-columns: minmax(0, 1fr); }
.adatlap-szoveg h3.kiscim { margin-top: 0; }
/* Asztali nézetben a sorokban a szöveg a jobb oldalon áll: jellemzők | Bemutatkozás; Kapcsolat | Árak, feltételek; üzenetküldő űrlap | Programlehetőségek.
   Keskeny nézetben a forrás sorrendje érvényes (Bemutatkozás, jellemzők, Árak, Kapcsolat, Programlehetőségek, űrlap); asztalon az order rakja a bal oldali elemet a jobb elé. */
@media (min-width: 901px) {
  .adatlap-racs > .bemutatkozas-oldal { order: 1; }
  .adatlap-racs > .bem-szoveg { order: 2; }
  .adatlap-racs > .kapcsolat-doboz { order: 3; }
  .adatlap-racs > .arak-doboz { order: 4; }
  .adatlap-racs > #urlap { order: 5; }
  .adatlap-racs > .programok-szoveg { order: 6; }
}

/* Szálláshely adatlap: a régió, a megye és a település linkje halványzöld kapszulagomb (szallas.php, a név alatt; utána az utca) */
.title-row .hely-sor { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 0; }
.title-row .hely-sor a.hely-kapszula { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--mezo-hatter); color: var(--forest); font-size: calc(1rem - 1px); font-weight: 400; text-decoration: none; white-space: nowrap; }
.title-row .hely-sor a.hely-kapszula:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { background: var(--yellow); color: #304d14; text-decoration: none; }
/* Összetett keresés (/kereses, paraméterek nélkül; a .kereso-oldal az űrlap burkolója): a keresőűrlap 1001–1150 px között még a bal oldali oszlopban áll (nem teljes szélességű), csak 1000 px alatt kerül a kiemeltek fölé / teljes szélességre (2026-11-04) */
@media (min-width: 1001px) and (max-width: 1150px) {
  .layout-list:has(.kereso-oldal) { grid-template-columns: clamp(384px, calc(32vw - 16px), 464px) minmax(0, 1fr); }
  .layout-list:has(.kereso-oldal) aside { display: block; }
  .layout-list:has(.kereso-oldal) .kartya-racs { grid-template-columns: repeat(2, minmax(0, 1fr)); }   /* a jobb oldali oszlop ilyenkor keskeny: 2 hasábos kártyák */
}

/* Kedvencek oldal: üzenet több kedvenc szálláshelynek (kártya-jelölő és űrlap-doboz; assets/js/site.js) */
.fav-uzenet-jelolo { position: relative; z-index: 4; display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: var(--mezo-hatter); color: var(--forest); font-weight: 700; cursor: pointer; min-height: 44px; }
.fav-uzenet-jelolo input { width: 22px; height: 22px; flex: none; accent-color: var(--forest); cursor: pointer; }
.fav-uzenet-jelolo:has(input:disabled) { opacity: .55; cursor: not-allowed; }
.fav-uzenet-jelolo:has(input:disabled) input { cursor: not-allowed; }
.fav-uzenet-jelolo:has(input:checked) { background: var(--yellow); color: #304d14; }
.fav-uzenet-nincs { margin: 12px 0 0; color: var(--muted); font-size: 14px; }
.fav-uzenet { margin-top: 28px; }
.fav-uzenet[hidden] { display: none; }
.fav-uzenet-szamlalo { margin: 0 0 14px; font-weight: 700; color: var(--forest); }

/* Megyeoldal: „Szűkítés településre” sor a lista tetején (rendszer/weblap/lista.php) */
/* A települések egy sorban, halványzöld kapszulákon; sok település esetén a sor görgethető, a szélén nyilakkal (assets/js/karuszel.js) */
.telepules-szukites { margin: 0 0 18px; padding: 10px 14px 12px; background: #fff; border: 1px solid #e3e9da; border-radius: 12px; line-height: 1.5; }
.telepules-szukites strong { display: block; margin-bottom: 6px; color: var(--forest); font-size: 15px; }
.layout-list > .results { min-width: 0; }   /* a rács-elem ne nyúljon a görgethető sor teljes szélességére */
.tsz-sor { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tsz-lista { flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: nowrap; gap: 8px; margin: 0; padding: 2px 0; list-style: none; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.tsz-lista::-webkit-scrollbar { display: none; }
.tsz-lista li { flex: none; scroll-snap-align: start; }
.tsz-lista li a { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 15px; border-radius: 999px; background: #eaefe4; color: var(--forest); font-size: calc(1rem - 1px); font-weight: 400; white-space: nowrap; text-decoration: none; }
.tsz-lista li a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { background: var(--yellow); color: #304d14; }
.tsz-lista .telepules-db { min-width: 22px; padding: 1px 7px; border-radius: 999px; background: #fff; color: var(--forest); font-size: 14px; font-weight: 400; line-height: 1.4; text-align: center; }
.tsz-nyil { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--forest); color: var(--yellow); cursor: pointer; }
.tsz-nyil[hidden] { display: none; }
.tsz-nyil:hover { background: var(--yellow); color: #304d14; }

/* Mini szövegszerkesztő az adatlap hosszú szövegeihez (assets/js/szoveg_szerkeszto.js; ügyfélkapu és admin) */
.szerk { border: 1px solid #c9d3bb; border-radius: 10px; background: var(--mezo-hatter); overflow: hidden; }
.szerk:focus-within { border-color: var(--green-500); box-shadow: 0 0 0 4px rgba(102,146,40,.25); }
.szerk-sav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; background: #fff; border-bottom: 1px solid #dfe7d6; }
.szerk-gomb { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 40px; padding: 0 12px; border: 1.5px solid var(--forest); border-radius: 10px; background: #fff; color: var(--forest); font: inherit; font-size: 16px; font-weight: 800; line-height: 1; cursor: pointer; }
.szerk-gomb b { font-size: 18px; font-family: var(--serif); }
.szerk-gomb:hover { background: var(--yellow); border-color: var(--yellow); color: #304d14; }
.szerk-gomb[aria-pressed="true"] { background: var(--forest); border-color: var(--forest); color: var(--yellow); }
.szerk-tipp { flex: 1 1 200px; min-width: 0; color: #5a675a; font-size: 14px; }
.szerk-linksor { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px; background: #fffbe6; border-bottom: 1px solid #dfe7d6; }
.szerk-linksor[hidden], .szerk-linksor [hidden] { display: none; }
.szerk-linksor label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex: 1 1 260px; font-weight: 700; }
.szerk-linksor .szerk-linkmezo { flex: 1 1 200px; min-width: 0; border: 1px solid #c9d3bb; border-radius: 10px; padding: 9px 12px; background: #fff; font: inherit; font-size: 16px; }
.szerk-hiba { flex: 1 1 100%; color: #c2410c; font-size: 14px; font-weight: 700; }
.szerk-terulet { padding: 12px 14px; overflow: auto; resize: vertical; outline: none; line-height: 1.55; background: var(--mezo-hatter); }
.szerk-terulet a { color: var(--forest); text-decoration: underline; }
.szerk-terulet > :first-child { margin-top: 0; }
@media (max-width: 560px) { .szerk-tipp { display: none; } }
.adatlap-jellemzo-doboz .adatlap-jellemzok { margin-bottom: 0; gap: 10px; }
.adatlap-jellemzo-doboz .adatlap-jellemzo { flex: 1 1 110px; max-width: none; }
@media (max-width: 900px) { .adatlap-racs { grid-template-columns: minmax(0, 1fr); gap: 24px; } .adatlap-racs > .racs-bal, .adatlap-racs > .racs-jobb, .adatlap-racs > .racs-fel-bal, .adatlap-racs > .racs-fel-jobb { grid-column: 1; } }
.adatlap-jellemzo-doboz .adatlap-jellemzok { display: grid; grid-template-columns: repeat(auto-fill, minmax(108px, 1fr)); }
.adatlap-jellemzo-doboz .adatlap-jellemzo { max-width: none; flex: none; }

/* Adatlap: a hosszú szövegek (bemutatkozás, árak, programlehetőségek) összecsukva kezdődnek, a „Tovább olvasom” gombbal nyílnak le (assets/js/site.js).
   Az összecsukott magasságot a JS állítja (max-height), itt az áttűnés és az alsó elhalványítás van. JavaScript nélkül nincs .osszecsukva osztály, a szöveg teljes. */
.hosszu-torzs { position: relative; overflow: hidden; }
.hosszu-szoveg.osszecsukva .hosszu-torzs { transition: max-height .45s ease; }
.hosszu-szoveg.osszecsukva:not(.nyitva) .hosszu-torzs::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 72px; background: linear-gradient(to bottom, rgba(248,247,240,0), var(--bg) 85%); pointer-events: none; }
.tovabb-gomb { display: inline-flex; align-items: center; gap: 6px; margin: 8px 0 0; padding: 4px 0; border: 0; background: none; color: var(--forest); font: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.tovabb-gomb:hover, .tovabb-gomb:focus-visible { color: var(--green-800, #395c18); }
.tovabb-gomb::after { content: "▾"; font-size: .9em; text-decoration: none; transition: transform .3s; }
.hosszu-szoveg.nyitva .tovabb-gomb::after { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .hosszu-szoveg.osszecsukva .hosszu-torzs, .tovabb-gomb::after { transition: none; } }

/* Adatlap: a jellemzők doboza és alatta diavetítés a fejlécben nem látszó képekből (assets/js/site.js; a nyilak csak JavaScripttel jelennek meg) */
.bemutatkozas-oldal { display: grid; gap: 20px; align-content: start; }
.bemutatkozas-oldal .panel { margin-bottom: 0; }
.diavetites { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: var(--blue-50); }
.diavetites .dia { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; opacity: 0; transition: opacity .7s ease; }
.diavetites .dia.aktiv { opacity: 1; }
.diavetites .dia img { display: block; width: 100%; height: 100%; object-fit: cover; }
.diavetites .dia-nyil { display: none; position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; padding: 0 0 4px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: rgba(0,0,0,.5); color: #fff; font-size: 1.7rem; line-height: 1; cursor: pointer; }
.diavetites .dia-nyil:hover, .diavetites .dia-nyil:focus-visible { background: rgba(0,0,0,.75); }
.diavetites.kesz .dia-nyil { display: block; }
.diavetites .dia-elozo { left: 10px; }
.diavetites .dia-kovetkezo { right: 10px; }
.diavetites .dia-szamlalo { position: absolute; right: 10px; bottom: 10px; padding: 3px 10px; border-radius: 999px; background: rgba(0,0,0,.6); color: #fff; font-size: .85rem; font-weight: 800; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .diavetites .dia { transition: none; } }

/* Adatlap: a térkép a Kapcsolat dobozban, mellette az üzenetküldő űrlap (a fél szélességű dobozban az űrlap egy oszlopos) */
.contact-card .mapbox { height: 300px; margin: 6px 0 16px; border-radius: 10px; }
.ketto-doboz #urlap .form-grid { grid-template-columns: minmax(0, 1fr); }

/* Adatlap fejléc: a nyitvatartás és az NTAK-szám egy sorban, az NTAK jobbra rendezve (keskeny nézetben egymás alá törnek) */
.fej-adatok { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 24px; margin: 16px 0 0; }   /* a fejlécképek ALATT áll (2026-11-04) */
.fej-adatok .fej-adat { margin: 0; color: var(--muted); font-size: 17px; }
.fej-adatok .fej-adat strong { color: var(--ink); font-weight: 700; }
.fej-adatok .fej-adat-jobb { margin-left: auto; text-align: right; }
@media (max-width: 560px) { .fej-adatok .fej-adat-jobb { margin-left: 0; text-align: left; } }   /* telefonon az NTAK-szám is balra rendezett (2026-11-04) */

/* Ügyfélkapu / Képek: a szálláshely képei (bal, szélesebb) és a feltöltés (jobb) két hasábban; keskeny nézetben egymás alatt */
.kepek-oldal { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.kepek-oldal > :only-child { grid-column: 1 / -1; }
.kepek-oldal .panel { margin-bottom: 0; }
@media (max-width: 900px) { .kepek-oldal { grid-template-columns: minmax(0, 1fr); } }

/* Fejléc és lábléc színátmenete: #446D1C → #669228 */
.top-bar, .site-footer { background: linear-gradient(90deg, #446d1c 0%, #669228 100%); }

/* Admin (admin/ mappa): a keret a design-mintából származó .admin-* szabályokat használja; itt az éles változat kiegészítései */
.admin-shell { min-height: 100vh; }
.admin-side { background: linear-gradient(180deg, #446d1c 0%, #304d14 100%); }
.admin-side .brand { padding: 0; }
.admin-belepve { margin: 0 14px 10px; font-weight: 700; color: #fff; word-break: break-word; }
.admin-main h2 { margin: 28px 0 14px; }
.admin-main .toolbar .field { margin: 0; }
.admin-main .toolbar .field input[type=search] { min-width: 280px; }
table.data tr.kiemelt-sor td { background: #fffbea; }
.admin-main .panel { margin-bottom: 20px; }
.admin-main .admin-grid > div { min-width: 0; }
.adatok { margin: 0; display: grid; grid-template-columns: minmax(110px, 170px) minmax(0, 1fr); gap: 8px 14px; }
.adatok dt { color: var(--muted); font-weight: 800; font-size: .88rem; text-transform: uppercase; letter-spacing: .04em; padding-top: 2px; }
.adatok dd { margin: 0; overflow-wrap: anywhere; }
.adatok dd p { margin: 0 0 .6em; }
table.csomag-tabla td { white-space: normal; }
table.csomag-tabla td:nth-child(2) { white-space: nowrap; min-width: 0; }
.uzenet-admin h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.uzenet-admin .uzenet-szoveg { background: #fcfdfb; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; margin: 14px 0 8px; }
.gps-valaszto { height: 340px; border: 1px solid var(--line); border-radius: 12px; margin-top: 12px; z-index: 0; }
.rendeles-kifizetes { margin-top: 18px; padding: 16px 18px; border: 2px solid var(--line); border-radius: 12px; background: #fcfdfb; }
.rendeles-kifizetes h3 { margin: 0 0 12px; font-size: 1.05rem; }
.level-elonezet { width: 100%; height: 620px; border: 2px dashed var(--line); border-radius: 10px; background: #fff; }
.admin-main .stepper { margin-top: 0; }
.esemeny-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: .95rem; }
.esemeny-datum { display: inline-block; color: var(--muted); font-weight: 800; margin-right: 6px; white-space: nowrap; }
@media (max-width: 600px) { .adatok { grid-template-columns: minmax(0, 1fr); gap: 2px; } .adatok dd { margin-bottom: 10px; } }
.veszely-panel { border-color: #c2410c; margin-top: 24px; }
.veszely-panel code { background: #f3f7ee; padding: 1px 6px; border-radius: 4px; }
.stepper.stepper-5 { grid-template-columns: repeat(5, 1fr); }
.stepper.stepper-5 .step { font-size: .8rem; }
@media (max-width: 600px) { .stepper.stepper-5 { grid-template-columns: 1fr 1fr 1fr; row-gap: 12px; } }
.lepes-navigacio { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.lepes-lista { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.lepes-lista li::before { content: '✓ '; color: var(--green-500); font-weight: 800; }

/* Admin lista-táblázatok fejléce: ugyanaz a sárga, mint a dobozfejléceké */
table.data th { background: var(--doboz-fej); color: var(--forest); }

/* Ügyféllista: a sor gombjai (adatlap, megnyitás, törlés) egymás mellett, szűk helyen törve */
.sor-muveletek { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sor-muveletek form { margin: 0; }
.btn-torles { color: #b42318; border-color: #b42318; }

/* Ügyféllista: az ikonkép a név előtt */
.ugyfel-nev { display: flex; align-items: center; gap: 12px; }
.ugyfel-ikon { flex: 0 0 72px; width: 72px; height: 54px; border-radius: 8px; background: var(--mezo-hatter); overflow: hidden; }
.ugyfel-ikon img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Jellemzők javaslata (admin/jellemzo_javaslat.php) */
.javaslat-tabla td { vertical-align: top; }
.javaslat-tabla td:nth-child(2) { min-width: 320px; }
.javaslat { padding: 8px 0 10px; border-bottom: 1px dashed var(--line); }
.javaslat:last-child { border-bottom: 0; }
.javaslat label { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-weight: 400; cursor: pointer; }
.javaslat-reszlet { margin: 4px 0 2px 24px; color: var(--muted); font-size: .95em; }
.javaslat-reszlet mark { background: #fff1a8; color: inherit; padding: 0 2px; border-radius: 3px; font-weight: 800; }

/* Törölt hirdetések (admin/toroltek.php): kis képek és a mentett adatok lenyitója */
.torolt-kepek { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px; }
.torolt-kepek a { display: block; width: 96px; height: 72px; border-radius: 8px; overflow: hidden; background: var(--mezo-hatter); }
.torolt-kepek img { display: block; width: 100%; height: 100%; object-fit: cover; }
.torolt-reszletek { margin-top: 14px; }
.torolt-reszletek summary { cursor: pointer; font-weight: 800; color: var(--forest); margin-bottom: 10px; }

/* Admin listák (táblázatok): a betűméret mindenhol 1 px-szel kisebb */
table.data { font-size: calc(.93rem - 1px); }
table.data th { font-size: calc(.86rem - 1px); }

/* Ügyféllista (admin/ugyfelek.php): azonnali keresés, szűrő-gombok számokkal, kijelölés és tömeges műveletek, sorműveletek */
/* A szűrősáv a dizájnterv szerint: EGY fehér doboz (keresősor + szűrő-gombok), 14 px sarok, a méretek px-ben (a terv 14–15 px-es betűit követve) */
.ugyfel-szuro-doboz { display: flex; flex-direction: column; gap: 12px; margin-bottom: 14px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.ugyfel-szuro { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: center; margin: 0; }
.ugyfel-kereso { position: relative; flex: 1 1 320px; min-width: 240px; }
.ugyfel-kereso input, .ugyfel-kereso input[type=search] { width: 100%; box-sizing: border-box; height: 52px; padding: 0 48px 0 46px; border: 1px solid var(--line); border-radius: 10px; background: var(--mezo-hatter); font-size: 17.5px !important; color: var(--ink); }   /* az !important kell: az általános input-szabály nagyobb specificitású */
.ugyfel-kereso-ikon { position: absolute; left: 15px; top: 16px; color: var(--muted); display: flex; }
.ugyfel-kereso-jel { position: absolute; right: 13px; top: 13px; min-width: 26px; height: 26px; border: 1px solid #c9d3bd; border-radius: 6px; background: #fff; color: var(--muted); font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.js-ugyfelek .ugyfel-kereso-gomb { display: none; }
/* a Rendezés mező a terv legördülő-gombja: fehér, 1 px-es szegély, 10 px sarok, félkövér 14 px-es szöveg, jobbra lefelé mutató nyíl */
.ugyfel-rendez { flex: 0 0 auto; }
.ugyfel-rendez select { appearance: none; -webkit-appearance: none; height: 52px; padding: 0 42px 0 16px; border: 1px solid var(--line); border-radius: 10px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231c2a1c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; color: var(--ink); font-family: inherit; font-size: 16.5px; font-weight: 700; cursor: pointer; }
.ugyfel-rendez select:hover { border-color: var(--forest); }
.tovabbi-szurok { flex: 0 0 auto; }
.tovabbi-szurok[open] { flex-basis: 100%; }
.tovabbi-szurok summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; }
.tovabbi-szurok summary::-webkit-details-marker { display: none; }
.tovabbi-szurok-tartalom { display: flex; flex-wrap: wrap; gap: 10px 14px; margin-top: 10px; padding: 12px 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.tovabbi-szurok-tartalom label { display: block; margin-bottom: 4px; font-size: .85rem; font-weight: 800; color: var(--muted); }
.ugyfel-chipek { display: flex; flex-wrap: wrap; gap: 12px 8px; align-items: flex-end; margin: 0; }
.ugyfel-chip-csoport { display: flex; flex-direction: column; gap: 6px; }
.ugyfel-chip-sor { display: flex; flex-wrap: wrap; gap: 8px; }
.ugyfel-chip-cim { font-size: 15px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ugyfel-chip { display: inline-flex; align-items: center; gap: 9px; height: 46px; padding: 0 5px 0 13px; box-sizing: border-box; border-radius: 999px; border: 1.5px solid #cfd9c4; background: #fff; color: var(--ink); font-weight: 800; font-size: 16.5px; line-height: 1; text-decoration: none; cursor: pointer; }
.ugyfel-chip:hover { border-color: var(--forest); color: var(--ink); }
.ugyfel-chip-db { min-width: 28px; height: 28px; padding: 0 8px; box-sizing: border-box; border-radius: 999px; background: #eaefe4; color: #304d14; font-size: 15px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
.ugyfel-chip.be, .ugyfel-chip.be:hover { background: var(--forest); border-color: var(--forest); color: #fff; }
.ugyfel-chip.be .ugyfel-chip-db, .ugyfel-chip.figyelem .ugyfel-chip-db { background: var(--yellow); }
.ugyfel-chip.torol, .ugyfel-chip.torol:hover { padding: 0 13px; background: #c2410c; border-color: #c2410c; color: #fff; font-weight: 800; }
.ugyfel-chip-valaszto { width: 1px; height: 46px; background: var(--line); margin: 0 8px; }
.tomeges-sav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: #304d14; color: #fff; position: sticky; top: 8px; z-index: 30; box-shadow: 0 6px 18px rgba(20, 40, 10, .25); }
.tomeges-sav[hidden] { display: none; }
.tomeges-sav .btn-outline { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.tomeges-statusz { display: inline-flex; gap: 6px; align-items: center; }
.tomeges-statusz select { height: 36px; border-radius: 8px; }
.kijeloles-oszlop { display: none; width: 36px; }
.js-ugyfelek .kijeloles-oszlop { display: table-cell; }
.ugyfel-tabla input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--forest); }
.ugyfel-nev-link { color: var(--ink); text-decoration: none; }
.ugyfel-nev-link:hover { text-decoration: underline; color: var(--ink); }
.ugyfel-uzi { display: inline-flex; min-width: 22px; height: 22px; padding: 0 6px; box-sizing: border-box; margin-left: 6px; border-radius: 999px; background: #c2410c; color: #fff; font-size: .8rem; font-weight: 800; align-items: center; justify-content: center; text-decoration: none; }
.ugyfel-uzi:hover { color: #fff; filter: brightness(.95); }
.ugyfel-ig { margin-left: 8px; }
.ugyfel-sav { height: 6px; border-radius: 99px; background: #e8eee0; overflow: hidden; margin: 6px 0 3px; min-width: 140px; max-width: 240px; }
.ugyfel-sav span { display: block; height: 100%; }
table.data td.td-csomag { white-space: normal; }
.muvelet-oszlop { text-align: right; }
.ugyfel-muveletek { justify-content: flex-end; flex-wrap: nowrap; gap: 6px; }
.ugyfel-muveletek form { margin: 0; }
.ikon-gomb { width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #304d14; cursor: pointer; background: #fdc703; border: 0; text-decoration: none; padding: 0; transition: background .12s; }
.ikon-gomb:hover { background: #e6b400; color: #304d14; }
.ikon-gomb svg { width: 23px; height: 23px; }
.kapcsolo { flex: 0 0 auto; width: 46px; height: 26px; border-radius: 99px; border: 0; padding: 0; position: relative; background: #aeb8a4; cursor: pointer; margin-right: 6px; }
.kapcsolo[aria-checked="true"] { background: var(--forest); }
.kapcsolo span { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .3); transition: left .12s; }
.kapcsolo[aria-checked="true"] span { left: 23px; }
.sor-menu { position: relative; }
.sor-menu summary { list-style: none; }
.sor-menu summary::-webkit-details-marker { display: none; }
.sor-menu-lap { position: fixed; z-index: 60; min-width: 250px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 10px 28px rgba(20, 40, 10, .22); padding: 6px; display: flex; flex-direction: column; text-align: left; white-space: normal; }
.sor-menu-lap form { margin: 0; }
.sor-menu-lap a, .sor-menu-torol { display: block; box-sizing: border-box; width: 100%; padding: 10px 12px; border-radius: 8px; color: var(--ink); text-decoration: none; font-weight: 700; font-size: .95rem; background: transparent; border: 0; text-align: left; cursor: pointer; font-family: inherit; }
.sor-menu-lap a:hover, .sor-menu-torol:hover { background: var(--mezo-hatter); color: var(--ink); }
.sor-menu-torol { color: #b42318; margin-top: 4px; border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; }
.sor-menu-torol:hover { color: #b42318; }
.ugyfel-jelzes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.visszavon-urlap { margin: 0; }
.ugyfel-tabla tr.nyitott td { background: #eaf3dc; }
.ugyfel-nev { cursor: pointer; }

/* Ügyfél gyorsnézet (admin/ugyfel_gyors.php): jobb oldali panel az ügyféllistán */
.gyorsnezet { position: fixed; top: 0; right: 0; bottom: 0; z-index: 55; width: min(470px, 100vw); background: #fff; border-left: 1px solid var(--line); box-shadow: -12px 0 32px rgba(20, 40, 10, .2); overflow-y: auto; }
.gyorsnezet[hidden] { display: none; }
.gyorsnezet.mentes { opacity: .65; transition: opacity .1s; }
.gyors-panel { display: flex; flex-direction: column; min-height: 100%; }
.gyors-fej { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: var(--yellow); position: sticky; top: 0; z-index: 2; }
.gyors-ikon { flex: 0 0 auto; width: 64px; height: 48px; border-radius: 9px; background: rgba(48, 77, 20, .18); overflow: hidden; }
.gyors-ikon img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gyors-cim { flex: 1 1 auto; min-width: 0; }
.gyors-cim h2 { margin: 0; font-size: 1.25rem; line-height: 1.2; color: #304d14; }
.gyors-cim p { margin: 2px 0 0; font-size: .92rem; color: #304d14; }
.gyors-zar { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px; border: 0; background: rgba(48, 77, 20, .14); color: #304d14; font-size: 1.1rem; cursor: pointer; }
.gyors-zar:hover { background: rgba(48, 77, 20, .24); }
.gyors-test { flex: 1 1 auto; padding: 16px 18px 8px; display: flex; flex-direction: column; gap: 16px; }
.gyors-sor { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid var(--mezo-hatter); }
.gyors-doboz > .gyors-sor:first-of-type { border-top: 0; }
.gyors-allapot { border-top: 0; padding: 0; }
.gyors-sor-felirat { margin-left: auto; font-weight: 700; font-size: .95rem; }
.gyors-sor-szoveg { flex: 1 1 auto; min-width: 0; }
.gyors-sor-szoveg strong { display: block; font-size: .98rem; }
.gyors-sor-szoveg small { display: block; color: var(--muted); font-size: .85rem; }
.gyors-doboz { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: #fbfcf8; }
.gyors-doboz h3 { margin: 0 0 8px; font-family: inherit; font-size: .8rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.gyors-ervenyes { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.gyors-datum { font-family: var(--serif); font-size: 1.6rem; font-weight: 400; }
.gyors-rel { font-weight: 800; color: #2c5a0c; }
.gyors-rel.lejart { color: #8a2f0c; }
.gyors-gombok { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.gyors-datum-mezo { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; font-weight: 700; color: var(--muted); }
.gyors-datum-mezo input { height: 38px; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-family: inherit; font-size: .95rem; }
.gyors-hint { margin: 10px 0 0; font-size: .85rem; line-height: 1.4; color: var(--muted); }
.gyors-mezo { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.gyors-mezo label { flex: 0 0 104px; font-size: .9rem; font-weight: 700; color: var(--muted); }
.gyors-mezo input { flex: 1 1 auto; min-width: 0; box-sizing: border-box; height: 42px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--mezo-hatter); font-family: inherit; font-size: 1rem; color: var(--ink); }
.gyors-mezo input:focus { background: #fff; border-color: var(--forest); }
.gyors-jellemzok { display: flex; flex-wrap: wrap; gap: 6px; }
.gyors-jellemzok span { padding: 3px 10px; border-radius: 999px; background: #e3f0d3; color: #2c5a0c; font-size: .85rem; font-weight: 700; }
.gyors-jellemzok em { color: var(--muted); font-size: .9rem; }
.gyors-javaslat { margin-top: 10px; padding: 10px 12px; border-radius: 10px; border: 1.5px dashed #e0a000; background: #fffaf0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: .92rem; }
.gyors-javaslat > span { flex: 1 1 180px; }
.gyors-naplo { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: .9rem; }
.gyors-naplo li { display: flex; gap: 10px; }
.gyors-naplo li > span:first-child { flex: 0 0 82px; color: var(--muted); font-weight: 700; }
.gyors-lab { position: sticky; bottom: 0; z-index: 2; padding: 12px 18px 16px; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 16px rgba(20, 40, 10, .06); display: flex; flex-direction: column; gap: 10px; }
.gyors-lab > .btn { width: 100%; box-sizing: border-box; justify-content: center; }
.gyors-uzenet { margin: 0; min-height: 1.3em; font-size: .92rem; font-weight: 800; color: #2c5a0c; }
.gyors-uzenet.hiba { color: #b42318; }
.gyors-visszavon { margin-left: 6px; padding: 0; border: 0; background: transparent; color: var(--forest); font: inherit; font-weight: 800; text-decoration: underline; cursor: pointer; }
.gyors-linkek { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; font-weight: 700; font-size: .92rem; }
.gyors-torles { color: #b42318; }
.gyors-torles:hover { color: #b42318; }

/* Ügyfél-adatlap (admin/ugyfel.php): rögzített fejléc + fülek, fő oszlop, jobb oldali sáv, mentés-sáv */
.adatlap-hivatkozasok { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: -6px 0 10px; }
.adatlap-hivatkozasok nav { flex: 1 1 280px; color: var(--muted); }
.adatlap-leptet { display: flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--muted); }
.adatlap-leptet [hidden] { display: none; }
.adatlap-hivatkozasok { justify-content: flex-end; }
.adatlap-fej-doboz { padding-bottom: 12px; }
/* Az admin ügyfél-fejléce (a nyilvános adatlap fejléc-doboza, a section.panel.adatlap-fej is az .adatlap-fej osztályt használja, ezért csak az .adatlap-fej-doboz közvetlen gyerekére vonatkozik) */
.adatlap-fej-doboz > .adatlap-fej { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding: 14px 18px; background: #fff; border: 1px solid var(--line); border-radius: 14px 14px 0 0; }
.adatlap-ikon { flex: 0 0 auto; width: 72px; height: 54px; }
.adatlap-fej-szoveg { flex: 1 1 280px; min-width: 0; }
.adatlap-nev { margin: 0; font-family: var(--serif); font-size: 1.7rem; line-height: 1.15; color: var(--forest); }
.adatlap-meta { margin: 4px 0 0; font-size: .92rem; color: var(--muted); }
.adatlap-cimkek { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.adatlap-fej-muveletek { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.adatlap-lathato { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 800; font-size: .95rem; }
.adatlap-lathato .kapcsolo { margin-right: 4px; }
.adatlap-menu { position: relative; }
.adatlap-menu summary { list-style: none; cursor: pointer; }
.adatlap-menu summary::-webkit-details-marker { display: none; }
.adatlap-menu .sor-menu-lap { position: absolute; right: 0; top: calc(100% + 4px); }
.adatlap-menu .sor-menu-torol-link { color: #b42318; border-top: 1px solid var(--line); margin-top: 4px; border-radius: 0 0 8px 8px; }
.adatlap-menu .sor-menu-torol-link:hover { color: #b42318; }
.adatlap-gombsor { display: flex; flex-wrap: wrap; gap: 8px 10px; padding: 10px 14px; background: #fbfcf8; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 14px 14px; }
.adatlap-gombsor a.btn[aria-current="page"], .adatlap-gombsor a.btn[aria-current="page"]:hover { background: var(--yellow); border-color: var(--yellow); color: #304d14; }
.adatlap-grid { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; margin-top: 4px; }
.adatlap-fo { flex: 999 1 560px; min-width: 0; }
.adatlap-fo .panel[id], .adatlap-fo form[id] { scroll-margin-top: 16px; }
.adatlap-oldalsav { flex: 1 1 320px; max-width: 380px; min-width: 0; position: sticky; top: 196px; max-height: calc(100vh - 210px); overflow-y: auto; }
.adatlap-oldalsav .panel { margin-bottom: 18px; }
.adatlap-oldalsav #adatlap-ervenyes { scroll-margin-top: 16px; }
.adatlap-kepek { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.adatlap-kepek img { display: block; width: 96px; height: 72px; object-fit: cover; border-radius: 8px; background: var(--mezo-hatter); }
.adatlap-uzenetek { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.adatlap-uzenetek li { padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcf8; font-size: .95rem; }
.adatlap-teendok { margin: 0; padding: 0; list-style: none; }
.adatlap-teendok li { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid var(--mezo-hatter); font-size: .95rem; line-height: 1.4; }
.adatlap-teendok li:first-child { border-top: 0; }
.adatlap-teendok li > span:nth-child(2) { flex: 1 1 auto; }
.adatlap-teendok li > a { flex: 0 0 auto; font-weight: 800; white-space: nowrap; }
.adatlap-teendo-jel { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--mezo-hatter); color: var(--green-900); font-size: .8rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.adatlap-teendo-jel.figyelem, .adatlap-teendo-jel.javaslat { background: var(--yellow); color: #304d14; }
.adatlap-teendo-jel.uzenet { background: #c2410c; color: #fff; }
.adatlap-teendo-jel.hiba { background: #fde1d3; color: #8a2f0c; }
.adatlap-teendo.rendben { margin: 0; font-weight: 700; color: #2c5a0c; }
.adatlap-teendo.rendben .adatlap-teendo-jel { background: #e3f0d3; color: #2c5a0c; margin-right: 6px; }
.adatlap-toast { margin: 0 0 18px; padding: 10px 14px; border-radius: 10px; background: #304d14; color: #fff; font-weight: 800; font-size: .92rem; }
.adatlap-toast[hidden] { display: none; }
.adatlap-toast.hiba { background: #b42318; }
.adatlap-toast .gyors-visszavon { color: var(--yellow); }
.mentes-sav { position: sticky; bottom: 16px; z-index: 45; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; width: fit-content; max-width: 100%; margin-top: 12px; padding: 10px 16px; border-radius: 12px; background: #304d14; color: #fff; box-shadow: 0 8px 24px rgba(20, 40, 10, .3); }
.mentes-sav[hidden] { display: none; }
.mentes-sav .btn-outline { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.hint-vilagos { color: rgba(255, 255, 255, .8); font-size: .9rem; }

/* Gyorsnézet: a „Törlés…” gomb úgy néz ki, mint a mellette lévő hivatkozások */
button.gyors-torles { background: none; border: 0; padding: 0; margin: 0; font: inherit; font-weight: 700; cursor: pointer; color: #b42318; }
button.gyors-torles:hover { text-decoration: underline; }

/* Lejárati értesítők száma a listában és a gyorsnézetben */
.ugyfel-ertesito, .gyors-ertesito { color: #8a4b00; font-weight: 700; }
.ugyfel-ertesito.nincs, .gyors-ertesito.nincs { color: #6b756b; font-weight: 600; }
.gyors-ertesito { margin: 10px 0 0; font-size: 14px; }
.gyors-ertesito small { font-weight: 400; color: #6b756b; }

/* Ikongombok a lista soraiban: üzenet-jelvény és piros törlés-gomb */
.ikon-gomb { position: relative; }
.ikon-jelveny { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box; border-radius: 999px; background: #c2410c; color: #fff; font-size: 12px; font-weight: 800; line-height: 20px; text-align: center; }
.ikon-gomb.ikon-megtekint { background: #446d1c; color: #fff; }
.ikon-gomb.ikon-megtekint:hover { background: #395c18; color: #fff; }
.ikon-gomb.ikon-torol { background: #c2410c; color: #fff; }
.ikon-gomb.ikon-torol:hover { background: #a8360a; color: #fff; }

/* Gyorsnézet: csak megjelenített adatok, téglavörös törlés-gomb, alacsonyabb ragadós sáv ikongombokkal */
.gyors-adat { display: grid; grid-template-columns: 112px 1fr; gap: 5px 10px; margin: 0; font-size: .95rem; }
.gyors-adat dt { color: var(--muted); font-weight: 700; font-size: .9rem; }
.gyors-adat dd { margin: 0; min-width: 0; overflow-wrap: anywhere; font-weight: 700; }
.gyors-nincs { color: var(--muted); font-weight: 400; font-style: italic; }
.gyors-doboz .gyors-hint a { font-weight: 800; }
.gyors-torol-gomb { width: 100%; box-sizing: border-box; justify-content: center; margin: 4px 0 10px; }
.gyors-lab { padding: 8px 18px; gap: 4px; }
.gyors-uzenet:empty { display: none; }
.gyors-ikonsor { display: flex; justify-content: space-between; align-items: center; gap: 6px; }


/* Ügyfél-állapot címkék a portál színeivel: érvényes = zöld/fehér, lejáró = sárga/zöld, lejárt = téglavörös/fehér */
.tag-erv { background: #446d1c; color: #fff; }
.tag-lejaro { background: #fdc703; color: #304d14; }
.tag-lejart { background: #c2410c; color: #fff; }

/* Az ügyfél-állapot címkék csupa nagybetűsek, nem félkövérek */
.tag.tag-allapot { text-transform: uppercase; font-weight: 400; letter-spacing: .04em; font-size: .78rem; padding: 4px 12px; }

/* ===== Mobilnézet (publikus oldalak): a dobozok belső tere arányosan kisebb (kb. 60%); az admin (body.admin-body) nem érintett ===== */
@media (max-width: 560px) {
  body:not(.admin-body) .panel { --px: 16px; --py: 16px; padding: 16px; }
  body:not(.admin-body) .filters { --px: 16px; --py: 16px; padding: 16px; }
  body:not(.admin-body) .side-links { --px: 14px; --py: 12px; padding: 12px 14px; }
  body:not(.admin-body) .package { --px: 16px; --py: 16px; padding: 16px; }
  body:not(.admin-body) .fh-layout .fh-box { --px: 14px; --py: 14px; padding: 14px 14px 6px; }
  body:not(.admin-body) .oldalsav .fh-box { --px: 14px; --py: 14px; padding: 14px 14px 16px; }
  body:not(.admin-body) .fh-side .fh-box { --px: 14px; --py: 10px; padding: 10px 14px 4px; }
  body:not(.admin-body) .fh-search { --px: 14px; --py: 14px; padding: 14px; }
  /* a dobozok sárga címsávja: a vízszintes tér a doboz belső terét követi, a függőleges kisebb */
  body:not(.admin-body) .panel > h1:first-child, body:not(.admin-body) .panel > h2:first-child,
  body:not(.admin-body) .filters > h2:first-child, body:not(.admin-body) .side-links > h3:first-child, body:not(.admin-body) .package > h3:first-child,
  body:not(.admin-body) .fh-layout .fh-box > h2:first-child, body:not(.admin-body) .oldalsav .fh-box > h2:first-child,
  body:not(.admin-body) .fh-search > .fh-search-cim {
    margin: calc(-1 * var(--py)) calc(-1 * var(--px)) 12px; padding: 10px var(--px);
  }
  body:not(.admin-body) .fh-side .fh-box > h2:first-child { margin-bottom: 0; }
  body:not(.admin-body) .jellemzo-csempek { padding: 12px 16px 16px; }
}
/* ===== Táblagép-nézet (publikus oldalak, 561–1150 px; ennél szélesebben az egyoszlopos/lenyíló menüs elrendezés is megszűnik): a dobozok belső tere kb. 80%; az admin nem érintett ===== */
@media (min-width: 561px) and (max-width: 1150px) {
  body:not(.admin-body) .panel { --px: 22px; --py: 20px; padding: 20px 22px; }
  body:not(.admin-body) .filters { --px: 20px; --py: 20px; padding: 20px; }
  body:not(.admin-body) .side-links { --px: 16px; --py: 14px; padding: 14px 16px; }
  body:not(.admin-body) .package { --px: 18px; --py: 18px; padding: 18px; }
  body:not(.admin-body) .fh-layout .fh-box { --px: 16px; --py: 16px; padding: 16px 16px 6px; }
  body:not(.admin-body) .oldalsav .fh-box { --px: 18px; --py: 18px; padding: 18px 18px 18px; }
  body:not(.admin-body) .fh-side .fh-box { --px: 14px; --py: 10px; padding: 10px 14px 5px; }
  body:not(.admin-body) .fh-search { --px: 18px; --py: 16px; padding: 16px 18px; }
  body:not(.admin-body) .panel > h1:first-child, body:not(.admin-body) .panel > h2:first-child,
  body:not(.admin-body) .filters > h2:first-child, body:not(.admin-body) .side-links > h3:first-child, body:not(.admin-body) .package > h3:first-child,
  body:not(.admin-body) .fh-layout .fh-box > h2:first-child, body:not(.admin-body) .oldalsav .fh-box > h2:first-child,
  body:not(.admin-body) .fh-search > .fh-search-cim {
    margin: calc(-1 * var(--py)) calc(-1 * var(--px)) 14px; padding: 12px var(--px);
  }
  body:not(.admin-body) .fh-side .fh-box > h2:first-child { margin-bottom: 0; }
  body:not(.admin-body) .terkep-fejlec, body:not(.admin-body) .fh-ketto .terkep-fejlec { padding: 12px 20px; }
  body:not(.admin-body) .jellemzo-csempek { padding-left: 20px; padding-right: 20px; }
  body:not(.admin-body) .terkep { width: calc(100% - 40px); }
}
/* ===== Alapméret = törzsszöveg (2026-11-03): az html mérete egyenlő a törzsszöveg méretével (telefon 16 px, táblagép 17 px, asztali gép 16–19 px); az admin a régi méretet (html 18–21 px, törzsszöveg -2 px) kapja vissza ===== */
html:has(> body.admin-body) { font-size: clamp(18px, 0.6vw + 12px, 21px); }
body.admin-body { font-size: calc(1rem - 2px); }
@media (min-width: 561px) and (max-width: 1150px) {
  html:not(:has(> body.admin-body)) { font-size: 17px; }
}

/* ===== Reszponzív betűméretek (publikus oldalak): a rögzített px-es méretek kisebb nézetben igazodnak a címsorokhoz; az admin nem érintett ===== */
/* a főmenü minden nézetben 18 px (a lenyíló menü pontjai is) */
.main-nav a { font-size: 18px; }
@media (max-width: 1150px) {
  body:not(.admin-body) .fh-hero-lead { font-size: clamp(17px, 15.2px + .35vw, 18px); }
  body:not(.admin-body) .card h3, body:not(.admin-body) .card h3 a, body:not(.admin-body) .fh-cards .card h3 { font-size: 22px; line-height: 1.2; }   /* a kártyák neve ne legyen nagyobb a h2-nél */
  body:not(.admin-body) .site-footer h4 { font-size: 22px; }
}
@media (max-width: 560px) {
  body:not(.admin-body) .card h3, body:not(.admin-body) .card h3 a, body:not(.admin-body) .fh-cards .card h3 { font-size: 20px; }
  body:not(.admin-body) .site-footer h4 { font-size: 20px; }
}
/* ===== Rögzített px-es méretek arányos csökkentése (2026-11-03): az asztali törzsszöveghez (18,4 px) képest táblagépen ×0,92, telefonon ×0,87; az űrlapmezők legalább 16 pxesek maradnak (az iPhone 16 px alatt belenagyít) ===== */
@media (max-width: 1150px) {
  body:not(.admin-body) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=image]):not([type=range]),
  body:not(.admin-body) select, body:not(.admin-body) textarea { font-size: 16px; }
}
@media (min-width: 561px) and (max-width: 1150px) {
  body:not(.admin-body) .btn, body:not(.admin-body) .fh-btn, body:not(.admin-body) .fh-search-btn,
  body:not(.admin-body) .field label, body:not(.admin-body) .fh-search .field label, body:not(.admin-body) .contact-card dt,
  body:not(.admin-body) .telepules-lista li, body:not(.admin-body) .site-footer .copyright, body:not(.admin-body) .site-footer .copyright span,
  body:not(.admin-body) .suti-sav, body:not(.admin-body) .jellemzo-csempek a, body:not(.admin-body) .adatlap-jellemzo,
  body:not(.admin-body) .nezet-valto a, body:not(.admin-body) .kapcsolat-adatok dt, body:not(.admin-body) .terulet-felirat, body:not(.admin-body) .kereso-alcim,
  body:not(.admin-body) .title-row .fej-adat, body:not(.admin-body) .fej-adatok .fej-adat { font-size: 16px; }
  body:not(.admin-body) .card .loc, body:not(.admin-body) .fh-cards .card .loc, body:not(.admin-body) .kiemelt-lista li span { font-size: 16px; line-height: 22px; }
  body:not(.admin-body) .check, body:not(.admin-body) .kereso-jellemzok .check, body:not(.admin-body) .feature-grid div { font-size: 17.5px; }
  body:not(.admin-body) .fh-name { font-size: 20px; }
  body:not(.admin-body) .kiemelt-lista .fh-name { font-size: 19px; }
  body:not(.admin-body) .fh-side .fh-box .fh-name { font-size: 19px; }
  body:not(.admin-body) .fh-side .fh-box > h2:first-child { font-size: 21px; }
}
@media (max-width: 560px) {
  body:not(.admin-body) .btn, body:not(.admin-body) .fh-btn, body:not(.admin-body) .fh-search-btn,
  body:not(.admin-body) .field label, body:not(.admin-body) .fh-search .field label, body:not(.admin-body) .contact-card dt,
  body:not(.admin-body) .telepules-lista li, body:not(.admin-body) .site-footer .copyright, body:not(.admin-body) .site-footer .copyright span,
  body:not(.admin-body) .suti-sav, body:not(.admin-body) .jellemzo-csempek a, body:not(.admin-body) .adatlap-jellemzo,
  body:not(.admin-body) .nezet-valto a, body:not(.admin-body) .kapcsolat-adatok dt, body:not(.admin-body) .terulet-felirat, body:not(.admin-body) .kereso-alcim,
  body:not(.admin-body) .title-row .fej-adat, body:not(.admin-body) .fej-adatok .fej-adat { font-size: 16px; }   /* 2026-11-06: 15 → 16 px */
  body:not(.admin-body) .card .loc, body:not(.admin-body) .fh-cards .card .loc, body:not(.admin-body) .kiemelt-lista li span { font-size: 16px; line-height: 22px; }
  body:not(.admin-body) .check, body:not(.admin-body) .kereso-jellemzok .check, body:not(.admin-body) .feature-grid div { font-size: 16.5px; }
  body:not(.admin-body) .fh-name { font-size: 19px; }
  body:not(.admin-body) .kiemelt-lista .fh-name { font-size: 19px; }   /* 2026-11-06: 18 → 19 px */
  body:not(.admin-body) .fh-side .fh-box .fh-name { font-size: 18px; }
  body:not(.admin-body) .fh-side .fh-box > h2:first-child { font-size: 20px; }
}
/* Telefonon a legkisebb szöveg se legyen 15 px alatt (2026-11-06, a felhasználó kérésére; volt 14 px). Kivétel: a Leaflet térkép jogi forrásmegjelölése (12 px, külső könyvtár). */
@media (max-width: 560px) {
  body:not(.admin-body) .fh-side .fh-box li span, body:not(.admin-body) .fh-film-gomb, body:not(.admin-body) [data-szunet], body:not(.admin-body) .dia-szamlalo,
  body:not(.admin-body) .hint, body:not(.admin-body) .full.hint,
  body:not(.admin-body) .terulet-fulek button, body:not(.admin-body) .fh-search .terulet-fulek button, body:not(.admin-body) .terkep-fulek button,
  body:not(.admin-body) .site-footer ul, body:not(.admin-body) .footer-brand p, body:not(.admin-body) .tsz-lista .telepules-db,
  body:not(.admin-body) .kapcsolat-doboz .kapcsolat-sor dt { font-size: 15px; }
}
/* ===== ÁSZF és adatkezelési tájékoztató: a főcímekkel tagolt szakaszok külön dobozban (2026-11-03); a bevezető és az oldal címe doboz nélkül a háttéren ===== */
.szoveg-dobozok .szoveg-bevezeto { margin-bottom: 28px; }
.szoveg-dobozok .szoveg-bevezeto p:last-child { margin-bottom: 0; }
.szoveg-dobozok > .panel { margin-bottom: var(--dobozkoz, 26px); }
.szoveg-dobozok .szoveg-csoportcim { margin: 36px 0 18px; font-family: var(--serif); font-weight: 400; font-size: var(--doboz-cim); line-height: 1.25; color: var(--forest); }
/* ===== A fejléc és a lábléc linkjeinek hoverje a portál sárgája (2026-11-03): a sötétzöld sávokban (felső sáv, lábléc) a szöveg sárga, a fehér menüsorban sárga háttér + sötétzöld szöveg (sárga szöveg fehéren nem látszana) ===== */
.top-links a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover,
.top-links a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):focus-visible,
.fav-link:hover, .fav-link:focus-visible,
.site-footer a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover,
.site-footer a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):focus-visible { color: var(--yellow); text-decoration-color: var(--yellow); }
.main-nav a:hover, .main-nav a:focus-visible { background: var(--yellow); }
.main-nav a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):hover,
.main-nav a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):focus-visible { color: var(--forest); }
.main-nav a:hover::after { display: none; }
.site-footer .link-gomb:hover, .site-footer .link-gomb:focus-visible { color: var(--yellow); }   /* a lábléc Süti-beállítások gombja is */

/* ===== Szálláskártyák listája (találati lista, Kedvencek és a főoldali kiemelt ajánlatok) 1151–1400 px között 2 hasábban: a bal oldali szűrő/oldalsáv mellett a 3 oszlopos kártya itt túl keskeny (215–290 px) lenne; 1150 px alatt (egyoszlopos oldal) és 1400 px fölött 3 hasáb marad (2026-11-03) ===== */
@media (min-width: 1151px) and (max-width: 1400px) {
  .kartya-racs, .oldalsav-fo .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }   /* a főoldali .fh-cards innen kivéve (2026-11-04): a jobb oldali sáv 1400 px alatt alulra kerül, így a kártyák a teljes szélességet kapják (3 hasáb) */
}
/* A főoldali klipek bármely részére kattintva megnyílik a teljes film (site.js, [data-klip]) */
.klip { cursor: pointer; }
.klip .fh-szunet { cursor: pointer; }

/* ===== Árak feliratai (Szálláshelyeknek és Megrendelés oldal): a nagy összegek táblagépen és telefonon a címsorokhoz igazodnak (asztalin 31,3 / 29,4 px) ===== */
@media (min-width: 561px) and (max-width: 1150px) {
  body:not(.admin-body) .price { font-size: 24px; }
  body:not(.admin-body) .total { font-size: 18px; }
  body:not(.admin-body) .total strong { font-size: 24px; }
}
@media (max-width: 560px) {
  body:not(.admin-body) .price { font-size: 22px; }
  body:not(.admin-body) .total { font-size: 17px; }
  body:not(.admin-body) .total strong { font-size: 22px; }
}
/* Lábléc: a két oszlop ne nyúljon túl a lapon (561 px körül a keskeny oszlop 4 px-szel kilógott) */
@media (min-width: 561px) and (max-width: 1150px) { .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Ügyfélkapu új oldalkerete (2026-11-03): bal oldalt a tartalom, jobb oldalt az "Az Ön hirdetése" doboz (belso/ugyfel_keret_elej.php + ugyfel_keret_vege.php);
   a Képek oldal új elemei (ukep-*) – az admin képkezelő a régi kep-* osztályokat használja, azok változatlanok */
.ugyfel-keret { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 28px; align-items: start; }
.ugyfel-fo { min-width: 0; }
.ugyfel-fo .ugyfel-oldalcim { margin-bottom: 8px; }
.ugyfel-lead { margin: 0 0 24px; color: var(--muted); font-size: 1.05rem; }
.ugyfel-fo .panel, .ugyfel-oldalsav .panel { margin-bottom: var(--dobozkoz, 26px); }
.ugyfel-oldalsav { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.ugyfel-oldalsav .panel { margin-bottom: 0; }
.ugyfel-hirdetes p { margin: 0 0 10px; }
.ugyfel-hirdetes-gombok { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.ugyfel-hirdetes-gombok .btn { width: 100%; justify-content: center; text-align: center; }
.ugyfel-hirdetes-nev { font-family: var(--serif); font-size: 1.35rem; line-height: 1.2; color: var(--forest); }
@media (max-width: 1000px) { .ugyfel-keret { grid-template-columns: minmax(0, 1fr); } }

.ukep-feltoltes { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px 28px; align-items: stretch; }
@media (max-width: 900px) { .ukep-feltoltes { grid-template-columns: minmax(0, 1fr); } }
.ukep-urlap { margin: 0; display: flex; flex-direction: column; }
.ukep-dropzona { flex-grow: 1; border: 2px dashed var(--green-500); border-radius: 12px; background: #f3f8ec; color: var(--forest); padding: 28px 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; }
.ukep-dropzona.hu { background: #e3f0d2; border-style: solid; }
.ukep-dropzona:focus-within { outline: 3px solid var(--yellow); outline-offset: 2px; }
.ukep-dz-cim { font-family: var(--serif); font-weight: 400; font-size: 1.35rem; line-height: 1.25; color: #304d14; }
.ukep-dropzona > span { color: var(--muted); }
.ukep-valaszt { display: inline-flex; align-items: center; min-height: 46px; padding: 0 21px; border-radius: 10px; background: var(--cta); color: #fff; font-size: 17px; font-weight: 800; cursor: pointer; }
.ukep-valaszt:hover { background: var(--cta-dark); }
.ukep-kuldes { align-self: flex-start; margin-top: 14px; }
.ukep-urlap.js .ukep-kuldes { display: none; }
.ukep-info { display: flex; flex-direction: column; justify-content: center; gap: 12px; }
.ukep-info p { margin: 0; }
.ukep-szamlalo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-weight: 700; }
.ukep-szamlalo strong { font-family: var(--serif); font-weight: 400; font-size: 1.75rem; color: #304d14; }
.ukep-szamlalo small { font-size: 1.1rem; color: var(--muted); }
.ukep-mero { height: 12px; border-radius: 999px; background: #eaefe4; overflow: hidden; }
.ukep-mero span { display: block; height: 100%; background: var(--green-500); }
.ukep-tele { display: flex; align-items: center; }

.ukep-racs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; margin-top: 16px; }
.ukep-kartya { margin: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.ukep-kartya.ikon { border: 2px solid var(--yellow); }
.ukep-kep { position: relative; aspect-ratio: 4 / 3; background: #e9f0dc; }
.ukep-kep img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ukep-sorszam { position: absolute; left: 10px; top: 10px; min-width: 26px; height: 26px; padding: 0 6px; box-sizing: border-box; border-radius: 999px; background: #304d14; color: #fff; font-size: 14px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.ukep-jelzes { position: absolute; right: 10px; top: 10px; padding: 3px 10px; border-radius: 999px; background: var(--yellow); color: #304d14; font-size: 14px; font-weight: 800; }
.ukep-jelzes.kicsi { top: auto; bottom: 10px; background: var(--cta); color: #fff; }
.ukep-kartya figcaption { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 10px; }
.ukep-kartya figcaption .ugyfel-kicsi { margin: 0; }
.ukep-muveletek { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.ukep-gomb { width: 44px; height: 44px; padding: 0; border: 1.5px solid var(--forest); border-radius: 10px; background: #fff; color: #304d14; font: inherit; font-size: 18px; font-weight: 800; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.ukep-gomb:hover { background: #eaefe4; }
.ukep-gomb[disabled] { opacity: .4; cursor: default; }
.ukep-gomb[disabled]:hover { background: #fff; }
.ukep-torol { margin-left: auto; border-color: var(--cta); color: var(--cta); }
.ukep-torol:hover { background: var(--cta); color: #fff; }
.ukep-ikon-gomb { flex-basis: 100%; height: 40px; border: 0; border-radius: 10px; background: #eaefe4; color: #304d14; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.ukep-ikon-gomb:hover { background: #dfe8d2; }

/* Ügyfélkapu, adatlap szerkesztése (2026-11-03): szakaszra ugró gombok, üzenetküldő-kapcsoló kártya, térkép a koordináta mellett, ragadós mentősáv (ukad-*;
   a rendszer/kozos/adatlap_urlap.php csak $urlap_ugyfelkapu = true esetén adja ki; az admin űrlapja változatlan) */
.ukad-ugras { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.ukad-ugras a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #304d14; font-weight: 700; text-decoration: none; }
.ukad-ugras a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { background: var(--yellow); border-color: var(--yellow); color: #304d14; }
.ukad-ugras a.aktiv { background: var(--forest); border-color: var(--forest); color: #fff; }
.ukad-ugras a.aktiv:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { background: var(--forest); border-color: var(--forest); color: #fff; }
.ukad-urlap { max-width: none; }
.ukad-urlap .check-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 700px) { .ukad-urlap .check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .ukad-urlap .check-grid { grid-template-columns: minmax(0, 1fr); } }
.ukad-urlap .panel { scroll-margin-top: 90px; }
.ukad-kapcsolo { display: flex; align-items: flex-start; gap: 14px; padding: 14px 16px; border: 1.5px solid var(--green-500); border-radius: 12px; background: #f3f8ec; cursor: pointer; }
.ukad-kapcsolo input { flex: none; width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--forest); }
.ukad-kapcsolo strong { display: block; color: #304d14; }
.ukad-kapcsolo span span { display: block; color: var(--muted); font-size: .92rem; }
.ukad-terkep { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px 24px; align-items: start; }
.ukad-terkep .gps-valaszto { margin-top: 0; height: 320px; }
@media (max-width: 900px) { .ukad-terkep { grid-template-columns: minmax(0, 1fr); } }
.ukad-figyel { color: var(--cta); font-weight: 700; }
.ukad-mentosav { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 8px; padding: 12px 18px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 -6px 18px rgba(48, 77, 20, .12); }
.ukad-allapot { color: var(--muted); }
.ukad-piszkos .ukad-allapot { color: var(--cta); font-weight: 800; }
.ukad-mentes-gombok { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 560px) { .ukad-mentosav { flex-wrap: nowrap; gap: 12px; padding: 10px 12px; } .ukad-allapot { flex: 1 1 auto; font-size: 14px; line-height: 1.3; } .ukad-mentes-gombok .btn-outline { display: none; } }

/* Ügyfélkapu, hirdetés hosszabbítása (2026-11-03; ucs-*): fülek, extra-kártyák kapcsolóval, számlázási adatok ellenőrzése, összesítő */
.ucs-urlap [hidden], .ucs-szla [hidden] { display: none !important; }
.ucs-fulek { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; padding: 6px; background: #fff; border: 1px solid var(--line); border-radius: 12px; width: fit-content; max-width: 100%; }
.ucs-fulek a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 9px; color: #304d14; font-weight: 800; text-decoration: none; }
.ucs-fulek a.aktiv { background: var(--forest); color: #fff; }
.ucs-fulek a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { background: var(--yellow); color: #304d14; }
.ucs-nyitott { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 24px; padding: 18px 22px; background: #fff4c2; border: 1px solid var(--yellow); border-radius: 12px; }
.ucs-nyitott > div:first-child { flex: 1 1 340px; }
.ucs-nyitott strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.2rem; color: #304d14; }
.ucs-nyitott span { display: block; margin-top: 4px; color: #3b4a2e; }
.ucs-nyitott-gombok { display: flex; flex-wrap: wrap; gap: 10px; }
.ucs-nyitott-gombok form { margin: 0; }
.ucs-urlap .panel { margin-bottom: var(--dobozkoz, 26px); }
.ucs-datumok { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.ucs-datumok > div { display: flex; flex-direction: column; gap: 2px; }
.ucs-datumok svg { color: var(--green-500); }
.ucs-cimke { font-size: .85rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.ucs-uj-cimke { color: var(--forest); }
.ucs-datum { font-family: var(--serif); font-size: 1.65rem; line-height: 1.2; color: #304d14; }
.ucs-datum.ucs-regi { color: var(--muted); }
.ucs-pirula { margin-left: auto; padding: 6px 14px; border-radius: 999px; background: #eaefe4; color: #304d14; font-weight: 700; }
.ucs-extra { display: flex; align-items: center; gap: 16px; margin: 14px 0 0; padding: 16px 18px; border: 2px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; }
.ucs-extra.ucs-alap { background: #eaefe4; cursor: default; border-width: 1.5px; }
.ucs-extra:has(input:checked) { border-color: var(--forest); background: #f3f8ec; }
.ucs-extra input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.ucs-extra input:focus-visible ~ .ucs-kapcsolo, .ucs-extra input:focus-visible ~ .ucs-torzs { outline: 3px solid var(--yellow); outline-offset: 3px; }
.ucs-kapcsolo { flex: none; position: relative; width: 56px; height: 32px; border-radius: 999px; background: #8b9680; transition: background .15s; }
.ucs-kapcsolo::after { content: ""; position: absolute; left: 3px; top: 3px; width: 26px; height: 26px; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .35); transition: left .15s; }
.ucs-extra input:checked ~ .ucs-kapcsolo { background: var(--forest); }
.ucs-extra input:checked ~ .ucs-kapcsolo::after { left: 27px; }
.ucs-extra:not(:has(input:checked)) .ucs-ar strong { color: #8b9680; }
.ucs-extra:has(input[data-ar]:not(:checked)) .ucs-m-be { display: none; }
.ucs-extra:has(input[data-ar]:checked) .ucs-m-ki { display: none; }
/* extra bekapcsolása (nincs kapcsoló): jelölőnégyzet */
.ucs-urlap[data-mod="extra"] .ucs-extra input { position: static; width: 24px; height: 24px; opacity: 1; flex: none; accent-color: var(--forest); }
.ucs-torzs { flex: 1 1 auto; min-width: 0; }
.ucs-torzs strong { display: block; font-size: 1.1rem; color: #304d14; }
.ucs-torzs > span { display: block; color: #3b4a2e; }
.ucs-jel { display: inline-block; padding: 2px 10px; border-radius: 999px; background: #eaefe4; color: #304d14; font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.ucs-jel-aktiv { background: var(--forest); color: #fff; margin-left: 6px; vertical-align: middle; }
.ucs-torzs > .ucs-megj { margin-top: 4px; font-weight: 700; color: #304d14; }
.ucs-torzs > .ucs-figyel { color: var(--cta); }
.ucs-ar { flex: none; text-align: right; }
.ucs-ar strong { display: block; font-size: 1.1rem; color: #304d14; }
.ucs-ar small { display: block; color: var(--muted); font-size: 14px; }

.ucs-szla > p { margin-top: 0; }
.ucs-szla-uzenet { margin: 0 0 14px; padding: 10px 14px; border-left: 4px solid var(--green-500); border-radius: 10px; background: #e8f5e0; }
.ucs-szla-uzenet.hiba { border-left-color: var(--cta); background: #fdece4; }
.ucs-szla-adatok { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px 24px; margin: 0 0 16px; }
.ucs-szla-adatok .full { grid-column: 1 / -1; }
.ucs-szla-adatok dt { font-size: .85rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--forest); }
.ucs-szla-adatok dd { margin: 2px 0 0; font-weight: 700; word-break: break-word; }
.ucs-szla:not(.js) .ucs-szla-adatok, .ucs-szla:not(.js) [data-szla-modosit], .ucs-szla:not(.js) .ucs-szla-gombok { display: none; }
.ucs-szla.js .ucs-szla-szerkeszto { display: none; }
.ucs-szla.js.szerkeszt .ucs-szla-szerkeszto { display: block; }
.ucs-szla.js.szerkeszt .ucs-szla-adatok, .ucs-szla.js.szerkeszt [data-szla-modosit] { display: none; }
.ucs-ok { display: flex; align-items: flex-start; gap: 12px; margin-top: 16px; padding: 14px 16px; border: 2px solid var(--line); border-radius: 12px; cursor: pointer; font-weight: 700; color: #304d14; }
.ucs-ok:has(input:checked) { border-color: var(--forest); background: #f3f8ec; }
.ucs-ok input { flex: none; width: 24px; height: 24px; margin-top: 1px; accent-color: var(--forest); }
.ucs-ok small { display: block; margin-top: 2px; font-size: 14px; font-weight: 400; color: var(--muted); }

.ucs-ossz { border: 2px solid var(--forest); }
.ucs-ossz-racs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 32px; align-items: start; }
@media (max-width: 800px) { .ucs-ossz-racs { grid-template-columns: minmax(0, 1fr); } }
.ucs-sor { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; }
.ucs-athuzott span:first-child { text-decoration: line-through; color: var(--muted); }
.ucs-athuzott span { color: var(--muted); }
.ucs-kikerul { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); }
.ucs-vegosszeg { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 12px; padding-top: 14px; border-top: 2px solid var(--line); }
.ucs-vegosszeg strong { font-family: var(--serif); font-weight: 400; font-size: 2rem; color: #304d14; }
.ucs-cta { display: flex; flex-direction: column; gap: 12px; }
.ucs-cimzett { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 10px; background: #eaefe4; word-break: break-word; }
.ucs-hiany { margin: 0; color: #7c2a08; font-weight: 700; }
.ucs-cta .btn[disabled] { background: #9aa391; box-shadow: none; cursor: not-allowed; }
@media (max-width: 560px) { .ucs-extra { flex-wrap: wrap; } .ucs-ar { text-align: left; } .ucs-pirula { margin-left: 0; } }

/* Ügyfélkapu, számlázás és számlák: a díjbekérők és számlák története (szla-*) */
.szla-szurok { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.szla-szurok a { display: inline-flex; align-items: center; gap: 10px; min-height: 42px; padding: 0 8px 0 16px; border: 1.5px solid #c9d3bb; border-radius: 999px; background: #fff; color: #304d14; font-weight: 800; text-decoration: none; }
.szla-szurok a span { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; padding: 0 6px; box-sizing: border-box; border-radius: 999px; background: #eaefe4; font-size: 14px; }
.szla-szurok a.aktiv { background: var(--forest); border-color: var(--forest); color: #fff; }
.szla-szurok a.aktiv span { background: var(--yellow); color: #304d14; }
.szla-szurok a:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { background: var(--yellow); border-color: var(--yellow); color: #304d14; }
.szla-sor { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0 0 10px; padding: 16px; border: 1px solid #eaefe4; border-radius: 12px; background: #fff; }
.szla-sor.szla-var { border-color: var(--yellow); background: #fff9dc; }
.szla-fo { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.szla-fo strong { font-size: 1.1rem; }
.szla-cimke { display: inline-block; margin-left: 8px; padding: 3px 12px; border-radius: 999px; font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; background: #eceeea; color: #555; }
.szla-cimke-kifizetve { background: var(--forest); color: #fff; }
.szla-cimke-var { background: var(--yellow); color: #304d14; }
.szla-gombok { display: flex; flex-wrap: wrap; gap: 10px; }
.szla-visszavon { border-color: var(--cta); color: var(--cta); }

/* Ügyfélkapu, jobb oldali hasáb: a csomag a hirdetés-dobozban, az adatlap kitöltöttsége alatta; a hosszabbítás oldal idővonalas állapotsora (2026-11-03) */
.ugyfel-hirdetes-alcim { margin: 18px 0 8px; padding-top: 16px; border-top: 1px solid var(--line); font-size: .85rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--forest); }
.ugyfel-csomag { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ugyfel-csomag li { display: flex; align-items: center; gap: 10px; }
.ugyfel-csomag .jel { flex: none; width: 22px; height: 22px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; background: #eaefe4; color: #5a6652; }
.ugyfel-csomag li.van .jel { background: var(--forest); color: #fff; }
.ugyfel-csomag li.nincs > span:nth-child(2) { color: var(--muted); }
.ugyfel-csomag li > span:nth-child(2) { flex: 1 1 auto; }
.ugyfel-csomag small { color: var(--muted); font-weight: 700; font-size: 14px; }
.ugyfel-kitoltes-sav { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.ugyfel-kitoltes-sav .ukep-mero { flex: 1 1 auto; }
.ugyfel-kitoltes-sav strong { font-size: 1.1rem; }
.ugyfel-teendok { list-style: none; margin: 0; padding: 0; }
.ugyfel-teendok a { display: flex; align-items: center; gap: 10px; padding: 8px 0; color: var(--ink); text-decoration: none; border-bottom: 1px solid #eaefe4; }
.ugyfel-teendok li:last-child a { border-bottom: 0; }
.ugyfel-teendok a::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 999px; background: var(--cta); }
.ugyfel-teendok a span { flex: 1 1 auto; }
.ugyfel-teendok a b { flex: none; color: var(--forest); font-size: .92rem; }
.ugyfel-teendok a:hover b { color: var(--cta); }
.ucs-ido { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin: 0 0 24px; padding: 20px 24px; border-radius: 12px; border: 1px solid var(--yellow); background: #fff4c2; }
.ucs-ido > div { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.ucs-ido strong { font-family: var(--serif); font-weight: 400; font-size: 1.45rem; line-height: 1.25; color: #304d14; }
.ucs-ido p { margin: 0; color: #3b4a2e; }
.ucs-ido-sav { height: 10px; border-radius: 999px; background: #fff; border: 1px solid #e6d48a; overflow: hidden; }
.ucs-ido-sav span { display: block; height: 100%; background: var(--cta); }
.ucs-ido.rendben { background: #fff; border-color: var(--line); padding: 16px 24px; }
.ucs-ido.rendben strong { font-family: inherit; font-size: 1.05rem; font-weight: 700; color: var(--forest); }
.ucs-ido.lejart { background: #fdece4; border-color: var(--cta); }
.ucs-ido.lejart strong { color: #7c2a08; }
/* Összetett keresés: a bejelölt jellemző ikonja sárga a zöld körben (2026-11-04) */
.kereso-jellemzok .check input:checked ~ .feat-ikon { background: var(--forest); }
.kereso-jellemzok .check input:checked ~ .feat-ikon i { background: var(--yellow); }

/* Szálláshely adatlap, Kapcsolat doboz (2026-11-04; terv: "Kapcsolat doboz – két változat", A változat): felül a térkép a doboz teljes szélességében,
   a Google Térkép gombja bal alul ráül; alatta egyforma sorok zöld körben sárga ikonnal, nagybetűs kis felirattal és vastag értékkel */
.kapcsolat-doboz > h2:first-child { margin-bottom: 0; }
.kapcsolat-terkep { position: relative; margin: 0 calc(-1 * var(--px)); }
.kapcsolat-doboz .kapcsolat-terkep .mapbox { width: 100%; height: auto; aspect-ratio: 16 / 9; min-height: 200px; margin: 0; border-radius: 0; }
.kapcsolat-terkep-gomb { position: absolute; left: 12px; bottom: 12px; z-index: 1000; display: inline-flex; align-items: center; gap: 8px; max-width: calc(100% - 24px); min-height: 40px; padding: 0 14px; background: #fff; border-radius: 999px; box-shadow: 0 2px 8px rgba(28, 42, 28, .25); color: var(--forest); font-size: 15px; font-weight: 800; line-height: 1.2; text-decoration: none; }
.kapcsolat-terkep-gomb svg { flex: none; }
.kapcsolat-terkep-gomb:not(.btn):not(.fh-btn):not(.skip-link):not(.brand):not([aria-current]):hover { background: var(--yellow); color: #304d14; }
.kapcsolat-doboz .kapcsolat-sorok { display: block; margin: 6px 0 0; padding: 0; }
.kapcsolat-sor { display: flex; align-items: center; gap: 14px; padding: 13px 0; border-top: 1px solid #eaefe4; }
.kapcsolat-sor:first-child { border-top: 0; }
.kapcsolat-sor > div { flex: 1 1 auto; min-width: 0; }
.kapcsolat-ikon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--mezo-hatter); color: var(--forest); }   /* világoszöld háttéren zöld ikon (2026-11-04); a kör 52 px, az ikon 28 px */
.kapcsolat-ikon svg { width: 28px; height: 28px; }
body:not(.admin-body) .kapcsolat-doboz .kapcsolat-sor dt { font-size: 14px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--forest); line-height: 1.3; }
.kapcsolat-doboz .kapcsolat-sor dd { margin: 0; font-weight: 700; line-height: 1.3; word-break: break-word; }
.kapcsolat-doboz .kapcsolat-sor dd a { color: var(--ink); text-decoration: none; }
.kapcsolat-doboz .kapcsolat-sor dd a:hover { color: #c2410c; }
.kapcsolat-terkep-link { margin: 12px 0 0; }

/* ===== Egységes hézagok a külső felületen és az ügyfélkapuban (2026-11-05, a felhasználó kérésére; az admin változatlan) =====
   Hasábok között (oszlopköz): 32 px. Dobozok között (vízszintesen és függőlegesen is, kártyák, a diavetítés és a körülötte lévő dobozok is): 26 px.
   Új rács/doboz-csoportnál ezt a két változót használd, ne saját számot. A dobozok alatti margó a .panel / .content-page / .terkep-box stb. alapszabályában is ezt a változót kapja. */
:root { --oszlopkoz: 32px; --dobozkoz: 26px; }
body:not(.admin-body) .fh-layout,
body:not(.admin-body) .layout-list,
body:not(.admin-body) .adatlap-racs,
body:not(.admin-body) .ketto-doboz,
body:not(.admin-body) .fh-ketto,
body:not(.admin-body) .packages,
body:not(.admin-body) .csomag-sor,
body:not(.admin-body) .ucs-ossz-racs,
body:not(.admin-body) .ugyfel-keret { gap: var(--dobozkoz) var(--oszlopkoz); }
body:not(.admin-body) .oldalsav-layout { column-gap: var(--oszlopkoz); }
body:not(.admin-body) .fh-cards,
body:not(.admin-body) .kartya-racs,
body:not(.admin-body) .grid,
body:not(.admin-body) .fh-side,
body:not(.admin-body) .fh-ketto-bal,
body:not(.admin-body) .kiemelt-lista,
body:not(.admin-body) .package-extrak,
body:not(.admin-body) .ugyfel-kartyak,
body:not(.admin-body) .ugyfel-oldalsav,
body:not(.admin-body) .bemutatkozas-oldal { gap: var(--dobozkoz); }
body:not(.admin-body) .adatlap-racs,
body:not(.admin-body) .ketto-doboz,
body:not(.admin-body) .fh-ketto,
body:not(.admin-body) .csomag-sor,
body:not(.admin-body) .hcard,
body:not(.admin-body) .kereso-oldal .filters { margin-bottom: var(--dobozkoz); }
/* ===== Dobozok és kártyák lekerekítése (2026-11-05, a felhasználó kérésére: 14 -> 18 px, a régi 12 px-es dobozok is; az admin változatlan) =====
   A legtöbb doboz és kártya a --radius változót használja (.panel, .card, .filters, .package, .side-links, .content-page, .hcard, .gallery, .kiemelt-lista li, süti-sáv, a dobozok sárga fejlécsávja: --radius - 1px).
   Új doboznál/kártyánál ezt a változót használd, ne fix px-et. A kisebb elemek (gombok, mezők, csempék, jelvények) lekerekítése változatlan. */
body:not(.admin-body) { --radius: 18px; }
body:not(.admin-body) .fh-layout .fh-box,
body:not(.admin-body) .oldalsav .fh-box,
body:not(.admin-body) .terkep-box,
body:not(.admin-body) .fh-search,
body:not(.admin-body) .klip,
body:not(.admin-body) .diavetites,
body:not(.admin-body) .fh-intro-map img,
body:not(.admin-body) .ucs-ido,
body:not(.admin-body) .ucs-nyitott,
body:not(.admin-body) .szla-sor,
body:not(.admin-body) .ukep-kartya,
body:not(.admin-body) .kep-kartya { border-radius: var(--radius); }
body:not(.admin-body) .fh-search > .fh-search-cim { border-radius: var(--radius) var(--radius) 0 0; }
/* ===== Listanézet: a szálláshely MINDEN bejelölt jellemzőjének ikonja (2026-11-06; a kártyákon nincs jellemző-ikon) =====
   Sok ikon több sorba törik; a „Részletek” gomb a sor végén marad. */
.hcard .foot { align-items: flex-end; }
.hcard .foot .feat { flex: 1 1 0; min-width: 0; flex-wrap: wrap; margin-right: 0; }
.hcard .foot .btn { flex: none; }
/* ===== Listanézet: keskeny eredmény-oszlopban álló (képes) sor, mint telefonon (2026-11-06, a felhasználó kérésére) =====
   1151–1400 px között a bal oldali keresőűrlap mellett az eredmény-oszlop szűk (kb. 670–870 px), ezért a szálláshely-sor kártyaszerű: felül a kép, alatta a szöveg.
   1001–1150 px között ugyanez, de csak ott, ahol az űrlap még a bal oldali oszlopban áll (/kereses paraméter nélkül, `.kereso-oldal`); a többi listaoldalon (régió, megye, találatok...) az eredmény 1150 px alatt teljes szélességű, ott a vízszintes sor marad.
   1000 px-ig (820-ig) és 1400 px fölött a megszokott vízszintes sor; 820 px alatt a régi telefonos szabály. */
@media (min-width: 1151px) and (max-width: 1400px) {
  body:not(.admin-body) .layout-list .hcard { grid-template-columns: minmax(0, 1fr); }
  body:not(.admin-body) .layout-list .hcard .thumb { min-height: 0; aspect-ratio: 16 / 10; }
}
@media (min-width: 1001px) and (max-width: 1150px) {
  body:not(.admin-body) .layout-list:has(.kereso-oldal) .hcard { grid-template-columns: minmax(0, 1fr); }
  body:not(.admin-body) .layout-list:has(.kereso-oldal) .hcard .thumb { min-height: 0; aspect-ratio: 16 / 10; }
}
/* ===== Kiemelt ajánlatok hasáb: 1400 px-től lefelé fokozatosan keskenyebb (2026-11-06, a felhasználó kérésére) =====
   1400 px-en már 358 px (1400 fölött 370 px), 1151 px-en 300 px; 1150 px alatt a hasáb a tartalom alá kerül (ott a régi szabály érvényes). Az `.oldalsav-layout` az adatlapon, a Kedvencek, Szálláshelyeknek, Impresszum, szöveges és blog oldalakon közös. */
@media (min-width: 1151px) and (max-width: 1400px) {
  .oldalsav-layout { grid-template-columns: minmax(0, 1fr) clamp(300px, calc(23.29vw + 32px), 358px); }
}
/* ===== Oldalmargó 1200–1400 px között 22 px (2026-11-06, a felhasználó kérésére); 1400 px fölött 28 px, 1200 px alatt 16 px ===== */
@media (min-width: 1200px) and (max-width: 1400px) {
  .wrap, .wrap.narrow { width: min(100% - 44px, var(--maxw)); }
}
/* Telefonon a Kapcsolat-doboz kisfeliratai is legalább 15 px-esek (a fenti telefonos szabály a későbbi, 14 px-es szabály miatt itt ismétlődik) */
@media (max-width: 560px) {
  body:not(.admin-body) .kapcsolat-doboz .kapcsolat-sor dt { font-size: 15px; }
}
/* Telefonon a korábban 15 px-es szövegek 16 pxesek (2026-11-06, a felhasználó kérésére): a kapszulák (régió/megye/település az adatlapon, településsor a megyeoldalon), a térképgomb, a „Szűkítés településre” felirat, az ügyfélkapu ikonkép-gombja */
@media (max-width: 560px) {
  body:not(.admin-body) .title-row .hely-sor a.hely-kapszula, body:not(.admin-body) .tsz-lista li a,
  body:not(.admin-body) .kapcsolat-terkep-gomb, body:not(.admin-body) .telepules-szukites strong, body:not(.admin-body) .ukep-ikon-gomb { font-size: 16px; }
}
/* Telefonon (560 px-ig; 2026-11-06, a felhasználó kérésére): főmenü 17 px (volt 18), főcím (H1) és szakaszcímek 25 px (volt 24; a --fh-cim változó adja: h1, .fh-heading, .fh-title; a dobozcímek, pl. .terkep-cim, a --doboz-cim szerint 22 px-esek maradtak) */
@media (max-width: 560px) {
  .main-nav a { font-size: 17px; }
  body:not(.admin-body) { --fh-cim: 29.5px; }
}

/* ===== Címsor-betűk (2026-11-08, a felhasználó kérésére): a címek (H1/H2, szakaszcímek) Sansita, NAGYOBB méretben; a SÁRGA doboz-fejlécek Bitter, félkövér ===== */
:root { --doboz-betu: "Bitter", Georgia, "Times New Roman", Times, serif; }
@media (min-width: 561px) { body:not(.admin-body) { --fh-cim: clamp(29.5px, 1rem + 1.5vw, 40px); } }
.fh-hero-title { font-size: clamp(2rem, 1.25rem + 2.55vw, 61px); }
body .szoveg-dobozok .szoveg-csoportcim { font-size: calc(var(--doboz-cim) + 4px); }
body .panel > h1:first-child, body .panel > h2:first-child, body .filters > h2:first-child, body .side-links > h3:first-child, body .package > h3:first-child,
body .fh-layout .fh-box > h2:first-child, body .oldalsav .fh-box > h2:first-child, body .terkep-cim, body .fh-search > .fh-search-cim, body .terkep-popup .terkep-popup-fej,
body:not(.admin-body) .fh-search > .fh-search-cim { font-family: var(--doboz-betu); font-weight: 550; }

/* Szálláskártyák, listadobozok és a főoldali / Kiemelt dobozok szállásneve is Bitter (2026-11-08, a felhasználó kérésére) */
body .card h3, body .card h3 a, body .fh-cards .card h3, body .fh-cards .card h3 a, body .hcard h2, body .hcard h2 a,
body .fh-name, body .kiemelt-lista .fh-name, body .fh-side .fh-box .fh-name { font-family: var(--doboz-betu); font-weight: 550; }

/* Nyitvatartás és NTAK-szám az adatlapon: kicsit nagyobb, zöld betűvel (2026-11-08, a felhasználó kérésére; asztalon 19, táblagépen 18, telefonon 17 px) */
body:not(.admin-body) .fej-adatok .fej-adat, body:not(.admin-body) .fej-adatok .fej-adat strong { color: var(--forest); font-size: 19px; }
@media (max-width: 1150px) { body:not(.admin-body) .fej-adatok .fej-adat, body:not(.admin-body) .fej-adatok .fej-adat strong { font-size: 18px; } }
@media (max-width: 560px) { body:not(.admin-body) .fej-adatok .fej-adat, body:not(.admin-body) .fej-adatok .fej-adat strong { font-size: 17px; } }

/* Lábléc főcímek (Gyors linkek, Információk, Kapcsolat): Bitter, mint a sárga doboz-fejlécek (2026-11-08, a felhasználó kérésére) */
body .site-footer h4 { font-family: var(--doboz-betu); font-weight: 550; }

/* Fejléc menü (2026-11-08, a felhasználó kérésére): a betűtípus (Nunito) marad; a vastagság 700 → 600, a főmenü betűmérete 18 → 19 px (telefonon 17 → 18 px), a színe a szürkés helyett márkazöld */
body .main-nav a { font-weight: 600; font-size: 20px; line-height: 30.4px; color: var(--forest); }   /* a sormagasság fix, hogy a nagyobb betű ne tegye magasabbra a sávot */
body .main-nav a[aria-current="page"] { color: var(--forest); }
body .fav-link, body .menu-toggle { font-weight: 600; }
@media (max-width: 560px) { body .main-nav a { font-size: 19px; } }

/* A zöld felső sáv linkjei (Szálláshelyeknek, Szállás hirdetés, Ügyfélkapu): nagyobb, FIX 18 px minden szélességen, amíg meg nem jelenik a hamburgermenü (1150 px alatt a sáv linkjei elrejtve vannak) (2026-11-08, a felhasználó kérésére; volt .92rem = 15,5–16,9 px, szélességgel csökkenő) */
body .top-links { font-size: 18px; }

/* ===== Szállásadóknak oldal (2026-11-08, dizájnterv szerint; szd-* osztályok a szallasadoknak.php-ban) ===== */
.szd-oldal { display: flex; flex-direction: column; gap: var(--dobozkoz, 26px); }
body:not(.admin-body) .szd-oldal > * { margin: 0; }
/* hirdetés szálláshelyeknek a főoldal jobb oldali sávjában (.fh-hirdetes, index.php): mondat, jelzések, díj-kártya, gombok */
.szd-lead { margin: 0; font-size: 1.15rem; line-height: 1.5; }
.szd-jelzesek { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.szd-jelzesek li { display: inline-flex; align-items: center; gap: 8px; background: var(--mezo-hatter); color: var(--forest); font-weight: 700; font-size: 17px; padding: 8px 16px 8px 12px; border-radius: 999px; }
.szd-jelzesek svg { width: 20px; height: 20px; flex: none; }
.szd-gombok { margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 12px; }
.szd-kartya { box-sizing: border-box; background: linear-gradient(160deg, #446d1c, #598424); border-radius: var(--radius); padding: 28px; color: #fff; display: flex; flex-direction: column; justify-content: center; gap: 6px; font-size: 18px; }
.szd-kartya-felirat { font-size: 16px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--yellow); }
.szd-kartya-ar { font-family: var(--serif); font-size: 54px; line-height: 1.1; }
.szd-kartya-ar small { font-family: var(--font); font-size: 20px; font-weight: 700; color: var(--yellow); }
.szd-kartya-vonal { height: 1px; background: rgba(255,255,255,.35); margin: 10px 0; }
/* miért érdemes: ikonos, kétoszlopos rács a sárga fejlécű dobozban */
.szd-elonyok { column-count: 2; column-gap: 32px; }   /* mindig két hasáb (700 px alatt egy): a pontok sorban követik egymást, előbb tölti a bal hasábot, aztán a jobbat; nem kell soronként egy vonalban lenniük */
.szd-elony { display: flex; gap: 16px; align-items: flex-start; break-inside: avoid; margin: 0 0 26px; }
.szd-elonyok .szd-elony:last-child { margin-bottom: 0; }
.szd-elony p { margin: 0; }
.szd-ikon { flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--mezo-hatter); color: var(--forest); display: flex; align-items: center; justify-content: center; }
.szd-ikon svg { width: 24px; height: 24px; }
/* két halványzöld kártya */
.szd-kozosseg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dobozkoz, 26px) var(--oszlopkoz, 32px); align-items: start; }   /* két egyenlő szélességű oszlop (900 px alatt egymás alatt) */
.szd-infok { display: flex; flex-direction: column; gap: var(--dobozkoz, 26px); }
.szd-info { background: var(--mezo-hatter); border-radius: var(--radius); padding: 28px; }
.szd-info h2 { margin: 0 0 10px; font-family: "Bitter", Georgia, "Times New Roman", Times, serif; font-weight: 550; font-size: 24px; line-height: 1.25; color: var(--forest); }
.szd-info p { margin: 0; }
/* Facebook: doboz nélkül, balra a szöveg, jobbra a két csoport gombja */
.szd-fb { display: block; padding: 0; }   /* a globális section { padding: 56px 0 } itt nem kell */

.szd-fb p { margin: 0; }
.szd-fb-gombok { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.szd-fb-gombok .btn { text-align: center; }
@media (max-width: 900px) { .szd-kozosseg { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) { .szd-elonyok { column-count: 1; } }
/* csomagok */
body:not(.admin-body) .packages { margin: 0; gap: var(--dobozkoz, 26px) var(--oszlopkoz, 32px); align-items: stretch; }
body:not(.admin-body) .package-main { display: flex; flex-direction: column; border: 1px solid var(--line); }   /* ugyanaz a szegély, mint a többi doboznak */
body:not(.admin-body) .package-main .price { font-family: var(--serif); font-size: 36px; font-weight: 400; line-height: 1.1; color: var(--forest); margin: 18px 0; }
body:not(.admin-body) .package-extrak .price { font-family: var(--serif); font-size: 30px; font-weight: 400; line-height: 1.2; color: var(--forest); margin: 0; white-space: nowrap; }
body:not(.admin-body) .package .price span { font-family: var(--font); font-size: 17px; font-weight: 700; color: var(--muted); margin-left: 4px; }
.package-sor { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; justify-content: space-between; }
.package-sor > p:first-child { flex: 1 1 260px; margin: 0; }
.szd-ajandek { margin-top: auto; background: #fff6d6; border: 1px solid #f1dd8c; border-radius: 14px; padding: 18px 20px; }
.szd-ajandek p { margin: 0; }
.szd-ajandek b { color: #304d14; }
/* záró felhívás */
.szd-oldal > .szd-cta { text-align: center; padding: 8px 0 0; }   /* doboz nélkül, a háttéren (a szakaszok alap felső-alsó belső tere nem kell) */
.szd-cta .fh-heading { margin: 0 0 16px; }
.szd-cta p { margin: 0; }
@media (max-width: 560px) {
  .szd-kartya-ar { font-size: 44px; }
  body:not(.admin-body) .package-main .price { font-size: 32px; }
  body:not(.admin-body) .package-extrak .price { font-size: 27px; }
}

/* Főoldal jobb oldali sáv: hirdetés szálláshelyeknek (2026-11-08) */
.fh-layout .fh-hirdetes { display: flex; flex-direction: column; gap: 16px; }
.fh-layout .fh-hirdetes > h2:first-child { margin-bottom: 2px; }
.fh-hirdetes .szd-lead { font-size: 1rem; }
.fh-hirdetes .szd-gombok { margin: 2px 0 0; }

/* ===== Telefon (560 px-ig), apróbb javítások (2026-11-09, a felhasználó kérésére) ===== */
@media (max-width: 560px) {
  /* listanézet: a „Részletek” gomb az ikonos jellemzők ALATT áll (nem mellettük) */
  body:not(.admin-body) .hcard .foot { flex-direction: column; align-items: flex-start; gap: 12px; }
  body:not(.admin-body) .hcard .foot .feat { flex: none; width: 100%; }
  /* főoldal: a „Fedezd fel hazánk legjobb…” főcím 1 px-szel nagyobb (volt 32 px) */
  body:not(.admin-body) .fh-hero-title { font-size: calc(clamp(2rem, 1.25rem + 2.55vw, 61px) + 1px); }
  /* a kártyákon a szállásnév 1 px-szel nagyobb (volt 20 px) */
  body:not(.admin-body) .card h3, body:not(.admin-body) .card h3 a, body:not(.admin-body) .fh-cards .card h3, body:not(.admin-body) .fh-cards .card h3 a { font-size: 21px; }
  /* lábléc: a linkek és a címek 1 px-szel nagyobbak (volt 15 és 20 px), a szerzői jog sora 1 px-szel kisebb (volt 16 px) */
  body:not(.admin-body) .site-footer ul { font-size: 16px; }
  body:not(.admin-body) .site-footer h4 { font-size: 21px; }
  body:not(.admin-body) .site-footer .copyright, body:not(.admin-body) .site-footer .copyright span, body:not(.admin-body) .site-footer .copyright .link-gomb { font-size: 15px; }
}