/* V16 — clean registration and delivery forms, no online payment */
.member-request-section{scroll-margin-top:115px}
.member-request-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,520px);gap:clamp(22px,5vw,75px);align-items:start}
.member-request-intro h2{margin:12px 0 18px;font-size:clamp(27px,3.5vw,42px);line-height:1.4}
.member-request-intro p{line-height:1.9;color:var(--muted,#666);max-width:50ch}
.member-request-card{background:#fff;border:1px solid #e0d8c9;border-radius:22px;padding:clamp(18px,3vw,34px);box-shadow:0 12px 32px #2418000e;display:grid;gap:16px;color:#252525}
.member-request-field{display:grid;gap:7px}
.member-request-field label,.store-customer-form>label:not(.member-consent){font-weight:750;font-size:14px;color:#2c302e}
.member-request-field input,.member-request-field select,.store-customer-form input:not([type="checkbox"]),.store-customer-form textarea,.store-customer-form select{width:100%;background:#faf9f5;border:1px solid #d6cfc2;border-radius:11px;padding:12px 14px;font:inherit;color:#24282a;min-height:48px;outline-offset:2px}
.member-request-field :is(input,select):focus,.store-customer-form :is(input,select,textarea):focus{outline:2px solid #c99f53;border-color:transparent}
.member-request-field input[dir=ltr],.store-customer-form input[dir=ltr]{text-align:left}
.member-consent{display:flex;align-items:flex-start;gap:10px;line-height:1.7;font-size:12px;color:#666;cursor:pointer}
.member-consent input{height:18px;width:18px;flex:0 0 18px;margin-top:3px;accent-color:#a67a35}
.member-submit{width:100%;justify-content:center;min-height:52px}
.member-form-status{min-height:1.6em;font-size:13px;line-height:1.6;font-weight:700;margin:0;color:#145b3f}
.member-form-status.is-error{color:#a33d2c}
/* V21.18: keep the anti-spam field clipped in-place. Offscreen negative coordinates
   expand RTL mobile viewports and make the real page appear blank. */
.member-honeypot{position:absolute;left:0;top:0;width:1px;height:1px;padding:0;margin:0;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;opacity:0;pointer-events:none}
/* V19.1: one uninterrupted scroll region for cart items, totals and checkout.
   Avoid independent flex / nested scrollbars that caused the product summary to
   overlap delivery form fields on smaller laptop and phone viewports. */
.page-store-v15 .store-cart-drawer {
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  grid-template-columns: minmax(0, 1fr);
}
.page-store-v15 .store-cart-head,
.page-store-v15 .store-cart-foot { position: relative; z-index: 1; min-width: 0; }
.page-store-v15 .store-cart-scroll {
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scroll-padding-block: 16px 24px;
  background: #fff;
}
.page-store-v15 .store-cart-items {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 20px 8px;
  flex: none;
  max-height: none;
  min-height: 0;
  overflow: visible;
}
.page-store-v15 .store-cart-empty { flex: none; min-height: 145px; }
.page-store-v15 .store-cart-line { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding-bottom: 14px; }
.page-store-v15 .store-cart-thumb { width: 76px; height: 88px; }
.page-store-v15 .store-cart-totals {
  position: static;
  max-height: none;
  padding: 14px 20px;
  flex: none;
}
.page-store-v15 .store-customer-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  min-height: auto;
  max-height: none;
  overflow: visible;
  flex: none;
  padding: 18px 20px 30px;
  border-top: 1px solid #e6e8e5;
  align-content: start;
  background: #fff;
}
.page-store-v15 .store-customer-form > * { min-width: 0; max-width: 100%; }
.page-store-v15 .store-customer-form h3 { font-size: 18px; color: #252b2a; margin: 0 0 4px; }
.page-store-v15 .store-customer-form textarea { resize: vertical; min-height: 86px; }
.page-store-v15 .store-customer-form .member-consent { font-weight: 400; }
.page-store-v15 .store-payment-label { font-size: 12px; line-height: 1.6; background: #f7f3e9; border-radius: 10px; padding: 10px 12px; color: #64563d; }
.page-store-v15 .store-cart-foot {
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: none;
  max-height: 40dvh;
  overflow-y: auto;
  padding: 10px 18px max(12px, env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid #e6e8e7;
  box-shadow: 0 -6px 24px #0000000b;
}
.page-store-v15 .store-cart-foot .store-cart-confirm { margin: 0; font-size: 11px; }
.page-store-v15 .store-cart-foot .store-cart-submit { min-height: 47px; padding: 10px; }
.page-store-v15 .store-cart-continue { padding: 5px; }
.page-store-v15 .store-customer-form :is(input,textarea,select) { scroll-margin-block: 14px 24px; }
@media (max-width: 500px) {
  .page-store-v15 .store-cart-items { padding: 12px 16px 6px; }
  .page-store-v15 .store-cart-totals { padding: 12px 16px; }
  .page-store-v15 .store-customer-form { padding: 16px 16px 28px; }
  .page-store-v15 .store-cart-head { padding: 12px 16px; }
  .page-store-v15 .store-cart-foot { padding: 9px 16px max(10px, env(safe-area-inset-bottom)); }
}
/* V19: fixed delivery fee and COD total */
.page-store-v15 .store-total-shipping{color:#555;padding-top:7px;border-top:1px dashed #ded7cc}
.page-store-v15 .store-total-grand{margin-top:7px;padding:12px 10px;border-radius:11px;background:#e9f3ed;color:#155439;font-size:16px;font-weight:800}
.page-store-v15 .store-total-grand strong{font-size:20px}
.page-store-v15 .store-delivery-note{display:block;margin-top:7px;line-height:1.6}

/* V20 - delivery ETA and invoice after successful order submission */
.page-store-v15 .store-delivery-eta{margin:0;padding:12px 14px;border-radius:12px;background:#edf4f0;color:#184a39;font-size:13px;line-height:1.75;border:1px solid #cddfd1}
.page-store-v15 .store-download-invoice{display:flex;align-items:center;justify-content:center;width:100%;border:1px solid #a47931;border-radius:12px;background:linear-gradient(110deg,#e5c584,#f2dbaa);color:#2c2113;font-weight:800;min-height:48px;padding:10px 16px;cursor:pointer}
.page-store-v15 .store-download-invoice[hidden],.page-store-v15 .store-invoice-help[hidden]{display:none!important}
.page-store-v15 .store-download-invoice:hover{filter:brightness(.97)}
.page-store-v15 .store-download-invoice:focus-visible{outline:3px solid #3d8059;outline-offset:2px}
.page-store-v15 .store-invoice-help{font-size:11px;line-height:1.5;margin:0;color:#5a6060}

/* V21.1 pickup option — clear, responsive checkout choices */
.page-store-v15 .store-fulfillment-options{margin:5px 0 8px;padding:0;border:0;min-width:0;display:grid;gap:9px}
.page-store-v15 .store-fulfillment-options legend{font-weight:800;font-size:14px;color:#28352e;margin-bottom:8px}
.page-store-v15 .store-fulfillment-option{display:flex;align-items:flex-start;gap:12px;border:1px solid #d8ddd5;border-radius:12px;padding:12px 14px;background:#fafbf9;cursor:pointer;line-height:1.6}
.page-store-v15 .store-fulfillment-option:has(input:checked){border-color:#45815c;background:#edf7f0;box-shadow:inset 0 0 0 1px #45815c}
.page-store-v15 .store-fulfillment-option input{width:18px;min-width:18px;height:18px;margin:4px 0 0;accent-color:#257b49}
.page-store-v15 .store-fulfillment-option span{display:grid;gap:3px}
.page-store-v15 .store-fulfillment-option strong{font-size:14px;color:#1f3530}
.page-store-v15 .store-fulfillment-option small{font-size:12px;color:#52605b}
.page-store-v15 .store-delivery-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.page-store-v15 .store-delivery-fields label{font-size:14px;font-weight:750;color:#2c302e}
.page-store-v15 .store-pickup-info{padding:13px 15px;border-radius:12px;background:#eef6f0;border:1px solid #bcd5c3;color:#244b37;line-height:1.8;font-size:13px}
.page-store-v15 .store-pickup-info p{margin:5px 0}
.page-store-v15 .store-pickup-info small{display:block;color:#40694e}
.page-store-v15 .store-pickup-info[hidden],.page-store-v15 .store-delivery-fields[hidden]{display:none!important}

.page-store-v15 .store-preview-warning{margin:4px 0 8px;padding:12px 14px;background:#fff8dc;border:1px solid #d8be69;border-radius:10px;color:#604819;font-size:12px;line-height:1.8;font-weight:700}

/* V21.2: on-site membership request; payment only at gym reception */
.member-pay-at-center{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;padding:14px 16px;border:1px solid #b6d6c8;border-radius:12px;background:#eef8f4;color:#1d513c;line-height:1.75}
.member-pay-at-center strong{font-size:16px}
.member-pay-at-center span{font-size:13px}
.member-preview-label{padding:11px 13px;border:1px solid #e8d18d;border-radius:10px;background:#fff7df;color:#735217;font-size:12px;line-height:1.75;font-weight:700}
.member-preview-label[hidden]{display:none!important}

/* V21.3: membership WhatsApp-first + Formspree alternative (never affects shop orders) */
.member-choice-actions{display:grid;gap:10px}
.member-choice-actions .btn{width:100%;min-height:49px;text-align:center;justify-content:center;white-space:normal}
.member-choice-actions .member-fallback-submit{border:1px solid #b28a4a;background:#fff;color:#59421c}
.member-channel-hint{font-size:12px;line-height:1.9;color:#5b655f;margin:0}
.member-whatsapp-preview{display:grid;gap:11px;padding:15px;border:1px solid #d3b979;border-radius:13px;background:#fff9e8;color:#654a15;font-size:13px}
.member-whatsapp-preview[hidden],.member-wa-fallback[hidden]{display:none!important}
.member-whatsapp-preview textarea{width:100%;resize:vertical;min-height:190px;font:inherit;line-height:1.75;padding:12px;color:#272727;background:#fff;border:1px solid #d9ccaa;border-radius:10px}
.member-copy-button{justify-self:start}
.member-wa-fallback{display:block;line-height:1.8;font-weight:700;text-decoration:underline;color:#1a6241}
.member-choice-actions button:disabled{opacity:.6;cursor:wait}
@media (max-width:560px){.member-choice-actions .btn{padding-inline:8px;font-size:14px}}

/* V21.4: compact free trial workout CTA */
.member-free-visit{display:flex;align-items:flex-start;gap:12px;max-width:490px;margin-top:22px;padding:18px;background:#edf7f1;border:1px solid #b8d7c4;border-radius:16px;color:#234c39;box-shadow:0 8px 20px #1038210a}
.member-free-icon{font-size:22px;line-height:1.3;color:#2d8b5e}
.member-free-content{min-width:0;flex:1}
.member-free-content strong{font-size:19px;display:block;margin-bottom:5px}
.member-free-content p{margin:0 0 12px;font-size:13px;line-height:1.8;color:#3a6550}
.member-free-content .member-visit-action{padding:10px 14px;border:1px solid #3b8660;color:#225d40;background:#fff;min-height:44px;white-space:normal}
.member-free-content .member-visit-action:hover{background:#e1f3e8}
.member-visit-feedback:empty{display:none}
.member-free-content .member-visit-feedback{font-size:12px;font-weight:600;margin:10px 0 0}
.member-free-content .member-wa-fallback{margin-top:8px}
@media (max-width:640px){.member-free-visit{padding:14px;margin:12px 0 18px}.member-free-content strong{font-size:17px}}

.store-security-note{padding:10px 12px;border:1px solid #9ca3af5a;border-radius:9px;font-size:.82rem;line-height:1.6;margin:10px 0;background:rgba(45,95,125,.08)}
#store-turnstile{margin:12px 0;max-width:100%;overflow:hidden}

/* V21.13: an explicit order completion state; never leave a completed cart open. */
.page-store-v15 .store-cart-drawer [hidden]{display:none!important}
.page-store-v15 .az-order-success{margin:22px 18px;padding:27px 17px;background:#f6faf7;border:1px solid #c9dfd0;border-radius:17px;color:#183d2e;text-align:center;line-height:1.85}
.page-store-v15 .az-order-success h3{margin:8px 0;font-size:23px;color:#18573b}
.page-store-v15 .az-order-success p{font-size:14px;margin:12px 0}
.page-store-v15 .az-success-icon{display:grid;place-items:center;margin:0 auto;width:61px;height:61px;border-radius:50%;background:#1a754e;color:white;font-weight:900;font-size:35px}
.page-store-v15 .az-success-ref{display:grid;gap:4px;padding:12px;background:#fff;border-radius:10px;border:1px solid #c9dfd0}
.page-store-v15 .az-success-ref strong{font-size:17px;overflow-wrap:anywhere}
.page-store-v15 .az-back-home{min-height:48px;border:1px solid #247650;border-radius:11px;background:#eef5f0;color:#15593c;font-weight:900;cursor:pointer}
.page-store-v15 .az-payment-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.page-store-v15 .az-payment-options>div{display:flex;flex-direction:column;gap:3px;border-radius:10px;padding:12px;border:1px solid #d7dfd7;font-size:12px;background:#eff7f1;color:#1f5639}
.page-store-v15 .az-payment-options small{font-size:11px}
.page-store-v15 .az-payment-options .az-payment-disabled{color:#777;background:#f3f4f5;border-color:#dfe1e2;opacity:.77}
@media(max-width:350px){.page-store-v15 .az-payment-options{grid-template-columns:1fr}}


/* V21.17 customer account gate and consent */
.az-account-checkout-gate{padding:17px;background:#172b26;color:#f8f8f3;border:1px solid #618974;border-radius:14px;margin:15px 0;line-height:1.7}
.az-account-checkout-gate strong{font-size:1rem}.az-account-checkout-gate p{margin:8px 0;color:#e5efe6}
.az-account-checkout-gate a{display:inline-flex;background:#a48751;color:#17201c;padding:10px 18px;border-radius:9px;text-decoration:none;font-weight:800}
.az-account-checkout-gate a:focus-visible{outline:3px solid #f7de9f;outline-offset:3px}
.az-save-contact{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #c4d7ca;border-radius:10px;background:#edf6ef;color:#244e39;font-size:.84rem;line-height:1.65;margin:12px 0}
.az-save-contact input{margin-top:4px;min-width:18px;min-height:18px}

#store-customer-form[hidden],#store-send-order[hidden],#az-account-checkout-gate[hidden],#az-save-contact-wrap[hidden]{display:none!important}


/* V21.17.1 — compact checkout sign-in gate on phones.
   Exact selectors match shop.html; no global typography or checkout-policy changes. */
.page-store-v15 .az-account-checkout-gate{box-sizing:border-box;max-width:calc(100% - 32px);margin:12px 16px 10px;padding:13px 15px;border-radius:12px;line-height:1.6;overflow-wrap:anywhere}
.page-store-v15 .az-account-checkout-gate strong{display:block;font-size:15px;line-height:1.55;font-weight:800}
.page-store-v15 .az-account-checkout-gate p{font-size:13px;line-height:1.7;margin:6px 0 12px;color:#e4ede7}
.page-store-v15 .az-account-checkout-gate a{display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:44px;padding:9px 16px;border-radius:9px;font-size:14px;line-height:1.45;font-weight:800;text-align:center;white-space:normal}
@media(max-width:500px){
  .page-store-v15 .store-cart-head h2{font-size:22px;line-height:1.25}
  .page-store-v15 .az-account-checkout-gate{margin:10px 12px 12px;max-width:calc(100% - 24px);padding:12px 14px;border-radius:12px}
  .page-store-v15 .az-account-checkout-gate strong{font-size:14px;line-height:1.5}
  .page-store-v15 .az-account-checkout-gate p{font-size:12.5px;line-height:1.65;margin:5px 0 10px}
  .page-store-v15 .az-account-checkout-gate a{font-size:13.5px;min-height:44px;padding:8px 13px}
  .page-store-v15 .store-cart-empty{min-height:130px;gap:5px}
  .page-store-v15 .store-cart-empty h3{font-size:19px}
  .page-store-v15 .store-cart-empty p{font-size:12.5px}
}

/* V21.18 — stack membership booking rather than squeezing a 330px form beside its intro. */
.member-request-layout>*{min-width:0}
.member-request-card{position:relative;min-width:0;width:100%}
.member-request-field :is(input,select){min-width:0;max-width:100%}
@media(max-width:820px){
 .member-request-layout{grid-template-columns:minmax(0,1fr);gap:26px}
 .member-request-intro{max-width:100%;overflow-wrap:anywhere}
 .member-request-intro h2{font-size:28px}
 .member-request-card{padding:20px 16px;border-radius:17px}
 .member-request-card .btn{white-space:normal}
}

/* Long membership links must wrap on narrow Arabic and English viewports. */
body[data-page="memberships"] main .btn{max-width:100%;white-space:normal;text-align:center}
body[data-page="memberships"] main .btn>span{min-width:0;overflow-wrap:anywhere}
