/* Château La Châteline · Accommodation detail layout correction · v2.6.1
   Deliberately layout-only: no template recoloring, no changing PHP data or forms.
   Affects the shared dynamic accommodation detail, booking form and related FAQ
   for Classic, Signature Wave, Domaine Émeraude and Château Grand Domaine. */

/* The old narrow section preset creates the very small floating content visible
   in the reported screenshot. Let detail content use the same width as the site. */
body.st-site .studio-section.st-type-accommodation_detail .st-section-inner,
body.st-site .studio-section.st-type-booking_form .st-section-inner,
body.st-site .studio-section.st-type-faq .st-section-inner {
  width: min(calc(100% - 80px), 1240px);
  max-width: 1240px;
  margin-inline: auto;
  min-width: 0;
}

/* Remove empty vertical space while keeping the current theme's backgrounds,
   borders, typefaces, buttons and navigation exactly as they are. */
body.st-site .studio-section.st-type-accommodation_detail,
body.st-site .studio-section.st-type-booking_form,
body.st-site .studio-section.st-type-faq {
  padding-block: clamp(36px, 4.3vw, 72px) !important;
  height: auto;
  min-height: 0;
  overflow: visible;
}
body.st-site .studio-section.st-type-accommodation_detail .st-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  align-items: start;
  gap: clamp(26px, 4.5vw, 68px);
  width: 100%;
  min-width: 0;
}
body.st-site .studio-section.st-type-accommodation_detail .st-split > * { min-width: 0; }
body.st-site .studio-section.st-type-accommodation_detail .st-split > div:first-child {
  max-width: none;
  overflow-wrap: anywhere;
}
body.st-site .studio-section.st-type-accommodation_detail .st-split p {
  font-size: clamp(15px, 1.05vw, 17px);
  line-height: 1.75;
  max-width: 75ch;
  margin-block: 12px 22px;
}
body.st-site .studio-section.st-type-accommodation_detail .st-split h1 {
  font-size: clamp(30px, 3.15vw, 51px);
  line-height: 1.17;
  margin: 0 0 20px;
}
body.st-site .studio-section.st-type-accommodation_detail .st-split h3 {
  font-size: clamp(21px, 1.7vw, 27px);
  line-height: 1.25;
  margin: 25px 0 10px;
}
body.st-site .studio-section.st-type-accommodation_detail .st-split > .st-detail-photo {
  display: block;
  width: 100%;
  height: clamp(320px, 33vw, 480px);
  max-height: none;
  object-fit: cover;
  object-position: center;
}
/* Do not repeat an H1 when a theme already includes a dedicated page banner.
   Grand's existing banner is always present unless explicitly disabled by the
   user in Studio; leave the original title accessible if it is disabled. */
body.st-site .studio-section.st-type-accommodation_detail strong {
  display: inline-block;
  font-weight: 750;
  margin-top: 10px;
}

/* Booking section: clear intro at left, full-width usable form on the right. */
body.st-site .studio-section.st-type-booking_form .st-section-inner {
  display: grid;
  grid-template-columns: minmax(235px, .72fr) minmax(0, 1.48fr);
  align-items: start;
  column-gap: clamp(28px, 4.5vw, 72px);
  row-gap: 24px;
}
body.st-site .studio-section.st-type-booking_form .st-section-copy {
  max-width: none;
  margin: 0;
  padding-top: 10px;
  text-align: left;
}
body.st-site .studio-section.st-type-booking_form .st-section-copy h2 {
  font-size: clamp(30px, 3.05vw, 48px);
  line-height: 1.18;
  margin: 8px 0 16px;
}
body.st-site .studio-section.st-type-booking_form .st-section-copy p {
  font-size: clamp(15px, 1.08vw, 17px);
  line-height: 1.75;
  margin: 0;
}
body.st-site .studio-section.st-type-booking_form .st-form {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(20px, 2.4vw, 36px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 18px;
  align-items: start;
  text-align: left;
}
body.st-site .studio-section.st-type-booking_form .st-form > * { min-width: 0; }
body.st-site .studio-section.st-type-booking_form .st-form label {
  font-size: 13px;
  line-height: 1.4;
  gap: 7px;
  min-width: 0;
}
body.st-site .studio-section.st-type-booking_form .st-form label:has(textarea),
body.st-site .studio-section.st-type-booking_form .st-form .st-check,
body.st-site .studio-section.st-type-booking_form .st-form small {
  grid-column: 1 / -1;
}
body.st-site .studio-section.st-type-booking_form .st-form :is(input:not([type=checkbox]), select) {
  width: 100%;
  min-width: 0;
  min-height: 46px;
}
body.st-site .studio-section.st-type-booking_form .st-form textarea {
  min-height: 112px;
  width: 100%;
  resize: vertical;
}
body.st-site .studio-section.st-type-booking_form .st-form label.st-check {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
  font-size: 12px;
  line-height: 1.5;
}
body.st-site .studio-section.st-type-booking_form .st-form label.st-check input {
  flex: 0 0 auto;
  margin-top: 3px;
}
body.st-site .studio-section.st-type-booking_form .st-form button[type="submit"] {
  justify-self: start;
  max-width: 100%;
  min-height: 46px;
  white-space: normal;
}

/* The FAQ should read as an intentional full-width information block rather
   than a narrow strip disconnected from the detail and the booking form. */
body.st-site .studio-section.st-type-faq .st-section-copy { max-width: 900px; margin-bottom: 22px; }
body.st-site .studio-section.st-type-faq .st-faq { width: 100%; max-width: 1000px; margin: 0; }
body.st-site .studio-section.st-type-faq .st-faq details { margin-bottom: 8px; }
body.st-site .studio-section.st-type-faq .st-faq summary { line-height: 1.5; }

@media (max-width: 960px) {
  body.st-site .studio-section.st-type-accommodation_detail .st-section-inner,
  body.st-site .studio-section.st-type-booking_form .st-section-inner,
  body.st-site .studio-section.st-type-faq .st-section-inner {
    width: calc(100% - 48px);
  }
  body.st-site .studio-section.st-type-accommodation_detail .st-split,
  body.st-site .studio-section.st-type-booking_form .st-section-inner {
    grid-template-columns: minmax(0, 1fr);
  }
  body.st-site .studio-section.st-type-accommodation_detail .st-split > .st-detail-photo {
    height: clamp(300px, 53vw, 490px);
    order: -1;
  }
  body.st-site .studio-section.st-type-booking_form .st-section-copy { padding-top: 0; }
}
@media (max-width: 600px) {
  body.st-site .studio-section.st-type-accommodation_detail .st-section-inner,
  body.st-site .studio-section.st-type-booking_form .st-section-inner,
  body.st-site .studio-section.st-type-faq .st-section-inner {
    width: calc(100% - 32px);
  }
  body.st-site .studio-section.st-type-accommodation_detail,
  body.st-site .studio-section.st-type-booking_form,
  body.st-site .studio-section.st-type-faq { padding-block: 34px !important; }
  body.st-site .studio-section.st-type-accommodation_detail .st-split { gap: 24px; }
  body.st-site .studio-section.st-type-accommodation_detail .st-split > .st-detail-photo {
    height: clamp(230px, 66vw, 360px);
  }
  body.st-site .studio-section.st-type-accommodation_detail .st-split h1 { font-size: clamp(28px, 8vw, 38px); }
  body.st-site .studio-section.st-type-booking_form .st-form {
    grid-template-columns: minmax(0, 1fr);
    padding: 18px;
    gap: 13px;
  }
  body.st-site .studio-section.st-type-booking_form .st-form > *,
  body.st-site .studio-section.st-type-booking_form .st-form label:has(textarea),
  body.st-site .studio-section.st-type-booking_form .st-form label.st-check {
    grid-column: 1;
  }
  body.st-site .studio-section.st-type-booking_form .st-form button[type="submit"] {
    width: 100%;
    justify-self: stretch;
  }
}
