:root {
      color-scheme: light;
      --body: "DM Sans", sans-serif;
      --display: "Playfair Display", serif;
      --forest: #0b3b2e;
      --forest-deep: #082f27;
      --court: #477d96;
      --tennis: #c9d94a;
      --clay: #b96e4d;
      --sand: #f5f0e5;
      --paper: #fffefa;
      --ink: #192720;
      --muted: #66716b;
      --line: #deded5;
      --blue-wash: #edf4f7;
      --green-wash: #edf4ef;
      font-family: var(--body);
      color: var(--ink);
      background: var(--sand);
    }
    * { box-sizing: border-box; }
    body { margin: 0; font-family:var(--body); font-size:16px; line-height:1.55; }
    button, input, select, textarea { font: inherit; }
    .topbar {
      height: 76px; padding: 0 clamp(20px, 6vw, 88px); display: flex;
      align-items: center; justify-content: space-between; background: var(--paper);
      border-bottom: 1px solid rgba(11,59,46,.08);
    }
    .brand { color: var(--forest); text-decoration: none; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
    .top-note { color: var(--muted); font-size: 13px; }
    .hero {
      min-height: 330px; display: flex; align-items: center; position: relative; overflow: hidden;
      color: white; background: linear-gradient(90deg, rgba(7,36,35,.92), rgba(7,36,35,.30)),
      url("../../../assets/phuket/academy/00%20-%20Main%20Coirt.png") center / cover;
    }
    .hero-inner { width:min(1180px, 100%); margin:auto; padding:48px 28px; position:relative; z-index:1; }
    .eyebrow { text-transform:uppercase; font-size:11px; letter-spacing:.22em; font-weight:700; color:var(--tennis); }
    h1, h2, h3, .serif { font-family:var(--display); font-weight:500; letter-spacing:-.025em; }
    .hero h1 { max-width:480px; margin:15px 0 10px; font-size:clamp(42px,6vw,66px); line-height:.99; font-weight:500; letter-spacing:-.035em; }
    .hero p { margin:0; font-size:16px; color:rgba(255,255,255,.88); }
    .facts { display:flex; flex-wrap:wrap; gap:22px; margin-top:24px; font-size:13px; }
    .fact::before { content:""; display:inline-block; width:8px; height:8px; background:var(--tennis); border-radius:50%; margin-right:8px; }
    main { width:min(1180px, 100%); margin:-28px auto 70px; position:relative; z-index:2; padding:0 22px; }
    .checkout { background:var(--paper); border-radius:18px; box-shadow:0 16px 44px rgba(22,39,31,.10); padding:clamp(24px,4vw,54px); display:grid; grid-template-columns:minmax(0,1.55fr) minmax(270px,.85fr); gap:clamp(28px,5vw,64px); }
    h2 { color:var(--forest); font-size:34px; line-height:1.05; font-weight:500; margin:0 0 8px; }
    .intro { margin:0 0 26px; color:var(--muted); font-size:14px; line-height:1.55; max-width:560px; }
    .section-title { font:600 21px/1.35 var(--body); letter-spacing:0; margin:24px 0 14px; color:var(--forest-deep); }
    .fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .field.full { grid-column:1/-1; }
    label.field-label { display:block; font-size:12px; font-weight:600; margin-bottom:6px; }
    .field input { width:100%; height:44px; padding:0 13px; border:1px solid var(--line); border-radius:7px; background:white; outline:none; }
    .field input:focus { border-color:var(--court); box-shadow:0 0 0 3px rgba(71,125,150,.15); }
    .rule { border:0; border-top:1px solid var(--line); margin:25px 0 0; }
    .pay-heading { display:flex; justify-content:space-between; gap:16px; align-items:baseline; }
    .pay-heading .section-title { margin:20px 0 5px; }
    .no-fee { color:var(--muted); font-size:11px; }
    .payment-list { display:grid; gap:11px; margin-top:13px; }
    .payment-option { position:relative; }
    .payment-option input { position:absolute; opacity:0; pointer-events:none; }
    .payment-card { display:grid; grid-template-columns:20px 1fr auto; gap:12px; align-items:start; padding:17px; border:1px solid var(--line); border-radius:10px; cursor:pointer; transition:.16s ease; }
    .payment-card:hover { border-color:#aab8b0; }
    .payment-option input:checked + .payment-card { border:1.5px solid var(--forest); background:var(--green-wash); box-shadow:0 0 0 2px rgba(11,59,46,.06); }
    .payment-option input:focus-visible + .payment-card { outline:3px solid rgba(71,125,150,.35); outline-offset:2px; }
    .radio { width:19px; height:19px; border:2px solid #a7b0aa; border-radius:50%; margin-top:1px; display:grid; place-items:center; }
    input:checked + .payment-card .radio { border-color:var(--forest); }
    input:checked + .payment-card .radio::after { content:""; width:9px; height:9px; background:var(--forest); border-radius:50%; }
    .payment-title { display:block; font:600 18px/1.4 var(--body); letter-spacing:0; color:var(--ink); margin-bottom:4px; }
    .payment-copy { font-size:13px; line-height:1.5; color:var(--muted); display:block; max-width:410px; }
    .provider { color:var(--forest); font-size:12px; font-weight:800; letter-spacing:-.03em; }
    .provider.zelle { color:#6b36c7; font-size:15px; }
    .qr-note { display:none; margin:10px 0 0 32px; padding:12px 14px; border-radius:8px; background:#f4f0fa; color:#49376a; font-size:11px; line-height:1.45; }
    .qr-note::before { content:"Zelle payment details"; display:block; font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; margin-bottom:4px; }
    .payment-option input:checked ~ .qr-note { display:block; }
    .continue { width:100%; min-height:51px; border:0; border-radius:8px; margin-top:16px; color:white; background:var(--forest); font: 600 15px var(--body); cursor:pointer; transition:background .16s ease; }
    .continue:hover { background:var(--forest-deep); }
    .continue span { font:400 20px var(--body); vertical-align:-1px; margin-left:8px; }
    .secure { text-align:center; font-size:10px; color:var(--muted); margin:12px 0 0; }
    .summary { align-self:start; border:1px solid #e5e3d9; border-radius:12px; overflow:hidden; background:#fff; }
    .summary-photo { width:100%; height:165px; object-fit:cover; display:block; }
    .summary-body { padding:19px; }
    .summary h3 { font-weight:500; font-size:25px; color:var(--forest); margin:0 0 6px; }
    .summary-sub { color:var(--muted); font-size:12px; margin:0 0 18px; }
    .summary-fact { display:flex; gap:10px; font-size:12px; padding:8px 0; }
    .summary-fact b { color:var(--forest); width:16px; text-align:center; }
    .summary-price { border-top:1px solid var(--line); margin-top:12px; padding-top:15px; }
    .summary-price small { font-size:11px; color:var(--muted); }
    .summary-price strong { display:block; color:var(--forest); font: 600 32px var(--body); font-variant-numeric:tabular-nums; margin-top:3px; }
    .per-person { font-size:11px; color:var(--muted); }
    .fee-callout { margin-top:15px; padding:13px; border-radius:8px; background:var(--green-wash); font-size:11px; line-height:1.5; }
    .fee-callout b { color:var(--forest); }
    .notice { display:none; margin-top:12px; padding:12px; border-radius:8px; background:#fbf2e5; color:#68472b; font-size:12px; line-height:1.5; }
    .notice.show { display:block; }
    footer { text-align:center; color:var(--muted); font-size:11px; padding:0 20px 28px; }
    footer .line { display:inline-block; width:24px; height:1px; background:var(--forest); vertical-align:middle; margin:0 8px; }
    @media (max-width:760px) {
      .topbar { height:68px; padding:0 20px; }
      .top-note { font-size:11px; }
      .hero { min-height:320px; }
      .hero-inner { padding:44px 24px 74px; }
      main { margin:-30px auto 40px; padding:0 13px; }
      .checkout { grid-template-columns:1fr; padding:25px 20px; gap:28px; }
      .summary-photo { height:125px; }
      .fields { gap:12px; }
    }
    @media (max-width:420px) {
      .top-note { max-width:106px; text-align:right; line-height:1.3; }
      .hero h1 { font-size:45px; }
      .fields { grid-template-columns:1fr; }
      .field.full { grid-column:auto; }
      .pay-heading { display:block; }
      .no-fee { display:block; margin-bottom:5px; }
      .payment-card { padding:14px 12px; grid-template-columns:20px 1fr auto; gap:9px; }
      .payment-title { font-size:16px; }
    }
  
    .preview-banner { background:#ecefce; color:var(--forest-deep); text-align:center; font-size:11px; padding:9px 16px; letter-spacing:.04em; }
    .back-link { color:var(--forest); font-size:12px; text-decoration:none; }
    .back-link:hover { text-decoration:underline; }
    .booking-terms { font-size:11px; color:var(--muted); line-height:1.55; margin:14px 0 0; }
    .booking-terms summary { cursor:pointer; color:var(--forest); font-weight:600; }
    .booking-terms p { margin:8px 0; }
    dialog { border:0; border-radius:18px; background:var(--paper); padding:26px; width:min(480px,calc(100% - 28px)); color:var(--ink); box-shadow:0 24px 80px #082f2733; }
    dialog::backdrop { background:#082f2777; backdrop-filter:blur(3px); }
    .dialog-head { display:flex; align-items:start; justify-content:space-between; gap:18px; }
    .dialog-head h2 { font-size:27px; margin:0; }
    .close-dialog { border:1px solid var(--line); background:transparent; color:var(--forest); width:32px; height:32px; flex-shrink:0; border-radius:50%; font-size:20px; cursor:pointer; }
    .dialog-intro { font-size:13px; color:var(--muted); line-height:1.6; }
    .amount-row { display:flex; justify-content:space-between; gap:12px; padding:14px 0; border-block:1px solid var(--line); font-size:13px; }
    .amount-row strong { color:var(--forest); }
    .provider-placeholder { margin-top:18px; background:var(--green-wash); padding:24px 18px; border-radius:10px; text-align:center; }
    .placeholder-icon { width:50px; height:50px; border:1px solid #b8c6bb; border-radius:12px; display:grid; place-items:center; margin:0 auto 12px; color:var(--forest); }
    .placeholder-icon svg { width:28px; height:28px; }
    .provider-placeholder strong { font:500 20px var(--display); color:var(--forest); }
    .provider-placeholder p { font-size:12px; color:var(--muted); line-height:1.5; margin:8px 0 0; }
    .preview-provider-button { display:block; width:100%; min-height:44px; margin-top:16px; border:1px solid #bbc8bf; border-radius:7px; color:#5b7164; background:#dde7df; font-size:12px; font-weight:600; }
    .demo-note { margin-top:18px; font-size:11px; line-height:1.5; color:var(--muted); }
    [hidden] { display:none!important; }
    .room-fieldset { border:0; margin:0; padding:0; min-width:0; }
    .room-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .room-option { position:relative; }
    .room-option input { position:absolute; opacity:0; pointer-events:none; }
    .room-card { display:grid; grid-template-columns:20px 1fr; gap:11px; padding:17px 14px; border:1px solid var(--line); border-radius:10px; cursor:pointer; min-height:140px; }
    .room-option input:checked + .room-card { background:var(--green-wash); border-color:var(--forest); box-shadow:0 0 0 1px var(--forest); }
    .room-option input:focus-visible + .room-card { outline:3px solid var(--tennis); outline-offset:3px; }
    .room-title { display:block; font:600 18px/1.4 var(--body); letter-spacing:0; color:var(--forest); }
    .room-copy { display:block; font-size:12px; color:var(--muted); margin-top:5px; }
    .room-price { display:block; font:600 25px var(--body);font-variant-numeric:tabular-nums; color:var(--forest); margin-top:13px; }
    .room-price small { display:block; font:400 10px var(--body); color:var(--muted); margin-top:3px; }
    input:checked + .room-card .radio { border-color:var(--forest); }
    input:checked + .room-card .radio::after { content:""; width:9px; height:9px; background:var(--forest); border-radius:50%; }
    .payment-destination { display:flex; align-items:center; justify-content:center; gap:10px; min-height:46px; margin-top:18px; padding:10px 14px; border-radius:8px; background:var(--forest); color:white; font-size:13px; font-weight:600; text-decoration:none; }
    .payment-destination:hover { background:var(--forest-deep); }
    .payment-destination:focus-visible { outline:3px solid var(--tennis); outline-offset:3px; }
    .provider-placeholder .live-payment-note { font-size:11px; line-height:1.5; margin-top:13px; }
    .recipient-details { margin:18px 0; text-align:left; }
    .recipient-details>div { padding:9px 0; border-bottom:1px solid #cfdbd1; }
    .recipient-details dt { font-size:10px; color:var(--muted); margin-bottom:4px; }
    .recipient-details dd { margin:0; font-size:13px; font-weight:600; overflow-wrap:anywhere; color:var(--forest); }
    .zelle-details { padding:18px; }
    .payment-reference b { font-weight:600; }
    @media(max-width:420px) { .room-card { padding:14px 10px; gap:7px; } .room-title { font-size:16px; } .room-price { font-size:23px; } dialog { max-height:calc(100dvh - 40px); overflow:auto; } }
    @media(max-width:760px) { .topbar { gap:20px; } .brand { font-size:11px; letter-spacing:.07em; max-width:160px; } .hero { min-height:265px; } .summary-photo { height:150px; } }

.muted{color:var(--muted)}.policy-acknowledgement{margin:20px 0 0;padding:14px;border:1px solid #deded5;border-radius:9px;background:#faf7ef}.review-ack{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.6}.review-ack input{width:18px;height:18px;flex:0 0 auto;margin:2px 0 0;accent-color:var(--forest)}.review-ack a{color:var(--forest);text-underline-offset:3px}.policy-acknowledgement p{font-size:10px;line-height:1.5;margin:9px 0 0 28px;color:var(--muted)}.continue:disabled{background:#bdcbbf;color:#334b3c;cursor:not-allowed}.confirmation-guide{max-width:800px;margin:0 auto 30px;padding:0 22px;text-align:center}.confirmation-guide h2{font-size:24px}.confirmation-guide p{color:var(--muted);font-size:12px;line-height:1.6}.confirmation-guide a{font-size:12px;color:var(--forest)}.zelle-disclosure{background:#f7efe6;color:#664631;border:1px solid #ddc7b2;border-radius:8px;padding:14px;margin-top:16px}.zelle-disclosure strong{font:600 13px var(--body);color:#664631}.zelle-disclosure p{font-size:12px;color:#664631}.preview-provider-button:disabled{cursor:not-allowed}

/* Keep complete payment instructions reachable on smaller desktop windows too. */
dialog{max-height:calc(100dvh - 40px);overflow:auto}

/* Named participant details are enabled only when the connected sender is ready. */
#test-guest-fields{border:0;padding:0;margin:0 0 30px;min-width:0}
#test-guest-fields[hidden]{display:none}
.test-data-note{font-size:13px;line-height:1.65;color:#607365;margin:12px 0 18px}
.test-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.test-fields-grid label{display:block;font-size:13px;font-weight:600;min-width:0}
.test-fields-grid input{box-sizing:border-box;display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #b9c4b9;border-radius:5px;background:#fffefa;color:#0b3b2e;font:15px var(--body)}
.test-fields-grid input:focus{outline:2px solid #477d96;outline-offset:2px}
.test-email-consent{margin:18px 0 0;font-size:13px;line-height:1.65}
.test-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:600px){.test-fields-grid{grid-template-columns:1fr}}

.checkout-payment-details{margin:20px 0;text-align:left}.checkout-payment-details>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--line)}.checkout-payment-details dt{color:var(--muted);font-size:12px}.checkout-payment-details dd{margin:0;font-size:13px;font-weight:600;overflow-wrap:anywhere;text-align:right}.payment-state{padding:16px;margin-top:18px;border:1px solid #d7c9a7;background:#faf6e9;border-radius:8px;text-align:left}.provider-placeholder .payment-state strong{font:600 14px var(--body);color:#624d25}.payment-state p{font-size:13px;line-height:1.6}

.postal-address{margin-top:22px}.address-heading{margin:0 0 14px;font:600 16px/1.4 var(--body);letter-spacing:0;color:var(--forest)}.address-heading span{font-weight:400;font-size:12px;color:var(--muted)}.test-fields-grid .address-full{grid-column:1/-1}

/* Retreat value and player suitability in the checkout summary. */
.summary-body{padding:24px}.summary-kicker{margin:0 0 10px;color:var(--clay);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.summary h3{font-size:28px;line-height:1.12;margin-bottom:12px}.summary-sub{font-size:13px;line-height:1.65;margin-bottom:20px}.summary-overview{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.summary-overview dt{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:7px}.summary-overview dd{margin:0;font-size:12px;font-weight:600;line-height:1.6;color:var(--forest)}.summary-overview dd span{display:block;font-weight:400;color:var(--muted)}.summary h4{font:600 16px/1.4 var(--body);color:var(--forest);margin:0 0 14px}.summary-inclusions{padding-top:24px}.summary-inclusions ul{list-style:none;padding:0;margin:0}.summary-inclusions li{position:relative;padding:0 0 16px 23px;font-size:12px;line-height:1.6}.summary-inclusions li::before{content:'✓';position:absolute;left:0;top:0;color:#477354;font-weight:700}.summary-inclusions li strong{display:block;color:var(--forest);font-weight:600}.summary-inclusions li span{display:block;color:var(--muted);margin-top:2px}.summary-levels{background:#edf4ef;padding:18px;border-radius:9px;margin:5px 0 18px}.summary-levels h4{margin-bottom:8px}.summary-levels p{margin:0;color:#52675b;font-size:12px;line-height:1.7}.summary-levels .summary-group{border-top:1px solid #d2dfd4;margin-top:12px;padding-top:12px;font-size:11px}.summary-exclusions{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 12px}.summary-exclusions strong{font-weight:600;color:var(--forest)}.summary-retreat-link{font-size:12px;color:var(--forest);text-decoration:underline;text-underline-offset:4px}.summary-price{margin-top:22px;padding-top:20px}.summary-price strong{font-size:38px}.summary .fee-callout{background:#f7f5ed;font-size:11px}.summary-photo{height:185px}@media(max-width:760px){.summary-body{padding:24px}.summary h3{font-size:29px}.summary-photo{height:185px}.summary-inclusions li{font-size:13px}.summary-levels p{font-size:13px}}

/* Keep the checkout total crisp on small screens and avoid serif glyph overlap. */
.summary-price strong { font-family: var(--body); font-weight: 600; letter-spacing: 0; font-kerning: normal; font-variant-numeric: lining-nums tabular-nums; }


/* Shared premium policy/checkout footer */
.rallyLegalFooter{display:block;width:100%;margin:42px 0 0;padding:36px clamp(18px,5vw,48px) calc(27px + env(safe-area-inset-bottom));background:#0d2a27;color:#f8f5ee;text-align:left;font-family:"DM Sans",system-ui,sans-serif}
.rallyLegalInner{max-width:1040px;margin:auto}
.rallyLegalBrand{font-family:"Playfair Display",Georgia,serif;font-size:24px;letter-spacing:.04em;font-weight:500;color:#fff}
.rallyLegalBrand span{font-family:"DM Sans",system-ui,sans-serif;font-size:10px;font-weight:700;letter-spacing:.18em;margin-left:8px}
.rallyLegalIntro{font-size:13px;line-height:1.6;color:#ccd7d0;margin:10px 0 23px}
.rallyLegalLinks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.rallyLegalLinks a{display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:75px;border:1px solid #49635a;background:#173b33;border-radius:13px;padding:13px 15px;color:#fff;text-decoration:none;font-size:13px;font-weight:700;transition:background .2s,border-color .2s,transform .2s}
.rallyLegalLinks a:hover,.rallyLegalLinks a:focus-visible{background:#245347;border-color:#bdd1c2;transform:translateY(-1px)}
.rallyLegalLinks small{font-size:10px;color:#cad8ce;font-weight:400}
.rallyLegalBottom{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:25px;padding-top:17px;border-top:1px solid #48645a;color:#bfcdc4;font-size:11px}
.rallyLegalBottom a{color:#f6f4ed;text-underline-offset:4px}
.rallyLegalEnvironment{margin-left:auto;color:#c9bca0}
@media(max-width:700px){.rallyLegalFooter{margin-top:30px;padding-top:30px}.rallyLegalBrand{font-size:22px}.rallyLegalLinks{grid-template-columns:repeat(2,minmax(0,1fr))}.rallyLegalLinks a{min-height:80px;padding:12px}.rallyLegalBottom{align-items:flex-start;gap:11px 18px}.rallyLegalEnvironment{width:100%;margin-left:0}}
@media(max-width:350px){.rallyLegalLinks{grid-template-columns:1fr}.rallyLegalLinks a{min-height:60px}}
@media(prefers-reduced-motion:reduce){.rallyLegalLinks a{transition:none}}


/* Compact, editorial footer links — no card/button treatment. */
.rallyLegalLinks{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:10px 24px}
.rallyLegalLinks a{display:inline;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#f5f2e9;font-size:12px;font-weight:500;line-height:1.6;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#91a79a;transition:color .15s}
.rallyLegalLinks a:hover,.rallyLegalLinks a:focus-visible{background:transparent;border:0;transform:none;color:#fff;text-decoration-color:#fff}
.rallyLegalLinks small{display:none}
@media(max-width:700px){.rallyLegalLinks{display:flex;flex-wrap:wrap;gap:10px 19px}.rallyLegalLinks a{display:inline;min-height:0;padding:0;font-size:12px}}
@media(max-width:350px){.rallyLegalLinks{display:flex}.rallyLegalLinks a{min-height:0}}


/* Official Zelle handoff; the source QR is preserved without bank details. */
.zelle-details{display:block;text-align:left;background:#fffefa;padding:22px!important}
.zelle-kicker{font-size:11px!important;letter-spacing:.12em;text-transform:uppercase;color:#6d428c!important;margin:0 0 8px!important}
.zelle-business{display:block;font-size:16px;line-height:1.5;letter-spacing:.025em;text-align:center}
.zelle-qr-card{display:flex;align-items:center;flex-direction:column;gap:8px;width:fit-content;margin:22px auto 16px;padding:12px 16px;border:1px solid #e3dfeb;background:white;border-radius:14px;box-shadow:0 6px 24px #0b3b2e08}
.zelle-qr-card span{font-size:11px;color:#76548f}.zelle-official-qr{width:240px;height:auto;max-width:100%;image-rendering:pixelated}
.zelle-preview-warning{padding:12px 14px;border-radius:7px;background:#f8efd9;color:#705522!important;font-size:12px!important;line-height:1.6!important}
.zelle-tag-row{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid #deded5}.zelle-tag-row div{min-width:0}.zelle-tag-row span{display:block;font-size:11px;color:#607365;margin-bottom:5px}.zelle-tag-row strong{font-size:17px;overflow-wrap:anywhere}
.zelle-copy{font:600 12px 'DM Sans',sans-serif;background:#edf1e9;color:#0b3b2e;border:1px solid #d7dfd2;border-radius:6px;padding:11px 13px;min-height:44px;cursor:pointer;flex:none}.zelle-copy:hover{background:#dde7d7}.zelle-copy:focus-visible{outline:3px solid #416fb1;outline-offset:3px}
.zelle-booking dd{overflow-wrap:anywhere;font-size:13px}.reference-copy{margin:0 0 14px}.zelle-steps{padding-left:22px;margin:20px 0;font-size:13px;line-height:1.75;color:#526658}.zelle-steps li{padding-left:4px;margin-bottom:12px}.zelle-mobile-tip{font-size:12px!important;line-height:1.6!important}
.zelle-handoff{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.zelle-report{width:100%;background:#2460a8!important;color:#fff!important;min-height:50px}.zelle-report:disabled{background:#d4ded4!important;color:#48604c!important;cursor:default}.zelle-simulation-note{font-size:11px!important;text-align:center;line-height:1.6!important}.zelle-awaiting{padding:16px;background:#eef2e8;border-radius:8px;margin-top:16px}.zelle-awaiting strong{font-size:14px}.zelle-awaiting p{margin:6px 0 0!important;font-size:12px!important;line-height:1.7!important}
@media(max-width:480px){.zelle-details{padding:16px!important}.zelle-tag-row{gap:8px}.zelle-tag-row strong{font-size:15px}.zelle-official-qr{width:220px}.zelle-business{font-size:14px}.zelle-booking>div{display:block}.zelle-booking dd{text-align:left;margin-top:6px}#payment-preview{max-height:calc(100dvh - 24px);max-width:calc(100vw - 24px);width:calc(100vw - 24px);padding:20px;overflow:auto}}

/* Desktop scanning and mobile app switching share the same booking details. */
#payment-preview{width:min(820px,calc(100vw - 40px));padding:28px}
.zelle-transfer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;align-items:start;margin-top:24px}
.zelle-transfer-grid .zelle-qr-card{margin:0;width:100%;padding:20px}
.zelle-official-qr{width:304px;aspect-ratio:1;height:auto}
.zelle-transfer-details{min-width:0}
.zelle-tag-row{background:#f4eff9;border:1px solid #e3d7ef;border-radius:10px;padding:16px;flex-wrap:wrap}
.zelle-tag-row strong{font:600 21px/1.4 var(--body);letter-spacing:0;color:var(--forest)}
.zelle-detail-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.zelle-detail-row>div{min-width:0;flex:1 1 170px}
.zelle-detail-row span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.zelle-detail-row strong{display:block;font:600 14px/1.5 var(--body);overflow-wrap:anywhere}
#zelle-copy-amount{font-size:24px;font-variant-numeric:tabular-nums}
.zelle-transfer-details .zelle-booking{margin:12px 0}
.zelle-transfer-details .zelle-booking>div{display:block}
.zelle-transfer-details .zelle-booking dd{text-align:left;margin-top:6px}
#zelle-qr-unavailable{min-height:220px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;line-height:1.8;color:var(--forest)}
.zelle-mobile-tip{padding:12px 14px;background:var(--green-wash);border-radius:8px}
@media(max-width:600px){
  #payment-preview{width:calc(100vw - 24px);max-width:calc(100vw - 24px);padding:18px}
  .zelle-transfer-grid{display:flex;flex-direction:column;gap:20px}
  .zelle-transfer-details{order:-1;width:100%}
  .zelle-tag-row{padding:14px;gap:12px}
  .zelle-tag-row strong{font-size:20px}
  .zelle-tag-row .zelle-copy{width:100%}
  .zelle-transfer-grid .zelle-qr-card{width:auto;max-width:100%;margin:0 auto}
  .zelle-official-qr{width:220px}
}

.zelle-details .zelle-confirmation-followup,.zelle-details .zelle-alternatives{font-size:13px;line-height:1.7;margin-top:16px}
.zelle-alternatives a{color:var(--forest);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}

/* Keep the payment dialog inside the viewport, including mobile Safari. */
#payment-preview{
  box-sizing:border-box;position:fixed;inset:0;margin:auto;
  width:min(820px,calc(100% - 32px));max-width:calc(100% - 32px);min-width:0;
  height:fit-content;max-height:calc(100dvh - 32px);
  padding:24px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
}
.checkout>section,.summary,.zelle-details,.zelle-transfer-grid,.zelle-transfer-details,.zelle-tag-row,.zelle-detail-row,.zelle-qr-card{
  min-width:0;max-width:100%;box-sizing:border-box;
}
.checkout-payment-details>div{min-width:0}
.checkout-payment-details dt,.checkout-payment-details dd{min-width:0;max-width:100%;overflow-wrap:anywhere}
.checkout-payment-details dd{flex:1 1 0}
.dialog-head h2,.amount-row>*{min-width:0;overflow-wrap:anywhere}
.zelle-business{overflow-wrap:anywhere}
.zelle-copy{max-width:100%;white-space:normal}
@media(max-width:600px){
  #payment-preview{
    width:calc(100% - 24px);max-width:calc(100% - 24px);
    max-height:calc(100dvh - 24px);padding:16px;
  }
  .checkout-payment-details>div{display:grid;grid-template-columns:minmax(72px,.4fr) minmax(0,1fr);gap:12px}
  #payment-address-row{grid-template-columns:1fr;gap:6px}
  #payment-address-row dd{text-align:left}
  .zelle-details{padding:12px!important}
  .zelle-transfer-grid .zelle-qr-card{max-width:100%;width:100%;padding:16px}
  .zelle-tag-row{padding:12px}
  .zelle-tag-row strong{font-size:clamp(17px,5vw,20px)}
}

.room-option,.room-card,.room-card>span{min-width:0}
.room-options{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:360px){.room-options{grid-template-columns:1fr}.room-card{min-height:0}}

.zelle-wordmark{display:inline-block;width:82px;max-width:100%;height:auto;object-fit:contain;vertical-align:middle}
.zelle-title .zelle-wordmark{display:block}
#payment-preview-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#payment-preview-title .zelle-heading-logo{width:86px;flex:0 1 86px}
.zelle-kicker{display:flex;align-items:center;gap:12px}
.zelle-kicker .zelle-wordmark{width:64px}

/* Finish and support screens use the existing Rally palette and typography. */
.zelle-finish{border-top:1px solid #dce2d7;margin-top:24px;padding-top:24px;text-align:left}
.zelle-finish h3,.zelle-completion h3,.zelle-contact h3{font-family:'Playfair Display',serif;font-size:26px;font-weight:500;color:#0b3b2e;margin:0 0 12px}
#payment-preview .zelle-report{background:#0b3b2e!important;color:#fffefa!important;border:1px solid #235e47;border-radius:14px;animation:zelle-ready-glow 3s ease-in-out infinite;width:100%;margin-top:16px}
#payment-preview .zelle-report:hover{background:#15553f!important}
#payment-preview .zelle-report:disabled{animation:none;opacity:.7}
@keyframes zelle-ready-glow{0%,100%{box-shadow:0 0 0 0 rgba(121,182,139,.12)}50%{box-shadow:0 0 0 5px rgba(121,182,139,.2),0 5px 22px rgba(43,111,70,.15)}}
.contact-mark{display:block;text-align:center;font-size:13px;line-height:1.7;color:#15553f;margin:22px 0 8px;overflow-wrap:anywhere}
.zelle-completion{text-align:center;padding:18px 0 8px}
.submission-check{display:grid;place-items:center;background:#0b3b2e;color:#fffefa;border-radius:50%;width:56px;height:56px;margin:0 auto 22px;font-size:28px}
.completion-details{background:#eef2e9;border-radius:14px;padding:12px 20px;margin:24px 0;text-align:left}
.completion-details dd{overflow-wrap:anywhere;min-width:0}
.completion-return{display:flex;align-items:center;justify-content:center;padding:12px;text-decoration:none;margin-top:24px}
.zelle-contact{padding:12px 0}
.zelle-contact label{display:block;margin:18px 0;color:#0b3b2e;font-weight:600}
.zelle-contact input,.zelle-contact textarea{display:block;box-sizing:border-box;width:100%;min-width:0;margin-top:8px;border:1px solid #b9c5b8;border-radius:8px;padding:14px;background:#fffefa;color:#0b3b2e;font:inherit}
.zelle-contact textarea{resize:vertical}
#alternative-feedback,#zelle-report-feedback{font-size:13px;line-height:1.7;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){#payment-preview .zelle-report{animation:none}}
@media(max-width:600px){.completion-details{padding:8px 14px}.completion-details>div{display:block}.completion-details dd{text-align:left;margin-top:6px}.zelle-finish h3,.zelle-contact h3{font-size:24px}}


/* Compact booking details; preserve all field names and payment logic. */
.postal-address > summary.address-heading {
  display:list-item; cursor:pointer; padding:12px 2px; margin:0;
  font:600 14px/1.5 var(--body); color:var(--forest);
}
.postal-address > summary.address-heading span {font-size:12px;font-weight:400;color:var(--muted)}
.postal-address[open] > summary.address-heading {margin-bottom:10px}
.postal-address > summary:focus-visible {outline:2px solid var(--court);outline-offset:3px}
@media (max-width:600px) {
  #test-guest-fields {margin-bottom:20px}
  #test-guest-fields .test-fields-grid {gap:14px 12px}
  #test-guest-fields .test-fields-grid label {font-size:13px;line-height:1.35}
  #test-guest-fields .test-fields-grid input {
    min-height:48px;height:48px;padding:9px 12px;margin-top:5px;
    border-radius:7px;font-size:16px;
  }
  #test-guest-fields .postal-address {margin-top:12px;border-top:1px solid var(--line)}
  #test-guest-fields .postal-address .test-fields-grid {grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  #test-guest-fields .postal-address .address-full {grid-column:1/-1}
  #test-guest-fields .postal-address .address-city,
  #test-guest-fields .postal-address .address-state,
  #test-guest-fields .postal-address .address-zip,
  #test-guest-fields .postal-address .address-country {grid-column:auto}
}


/* Required contact and postal details: compact mobile layout */
#test-guest-fields .optional-hint{font-weight:400;color:var(--muted);font-size:11px}
#test-guest-fields .postal-address{margin-top:16px}
#test-guest-fields .postal-address .address-heading{margin:0 0 10px;font-size:15px}
@media(max-width:600px){
  #test-guest-fields .contact-fields{grid-template-columns:minmax(0,1fr)}
  #test-guest-fields .test-fields-grid{gap:11px 10px}
  #test-guest-fields .postal-address{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
  #test-guest-fields .postal-address .test-fields-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  #test-guest-fields .postal-address .address-full{grid-column:1/-1}
  #test-guest-fields .test-fields-grid input{height:44px;min-height:44px;margin-top:4px;padding:7px 10px;font-size:16px}
}


/* Final mobile checkout rhythm refinement. No desktop changes. */
@media (max-width:600px) {
  .checkout {padding:20px 16px;gap:22px}
  .intro {margin-bottom:14px}
  #test-guest-fields {margin-bottom:20px}
  #test-guest-fields .section-title {margin:14px 0 8px}
  #test-guest-fields .test-fields-grid {gap:10px 10px}
  #test-guest-fields .test-fields-grid label {font-size:12px;line-height:1.3}
  #test-guest-fields .test-fields-grid input {margin-top:4px;height:44px;min-height:44px;padding:7px 10px;border-radius:7px;font-size:16px}
  #test-guest-fields .postal-address {margin-top:16px;padding-top:12px}
  #test-guest-fields .postal-address .address-heading {margin:0 0 8px}
  .room-fieldset .section-title {margin:18px 0 10px}
  .room-options {gap:10px}
  .room-card {min-height:124px}
  .rule {margin-top:20px}
  .pay-heading .section-title {margin:18px 0 6px}
  .payment-list {margin-top:10px}
  .policy-acknowledgement {margin-top:16px;padding:12px}
}


/* Customer checkout has no staging preview banner. */
.preview-banner{display:none!important}
.stripe-wordmark{display:block;width:80px;height:auto}.stripe-badge-link{display:flex;justify-content:center;margin:18px 0 0}.stripe-badge-link img{width:120px;height:auto}.stripe-return-brand{display:block;width:90px;height:auto;margin:12px 0 24px}

/* Explain bank-specific Zelle limits before choosing or sending payment. */
.zelle-limit-note{margin:12px 0 16px;padding:14px 16px;border:1px solid #d8e4db;border-radius:8px;background:var(--green-wash);color:var(--forest);text-align:left}
.zelle-limit-note strong{font:700 12px/1.5 var(--body);color:var(--forest)}
.zelle-limit-note>strong{display:block;font-size:12px;line-height:1.5;margin-bottom:5px}
.zelle-limit-note p{margin:0;font-size:12px;line-height:1.65;color:#485c50}
.zelle-limit-choice{display:none;margin-left:32px}
.payment-option input:checked~.zelle-limit-choice{display:block}
@media(max-width:600px){.zelle-limit-choice{margin-left:0}}

.room-preferences{min-width:0;margin:24px 0 0;padding:20px;border:1px solid #dce2d9;border-radius:8px;background:#f7f8f2}
.room-preferences .section-title{padding:0 6px}
.preference-options{border:0;padding:0;margin:0 0 18px;min-width:0}
.preference-options legend{font-weight:600;font-size:15px;margin-bottom:10px}
.preference-options label{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;margin:10px 0;cursor:pointer}
.preference-options input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:#0b3b2e}
.other-guest-field{display:block;font-size:14px;font-weight:600;margin:0 0 20px}
.other-guest-field input{box-sizing:border-box;display:block;width:100%;font:inherit;padding:12px;margin:8px 0;border:1px solid #afbdb0;border-radius:5px;background:white}
#other-guest-note{font-size:12px;line-height:1.6;font-weight:400;color:#526658}
