/* ==============================================================
   Hospitality Site Studio 11.0 — full design/page/PWA production layer
   ============================================================== */
:root{--lc-page-accent:var(--lc-secondary);--lc-page-heading-size:clamp(42px,5.6vw,72px);--lc-page-body-size:17px;--lc-page-content-width:980px;--lc-page-spacing:72px}

/* Universal layout safety */
.lc2-theme *{box-sizing:border-box}.lc2-theme :where(.lc2-container,.lc2-section-inner,.lc2-page-main,.lc2-prose,.lc2-dynamic-shell,.lc2-vikbooking-output){min-width:0;max-width:100%}.lc2-theme :where(h1,h2,h3,h4){overflow-wrap:normal;word-break:normal;hyphens:none}.lc2-theme :where(p,li,dd,dt,label,a,button){overflow-wrap:break-word}.lc2-theme iframe{max-width:100%;border:0}

/* Attached pages and generated virtual/accommodation pages */
.lc2-page-main{background:var(--lc-background);color:var(--lc-text)}
.lc2-page-hero{position:relative;display:grid;align-items:end;min-height:clamp(300px,46vh,620px);padding:calc(var(--lc-header-height) + 50px) var(--lc-gutter-desktop) 54px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--lc-primary) 92%,#000),var(--lc-primary));color:#fff}
.lc2-page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 24%,color-mix(in srgb,var(--lc-accent) 24%,transparent),transparent 38%);pointer-events:none}.lc2-page-hero>.lc2-container{position:relative;width:min(100%,var(--lc-content-width));margin-inline:auto}.lc2-page-hero h1{max-width:16ch;margin:.18em 0 0;font:700 var(--lc-page-heading-size)/.98 var(--lc-heading-font);letter-spacing:-.035em}.lc2-page-hero .lc2-kicker{font-size:12px;font-weight:850;letter-spacing:.15em;text-transform:uppercase;color:color-mix(in srgb,var(--lc-accent) 78%,#fff)}
.lc2-prose{width:min(calc(100% - 2 * var(--lc-gutter-desktop)),var(--lc-page-content-width));margin:0 auto;padding:var(--lc-page-spacing) 0;font-size:var(--lc-page-body-size);line-height:1.72}.lc2-prose> :first-child{margin-top:0}.lc2-prose h2{font-size:clamp(30px,4vw,48px);line-height:1.08}.lc2-prose h3{font-size:clamp(24px,3vw,34px)}
.lc2-page-content-card .lc2-prose,.lc2-page-content-luxury .lc2-prose{margin-top:clamp(-54px,-5vw,-28px);position:relative;padding:clamp(28px,5vw,64px);border-radius:clamp(20px,3vw,32px);background:var(--lc-surface);box-shadow:0 22px 65px rgba(12,30,23,.11)}.lc2-page-content-editorial .lc2-prose{width:min(calc(100% - 2 * var(--lc-gutter-desktop)),1120px);font-family:var(--lc-body-font)}
.lc2-page-title-center .lc2-page-hero>.lc2-container{text-align:center}.lc2-page-title-center .lc2-page-hero h1{margin-inline:auto}.lc2-page-title-right .lc2-page-hero>.lc2-container{text-align:right}.lc2-page-title-right .lc2-page-hero h1{margin-left:auto}.lc2-page-hero-compact .lc2-page-hero{min-height:260px;padding-bottom:42px}.lc2-page-hero-none .lc2-page-hero{display:none}

/* Booking/plugin outputs must fit without breaking their own markup */
.lc2-vikbooking-output,.lc-core-vik-live{min-width:0!important;max-width:100%!important;overflow:visible!important}.lc2-vikbooking-output :where(form,fieldset,div),.lc-core-vik-live :where(form,fieldset,div){max-width:100%;min-width:0}.lc2-vikbooking-output :where(input:not([type=checkbox]):not([type=radio]),select,textarea),.lc-core-vik-live :where(input:not([type=checkbox]):not([type=radio]),select,textarea){max-width:100%!important;min-height:var(--lc-input-height)!important;box-sizing:border-box!important}.lc2-vikbooking-output :where(button,input[type=submit],.button,.btn),.lc-core-vik-live :where(button,input[type=submit],.button,.btn){max-width:100%!important;min-height:var(--lc-button-height)!important;white-space:normal!important}.lc2-vikbooking-output :where(.table-responsive,.vbo-table-responsive,.vbo-availcalendars-cont),.lc-core-vik-live :where(.table-responsive,.vbo-table-responsive,.vbo-availcalendars-cont){overflow-x:auto!important;max-width:100%!important;-webkit-overflow-scrolling:touch}

/* Core accommodation pages inherit theme tokens */
.lc-core-accommodation{font-family:var(--lc-body-font)!important;color:var(--lc-text)!important}.lc-core-accommodation h1,.lc-core-accommodation h2,.lc-core-accommodation h3{font-family:var(--lc-heading-font)!important}.lc-core-acc-hero,.lc-core-acc-booking__inner,.lc-core-amenities li{border-radius:var(--lc-card-radius)!important}.lc-core-book-button{background:var(--lc-secondary)!important;border-radius:var(--lc-button-radius)!important;min-height:var(--lc-button-height)!important}

/* Phone/PWA is a deliberate layout, not a shrunken desktop */
@media(max-width:1024px){
  .lc2-page-hero{min-height:clamp(280px,38vh,480px);padding:calc(var(--lc-header-mobile) + 36px) var(--lc-gutter-mobile) 38px}.lc2-page-hero h1{font-size:clamp(38px,10vw,58px);max-width:13ch}.lc2-prose{width:calc(100% - 2 * var(--lc-gutter-mobile));padding:clamp(40px,10vw,68px) 0}.lc2-page-content-card .lc2-prose,.lc2-page-content-luxury .lc2-prose{width:calc(100% - 2 * var(--lc-gutter-mobile));margin-top:-28px;padding:24px 18px}.lc2-theme :where(.lc2-button,button,input[type=submit]){min-height:48px}
}
@media(max-width:600px){
  .lc2-page-hero{min-height:320px}.lc2-page-hero h1{font-size:clamp(36px,11vw,50px)}.lc2-prose{font-size:max(16px,var(--lc-page-body-size))}.lc2-vikbooking-output table,.lc-core-vik-live table{min-width:560px}.lc2-vikbooking-output :where(input,select,textarea),.lc-core-vik-live :where(input,select,textarea){font-size:16px!important}
}
