/* Membership flow — plan selection, progressive disclosure, and a matching application form. */
dialog.site-dialog:has(.membership-dialog) {
  width: min(1040px, calc(100% - 56px)); max-height: none; overflow: visible;
  border: 1px solid rgb(209 176 110 / 25%); border-radius: 24px;
  background: linear-gradient(122deg,rgb(39 8 9 / 97%),rgb(71 20 20 / 92%) 60%,rgb(45 8 9 / 88%)),url('../../images/house/house-geometric-background.webp') right center / 58% 100% no-repeat;
  box-shadow: 0 36px 110px rgb(0 0 0 / 68%),inset 0 1px 0 rgb(255 240 198 / 10%);
}
dialog.site-dialog:has(.membership-dialog)::backdrop { background: rgb(9 3 3 / 72%); -webkit-backdrop-filter: blur(10px) saturate(115%); backdrop-filter: blur(10px) saturate(115%); }
.dialog-shell:has(.membership-dialog) { position: relative; padding: 32px; }
.dialog-shell:has(.membership-dialog) .dialog-close-wrap { position: absolute; top: 0; right: 0; height: 0; z-index: 5; }
.dialog-shell:has(.membership-dialog) .dialog-close { top: 16px; right: 16px; width: 44px; height: 44px; margin: 0; border-color: rgb(233 217 183 / 24%); background: rgb(42 9 10 / 82%); }
.membership-dialog { display: grid; gap: 20px; color: var(--paper); }
.membership-dialog-header { padding: 0 60px 18px 0; border-bottom: 1px solid rgb(233 217 183 / 18%); }
.membership-dialog .eyebrow { margin-bottom: 7px; color: var(--gold); }
.membership-dialog h2 { margin: 0 0 7px; font-size: clamp(3rem,4vw,4.35rem); line-height: .96; }
.membership-dialog .lead { margin: 0; color: var(--paper); font-size: .82rem; line-height: 1.6; }
.membership-availability { margin-top: 8px; color: var(--muted); font-size: .66rem; line-height: 1.5; }
.membership-section-label { color: var(--gold); font-size: .61rem; font-weight: 500; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; }
.membership-plan-section,.membership-details { display: grid; gap: 9px; }
.membership-plans { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 0; }
.membership-plan { appearance: none; position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 22px; align-items: center; width: 100%; min-height: 136px; padding: 20px 22px 36px; overflow: hidden; text-align: left; color: var(--paper); border: 1px solid rgb(233 217 183 / 24%); border-radius: 16px; background: linear-gradient(135deg,rgb(233 217 183 / 7%),rgb(233 217 183 / 2%)); box-shadow: inset 0 1px 0 rgb(255 244 219 / 9%); transition: border-color 160ms ease,background-color 160ms ease,transform 160ms var(--ease-out); }
.membership-plan-copy { display: grid; gap: 8px; }
.membership-plan-copy strong { font: 400 1.8rem/1.05 var(--display); }
.membership-plan-copy small { max-width: 45ch; color: var(--muted); font-size: .69rem; line-height: 1.55; }
.membership-plan .price { display: grid; justify-items: end; gap: 3px; min-width: 125px; color: var(--gold); white-space: nowrap; }
.membership-plan .price b { font: 400 2.35rem/1 var(--display); }
.membership-plan .price small { color: var(--muted); font: 400 .61rem/1.3 var(--body); }
.membership-plan-state { position: absolute; inset: auto 22px 14px; color: var(--gold); font-size: .61rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.membership-plan[aria-pressed=true] { border-color: rgb(209 176 110 / 90%); background: linear-gradient(135deg,rgb(209 176 110 / 19%),rgb(233 217 183 / 5%)); box-shadow: inset 0 1px 0 rgb(255 244 219 / 16%),0 12px 35px rgb(0 0 0 / 16%); }
.membership-info-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.membership-info-tabs button { min-height: 58px; padding: 12px 16px; color: var(--paper); background: rgb(19 5 5 / 24%); border: 1px solid rgb(233 217 183 / 18%); border-radius: 12px; font-size: .76rem; text-align: left; }
.membership-info-tabs button[aria-expanded=true] { color: var(--gold); border-color: rgb(209 176 110 / 55%); background: rgb(209 176 110 / 9%); }
.membership-info-panels:empty { display: none; }
.membership-info-panels section { padding: 18px 20px; border: 1px solid rgb(209 176 110 / 32%); border-radius: 14px; background: rgb(19 5 5 / 34%); }
.membership-info-panels section[hidden] { display: none; }
.membership-info-panels h3 { margin: 0 0 9px; font-size: 1.6rem; }
.membership-info-panels p,.membership-info-panels li { color: var(--muted); font-size: .7rem; line-height: 1.55; }
.membership-info-panels ul,.membership-info-panels ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 24px; margin: 12px 0 0; padding-left: 17px; }
.membership-info-panels li::marker { color: var(--gold); }
.membership-info-panels li strong { display: block; color: var(--paper); font-weight: 500; }
.membership-info-panels li span { display: block; }
.membership-dialog-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: center; padding-top: 2px; }
.membership-dialog-footer>p { max-width: 610px; color: var(--muted); font-size: .66rem; line-height: 1.5; }
.membership-dialog-footer .button { min-width: 250px; }
.membership-dialog-footer .button:disabled { opacity: .45; cursor: default; }
.membership-enquiry-dialog { gap: 18px; }
.membership-enquiry-plan { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: center; padding: 17px 20px; border: 1px solid rgb(209 176 110 / 52%); border-radius: 14px; background: linear-gradient(135deg,rgb(209 176 110 / 16%),rgb(233 217 183 / 3%)); }
.membership-enquiry-plan>span:first-child { display: grid; gap: 4px; }
.membership-enquiry-plan small { color: var(--muted); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
.membership-enquiry-plan strong { font: 400 1.7rem/1.1 var(--display); }
.membership-enquiry-plan .price { display: grid; justify-items: end; gap: 3px; color: var(--gold); }
.membership-enquiry-plan .price b { font: 400 2rem/1 var(--display); }
.membership-enquiry-form { display: grid; gap: 15px; }
.membership-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.membership-enquiry-form .field { margin: 0; }
.membership-enquiry-form .field label { display: block; margin-bottom: 6px; color: var(--gold); font-size: .64rem; letter-spacing: .07em; text-transform: uppercase; }
.membership-enquiry-form input,.membership-enquiry-form textarea { width: 100%; border: 1px solid rgb(233 217 183 / 22%); border-radius: 11px; background: rgb(9 3 3 / 24%); color: var(--paper); }
.membership-enquiry-form textarea { resize: vertical; min-height: 112px; }
.membership-form-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 22px; align-items: center; }
.membership-form-footer p { color: var(--muted); font-size: .66rem; line-height: 1.55; }
.membership-form-footer .button { min-width: 240px; }
@media (hover:hover) and (pointer:fine) { .membership-plan:hover,.membership-info-tabs button:hover { border-color: rgb(209 176 110 / 65%); transform: translateY(-1px); } }
@media (max-width: 1050px) {
  dialog.site-dialog:has(.membership-dialog) { max-height: calc(100dvh - 30px); overflow: auto; scrollbar-width: none; }
  dialog.site-dialog:has(.membership-dialog)::-webkit-scrollbar { display: none; }
}
@media (max-width: 700px) {
  dialog.site-dialog:has(.membership-dialog) { width: 100%; max-height: 94dvh; inset: auto 0 0; border-radius: 22px 22px 0 0; border-bottom: 0; }
  .dialog-shell:has(.membership-dialog) { padding: 25px 20px calc(25px + env(safe-area-inset-bottom)); }
  .dialog-shell:has(.membership-dialog) .dialog-close { top: 11px; right: 11px; }
  .membership-dialog { gap: 17px; }
  .membership-dialog-header { padding-right: 48px; }
  .membership-dialog h2 { font-size: 3.2rem; }
  .membership-plans,.membership-info-tabs,.membership-form-grid { grid-template-columns: 1fr; }
  .membership-plan { grid-template-columns: 1fr; gap: 14px; min-height: 0; padding-bottom: 38px; }
  .membership-plan .price { justify-items: start; }
  .membership-info-panels ul,.membership-info-panels ol { grid-template-columns: 1fr; }
  .membership-dialog-footer,.membership-form-footer { grid-template-columns: 1fr; }
  .membership-dialog-footer .button,.membership-form-footer .button { width: 100%; min-width: 0; }
}
@media (min-width: 1051px) and (max-height: 850px) {
  dialog.site-dialog:has(.membership-dialog) { width: min(1120px,calc(100% - 32px)); }
  .dialog-shell:has(.membership-dialog) { padding: 22px 26px; }
  .membership-dialog { gap: 12px; }
  .membership-dialog-header { padding-bottom: 11px; }
  .membership-dialog h2 { font-size: 3.2rem; }
  .membership-plan { min-height: 105px; padding: 14px 17px 31px; }
  .membership-plan-copy strong { font-size: 1.45rem; }
  .membership-plan-copy small { font-size: .63rem; }
  .membership-plan .price b { font-size: 2rem; }
  .membership-plan-state { inset: auto 17px 10px; }
  .membership-info-tabs button { min-height: 48px; padding-block: 9px; }
  .membership-info-panels section { padding: 13px 16px; }
  .membership-info-panels p,.membership-info-panels li { font-size: .64rem; line-height: 1.42; }
  .membership-enquiry-form { gap: 11px; }
  .membership-enquiry-form textarea { min-height: 80px; }
}
@media (prefers-reduced-motion:reduce) { .membership-plan,.membership-info-tabs button { transition: none; } }
@media (prefers-reduced-transparency:reduce), (prefers-contrast:more) { dialog.site-dialog:has(.membership-dialog),.membership-plan,.membership-info-tabs button,.membership-info-panels section { background: #471414; -webkit-backdrop-filter: none; backdrop-filter: none; } }