/* Sunny Book — package listing pages + booking card. Uses the Sunny Site tokens (--sun, --royal, --ink, --cream …). */
.sb-page{--sb-line:var(--line,#E8E3D8);--sb-muted:var(--muted,#3B4560);--sb-ink:var(--ink,#14213D);--sb-royal:var(--royal,#1E3A96);--sb-sun:var(--sun,#F6A32B);--sb-tint:var(--tint,#EEF2FB);--sb-cream:var(--cream,#FFF8EA);padding-top:20px;color:var(--sb-ink);font-family:var(--f-body,"Outfit"),system-ui,sans-serif}
.sb-page [hidden],.sb-msg [hidden]{display:none!important}
.sb-page *,.sb-page *::before,.sb-page *::after{box-sizing:border-box}
.sb-listing{padding-bottom:40px}
.sb-crumbs{font-size:14px;color:var(--sb-muted);margin:12px 0 6px}
.sb-crumbs a{color:var(--sb-muted);text-decoration:none}.sb-crumbs a:hover{text-decoration:underline}
.sb-title{font-size:clamp(26px,3.2vw,38px);line-height:1.15;font-weight:800;color:var(--sb-ink);margin:0}
.sb-meta{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;margin:10px 0 20px;font-size:15px}
.sb-meta>span{display:inline-flex;align-items:center;gap:6px}
.sb-meta svg{color:var(--sb-royal)}
.sb-tag{display:inline-block;font-size:12px;font-weight:700;background:var(--sb-sun);color:var(--sb-ink);padding:5px 11px;border-radius:999px;font-style:normal}
/* slider */
.sb-slider{position:relative;border-radius:var(--r,16px);overflow:hidden;background:var(--sb-cream);outline:0}
.sb-slider__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sb-slider__track::-webkit-scrollbar{display:none}
.sb-slider__s{flex:0 0 100%;margin:0;scroll-snap-align:start;height:min(62vh,560px)}
.sb-slider__s img{width:100%;height:100%;object-fit:cover;display:block}
.sb-slider__btn{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--sb-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(20,33,61,.18);z-index:2;padding:0}
.sb-slider__btn:hover{background:#fff}
.sb-slider__btn--prev{left:16px}.sb-slider__btn--next{right:16px}
.sb-slider__count{position:absolute;right:16px;bottom:16px;background:rgba(20,33,61,.7);color:#fff;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;z-index:2}
.sb-slider__dots{position:absolute;left:0;right:0;bottom:20px;display:flex;justify-content:center;gap:6px;z-index:2;pointer-events:none}
.sb-slider__dots button{pointer-events:auto;width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.6);cursor:pointer;transition:.2s}
.sb-slider__dots button.is-on{background:#fff;width:22px;border-radius:999px}
/* layout */
.sb-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:60px;margin-top:34px;align-items:start}
.sb-side{position:sticky;top:120px}
.sb-side .sb-card{max-height:calc(100vh - 150px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.sb-host{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--sb-line)}
.sb-host h2{font-size:22px;font-weight:700;margin:0;color:var(--sb-ink)}
.sb-host p{margin:4px 0 0;color:var(--sb-muted)}
.sb-host__logo{width:64px;height:64px;border-radius:50%;border:1px solid var(--sb-line);display:flex;align-items:center;justify-content:center;padding:8px;flex:0 0 auto}
.sb-host__logo img{max-height:44px;width:auto}
.sb-feats{display:grid;gap:18px;padding:24px 0;border-bottom:1px solid var(--sb-line)}
.sb-feats>div{display:flex;gap:16px}
.sb-feats svg{flex:0 0 auto;color:var(--sb-royal);margin-top:2px}
.sb-feats strong{display:block}
.sb-feats p{margin:2px 0 0;color:var(--sb-muted);font-size:14px}
.sb-block{padding:30px 0;border-bottom:1px solid var(--sb-line)}
.sb-block>p{color:var(--sb-muted);line-height:1.65}
.sb-big{font-size:19px;color:var(--sb-ink)!important}
.sb-h2{font-size:clamp(24px,2.6vw,32px);font-weight:800;margin:0 0 24px;color:var(--sb-ink)}
.sb-h3{font-size:21px;font-weight:700;line-height:1.25;margin:0 0 14px;color:var(--sb-ink)}
.sb-h4{font-size:17px;font-weight:700;margin:18px 0 10px}
.sb-small{font-size:13px;color:var(--sb-muted)}
.sb-amen{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.sb-amen>div{display:flex;gap:14px;align-items:center;font-size:16px}
.sb-amen svg{flex:0 0 auto;color:var(--sb-royal)}
.sb-incl{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.sb-checks{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.sb-checks li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.5}
.sb-checks svg{flex:0 0 auto;color:var(--sb-royal);margin-top:2px}
.sb-checks--x svg{color:#b4544b}
.sb-tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--sb-line)}
.sb-tl li{position:relative;padding:0 0 22px 26px}
.sb-tl li::before{content:"";position:absolute;left:-7px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--sb-sun);box-shadow:0 0 0 4px #fff}
.sb-tl span{font-size:13px;font-weight:700;color:var(--sb-royal);letter-spacing:.03em}
.sb-tl h3{font-size:17px;font-weight:700;margin:2px 0 4px}
.sb-tl p{color:var(--sb-muted);margin:0;font-size:15px}
.sb-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.sb-room{border:1px solid var(--sb-line);border-radius:12px;padding:18px;background:#fff}
.sb-room h3{font-size:15px;font-weight:700;margin:0 0 8px;min-height:38px}
.sb-room strong{display:block;font-size:24px;font-weight:800;color:var(--sb-royal)}
.sb-room span{font-size:13px;color:var(--sb-muted)}
.sb-faq{border-top:1px solid var(--sb-line)}
.sb-faq details{border-bottom:1px solid var(--sb-line)}
.sb-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 0;font-size:17px;font-weight:600}
.sb-faq summary::-webkit-details-marker{display:none}
.sb-faq summary span{font-size:24px;line-height:1;color:var(--sb-royal);transition:.25s}
.sb-faq details[open] summary span{transform:rotate(45deg)}
.sb-faq p{color:var(--sb-muted);padding:0 36px 18px 0;margin:0;line-height:1.6}
.sb-more{background:var(--sb-cream);padding:60px 0}
.sb-more__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.sb-mbar{display:none}
/* booking card */
.sb-card{border:1px solid var(--sb-line);border-radius:var(--r,16px);padding:24px;box-shadow:0 12px 40px rgba(20,33,61,.12);background:#fff}
.sb-card__price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.sb-card__price s{color:var(--sb-muted)}
.sb-card__price strong{font-size:30px;font-weight:800;color:var(--sb-ink)}
.sb-card__price span{color:var(--sb-muted)}
.sb-card__price .sb-tag{margin-left:auto}
.sb-card__sub{font-size:14px;color:var(--sb-muted);margin:4px 0 16px}
.sb-card input,.sb-card select,.sb-card textarea{font:inherit;font-size:15px;width:100%;padding:12px 14px;border:1px solid #d9d3c4;border-radius:10px;background:#fff;color:var(--sb-ink);margin:0;box-shadow:none;min-height:0}
.sb-card input:focus,.sb-card select:focus,.sb-card textarea:focus{outline:2px solid var(--sb-royal);border-color:transparent}
.sb-form{display:grid;gap:10px}
.sb-hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.sb-err{background:#fbe9e7;color:#9b2c1f;padding:10px 12px;border-radius:10px;margin:0;font-size:14px}
.sb-box{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d9d3c4;border-radius:12px;overflow:hidden;gap:1px;background:#d9d3c4}
.sb-f{display:flex;flex-direction:column;padding:9px 12px;background:#fff;margin:0}
.sb-f--full,.sb-dep{grid-column:span 2}
.sb-f span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--sb-ink)}
.sb-card .sb-f select,.sb-card .sb-f input{border:0;padding:2px 0;outline:0;background:transparent;border-radius:0}
.sb-dep b{font-size:15px;font-weight:600;padding:2px 0}
.sb-note{font-size:12.5px;color:var(--sb-muted);margin:-2px 0 0}
.sb-center{text-align:center}
.sb-one{display:flex;flex-direction:column;gap:4px;margin:0}
.sb-one span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.sb-addons{border:1px solid #d9d3c4;border-radius:12px;padding:10px 12px}
.sb-addons summary{cursor:pointer;font-size:14px;font-weight:600}
.sb-addons label{display:flex;gap:8px;align-items:flex-start;font-size:14px;margin:8px 0 0;cursor:pointer}
.sb-card .sb-addons input{width:16px;height:16px;padding:0;margin:3px 0 0;flex:0 0 auto;accent-color:var(--sb-royal)}
.sb-est{background:var(--sb-cream);border-radius:12px;padding:10px 12px;font-size:14px}
.sb-pay{border:1px solid #d9d3c4;border-radius:12px;padding:10px 12px 8px;margin:4px 0 4px;min-width:0}
.sb-pay legend{font-size:13px;font-weight:700;padding:0 6px}
.sb-pay__o{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:12px;cursor:pointer;margin:0 0 6px;border:1px solid transparent}
.sb-pay__o:has(input:checked){background:var(--sb-tint);border-color:var(--sb-royal)}
.sb-card .sb-pay__o input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--sb-royal);padding:0}
.sb-pay__o span{display:flex;flex-direction:column;line-height:1.35}
.sb-pay__o strong{font-size:15px}
.sb-pay__o small{font-size:13px;color:var(--sb-muted)}
.sb-pay__note{font-size:12px;color:var(--sb-muted);margin:4px 0 0;line-height:1.45}
.sb-pay__note a{color:var(--sb-royal);text-decoration:underline}
.sb-card .sb-submit,.sb-card .sunny-btn{width:100%;justify-content:center;text-align:center;border:0;cursor:pointer}
.sb-card__perks{list-style:none;padding:16px 0 0;margin:16px 0 0;border-top:1px solid var(--sb-line);display:grid;gap:10px;font-size:14px}
.sb-card__perks li,.sb-card__perks a{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--sb-ink)}
.sb-card__perks svg{flex:0 0 auto;color:var(--sb-royal)}
/* availability checker */
.sb-avc{display:grid;gap:12px}
.sb-avc__intro{font-size:14px;color:var(--sb-muted);margin:0;line-height:1.5}
.sb-avc__box{grid-template-columns:1fr 1fr}
.sb-avc__res p{margin:0 0 10px;font-size:14px;line-height:1.45}
.sb-avc__opt{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 10px;border:1px solid #d9d3c4;border-radius:12px;padding:10px 12px;margin:0 0 8px;font-size:14px;line-height:1.4}
.sb-avc__opt>span{flex:1 1 170px}
.sb-avc__opt small{color:var(--sb-muted)}
.sb-avc__opt .sunny-btn{white-space:nowrap;width:auto;padding:9px 16px;font-size:14px;min-height:0}
.sb-avc__no{background:var(--sb-cream);border-radius:12px;padding:10px 12px;margin:0 0 10px}
.sb-avc__no .sb-avc__opt{background:#fff;margin:0}
.sb-avc__warn,.sb-avc__opt small.sb-avc__warn{color:#c0392b}
.sb-avc__err{color:#c0392b}
.sb-avc__sub{font-weight:600}
.sb-avc__res a,.sb-avc__back a{color:var(--sb-royal);text-decoration:underline}
.sb-avc__back{margin:0 0 8px;font-size:14px}
.sb-avc__chosen{background:var(--sb-tint);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.45;margin:0 0 12px}
.sb-avc__chosen span{color:var(--sb-muted);font-size:13px}
/* message pages (thank you / payment / terms) */
.sb-msg{padding:70px 0 80px;background:var(--cream,#FFF8EA);font-family:var(--f-body,"Outfit"),system-ui,sans-serif;color:var(--ink,#14213D)}
.sb-msg__in{max-width:680px;margin:0 auto;text-align:center}
.sb-msg--left .sb-msg__in{text-align:left}
.sb-msg h1{font-size:clamp(28px,3.4vw,40px);font-weight:800;margin:10px 0 14px}
.sb-msg__ic{display:inline-flex;width:76px;height:76px;border-radius:50%;background:var(--sun,#F6A32B);align-items:center;justify-content:center;color:var(--ink,#14213D)}
.sb-lead{font-size:18px;line-height:1.6}
.sb-msg .sunny-btn{margin-top:6px}
.sb-msg .sb-checks{margin:18px 0}
@media (max-width:1100px){.sb-grid{grid-template-columns:minmax(0,1fr) 350px;gap:36px}.sb-more__grid{grid-template-columns:1fr 1fr}}
@media (max-width:900px){
  .sb-page{padding-top:8px}
  .sb-grid,.sb-incl{grid-template-columns:1fr}
  .sb-side{position:static}
  .sb-side .sb-card{max-height:none;overflow:visible}
  .sb-slider__s{height:min(56vh,420px)}
  .sb-slider{margin:0 -16px;border-radius:0}
  .sb-mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:95;background:#fff;border-top:1px solid var(--sb-line);padding:12px 18px;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -6px 20px rgba(20,33,61,.08)}
  .sb-mbar strong{font-size:19px}
  .sb-mbar span{color:var(--sb-muted)}
  .sb-mbar small{display:block;color:var(--sb-muted);font-size:12px}
  .sb-mbar .sunny-btn{padding:12px 20px}
  .sb-listing-page{padding-bottom:72px}
  .sb-msg{padding-top:40px}
}
@media (max-width:600px){
  .sb-amen,.sb-more__grid{grid-template-columns:1fr}
  .sb-slider__btn{display:none}
  .sb-card{padding:18px}
  .sb-faq summary{font-size:16px}
}
