/* Server-rendered global pages: keeps the approved Champagne home system intact. */
.inner-page { padding-top: 131px; }
.inner-page .site-header { position: fixed; background: #242725; color: #fff; }
.inner-page .main-nav { min-height: 78px; padding-top: 14px; padding-bottom: 14px; border-bottom: 0; }
.inner-page .utility-bar { display: none; }
.language-picker { position: relative; flex: 0 0 auto; z-index: 3; color: inherit; }
.language-picker summary { display: flex; align-items: center; gap: 6px; list-style: none; cursor: pointer; font-size: 10px; letter-spacing: .06em; white-space: nowrap; }
.language-picker summary::-webkit-details-marker { display: none; }
.language-picker summary::after { content: '⌄'; color: var(--gold-light); font-size: 13px; }
.language-picker__menu { position: absolute; top: calc(100% + 14px); right: 0; min-width: 135px; padding: 8px; background: #242725; border: 1px solid rgba(222,208,173,.38); box-shadow: 0 14px 35px rgba(0,0,0,.22); }
.language-picker__menu a { display: block; padding: 8px 10px; color: #e9e5dc; font-size: 11px; }
.language-picker__menu a:hover, .language-picker__menu a[aria-current="page"] { background: rgba(179,147,98,.25); color: #fff; }

.page-hero { min-height: min(410px, 50vh); display: grid; align-items: end; padding: 94px 7.4% 68px; color: #f7f5f0; background: linear-gradient(115deg, #1a1d1b, #313630); }
.page-hero > div { max-width: 820px; }
.page-hero h1 { margin: 0; font: 400 clamp(42px, 5vw, 70px)/1.1 var(--display); letter-spacing: -.035em; }
.page-hero p:not(.kicker) { max-width: 690px; margin: 18px 0 0; color: #d4d1c7; font-size: 14px; }
.page-hero .kicker { color: var(--gold-light); }

.treatment-index { background: var(--cream); }
.treatment-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.treatment-list-card, .info-card, .legal-page, .blog-list article { background: #fff; border: 1px solid rgba(36,39,37,.1); }
.treatment-list-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 255px; padding: 30px; }
.treatment-list-card h2, .info-card h2, .blog-list h2 { margin: 0; font: 400 27px/1.28 var(--display); letter-spacing: -.02em; }
.treatment-list-card p:not(.eyebrow), .blog-list article > p { color: var(--muted); font-size: 13px; }
.treatment-list-card .text-link { margin-top: auto; }
.treatment-card__links { display: grid; grid-template-columns: 1fr 1fr; gap: 1px 14px; padding: 0; margin: 16px 0 12px; list-style: none; }
.treatment-card__links a { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--line); color: #625f57; font-size: 10px; }
.treatment-card__links a:hover { color: var(--gold); }

.medical-review-note { padding: 13px 15px; margin: 23px 0 0; border-left: 2px solid var(--gold); background: rgba(179,147,98,.12); color: #625d51; font-size: 11px; line-height: 1.7; }
.treatment-detail { max-width: 990px; margin: 0 auto; background: var(--paper); }
.treatment-detail > section { padding: 32px 0; border-bottom: 1px solid var(--line); }
.treatment-detail h2 { margin: 0 0 12px; font: 400 29px/1.25 var(--display); }
.treatment-detail p, .treatment-detail li { color: #625f57; font-size: 14px; }
.treatment-detail ul { margin: 0; padding-left: 20px; }
.treatment-detail li + li { margin-top: 8px; }
.back-link { display: inline-block; margin-bottom: 25px; color: var(--gold); font-size: 11px; letter-spacing: .04em; }
.detail-image { margin: 26px 0 0; overflow: hidden; background: #e9e7df; }
.detail-image img { max-height: 460px; object-fit: cover; }
.risk-section { background: #fbf5ef; }
.faq-section details { border-top: 1px solid var(--line); }
.faq-section details:last-child { border-bottom: 1px solid var(--line); }
.faq-section summary { padding: 17px 24px 17px 0; cursor: pointer; color: var(--ink); font-size: 14px; }
.faq-section details p { padding: 0 20px 17px 0; margin: 0; }
.sources-section a { color: #7c623e; text-decoration: underline; text-underline-offset: 3px; }
.detail-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 35px 0 0; }
.detail-cta p { max-width: 530px; margin: 0; }
.empty-state { text-align: center; }

.booking-section { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(35px, 7vw, 120px); background: #eeede8; }
.booking-intro { align-self: start; position: sticky; top: 112px; }
.booking-intro > p:not(.kicker) { color: var(--muted); font-size: 13px; }
.booking-form { padding: 31px; background: #fff; border: 1px solid rgba(36,39,37,.12); box-shadow: 0 12px 26px rgba(34,36,34,.04); }
.form-grid { display: grid; gap: 17px; }
.form-grid--two { grid-template-columns: 1fr 1fr; }
.booking-field { min-width: 0; }
.booking-field label { display: block; margin-bottom: 6px; color: #514c42; font-size: 11px; font-weight: 500; letter-spacing: .02em; }
.booking-field label span { color: var(--terracotta); }
.booking-field input, .booking-field select { width: 100%; min-height: 45px; padding: 10px 12px; border: 1px solid #d9d4ca; border-radius: 0; outline: none; background: #fff; color: var(--ink); font: 400 13px var(--sans); }
.booking-field input:focus, .booking-field select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(179,147,98,.15); }
.booking-field input[aria-invalid="true"], .booking-field select[aria-invalid="true"], .booking-form.is-error input:invalid, .booking-form.is-error select:invalid { border-color: #a84f36; }
.arrival-undecided, .booking-consent { display: flex; align-items: flex-start; gap: 9px; margin-top: 16px; color: #5c574e; font-size: 12px; line-height: 1.6; }
.arrival-undecided input, .booking-consent input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--gold); }
.booking-consent { padding-top: 13px; border-top: 1px solid var(--line); }
.booking-safety { margin: 15px 0 0; color: #887e6d; font-size: 10px; line-height: 1.7; }
.booking-actions { display: flex; align-items: center; gap: 20px; margin-top: 23px; }
#bookingStatus { flex: 1; min-height: 1.7em; margin: 0; color: #5e574b; font-size: 11px; line-height: 1.6; }
#bookingStatus.is-error, #bookingStatus[data-state="error"] { color: #a24631; }
#bookingStatus.is-success, #bookingStatus[data-state="success"] { color: #547052; }
.hp-field { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.info-page { background: var(--cream); }
.info-card { max-width: 760px; padding: 40px; }
.info-card p { color: var(--muted); font-size: 14px; }
.legal-page { max-width: 900px; padding: clamp(28px, 5vw, 64px); }
.legal-page h2 { margin: 35px 0 10px; font: 400 26px/1.3 var(--display); }
.legal-page h2:first-of-type { margin-top: 27px; }
.legal-page p { color: #625f57; font-size: 14px; }
.legal-pending { padding: 15px; margin: 0; border: 1px solid #ccb78d; background: #faf4e7; color: #635844 !important; font-size: 12px !important; }
.blog-index { background: var(--cream); }
.blog-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.blog-list article { padding: 31px; }
.blog-list h2 a:hover { color: var(--gold); }
.empty-copy { max-width: 640px; padding: 30px; margin: 0 auto; background: #fff; color: var(--muted); text-align: center; }

.footer-bottom address { display: grid; gap: 2px; padding-top: 24px; color: #777a73; font-size: 10px; font-style: normal; line-height: 1.9; }
.footer-bottom address a { color: #c0bdb3; }
.footer-bottom a:hover { color: var(--gold-light); }
@media (max-width: 1100px) { .language-picker { order: 2; } .treatment-list { grid-template-columns: repeat(2, 1fr); } .booking-section { gap: 40px; } }
@media (max-width: 820px) {
  .inner-page { padding-top: 108px; }
  .inner-page .main-nav { min-height: 79px; }
  .inner-page .utility-bar { display: none; }
  .language-picker { margin-left: auto; }
  .language-picker summary { font-size: 9px; }
  .nav-book { margin-left: 0; }
  .page-hero { min-height: 300px; padding: 62px 23px 48px; }
  .page-hero h1 { font-size: 42px; }
  .page-hero p:not(.kicker) { font-size: 12px; }
  .treatment-list, .blog-list { grid-template-columns: 1fr; }
  .treatment-list-card { min-height: 0; }
  .treatment-card__links { grid-template-columns: 1fr; }
  .treatment-detail { padding-top: 55px; padding-bottom: 55px; }
  .treatment-detail > section { padding: 25px 0; }
  .treatment-detail h2 { font-size: 26px; }
  .detail-cta { align-items: flex-start; flex-direction: column; }
  .booking-section { grid-template-columns: 1fr; padding: 65px 23px; }
  .booking-intro { position: static; }
  .booking-form { padding: 23px; }
  .form-grid--two { grid-template-columns: 1fr; }
  .booking-actions { align-items: flex-start; flex-direction: column; }
  .booking-actions .button { width: 100%; }
  .info-card, .legal-page { padding: 28px 24px; }
  .legal-page h2 { font-size: 24px; }
}

.blog-article { max-width: 1000px; margin: 0 auto; }
.blog-cover { margin: 30px 0; }
.blog-cover img { width: 100%; max-height: 480px; object-fit: cover; }
.blog-cover figcaption { color: #8b8170; font-size: 10px; margin-top: 10px; }
.blog-meta { display: flex; gap: 20px; font-size: 11px; color: #8b8170; }
.blog-prose { color: #565349; font-size: 15px; line-height: 1.9; }
.blog-prose h2 { font-family: var(--display); font-size: clamp(24px, 3vw, 34px); color: #36382f; font-weight: 400; line-height: 1.35; margin: 50px 0 20px; }
.blog-prose h3 { font-size: 18px; color: #514b3e; margin-top: 32px; }
.blog-prose a { color: #967848; text-decoration: underline; text-underline-offset: 3px; }
.blog-prose blockquote { border-left: 3px solid #b39362; background: #f4f0e7; padding: 18px 24px; margin: 30px 0; }
.blog-prose img { max-width: 100%; max-height: 500px; object-fit: cover; }
.blog-prose table { width: 100%; border-collapse: collapse; font-size: 13px; }
.blog-prose td, .blog-prose th { padding: 12px; border: 1px solid #e5dfd2; text-align: left; }
.blog-related { padding: 30px 0; border-top: 1px solid #e5dfd2; }
.blog-related h2 { font-family: var(--display); font-weight: 400; font-size: 25px; }
.blog-related a { display: block; margin-top: 12px; font-size: 13px; color: #967848; }
.blog-share { display: flex; justify-content: space-between; padding-top: 20px; font-size: 12px; }

.booking-field-error { color:#9a3c31; font-size:12px; line-height:1.6; margin:4px 0 0; }
.booking-field-error:empty { display:none; }
.booking-form [aria-invalid="true"] { border-color:#9a3c31; outline-color:#9a3c31; }
#bookingStatus:focus { outline:1px solid var(--gold); outline-offset:5px; }
