/*
  Zameen checkout (zah-checkout). Same tokens as website/shared/page-base.css: Fraunces headings,
  Inter body, brand blue. Scoped to .zco / .zco-body; selectors are doubled up where WooCommerce,
  Hello Elementor or Square ship stronger ones.
*/
.zco-body {
  --ink:#15202b; --ink-2:#2c3a47; --muted:#5d6975; --line:#e1e6ec; --line-2:#cfd7e0;
  --paper:#fff; --paper-2:#f4f6f9; --blue:#1f5d8b; --blue-dark:#174a6e; --blue-soft:#e8f0f7;
  --ok:#1e7a4f; --ok-soft:#e5f4ec; --err:#b42318; --err-soft:#fdecea;
  --serif:"Fraunces", Georgia, serif; --sans:"Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
  --r:12px; --r-sm:8px;
  --shadow:0 1px 2px rgba(21,32,43,.04), 0 8px 24px -12px rgba(21,32,43,.12);
  background:var(--paper-2);
}
.zco-body .site-main, .zco-body main#content { max-width:none; width:100%; padding:0; margin:0; }
.zco-body .page-content { padding:0; }

.zco { color:var(--ink); font-family:var(--sans); font-size:15px; line-height:1.55; font-weight:400; -webkit-font-smoothing:antialiased; }
.zco *, .zco *::before, .zco *::after { box-sizing:border-box; }
.zco p, .zco li, .zco td, .zco th, .zco label, .zco span, .zco small { font-weight:400; }
.zco b, .zco strong { font-weight:600; }
.zco h1, .zco h2, .zco h3 { text-transform:none; letter-spacing:-.01em; margin:0; color:var(--ink); }
.zco a { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.zco a:hover { color:var(--blue-dark); }
.zco img { max-width:100%; height:auto; }
.zco-i { flex:none; display:inline-block; vertical-align:middle; }
.zco code { font-size:.9em; background:var(--paper-2); padding:1px 5px; border-radius:4px; }

.zco-wrap { max-width:1120px; margin:0 auto; padding:20px 20px 72px; }

/* ---------- top line ---------- */
.zco-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; font-size:14px; }
.zco .zco-back { display:inline-flex; align-items:center; gap:4px; color:var(--muted); text-decoration:none; font-weight:500; }
.zco .zco-back:hover { color:var(--ink); }
.zco .zco-back span { font-weight:500; }
.zco-secure { display:inline-flex; align-items:center; gap:6px; color:var(--ok); font-weight:600; font-size:13px; }
.zco-secure .zco-i { width:15px; height:15px; }

/* ---------- grid ---------- */
.zco-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.zco-side { order:-1; }
@media (min-width:960px) {
  .zco-grid { grid-template-columns:minmax(0,1fr) 400px; gap:32px; align-items:start; }
  .zco-side { order:2; position:sticky; top:100px; }
  .zco-main { order:1; }
}

.zco .zco-h1 { font-family:var(--serif); font-weight:400; font-size:clamp(30px,4vw,40px); line-height:1.1; margin:4px 0 18px; }
.zco-kicker { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); }
.zco-lede { font-size:16px; color:var(--ink-2); max-width:560px; }

.zco-card { background:var(--paper); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow); padding:22px; }
@media (min-width:600px) { .zco-card { padding:28px; } }
.zco-step + .zco-step { margin-top:16px; }
.zco .zco-step-title { display:flex; align-items:center; gap:10px; font-family:var(--sans); font-size:17px; font-weight:600; margin:0 0 18px; }
.zco-num { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--blue); color:#fff; font-size:13px; font-weight:600; }

/* ---------- summary (drawer on phones) ---------- */
.zco-summary { background:var(--paper); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow); }
.zco-summary > summary { list-style:none; cursor:pointer; }
.zco-summary > summary::-webkit-details-marker { display:none; }
.zco-bar { display:flex; align-items:center; gap:10px; padding:14px 16px; }
.zco-bar-label { display:flex; align-items:center; gap:10px; flex:1; min-width:0; color:var(--blue); font-weight:600; font-size:14px; }
.zco-bar-text { display:flex; flex-direction:column; line-height:1.25; }
.zco-bar-text small { color:var(--muted); font-weight:400; font-size:12px; }
.zco-bar-total { font-weight:700; font-size:17px; color:var(--ink); }
.zco-bar-total .amount, .zco-bar-total bdi { font-weight:700; }
.zco-bar > .zco-i { color:var(--muted); transition:transform .2s; }
.zco-summary[open] .zco-bar > .zco-i { transform:rotate(180deg); }
.zco-bar-hide, .zco-summary[open] .zco-bar-show { display:none; }
.zco-summary[open] .zco-bar-hide { display:inline; }
.zco-summary-body { padding:4px 16px 18px; border-top:1px solid var(--line); }
@media (min-width:960px) {
  .zco-bar { display:none; }
  .zco-summary-body { padding:26px 26px 24px; border-top:0; }
}
.zco .zco-side-title { font-family:var(--serif); font-weight:400; font-size:24px; margin:12px 0 16px; }
@media (max-width:959px) { .zco .zco-side-title { display:none; } .zco-summary-body { padding-top:16px; } }

.zco-event { display:flex; gap:14px; align-items:center; padding-bottom:16px; margin-bottom:6px; border-bottom:1px solid var(--line); }
.zco-event + .zco-event { padding-top:10px; }
.zco .zco-event-img { width:76px; height:76px; border-radius:var(--r-sm); object-fit:cover; flex:none; background:var(--paper-2); }
.zco-event-text { min-width:0; }
.zco-event-when { font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); }
.zco-event-title { font-family:var(--serif); font-size:19px; line-height:1.2; margin:3px 0 4px; color:var(--ink); }
.zco-event-where { display:flex; align-items:center; gap:5px; font-size:13px; color:var(--muted); }
.zco-event-where .zco-i { width:14px; height:14px; }

/* the totals table (checkout summary + receipt) */
.zco table.shop_table.zco-review tr, .zco table.shop_table.zco-review tfoot { border:0; }
.zco table.zco-review { width:100%; border:0; border-collapse:collapse; margin:0; background:none; font-size:14px; }
.zco table.shop_table.zco-review th, .zco table.shop_table.zco-review td, .zco table.zco-review th, .zco table.zco-review td { border:0; padding:7px 0; background:none; vertical-align:top; text-align:left; font-weight:400; color:var(--ink-2); }
.zco table.zco-review td:last-child, .zco table.zco-review th + td { text-align:right; white-space:nowrap; padding-left:12px; }
.zco table.zco-review tbody tr:nth-child(odd) > td, .zco table.zco-review tbody tr:nth-child(odd) > th { background:none; }
.zco table.zco-review tbody td { padding:12px 0; }
.zco .zco-line-name { font-weight:500; color:var(--ink); }
.zco .zco-line-qty { color:var(--muted); font-weight:400; margin-left:2px; }
.zco table.zco-review del { color:var(--muted); font-size:.92em; margin-right:4px; }
.zco table.zco-review ins { text-decoration:none; font-weight:500; }
.zco table.zco-review dl.variation { margin:4px 0 0; font-size:12px; color:var(--muted); }
.zco table.zco-review tfoot tr:first-child th, .zco table.zco-review tfoot tr:first-child td { border-top:1px solid var(--line); padding-top:14px; }
.zco table.zco-review tr.order-total th, .zco table.zco-review tr.order-total td { border-top:1px solid var(--line); padding-top:14px; font-size:18px; color:var(--ink); font-weight:600; }
.zco table.zco-review tr.order-total .amount, .zco table.zco-review tr.order-total strong { font-weight:700; }
.zco table.zco-review tr.order-total .includes_tax { display:block; font-size:12px; font-weight:400; color:var(--muted); }
.zco table.zco-review .cart-discount td, .zco table.zco-review .cart-discount th { color:var(--ok); }
.zco .woocommerce-remove-coupon { font-size:12px; margin-left:6px; color:var(--muted); }

/* a Club member's discounted line: "Zameen Club price · you save $1.80 (15%)" in the /register/ palette */
.zco .zco-line-club {
  display:inline-flex; align-items:center; gap:6px; margin-top:6px; padding:3px 10px 3px 4px; border-radius:999px;
  background:#f6eedb; border:1px solid #e9d4a5; color:#0f0f0f; font-size:12.5px; line-height:1.3; white-space:normal;
}
.zco .zco-line-club-logo { position:relative; display:block; flex:none; width:20px; height:20px; border-radius:50%; overflow:hidden; background:#0f0f0f; }
/* the logo file is mostly white space around the circle: scale it so the black circle and gold mark fill the dot */
.zco .zco-line-club-logo img { position:absolute; left:50%; top:50%; width:58px; height:58px; max-width:none; transform:translate(-50%,-21%); }
.zco .zco-line-club span, .zco .zco-line-club .amount { font-weight:400; color:#0f0f0f; }
.zco .zco-line-club b { font-weight:700; }
/* the tag sits in its own row under the ticket line, across both columns */
.zco table.zco-review tbody tr.zco-line-has-club > td { padding-bottom:4px; }
.zco table.zco-review tbody tr.zco-line-club-row > td { padding:0 0 12px; text-align:left; white-space:normal; }
.zco table.zco-review .zco-line-club-row .zco-line-club { display:flex; width:fit-content; max-width:100%; margin-top:0; border-radius:14px; }
.zco .zco-line-club > span:last-child { min-width:0; }
.zco .zco-bar-club { font-weight:700; color:#8a6a1c; }

/* promo + club */
.zco-promo { margin-top:10px; padding-top:12px; border-top:1px dashed var(--line-2); }
.zco .zco-link { background:none; border:0; padding:0; color:var(--blue); font:inherit; font-size:14px; font-weight:500; cursor:pointer; text-decoration:underline; text-underline-offset:2px; text-transform:none; letter-spacing:0; box-shadow:none; min-height:0; }
.zco .zco-link:hover, .zco .zco-link:focus { background:none; color:var(--blue-dark); }
.zco-promo-form { display:flex; gap:8px; margin-top:10px; }
.zco-promo-form[hidden] { display:none; }
.zco-promo-msg:empty { display:none; }
.zco-promo-msg { margin-top:10px; }

/* Zameen Club savings card, in the /register/ page's palette (website/register/top.html):
   cream paper, near-black ink, gold; Fraunces title, Manrope text; the black-and-gold Zameeni logo. */
.zco-clubcard {
  --c-ink:#0f0f0f; --c-paper:#faf8f3; --c-paper-2:#f6eedb; --c-gold:#d3aa4b; --c-gold-soft:#e9d4a5; --c-muted:#666; --c-line:#e0dbd0;
  position:relative; display:flex; gap:18px; align-items:center; margin:0 0 20px; padding:18px 22px 18px 16px;
  border:1px solid var(--c-line); border-left:4px solid var(--c-gold); border-radius:var(--r);
  background:linear-gradient(120deg, var(--c-paper) 0%, var(--c-paper-2) 100%); color:var(--c-ink);
  font-family:"Manrope", var(--sans); box-shadow:0 14px 30px -20px rgba(15,15,15,.35);
}
.zco .zco-clubcard-logo { width:116px; height:116px; flex:none; object-fit:contain; margin:-14px -6px -14px -4px; }
.zco-clubcard-body { min-width:0; }
.zco .zco-clubcard-h { margin:0 0 4px; font-family:"Fraunces", Georgia, serif; font-size:clamp(22px,2.5vw,28px); line-height:1.15; font-weight:400; color:var(--c-ink); letter-spacing:-.01em; }
.zco .zco-clubcard-h em {
  font-style:italic; font-weight:600; color:var(--c-ink); white-space:nowrap; padding:0 2px;
  background:linear-gradient(transparent 56%, var(--c-gold-soft) 56%, var(--c-gold-soft) 92%, transparent 92%);
}
.zco .zco-clubcard-sub { margin:0; font-family:inherit; font-size:15px; color:var(--c-muted); font-weight:400; }
.zco .zco-clubcard-sub b { color:var(--c-ink); font-weight:700; }
.zco-clubcard-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-top:14px; font-size:14px; color:var(--c-muted); }
.zco-clubcard-actions span { font-weight:400; }
.zco .zco-clubcard-actions span a { color:var(--c-ink); font-weight:700; text-decoration:none; border-bottom:1.5px solid var(--c-gold); }
.zco .zco-clubcard-join {
  display:inline-flex; align-items:center; gap:5px; min-height:44px; padding:0 22px; border-radius:999px;
  background:var(--c-ink); color:var(--c-paper); font-size:14.5px; font-weight:700; letter-spacing:.02em; text-decoration:none;
  box-shadow:0 10px 24px -12px rgba(0,0,0,.6); transition:background-color .2s, color .2s, transform .2s;
}
.zco .zco-clubcard-join span { color:var(--c-gold); font-weight:700; }
.zco .zco-clubcard-join:hover { background:var(--c-gold); color:var(--c-ink); transform:translateY(-2px); }
.zco .zco-clubcard-join:hover span { color:var(--c-ink); }
@media (max-width:599px) {
  .zco-clubcard { gap:12px; padding:16px 16px 16px 12px; align-items:flex-start; }
  .zco .zco-clubcard-logo { width:80px; height:80px; margin:-6px -6px 0 -4px; }
}

/* the small Club note at the top of the Payment box */
.zco-club { display:flex; gap:10px; align-items:flex-start; margin-top:16px; padding:12px 14px; border-radius:var(--r-sm); background:var(--blue-soft); font-size:13.5px; color:var(--ink-2); }
.zco-club .zco-i { color:var(--blue); width:18px; height:18px; margin-top:1px; }
.zco-club.is-member { background:var(--ok-soft); }
.zco-club.is-member .zco-i { color:var(--ok); }
.zco-step .zco-club { margin:-4px 0 16px; }

/* ---------- fields ---------- */
.zco .form-row { margin:0 0 16px; padding:0; }
.zco .form-row label { display:block; font-size:13.5px; font-weight:500; color:var(--ink); margin:0 0 6px; line-height:1.3; }
.zco .form-row label .optional { color:var(--muted); font-weight:400; }
.zco .form-row .required { color:var(--err); text-decoration:none; border:0; }
.zco .form-row input.input-text, .zco .form-row textarea, .zco .form-row select, .zco #zco-coupon,
.zco .select2-container .select2-selection--single {
  width:100%; height:48px; padding:0 14px; border:1px solid var(--line-2); border-radius:var(--r-sm);
  background:#fff; color:var(--ink); font-family:var(--sans); font-size:16px; line-height:46px; box-shadow:none; outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.zco .form-row textarea { height:auto; min-height:84px; padding:10px 14px; line-height:1.5; }
.zco .form-row input.input-text:focus, .zco .form-row textarea:focus, .zco #zco-coupon:focus,
.zco .select2-container--focus .select2-selection--single, .zco .select2-container--open .select2-selection--single {
  border-color:var(--blue); box-shadow:0 0 0 3px rgba(31,93,139,.15);
}
.zco .select2-container .select2-selection--single .select2-selection__rendered { line-height:46px; padding:0; color:var(--ink); }
.zco .select2-container .select2-selection--single .select2-selection__arrow { height:46px; right:8px; }
.zco .form-row.woocommerce-validated input.input-text:not(:focus) { border-color:var(--line-2); }
.zco .form-row.woocommerce-invalid input.input-text, .zco .form-row.woocommerce-invalid .select2-selection { border-color:var(--err); }
.zco .form-row .description { display:block; margin-top:6px; font-size:12.5px; color:var(--muted); background:none; padding:0; position:static; }
.zco .form-row .description::before { display:none; }
@media (min-width:600px) {
  .zco .woocommerce-billing-fields__field-wrapper { display:grid; grid-template-columns:1fr 1fr; column-gap:14px; }
  .zco .woocommerce-billing-fields__field-wrapper .form-row { width:auto; float:none; }
  .zco .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column:1 / -1; }
}
.zco .woocommerce-billing-fields__field-wrapper .form-row { width:100%; float:none; }
.zco-notes { margin-top:2px; }
.zco-notes > summary { list-style:none; display:inline-block; }
.zco-notes > summary::-webkit-details-marker { display:none; }
.zco-notes > summary span { color:var(--muted); font-weight:400; }
.zco-notes[open] > summary { margin-bottom:12px; }
.zco wc-order-attribution-inputs { display:none; }

/* ---------- buttons ---------- */
.zco .zco-btn, .zco .zco-btn-quiet {
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 22px;
  border-radius:var(--r-sm); font-family:var(--sans); font-size:15px; font-weight:600; letter-spacing:0; text-transform:none; text-decoration:none; cursor:pointer;
  transition:background-color .15s, border-color .15s, color .15s;
}
.zco .zco-btn { background:var(--blue); color:#fff; border:1px solid var(--blue); }
.zco .zco-btn:hover { background:var(--blue-dark); border-color:var(--blue-dark); color:#fff; }
.zco .zco-btn-quiet { background:#fff; color:var(--ink); border:1px solid var(--line-2); }
.zco .zco-btn-quiet:hover { border-color:var(--ink); color:var(--ink); background:#fff; }
.zco .zco-promo-apply { min-height:48px; padding:0 18px; flex:none; }
.zco .zco-promo-apply.is-busy { opacity:.6; }
.zco-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }

/* ---------- payment (WooCommerce + Square markup) ---------- */
.zco #payment { background:none; border-radius:0; padding:0; }
.zco #payment ul.payment_methods { padding:0; margin:0; border:0; list-style:none; }
.zco #payment ul.payment_methods > li { margin:0 0 10px; padding:0; border:1px solid var(--line); border-radius:var(--r-sm); list-style:none; background:#fff; line-height:1.4; }
.zco #payment ul.payment_methods > li::before { display:none; }
.zco #payment ul.payment_methods > li > label { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:14px 16px; margin:0; font-weight:600; font-size:15px; cursor:pointer; }
.zco #payment ul.payment_methods > li > input[type=radio] { position:absolute; opacity:0; pointer-events:none; }
.zco #payment ul.payment_methods > li > label img { max-height:22px; width:auto; margin:0; float:none; }
.zco #payment ul.payment_methods li .sv-wc-payment-gateway-card-icons { margin-left:auto; display:inline-flex; gap:4px; }
.zco #payment div.payment_box { background:none; margin:0; padding:0 16px 16px; color:var(--ink-2); font-size:14px; border-radius:0; }
.zco #payment div.payment_box::before { display:none; }
.zco #payment div.payment_box p:first-child { margin-top:0; }
.zco #payment div.payment_box fieldset { border:0; padding:0; margin:0; }
.zco #payment div.payment_box legend { display:none; }
.zco #payment .wc-square-credit-card-hosted-field, .zco #payment #wc-square-credit-card-container { border-radius:var(--r-sm); }
.zco #payment .place-order { padding:0; margin:18px 0 0; }
.zco .woocommerce-privacy-policy-text p, .zco .woocommerce-terms-and-conditions-wrapper p { font-size:12.5px; color:var(--muted); margin:0 0 12px; line-height:1.5; }
.zco .woocommerce-terms-and-conditions-wrapper label { font-size:13.5px; font-weight:400; }
.zco #payment #place_order, .zco button#place_order {
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%; float:none; min-height:56px; margin:4px 0 0; padding:0 24px;
  background:var(--blue); border:0; border-radius:var(--r-sm); color:#fff; box-shadow:0 8px 20px -10px rgba(31,93,139,.6);
  font-family:var(--sans); font-size:17px; font-weight:600; letter-spacing:.01em; text-transform:none; cursor:pointer; transition:background-color .15s, transform .05s;
}
.zco #payment #place_order::before {
  content:""; width:16px; height:16px; flex:none;
  background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat;
}
.zco #payment #place_order:hover { background:var(--blue-dark); }
.zco #payment #place_order:active { transform:translateY(1px); }
.zco #payment #place_order:disabled { opacity:.6; cursor:wait; }

/* Square: Google Pay / Apple Pay at the top, and its "– OR –" as a rule */
.zco-before:empty { display:none; }
.zco-before #wc-square-digital-wallet { margin:0 0 6px; }
.zco-before #wc-square-digital-wallet > div { border-radius:var(--r-sm); overflow:hidden; }
.zco-before #wc-square-google-pay, .zco-before #apple-pay-button { width:100%; }
/* "– OR –" (Square's text) becomes a rule with "or pay with card" on it */
.zco-before #wc-square-wallet-divider { position:relative; height:20px; margin:16px 0 18px; font-size:0; text-align:center; }
.zco-before #wc-square-wallet-divider::before { content:""; position:absolute; left:0; right:0; top:50%; border-top:1px solid var(--line-2); }
.zco-before #wc-square-wallet-divider::after {
  content:"or pay with card"; position:relative; padding:0 12px; background:var(--paper-2);
  font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); line-height:20px;
}

/* Square gift card (its input is a Square iframe; only the frame around it is ours) */
.zco #square-gift-card-wrapper { margin-top:12px; padding:12px 0 0; min-height:0; border-top:1px dashed var(--line-2); }
.zco #square-gift-card-application { flex-wrap:wrap; gap:8px; align-items:flex-start; margin:0; }
/* collapsed like "Have a promo code?": the title is the toggle (assets/checkout.js). The input is Square's
   iframe, so it is shrunk to nothing rather than display:none, which can stop Square initialising it. */
.zco #square-gift-card-title { width:100%; flex:none; margin:0; font-size:14px; font-weight:500; color:var(--blue); text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.zco #square-gift-card-title:hover { color:var(--blue-dark); }
.zco #square-gift-card-title:focus-visible { outline:2px solid var(--blue); outline-offset:2px; border-radius:2px; }
.zco-summary-body:not(.zco-gc-open) #square-gift-card-application { row-gap:0; }
.zco-summary-body:not(.zco-gc-open) #square-gift-card-fields-input,
.zco-summary-body:not(.zco-gc-open) #square-gift-card-apply-button-wrapper { height:0; min-height:0; overflow:hidden; visibility:hidden; }
.zco #square-gift-card-fields-input { flex:1; min-width:0; margin:0; }
.zco #square-gift-card-fields-input .sq-card-wrapper { min-height:0; min-width:0; }
.zco #square-gift-card-fields-input .sq-card-message:empty { display:none; }
.zco .sq-card-message { margin:8px 0 0; font-size:13px; line-height:1.3; }
.zco .square-gift-card-response { margin-bottom:0 !important; }
.zco #square-gift-card-apply-button-wrapper { flex:none; margin:0; }
.zco button#square-gift-card-apply-btn {
  height:50px; padding:0 18px; margin:0; border:1px solid var(--line-2); border-radius:var(--r-sm); background:#fff; color:var(--ink);
  font-family:var(--sans); font-size:15px; font-weight:600; text-transform:none; letter-spacing:0; cursor:pointer;
}
.zco button#square-gift-card-apply-btn:hover { border-color:var(--ink); background:#fff; color:var(--ink); }
.zco .square-gift-card-response { font-size:14px; }
.zco .square-gift-card-response__header--fail { color:var(--err); }
.zco .square-gift-card-response__header--success { color:var(--ok); }

/* ---------- notices ---------- */
.zco .woocommerce-error, .zco .woocommerce-message, .zco .woocommerce-info,
.zco .woocommerce-NoticeGroup .woocommerce-error {
  list-style:none; margin:0 0 16px; padding:12px 14px 12px 40px; border:0; border-radius:var(--r-sm); position:relative;
  font-size:14px; line-height:1.45; background:var(--blue-soft); color:var(--ink);
}
.zco .woocommerce-error { background:var(--err-soft); color:var(--err); }
.zco .woocommerce-message { background:var(--ok-soft); color:var(--ok); }
.zco .woocommerce-error::before, .zco .woocommerce-message::before, .zco .woocommerce-info::before {
  position:absolute; left:14px; top:13px; font-family:var(--sans); content:"!"; display:grid; place-items:center;
  width:18px; height:18px; border-radius:50%; background:var(--blue); color:#fff; font-size:12px; font-weight:700; line-height:1;
}
.zco .woocommerce-error::before { background:var(--err); }
.zco .woocommerce-message::before { background:var(--ok); }
.zco .woocommerce-message::before { content:"✓"; }
.zco .woocommerce-error li { margin:0; padding:0; list-style:none; }
.zco .woocommerce-error li + li { margin-top:4px; }
.zco .woocommerce-info a, .zco .woocommerce-error a { color:inherit; }
.zco .woocommerce-form-login-toggle .woocommerce-info { margin-bottom:16px; }
.zco form.woocommerce-form-login { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:20px; margin:0 0 16px; }

/* ---------- fine print ---------- */
.zco-fine { display:flex; gap:8px; align-items:flex-start; margin:18px 4px 0; font-size:12.5px; color:var(--muted); line-height:1.55; }
.zco-fine .zco-i { width:14px; height:14px; margin-top:2px; }
.zco-fine a { color:var(--muted); }

/* ---------- thank you / empty ---------- */
.zco-ty { max-width:760px; }
.zco-ty-hero { text-align:center; padding:28px 0 26px; }
.zco-ty-hero .zco-lede { margin:0 auto; }
.zco-ty-hero .zco-lede .zco-i { color:var(--blue); vertical-align:-3px; margin-right:4px; }
.zco-ty-hero .zco-h1 { margin:10px 0 12px; }
.zco-ty-hero .zco-actions { justify-content:center; }
.zco-ty-check { display:inline-grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--ok); color:#fff; margin-bottom:16px; box-shadow:0 0 0 8px var(--ok-soft); }
.zco-ty-check .zco-i { width:32px; height:32px; stroke-width:2.4; }
.zco-ty-check.is-quiet { background:var(--blue-soft); color:var(--blue); box-shadow:none; }
.zco-ty-check.is-quiet .zco-i { stroke-width:1.8; }
.zco-ty-hero.is-failed .zco-h1 { color:var(--err); }

.zco-ty-event { display:flex; gap:22px; align-items:flex-start; margin-bottom:16px; }
.zco .zco-ty-poster { width:140px; height:140px; object-fit:cover; border-radius:var(--r-sm); flex:none; background:var(--paper-2); }
.zco-ty-event-text { min-width:0; flex:1; }
.zco .zco-ty-event-title { font-family:var(--serif); font-weight:400; font-size:26px; line-height:1.15; margin:4px 0 10px; }
.zco .zco-ty-event-title a { color:var(--ink); text-decoration:none; }
.zco-ty-meta { display:flex; gap:8px; align-items:flex-start; font-size:14.5px; color:var(--ink-2); margin:4px 0; }
.zco-ty-meta .zco-i { color:var(--blue); width:17px; height:17px; margin-top:2px; }
.zco-ty-meta small { display:block; color:var(--muted); font-size:13px; }
.zco-ty-cal { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.zco-ty-cal .zco-btn-quiet { min-height:38px; padding:0 14px; font-size:13.5px; font-weight:500; }
@media (max-width:599px) {
  .zco-ty-event { flex-direction:column; gap:14px; }
  .zco .zco-ty-poster { width:100%; height:auto; aspect-ratio:1; max-width:320px; }
}
/* "Your tickets": Event Tickets Plus's attendee list (PDF ticket + Add to Apple Wallet), restyled */
.zco-ty-tickets { margin-bottom:16px; }
.zco-ty-tickets .zco-step-title { margin-bottom:4px; }
.zco-ty-tickets-note { font-size:13.5px; color:var(--muted); margin:0 0 6px; }
.zco-ty-tickets .tec-tickets__attendees-list-wrapper { margin:0; padding:0; border:0; background:none; }
.zco-ty-tickets .tec-tickets__attendees-list-wrapper > h4 { display:none; }
.zco-ty-tickets .tec-tickets__attendees-list-item { display:flex; align-items:center; justify-content:space-between; gap:12px 16px; flex-wrap:wrap; padding:14px 0; border-top:1px solid var(--line); margin:0; }
.zco-ty-tickets .tec-tickets__attendees-list-item:first-child { border-top:0; }
.zco-ty-tickets .tec-tickets__attendees-list-item-attendee-details { flex:1 1 220px; min-width:0; font-size:14.5px; color:var(--ink-2); }
.zco-ty-tickets .tec-tickets__attendees-list-item-attendee-details-name { font-weight:600; color:var(--ink); }
.zco-ty-tickets .tec-tickets__attendees-list-item-attendee-details-ticket { font-size:13.5px; color:var(--muted); }
.zco-ty-tickets .tec-tickets__wallet-plus-passes-container { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0; }
.zco-ty-tickets .tec-tickets__wallet-plus-passes-container > div { margin:0; }
.zco .zco-ty-tickets a.tec-tickets__wallet-plus-component-pdf-button-link {
  display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border-radius:var(--r-sm); border:1px solid var(--line-2);
  background:#fff; color:var(--ink); font-size:13.5px; font-weight:500; text-decoration:none; line-height:1;
}
.zco .zco-ty-tickets a.tec-tickets__wallet-plus-component-pdf-button-link:hover { border-color:var(--ink); }
.zco-ty-tickets a.tec-tickets__wallet-plus-component-apple-wallet-button-link { display:inline-flex; line-height:0; }
.zco .zco-ty-tickets img.tec-tickets__wallet-plus-component-apple-wallet-button-image { height:40px; width:auto; max-width:none; }
.zco-ty-tickets .tribe-common-a11y-hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.zco-receipt .zco-step-title { margin-bottom:8px; }
.zco-receipt-meta { font-size:13px; color:var(--muted); margin:10px 0 0; }
.zco-ty-actions { justify-content:center; margin-top:24px; }
.zco-ty .zco-fine { justify-content:center; text-align:center; }

.zco-empty { max-width:640px; }
.zco-panel { margin-top:8px; }
.zco-panel p { color:var(--ink-2); margin:0 0 6px; }
.zco-panel .zco-step-title { margin:6px 0 10px; }
.zco .zco-panel-sub { font-family:var(--sans); font-size:13px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; margin:24px 0 8px; }
.zco-panel-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.zco-panel-list li { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); font-size:14.5px; }
.zco-panel-list li span { color:var(--muted); white-space:nowrap; }
.zco-dot { display:inline-block; width:10px; height:10px; border-radius:50%; background:#aab4bf; flex:none; }
.zco-dot.is-on { background:#2fb26b; box-shadow:0 0 0 4px rgba(47,178,107,.18); }

.zco-preview-bar {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 16px;
  padding:9px 16px; background:#15202b; color:#fff; font-size:13px; text-align:center;
}
.zco-preview-bar > span { display:inline-flex; align-items:center; gap:8px; color:#fff; }
.zco .zco-preview-bar a { color:#9cc5e6; font-weight:600; }

/* the site header's 5% bottom margin (MyHeader 2360) would push the checkout far down */
.zco-body .elementor-location-header .elementor-element-5174e1b6 { margin-bottom:0 !important; }
.zco .zco-hidden { display:none !important; }

.zco .screen-reader-text { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
