/* Château La Châteline Public Website v4.12.0012
   Permanent detail-page layout & contrast guard.
   Loaded last on purpose: protects generated accommodation detail pages from
   theme/color/layout combinations that can make text unreadable or forms cramped. */

.public-v4-12-0012.is-stay-detail main{overflow:clip}
.public-v4-12-0012.is-stay-detail .stay-detail-section{position:relative;min-width:0;padding:clamp(64px,7vw,108px) 0;overflow:clip}
.public-v4-12-0012.is-stay-detail .stay-detail-inner{width:min(var(--content-width,1240px),calc(100% - clamp(32px,5vw,76px)));max-width:1480px;margin-inline:auto;min-width:0}
.public-v4-12-0012.is-stay-detail .stay-width-narrow .stay-detail-inner{width:min(860px,calc(100% - clamp(32px,5vw,76px)))}
.public-v4-12-0012.is-stay-detail .stay-width-full .stay-detail-inner{width:100%;max-width:none}
.public-v4-12-0012.is-stay-detail :where(.stay-detail-copy,.stay-image-text,.stay-booking-experience,.stay-calendar-experience,.stay-detail-gallery,.stay-amenities-grid,.stay-practical-card,.stay-highlight){min-width:0}
.public-v4-12-0012.is-stay-detail :where(h1,h2,h3,h4,p,li,strong,small,span,a,label,legend){overflow-wrap:anywhere}
.public-v4-12-0012.is-stay-detail :where(img,video,iframe,table){max-width:100%}
.public-v4-12-0012.is-stay-detail .richtext{min-width:0;overflow-wrap:anywhere}
.public-v4-12-0012.is-stay-detail .richtext table{display:block;width:100%;overflow-x:auto;border-collapse:collapse}

/* Surface contrast is deterministic, independent from Website Studio theme colors. */
.public-v4-12-0012.is-stay-detail .stay-surface-brand{background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 92%,#071c16),var(--brand));color:#fff}
.public-v4-12-0012.is-stay-detail .stay-surface-brand>.stay-detail-inner>.stay-block-heading,
.public-v4-12-0012.is-stay-detail .stay-surface-brand .stay-detail-copy,
.public-v4-12-0012.is-stay-detail .stay-surface-brand .stay-booking-intro{color:#fff}
.public-v4-12-0012.is-stay-detail .stay-surface-brand :where(.stay-block-heading h2,.stay-detail-copy h2,.stay-booking-intro h2,.stay-booking-intro h3){color:#fff!important}
.public-v4-12-0012.is-stay-detail .stay-surface-brand :where(.stay-block-heading .eyebrow,.stay-detail-copy>.eyebrow,.stay-booking-intro>.eyebrow){color:#f2d7aa!important}
.public-v4-12-0012.is-stay-detail .stay-surface-brand .stay-booking-intro p{color:rgba(255,255,255,.82)!important}
.public-v4-12-0012.is-stay-detail .stay-surface-soft{background:var(--surface,#f3f1eb);color:var(--ink,#17332a)}
.public-v4-12-0012.is-stay-detail .stay-surface-plain{background:var(--page-bg,#fbfaf6);color:var(--ink,#17332a)}

/* General generated detail sections stay proportional at every configured content width. */
.public-v4-12-0012.is-stay-detail .stay-detail-copy{grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);gap:clamp(32px,5vw,76px)}
.public-v4-12-0012.is-stay-detail .stay-detail-copy>.richtext{max-width:78ch}
.public-v4-12-0012.is-stay-detail .stay-image-text{grid-template-columns:minmax(0,1fr) minmax(320px,1.08fr);gap:clamp(28px,5vw,72px)}
.public-v4-12-0012.is-stay-detail .stay-practical-card{max-width:100%;overflow:hidden}
.public-v4-12-0012.is-stay-detail .stay-amenity{min-width:0}
.public-v4-12-0012.is-stay-detail .stay-amenity>div{min-width:0}

/* Booking block: fixed contrast, balanced columns, no giant or half-empty form. */
.public-v4-12-0012.is-stay-detail .stay-booking-experience{
  container-type:inline-size;
  display:grid;
  grid-template-columns:minmax(300px,.82fr) minmax(520px,1.18fr);
  gap:clamp(36px,5vw,72px);
  align-items:start;
  width:100%;
}
.public-v4-12-0012.is-stay-detail .stay-booking-intro{position:sticky;top:calc(var(--nav-height,82px) + 28px);min-width:0;padding:clamp(8px,1vw,16px) 0}
.public-v4-12-0012.is-stay-detail .stay-booking-intro h2{
  margin:.18em 0 .28em;
  max-width:12ch;
  font-family:var(--heading-font,Georgia,serif);
  font-size:clamp(2.65rem,3.75vw,3.85rem)!important;
  line-height:.98;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.public-v4-12-0012.is-stay-detail .stay-booking-intro p{max-width:34rem;margin:0;font-size:clamp(1rem,1.15vw,1.15rem);line-height:1.72}
.public-v4-12-0012.is-stay-detail .stay-booking-intro ol{margin-top:clamp(24px,3vw,38px);gap:6px}
.public-v4-12-0012.is-stay-detail .stay-booking-intro li{min-height:48px;padding:7px 0;color:rgba(255,255,255,.64);font-size:1rem}
.public-v4-12-0012.is-stay-detail .stay-booking-intro li.active,
.public-v4-12-0012.is-stay-detail .stay-booking-intro li.done{color:#fff}
.public-v4-12-0012.is-stay-detail .stay-booking-intro li span{width:36px;height:36px;flex:0 0 36px;border-color:rgba(255,255,255,.34)}
.public-v4-12-0012.is-stay-detail .stay-booking-intro li.active span{background:#fff;color:var(--brand);border-color:#fff}

.public-v4-12-0012.is-stay-detail .stay-booking-experience>form{
  width:100%;
  max-width:780px;
  justify-self:end;
  min-width:0;
  margin:0;
  padding:clamp(28px,3vw,46px)!important;
  border:1px solid rgba(15,54,43,.08);
  border-radius:clamp(24px,2.5vw,34px)!important;
  background:#fff!important;
  color:var(--ink,#17332a)!important;
  box-shadow:0 26px 72px rgba(4,26,20,.20)!important;
  overflow:hidden;
}
.public-v4-12-0012.is-stay-detail .stay-book-step{min-width:0}
.public-v4-12-0012.is-stay-detail .stay-book-step legend{
  max-width:100%;
  margin:0 0 clamp(22px,2.5vw,30px);
  color:var(--ink,#17332a)!important;
  font-size:clamp(2rem,2.8vw,2.8rem)!important;
  line-height:1.05;
  letter-spacing:-.025em;
  text-wrap:balance;
}
.public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="1"] .form-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="2"] .form-row.compact{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="3"] .form-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.public-v4-12-0012.is-stay-detail .stay-booking-experience label{min-width:0;color:#28473d!important;font-size:.82rem;line-height:1.35}
.public-v4-12-0012.is-stay-detail .stay-booking-experience :where(input,select,textarea){min-width:0;width:100%;min-height:54px;background:#fff!important;color:#17332a!important;border:1px solid #d9e1dd!important;border-radius:14px!important}
.public-v4-12-0012.is-stay-detail .stay-booking-experience textarea{min-height:120px}
.public-v4-12-0012.is-stay-detail .stay-booking-experience :where(input,select,textarea):focus{outline:0;border-color:color-mix(in srgb,var(--brand) 62%,#fff)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 10%,transparent)!important}
.public-v4-12-0012.is-stay-detail .stay-live-check{margin-top:18px;padding:17px 18px;border-radius:15px;background:#f5f2e9!important;color:#17332a!important;line-height:1.5}
.public-v4-12-0012.is-stay-detail .stay-live-check.ok{background:#e8f5ed!important;color:#1e6d45!important}
.public-v4-12-0012.is-stay-detail .stay-live-check.no{background:#fff0ef!important;color:#8e302c!important}
.public-v4-12-0012.is-stay-detail .book-step-actions{margin-top:28px;align-items:center}
.public-v4-12-0012.is-stay-detail .book-step-actions .btn{min-height:54px;padding-inline:22px;white-space:normal;text-align:center}
.public-v4-12-0012.is-stay-detail .stay-booking-experience .btn-light{background:var(--brand)!important;color:#fff!important;box-shadow:0 12px 28px color-mix(in srgb,var(--brand) 22%,transparent)}
.public-v4-12-0012.is-stay-detail .stay-booking-experience .btn-light:disabled{background:#9eb2ab!important;color:#fff!important;box-shadow:none;cursor:not-allowed;transform:none;opacity:1}
.public-v4-12-0012.is-stay-detail .stay-booking-experience .btn-ghost-light{background:#fff!important;color:var(--brand)!important;border:1px solid color-mix(in srgb,var(--brand) 22%,transparent)!important}
.public-v4-12-0012.is-stay-detail .stay-book-summary{min-width:0}
.public-v4-12-0012.is-stay-detail .stay-book-summary>div{min-width:0;align-items:flex-start}

/* Calendar and gallery are guarded against narrow builder widths. */
.public-v4-12-0012.is-stay-detail .stay-calendar-experience{overflow:hidden}
.public-v4-12-0012.is-stay-detail .stay-calendar-grid,.public-v4-12-0012.is-stay-detail .stay-calendar-week{min-width:0}
.public-v4-12-0012.is-stay-detail .stay-cal-day{min-width:0}

/* ResizeObserver fallback class (and viewport fallback) prevents cramped two-column layouts. */
.public-v4-12-0012.is-stay-detail .stay-booking-experience.detail-layout-compact{grid-template-columns:1fr;gap:30px}
.public-v4-12-0012.is-stay-detail .stay-booking-experience.detail-layout-compact .stay-booking-intro{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 28px;align-items:end}
.public-v4-12-0012.is-stay-detail .stay-booking-experience.detail-layout-compact .stay-booking-intro>:not(ol){grid-column:1}
.public-v4-12-0012.is-stay-detail .stay-booking-experience.detail-layout-compact .stay-booking-intro ol{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}
.public-v4-12-0012.is-stay-detail .stay-booking-experience.detail-layout-compact .stay-booking-intro li{justify-content:center;font-size:.82rem}
.public-v4-12-0012.is-stay-detail .stay-booking-experience.detail-layout-compact>form{max-width:none;justify-self:stretch}

@container (max-width:980px){
  .public-v4-12-0012.is-stay-detail .stay-booking-experience{grid-template-columns:1fr;gap:30px}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro{position:static}
  .public-v4-12-0012.is-stay-detail .stay-booking-experience>form{max-width:none;justify-self:stretch}
}

@media(max-width:1120px){
  .public-v4-12-0012.is-stay-detail .stay-detail-copy,.public-v4-12-0012.is-stay-detail .stay-image-text{grid-template-columns:1fr;gap:24px}
  .public-v4-12-0012.is-stay-detail .stay-detail-copy>.eyebrow,.public-v4-12-0012.is-stay-detail .stay-detail-copy>h2,.public-v4-12-0012.is-stay-detail .stay-detail-copy>.richtext{grid-column:auto;grid-row:auto}
  .public-v4-12-0012.is-stay-detail .stay-image-text.pos-right .stay-image-text-copy,.public-v4-12-0012.is-stay-detail .stay-image-text.pos-right img{order:initial}
}

@media(max-width:900px){
  .public-v4-12-0012.is-stay-detail .stay-booking-experience{grid-template-columns:1fr!important;gap:28px}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro{position:static!important}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro h2{max-width:18ch;font-size:clamp(2.35rem,8vw,3.35rem)!important}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro li{justify-content:center;font-size:.76rem;gap:6px}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro li span{width:32px;height:32px;flex-basis:32px}
  .public-v4-12-0012.is-stay-detail .stay-booking-experience>form{max-width:none;justify-self:stretch}
  .public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="2"] .form-row.compact,
  .public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="3"] .form-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:620px){
  .public-v4-12-0012.is-stay-detail .stay-detail-section{padding:56px 0}
  .public-v4-12-0012.is-stay-detail .stay-detail-inner,.public-v4-12-0012.is-stay-detail .stay-width-narrow .stay-detail-inner{width:calc(100% - 28px)}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro ol{grid-template-columns:repeat(4,1fr)}
  .public-v4-12-0012.is-stay-detail .stay-booking-intro li{font-size:0}
  .public-v4-12-0012.is-stay-detail .stay-booking-experience>form{padding:24px 18px!important;border-radius:22px!important}
  .public-v4-12-0012.is-stay-detail .stay-book-step legend{font-size:clamp(1.75rem,9vw,2.25rem)!important}
  .public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="1"] .form-row,
  .public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="2"] .form-row.compact,
  .public-v4-12-0012.is-stay-detail .stay-book-step[data-book-step="3"] .form-row{grid-template-columns:1fr!important}
  .public-v4-12-0012.is-stay-detail .book-step-actions{display:grid;grid-template-columns:1fr}
  .public-v4-12-0012.is-stay-detail .book-step-actions .btn{width:100%}
  .public-v4-12-0012.is-stay-detail .stay-book-summary>div{display:grid;gap:4px}
  .public-v4-12-0012.is-stay-detail .stay-book-summary strong{text-align:left}
}
