/* ==============================================================
   La Châteline Hospitality Site Studio 10.0
   Production responsive layer — desktop, tablet, phone and PWA.
   Loaded after all legacy/theme preset rules on purpose.
   ============================================================== */

html{max-width:100%;overflow-x:clip}
body.lc2-theme{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.lc2-theme :where(main,section,article,header,footer,nav,aside,div,form,fieldset,figure,picture){min-width:0}
.lc2-theme :where(img,video,iframe,svg){max-width:100%}
.lc2-theme :where(h1,h2,h3,h4,p,li,a,button,label,span,strong){word-break:normal;overflow-wrap:break-word}
.lc2-theme :where(h1,h2,h3){text-wrap:balance}
.lc2-theme :where(p,.lc2-section-copy,.lc2-hero-copy){text-wrap:pretty}
.lc2-theme :focus-visible{outline:3px solid color-mix(in srgb,var(--lc-secondary) 78%,#fff);outline-offset:3px}

/* ---------- Header: full desktop navigation, crisp mobile navigation ---------- */
.lc2-site-header{max-width:100vw}
.lc2-header-inner{max-width:var(--lc-content-width);box-sizing:border-box}
.lc2-brand,.lc2-desktop-nav,.lc2-header-actions{min-width:0}
.lc2-logo--header{height:auto}

@media(min-width:1025px){
  .lc2-site-header{height:auto!important;min-height:var(--lc-header-height)}
  .lc2-header-inner{height:auto!important;min-height:var(--lc-header-height);padding-block:10px}
  .lc2-desktop-nav{display:block!important;visibility:visible!important;opacity:1!important;overflow:visible!important}
  .lc2-header-cta{display:inline-flex!important}
  .lc2-menu-toggle{display:none!important}
  .lc2-site-header.is-compact .lc2-desktop-nav{display:block!important}
  .lc2-site-header.is-compact .lc2-header-cta{display:inline-flex!important}
  .lc2-site-header.is-compact .lc2-menu-toggle{display:none!important}
  .lc2-menu{display:flex!important;flex-wrap:wrap;justify-content:var(--lc-menu-justify,center);column-gap:clamp(10px,1.15vw,22px);row-gap:2px;font-size:clamp(12px,var(--lc-menu-size),16px);line-height:1.15}
  .lc2-menu>li>a{min-height:40px;padding:6px 3px;white-space:nowrap}
  .lc2-header-actions{justify-self:end}
}

/* Small desktop/laptop: keep a real menu, but move it to a clean second row. */
@media(min-width:1025px) and (max-width:1279px){
  .lc2-header-layout--inline .lc2-header-inner{grid-template-columns:minmax(150px,1fr) auto!important;grid-template-areas:"brand actions" "nav nav"!important;column-gap:22px;row-gap:4px;align-content:center}
  .lc2-header-layout--inline .lc2-brand{grid-area:brand}
  .lc2-header-layout--inline .lc2-header-actions{grid-area:actions}
  .lc2-header-layout--inline .lc2-desktop-nav{grid-area:nav;border-top:1px solid color-mix(in srgb,currentColor 16%,transparent);padding-top:3px}
  .lc2-header-layout--inline .lc2-menu{justify-content:center!important}
  .lc2-header-layout--inline .lc2-logo--header{max-height:66px}
}

@media(max-width:1024px){
  .lc2-site-header{height:var(--lc-header-mobile)!important;min-height:var(--lc-header-mobile)!important}
  .lc2-header-inner{width:calc(100% - max(20px,env(safe-area-inset-left) + env(safe-area-inset-right)));height:100%!important;min-height:0!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"brand actions"!important;gap:10px;padding:0!important}
  .lc2-brand{grid-area:brand;max-width:calc(100vw - 92px);overflow:hidden}
  .lc2-logo--header{width:min(var(--lc-logo-mobile),38vw);max-height:calc(var(--lc-header-mobile) - 12px)}
  .lc2-brand span{max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px}
  .lc2-desktop-nav,.lc2-header-cta{display:none!important}
  .lc2-menu-toggle{display:flex!important;grid-area:actions;justify-self:end;flex:0 0 auto;min-width:48px;min-height:48px;padding:8px 11px;background:var(--lc-surface);color:var(--lc-text);border:1px solid color-mix(in srgb,var(--lc-text) 20%,transparent);box-shadow:0 8px 24px rgba(12,30,23,.10);-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
  .lc2-mobile-menu{top:0!important;height:100dvh!important;padding:max(16px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#fff!important;color:#17201c!important;backdrop-filter:none!important;filter:none!important;transform:none!important;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
  .admin-bar .lc2-mobile-menu{top:46px!important;height:calc(100dvh - 46px)!important}
  .lc2-mobile-menu-list,.lc2-mobile-menu .lc2-menu{font-size:18px;line-height:1.25}
  .lc2-mobile-menu-list a,.lc2-mobile-menu .lc2-menu a{min-height:54px;padding:10px 3px;white-space:normal;word-break:normal;overflow-wrap:break-word}
  .lc2-mobile-menu .sub-menu{padding-left:14px!important}
  .lc2-mobile-menu-cta{min-height:54px;padding:12px 18px}
  .lc2-mobile-menu-backdrop{backdrop-filter:none!important;background:rgba(7,15,12,.68)!important}
}

/* ---------- Hero ---------- */
.lc2-hero,.lc2-hero-content-wrap{max-width:100vw;overflow:hidden}
.lc2-hero-picture,.lc2-hero-picture img,.lc2-hero video{width:100%;height:100%}
.lc2-hero-picture img,.lc2-hero video{object-fit:cover}
.lc2-hero-content{min-width:0}
.lc2-hero h1{overflow-wrap:normal;word-break:normal;hyphens:none}
.lc2-hero-actions{flex-wrap:wrap}
.lc2-hero-actions .lc2-button{min-width:0}

@media(max-width:1024px){
  .lc2-hero{min-height:max(620px,var(--lc-hero-mobile));height:auto}
  .lc2-hero-content-wrap{min-height:max(620px,var(--lc-hero-mobile));padding-top:calc(var(--lc-header-mobile) + 34px);padding-bottom:clamp(58px,10vw,92px)}
  .lc2-hero-content{width:min(100%,720px);max-width:100%}
  .lc2-hero h1{font-size:clamp(40px,9.4vw,72px);line-height:.98;letter-spacing:-.045em;max-width:13ch}
  .lc2-hero-copy{max-width:42rem;font-size:clamp(16px,2.2vw,19px);line-height:1.55}
}
@media(max-width:600px){
  .lc2-hero{min-height:max(600px,var(--lc-hero-mobile))}
  .lc2-hero-content-wrap{min-height:max(600px,var(--lc-hero-mobile));align-items:flex-end;padding-inline:0;padding-bottom:34px}
  .lc2-hero-content{width:100%}
  .lc2-hero h1{max-width:100%;font-size:clamp(38px,12vw,58px);line-height:1}
  .lc2-hero-actions{display:grid!important;grid-template-columns:1fr!important;width:100%;gap:10px}
  .lc2-hero-actions .lc2-button{width:100%;min-height:52px}
}

/* ---------- Global section rhythm ---------- */
.lc2-section{max-width:100vw;overflow:clip}
.lc2-container,.lc2-section-inner{min-width:0}
.lc2-section-heading h2{overflow-wrap:normal;word-break:normal;hyphens:none}
@media(max-width:1024px){
  .lc2-section{padding-top:clamp(52px,7vw,76px);padding-bottom:clamp(52px,7vw,76px)}
  .lc2-section-heading{margin-bottom:clamp(28px,5vw,44px)}
}
@media(max-width:600px){
  .lc2-container{width:min(calc(100% - 28px),var(--lc-content-width))}
  .lc2-section{padding-top:48px;padding-bottom:48px}
  .lc2-section-heading h2{font-size:clamp(32px,9.5vw,48px);line-height:1.02}
}

/* ---------- Accommodation cards: production grid ---------- */
.lc2-stay-showcase{container-type:inline-size;width:100%;max-width:100%;min-width:0}
.lc2-stay-card{min-width:0!important;height:100%;overflow:hidden!important}
.lc2-stay-card__body,.lc2-stay-card__content,.lc2-stay-card__footer{min-width:0;width:100%}
.lc2-stay-card__content{display:block}
.lc2-stay-card h3{max-width:100%;font-size:clamp(27px,2vw,38px);line-height:1.04!important;letter-spacing:-.03em;word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important;text-wrap:balance}
.lc2-stay-card__subtitle,.lc2-stay-card__copy{max-width:100%;word-break:normal;overflow-wrap:break-word}
.lc2-stay-card__copy>:first-child{margin-top:0}.lc2-stay-card__copy>:last-child{margin-bottom:0}
.lc2-stay-card__footer{margin-top:auto;padding-top:18px}
.lc2-stay-card__price{margin:0 0 14px;padding:0;font-size:clamp(16px,1.25vw,20px);line-height:1.25}
.lc2-stay-card__actions{display:flex;align-items:stretch;gap:10px;margin-top:0}
.lc2-stay-card__actions .lc2-button{flex:1 1 0;min-width:0;min-height:48px;padding:10px 14px;line-height:1.18;white-space:normal}

/* 4 requested columns are only used when there is enough physical width. */
@media(min-width:1500px){
  .lc2-stay-showcase--premium-grid.lc2-stay-columns--4,.lc2-stay-showcase--signature-grid.lc2-stay-columns--4,.lc2-stay-showcase--compact-grid.lc2-stay-columns--4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(min-width:1120px) and (max-width:1499px){
  .lc2-stay-showcase--premium-grid.lc2-stay-columns--4,.lc2-stay-showcase--signature-grid.lc2-stay-columns--4,.lc2-stay-showcase--compact-grid.lc2-stay-columns--4{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(min-width:721px) and (max-width:1119px){
  .lc2-stay-showcase--premium-grid,.lc2-stay-showcase--signature-grid,.lc2-stay-showcase--compact-grid,.lc2-stay-showcase--editorial,.lc2-stay-showcase--mosaic,.lc2-stay-showcase--split-feature{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .lc2-stay-showcase--editorial .lc2-stay-card,.lc2-stay-showcase--mosaic .lc2-stay-card,.lc2-stay-showcase--split-feature .lc2-stay-card{grid-column:auto!important;grid-row:auto!important}
}
@media(max-width:720px){
  .lc2-stay-showcase,.lc2-stay-showcase--premium-grid,.lc2-stay-showcase--signature-grid,.lc2-stay-showcase--compact-grid,.lc2-stay-showcase--editorial,.lc2-stay-showcase--mosaic,.lc2-stay-showcase--split-feature{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:18px}
  .lc2-stay-showcase--minimal-list,.lc2-stay-showcase--panorama-list{max-width:100%}
  .lc2-stay-showcase--minimal-list .lc2-stay-card,.lc2-stay-showcase--panorama-list .lc2-stay-card,.lc2-stay-showcase--split-feature .lc2-stay-card:not(:first-child){display:flex!important;flex-direction:column!important;grid-template-columns:none!important;min-height:0}
  .lc2-stay-card__media,.lc2-stay-showcase--minimal-list .lc2-stay-card__media,.lc2-stay-showcase--panorama-list .lc2-stay-card__media{aspect-ratio:16/10!important;height:auto!important;min-height:0!important}
  .lc2-stay-card__body{padding:20px 18px 18px!important}
  .lc2-stay-card h3{font-size:clamp(29px,8.5vw,38px)!important}
  .lc2-stay-card__actions{display:grid!important;grid-template-columns:1fr!important}
  .lc2-stay-card__actions .lc2-button{width:100%!important;min-height:50px}
  .lc2-stay-showcase--horizontal{display:flex!important;margin-inline:-14px;padding-inline:14px;scroll-padding-inline:14px}
  .lc2-stay-showcase--horizontal .lc2-stay-card{flex:0 0 min(88vw,390px)}
}

/* ---------- Booking/VikBooking: keep plugin logic, normalize only presentation ---------- */
.lc2-dynamic-shell,.lc2-vikbooking-output,.lc2-shortcode-shell{width:100%;max-width:100%;min-width:0}
.lc2-vikbooking-output{contain:none!important;overflow:visible!important}
.lc2-vikbooking-output :where(form,fieldset,.vbo-search-form,.vbo-search-mainview,.vbmodhorsearchmaindiv,.vbo-results-container,.vbo-room-result,.vbo-room-result-inner,.vbo-booking-details-wrapper,.vbo-oconfirm-summary){width:100%;max-width:100%;min-width:0!important;box-sizing:border-box}
.lc2-vikbooking-output :where(.vbo-search-form,.vbo-search-mainview,.vbmodhorsearchmaindiv){display:flex!important;flex-wrap:wrap!important;align-items:end!important;gap:12px!important}
.lc2-vikbooking-output :where(.vbo-search-inpblock,.vbo-search-num-rooms,.vbo-search-num-aduchild-block,.vbo-search-submit,.vbmodhorsearch-hum-guests,.vbmodhorsearch-roomsel){flex:1 1 190px!important;min-width:min(100%,180px)!important;max-width:100%!important;width:auto!important;margin:0!important;float:none!important}
.lc2-vikbooking-output :where(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%!important;max-width:100%!important;min-height:48px!important;font-size:16px!important;box-sizing:border-box!important}
.lc2-vikbooking-output :where(button,input[type=submit],input[type=button],.btn,.button,.vbo-pref-color-btn){max-width:100%!important;min-height:48px!important;white-space:normal!important;overflow-wrap:break-word!important}
.lc2-vikbooking-output :where(.vbo-table-responsive,.table-responsive,.vbo-availcalendars-cont){display:block;max-width:100%!important;overflow-x:auto!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.lc2-vikbooking-output table{width:100%;max-width:none;min-width:0;border-collapse:collapse}
.lc2-vikbooking-output :where(.ui-datepicker,.ui-datepicker-inline,.vbo-calendar){max-width:min(100%,100vw - 28px)!important}
.lc2-vikbooking-output :where(img){max-width:100%!important;height:auto!important}

@media(max-width:760px){
  .lc2-booking-layout{display:grid!important;grid-template-columns:1fr!important;gap:22px}
  .lc2-booking-panel{padding:18px 16px;border-radius:min(var(--lc-card-radius),20px)}
  .lc2-vikbooking-output :where(.vbo-search-form,.vbo-search-mainview,.vbmodhorsearchmaindiv){display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:11px!important}
  .lc2-vikbooking-output :where(.vbo-search-inpblock,.vbo-search-num-rooms,.vbo-search-num-aduchild-block,.vbo-search-submit,.vbmodhorsearch-hum-guests,.vbmodhorsearch-roomsel){width:100%!important;min-width:0!important;max-width:100%!important}
  .lc2-vikbooking-output :where(.vbo-search-submit input,.vbo-search-submit button,input[type=submit],button[type=submit]){width:100%!important}
  .lc2-vikbooking-output table{min-width:600px}
  .lc2-vikbooking-output :where(.vbo-room-result,.vbo-room-result-inner,.vbmodrooms){max-width:100%!important;min-width:0!important;overflow:hidden!important}
}

/* ---------- Contact ---------- */
.lc2-contact-shell,.lc2-contact-grid{align-items:stretch;min-width:0}
.lc2-contact-card{min-width:0;overflow:hidden}
.lc2-contact-card--form :where(form,p,label,div){max-width:100%}
.lc2-contact-card--form :where(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%!important;max-width:100%!important;min-height:48px;font-size:16px;box-sizing:border-box!important}
.lc2-contact-card--map iframe{display:block;width:100%!important;max-width:100%!important;border:0!important}
@media(max-width:900px){
  .lc2-contact-shell,.lc2-contact-grid,.lc2-contact-layout--signature,.lc2-contact-layout--panorama,.lc2-contact-layout--three-column,.lc2-contact-layout--map-overlay{display:grid!important;grid-template-columns:minmax(0,1fr)!important}
  .lc2-contact-card--details,.lc2-contact-card--form,.lc2-contact-card--map{grid-column:1!important;grid-row:auto!important;margin:0!important;max-height:none!important}
  .lc2-contact-card--map iframe{height:min(var(--lc-contact-map-height,440px),62vh)!important;min-height:320px!important}
}
@media(max-width:600px){
  .lc2-contact-card{padding:20px 18px!important;border-radius:min(var(--lc-card-radius),20px)}
  .lc2-contact-card h3{font-size:clamp(25px,7vw,34px)}
  .lc2-contact-action .lc2-button{width:100%}
}

/* ---------- Footer ---------- */
.lc2-site-footer{overflow:hidden}
.lc2-footer-grid>*{min-width:0}
.lc2-footer-column :where(p,a,li){overflow-wrap:break-word}
@media(max-width:900px){.lc2-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.lc2-footer-brand{grid-column:1/-1}}
@media(max-width:600px){.lc2-footer-grid{grid-template-columns:1fr!important}.lc2-footer-brand{grid-column:auto}.lc2-footer-bottom{display:grid!important;gap:8px}.lc2-logo--footer{max-width:min(var(--lc-logo-footer),52vw)}}

/* ---------- Uniform phone/PWA navigation ---------- */
@media(min-width:1025px){.lc2-mobile-bottom-nav{display:none!important}}
@media(max-width:1024px){
  body.lc2-has-mobile-nav{padding-bottom:calc(88px + env(safe-area-inset-bottom))!important}
  .lc2-mobile-bottom-nav{position:fixed!important;z-index:1150!important;left:max(10px,env(safe-area-inset-left))!important;right:max(10px,env(safe-area-inset-right))!important;bottom:max(10px,env(safe-area-inset-bottom))!important;translate:none!important;width:auto!important;max-width:560px!important;margin-inline:auto!important;height:auto!important;display:grid!important;grid-template-columns:repeat(var(--lc-mobile-nav-count,4),minmax(0,1fr))!important;gap:6px!important;padding:7px!important;border:1px solid color-mix(in srgb,var(--lc-text) 12%,transparent)!important;border-radius:20px!important;background:#fff!important;color:#17201c!important;box-shadow:0 18px 55px rgba(7,20,14,.20)!important;backdrop-filter:none!important;-webkit-font-smoothing:antialiased}
  .lc2-mobile-bottom-nav>a{display:grid!important;grid-template-rows:23px auto!important;place-items:center!important;align-content:center!important;gap:4px!important;width:100%!important;min-width:0!important;min-height:58px!important;height:58px!important;margin:0!important;padding:6px 3px!important;border-radius:13px!important;transform:none!important;translate:none!important;font-size:10.5px!important;font-weight:800!important;line-height:1.05!important;text-align:center!important}
  .lc2-mobile-bottom-nav>a .lc2-icon{width:21px!important;height:21px!important;margin:0!important;padding:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:currentColor!important}
  .lc2-mobile-bottom-nav>a span{display:block!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .lc2-mobile-bottom-nav>a.is-primary{margin:0!important;transform:none!important;translate:none!important;background:var(--lc-primary)!important;color:#fff!important;box-shadow:none!important}
  .lc2-install-button{bottom:calc(96px + env(safe-area-inset-bottom))!important;max-width:calc(100vw - 24px)}
}
@media(max-width:420px){
  .lc2-mobile-bottom-nav{left:6px!important;right:6px!important;bottom:max(6px,env(safe-area-inset-bottom))!important;padding:5px!important;gap:3px!important;border-radius:17px!important}
  .lc2-mobile-bottom-nav>a{min-height:55px!important;height:55px!important;padding:5px 2px!important;font-size:9.8px!important}
}

/* ---------- Accessibility and motion ---------- */
@media(prefers-reduced-motion:reduce){
  .lc2-stay-card,.lc2-stay-card__media img,.lc2-button,.lc2-mobile-bottom-nav>a{transition:none!important;animation:none!important;translate:none!important;transform:none!important}
}
