:root{
  --swi-cream:#f5f0e7;
  --swi-white:#ffffff;
  --swi-green:#7a9474;
  --swi-green-dark:#687f63;
  --swi-gold:#c7a45a;
  --swi-gold-dark:#9f7d38;
  --swi-ink:#40372f;
  --swi-muted:#7c7064;
}

.sabs-booking-app,
.sabs-calendar,
.sabs-hero-search{
  --sabs-text:var(--swi-ink);
  --sabs-muted:var(--swi-muted);
  --sabs-line:rgba(122,104,84,.22);
  --sabs-line-strong:rgba(122,104,84,.36);
  --sabs-surface:#fffdf9;
  --sabs-soft:var(--swi-cream);
  --sabs-accent:var(--swi-green);
  --sabs-accent-dark:var(--swi-green-dark);
  --sabs-accent-soft:#e5ece2;
  --sabs-gold:var(--swi-gold);
  --sabs-blocked:var(--swi-gold);
  --sabs-blocked-dark:var(--swi-gold-dark);
  color:var(--sabs-text);
  font-family:'Poppins',Arial,sans-serif;
}

.sabs-booking-app,
.sabs-booking-app *,
.sabs-calendar,
.sabs-calendar *,
.sabs-hero-search,
.sabs-hero-search *{box-sizing:border-box}

/* Main booking: compact desktop layout */
.sabs-booking-app{max-width:1180px;margin:28px auto 34px}
.sabs-calendar{max-width:1180px;margin:24px auto}
.sabs-booking-app .sabs-calendar{max-width:none;margin:0}
.sabs-layout{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(310px,.72fr);gap:18px;align-items:start}

.sabs-booking-app .sabs-card{
  background:var(--sabs-surface)!important;
  border:1px solid var(--sabs-line);
  border-radius:18px;
  padding:18px;
  box-shadow:0 14px 34px rgba(38,27,18,.055);
}

.sabs-booking-app .sabs-card h3{
  font-family:'Playfair Display',Georgia,serif;
  margin:0 0 5px;
  color:var(--sabs-text);
  font-size:clamp(1.45rem,1.6vw,1.9rem)!important;
  line-height:1.08;
  font-weight:600;
  text-transform:none;
}

.sabs-booking-app .sabs-section-head p{margin:0 0 10px;color:var(--sabs-muted);font-size:.9rem;line-height:1.4}

.sabs-calendar-toolbar{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:10px;margin-bottom:7px}
.sabs-calendar-title{text-align:center;font-size:.86rem;color:var(--sabs-muted);font-weight:600;letter-spacing:.02em}
.sabs-booking-app .sabs-nav{
  width:36px;height:36px;border:1px solid var(--sabs-line);background:var(--sabs-surface);border-radius:10px;color:var(--sabs-text);
  display:flex;align-items:center;justify-content:center;padding:0;line-height:1;font-size:1rem;cursor:pointer;
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease
}
.sabs-booking-app .sabs-nav:hover:not(:disabled){transform:translateY(-1px);border-color:var(--sabs-line-strong);box-shadow:0 6px 14px rgba(38,27,18,.07)}
.sabs-booking-app .sabs-nav:disabled{opacity:.3;cursor:default}
.sabs-prev{justify-self:start}.sabs-next{justify-self:end}

.sabs-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sabs-month h4{font-family:'Playfair Display',Georgia,serif;text-align:center;margin:0 0 7px;color:var(--sabs-text);font-size:clamp(1.18rem,1.25vw,1.5rem)!important;line-height:1.1;font-weight:600;text-transform:none}
.sabs-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.sabs-weekday{text-align:center;padding:3px 0 4px;color:#9b8266;font-size:.7rem;font-weight:700;letter-spacing:.04em}

.sabs-booking-app .sabs-day{
  appearance:none;-webkit-appearance:none;min-height:48px;border:1px solid rgba(135,117,97,.19);border-radius:10px;background:#fbf8f2;color:var(--sabs-text);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 2px;font:inherit;
  transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background-color .14s ease
}
button.sabs-day{cursor:pointer}
button.sabs-day:hover:not(:disabled):not(.is-blocked):not(.is-start):not(.is-end){transform:translateY(-1px);border-color:rgba(49,91,73,.4);box-shadow:0 6px 12px rgba(49,91,73,.07)}
.sabs-day .sabs-day-num,.sabs-day>span:first-child{font-size:.9rem;font-weight:750;line-height:1}
.sabs-day small{font-size:.58rem;color:#9f8669;white-space:nowrap;line-height:1;font-weight:650}
.sabs-day.is-past{opacity:.32}
.sabs-day.is-blocked{background:var(--sabs-blocked)!important;border-color:var(--sabs-blocked-dark)!important;color:#fff!important;font-weight:800}
.sabs-day.is-blocked small{color:rgba(255,255,255,.9)!important}
.sabs-day.is-range{background:var(--sabs-accent-soft)!important;border-color:#b4c9bd!important;color:#1f4133!important;font-weight:700}
.sabs-day.is-start,.sabs-day.is-end{background:var(--sabs-accent)!important;border-color:var(--sabs-accent-dark)!important;color:#fff!important;font-weight:800;box-shadow:0 0 0 1px rgba(49,91,73,.16),0 6px 12px rgba(49,91,73,.14)}
.sabs-day.is-start small,.sabs-day.is-end small,.sabs-day.is-range small{color:inherit!important}
.sabs-day--blank{border:0;background:transparent;box-shadow:none}

.sabs-legend{display:flex;gap:11px;flex-wrap:wrap;margin-top:9px;color:var(--sabs-muted);font-size:.76rem}
.sabs-legend span{display:flex;gap:5px;align-items:center}.sabs-key{width:9px;height:9px;border-radius:3px;border:1px solid var(--sabs-line);display:inline-block}
.sabs-key--free{background:#fbf8f2}.sabs-key--blocked{background:var(--sabs-blocked);border-color:var(--sabs-blocked-dark)}.sabs-key--selected{background:var(--sabs-accent);border-color:var(--sabs-accent-dark)}
.sabs-calendar-message,.sabs-form-message{min-height:16px;margin-top:5px;font-size:.78rem}.is-error{color:var(--sabs-blocked)!important}.is-success{color:var(--sabs-accent)!important}

.sabs-form-card{position:sticky;top:16px}.sabs-form{display:grid;gap:9px}.sabs-form label{display:grid;gap:4px;font-size:.82rem;font-weight:650;color:var(--sabs-text)}
.sabs-form input,.sabs-form select,.sabs-form textarea{width:100%;border:1px solid var(--sabs-line);border-radius:10px;padding:8px 10px;background:#fffdf9!important;color:var(--sabs-text)!important;font:inherit;min-height:40px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.sabs-form textarea{min-height:66px;resize:vertical}.sabs-form input:focus,.sabs-form select:focus,.sabs-form textarea:focus{border-color:rgba(49,91,73,.55);box-shadow:0 0 0 3px rgba(49,91,73,.09)}
.sabs-fields-2,.sabs-selected-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sabs-selected-dates{background:var(--sabs-soft);border:1px solid rgba(135,117,97,.17);padding:8px;border-radius:13px}
.sabs-selected-dates>div{background:rgba(255,255,255,.5);border:1px solid rgba(135,117,97,.16);border-radius:9px;padding:8px 9px}
.sabs-selected-dates span{display:block;color:#9a8266;font-size:.68rem;font-weight:750;letter-spacing:.04em;margin-bottom:3px}.sabs-selected-dates strong{display:block;font-size:.88rem;line-height:1.15;font-weight:750;color:var(--sabs-text)}
.sabs-price-box{border:1px solid rgba(135,117,97,.17);background:#fcf8f1;border-radius:12px;padding:7px 9px;font-size:.78rem}.sabs-price-box>div{display:flex;justify-content:space-between;gap:14px;padding:2px 0}.sabs-price-total{font-size:.9rem;margin-top:3px;padding-top:6px!important;border-top:1px dashed rgba(135,117,97,.24)}
.sabs-primary{border:0;border-radius:11px;padding:11px 14px;background:var(--sabs-accent);color:#fff;font:inherit;font-size:.88rem;font-weight:750;cursor:pointer;box-shadow:0 8px 16px rgba(49,91,73,.14);transition:transform .15s ease,background-color .15s ease}.sabs-primary:hover:not(:disabled){background:var(--sabs-accent-dark);transform:translateY(-1px)}.sabs-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.sabs-payment-note{font-size:.68rem;color:var(--sabs-muted);margin:0;line-height:1.35}.sabs-check{grid-template-columns:auto 1fr!important;align-items:start;font-weight:400!important;gap:7px!important;font-size:.72rem!important}.sabs-check input{width:auto;min-height:auto;margin-top:2px}.sabs-check a{color:var(--sabs-accent-dark)}.sabs-hp{position:absolute!important;left:-9999px!important;opacity:0!important}
.sabs-notice{border:1px solid var(--sabs-line);border-radius:12px;padding:11px 13px;margin-bottom:14px;display:grid;gap:3px;background:var(--sabs-surface);font-size:.85rem}.sabs-notice--success{border-color:rgba(49,91,73,.28);background:rgba(49,91,73,.06)}


/* Complete home hero */
.sabs-home-hero{
  --sabs-home-hero-image:none;
  --sabs-home-cream:var(--swi-cream);
  position:relative;
  isolation:isolate;
  z-index:80;
  width:100vw;
  width:100dvw;
  max-width:100vw;
  max-width:100dvw;
  left:50%;
  margin-left:-50vw;
  margin-left:-50dvw;
  margin-right:-50vw;
  margin-right:-50dvw;
  min-height:680px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:0;
  margin-bottom:72px;
  background-image:
    linear-gradient(90deg,rgba(22,24,21,.38) 0%,rgba(22,24,21,.26) 45%,rgba(22,24,21,.40) 100%),
    var(--sabs-home-hero-image);
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  overflow:visible;
}
.sabs-home-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(12,16,13,.03),rgba(12,16,13,.12));
}
.sabs-home-hero-inner{
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 48px));
  margin:0 auto;
  padding:72px 0 64px;
  text-align:center;
  color:#fff;
}
.sabs-home-hero-eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:0 0 22px;
  color:rgba(255,255,255,.92);
  font-family:'Poppins',sans-serif;
  font-size:.72rem;
  line-height:1.4;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.sabs-home-hero-eyebrow::before,.sabs-home-hero-eyebrow::after{content:"";display:block;width:42px;height:1px;background:rgba(255,255,255,.48)}
.sabs-home-hero-title{
  max-width:920px;
  margin:0 auto !important;
  color:var(--sabs-home-cream) !important;
  font-family:'Playfair Display',Georgia,serif !important;
  font-size:clamp(2.65rem,4.2vw,3.65rem) !important;
  line-height:1.08 !important;
  font-weight:400 !important;
  letter-spacing:-.025em !important;
  text-wrap:balance;
}
.sabs-home-hero-text{
  max-width:760px;
  margin:26px auto 0 !important;
  color:rgba(255,255,255,.94) !important;
  font-family:'Poppins',sans-serif !important;
  font-size:clamp(.96rem,1.15vw,1.08rem) !important;
  line-height:1.8 !important;
  font-weight:400 !important;
}
.sabs-home-hero-booking{margin-top:34px;position:relative;z-index:120}
.sabs-home-hero .sabs-hero-search{width:min(1120px,100%)}
.sabs-home-hero .sabs-hero-bar{background:rgba(255,253,249,.96);box-shadow:0 18px 42px rgba(20,16,12,.22)}

@media(max-width:900px){
  .sabs-home-hero{min-height:650px;margin-bottom:60px}
  .sabs-home-hero-inner{width:min(800px,calc(100% - 36px));padding:68px 0 58px}
  .sabs-home-hero-booking{margin-top:28px}
}
@media(max-width:620px){
  .sabs-home-hero{min-height:640px;margin-bottom:48px;background-position:48% center}
  .sabs-home-hero-inner{width:calc(100% - 28px);padding:58px 0 46px}
  .sabs-home-hero-eyebrow{gap:10px;margin-bottom:18px;font-size:.58rem;letter-spacing:.2em}
  .sabs-home-hero-eyebrow::before,.sabs-home-hero-eyebrow::after{width:24px}
  .sabs-home-hero-title{font-size:clamp(2.05rem,10vw,2.65rem) !important}
  .sabs-home-hero-text{margin-top:20px !important;font-size:.9rem !important;line-height:1.7 !important}
  .sabs-home-hero-booking{margin-top:24px}
}

/* Hero booking bar */
.sabs-hero-search{position:relative;width:min(1180px,calc(100% - 28px));margin:0 auto;z-index:140;overflow:visible!important}
.sabs-hero-bar{display:grid;grid-template-columns:minmax(200px,1.02fr) minmax(260px,1.26fr) minmax(165px,.78fr) auto;align-items:stretch;background:rgba(255,253,249,.97);border:1.5px solid var(--sabs-gold);border-radius:14px;box-shadow:0 14px 34px rgba(35,26,17,.15);overflow:hidden;backdrop-filter:blur(8px)}
.sabs-hero-segment{min-width:0;border:0;border-right:1px solid rgba(122,104,84,.2);background:transparent;color:var(--sabs-text);padding:10px 14px;display:flex;align-items:center;gap:10px;text-align:left;font:inherit;cursor:pointer}
.sabs-hero-property{cursor:default}.sabs-hero-icon{width:25px;height:25px;flex:0 0 25px;color:#6d6257}.sabs-hero-icon svg{width:100%;height:100%;display:block}.sabs-hero-copy{min-width:0;display:block}.sabs-hero-copy small{display:block;color:var(--sabs-muted);font-size:.62rem;line-height:1.1;margin-bottom:3px;letter-spacing:.035em}.sabs-hero-copy strong{display:flex;align-items:center;gap:7px;min-width:0;font-size:.80rem;line-height:1.15;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sabs-hero-copy strong em{font-style:normal;color:#9b8d7f;font-weight:400}.sabs-hero-chevron{margin-left:auto;color:#72675d;font-size:1rem}
.sabs-hero-submit{
  border:0;
  background:var(--sabs-accent);
  color:#fff;
  padding:0 16px;
  min-width:142px;
  font-family:'Poppins',Arial,sans-serif;
  font-weight:700;
  font-size:.72rem;
  line-height:1.2;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .15s ease,transform .15s ease;
}
.sabs-hero-submit:hover{background:var(--sabs-accent-dark);transform:translateY(-1px)}

.sabs-hero-popover{
  position:absolute;
  top:calc(100% + 10px);
  width:min(760px,calc(100vw - 32px));
  max-width:760px;
  background:#fffdf9;
  border:1px solid var(--sabs-line);
  border-radius:16px;
  box-shadow:0 22px 55px rgba(35,26,17,.20);
  padding:16px 18px 18px;
  z-index:9999;
  overflow:hidden;
}
.sabs-hero-popover[hidden]{display:none!important}
.sabs-hero-date-popover{left:50%;right:auto;transform:translateX(-50%)}
.sabs-hero-guests-popover{width:320px;right:13%;left:auto;transform:none}
.sabs-hero-popover-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.sabs-hero-popover-head strong{font-size:.92rem;font-weight:650}
.sabs-hero-close{
  border:0;background:transparent;color:var(--sabs-text);
  font-size:1.35rem;line-height:1;width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer
}
.sabs-hero-calendar-toolbar{
  display:grid;grid-template-columns:34px minmax(0,1fr) 34px;
  align-items:center;margin-bottom:8px
}
.sabs-hero-calendar-toolbar>span{text-align:center;font-size:.76rem;color:var(--sabs-muted);font-weight:650}
.sabs-hero-cal-prev,.sabs-hero-cal-next{
  width:32px;height:32px;min-width:0;
  border:1px solid var(--sabs-line);border-radius:9px;
  background:#fff;color:var(--sabs-text);
  display:flex;align-items:center;justify-content:center;
  padding:0;margin:0;line-height:1;cursor:pointer
}
.sabs-hero-cal-prev:disabled,.sabs-hero-cal-next:disabled{opacity:.25}
.sabs-hero-cal-next{justify-self:end}
.sabs-hero-months{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  width:100%;
  min-width:0;
  overflow:hidden;
}
.sabs-hero-month{
  min-width:0;
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.sabs-hero-month h4{
  text-align:center;margin:0 0 8px;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1rem;line-height:1.2;font-weight:500
}
.sabs-hero-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
  width:100%;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.sabs-hero-calendar-grid>*{min-width:0;max-width:100%}
.sabs-hero-weekday{
  text-align:center;color:#8d7b69;font-size:.64rem;
  padding:3px 0;font-weight:700;overflow:hidden
}
.sabs-hero-day{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:34px!important;
  min-height:34px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:8px;
  background:transparent;
  color:var(--sabs-text);
  font-family:'Poppins',Arial,sans-serif;
  font-size:.74rem;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:none!important;
  cursor:pointer;
  overflow:hidden
}
.sabs-hero-day:hover:not(:disabled){background:#f0ebe3}
.sabs-hero-day.is-past{opacity:.3}
.sabs-hero-day.is-blocked{
  color:#fff;
  text-decoration:line-through;
  background:var(--sabs-blocked)
}
.sabs-hero-day.is-range{background:var(--sabs-accent-soft);color:#314437}
.sabs-hero-day.is-start,.sabs-hero-day.is-end{background:var(--sabs-accent);color:#fff;font-weight:800}
.sabs-hero-day.is-blank{visibility:hidden}
.sabs-hero-calendar-message{min-height:18px;margin-top:6px;font-size:.72rem}
.sabs-hero-guest-row{display:flex;justify-content:space-between;gap:20px;align-items:center}.sabs-hero-guest-row>div:first-child{display:grid;gap:3px}.sabs-hero-guest-row small{color:var(--sabs-muted);font-size:.72rem}.sabs-hero-stepper{display:flex;align-items:center;gap:10px}.sabs-hero-stepper button{width:34px;height:34px;border:1px solid var(--sabs-line);border-radius:50%;background:#fff;color:var(--sabs-text);font-size:1.1rem;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.sabs-hero-stepper button:disabled{opacity:.3}.sabs-hero-stepper strong{min-width:20px;text-align:center}

@media(max-width:1050px){.sabs-layout{grid-template-columns:minmax(0,1.4fr) minmax(290px,.76fr);gap:15px}.sabs-booking-app .sabs-card{padding:15px}.sabs-hero-bar{grid-template-columns:1fr 1.25fr .8fr auto}.sabs-hero-submit{min-width:140px;padding:0 16px}}
@media(max-width:860px){.sabs-layout{grid-template-columns:1fr}.sabs-form-card{position:static}.sabs-hero-bar{grid-template-columns:1fr 1fr}.sabs-hero-submit{min-height:52px}.sabs-hero-segment:nth-child(2){border-right:0}.sabs-hero-property,.sabs-hero-dates{border-bottom:1px solid rgba(122,104,84,.2)}.sabs-hero-date-popover,.sabs-hero-guests-popover{right:0}}
@media(max-width:620px){.sabs-months,.sabs-hero-months{grid-template-columns:1fr}.sabs-booking-app{margin:22px auto 28px}.sabs-booking-app .sabs-card{padding:14px}.sabs-fields-2,.sabs-selected-dates{grid-template-columns:1fr}.sabs-hero-search{width:calc(100% - 20px)}.sabs-hero-bar{grid-template-columns:1fr}.sabs-hero-segment{border-right:0;border-bottom:1px solid rgba(122,104,84,.2)}.sabs-hero-submit{min-height:50px}.sabs-hero-popover{width:100%;right:0}.sabs-hero-date-popover{right:0}.sabs-hero-guests-popover{width:100%;right:0}}

@media(max-width:620px){
  .sabs-hero-date-popover{left:0;right:0;transform:none;width:100%;max-width:none}
  .sabs-hero-guests-popover{left:0;right:0;transform:none;width:100%}
}
