/* Uses the typefaces, colours and native button classes of Duvenstedt aktiv. */
body.wp-child-theme-duvenstedt-aktiv #no-title-page-wrapper:has(.fm-site-page){padding-top:0;padding-bottom:0}
.fm-site-page{color:inherit}
.fm-site-intro{padding:100px 0 36px}
.fm-site-intro h2{font-family:Montserrat,sans-serif;font-size:46px;font-weight:600;line-height:normal;color:#0d0000;margin:0;padding:0 0 8px}
.fm-site-intro p{margin:0 0 28px}
.fm-site-intro .fm-site-subtitle{font-size:26px;line-height:36.4px;margin-bottom:28px}
.fm-site-intro .btn{margin-top:8px}
.fm-booking{--fm-ink:#0d0000;--fm-red:#e4002b;--fm-line:#dfd1c3;--fm-soft:#f3f0ed;color:var(--fm-ink);font-family:Roboto,sans-serif;background:#fff;padding:0 0 100px;max-width:none;margin:0;line-height:26px;letter-spacing:.02em;font-size:18px;box-sizing:border-box}
.fm-booking *{box-sizing:border-box}
.fm-booking button,.fm-booking input,.fm-booking select{font:inherit}
.fm-booking button{cursor:pointer}
.fm-booking button:disabled{cursor:not-allowed;opacity:.65}
.fm-booking button:focus-visible,.fm-booking input:focus-visible,.fm-booking select:focus-visible,.fm-booking a:focus-visible{outline:3px solid var(--fm-red);outline-offset:3px}
.fm-booking h1,.fm-booking h2,.fm-booking p{margin:0}
.fm-booking h1,.fm-booking h2{font-family:Montserrat,sans-serif;color:var(--fm-ink);font-weight:600;letter-spacing:.02em}
.fm-booking h1{font-size:46px;line-height:1.2}
.fm-booking h2{font-size:24px;line-height:1.3}
.fm-header{display:flex;gap:24px;align-items:center;margin-bottom:36px;flex-wrap:wrap}
.fm-header p{margin-top:10px!important}
.fm-mode{color:var(--fm-red);font-size:16px;font-family:Montserrat,sans-serif;margin-left:auto}
.fm-banner{background:var(--fm-soft);border-left:4px solid var(--fm-red);padding:16px 20px;margin-bottom:36px;font-size:16px;color:var(--fm-ink)}
.fm-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:30px;align-items:start}
.fm-map-card,.fm-panel{background:#fff;border:0;border-radius:0;box-shadow:none;overflow:hidden;min-width:0}
.fm-map-head{padding:0 0 24px;display:flex;gap:20px;align-items:center;justify-content:space-between}
.fm-map-head p{font-size:16px;line-height:24px;margin-top:8px}
.fm-zoom{display:flex;gap:6px;flex-shrink:0}
.fm-zoom button{border:1px solid var(--fm-line);border-radius:50%;background:var(--fm-soft);color:var(--fm-ink);height:40px;width:40px;line-height:1;padding:0;font-size:24px}
.fm-zoom button:hover,.fm-counter button:hover{background:#dfd1c3}
.fm-map-frame{height:540px;border:1px solid var(--fm-line);background:var(--fm-soft);overflow:hidden}
.fm-map{height:100%;width:100%;touch-action:none;user-select:none;cursor:grab;display:block}
.fm-cell{cursor:pointer}
.fm-cell-disabled{cursor:not-allowed}
.fm-legend{padding:20px 0 8px;display:flex;flex-wrap:wrap;gap:18px;font-size:14px;line-height:22px}
.fm-legend span{display:flex;align-items:center;gap:7px}
.fm-legend i{display:inline-block;width:14px;height:14px;border-radius:0;border:1px solid #b19f8d}
.fm-legend .free{background:#fff;border-color:#666}
.fm-legend .adult{background:#e4002b;border-color:#e4002b}
.fm-legend .child{background:#c7ad8e}
.fm-legend .held{background:#f4b860}
.fm-legend .booked{background:#666;border-color:#666}
.fm-map-credit{padding:0;font-size:12px;line-height:20px;color:#555}
.fm-map-credit a{color:inherit;text-decoration:underline}
.fm-panel{padding:30px;background:var(--fm-soft)}
.fm-step{font-size:13px;letter-spacing:.02em;font-family:Montserrat,sans-serif;font-weight:600;color:var(--fm-red);margin-bottom:12px!important}
.fm-dimension{font-size:14px;line-height:22px;margin-top:8px!important;margin-bottom:24px!important}
.fm-booking label{display:block;font-size:16px;font-weight:500;margin-top:16px}
.fm-booking label>span{display:block;font-size:13px;line-height:20px;font-weight:400;margin-top:2px;color:#555}
.fm-booking input:not([type=checkbox]),.fm-booking select{height:44px;width:100%;border:1px solid #b19f8d;border-radius:20px;padding:8px 14px;background:#fff;color:var(--fm-ink);margin-top:8px;font-size:16px;line-height:26px;min-width:0}
.fm-booking select{appearance:auto}
.fm-meter{border-top:1px solid var(--fm-line);margin-top:24px}
.fm-counter{display:flex;align-items:center;gap:8px;margin-top:10px}
.fm-counter button{width:44px;height:44px;border:1px solid #b19f8d;border-radius:50%;background:#fff;color:var(--fm-ink);font-size:24px;line-height:1;padding:0}
.fm-counter input{width:68px!important;height:44px!important;margin:0!important;text-align:center;-moz-appearance:textfield}
.fm-counter input::-webkit-inner-spin-button{appearance:none}
.fm-counter b{margin-left:4px;font-weight:400}
.fm-capacity{font-size:13px;line-height:20px;color:#555;margin:18px 0 24px!important}
.fm-price{border-top:1px solid var(--fm-line);padding-top:20px}
.fm-price>div{display:flex;justify-content:space-between;font-size:16px;line-height:24px;gap:12px;align-items:center}
.fm-price>p{font-size:13px;line-height:20px;color:#555;margin:6px 0 18px!important}
.fm-price-total{border-top:1px solid var(--fm-line);margin-top:22px;padding-top:18px;font-weight:600;font-size:18px!important}
.fm-total{font-family:Montserrat,sans-serif;font-size:30px;line-height:1.2;font-weight:600;white-space:nowrap}
.fm-booking .fm-primary{position:relative;display:block;width:100%;padding:6px 40px;text-align:center;border:0;border-radius:20px;background:#0d0000;color:#fff;font-family:Montserrat,sans-serif;font-size:16px;font-weight:500;line-height:31px;letter-spacing:.02em;text-decoration:none;margin-top:24px;min-height:44px;white-space:normal}
.fm-booking .fm-primary.with-icon{padding-right:63px}
.fm-booking .fm-primary:hover:not(:disabled){background:#222;color:#fff}
.fm-message{font-size:13px;line-height:20px;color:#555;margin-top:16px!important}
.fm-error{color:#b10022}
.fm-dialog{position:fixed;inset:0;margin:auto;height:fit-content;max-height:calc(100dvh - 32px);overflow:auto;border:0;border-top:6px solid var(--fm-red);border-radius:0;max-width:520px;width:calc(100vw - 32px);padding:30px;color:var(--fm-ink);font-family:inherit;background:#fff}
.fm-dialog::backdrop{background:#0d000080}
.fm-dialog[open]{display:block}
.fm-dialog[hidden],.fm-booking [hidden]{display:none!important}
.fm-close{position:absolute;right:12px;top:4px;border:0;background:none;font-size:28px;color:var(--fm-ink);width:44px;height:44px;padding:0}
.fm-review{padding:18px;background:var(--fm-soft);font-size:16px;line-height:26px;margin:24px 0!important}
.fm-dialog p{font-size:16px;line-height:26px;margin-top:16px}
.fm-check{display:flex!important;align-items:flex-start;gap:10px;font-size:14px!important;line-height:22px;font-weight:400!important}
.fm-check input{margin-top:4px;flex-shrink:0;accent-color:var(--fm-red)}
.fm-check>span{font-size:14px!important;margin:0!important;color:inherit!important;line-height:22px!important}
.fm-check a{color:var(--fm-ink);text-decoration:underline}
.fm-dialog-status{color:#555}
.fm-preview-summary{margin:24px 0}
.fm-booking [aria-live]{overflow-wrap:anywhere}

.fm-booking .fm-gap-rule{font-size:14px;line-height:22px;color:#555;margin:0 0 20px}

/* Area navigation stays usable above the map and on the overview itself. */
.fm-map-head{display:block;padding-bottom:16px}
.fm-areas{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fm-areas>span{font-size:14px;color:#555;margin-right:8px}
.fm-areas button{width:44px;height:44px;border:1px solid #b19f8d;border-radius:50%;padding:0;background:var(--fm-soft);color:var(--fm-ink);font-family:Montserrat,sans-serif;font-weight:600;font-size:16px;line-height:1}
.fm-areas button:hover{background:var(--fm-line)}
.fm-areas button[aria-pressed=true]{background:var(--fm-red);border-color:var(--fm-red);color:#fff}
.fm-map-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:14px 0 16px}
.fm-zoom{flex-wrap:wrap}
.fm-zoom button{width:44px;height:44px}
.fm-zoom .fm-map-action{width:auto;border-radius:20px;padding:0 13px;font-size:14px;white-space:nowrap}
.fm-booking .fm-view-status{font-size:13px;line-height:20px;color:#555}
.fm-map-frame{position:relative}
.fm-area-labels,.fm-area-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.fm-area-lines{opacity:.85}
.fm-area-labels button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:44px;height:44px;border:2px solid #fff;border-radius:50%;background:var(--fm-red);color:#fff;padding:0;font-family:Montserrat,sans-serif;font-size:18px;font-weight:600;line-height:1;box-shadow:0 1px 4px #0d000040}
.fm-area-labels button:hover{background:var(--fm-ink)}
.fm-area-labels button:focus-visible{outline-color:var(--fm-ink)}

.fm-dialog{max-width:760px;scrollbar-gutter:stable}
.fm-dialog h3{font:600 18px/26px Montserrat,sans-serif;margin:24px 0 8px;color:var(--fm-ink)}
.fm-dialog .fm-review{margin:18px 0 10px!important}
.fm-hold-info{padding:12px 16px;border-left:4px solid #f4b860;background:#fff6e7}
.fm-conditions{padding:20px;background:var(--fm-soft);border-left:4px solid var(--fm-red);margin-top:24px}
.fm-conditions h3{margin-top:0}
.fm-conditions p{margin-top:12px;font-size:15px;line-height:24px}
.fm-conditions a{color:var(--fm-ink);text-decoration:underline;font-weight:600}
.fm-rule-check{padding:12px 0;border-top:1px solid var(--fm-line)}
.fm-rule-check input{width:20px;height:20px;margin-top:1px;min-width:20px}
.fm-conditions .fm-liability-note{font-size:13px;line-height:20px;color:#555}
.fm-form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
.fm-form-wide{grid-column:1/-1}
.fm-dialog .fm-payment-info{font-size:14px;line-height:22px;color:#555;margin-top:8px}
.fm-cancel{display:block;border:0;background:none;color:var(--fm-ink);text-decoration:underline;font-size:14px!important;min-height:44px;margin:12px auto 0;padding:8px}

/* Responsive booking page: keep map and forms usable at every available width. */
.fm-site-page{max-width:1480px;width:100%;min-width:0;margin-inline:auto}
.fm-site-intro{padding:clamp(40px,6vw,86px) 0 28px}
.fm-site-intro h2{font-size:clamp(28px,3.2vw,46px);line-height:1.25;overflow-wrap:break-word}
.fm-site-intro .fm-site-subtitle{font-size:clamp(18px,1.9vw,26px);line-height:1.4;margin-bottom:20px}
.fm-site-intro p{max-width:80ch;margin-bottom:20px}
.fm-booking{min-width:0;padding-bottom:clamp(40px,6vw,86px)}
.fm-booking h2,.fm-booking h3{overflow-wrap:break-word}
.fm-booking button,.fm-booking input,.fm-booking select,.fm-booking a{scroll-margin-block:96px}
.fm-layout{grid-template-columns:minmax(0,1fr) 360px;gap:clamp(20px,2.2vw,32px)}
.fm-map-card,.fm-panel,.fm-contact,.fm-contact-fields,.fm-form-grid,.fm-form-grid>label{min-width:0}
.fm-map-frame{height:clamp(300px,35vw,540px)}
.fm-areas{gap:8px}
.fm-areas button,.fm-area-labels button,.fm-zoom button,.fm-counter button{flex-shrink:0;min-width:44px;min-height:44px;touch-action:manipulation}
.fm-map-tools{gap:8px;margin-block:16px}
.fm-zoom{gap:8px}
.fm-legend{gap:10px 18px;line-height:24px}
.fm-legend span{min-height:24px}
.fm-map-credit{overflow-wrap:anywhere}
.fm-panel{padding:clamp(18px,2.1vw,30px)}
.fm-panel h2{font-size:clamp(22px,2vw,24px)}
.fm-booking input:not([type=checkbox]),.fm-booking select{height:48px;font-size:16px;line-height:24px;max-width:100%}
.fm-counter{gap:8px;flex-wrap:nowrap}
.fm-counter button{width:48px;height:48px}
.fm-counter input{width:68px!important;height:48px!important;flex-shrink:1}
.fm-counter b{flex-shrink:0;margin-left:0}
.fm-price>div{align-items:flex-start;gap:8px}
.fm-price>div>span{min-width:0;overflow-wrap:break-word}
.fm-price>div>strong{flex-shrink:0;white-space:nowrap}
.fm-price-total{align-items:center!important}
.fm-total{font-size:clamp(26px,2.3vw,32px)}
.fm-booking .fm-primary{min-height:48px;padding-block:8px;line-height:24px;overflow-wrap:break-word}
.fm-dialog{width:min(760px,calc(100% - 32px));max-width:760px;padding:0;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;line-height:24px;letter-spacing:.02em}
.fm-contact{padding:28px;margin:0;width:100%;max-width:none}
.fm-dialog-head{position:sticky;top:0;z-index:2;background:#fff;padding:22px 58px 16px 28px;margin:-28px -28px 0;border-bottom:1px solid var(--fm-line)}
.fm-dialog-head h2{font-size:clamp(22px,2.2vw,28px);line-height:1.25;margin:0;padding:0}
.fm-dialog-head .fm-step{margin-top:0!important;margin-bottom:8px!important}
.fm-dialog-head .fm-close{top:12px;right:10px;border-radius:50%;background:var(--fm-soft);font-size:28px}
.fm-dialog .fm-review,.fm-hold-info,.fm-conditions,.fm-check>span{overflow-wrap:anywhere}
.fm-conditions{padding:20px}
.fm-check{min-height:44px}
.fm-check input{width:22px;height:22px;min-width:22px;margin-top:0}
.fm-check>span{min-width:0}
.fm-rule-check{padding-block:12px}
.fm-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.fm-cancel{min-height:48px}
html:has(.fm-dialog[open]){overflow:hidden;scrollbar-gutter:stable}
@media(max-width:1099px){
  .fm-booking{font-size:16px;line-height:24px}
  .fm-layout{grid-template-columns:minmax(0,1fr);gap:28px}
  .fm-map-frame{height:clamp(300px,46vw,440px)}
  .fm-site-intro{padding-top:48px}
}
@media(min-width:640px) and (max-width:1099px){
  .fm-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
  .fm-panel>.fm-step,.fm-panel>h2,.fm-panel>.fm-dimension,.fm-panel>.fm-gap-rule,.fm-panel>.fm-capacity,.fm-panel>.fm-price,.fm-panel>.fm-primary,.fm-panel>.fm-message{grid-column:1/-1}
  .fm-panel>label{display:flex;flex-direction:column}
  .fm-panel>label>select{margin-top:auto}
  .fm-panel>.fm-meter>label{margin-top:16px}
}
@media(max-width:639px){
  .fm-site-intro{padding:36px 0 20px}
  .fm-site-intro h2{font-size:28px}
  .fm-booking h1{font-size:28px}
  .fm-booking h2{font-size:22px}
  .fm-header{gap:12px;margin-bottom:24px}
  .fm-mode{margin-left:0}
  .fm-banner{padding:14px 16px;font-size:14px;line-height:22px;margin-bottom:24px}
  .fm-map-head h2{font-size:22px}
  .fm-map-head p{font-size:14px;line-height:22px}
  .fm-areas>span{flex-basis:100%;margin-right:0}
  .fm-map-frame{height:clamp(300px,80vw,380px)}
  .fm-panel{padding:20px}
  .fm-dialog{width:calc(100% - 16px);max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}
  .fm-contact{padding:20px 16px}
  .fm-dialog-head{margin:-20px -16px 0;padding:18px 58px 14px 16px}
  .fm-form-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .fm-form-wide{grid-column:auto}
  .fm-conditions{padding:16px}
  .fm-booking .fm-primary.with-icon{padding-left:20px;padding-right:48px}
  .fm-booking .fm-primary.with-icon:after{right:20px}
}
@media(max-width:419px){
  .fm-zoom{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;width:100%}
  .fm-map-tools,.fm-map-tools>.fm-zoom{width:100%}
  .fm-zoom [data-zoom=all]{grid-column:1/-1}
  .fm-zoom .fm-map-action{white-space:normal}
  .fm-counter button{width:44px;height:48px}
  .fm-counter input{width:64px!important}
  body:has(.fm-site-page) #main-nav .social-media-container{display:none}
}
@media(max-width:1099px) and (max-height:600px){
  .fm-map-frame{height:280px}
  .fm-site-intro{padding-top:28px}
}
@media(max-width:1399px){
  body:has(.fm-site-page) #navbarNavDropdown{max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);overflow-y:auto;overscroll-behavior:contain}
}
.fm-discount{margin:24px 0;padding:16px;background:#f3f0ed;border:1px solid #ded8d2;border-radius:4px}
.fm-discount-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.fm-discount-actions button{min-height:44px;padding:10px 16px;border:1px solid #666;border-radius:3px;background:#fff;color:#333;cursor:pointer}
.fm-discount-actions button:disabled{opacity:.55;cursor:default}
.fm-discount-summary{margin:12px 0 0;overflow-wrap:anywhere;font-size:14px}
.fm-discount [name=discountCode]{text-transform:uppercase}
