.dwb-app{--dwb-primary:#B87932;--dwb-dark:#3A2F28;--dwb-moss:#414B35;--dwb-sand:#D6B58B;--dwb-parch:#F5F0E6;--dwb-twi:#1F2A26;--dwb-line:#E6DCCB;--dwb-muted:#7a6e62;--dwb-radius:28px;font-family:inherit;color:var(--dwb-dark);line-height:1.5;width:100%;max-width:1240px;margin:0 auto;padding:24px 16px;box-sizing:border-box;text-align:left;container-type:inline-size;container-name:dwb;--dwb-btn:#111}
.dwb-app *,.dwb-app *::before,.dwb-app *::after{box-sizing:border-box;font-family:inherit}
.dwb-app button,.dwb-app input,.dwb-app select,.dwb-app textarea{font:inherit;color:inherit;margin:0}
.dwb-app h2,.dwb-app h3,.dwb-app h4,.dwb-app p,.dwb-app ul,.dwb-app ol{margin:0;padding:0}
.dwb-app button{cursor:pointer}
.dwb-app button:disabled{cursor:not-allowed}
.dwb-app a{color:var(--dwb-primary)}

/* header + stepper */
.dwb-head{text-align:center;margin-bottom:36px}
.dwb-title{font-size:clamp(28px,4.4vw,46px);font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--dwb-dark);margin-bottom:22px!important}
.dwb-steps{list-style:none;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding:0!important}
.dwb-step{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:var(--dwb-parch);color:var(--dwb-muted);font-size:14px}
.dwb-dot{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--dwb-line);font-size:13px;font-weight:600}
.dwb-step.is-active{background:#111;color:#fff}
.dwb-step.is-active .dwb-dot{background:var(--dwb-primary);color:#fff;border-color:var(--dwb-primary)}
.dwb-step.is-done{color:#111;cursor:pointer}
.dwb-step.is-done .dwb-dot{background:#111;color:#fff;border-color:#111}

/* layout */
.dwb-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:32px;align-items:start}
.dwb-grid>*{min-width:0}
.dwb-main{min-width:0}
.dwb-card{background:#fff;border-radius:var(--dwb-radius);padding:32px;margin-bottom:24px;box-shadow:0 10px 40px rgba(58,47,40,.07);border:1px solid rgba(230,220,203,.6);min-width:0}
.dwb-card.dwb-center{text-align:center}
.dwb-h3{font-size:22px;font-weight:600;margin-bottom:6px!important;color:var(--dwb-dark)}
.dwb-sub{color:var(--dwb-muted);font-size:14px;margin-bottom:18px!important}
.dwb-muted{color:var(--dwb-muted);font-size:13px}
.dwb-card .dwb-h3+.dwb-box{margin-top:18px}

/* floating-label fields (each field is its own box, no side dividers) */
.dwb-box{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:12px}
.dwb-box.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dwb-box.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dwb-box.cols-street{grid-template-columns:minmax(0,2.3fr) minmax(0,1fr)}
.dwb-field{position:relative;display:block;min-width:0;border:1px solid var(--dwb-line);border-radius:18px;background:#fff;overflow:hidden;transition:border-color .15s}
.dwb-field:focus-within{border-color:var(--dwb-btn)}
.dwb-field input,.dwb-field textarea{display:block;width:100%;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:27px 20px 8px;height:66px;font-size:16px;border-radius:0}
.dwb-field textarea{height:auto;min-height:150px;padding-top:30px;resize:vertical}
.dwb-field>span{position:absolute;left:20px;top:22px;font-size:16px;color:var(--dwb-muted);transition:all .15s ease;pointer-events:none}
.dwb-field input:focus+span,.dwb-field input:not(:placeholder-shown)+span,.dwb-field textarea:focus+span,.dwb-field textarea:not(:placeholder-shown)+span,.dwb-field.always>span{top:10px;font-size:12px}
.dwb-field.dwb-err>span{color:#b3261e}
.dwb-field.dwb-err{background:#fff6f5;border-color:#d9534f}
.dwb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}

/* buttons: high specificity + !important so theme button styles can never override colours */
.dwb-app .dwb-btn,.dwb-app a.dwb-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;border:1px solid var(--dwb-btn)!important;border-radius:999px!important;padding:19px 28px!important;background:var(--dwb-btn)!important;color:#fff!important;font-size:17px;font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none;text-decoration:none!important;text-align:center;box-shadow:none!important;transition:background .15s,border-color .15s,transform .05s}
.dwb-app .dwb-btn:hover:not(:disabled),.dwb-app a.dwb-btn:hover,.dwb-app .dwb-btn:focus-visible{background:#2b2b2b!important;border-color:#2b2b2b!important;color:#fff!important}
.dwb-app .dwb-btn:active:not(:disabled){transform:translateY(1px)}
.dwb-app .dwb-btn:disabled{background:#e4dfd6!important;border-color:#e4dfd6!important;color:#6b6358!important;opacity:1}
.dwb-app .dwb-btn-ghost{background:#fff!important;color:#111!important;border:1px solid #cfc6b6!important;width:auto;padding:17px 26px!important}
.dwb-app .dwb-btn-ghost:hover:not(:disabled){background:var(--dwb-parch)!important;border-color:#111!important;color:#111!important}
.dwb-app .dwb-btn-sm{width:auto;padding:12px 26px!important;font-size:15px}
.dwb-app a.dwb-btn-inline,.dwb-app .dwb-btn-inline{width:auto;display:inline-flex;margin-top:22px}
.dwb-actions{display:flex;gap:14px;align-items:stretch}
.dwb-actions .dwb-btn:not(.dwb-btn-ghost){flex:1}
.dwb-app .dwb-link{background:none!important;border:0!important;padding:0!important;color:#111!important;text-decoration:underline;font-size:14px;margin-top:10px;box-shadow:none!important}
.dwb-error{color:#b3261e;background:#fff3f1;border:1px solid #f3c9c4;border-radius:14px;padding:12px 16px;margin:0 0 16px!important;font-size:14px}
.dwb-warn{color:#9a5b12;font-size:13px;margin-top:6px}

/* calendar */
.dwb-calnav{display:flex;align-items:center;justify-content:space-between;margin:10px 0 14px}
.dwb-calhint{font-size:14px;color:var(--dwb-muted)}
.dwb-app .dwb-nav{width:40px;height:40px;min-width:0;border-radius:50%!important;border:1px solid var(--dwb-line)!important;background:#fff!important;color:#111!important;font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0!important;box-shadow:none!important}
.dwb-app .dwb-nav:hover:not(:disabled){background:var(--dwb-parch)!important}
.dwb-nav:disabled{opacity:.35}
.dwb-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.dwb-month{min-width:0}
.dwb-mname{text-align:center;font-weight:600;margin-bottom:10px}
.dwb-wk,.dwb-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dwb-wk span{text-align:center;font-size:12px;color:var(--dwb-muted);padding:4px 0}
.dwb-app .dwb-day{position:relative;width:100%;min-width:0;aspect-ratio:1/1;min-height:0;border:0!important;border-radius:12px!important;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0!important;gap:1px;color:var(--dwb-dark)!important;box-shadow:none!important;overflow:hidden}
.dwb-app .dwb-day.dwb-blank{pointer-events:none;background:transparent!important}
.dwb-dn{font-size:15px;font-weight:500;line-height:1}
.dwb-dp{font-size:10px;color:var(--dwb-primary);font-weight:600;line-height:1}
.dwb-app .dwb-day:not(.is-off):hover{background:var(--dwb-parch)}
.dwb-app .dwb-day.is-off{color:#b9afa3!important;background:transparent}
.dwb-day.is-off .dwb-dp{color:#b9afa3}
.dwb-day.is-sold .dwb-dn{text-decoration:line-through}
.dwb-day.is-today .dwb-dn{box-shadow:inset 0 -2px 0 var(--dwb-sand)}
.dwb-day.is-mid,.dwb-day.is-hov{background:rgba(214,181,139,.35);border-radius:0}
.dwb-app .dwb-day.is-start,.dwb-app .dwb-day.is-end{background:#111!important;color:#fff!important}
.dwb-app .dwb-day.is-start .dwb-dp,.dwb-app .dwb-day.is-end .dwb-dp{color:var(--dwb-sand)}
.dwb-selbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;padding:16px 18px;background:var(--dwb-parch);border-radius:18px}
.dwb-selbar small{display:block;color:var(--dwb-muted);font-size:12px}
.dwb-selbar strong{font-size:15px}

/* counters */
.dwb-counter{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--dwb-line)}
.dwb-counter:first-of-type{border-top:0}
.dwb-counter strong{display:block}
.dwb-counter small{color:var(--dwb-muted)}
.dwb-cnt{display:flex;align-items:center;gap:16px}
.dwb-app .dwb-cbtn{width:38px;height:38px;min-width:0;border-radius:50%!important;border:1px solid var(--dwb-line)!important;background:#fff!important;color:#111!important;font-size:20px;line-height:1;padding:0!important;display:inline-flex;align-items:center;justify-content:center;box-shadow:none!important}
.dwb-app .dwb-cbtn:hover:not(:disabled){border-color:#111!important}
.dwb-cbtn:disabled{opacity:.35}
.dwb-cval{min-width:20px;text-align:center;font-weight:600;font-size:17px}

/* rooms */
.dwb-room{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:20px;align-items:center;padding:18px;border:1px solid var(--dwb-line);border-radius:22px;margin-top:16px;transition:border-color .15s,box-shadow .15s}
.dwb-room:not(.is-disabled):hover{border-color:var(--dwb-sand);box-shadow:0 8px 28px rgba(58,47,40,.08)}
.dwb-room.is-disabled{opacity:.6}
.dwb-room-img{position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:var(--dwb-sand)}
.dwb-app .dwb-room-img img,.dwb-app .dwb-sum-img img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;display:block;margin:0;border-radius:0}
.dwb-room-ph{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--dwb-sand),var(--dwb-primary))}
.dwb-room-body h4{font-size:20px;font-weight:600;margin-bottom:6px!important}
.dwb-room-body p{font-size:14px;color:var(--dwb-muted);margin-bottom:8px!important}
.dwb-pill{display:inline-block;margin-left:8px;background:#fdf1e0;color:#9a5b12;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}
.dwb-room-buy{text-align:right;min-width:170px}
.dwb-from{font-size:22px;font-weight:700;color:var(--dwb-dark)}
.dwb-from small{font-size:13px;font-weight:400;color:var(--dwb-muted)}
.dwb-room-buy .dwb-btn{margin-top:12px}

/* review / payment */
.dwb-review{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-top:14px}
.dwb-review small{display:block;color:var(--dwb-muted);font-size:12px}
.dwb-review strong{font-weight:500;word-break:break-word}
.dwb-radio{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--dwb-line);border-radius:18px;padding:16px 18px;margin-top:12px;cursor:pointer}
.dwb-radio:has(input:checked){border-color:var(--dwb-primary);background:#fdf8f0}
.dwb-radio input{margin-top:5px;accent-color:var(--dwb-primary);width:18px;height:18px}
.dwb-radio span strong{display:block}
.dwb-radio small{color:var(--dwb-muted)}
.dwb-secure{margin-top:16px!important;font-size:13px;color:var(--dwb-muted)}
.dwb-policy ul{list-style:disc;padding-left:20px!important;color:var(--dwb-muted);font-size:14px}
.dwb-policy li{margin-top:6px}
.dwb-check{display:flex;gap:12px;align-items:flex-start;margin:6px 4px 20px;font-size:14px;cursor:pointer}
.dwb-check input{margin-top:3px;accent-color:var(--dwb-primary);width:18px;height:18px;flex:none}

/* summary card */
.dwb-summary{background:var(--dwb-parch);border-radius:var(--dwb-radius);padding:26px;position:sticky;top:24px}
.dwb-sum-img{position:relative;aspect-ratio:16/10;border-radius:20px;overflow:hidden;margin-bottom:20px;background:var(--dwb-sand)}
.dwb-sum-title{font-size:26px;font-weight:600;line-height:1.2;margin-bottom:8px!important}
.dwb-sum-desc{font-size:14px;color:var(--dwb-muted);margin-bottom:6px!important}
.dwb-sum-block{border-top:1px solid rgba(58,47,40,.12);padding:16px 0}
.dwb-sum-block h4{font-size:17px;font-weight:600;margin-bottom:6px!important}
.dwb-sum-block p{font-size:15px}
.dwb-row{display:flex;justify-content:space-between;gap:12px;font-size:15px;padding:3px 0}
.dwb-row-sub{color:var(--dwb-muted);font-size:14px}
.dwb-total{font-size:19px;font-weight:700;border-top:1px solid rgba(58,47,40,.12);margin-top:12px;padding-top:14px}
.dwb-pay .dwb-row{color:var(--dwb-dark)}
.dwb-est{font-size:13px;color:var(--dwb-muted);margin-bottom:10px!important}
.dwb-est strong{color:var(--dwb-dark);font-weight:600}
.dwb-fine{font-size:12px;color:var(--dwb-muted);margin-top:8px!important}

/* result */
.dwb-result{max-width:640px;margin:10px auto}
.dwb-rcard{background:#fff;border-radius:var(--dwb-radius);padding:40px 32px;text-align:center;box-shadow:0 10px 40px rgba(58,47,40,.08)}
.dwb-rcard h2{font-size:30px;font-weight:600;margin-bottom:10px!important}
.dwb-rlead{color:var(--dwb-muted);margin-bottom:22px!important}
.dwb-ricon{width:72px;height:72px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;font-size:34px;color:#fff}
.dwb-ricon.ok{background:#111}
.dwb-ricon.fail{background:#b3261e}
.dwb-ricon.wait{background:var(--dwb-parch)}
.dwb-rtable{text-align:left;background:var(--dwb-parch);border-radius:18px;padding:8px 20px;margin-top:8px}
.dwb-rrow{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid rgba(58,47,40,.1);font-size:15px}
.dwb-rrow:last-child{border-bottom:0}
.dwb-rrow span:first-child{color:var(--dwb-muted)}
.dwb-rrow span:last-child{text-align:right}

/* loading */
.dwb-loading{display:flex;justify-content:center;padding:60px 0}
.dwb-spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--dwb-sand);border-top-color:var(--dwb-primary);display:inline-block;animation:dwb-spin .8s linear infinite}
.dwb-spinner-sm{width:18px;height:18px;border-width:2px;border-color:rgba(255,255,255,.5);border-top-color:#fff}
@keyframes dwb-spin{to{transform:rotate(360deg)}}

/* responsive (container based, so it also works in narrow Elementor columns) */
@container dwb (max-width:960px){
	.dwb-grid{grid-template-columns:minmax(0,1fr)}
	.dwb-summary{position:static;order:2}
}
@container dwb (max-width:680px){
	.dwb-months{grid-template-columns:minmax(0,1fr)}
	.dwb-month:nth-child(2){display:none}
	.dwb-card{padding:22px 18px;border-radius:24px}
	.dwb-room{grid-template-columns:minmax(0,1fr)}
	.dwb-room-buy{text-align:left;min-width:0}
	.dwb-review{grid-template-columns:minmax(0,1fr)}
	.dwb-actions{flex-direction:column-reverse}
	.dwb-app .dwb-actions .dwb-btn-ghost{width:100%}
	.dwb-step .dwb-steplabel{display:none}
	.dwb-step.is-active .dwb-steplabel{display:inline}
	.dwb-selbar{padding:12px;gap:8px}
	.dwb-selbar strong{font-size:13px}
	.dwb-sum-img{display:none}
	.dwb-app .dwb-day{aspect-ratio:auto;height:48px}
	.dwb-days,.dwb-wk{gap:3px}
}
@container dwb (max-width:520px){
	.dwb-box.cols-2,.dwb-box.cols-3,.dwb-box.cols-street{grid-template-columns:minmax(0,1fr)}
	.dwb-app .dwb-btn{font-size:16px;padding:17px 22px!important}
}
/* viewport fallback for browsers without container queries */
@supports not (container-type:inline-size){
	@media (max-width:980px){.dwb-grid{grid-template-columns:1fr}.dwb-summary{position:static;order:2}}
	@media (max-width:700px){.dwb-months{grid-template-columns:1fr}.dwb-month:nth-child(2){display:none}.dwb-room{grid-template-columns:1fr}.dwb-box.cols-2,.dwb-box.cols-3,.dwb-box.cols-street{grid-template-columns:1fr}.dwb-actions{flex-direction:column-reverse}}
}

/* clear, visible messages */
.dwb-app .dwb-alert{display:flex;gap:12px;align-items:flex-start;border:1px solid;border-radius:16px;padding:14px 16px;margin:16px 0;font-size:15px;line-height:1.5}
.dwb-app .dwb-alert-ico{flex:0 0 26px;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:#fff;margin-top:1px}
.dwb-app .dwb-alert-body{min-width:0;flex:1}
.dwb-app .dwb-alert-body strong{display:block;font-size:16px;margin-bottom:2px}
.dwb-app .dwb-alert-body p{margin:0 0 6px!important;font-size:15px}
.dwb-app .dwb-alert-body ul{margin:4px 0 8px 18px!important;padding:0;list-style:disc}
.dwb-app .dwb-alert-body li{margin:0 0 4px;font-size:15px}
.dwb-app .dwb-alert-body .dwb-btn{margin-top:6px}
.dwb-app .dwb-alert-warn{background:#fff8e8;border-color:#efd59a;color:#5e4108}
.dwb-app .dwb-alert-warn .dwb-alert-ico{background:#d98e04}
.dwb-app .dwb-alert-err{background:#fff3f1;border-color:#f3c9c4;color:#8f1d16}
.dwb-app .dwb-alert-err .dwb-alert-ico{background:#b3261e}
.dwb-app .dwb-gnote{margin-top:16px;padding:12px 16px;border-radius:14px;background:var(--dwb-parch);font-size:14px;color:var(--dwb-dark)}
.dwb-app .dwb-gnote-sub{color:var(--dwb-muted);font-size:13px;margin-top:2px}
.dwb-app .dwb-warn-strong{color:#8a4b00;font-size:13.5px;font-weight:500;line-height:1.45;margin-top:8px}
.dwb-app .dwb-need{margin:10px 4px 0;color:#8a4b00}
.dwb-room-buy .dwb-warn-strong{max-width:260px;margin-left:auto}
@container dwb (max-width:700px){.dwb-room-buy .dwb-warn-strong{max-width:none;margin-left:0}}

/* never let the app leave extra space below itself */
.dwb-app{min-height:0!important;height:auto!important;overflow:visible}
.dwb-app .dwb-grid,.dwb-app .dwb-main,.dwb-app .dwb-summary{min-height:0;height:auto}

/* Elementor flex containers wrap on mobile (--flex-wrap-mobile:wrap). With the booking form inside, a wrapping column
   container keeps a stale height and leaves a huge blank gap below. Keep the containers around the form on nowrap. */
.e-con:has(.dwb-app),.e-con-inner:has(.dwb-app),.e-con.e-flex:has(.dwb-app),.elementor-widget-wrap:has(.dwb-app){--flex-wrap:nowrap!important;--flex-wrap-mobile:nowrap!important;flex-wrap:nowrap!important}
.elementor-widget:has(.dwb-app),.elementor-widget:has(.dwb-app)>.elementor-widget-container,.elementor-shortcode:has(.dwb-app){width:100%;min-width:0;max-width:100%;flex:0 0 auto}
