/* 5.16.10: scoped lakeside design, responsive to the WordPress container. */
.bak-app{--bak-ink:#183f3c;--bak-muted:#586d69;--bak-line:#dce7e2;--bak-accent:#21665d;--bak-accent-soft:#edf5f1;--bak-sand:#f6f4ed;--bak-radius:18px;container-type:inline-size;container-name:bak;min-width:0;font-size:16px;line-height:1.6;padding-bottom:16px}
.bak-app .bak-steps{gap:10px 18px;padding:16px;margin:0 0 24px;background:var(--bak-sand);border:1px solid var(--bak-line);border-radius:16px;font-size:13px}
.bak-app .bak-step{min-width:0;gap:8px;line-height:1.5}
.bak-app .bak-step span{width:30px;height:30px;flex-shrink:0;font-size:13px;background:#fff;border:1px solid var(--bak-line)}
.bak-app .bak-step.is-current span,.bak-app .bak-step.is-done span{background:var(--bak-accent);color:#fff}
.bak-app .bak-main{border:1px solid var(--bak-line);border-radius:22px;padding:24px;background:#fff;box-shadow:0 10px 35px #183f3c08}
.bak-app .bak-layout{gap:24px;grid-template-columns:minmax(0,1fr)}
.bak-app .bak-layout:has(.bak-aside:not([hidden])){grid-template-columns:minmax(0,1fr)}
.bak-app .bak-layout>*{min-width:0;max-width:100%}
.bak-app .bak-h2{font-size:clamp(23px,3vw,30px);line-height:1.25;letter-spacing:-.025em;margin-bottom:10px}
.bak-app .bak-h3{font-size:17px;line-height:1.4}
.bak-app .bak-sub,.bak-app .bak-hint{font-size:14px;line-height:1.6}
.bak-app .bak-months{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:20px}
.bak-app .bak-cal{padding:14px;border-radius:16px}
.bak-app .bak-cal-title{visibility:visible}
.bak-app .bak-month-title{font-size:15px}
.bak-app .bak-dow span{font-size:11px}
.bak-app .bak-day{min-height:40px;font-size:14px}
.bak-app .bak-legend{font-size:12px;gap:12px;line-height:1.5}
.bak-app .bak-datebox{padding:14px 16px;min-width:0;background:var(--bak-accent-soft)}
.bak-app .bak-datebox strong{font-size:17px;overflow-wrap:anywhere}
.bak-app .bak-btn{min-height:46px;padding:12px 20px;border-radius:12px;font-size:15px;white-space:normal;line-height:1.4}
.bak-app .bak-round{width:44px;height:44px;min-width:44px}
.bak-app .bak-round[data-count]::before{font-size:22px}
.bak-app .bak-counter{gap:12px;flex-wrap:wrap}
.bak-app .bak-counter>span{font-size:17px}
.bak-app .bak-field input,.bak-app .bak-field select,.bak-app .bak-field textarea{min-width:0;max-width:100%;font-size:16px;border-radius:10px;min-height:46px}
.bak-app .bak-villas,.bak-app .bak-extras{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px}
.bak-app .bak-villa{border-radius:18px;overflow:hidden;box-shadow:0 6px 22px #183f3c08}
.bak-app .bak-villa-body{padding:18px}
.bak-app .bak-villa-body h3{font-size:19px}
.bak-app .bak-villa-price{font-size:24px}
.bak-app .bak-villa-meta,.bak-app .bak-villa-unit,.bak-app .bak-villa-nights{font-size:13px}
.bak-app .bak-extra{border-radius:14px;padding:16px}
.bak-app .bak-aside-inner{border:1px solid var(--bak-line);border-radius:18px;padding:20px;font-size:14px}
.bak-app .bak-mobilebar{padding-bottom:max(12px,env(safe-area-inset-bottom));box-shadow:0 -6px 28px #183f3c14}
.bak-app .bak-fishing-choice{min-width:0;margin:26px 0;padding:18px;border:1px solid #cfdfd8;border-radius:18px;background:linear-gradient(135deg,#f0f7f4,#f8f6ed)}
.bak-app .bak-fishing-choice legend{padding:0 8px;margin:0;font-size:17px}
.bak-app .bak-fishing-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bak-app .bak-fishing-choice .bak-fishing-option{position:relative;display:block;min-width:0;margin:0;cursor:pointer}
.bak-app .bak-fishing-option input{position:absolute;width:1px;height:1px;opacity:0;margin:0;clip-path:inset(50%)}
.bak-app .bak-fishing-card{display:flex;align-items:center;gap:12px;height:100%;padding:16px 12px;background:#fff;border:2px solid #d8e5de;border-radius:14px;transition:border-color .15s,background .15s;position:relative}
.bak-app .bak-fishing-art{display:block;width:70px;flex:0 0 70px;color:#377f79}
.bak-app .bak-fishing-art svg{display:block;width:100%;height:auto}
.bak-app .bak-fishing-copy{min-width:0;display:block}
.bak-app .bak-fishing-copy strong{display:block;font-size:18px;color:var(--bak-ink)}
.bak-app .bak-fishing-copy small{display:block;font-size:12px;line-height:1.5;color:var(--bak-muted)}
.bak-app .bak-fishing-tick{visibility:hidden;position:absolute;right:8px;top:4px;color:var(--bak-accent);font-weight:700}
.bak-app .bak-fishing-option input:checked+.bak-fishing-card{border-color:var(--bak-accent);background:#e7f3ec;box-shadow:0 3px 12px #21665d12}
.bak-app .bak-fishing-option input:checked+.bak-fishing-card .bak-fishing-tick{visibility:visible}
.bak-app .bak-fishing-option input:focus-visible+.bak-fishing-card{outline:3px solid #147ca8;outline-offset:3px}
.bak-app .bak-fishing-option input:disabled+.bak-fishing-card{opacity:.6;cursor:wait}
.bak-app :is(button,a,input,select,textarea):focus-visible{outline:3px solid #147ca8;outline-offset:3px}
@container bak (min-width:960px){.bak-app .bak-layout:has(.bak-aside:not([hidden])){grid-template-columns:minmax(0,1fr) 260px}}
@container bak (max-width:959px){.bak-app .bak-aside-inner{position:static}}
@container bak (max-width:600px){
 .bak-app .bak-main{padding:16px 10px;border-radius:16px}
 .bak-app .bak-steps{gap:10px;padding:12px;font-size:12px}
 .bak-app .bak-step{flex:1 1 125px}
 .bak-app .bak-form,.bak-app .bak-villa-combo--2,.bak-app .bak-villa-combo--3{grid-template-columns:minmax(0,1fr)}
 .bak-app .bak-fishing-card{flex-direction:column;align-items:flex-start;padding:14px 12px;gap:4px}
 .bak-app .bak-fishing-choice{padding:12px}
 .bak-app .bak-cal{padding:8px 4px}
 .bak-app .bak-actions{flex-wrap:wrap;gap:10px}
 .bak-app .bak-day{min-height:38px}
}
@media(prefers-reduced-motion:reduce){.bak-app .bak-fishing-card{transition:none}}
@media(forced-colors:active){.bak-app .bak-fishing-option input:checked+.bak-fishing-card{outline:3px solid Highlight}.bak-app .bak-fishing-art{color:CanvasText}}

/* 5.16.12: stable natural height, centered navigation, no theme hover movement. */
.bak-app .bak-main{min-height:0!important;height:auto;transition:none}
.bak-app .bak-round::before{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:auto;height:auto;margin:0;padding:0;transform:none!important;line-height:1}
.bak-app .bak-round::after{content:none}
.bak-app .bak-round,.bak-app .bak-round:hover,.bak-app .bak-day,.bak-app .bak-day:hover{transform:none;translate:none;scale:none;transition:background-color .15s,color .15s;}
@media(max-width:899px){
 .bak-app{padding-bottom:0;margin-bottom:0;min-height:0;height:auto}
 .bak-app .bak-layout{min-height:0;height:auto}
 .bak-app.bak-active-wizard:has(.bak-mobilebar:not([hidden])){padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
}

/* 5.16.13: Elementor flex wrappers must size to the booking content.
 * Restrict the container correction to a single booking widget, preserving
 * multi-widget layouts elsewhere on the page. */
.elementor-widget:has(.bak-app){height:auto!important;min-height:0!important;min-width:0;width:100%!important;max-width:100%;flex:0 0 auto!important;align-self:stretch;transition:none!important}
.elementor-widget:has(.bak-app)>.elementor-widget-container{height:auto!important;min-height:0!important}
.elementor-widget-heading .elementor-heading-title:has(>.bak-app){display:flow-root;line-height:normal;font-size:16px}
.e-con-inner:has(>.elementor-widget:only-child .bak-app){flex-wrap:nowrap!important;height:auto!important;min-height:0!important}
.e-con:has(>.e-con-inner>.elementor-widget:only-child .bak-app){height:auto!important;min-height:0!important}

/* Consistent inline payment breakdown. */
.bak-app .bak-inline-price{margin:16px 0;border:1px solid var(--bak-line);border-radius:12px;padding:12px;background:var(--bak-accent-soft);font-size:14px}
.bak-app summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;font-weight:600}
.bak-app summary:focus-visible{outline:3px solid #147ca8;outline-offset:3px}
.bak-app .bak-day{min-height:44px}
.bak-app .bak-day:focus-visible{position:relative;z-index:2}
.bak-app .bak-inline-price .bak-pricebox{margin:12px 0 0}
.bak-app [aria-busy="true"]{cursor:progress}
@media(hover:none){.bak-app .bak-day-tooltip{display:none}}

/* Do not inherit heading-widget typography into the booking form. */
.bak-app{font-weight:400;text-transform:none;letter-spacing:normal}

/* 5.16.18: stable date boxes above a persistent calendar; no scroll compensation. */
.bak-app .bak-dates{align-items:stretch}
.bak-app .bak-datebox{flex:1 1 0;min-width:0}
.bak-app .bak-datebox strong{display:block;min-height:3.2em;line-height:1.6}
.bak-app .bak-date-feedback:empty{display:none}
.bak-app .bak-date-feedback{margin-top:12px}

/* 5.16.19: optional breakfast orders */
.bak-breakfast{border:1px solid #cfddd8;border-radius:18px;overflow:hidden;background:#fff;min-width:0;box-shadow:0 4px 18px #143b3310}
.bak-breakfast.is-selected{border-color:#246c59;box-shadow:0 0 0 2px #246c5920}
.bak-breakfast-image{display:block;width:100%;height:180px;object-fit:cover}
.bak-breakfast-body{padding:20px}.bak-breakfast-body p{overflow-wrap:anywhere}
.bak-breakfast-choice{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer}
.bak-breakfast-choice input{width:22px;height:22px;flex-shrink:0;accent-color:#246c59}
.bak-breakfast-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.bak-breakfast-controls label{font-size:14px;min-width:0}.bak-breakfast-controls input{display:block;box-sizing:border-box;width:100%;min-height:46px;margin-top:6px;padding:10px;border:1px solid #90aaa0;border-radius:10px;font:inherit}
.bak-breakfast-total{font-weight:600;color:#225c4d}.bak-breakfast :focus-visible{outline:3px solid #b27d2c;outline-offset:3px}
@media(max-width:420px){.bak-breakfast-controls{grid-template-columns:1fr}.bak-breakfast-body{padding:16px}}

.bak-no-breakfast{display:flex;align-items:center;gap:14px;padding:20px;margin-bottom:20px;cursor:pointer}.bak-no-breakfast input{width:22px;height:22px;accent-color:#246c59;flex-shrink:0}.bak-no-breakfast small{display:block;margin-top:6px}

/* 5.16.22: compact paired mobile dates and stable calendar geometry. */
.bak-app .bak-months{overflow-anchor:none}
@media(max-width:600px){
 .bak-app .bak-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
 .bak-app .bak-datebox{padding:9px 10px;border-radius:10px;min-width:0}
 .bak-app .bak-datebox .bak-label{font-size:11px;line-height:1.3;margin-bottom:4px}
 .bak-app .bak-datebox strong{font-size:13px;line-height:1.35;min-height:2.7em}
 .bak-app .bak-dates > button{grid-column:1 / -1;justify-self:start}
}

/* 5.16.23: one month heading on phones; keep multi-month desktop headings. */
@media(max-width:600px){.bak-app .bak-month-title{display:none}}
