/* ============================================================
   IN & OUT PILATES — Shared Stylesheet  (Bright & Energetic)
   ============================================================ */
:root{
  --coral:#FF5A5F; --coral-dark:#E63E43; --teal:#17B0A8; --teal-dark:#0E8C85;
  --sunshine:#FFC23C; --ink:#1F2A37; --slate:#5A6573; --cloud:#F7F8FA; --white:#FFF; --line:#E7EAEF;
  --font-head:"Poppins","Segoe UI",system-ui,sans-serif;
  --font-body:"Inter","Segoe UI",system-ui,sans-serif;
  --maxw:1140px; --radius:18px;
  --shadow:0 12px 30px rgba(31,42,55,.10); --shadow-sm:0 4px 14px rgba(31,42,55,.08);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--ink);line-height:1.65;background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--coral);text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.15;color:var(--ink)}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.section{padding:84px 0}.section--tight{padding:56px 0}
.bg-cloud{background:var(--cloud)}.text-center{text-align:center}
.eyebrow{display:inline-block;font-family:var(--font-head);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;color:var(--teal-dark);margin-bottom:14px}
.section-title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;margin-bottom:18px}
.lead{font-size:1.15rem;color:var(--slate);max-width:680px}
.text-center .lead{margin-left:auto;margin-right:auto}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:600;font-size:1rem;padding:14px 28px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--coral);color:#fff;box-shadow:0 8px 20px rgba(255,90,95,.35)}
.btn--primary:hover{background:var(--coral-dark)}
.btn--teal{background:var(--teal);color:#fff;box-shadow:0 8px 20px rgba(23,176,168,.32)}
.btn--teal:hover{background:var(--teal-dark)}
.btn--ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--coral);color:var(--coral)}
.btn--lg{padding:16px 34px;font-size:1.08rem}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-head);font-weight:700;font-size:1.15rem;color:var(--ink)}
.brand .logo-badge{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--coral),var(--sunshine));color:#fff;display:grid;place-items:center;font-weight:800;font-size:1rem;letter-spacing:-.5px}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none}
.nav-links a{font-family:var(--font-head);font-weight:500;font-size:.96rem;color:var(--ink);padding:10px 14px;border-radius:10px;transition:background .15s,color .15s}
.nav-links a:hover,.nav-links a.active{background:var(--cloud);color:var(--coral)}
.nav-links .btn:hover,.nav-links a.btn.active{background:var(--coral);color:#fff}
.nav-cta{margin-left:8px}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;border-radius:10px}
.nav-toggle span{display:block;width:24px;height:2.5px;background:var(--ink);margin:5px auto;border-radius:2px;transition:.2s}
@media(max-width:900px){
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--line);padding:12px 16px 20px;box-shadow:var(--shadow);display:none}
  .nav-links.open{display:flex}
  .nav-links a{padding:14px;font-size:1.05rem}
  .nav-cta{margin:8px 0 0}
}
.hero{position:relative;background:radial-gradient(120% 120% at 0% 0%,rgba(255,194,60,.18),transparent 50%),radial-gradient(120% 120% at 100% 100%,rgba(23,176,168,.18),transparent 50%),var(--cloud);padding:90px 0 100px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.4rem,5.2vw,4rem);font-weight:800;letter-spacing:-1px}
.hero h1 em{font-style:normal;color:var(--coral)}
.hero p{font-size:1.2rem;color:var(--slate);margin:22px 0 30px;max-width:540px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-media{position:relative}
.hero-media img{border-radius:24px;box-shadow:var(--shadow);width:100%;height:460px;object-fit:cover}
.hero-badge{position:absolute;bottom:-18px;left:-18px;background:#fff;border-radius:16px;padding:16px 20px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px}
.hero-badge .dot{width:12px;height:12px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 5px rgba(23,176,168,.18)}
.hero-badge strong{font-family:var(--font-head)}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr;gap:32px}.hero-media img{height:320px}}
.grid{display:grid;gap:26px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:860px){.grid-3{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card .icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:1.5rem;margin-bottom:16px;color:#fff}
.icon--coral{background:linear-gradient(135deg,var(--coral),#ff8a5f)}
.icon--teal{background:linear-gradient(135deg,var(--teal),#4fd6c9)}
.icon--sun{background:linear-gradient(135deg,var(--sunshine),#ffd87a);color:var(--ink)}
.card h3{font-size:1.25rem;margin-bottom:8px}.card p{color:var(--slate)}
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px}
@media(max-width:860px){.price-grid{grid-template-columns:1fr}}
.one-list{margin:0 0 18px 20px}
.one-list li{margin-bottom:6px;color:var(--slate)}
.price-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow-sm);text-align:center;position:relative}
.price-card.featured{border:2px solid var(--coral);box-shadow:var(--shadow)}
.price-card .tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--coral);color:#fff;font-family:var(--font-head);font-weight:600;font-size:.78rem;padding:5px 16px;border-radius:999px;letter-spacing:.04em}
.price-card h3{font-size:1.3rem;margin-bottom:6px}
.price-card .amount{font-family:var(--font-head);font-size:2.4rem;font-weight:800;color:var(--ink);margin:10px 0 4px}
.price-card .amount span{font-size:1rem;font-weight:500;color:var(--slate)}
.price-card .per{color:var(--slate);margin-bottom:18px}
.price-list{list-style:none;text-align:left;margin:18px 0 24px}
.price-list li{padding:8px 0;border-bottom:1px dashed var(--line);color:var(--slate);display:flex;justify-content:space-between;gap:12px}
.price-list li strong{color:var(--ink);font-family:var(--font-head)}
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
table.schedule{width:100%;border-collapse:collapse;background:#fff;min-width:560px}
table.schedule th,table.schedule td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line)}
table.schedule thead th{background:var(--ink);color:#fff;font-family:var(--font-head);font-weight:600;font-size:.95rem}
table.schedule tbody tr:nth-child(even){background:var(--cloud)}
table.schedule td:first-child{font-family:var(--font-head);font-weight:600}
.pill{display:inline-block;padding:3px 12px;border-radius:999px;font-size:.8rem;font-family:var(--font-head);font-weight:600}
.pill--teal{background:rgba(23,176,168,.14);color:var(--teal-dark)}
.pill--coral{background:rgba(255,90,95,.14);color:var(--coral-dark)}
.pill--sun{background:rgba(255,194,60,.20);color:#946800}
.notice{background:#fff;border-left:5px solid var(--sunshine);border-radius:12px;padding:20px 24px;box-shadow:var(--shadow-sm)}
.notice h4{font-size:1.1rem;margin-bottom:6px}.notice p{color:var(--slate)}
.notice--coral{border-left-color:var(--coral)}.notice--teal{border-left-color:var(--teal)}
.review-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-sm);break-inside:avoid}
.review-card .stars{color:var(--sunshine);font-size:1.1rem;margin-bottom:12px;letter-spacing:2px}
.review-card p{color:var(--ink);font-size:1.02rem}
.review-card .who{margin-top:16px;font-family:var(--font-head);font-weight:600;color:var(--teal-dark)}
.reviews-masonry{columns:2;column-gap:26px}
.reviews-masonry .review-card{margin-bottom:26px}
@media(max-width:760px){.reviews-masonry{columns:1}}
.steps{display:grid;gap:22px}
.step{display:grid;grid-template-columns:56px 1fr;gap:20px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm)}
.step .num{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--sunshine));color:#fff;font-family:var(--font-head);font-weight:800;font-size:1.4rem;display:grid;place-items:center}
.step h3{margin-bottom:6px}.step p{color:var(--slate)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--font-head);font-weight:600;font-size:.92rem;margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:13px 15px;border:1.5px solid var(--line);border-radius:12px;font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff;transition:border .15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal)}
.field textarea{min-height:130px;resize:vertical}
.form-status{margin-top:14px;font-family:var(--font-head);font-weight:600}
.form-status.ok{color:var(--teal-dark)}.form-status.err{color:var(--coral-dark)}
.info-line{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.info-line .ico{font-size:1.3rem}
.info-line strong{font-family:var(--font-head);display:block}
.info-line span{color:var(--slate)}
.site-footer{background:var(--ink);color:#cfd6df;padding:60px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr;gap:28px}}
.site-footer h4{color:#fff;font-size:1.05rem;margin-bottom:16px}
.site-footer a{color:#cfd6df}.site-footer a:hover{color:#fff}
.footer-links{list-style:none}.footer-links li{margin-bottom:10px}
.footer-brand .brand{color:#fff;margin-bottom:14px}
.footer-brand p{color:#9aa5b1;max-width:320px}
.footer-bottom{border-top:1px solid #33404f;margin-top:40px;padding-top:22px;text-align:center;color:#8a96a3;font-size:.9rem}
.page-banner{background:radial-gradient(100% 120% at 100% 0%,rgba(255,90,95,.16),transparent 55%),radial-gradient(100% 120% at 0% 100%,rgba(23,176,168,.16),transparent 55%),var(--cloud);padding:70px 0 60px;text-align:center}
.page-banner h1{font-size:clamp(2rem,5vw,3rem);font-weight:800}
.page-banner p{color:var(--slate);font-size:1.12rem;max-width:620px;margin:14px auto 0}
.mt-0{margin-top:0}.mt-2{margin-top:16px}.mt-4{margin-top:32px}
.center-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.prose p{margin-bottom:16px;color:var(--slate)}.prose p:last-child{margin-bottom:0}

.notice--sun{border-left-color:var(--sunshine)}

/* ---------- Brand logo (official IN & OUT PILATES logo) ---------- */
:root{ --brand-green:#387438; --brand-green-dark:#2c5c2c; }
.brand{ gap:10px; }
.brand .brand-logo{ height:50px; width:auto; display:block; }
.brand .brand-text{ font-family:var(--font-head); font-weight:700; font-size:1.02rem; color:var(--ink); line-height:1.04; letter-spacing:.2px; }
@media(max-width:480px){ .brand .brand-text{ display:none; } .brand .brand-logo{ height:44px; } }
.site-footer .brand{ align-items:center; }
.site-footer .brand .brand-logo{ height:56px; background:#fff; border-radius:12px; padding:6px; }
.site-footer .brand .brand-text{ color:#fff; }
.hero-logo{ display:block; margin:0 auto 6px; height:160px; width:auto; }
@media(max-width:860px){ .hero-logo{ height:130px; } }

/* ---------- Accessibility & polish ---------- */
/* Visible keyboard focus for links, buttons, and form fields */
a:focus-visible,.btn:focus-visible,button:focus-visible,
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{
  outline:3px solid var(--teal); outline-offset:2px;
}
/* Skip-to-content link (visible only when focused) */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--coral);color:#fff;
  font-family:var(--font-head);font-weight:600;padding:12px 18px;border-radius:0 0 12px 0}
.skip-link:focus{left:0}
/* Respect users who prefer reduced motion */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
  .btn:hover,.card:hover{transform:none}
}

/* ---------- Admin page (admin.html) ---------- */
.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 0;border-bottom:1px solid var(--line);margin-bottom:8px}
.admin-tag{font-family:var(--font-head);font-weight:700;color:var(--teal-dark);
  background:rgba(23,176,168,.12);padding:6px 14px;border-radius:999px;font-size:.85rem}
.admin-day{padding:18px 20px;border:1px solid var(--line);border-radius:14px;
  margin-bottom:16px;background:#fff;box-shadow:var(--shadow-sm)}
.admin-day h4{margin-bottom:12px;font-size:1.15rem}
.admin-cells{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:640px){.admin-cells{grid-template-columns:1fr}}
.admin-cells label{display:block;font-family:var(--font-head);font-weight:600;
  font-size:.82rem;color:var(--slate);text-transform:uppercase;letter-spacing:.04em}
.admin-cells input{width:100%;margin-top:6px;padding:12px 14px;border:1.5px solid var(--line);
  border-radius:10px;font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff}
.admin-cells input:focus{outline:none;border-color:var(--teal)}
.admin-help{background:rgba(255,194,60,.12);border-left:5px solid var(--sunshine);
  border-radius:12px;padding:16px 20px;margin-bottom:24px;color:var(--slate)}
.admin-help strong{color:var(--ink)}
.admin-savebar{position:sticky;bottom:0;background:rgba(255,255,255,.96);
  backdrop-filter:blur(6px);border-top:1px solid var(--line);padding:16px 0;margin-top:8px}

/* Admin tabs */
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px;border-bottom:1px solid var(--line);padding-bottom:14px}
.admin-tab{font-family:var(--font-head);font-weight:600;font-size:.95rem;color:var(--slate);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 18px;cursor:pointer;transition:.15s}
.admin-tab:hover{border-color:var(--coral);color:var(--coral)}
.admin-tab.active{background:var(--coral);color:#fff;border-color:var(--coral)}
.admin-tab .count{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:999px;
  background:rgba(0,0,0,.12);font-size:.78rem}
.admin-tab.active .count{background:rgba(255,255,255,.3)}
.admin-panel{display:none}.admin-panel.active{display:block}

/* Add/delete rows (schedule classes, 1:1 openings, price line items) */
.admin-list{display:grid;gap:10px;margin-bottom:14px}
.admin-row{display:grid;gap:10px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.admin-row--sched{grid-template-columns:160px 1fr 1.5fr auto}
.admin-row--slot{grid-template-columns:1fr auto;align-items:center}
.admin-row--item{grid-template-columns:2fr 1fr auto;align-items:center}
@media(max-width:640px){.admin-row--sched,.admin-row--item{grid-template-columns:1fr}}
.admin-row .ar-field{display:block;font-family:var(--font-head);font-weight:600;font-size:.72rem;color:var(--slate);text-transform:uppercase;letter-spacing:.04em}
.admin-row input,.admin-row select{width:100%;margin-top:4px;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff}
.admin-row input:focus,.admin-row select:focus{outline:none;border-color:var(--teal)}
.row-del{align-self:center;flex:none;min-width:40px;height:40px;border-radius:10px;border:1.5px solid var(--line);background:#fff;color:var(--coral-dark);font-family:var(--font-head);font-weight:600;font-size:1rem;cursor:pointer;line-height:1;padding:0 12px}
.row-del:hover{border-color:var(--coral);background:rgba(255,90,95,.06)}
.btn-add{margin-bottom:8px}

/* Pricing plan editor cards */
.admin-pcard{border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:16px;background:#fff;box-shadow:var(--shadow-sm)}
.admin-pcard.is-best{border:2px solid var(--coral);box-shadow:var(--shadow)}
.admin-pcard-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.pcard-title{flex:1 1 200px;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;font-family:var(--font-head);font-weight:600;font-size:1.05rem;color:var(--ink)}
.pcard-title:focus{outline:none;border-color:var(--teal)}
.best-btn{font-family:var(--font-head);font-weight:600;font-size:.85rem;padding:9px 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--slate);cursor:pointer;white-space:nowrap}
.best-btn:hover{border-color:var(--coral);color:var(--coral)}
.admin-pcard.is-best .best-btn{background:var(--coral);color:#fff;border-color:var(--coral)}
.pitems{display:grid;gap:8px;margin:4px 0 10px}

/* Submission cards (registrations, waivers, sign-up requests) */
.sub-list{display:grid;gap:16px}
.sub-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow-sm)}
.sub-card .sub-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.sub-card .sub-name{font-family:var(--font-head);font-weight:700;font-size:1.1rem}
.sub-card .sub-when{color:var(--slate);font-size:.85rem}
.sub-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:6px 0}
.sub-card dt{color:var(--slate);font-size:.9rem}
.sub-card dd{color:var(--ink);font-size:.95rem}
.sub-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.btn--sm{padding:8px 16px;font-size:.9rem}
.btn--danger{background:#fff;color:var(--coral-dark);border-color:var(--line)}
.btn--danger:hover{border-color:var(--coral);background:rgba(255,90,95,.06)}
.status-pill{font-family:var(--font-head);font-weight:600;font-size:.78rem;padding:3px 12px;border-radius:999px}
.status-new{background:rgba(255,194,60,.22);color:#946800}
.status-confirmed{background:rgba(23,176,168,.16);color:var(--teal-dark)}
.empty-note{color:var(--slate);background:var(--cloud);border-radius:12px;padding:22px;text-align:center}

/* Lightweight modal (class sign-up request) */
.modal-overlay{position:fixed;inset:0;background:rgba(31,42,55,.55);display:none;align-items:flex-start;
  justify-content:center;padding:40px 16px;z-index:300;overflow-y:auto}
.modal-overlay.open{display:flex}
.modal{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);max-width:520px;width:100%;padding:30px}
.modal h3{font-size:1.4rem;margin-bottom:6px}
.modal .modal-close{float:right;background:none;border:0;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--slate)}
.checkbox-row{display:flex;gap:12px;align-items:flex-start;margin:16px 0}
.checkbox-row input{width:20px;height:20px;margin-top:3px;flex:none}
.checkbox-row label{font-size:.95rem;color:var(--slate)}
.waiver-box{max-height:240px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;
  padding:18px 20px;background:var(--cloud);font-size:.92rem;color:var(--slate);margin-bottom:8px}
.waiver-box p{margin-bottom:10px}

/* Honeypot anti-spam field — hidden from people, tempting to bots */
.hp{position:absolute!important;left:-9999px!important;top:-9999px!important;
  width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* ---------- Ways to Pay (pricing.html) ---------- */
.pay-primary{display:grid;grid-template-columns:1.4fr 1fr;gap:34px;align-items:center;
  background:#fff;border:2px solid var(--teal);border-radius:var(--radius);
  padding:34px;box-shadow:var(--shadow);margin-bottom:34px}
@media(max-width:760px){.pay-primary{grid-template-columns:1fr;gap:24px;text-align:center;padding:26px}}
.pay-primary h3{font-size:1.5rem;margin-bottom:10px}
.pay-primary p{color:var(--slate);margin-bottom:18px}
.pay-methods{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
@media(max-width:760px){.pay-methods{justify-content:center}}
.pay-chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-head);
  font-weight:600;font-size:.85rem;color:var(--ink);background:var(--cloud);
  border:1px solid var(--line);border-radius:999px;padding:7px 14px}
.pay-qr{text-align:center}
.pay-qr img{width:170px;height:170px;border:1px solid var(--line);border-radius:14px;
  padding:8px;background:#fff;margin:0 auto}
.pay-qr span{display:block;margin-top:8px;font-size:.82rem;color:var(--slate)}
.pay-secure{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:var(--teal-dark);
  font-family:var(--font-head);font-weight:600;margin-top:4px}
.pay-p2p-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:860px){.pay-p2p-grid{grid-template-columns:1fr}}
.pay-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;box-shadow:var(--shadow-sm);text-align:center;display:flex;
  flex-direction:column;align-items:center}
.pay-card h4{font-size:1.2rem;margin-bottom:4px}
.pay-card .handle{font-family:var(--font-head);font-weight:600;color:var(--teal-dark);
  font-size:1rem;margin-bottom:14px;word-break:break-word}
.pay-card .handle.stack span{display:block}
.pay-card img.qr{width:150px;height:150px;border:1px solid var(--line);border-radius:12px;
  padding:6px;background:#fff;margin-bottom:16px}
.pay-card .qr-fallback{width:150px;height:150px;border:1px dashed var(--line);border-radius:12px;
  display:grid;place-items:center;color:var(--slate);font-size:.8rem;padding:10px;margin-bottom:16px}
.pay-card .btn{width:100%;justify-content:center}
.pay-steps{counter-reset:paystep;list-style:none;margin:14px 0 0;padding:0}
.pay-steps li{position:relative;padding:10px 0 10px 42px;border-bottom:1px dashed var(--line);
  color:var(--slate);text-align:left}
.pay-steps li:last-child{border-bottom:0}
.pay-steps li::before{counter-increment:paystep;content:counter(paystep);position:absolute;left:0;top:8px;
  width:28px;height:28px;border-radius:50%;background:var(--teal);color:#fff;
  font-family:var(--font-head);font-weight:700;font-size:.9rem;display:grid;place-items:center}

/* ============================================================
   Drifting cloud atmosphere — hero & page banners
   Two soft, blurred cloud layers drift slowly in opposite
   directions. Pure CSS (radial-gradient blobs + blur), no
   images, no JS. Speed halts automatically for users who prefer
   reduced motion (see the existing @media rule below).
   ============================================================ */
.hero,.page-banner{position:relative;overflow:hidden}
.hero::before,.hero::after,.page-banner::before,.page-banner::after{
  content:"";position:absolute;inset:-20% -30%;z-index:0;pointer-events:none;
  filter:blur(20px);will-change:transform;
}
.hero::before,.page-banner::before{
  background-image:
    radial-gradient(ellipse 260px 90px at 8% 24%, rgba(255,255,255,.7), transparent 70%),
    radial-gradient(ellipse 360px 120px at 38% 8%, rgba(255,255,255,.55), transparent 70%),
    radial-gradient(ellipse 300px 100px at 68% 32%, rgba(255,255,255,.6), transparent 70%),
    radial-gradient(ellipse 380px 120px at 94% 14%, rgba(255,255,255,.45), transparent 70%);
  animation:cloud-drift-a 52s ease-in-out infinite alternate;
  opacity:.9;
}
.hero::after,.page-banner::after{
  background-image:
    radial-gradient(ellipse 220px 70px at 22% 74%, rgba(255,255,255,.45), transparent 70%),
    radial-gradient(ellipse 320px 95px at 58% 88%, rgba(255,255,255,.35), transparent 70%),
    radial-gradient(ellipse 260px 80px at 86% 70%, rgba(255,255,255,.42), transparent 70%);
  animation:cloud-drift-b 68s ease-in-out infinite alternate;
  opacity:.7;
}
@keyframes cloud-drift-a{from{transform:translateX(-4%)}to{transform:translateX(4%)}}
@keyframes cloud-drift-b{from{transform:translateX(5%)}to{transform:translateX(-5%)}}
.hero>.container,.page-banner>.container{position:relative;z-index:1}

/* ---------- Rating trust chip ---------- */
.rating-chip{display:inline-flex;align-items:center;gap:9px;background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:8px 16px 8px 14px;
  box-shadow:var(--shadow-sm);font-family:var(--font-head);font-weight:600;
  font-size:.88rem;color:var(--ink);transition:transform .15s,box-shadow .15s}
a.rating-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow);color:var(--ink)}
.rating-chip .stars{color:var(--sunshine);letter-spacing:1px;font-size:.95rem}

/* ---------- Pull-quote (used in page banners) ---------- */
.pull-quote{font-family:var(--font-body);font-style:italic;font-weight:500;
  font-size:1.28rem;color:var(--ink);max-width:620px;margin:20px auto 0;
  position:relative;padding:0 6px}
.pull-quote::before{content:"\201C";font-family:Georgia,"Times New Roman",serif;
  font-size:3.2rem;font-style:normal;color:var(--coral);opacity:.4;
  position:absolute;left:-28px;top:-16px;line-height:1}
@media(max-width:600px){.pull-quote::before{display:none}}

/* ---------- Featured testimonial (proof section) ---------- */
.pull-testimonial{position:relative;max-width:760px;margin:0 auto;text-align:center}
.pull-testimonial .mark{display:block;font-family:Georgia,"Times New Roman",serif;
  font-size:3.6rem;line-height:1;color:var(--coral);opacity:.28;margin-bottom:2px}
.pull-testimonial p{font-family:var(--font-head);font-weight:500;
  font-size:clamp(1.25rem,2.6vw,1.85rem);line-height:1.45;color:var(--ink)}
.pull-testimonial .who{margin-top:22px;font-family:var(--font-head);
  font-weight:600;color:var(--teal-dark);display:flex;align-items:center;
  justify-content:center;gap:10px}
.pull-testimonial .who .stars{color:var(--sunshine);letter-spacing:1px}

/* ---------- Floating stat/quote badge on an image (variant of .hero-badge) ---------- */
.float-badge{position:absolute;background:#fff;border-radius:16px;padding:16px 20px;
  box-shadow:var(--shadow);max-width:230px}
.float-badge strong{font-family:var(--font-head);display:block;margin-bottom:2px}
.float-badge span{color:var(--slate);font-size:.88rem}
.float-badge--br{bottom:-20px;right:-20px}
@media(max-width:640px){.float-badge{position:static;margin-top:-16px;margin-left:16px;max-width:none}}

/* ---------- Wide banner image (stacked-center section variant) ---------- */
.banner-image{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;
  max-height:380px;object-fit:cover;margin-top:36px}

/* ---------- Card polish: soft gradient edge on hover ---------- */
.card{position:relative;overflow:hidden}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;
  padding:1.5px;background:linear-gradient(135deg,var(--coral),var(--teal) 60%,var(--sunshine));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .25s;pointer-events:none}
.card:hover::after{opacity:1}
