.membership-purchase{--join-ink:#111;--join-muted:#707070;--join-line:#e5e5e5}
.membership-layout{display:grid;grid-template-columns:minmax(0,1.37fr) minmax(0,1fr);gap:clamp(36px,4.0342vw,62px);align-items:center;max-width:1280px}
/* Scale the three-step illustration as one square, matching the reference artwork. */
.membership-expectations{position:relative;min-width:0;width:100%;aspect-ratio:1;container-type:inline-size;border-radius:26px;background:#f0efed;overflow:hidden}
.membership-expectations>h3{position:absolute;top:6.5%;left:5%;right:5%;font-size:8.4cqi;font-weight:400;line-height:1.08;letter-spacing:-.035em;text-align:center;margin:0}
.membership-journey{position:absolute;inset:30% 5% 4.3%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:6cqi 7.5cqi 24.5cqi minmax(0,1fr);column-gap:2.3cqi;row-gap:1.2cqi}
.membership-journey li{display:grid;grid-template-rows:subgrid;grid-row:span 4;text-align:center;min-width:0;min-height:0;position:relative}
.journey-stage{position:relative;z-index:1;justify-self:center;align-self:stretch;display:flex;align-items:center;justify-content:center;padding:0 2.3cqi;border:1px solid #d5d3d0;border-radius:999px;background:#fff;font-size:3.1cqi;line-height:1.2;white-space:nowrap}
.membership-journey li:not(:last-child)::before{content:"";position:absolute;top:3cqi;left:50%;width:calc(100% + 2.3cqi);height:1px;background:#d5d3d0}
.membership-journey h4{font-size:2.85cqi;line-height:1.2;font-weight:400;letter-spacing:-.015em;align-self:start}
.membership-journey p{font-size:2.7cqi;line-height:1.35;color:#686868;text-wrap:pretty;margin:0}
.journey-image{height:100%;min-height:0;overflow:hidden;border-radius:2cqi;background:#ddd}
.journey-image img{width:100%;height:100%;object-fit:cover}
.membership-journey li:first-child img{object-position:62% 50%}
.membership-journey li:nth-child(2) img{object-position:59% 50%}
.membership-journey li:last-child img{object-position:67% 10%}
.membership-summary{min-width:0;padding:12px 0}
.membership-availability{font-size:14px;line-height:1.6;color:var(--join-muted);margin-bottom:24px}
.membership-summary h2{font-size:clamp(40px,3.9041vw,60px);line-height:1.07;letter-spacing:-.035em;margin-bottom:22px}
.membership-description{font-size:18px;line-height:1.5;color:var(--join-muted);margin-bottom:29px;text-wrap:pretty}
.join-price{display:flex;align-items:baseline;gap:2px;line-height:1;margin-bottom:32px}
.price-currency,.price-amount{font-family:var(--display);font-size:64px;letter-spacing:-.045em}
.price-period{align-self:center;margin-left:13px;font-size:16px;line-height:1.5;color:var(--join-ink)}
.price-denomination{display:block;color:var(--join-muted);font-size:12px}
.membership-inclusions{display:grid;gap:16px;font-size:16px;line-height:1.4;margin-bottom:32px}
.membership-inclusions li{display:flex;align-items:center;gap:12px}
.membership-inclusions .ui-icon{width:20px;height:20px;padding:4px;flex-shrink:0;border-radius:50%;background:#424246;color:#fff;stroke-width:2}
.membership-start{width:100%;min-height:56px;font-size:17px}
.membership-consult{margin-top:12px;background:#fff;color:#111;border-color:#111}
.membership-consult:hover{background:#ececec}
.membership-guarantee{--guarantee-icon-size:24px;--guarantee-gap:10px;container-type:inline-size;display:flex;align-items:center;justify-content:center;gap:var(--guarantee-gap);padding:14px 16px;border-radius:10px;background:#f3f3f1;font-size:15px;line-height:1.45;text-align:left;color:var(--join-ink);margin-top:14px}
.membership-guarantee .ui-icon{width:var(--guarantee-icon-size);height:var(--guarantee-icon-size);flex:0 0 var(--guarantee-icon-size);stroke-width:1.5}
/* Fit the full message beside the shield as the badge narrows. */
.membership-guarantee strong{min-width:0;font-weight:700;font-size:min(1em,calc((100cqi - var(--guarantee-icon-size) - var(--guarantee-gap)) / 22));white-space:nowrap}
.membership-checkout-wrap{max-width:720px}
.membership-checkout{min-width:0;border:1px solid var(--join-line);border-radius:22px;padding:38px;background:#fff;margin-top:64px;scroll-margin-top:20px}
#details-heading:focus{outline:none}
.membership-section{border-top:1px solid var(--join-line);margin-top:30px;padding-top:28px}
.membership-section:first-child{border-top:0;margin-top:0;padding-top:0}
.membership-section-title{font-family:var(--display);font-size:27px;font-weight:400;line-height:1.2;letter-spacing:-.02em;margin:0 0 26px}
.join-field{margin-bottom:22px;min-width:0}
.join-field:last-child{margin-bottom:0}
.join-field label{display:block;font-size:14px;line-height:1.5;margin-bottom:8px}
.join-field input,.join-field select,.join-select-trigger{width:100%;min-height:56px;padding:15px 16px;border:1px solid #ddd;background:#fff;color:#111;border-radius:12px;font-family:var(--sans);font-size:16px;font-weight:400;letter-spacing:0;line-height:1.5;-webkit-appearance:none;appearance:none;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.join-field input::placeholder{font-size:inherit;color:#888;opacity:1}
.join-field select:has(option:checked[value=""]){color:#888}
.join-field select{padding-right:44px}
.join-field select option{font-size:inherit;background:#fff;color:#111}
.join-select{position:relative;font-size:16px;line-height:1.5}
.join-select>.ui-icon{position:absolute;right:15px;top:50%;transform:translateY(-50%);width:18px;height:18px}
.join-field input:focus,.join-field select:focus,.join-select-trigger:focus-visible{outline:0;border-color:#111;box-shadow:0 0 0 1px #111}
.join-select.is-enhanced>select{position:absolute;width:1px;height:1px;min-height:0;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap;pointer-events:none}
.join-select.is-enhanced>.ui-icon{display:none}
.join-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;cursor:pointer}
.join-select-trigger.is-placeholder{color:#888}
.join-select-trigger>.ui-icon{width:16px;height:16px;flex-shrink:0;color:#111;transition:transform .18s}
.join-select.is-open{z-index:5}
.join-select.is-open .join-select-trigger{border-color:#111}
.join-select.is-open .join-select-trigger>.ui-icon{transform:rotate(180deg)}
.join-select-menu{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:6;padding:6px;border:1px solid #ddd;border-radius:12px;background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.1);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bbb #fff}
.join-select.opens-up .join-select-menu{top:auto;bottom:calc(100% + 7px)}
.join-select-option{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:10px 12px;border-radius:7px;color:#111;font-family:var(--sans);font-size:inherit;font-weight:400;line-height:1.5;letter-spacing:0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.join-select-option+.join-select-option{margin-top:2px}.join-select-option.is-active{background:#f0f0f0}.join-select-option[aria-selected="true"]{background:#f5f5f5}.join-select-option[aria-selected="true"].is-active{background:#eaeaea}
.join-select-check{width:16px;height:16px;flex-shrink:0;color:#111;opacity:0}.join-select-option[aria-selected="true"] .join-select-check{opacity:1}
@media(hover:hover){.join-select-option:hover{background:#f0f0f0}.join-select-trigger:hover{border-color:#aaa}}
.residence-note{font-size:12px;line-height:1.5;color:#777;margin-top:10px}
.join-button{display:flex;align-items:center;justify-content:center;gap:15px;background:#111;border:1px solid #111;border-radius:999px;color:#fff;width:100%;min-height:54px;padding:16px 22px;font-size:16px;line-height:1.3;transition:background .2s}
.join-button:not(:disabled):hover{background:#333}.join-button:disabled{opacity:.45;cursor:not-allowed}.join-button .ui-icon{width:20px;height:20px}
.order-total{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--join-line);padding-top:22px;margin-top:25px;font-size:17px;line-height:1.4}
.order-total strong{font-weight:400}
.order-total-details{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:10px 0 23px}
.order-currency{font-size:12px;color:var(--join-muted);line-height:1.5}.renewal-note{font-size:12px;color:var(--join-ink);margin:0;line-height:1.5}
.membership-reassurance{margin-top:22px;padding-top:22px;border-top:1px solid var(--join-line)}.membership-reassurance p{font-size:12px;line-height:1.65;color:var(--join-muted);text-wrap:pretty}

@media(max-width:1150px){.membership-layout{gap:36px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.membership-summary h2{font-size:46px}.membership-description{font-size:16px}.membership-inclusions{font-size:15px;gap:15px}.price-currency,.price-amount{font-size:58px}}
@media(max-width:900px){.membership-layout{grid-template-columns:1fr;max-width:650px;gap:38px}.membership-summary{padding:0}.membership-summary h2{font-size:48px}.membership-description{font-size:18px}.membership-inclusions{font-size:16px}.membership-checkout-wrap{max-width:650px}.membership-checkout{margin-top:38px;padding:30px}.membership-availability{margin-bottom:18px}}
@media(max-width:600px){.membership-summary h2{font-size:40px;line-height:1.05;margin-bottom:18px}.membership-availability{font-size:13px;max-width:320px}.membership-description{font-size:16px;margin-bottom:25px}.price-currency,.price-amount{font-size:54px}.price-period{font-size:15px}.join-price{margin-bottom:27px}.membership-inclusions{font-size:15px;gap:16px;margin-bottom:28px}.membership-start{font-size:16px;min-height:54px}.membership-guarantee{font-size:14px;padding:12px;margin-top:13px}.membership-checkout{padding:24px;border-radius:18px}.membership-section-title{font-size:27px;margin-bottom:23px}.membership-section{margin-top:28px;padding-top:26px}}
@media(max-width:360px){.membership-checkout{padding:20px}.membership-summary h2{font-size:38px}}
@media(max-width:600px){.membership-guarantee{--guarantee-icon-size:20px;--guarantee-gap:8px}}
