/* Feelmore booking bar (Lokáció / Mikor / Vendégek) with availability calendar. */
.fm-test-wrap{max-width:1100px;margin:40px auto;padding:0 16px}
.fm-test-wrap h2{margin:32px 0 12px}

.fm-bar{--fm-gold:#C1AE74;--fm-green:#003C30;--fm-green-hover:#0b5242;--fm-ink:#0F2425;--fm-line:rgba(15,36,37,.28);--fm-soft:#f5f1e6;--fm-faded:#a9a9a4;
  position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;background:var(--fm-gold);color:var(--fm-ink);padding:10px;font-family:inherit;line-height:1.3}
.fm-bar [hidden]{display:none!important}
.fm-bar svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* Reset the Elementor kit's button styles inside the bar. Layout lives in the base rule so component rules can override it;
   the state rules only touch paint properties, read from custom properties, so hovering never changes a button's size. */
.fm-bar.fm-bar button{border-radius:0;margin:0;padding:var(--pad,0);font:inherit;font-size:var(--size,inherit);font-weight:var(--weight,inherit);
  line-height:inherit;letter-spacing:normal;text-transform:none;text-align:inherit;transition:none;cursor:pointer;min-height:0}
.fm-bar.fm-bar button,.fm-bar.fm-bar button:hover,.fm-bar.fm-bar button:focus,.fm-bar.fm-bar button:active,.fm-bar.fm-bar button:disabled{
  background:var(--bg,transparent);color:var(--fg,inherit);border:var(--border,0);box-shadow:var(--shadow,none);text-decoration:var(--deco,none)}
.fm-bar.fm-bar button:disabled{cursor:default}
.fm-bar.fm-bar button:focus-visible{outline:2px solid var(--fm-ink);outline-offset:-3px}

.fm-bar__field{position:relative;display:flex;border-right:1px solid var(--fm-line)}
.fm-bar__field:nth-of-type(3){border-right:0}
.fm-bar__field--when{position:static}
.fm-bar.fm-bar .fm-bar__trigger{--pad:12px 20px 14px;display:flex;flex-direction:column;gap:6px;width:100%;flex:1;min-width:0;text-align:left}
.fm-bar.fm-bar .is-open>.fm-bar__trigger{--bg:rgba(255,255,255,.3)}
.fm-bar__label{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.fm-bar__row{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;min-width:0}
.fm-bar__value{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fm-bar .fm-bar__chevron{width:18px;height:18px}
.fm-bar .is-open .fm-bar__chevron{transform:rotate(180deg)}

.fm-bar.fm-bar .fm-bar__submit{--bg:var(--fm-green);--fg:#fff;--pad:0 34px;--size:18px;--weight:600;display:flex;align-items:center;justify-content:center;gap:10px;margin-left:10px}
.fm-bar.fm-bar .fm-bar__submit:focus-visible{outline-color:#fff;outline-offset:-5px}

.fm-msg{grid-column:1/-1;padding:10px 20px 4px;font-size:15px;font-weight:600}
.fm-msg:empty{display:none}
.fm-msg--err{color:#7a1212}

/* Dropdown panels */
.fm-bar__panel{position:absolute;z-index:40;top:calc(100% + 10px);left:0;background:#fff;color:var(--fm-ink);box-shadow:0 14px 34px rgba(0,0,0,.18)}
.fm-bar__panel--place{min-width:100%}
.fm-bar__panel--guests{left:auto;right:0;width:340px;max-width:100vw;padding:8px 20px}
.fm-bar__panel--when{top:calc(100% + 8px);left:10px;width:min(780px,calc(100% - 20px));padding:20px 28px}

.fm-bar__options{list-style:none;margin:0;padding:6px 0}
.fm-bar.fm-bar .fm-bar__option{--pad:13px 22px;--size:17px;display:block;width:100%;text-align:left}
.fm-bar.fm-bar .fm-bar__option[aria-pressed=true]{--bg:var(--fm-soft);--weight:700}

.fm-guests__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.fm-guests__row+.fm-guests__row{border-top:1px solid #e6e2d8}
.fm-guests__name{font-size:17px;font-weight:600}
.fm-guests__name small{display:block;font-size:14px;font-weight:400;color:#5d6563}
.fm-guests__stepper{display:flex;align-items:center;gap:14px}
.fm-bar.fm-bar .fm-guests__btn{--border:1px solid var(--fm-ink);--size:20px;flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;line-height:1}
.fm-bar.fm-bar .fm-guests__btn:disabled{--border:1px solid #d6d3cb;--fg:#b9b6ae}
.fm-guests__count{min-width:22px;text-align:center;font-size:18px;font-weight:600}
.fm-guests__ages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:2px 0 18px}
.fm-guests__age{display:flex;flex-direction:column;gap:5px;margin:0;font-size:14px;color:#5d6563}
.fm-bar.fm-bar .fm-guests__age select{width:100%;height:40px;margin:0;padding:0 10px;border:1px solid var(--fm-ink);border-radius:0;background:#fff;color:var(--fm-ink);font:inherit;font-size:16px;line-height:1.2}
.fm-bar.fm-bar .fm-guests__age select:focus-visible{outline:2px solid var(--fm-ink);outline-offset:-3px}

/* Calendar */
.fm-cal{position:relative;min-height:60px;font-size:16px}
.fm-cal__head{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none}
.fm-bar.fm-bar .fm-cal__nav{--border:1px solid #d9d5cc;width:40px;height:40px;display:flex;align-items:center;justify-content:center;pointer-events:auto}
.fm-bar.fm-bar .fm-cal__nav:disabled{--fg:#cfccc4;--border:1px solid #eeebe4}
.fm-cal__months{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:48px}
.fm-cal__title{font-family:"Cormorant Garamond",Georgia,serif;font-size:28px;line-height:40px;text-align:center;margin-bottom:12px}
.fm-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.fm-cal__dow{font-size:13px;text-align:center;color:#5d6563;padding:6px 0 10px}
.fm-bar.fm-bar .fm-cal__day{--fg:var(--fm-faded);--size:16px;aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;text-align:center}
.fm-bar.fm-bar .fm-cal__day.is-open{--fg:var(--fm-ink);--weight:700}
.fm-bar.fm-bar .fm-cal__day.is-range,.fm-bar.fm-bar .fm-cal__day.is-hover{--bg:#e9e7df}
.fm-bar.fm-bar .fm-cal__day.is-selected{--bg:var(--fm-green);--fg:#fff;--weight:700}
.fm-cal__foot{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:16px;font-size:14px;color:#3d4644}
.fm-bar.fm-bar .fm-cal__clear{--deco:underline;white-space:nowrap}

/* Hover only on devices that really hover, so a tap on a phone does not leave a stuck highlight. */
@media (hover:hover){
  .fm-bar.fm-bar .fm-bar__trigger:hover{--bg:rgba(255,255,255,.3)}
  .fm-bar.fm-bar .fm-bar__submit:hover{--bg:var(--fm-green-hover)}
  .fm-bar.fm-bar .fm-bar__option:hover{--bg:var(--fm-soft)}
  .fm-bar.fm-bar .fm-guests__btn:hover:not(:disabled){--bg:var(--fm-soft)}
  .fm-bar.fm-bar .fm-cal__nav:hover:not(:disabled){--border:1px solid var(--fm-ink)}
  .fm-bar.fm-bar .fm-cal__day.is-open:hover{--shadow:inset 0 0 0 1px var(--fm-ink)}
}

@media (max-width:899px){
  .fm-bar{grid-template-columns:1fr;padding:0;background:var(--fm-gold)}
  .fm-bar__field{flex-direction:column;border-right:0;border-bottom:1px solid var(--fm-line)}
  .fm-bar__field--when{position:relative}
  .fm-bar.fm-bar .fm-bar__trigger{--pad:14px 18px 16px}
  .fm-bar__panel,.fm-bar__panel--when,.fm-bar__panel--guests{position:static;width:auto;box-shadow:none;margin:0 8px 8px}
  .fm-bar__panel--when{padding:16px 12px}
  .fm-cal__title{font-size:24px}
  .fm-bar.fm-bar .fm-bar__submit{justify-self:end;margin:12px;min-height:56px;--pad:0 26px}
  .fm-msg{padding:0 18px 14px;order:5}
}
.fm-hero-bar{width:100%;margin:0 0 48px}
.fm-hero-bar .fm-bar{margin:0 auto}
/* Static bar on top of the booking page. */
.fm-page-bar{width:100%;margin:24px 0 32px}
.fm-page-bar .fm-bar{margin:0 auto}
/* From 768px the theme header overlaps the content (margin-bottom:-137px, made for the hero video), so the bar starts below it. */
@media (min-width:768px){.fm-page-bar{margin-top:calc(137px + 32px)}}
/* The page title stays for screen readers only; the bar is the page's visual heading. */
body:has(.fm-page-bar) .page-header{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fm-engine{padding:40px 16px}
@media (max-width:899px){.fm-hero-bar{margin-bottom:24px}}
/* Desktop: fields about a quarter narrower than the full hero width. */
@media (min-width:900px){
  .fm-bar{max-width:980px;grid-template-columns:minmax(0,1.04fr) minmax(0,1.1fr) minmax(0,1fr) auto}
  .fm-bar.fm-bar .fm-bar__trigger{--pad:12px 16px 14px}
  .fm-bar__row{font-size:17px}
}
/* Narrow desktops: smaller values so "Dátumok hozzáadása" and long place names still fit. */
@media (min-width:900px) and (max-width:1059px){
  .fm-bar__row{font-size:15px}
  .fm-bar .fm-bar__icon{display:none}
  .fm-bar.fm-bar .fm-bar__submit{--pad:0 22px;--size:16px}
}
/* The JS moves the bar into this body-level layer, outside the hero's stacking context; Leaflet controls sit at 1000. */
.fm-hero-bar--layer{margin:0}
/* Floating state (booking-bar.js): once the hero slot has scrolled away the bar (desktop) or a toggle button (mobile)
   docks to the viewport bottom; --fm-float-bottom keeps it above the footer. */
.fm-hero-bar .fm-hero-bar__toggle,.fm-bar .fm-bar__close,.fm-hero-bar__backdrop{display:none}
@media (min-width:900px){
  .fm-hero-bar.is-floating .fm-bar{position:fixed;z-index:1100;left:50%;bottom:var(--fm-float-bottom,16px);width:calc(100% - 32px);transform:translateX(-50%);box-shadow:0 10px 30px rgba(0,0,0,.25)}
  .fm-hero-bar.is-floating .fm-bar__panel{top:auto;bottom:calc(100% + 10px);max-height:calc(100vh - 140px);overflow:auto;box-shadow:0 -10px 30px rgba(0,0,0,.18)}
}
/* Keep the bottom-left corner free for the cookie settings button. */
@media (min-width:900px) and (max-width:1099px){
  .fm-hero-bar.is-floating .fm-bar{left:76px;right:16px;width:auto;transform:none}
}
@media (max-width:899px){
  .fm-hero-bar.is-floating .fm-bar{display:none}
  .fm-hero-bar--spacer{margin:0}
  .fm-hero-bar.is-floating .fm-hero-bar__toggle{position:fixed;z-index:1100;left:0;right:0;width:max-content;bottom:var(--fm-float-bottom,16px);display:flex;align-items:center;gap:10px;
    margin:0 auto;padding:0 28px;min-height:56px;border:0;border-radius:0;background:#003C30;color:#fff;font:inherit;font-size:17px;font-weight:600;line-height:1;text-transform:none;letter-spacing:normal;box-shadow:0 8px 24px rgba(0,0,0,.25);cursor:pointer}
  .fm-hero-bar__toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
  .fm-hero-bar__toggle:focus-visible{outline:2px solid #fff;outline-offset:-5px}
  .fm-hero-bar.is-sheet-open .fm-hero-bar__toggle{display:none}
  .fm-hero-bar.is-sheet-open .fm-bar{display:grid;position:fixed;z-index:1101;left:0;right:0;bottom:0;max-height:100dvh;overflow:auto;overscroll-behavior:contain;padding-top:8px;box-shadow:0 -10px 30px rgba(0,0,0,.25)}
  .fm-hero-bar.is-sheet-open .fm-bar__close{display:flex;justify-self:end;align-items:center;justify-content:center;width:48px;height:48px;margin:0 4px}
  .fm-bar.fm-bar .fm-bar__close svg{width:24px;height:24px}
  .fm-hero-bar.is-sheet-open .fm-hero-bar__backdrop{display:block;position:fixed;z-index:1100;inset:0;background:rgba(0,0,0,.45)}
}
@media (prefers-reduced-motion:no-preference){
  @media (min-width:900px){.fm-hero-bar.is-floating .fm-bar{animation:fm-float-in .25s ease-out}}
  @media (max-width:899px){
    .fm-hero-bar.is-floating .fm-hero-bar__toggle{animation:fm-toggle-in .25s ease-out}
    .fm-hero-bar.is-sheet-open .fm-bar{animation:fm-sheet-in .25s ease-out}
  }
}
@keyframes fm-float-in{from{opacity:0}}
@keyframes fm-toggle-in{from{opacity:0;transform:translateY(20px)}}
@keyframes fm-sheet-in{from{transform:translateY(100%)}}
/* At the end of the page the bar parks in the empty strip above the partners (see the script). */
@media (min-width:900px){.fm-hero-bar.is-docked .fm-bar{position:absolute;top:var(--fm-dock-top);bottom:auto}}
@media (max-width:899px){.fm-hero-bar.is-docked .fm-hero-bar__toggle{position:absolute;top:var(--fm-dock-top);bottom:auto}}
/* The closed map details sheet waits just below the screen and its upward shadow showed at the bottom edge. */
@media (max-width:900px){.fm-details:not(.open){box-shadow:none}}
