/* Császár Faház — csaszarfahaz.hu
   Paletta: pára #F4F7F2 · fenyő #22382E · balatoni víz #7FB5A2 · gerenda #B4834E · nap #E9A23B */

:root {
    --para: #F4F7F2;
    --fenyo: #22382E;
    --fenyo-melly: #1A2B23;
    --viz: #7FB5A2;
    --viz-halvany: #E2EFE9;
    --fa: #B4834E;
    --nap: #E9A23B;
    --nap-sotet: #C9861F;
    --hiba: #A83A2E;
    --display: "Zilla Slab", Georgia, serif;
    --body: "Karla", "Segoe UI", sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--body);
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--fenyo);
    background: var(--para);
}

.shell { max-width: 68rem; margin: 0 auto; padding: 0 1.25rem; }

h1, h2, h3 { font-family: var(--display); font-weight: 600; line-height: 1.15; }

a { color: var(--fenyo); text-underline-offset: 3px; }

:focus-visible { outline: 3px solid var(--nap); outline-offset: 2px; border-radius: 2px; }

/* --- fejléc --- */
.topbar { position: sticky; top: 0; z-index: 10; background: color-mix(in srgb, var(--para) 92%, transparent); backdrop-filter: blur(6px); border-bottom: 1px solid var(--viz-halvany); }
.topbar-row { display: flex; align-items: center; justify-content: space-between; padding-top: .7rem; padding-bottom: .7rem; }
.brand { font-family: var(--display); font-weight: 700; font-size: 1.2rem; text-decoration: none; letter-spacing: .01em; }
.topnav { display: flex; gap: 1.3rem; align-items: center; }
.topnav a { text-decoration: none; font-weight: 500; font-size: .95rem; }
.topnav a:hover { color: var(--nap-sotet); }
.nav-cta { background: var(--fenyo); color: var(--para) !important; padding: .45rem .95rem; border-radius: 999px; }
.nav-cta:hover { background: var(--fenyo-melly); color: var(--para) !important; }

/* --- fotó-hero --- */
.hero-foto { position: relative; min-height: min(92vh, 54rem); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.hero-kep { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 43, 35, .35) 0%, rgba(26, 43, 35, 0) 30%, rgba(26, 43, 35, .78) 100%); }
.hero-tartalom { position: relative; z-index: 1; color: #fff; display: flex; flex-direction: column; gap: .9rem; padding-bottom: 2rem; width: 100%; }
.eyebrow { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .92; }
.hero-foto h1 { font-size: clamp(2.6rem, 7vw, 4.6rem); text-shadow: 0 2px 18px rgba(0, 0, 0, .35); }
.lead { max-width: 34em; font-size: clamp(1rem, 2.2vw, 1.2rem); text-shadow: 0 1px 10px rgba(0, 0, 0, .4); }
.ertekeles { font-size: 1rem; }
.ertekeles strong { color: var(--nap); }
.hero-gombok { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: .3rem; }
.btn-uveg { background: rgba(255, 255, 255, .16); color: #fff; border: 1.5px solid rgba(255, 255, 255, .65); backdrop-filter: blur(4px); }
.btn-uveg:hover { background: rgba(255, 255, 255, .32); }
.hero-adatok { position: relative; z-index: 1; list-style: none; display: flex; flex-wrap: wrap; gap: 0; background: var(--fenyo-melly); color: var(--para); width: 100%; justify-content: center; }
.hero-adatok li { padding: .85rem 1.6rem; font-weight: 700; font-size: .95rem; }
.hero-adatok li + li { border-left: 1px solid rgba(255, 255, 255, .18); }

/* --- galéria-mozaik + lightbox --- */
.mozaik { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 11rem; gap: .6rem; }
.mozaik-elem { padding: 0; border: none; background: var(--viz-halvany); border-radius: 12px; overflow: hidden; cursor: pointer; }
.mozaik-elem img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.mozaik-elem:hover img { transform: scale(1.045); }
.mozaik-elem:first-child { grid-column: span 2; grid-row: span 2; }
.mozaik-tobbi { font: inherit; font-weight: 700; color: var(--fenyo); background: var(--viz-halvany); border: 2px dashed var(--viz); }
.mozaik-tobbi:hover { background: #fff; }
.lightbox { border: none; background: rgba(20, 30, 25, .96); padding: 0; width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; display: none; align-items: center; justify-content: center; }
.lightbox[open] { display: flex; }
.lightbox img { max-width: min(92vw, 80rem); max-height: 86vh; object-fit: contain; border-radius: 6px; }
.lb-gomb { position: absolute; font-size: 1.6rem; background: rgba(255, 255, 255, .12); color: #fff; border: none; border-radius: 999px; width: 3rem; height: 3rem; cursor: pointer; display: grid; place-items: center; }
.lb-gomb:hover { background: rgba(255, 255, 255, .3); }
.lb-bezar { top: 1rem; right: 1rem; }
.lb-elozo { left: 1rem; top: 50%; translate: 0 -50%; }
.lb-kovetkezo { right: 1rem; top: 50%; translate: 0 -50%; }
.lb-szamlalo { position: absolute; bottom: 1rem; left: 50%; translate: -50% 0; color: rgba(255, 255, 255, .85); font-size: .9rem; }

/* --- felszereltség + jó tudni --- */
.felszereltseg { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .55rem .9rem; }
.felszereltseg li { background: #fff; border: 1px solid var(--viz-halvany); border-radius: 9px; padding: .55rem .8rem; font-size: .93rem; }
.jotudni { margin-top: 1.8rem; background: var(--viz-halvany); border-left: 5px solid var(--viz); border-radius: 0 10px 10px 0; padding: 1rem 1.3rem; max-width: 46rem; }
.jotudni h3 { margin-bottom: .3rem; }

.btn { display: inline-block; font-family: var(--body); font-weight: 700; font-size: 1.05rem; text-decoration: none; border: none; border-radius: 999px; padding: .8rem 1.7rem; cursor: pointer; }
.btn-nap { background: var(--nap); color: var(--fenyo-melly); align-self: flex-start; box-shadow: 0 2px 0 var(--nap-sotet); }
.btn-nap:hover { background: var(--nap-sotet); color: var(--para); }
.btn-nap:disabled { opacity: .5; cursor: not-allowed; }

/* --- szekciók --- */
.section { padding: 3.2rem 1.25rem 2.6rem; }
.section h2 { font-size: clamp(1.7rem, 4vw, 2.3rem); margin-bottom: 1.2rem; position: relative; padding-left: .9rem; }
.section h2::before { content: ""; position: absolute; left: 0; top: .18em; bottom: .18em; width: 5px; border-radius: 3px; background: var(--fa); }

.wave { display: block; width: 100%; height: 24px; }

/* --- a ház --- */
.haz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
.haz-text { max-width: 34em; }
.galeria { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.galeria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.foto-hely { aspect-ratio: 4 / 3; border-radius: 10px; border: 2px dashed var(--viz); background: repeating-linear-gradient(45deg, var(--viz-halvany) 0 12px, var(--para) 12px 24px); display: grid; place-items: center; }
.foto-hely span { font-size: .85rem; font-weight: 700; color: var(--fenyo); opacity: .65; background: var(--para); padding: .2rem .7rem; border-radius: 999px; }

/* --- árak --- */
.artabla { border-collapse: collapse; min-width: min(30rem, 100%); }
.artabla th, .artabla td { text-align: left; padding: .65rem .9rem; border-bottom: 1px solid var(--viz-halvany); }
.artabla th { font-weight: 500; }
.artabla td { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.apro { font-size: .88rem; opacity: .75; margin-top: .8rem; max-width: 44em; }

/* --- naptár --- */
.jelmagyarazat { display: flex; align-items: center; gap: .45rem; font-size: .9rem; margin-bottom: 1rem; }
.minta { width: 1rem; height: 1rem; border-radius: 4px; display: inline-block; }
.minta-szabad { background: #fff; border: 1px solid var(--viz); }
.minta-foglalt { background: var(--fenyo); opacity: .8; margin-left: 1rem; }
.minta-zarva { background: repeating-linear-gradient(45deg, #C9C4B8 0 4px, #EDEAE3 4px 8px); margin-left: 1rem; }
.honapok { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.4rem; }
.honap h3 { font-size: 1.05rem; margin-bottom: .5rem; text-transform: capitalize; }
.honap table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.honap th { font-size: .7rem; font-weight: 700; letter-spacing: .05em; opacity: .6; padding: .25rem 0; }
.honap td { text-align: center; padding: .32rem 0; font-size: .92rem; border-radius: 6px; }
.honap td.szabad { background: #fff; box-shadow: inset 0 0 0 1px var(--viz-halvany); }
.honap td.foglalt { background: var(--fenyo); color: var(--para); opacity: .85; }
.honap td.zarva { background: repeating-linear-gradient(45deg, #C9C4B8 0 4px, #EDEAE3 4px 8px); color: #6B655A; }
.honap td.mult { opacity: .35; }

/* --- foglalás --- */
.foglalas-sav { background: linear-gradient(var(--viz-halvany), var(--para)); border-top: 4px solid var(--viz); }
.foglalo { display: flex; flex-direction: column; gap: 1.1rem; max-width: 44rem; }
.mezo-sor { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
.mezo-sor-4 { grid-template-columns: repeat(4, 1fr); }
.foglalo label { display: flex; flex-direction: column; gap: .3rem; font-size: .9rem; font-weight: 700; }
.foglalo input, .foglalo select {
    font: inherit; font-weight: 400; padding: .6rem .7rem; border: 1.5px solid var(--viz);
    border-radius: 8px; background: #fff; color: var(--fenyo); min-width: 0;
}
.foglalo input:hover, .foglalo select:hover { border-color: var(--fenyo); }
.gdpr { flex-direction: row !important; align-items: flex-start; gap: .6rem !important; font-weight: 400 !important; max-width: 40em; }
.gdpr input { accent-color: var(--fenyo); margin-top: .25rem; }
.arbontas { background: #fff; border: 1.5px solid var(--fa); border-radius: 10px; padding: .8rem 1.1rem; max-width: 30rem; }
.ar-sor { display: flex; justify-content: space-between; gap: 1.5rem; padding: .3rem 0; font-size: .95rem; }
.ar-sor + .ar-sor { border-top: 1px solid var(--viz-halvany); }
.ar-sor span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ar-osszeg { font-weight: 700; font-size: 1.1rem; border-top: 2px solid var(--fenyo) !important; margin-top: .2rem; padding-top: .5rem; }
.ar-hiba { color: var(--hiba); font-weight: 700; }
.foglalo label small { font-weight: 400; opacity: .7; font-size: .8rem; }
.artabla th small { font-weight: 400; opacity: .7; }
.kedvezmenyek { margin-top: 1.4rem; background: var(--viz-halvany); border-radius: 10px; padding: .9rem 1.2rem; max-width: 34rem; }
.kedvezmenyek h3 { font-size: 1.05rem; margin-bottom: .4rem; }
.kedvezmenyek ul { padding-left: 1.2rem; }
.hibak { background: #FBEAE7; border: 1.5px solid var(--hiba); color: var(--hiba); border-radius: 8px; padding: .8rem 1rem; margin-bottom: 1.1rem; max-width: 44rem; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* --- siker-oldal --- */
.success-page { display: grid; place-items: center; min-height: 80vh; padding: 1.5rem; }
.success-card { background: #fff; border: 1.5px solid var(--viz); border-radius: 14px; padding: 2.2rem; max-width: 34rem; display: flex; flex-direction: column; gap: .9rem; }
.success-card h1 { font-size: 1.7rem; }

/* --- lábléc --- */
.footer { background: var(--fenyo); color: var(--para); margin-top: 3rem; }
.footer a { color: var(--para); }
.footer-grid { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem; padding-top: 2rem; padding-bottom: 2rem; font-size: .95rem; }
.footer-name { font-family: var(--display); font-weight: 700; font-size: 1.15rem; }

/* --- vendég foglalás-oldal --- */
.foglalas-kartya { background: #fff; border: 1.5px solid var(--viz); border-radius: 12px; padding: 1.2rem 1.4rem; max-width: 34rem; }
.statusz { font-weight: 700; margin-bottom: .6rem; }

/* --- admin --- */
.uzenet { background: var(--viz-halvany); border: 1.5px solid var(--viz); border-radius: 8px; padding: .8rem 1rem; margin-top: 1.2rem; }
.admin-tabla { width: 100%; border-collapse: collapse; font-size: .95rem; }
.admin-tabla th, .admin-tabla td { text-align: left; padding: .5rem .7rem; border-bottom: 1px solid var(--viz-halvany); vertical-align: top; }
.sor-lemondva { opacity: .45; text-decoration: line-through; }
.gomb-kicsi { font: inherit; font-size: .82rem; font-weight: 700; background: none; border: 1.5px solid var(--hiba); color: var(--hiba); border-radius: 999px; padding: .2rem .7rem; cursor: pointer; }
.gomb-kicsi:hover { background: var(--hiba); color: #fff; }
.linkgomb { font: inherit; cursor: pointer; border: none; }
.alcim { margin-top: 2rem; margin-bottom: .6rem; }
.foglalo textarea { font: inherit; font-weight: 400; padding: .6rem .7rem; border: 1.5px solid var(--viz); border-radius: 8px; background: #fff; resize: vertical; }
code { font-size: .85rem; word-break: break-all; background: var(--viz-halvany); padding: .15rem .4rem; border-radius: 4px; }

/* --- tartalmi aloldal (adatkezelés) --- */
.proza { padding-top: 2.5rem; }
.proza h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); margin-bottom: 1.2rem; }
.proza h2 { font-size: 1.25rem; margin: 1.6rem 0 .5rem; }
.proza p, .proza li { max-width: 44em; margin-bottom: .6rem; }
.proza ul { padding-left: 1.4rem; }

@media (max-width: 46rem) {
    .haz-grid, .mezo-sor, .mezo-sor-4, .felszereltseg { grid-template-columns: 1fr; }
    .topnav { gap: .8rem; }
    .topnav a:not(.nav-cta) { display: none; }
    .mozaik { grid-template-columns: 1fr 1fr; grid-auto-rows: 8.5rem; }
    .hero-adatok li { padding: .6rem .8rem; font-size: .82rem; }
    .hero-foto { min-height: 78vh; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
