.zsf { --zsf-accent:#a04b60; --zsf-ink:#27242c; --zsf-muted:#6d6772; --zsf-line:#e6dfe5; --zsf-soft:#faf6f8; --zsf-white:#fff; max-width:860px; margin:24px auto; padding:clamp(18px,4vw,38px); background:var(--zsf-white); border:1px solid var(--zsf-line); border-radius:20px; color:var(--zsf-ink); box-shadow:0 14px 60px rgba(45,26,42,.06); font-size:16px; line-height:1.5; box-sizing:border-box; }
.zsf * {box-sizing:border-box}
.zsf-head {margin-bottom:22px}
.zsf-eyebrow {font-size:.76rem; font-weight:800; letter-spacing:.17em; color:var(--zsf-accent)}
.zsf h2 {font-size:clamp(1.5rem,4vw,2.4rem); line-height:1.17; margin:12px 0 9px; color:var(--zsf-ink); font-weight:750}
.zsf p {margin:.35rem 0; color:var(--zsf-muted)}
.zsf-warning {background:#fff9e9; border:1px solid #f2deb0; color:#594318; border-radius:10px; padding:14px 16px; margin:22px 0 10px; font-size:.92rem}
.zsf-fieldset {border:0; border-bottom:1px solid var(--zsf-line); margin:0; padding:26px 0; min-width:0}
.zsf-fieldset legend {display:block; float:left; width:100%; padding:0; margin:0 0 17px; font-weight:750; font-size:1.13rem; color:var(--zsf-ink)}
.zsf-fieldset legend::after {content:''; display:block; clear:both}
.zsf-number {display:inline-flex; align-items:center; justify-content:center; color:var(--zsf-accent); background:#faebf0; width:30px; height:30px; border-radius:50%; margin-right:9px; font-size:.95rem}
.zsf-rooms {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; clear:both}
.zsf-room, .zsf-slot {cursor:pointer; position:relative; display:block}
.zsf-room input, .zsf-slot input {position:absolute; opacity:0; width:1px; height:1px; overflow:hidden}
.zsf-room span, .zsf-slot span {display:block; padding:16px 17px; background:var(--zsf-white); border:1.5px solid var(--zsf-line); border-radius:10px; font-weight:650; transition:.15s ease; text-align:center}
.zsf-room input:checked+span, .zsf-slot input:checked+span {border-color:var(--zsf-accent); background:#fbedf1; color:#763349; box-shadow:inset 0 0 0 .5px var(--zsf-accent)}
.zsf-room input:focus-visible+span, .zsf-slot input:focus-visible+span {outline:3px solid #c17b91; outline-offset:3px}
.zsf-label {display:block; font-weight:650; margin:4px 0 7px}
.zsf .zsf-date {padding:11px 12px; border:1px solid #bfb3bd; border-radius:9px; max-width:100%; width:220px; min-height:46px; font-family:inherit; font-size:1rem; background:#fff; color:var(--zsf-ink)}
.zsf-hint {font-size:.88rem; margin-top:9px!important}
.zsf-times {display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:20px; min-height:52px; color:var(--zsf-muted)}
.zsf-slot span {padding:12px 15px; font-size:.94rem; min-width:118px}
.zsf .zsf-times-note {width:100%; font-size:.8rem; margin-top:3px}
.zsf .zsf-empty {padding:10px 0; color:var(--zsf-muted)}
.zsf-fields {clear:both; display:grid; grid-template-columns:1fr 1fr; gap:15px}
.zsf-fields label {font-weight:650; display:flex; flex-direction:column; gap:6px; font-size:.93rem}
.zsf-fields label:nth-child(3), .zsf-wide {grid-column:1/-1}
.zsf input[type="text"],.zsf input[type="email"],.zsf input[type="tel"],.zsf textarea {min-width:0; width:100%; border:1px solid #c9bdc7; border-radius:9px; padding:11px 12px; font-size:1rem; line-height:1.45; font-family:inherit; color:var(--zsf-ink); background:var(--zsf-white)}
.zsf input:focus-visible, .zsf textarea:focus-visible {outline:2px solid var(--zsf-accent); outline-offset:1px}
.zsf-privacy {margin:18px 0 0; font-size:.87rem; font-weight:400; color:var(--zsf-muted); display:flex; align-items:flex-start; gap:8px}
.zsf-privacy input {margin:4px 0 0; flex:0 0 auto}
.zsf a {color:var(--zsf-accent)}
.zsf-trap {position:absolute!important; left:-9999px!important; opacity:0!important; height:0!important; overflow:hidden!important}
.zsf-submit {border:0; display:block; width:100%; border-radius:10px; padding:15px 18px; margin-top:22px; font-size:1.02rem; background:var(--zsf-accent); color:#fff; font-weight:750; cursor:pointer; transition:.15s ease}
.zsf-submit:hover:not(:disabled) {background:#82374a}
.zsf-submit:disabled {cursor:not-allowed; opacity:.75}
.zsf .zsf-foot {font-size:.79rem; text-align:center; margin-top:12px}
.zsf-result {display:none; margin-top:19px; border-radius:10px; padding:15px; white-space:pre-line; font-size:.96rem}
.zsf-result.zsf-success {display:block; background:#ebf8f2; color:#19533b; border:1px solid #a6d3bf}
.zsf-result.zsf-error {display:block; background:#fff0f0; color:#8e2631; border:1px solid #e5bdc4}
@media(max-width:620px){.zsf {border-radius:12px; padding:17px; margin:12px auto}.zsf-rooms,.zsf-fields {grid-template-columns:1fr}.zsf-fieldset {padding:22px 0}.zsf-room span {padding:13px}.zsf-slot {flex:1 1 calc(50% - 10px)}.zsf-slot span {min-width:0}.zsf-fields label {grid-column:1/-1}}

/* 1.2: karácsonyi csomagok */
.zsf-packages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;clear:both}
.zsf-package{display:block;position:relative;cursor:pointer}
.zsf-package input{position:absolute;opacity:0;width:1px;height:1px}
.zsf-package-inner{display:flex;flex-direction:column;gap:8px;align-items:flex-start;height:100%;min-height:145px;padding:18px 15px;border:1.5px solid var(--zsf-line);border-radius:12px;background:#fff;transition:border-color .15s,background .15s}
.zsf-package-inner strong{font-size:1rem;color:var(--zsf-ink)}
.zsf-package-inner em{font-style:normal;font-size:1.12rem;font-weight:800;color:var(--zsf-accent)}
.zsf-package-inner small{font-size:.81rem;font-weight:500;color:var(--zsf-muted)}
.zsf-package input:checked+.zsf-package-inner{border-color:var(--zsf-accent);background:#fbedf1;box-shadow:inset 0 0 0 .5px var(--zsf-accent)}
.zsf-package input:focus-visible+.zsf-package-inner{outline:3px solid #c17b91;outline-offset:3px}
.zsf select,.zsf input[type="number"]{min-width:0;width:100%;border:1px solid #c9bdc7;border-radius:9px;padding:11px 12px;min-height:46px;font-family:inherit;font-size:1rem;background:#fff;color:var(--zsf-ink)}
@media(max-width:680px){.zsf-packages{grid-template-columns:1fr}.zsf-package-inner{min-height:0;gap:4px}}

.zsf-season-note{max-width:780px;margin:25px auto;background:#fff9fb;border:1px solid #eacdd6;padding:25px;border-radius:14px;text-align:center;color:#312930}.zsf-season-note h2{font-size:1.6rem!important;margin:0 0 12px!important;color:#2d2933!important}.zsf-season-note a{display:inline-block;padding:12px 18px;border-radius:9px;background:#985067;color:#fff!important;text-decoration:none!important;font-weight:750}.zsf-season-note p{margin:12px 0}

/* 1.4 – Dreams ellenőrzés kiemelve; a WordPress-téma többi elemét nem érinti */
.zsf .zsf-studio-check{background:#fff8e7;border:2px solid #c28d3a;border-left:6px solid #a36b1f;padding:19px 21px;margin:24px 0 16px;box-shadow:0 4px 20px rgba(113,68,17,.08)}
.zsf .zsf-studio-heading{display:block;font-size:1.18rem;color:#614019;line-height:1.3;margin-bottom:9px}
.zsf .zsf-studio-check p{color:#52412c;margin:10px 0}
.zsf .zsf-dreams-link{display:inline-block;padding:12px 16px;color:#fff!important;background:#89526c;border-radius:9px;font-weight:750;text-decoration:none!important}
.zsf .zsf-dreams-link:hover{background:#713f57}
.zsf .zsf-room-any{grid-column:1/-1}
.zsf .zsf-room-any span{padding:18px 16px;border-style:dashed;border-color:#c18b9d;background:#fbf6f8}
.zsf .zsf-room-any span small{display:block;font-weight:450;font-size:.82rem;margin-top:4px;color:#6d6772}
.zsf .zsf-room-any input:checked+span{border-style:solid}
.zsf .zsf-dreams-confirm{border:1px solid #e0bc83;background:#fffaee;border-radius:10px;padding:12px 14px;align-items:flex-start}
@media(max-width:620px){.zsf .zsf-studio-check{padding:14px}.zsf .zsf-dreams-link{width:100%;text-align:center}}
