/* Château La Châteline Public Website v4.12.0014
   Enterprise Adaptive Contrast + Visual Polish
   Loaded last. Prevents legacy styles from producing unreadable foreground/background combinations. */

:root{
  --lc-light-fg:#f8fbf9;
  --lc-light-muted:rgba(248,251,249,.76);
  --lc-dark-fg:#10251f;
  --lc-dark-muted:#5f7169;
  --lc-soft-line:color-mix(in srgb,var(--site-line,#dfe7e2) 82%,transparent);
  --lc-section-ease:cubic-bezier(.2,.8,.2,1);
}

html{scroll-behavior:smooth}
body.public-v4-12-0014{
  color:var(--ink);
  background:var(--page-bg);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Semantic text hierarchy ---------- */
.public-v4-12-0014 :where(h1,h2,h3,h4,h5,h6){
  color:var(--site-heading,var(--ink));
  text-wrap:balance;
}
.public-v4-12-0014 :where(p,li,dd,dt){text-wrap:pretty}
.public-v4-12-0014 .section-heading p,
.public-v4-12-0014 .builder-block p,
.public-v4-12-0014 .richtext p{line-height:max(1.62,var(--site-line-height,1.65))}

/* ---------- Hard semantic surfaces ---------- */
.public-v4-12-0014 :where(.surface-dark,.contact-panel,.map-experience-head,.dynamic-page-cta,.news-detail-cta,.hotel-servicebar){
  --auto-fg:var(--lc-light-fg);
  --auto-muted:var(--lc-light-muted);
  color:var(--auto-fg)!important;
}
.public-v4-12-0014 :where(.surface-dark,.contact-panel,.map-experience-head,.dynamic-page-cta,.news-detail-cta,.hotel-servicebar)
  :where(h1,h2,h3,h4,h5,h6,strong,.section-heading h2,.section-heading h3,.eyebrow){color:var(--auto-fg)!important}
.public-v4-12-0014 :where(.surface-dark,.contact-panel,.map-experience-head,.dynamic-page-cta,.news-detail-cta,.hotel-servicebar)
  :where(p,li,small,.muted,.micro,.section-heading p){color:var(--auto-muted)!important}
.public-v4-12-0014 :where(.surface-dark,.contact-panel,.map-experience-head,.dynamic-page-cta,.news-detail-cta,.hotel-servicebar) a:not(.btn){color:var(--auto-fg)}

.public-v4-12-0014 :where(.surface-soft,.stay-card,.news-card,.menu-card,.availability-search-shell,.map-sidebar,.map-detail-card,.live-agenda,.booking-form,.stay-book-step,.stay-live-check,.news-detail-body-wrap){
  --auto-fg:var(--lc-dark-fg);
  --auto-muted:var(--lc-dark-muted);
  color:var(--auto-fg);
}
.public-v4-12-0014 :where(.surface-soft,.stay-card,.news-card,.menu-card,.availability-search-shell,.map-sidebar,.map-detail-card,.live-agenda,.booking-form,.stay-book-step,.stay-live-check,.news-detail-body-wrap)
  :where(h1,h2,h3,h4,h5,h6,strong,.section-heading h2,.section-heading h3){color:var(--auto-fg)}
.public-v4-12-0014 :where(.surface-soft,.stay-card,.news-card,.menu-card,.availability-search-shell,.map-sidebar,.map-detail-card,.live-agenda,.booking-form,.stay-book-step,.stay-live-check,.news-detail-body-wrap)
  :where(p,li,small,.muted,.micro,.section-heading p){color:var(--auto-muted)}

/* ---------- Runtime adaptive surfaces ---------- */
.public-v4-12-0014 .lc-tone-dark{
  --auto-fg:var(--lc-light-fg);
  --auto-muted:var(--lc-light-muted);
  color:var(--auto-fg)!important;
}
.public-v4-12-0014 .lc-tone-dark > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl,blockquote),
.public-v4-12-0014 .lc-tone-dark > :where(.section-heading,.builder-inner,.block-inner,.stay-booking-intro,.news-detail-split-copy){color:var(--auto-fg)}
.public-v4-12-0014 .lc-tone-dark :where(.section-heading h1,.section-heading h2,.section-heading h3,.section-heading .eyebrow){color:var(--auto-fg)!important}
.public-v4-12-0014 .lc-tone-dark :where(.section-heading p,.lc-auto-muted){color:var(--auto-muted)!important}

.public-v4-12-0014 .lc-tone-light{
  --auto-fg:var(--lc-dark-fg);
  --auto-muted:var(--lc-dark-muted);
  color:var(--auto-fg);
}
.public-v4-12-0014 .lc-tone-light > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl,blockquote){color:var(--auto-fg)}
.public-v4-12-0014 .lc-tone-light :where(.section-heading h1,.section-heading h2,.section-heading h3){color:var(--auto-fg)!important}
.public-v4-12-0014 .lc-tone-light :where(.section-heading p,.lc-auto-muted){color:var(--auto-muted)!important}

/* Nested light UI on dark surfaces must stay dark and readable. */
.public-v4-12-0014 .lc-tone-dark :where(.lc-tone-light,.stay-card,.news-card,.menu-card,.booking-form,.availability-search-shell,.map-sidebar,.map-detail-card,.calendar-detail,.stay-book-step,input,select,textarea){
  color:var(--lc-dark-fg);
}
.public-v4-12-0014 .lc-tone-dark :where(.lc-tone-light,.stay-card,.news-card,.menu-card,.booking-form,.availability-search-shell,.map-sidebar,.map-detail-card,.calendar-detail,.stay-book-step)
  :where(h1,h2,h3,h4,h5,h6,strong){color:var(--lc-dark-fg)!important}
.public-v4-12-0014 .lc-tone-dark :where(.lc-tone-light,.stay-card,.news-card,.menu-card,.booking-form,.availability-search-shell,.map-sidebar,.map-detail-card,.calendar-detail,.stay-book-step)
  :where(p,li,small,.muted,.micro){color:var(--lc-dark-muted)!important}

/* ---------- Hero/header readability ---------- */
.public-v4-12-0014 :where(.hero-copy,.page-hero-copy,.builder-hero-copy,.news-detail-hero-inner){
  text-shadow:0 2px 28px rgba(0,0,0,.28);
}
.public-v4-12-0014 :where(.hero-copy,.page-hero-copy,.builder-hero-copy,.news-detail-hero-inner)
  :where(h1,h2,h3,p,.eyebrow,strong){color:var(--hero-text,#fff)!important}
.public-v4-12-0014.page-header-overlay:not(.is-header-scrolled) .site-header{
  border-bottom-color:rgba(255,255,255,.18);
}
.public-v4-12-0014.page-header-overlay:not(.is-header-scrolled) .site-header :where(.main-nav>a,.brand-lockup strong,.menu-toggle){
  text-shadow:0 1px 16px rgba(0,0,0,.24);
}

/* ---------- Buttons: always intentional contrast ---------- */
.public-v4-12-0014 :where(.btn,.nav-book,button[type="submit"]){
  min-height:var(--site-button-height,48px);
  transition:transform .22s var(--lc-section-ease),box-shadow .22s var(--lc-section-ease),background-color .22s ease,color .22s ease,border-color .22s ease;
}
.public-v4-12-0014 :where(.btn-brand,.nav-book,button[type="submit"]){
  background:var(--button-bg,var(--brand))!important;
  color:var(--button-text,#fff)!important;
}
.public-v4-12-0014 :where(.btn-brand,.nav-book,button[type="submit"]):hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px color-mix(in srgb,var(--button-bg,var(--brand)) 25%,transparent);
}
.public-v4-12-0014 .btn-light{background:#fff!important;color:#17362d!important;border-color:rgba(255,255,255,.86)!important}
.public-v4-12-0014 .btn-ghost-light{color:#fff!important;border-color:rgba(255,255,255,.48)!important;background:rgba(255,255,255,.07)!important}
.public-v4-12-0014 .btn-ghost-light:hover{background:rgba(255,255,255,.14)!important;border-color:rgba(255,255,255,.7)!important}

/* ---------- Cards & forms ---------- */
.public-v4-12-0014 :where(.stay-card,.news-card,.menu-card,.availability-search-shell,.live-agenda,.contact-form-premium,.booking-form,.map-detail-card){
  border-color:var(--lc-soft-line);
  box-shadow:0 18px 48px rgba(13,44,35,.08);
  transition:transform .3s var(--lc-section-ease),box-shadow .3s var(--lc-section-ease),border-color .25s ease;
}
.public-v4-12-0014 :where(.stay-card,.news-card):hover{
  transform:translateY(-5px);
  box-shadow:0 28px 64px rgba(13,44,35,.13);
}
.public-v4-12-0014 :where(input,select,textarea){
  background:#fff;
  color:#17362d;
  border-color:#d7e1dc;
}
.public-v4-12-0014 :where(input,select,textarea)::placeholder{color:#76867f;opacity:1}
.public-v4-12-0014 :where(input,select,textarea):focus{
  border-color:color-mix(in srgb,var(--brand) 70%,#fff);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 12%,transparent);
}
.public-v4-12-0014 label{color:inherit}
.public-v4-12-0014 .booking-form label,
.public-v4-12-0014 .contact-fields label,
.public-v4-12-0014 .stay-book-step label{color:#344d44}

/* ---------- Smooth section rhythm instead of abrupt color blocks ---------- */
.public-v4-12-0014 .section,
.public-v4-12-0014 .builder-block{position:relative;isolation:isolate}
.public-v4-12-0014 .section + .section,
.public-v4-12-0014 .builder-block + .builder-block{border-top:1px solid color-mix(in srgb,var(--site-line) 56%,transparent)}
.public-v4-12-0014 .surface-soft{
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,#fff),var(--surface));
}
.public-v4-12-0014 .surface-dark{
  background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 94%,#061a14),color-mix(in srgb,var(--brand) 76%,#183d31));
}
.public-v4-12-0014 .surface-dark:before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:radial-gradient(circle at 86% 12%,rgba(255,255,255,.08),transparent 32%),radial-gradient(circle at 8% 90%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 34%);
}

/* ---------- Rich text ---------- */
.public-v4-12-0014 .richtext{font-size:clamp(1rem,.95rem + .15vw,1.09rem)}
.public-v4-12-0014 .richtext :where(h2,h3,h4){margin-top:1.5em;margin-bottom:.55em}
.public-v4-12-0014 .richtext a{text-decoration-thickness:1px;text-underline-offset:.2em}
.public-v4-12-0014 .richtext blockquote{
  margin:1.8em 0;padding:1em 1.2em;border-left:4px solid var(--accent);border-radius:0 14px 14px 0;background:color-mix(in srgb,var(--surface) 60%,transparent);
}
.public-v4-12-0014 .lc-tone-dark .richtext blockquote{background:rgba(255,255,255,.08);border-left-color:color-mix(in srgb,var(--accent) 65%,#fff)}

/* ---------- Footer ---------- */
.public-v4-12-0014 .site-footer{color:var(--footer-text)!important}
.public-v4-12-0014 .site-footer :where(h2,h3,h4,strong){color:var(--footer-heading)!important}
.public-v4-12-0014 .site-footer :where(p,small,li){color:color-mix(in srgb,var(--footer-text) 78%,transparent)!important}
.public-v4-12-0014 .site-footer a{color:var(--footer-link)!important}

/* ---------- Booking/detail stability + contrast ---------- */
.public-v4-12-0014.is-stay-detail .stay-booking-experience[data-surface="brand"] .stay-booking-intro,
.public-v4-12-0014.is-stay-detail .stay-booking-experience.surface-brand .stay-booking-intro{
  color:var(--lc-light-fg)!important;
}
.public-v4-12-0014.is-stay-detail .stay-booking-experience[data-surface="brand"] .stay-booking-intro :where(h2,h3,p,.eyebrow,strong),
.public-v4-12-0014.is-stay-detail .stay-booking-experience.surface-brand .stay-booking-intro :where(h2,h3,p,.eyebrow,strong){color:inherit!important}
.public-v4-12-0014.is-stay-detail .stay-book-step{background:#fff;color:var(--lc-dark-fg)}
.public-v4-12-0014.is-stay-detail .stay-book-step :where(h2,h3,h4,strong){color:var(--lc-dark-fg)!important}

/* ---------- Accessibility ---------- */
.public-v4-12-0014 :focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 74%,#fff);outline-offset:3px}
.public-v4-12-0014 a{text-underline-offset:.18em}

@media (max-width:900px){
  .public-v4-12-0014 :where(.stay-card,.news-card):hover{transform:none}
  .public-v4-12-0014 .section-heading :where(h1,h2,h3){text-wrap:pretty}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .public-v4-12-0014 *,
  .public-v4-12-0014 *:before,
  .public-v4-12-0014 *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
