/* ═══════════════════════════════════════════════════════
   Harvard English Academy — Smart Contact Bar v3.1.1
   Liquid Glass White · Bricolage Grotesque · Plus Jakarta
═══════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700;12..96,800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

/* ── Theme isolation reset ── */
#hea-bar *,
#hea-modal *,
#hea-bar *::before,
#hea-modal *::before,
#hea-bar *::after,
#hea-modal *::after {
  box-sizing:border-box!important;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
#hea-modal input,
#hea-modal textarea,
#hea-modal button,
#hea-modal select {
  font-family:var(--hea-fb)!important;
  font-size:14px!important;
  line-height:1.4!important;
  margin:0!important;
  border-radius:14px!important;
  box-shadow:none;
}
#hea-modal input[type="text"],
#hea-modal input[type="tel"],
#hea-modal input[type="email"],
#hea-modal textarea {
  -webkit-appearance:none!important;
  appearance:none!important;
  background-color:rgba(255,255,255,.55)!important;
}
#hea-modal label {
  margin:0!important;
  padding:0!important;
  float:none!important;
  display:flex!important;
}

:root {
  --hea-a:       #e85d04;
  --hea-a2:      #f48c06;
  --hea-rgb:     232,93,4;
  --hea-rgb2:    244,140,6;
  --hea-call:    #16a34a;
  --hea-wa:      #25d366;
  --hea-text:    #0f172a;
  --hea-text2:   #334155;
  --hea-sub:     #64748b;
  --hea-muted:   #94a3b8;
  --hea-glass:   rgba(255,255,255,.62);
  --hea-glass2:  rgba(255,255,255,.70);
  --hea-border:  rgba(255,255,255,.82);
  --hea-blur:    blur(32px) saturate(200%);
  --hea-blur2:   blur(20px) saturate(180%);
  --hea-fh:      'Bricolage Grotesque', sans-serif;
  --hea-fb:      'Plus Jakarta Sans', sans-serif;
  --hea-spring:  cubic-bezier(.34,1.56,.64,1);
  --hea-out:     cubic-bezier(.16,1,.3,1);
}

/* ══════════════════════════════════
   BAR
══════════════════════════════════ */
.hea-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 9998;
  padding: 10px 10px 12px;
  background: var(--hea-glass);
  backdrop-filter: var(--hea-blur);
  -webkit-backdrop-filter: var(--hea-blur);
  border-top: 1.5px solid var(--hea-border);
  box-shadow: 0 -12px 48px rgba(0,0,0,.1), inset 0 1px 0 rgba(255,255,255,.75);
  transform: translateY(calc(100% + 4px));
  transition: transform .6s var(--hea-out);
  will-change: transform;
}

/* Animated orange top line */
.hea-bar::before {
  content: '';
  position: absolute;
  top: -2px; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg,
    transparent 0%, rgba(var(--hea-rgb),.5) 15%,
    rgba(var(--hea-rgb),1) 35%, rgba(var(--hea-rgb2),1) 50%,
    rgba(var(--hea-rgb),1) 65%, rgba(var(--hea-rgb),.5) 85%, transparent 100%);
  background-size: 300% 100%;
  animation: hea-flow 6s linear infinite;
}
@keyframes hea-flow { from{background-position:300% 0} to{background-position:-300% 0} }

/* Noise */
.hea-bar::after {
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");
  opacity:.5;
}

.hea-bar.hea-visible { transform: translateY(0); }

/* ── bottom-right position variant ── */
.hea-bar--bottom-right {
  left: auto; right: 16px; bottom: 16px;
  max-width: 360px;
  border-radius: 24px;
  border: 1.5px solid var(--hea-border);
}
.hea-bar--bottom-right::before { left: 10%; right: 10%; border-radius: 1px; }

/* Orbs */
.hea-orb { position:absolute;border-radius:50%;pointer-events:none;filter:blur(22px);opacity:.25; }
.hea-orb-1 { width:100px;height:50px;background:radial-gradient(circle,rgba(var(--hea-rgb),.7),transparent 70%);left:20%;top:-8px;animation:hea-drift 8s ease-in-out infinite; }
.hea-orb-2 { width:70px;height:36px;background:radial-gradient(circle,rgba(37,211,102,.6),transparent 70%);right:22%;top:-6px;animation:hea-drift 11s ease-in-out infinite reverse; }
@keyframes hea-drift { 0%,100%{transform:translateX(0)} 50%{transform:translateX(18px)} }

/* Status badge */
.hea-badge {
  position:absolute; top:-20px; left:50%; transform:translateX(-50%);
  display:flex; align-items:center; gap:6px;
  background:var(--hea-glass); backdrop-filter:var(--hea-blur2);
  -webkit-backdrop-filter:var(--hea-blur2);
  border:1.5px solid var(--hea-border); border-radius:999px;
  padding:4px 13px;
  box-shadow:0 4px 16px rgba(0,0,0,.09), inset 0 1px 0 rgba(255,255,255,.9);
  font-family:var(--hea-fb); font-size:11px; font-weight:600; color:var(--hea-text2);
  white-space:nowrap; z-index:2;
}
.hea-badge-dot {
  width:7px;height:7px;border-radius:50%;background:#22c55e;
  border:1.5px solid rgba(255,255,255,.9);
  animation:hea-pulse 2.2s ease-in-out infinite;
}
.hea-badge-dot.hea-offline { background:#f87171; animation:none; }
@keyframes hea-pulse { 0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.6)} 50%{box-shadow:0 0 0 5px rgba(34,197,94,0)} }

/* ── Pills row ── */
.hea-pills { position:relative;z-index:1;display:flex;gap:8px; }

.hea-pill {
  flex:1; display:flex; align-items:center; gap:10px;
  padding:10px 13px; border-radius:18px;
  background:var(--hea-glass); backdrop-filter:var(--hea-blur2); -webkit-backdrop-filter:var(--hea-blur2);
  border:1.5px solid var(--hea-border);
  box-shadow:0 4px 16px rgba(0,0,0,.07), inset 0 1px 0 rgba(255,255,255,.95);
  text-decoration:none; cursor:pointer; font-family:var(--hea-fb);
  overflow:hidden; position:relative;
  -webkit-tap-highlight-color:transparent; outline:none;
  transition: transform .22s var(--hea-spring), box-shadow .25s;
}
.hea-pill-bg {
  position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .25s;
}
.hea-pill--call .hea-pill-bg  { background:radial-gradient(ellipse at 30% 50%,rgba(34,197,94,.16),transparent 70%); }
.hea-pill--enq .hea-pill-bg   { background:radial-gradient(ellipse at 30% 50%,rgba(var(--hea-rgb),.16),transparent 70%); }
.hea-pill--wa .hea-pill-bg    { background:radial-gradient(ellipse at 30% 50%,rgba(37,211,102,.16),transparent 70%); }
.hea-pill:hover .hea-pill-bg, .hea-pill:focus-visible .hea-pill-bg { opacity:1; }
.hea-pill:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.95); }
.hea-pill:active { transform:scale(.94); }
.hea-pill:focus-visible { outline:2.5px solid rgba(var(--hea-rgb),.6); outline-offset:2px; }

.hea-pill-icon {
  width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.78);border:1.5px solid rgba(255,255,255,.95);
  box-shadow:0 3px 10px rgba(0,0,0,.1), inset 0 1px 0 #fff;
  flex-shrink:0;position:relative;z-index:1;
  transition:transform .3s var(--hea-spring), box-shadow .3s;
}
.hea-pill-icon svg { width:16px;height:16px; }
.hea-pill--call .hea-pill-icon  { color:var(--hea-call); }
.hea-pill--enq  .hea-pill-icon  { color:var(--hea-a); }
.hea-pill--wa   .hea-pill-icon  { color:var(--hea-call); }
.hea-pill--wa   .hea-pill-icon svg { width:17px;height:17px; }
.hea-pill:hover .hea-pill-icon  { transform:translateY(-4px) scale(1.12); }
.hea-pill--call:hover .hea-pill-icon { box-shadow:0 8px 22px rgba(34,197,94,.45), inset 0 1px 0 #fff; }
.hea-pill--enq:hover  .hea-pill-icon { box-shadow:0 8px 22px rgba(var(--hea-rgb),.45), inset 0 1px 0 #fff; }
.hea-pill--wa:hover   .hea-pill-icon { box-shadow:0 8px 22px rgba(37,211,102,.45), inset 0 1px 0 #fff; }

.hea-pill-text { display:flex;flex-direction:column;gap:1px;flex:1;position:relative;z-index:1; }
.hea-pill-label { font-family:var(--hea-fh);font-size:13px;font-weight:700;color:var(--hea-text);letter-spacing:-.01em;line-height:1.1;white-space:nowrap; }
.hea-pill-sub   { font-family:var(--hea-fb);font-size:10.5px;font-weight:500;color:var(--hea-sub);white-space:nowrap; }

.hea-pill-arrow {
  width:13px;height:13px;color:var(--hea-muted);position:relative;z-index:1;
  opacity:0;transform:translateX(-4px);
  transition:opacity .2s, transform .2s var(--hea-spring);
  flex-shrink:0;
}
.hea-pill:hover .hea-pill-arrow { opacity:1;transform:translateX(0); }

/* Ripple */
.hea-ripple {
  position:absolute;border-radius:50%;background:rgba(var(--hea-rgb),.18);
  transform:scale(0);animation:hea-ripple .6s linear forwards;pointer-events:none;
}
@keyframes hea-ripple { to{transform:scale(6);opacity:0} }

/* ══════════════════════════════════
   MODAL
══════════════════════════════════ */
.hea-modal { display:none;position:fixed;inset:0;z-index:10001;align-items:flex-end;justify-content:center; }
.hea-modal.hea-open { display:flex; }

.hea-backdrop {
  position:absolute;inset:0;
  background:rgba(248,250,252,.58);
  backdrop-filter:blur(12px) saturate(160%); -webkit-backdrop-filter:blur(12px) saturate(160%);
  animation:hea-bdin .25s ease;
}
@keyframes hea-bdin { from{opacity:0} to{opacity:1} }

.hea-sheet {
  position:relative;z-index:1;
  width:100%;max-width:500px;max-height:95vh;
  overflow-y:auto;overflow-x:hidden;
  scrollbar-width:thin;scrollbar-color:rgba(var(--hea-rgb),.25) transparent;
  background:var(--hea-glass2);
  backdrop-filter:var(--hea-blur); -webkit-backdrop-filter:var(--hea-blur);
  border-radius:32px 32px 0 0;
  border:1.5px solid var(--hea-border);border-bottom:none;
  padding:0 0 44px;
  box-shadow:0 -32px 80px rgba(0,0,0,.14), 0 -2px 0 rgba(255,255,255,.95), inset 0 1px 0 rgba(255,255,255,.8);
  animation:hea-up .45s var(--hea-out) forwards;
}
.hea-sheet::-webkit-scrollbar { width:3px; }
.hea-sheet::-webkit-scrollbar-thumb { background:rgba(var(--hea-rgb),.3);border-radius:3px; }
@keyframes hea-up { from{opacity:0;transform:translateY(60px)} to{opacity:1;transform:translateY(0)} }

/* Blobs */
.hea-blob { position:absolute;border-radius:50%;pointer-events:none;opacity:.1;filter:blur(28px); }
.hea-blob-1 { width:180px;height:110px;background:radial-gradient(circle,rgba(var(--hea-rgb),1),transparent 60%);top:-20px;right:-20px; }
.hea-blob-2 { width:130px;height:90px;background:radial-gradient(circle,#22d3ee,transparent 60%);top:30px;left:-15px; }

/* Drag handle */
.hea-drag-wrap { padding:14px 0 4px;display:flex;justify-content:center;cursor:grab; }
.hea-drag-bar { width:44px;height:5px;background:rgba(148,163,184,.3);border-radius:3px;transition:all .2s; }
.hea-drag-wrap:hover .hea-drag-bar { width:56px;background:rgba(var(--hea-rgb),.35); }

/* Close */
.hea-close {
  position:absolute;top:14px;right:16px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.72);backdrop-filter:blur(8px);
  border:1.5px solid rgba(255,255,255,.9);
  box-shadow:0 2px 10px rgba(0,0,0,.1), inset 0 1px 0 #fff;
  color:var(--hea-sub);display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .2s;z-index:10;
}
.hea-close svg { width:15px;height:15px; }
.hea-close:hover { background:rgba(255,255,255,.92);color:var(--hea-text);transform:rotate(90deg) scale(1.06); }

/* Head */
.hea-head { padding:20px 24px 0;position:relative;z-index:1; }

.hea-eyebrow {
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(var(--hea-rgb),.1);border:1px solid rgba(var(--hea-rgb),.22);
  border-radius:999px;padding:4px 12px;
  font-family:var(--hea-fb);font-size:11px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--hea-a);
  margin-bottom:10px;
}
.hea-eyebrow svg { width:11px;height:11px; }

.hea-head h2 {
  font-family:var(--hea-fh);font-size:27px;font-weight:800;
  color:var(--hea-text);letter-spacing:-.03em;line-height:1.1;
  margin:0 0 6px;
}
.hea-sub {
  font-family:var(--hea-fb);font-size:13.5px;color:var(--hea-sub);
  margin:0 0 14px;line-height:1.55;
}

/* Trust pills */
.hea-trust { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px; }
.hea-trust-item {
  display:inline-flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.88);
  border-radius:999px;padding:4px 10px;
  font-family:var(--hea-fb);font-size:11px;font-weight:600;color:var(--hea-sub);
  box-shadow:0 1px 4px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.8);
}
.hea-trust-item svg { width:10px;height:10px;color:var(--hea-call);flex-shrink:0; }

/* Progress */
.hea-progress { display:flex;align-items:center;gap:10px;padding:0 24px 16px; }
.hea-progress-track { flex:1;height:5px;background:rgba(148,163,184,.2);border-radius:99px;overflow:hidden; }
.hea-progress-fill {
  height:100%;
  background:linear-gradient(90deg,var(--hea-a2),var(--hea-a));
  border-radius:99px;width:50%;
  transition:width .4s var(--hea-out);position:relative;overflow:hidden;
}
.hea-progress-fill::after {
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  animation:hea-shine 2s ease-in-out infinite;
}
@keyframes hea-shine { from{transform:translateX(-100%)} to{transform:translateX(300%)} }
.hea-progress-lbl { font-family:var(--hea-fb);font-size:11px;font-weight:600;color:var(--hea-muted);white-space:nowrap; }

/* Steps */
.hea-step { padding:0 24px 4px!important;animation:hea-step-in .35s var(--hea-out) both; }
.hea-hidden { display:none!important; }
.hea-step-back { animation:hea-step-back .35s var(--hea-out) both; }
@keyframes hea-step-in { from{opacity:0;transform:translateX(22px)} to{opacity:1;transform:translateX(0)} }
@keyframes hea-step-back { from{opacity:0;transform:translateX(-22px)} to{opacity:1;transform:translateX(0)} }

/* Grid */
.hea-grid { display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important; }
.hea-span2 { grid-column:1/-1!important; }
.hea-field { display:flex!important;flex-direction:column!important;gap:6px!important;margin:0!important;padding:0!important; }

/* Labels */
.hea-label { font-family:var(--hea-fb)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase!important;color:var(--hea-muted)!important;display:flex!important;align-items:center!important;gap:4px!important;margin:0!important;padding:0!important;line-height:1.3!important; }
.hea-req { color:var(--hea-a)!important; }
.hea-opt { font-weight:400!important;text-transform:none!important;letter-spacing:0!important;font-size:11px!important;opacity:.7!important; }

/* Input wrapper */
.hea-iw { position:relative!important;display:flex!important;align-items:stretch!important; }
.hea-ii { position:absolute!important;left:13px!important;top:50%!important;transform:translateY(-50%)!important;color:var(--hea-muted)!important;pointer-events:none!important;display:flex!important;align-items:center!important;transition:color .2s!important;z-index:2!important; }
.hea-ii svg { width:15px!important;height:15px!important; }
.hea-iw:focus-within .hea-ii { color:var(--hea-a)!important; }
.hea-prefix { position:absolute!important;left:13px!important;top:50%!important;transform:translateY(-50%)!important;font-family:var(--hea-fb)!important;font-size:14px!important;font-weight:600!important;color:var(--hea-sub)!important;pointer-events:none!important;z-index:2!important;line-height:1!important; }
.hea-tick { position:absolute!important;right:12px!important;top:50%!important;transform:translateY(-50%) scale(0)!important;color:#16a34a!important;opacity:0!important;transition:transform .25s var(--hea-spring),opacity .2s!important;z-index:2!important; }
.hea-tick svg { width:14px!important;height:14px!important; }
.hea-iw.hea-valid .hea-tick { transform:translateY(-50%) scale(1)!important;opacity:1!important; }

.hea-input {
  width:100%!important;padding:13px 40px 13px 40px!important;box-sizing:border-box!important;
  background:rgba(255,255,255,.55)!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;
  border:1.5px solid rgba(255,255,255,.82)!important;border-radius:14px!important;
  box-shadow:0 2px 12px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.95)!important;
  font-family:var(--hea-fb)!important;font-size:14px!important;font-weight:500!important;color:var(--hea-text)!important;
  outline:none!important;-webkit-appearance:none!important;caret-color:var(--hea-a)!important;
  transition:border-color .2s, box-shadow .25s, background .2s!important;
  height:auto!important;min-height:46px!important;line-height:1.4!important;margin:0!important;
  letter-spacing:normal!important;text-transform:none!important;text-indent:0!important;
}
.hea-input::placeholder { color:rgba(148,163,184,.75)!important;font-weight:400!important;opacity:1!important; }
.hea-input:focus {
  border-color:rgba(var(--hea-rgb),.5)!important;background:rgba(255,255,255,.82)!important;
  box-shadow:0 0 0 4px rgba(var(--hea-rgb),.1),0 4px 20px rgba(var(--hea-rgb),.08), inset 0 1px 0 rgba(255,255,255,.95)!important;
}
.hea-input.hea-err { border-color:rgba(239,68,68,.55)!important;box-shadow:0 0 0 4px rgba(239,68,68,.1), inset 0 1px 0 rgba(255,255,255,.95)!important;animation:hea-shake .35s ease!important; }
@keyframes hea-shake { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-6px)} 60%{transform:translateX(6px)} }
.hea-with-prefix { padding-left:42px!important; }

.hea-ta { resize:vertical!important;min-height:72px!important;padding:12px 14px 12px 40px!important;line-height:1.55!important; }
.hea-ta-wrap .hea-ii { top:15px!important;transform:none!important; }
.hea-charcount { position:absolute!important;bottom:10px!important;right:12px!important;font-family:var(--hea-fb)!important;font-size:11px!important;font-weight:500!important;color:var(--hea-muted)!important;pointer-events:none!important; }

.hea-err-msg { font-family:var(--hea-fb);font-size:11.5px;font-weight:600;color:#dc2626;min-height:16px;opacity:0;transform:translateY(-4px);transition:opacity .2s,transform .2s; }
.hea-err-msg.show { opacity:1;transform:translateY(0); }
.hea-err-msg::before { content:'⚠ ';font-size:10px; }

/* Section labels */
.hea-sec-lbl { font-family:var(--hea-fb);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--hea-muted);margin:16px 0 8px; }

/* Chips */
.hea-chips { display:flex;flex-wrap:wrap;gap:7px;margin-bottom:4px; }
.hea-chip {
  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;
  background:rgba(255,255,255,.52);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1.5px solid rgba(255,255,255,.78);border-radius:999px;
  box-shadow:0 2px 8px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.88);
  font-family:var(--hea-fb);font-size:12.5px;font-weight:600;color:var(--hea-sub);
  cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;
  transition:all .18s;
}
.hea-chip input { display:none; }
.hea-chip-check {
  width:16px;height:16px;border-radius:50%;
  background:rgba(148,163,184,.2);border:1.5px solid rgba(148,163,184,.3);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .18s;
}
.hea-chip-check svg { width:8px;height:8px;opacity:0;color:#fff;transition:opacity .15s; }
.hea-chip:hover { border-color:rgba(var(--hea-rgb),.45);color:var(--hea-text2);background:rgba(255,255,255,.72);transform:translateY(-1px);box-shadow:0 6px 18px rgba(var(--hea-rgb),.15), inset 0 1px 0 #fff; }
.hea-chip.on { border-color:rgba(var(--hea-rgb),.55);color:var(--hea-a);background:rgba(254,215,170,.48);box-shadow:0 4px 16px rgba(var(--hea-rgb),.22), inset 0 1px 0 rgba(255,255,255,.9); }
.hea-chip.on .hea-chip-check { background:var(--hea-a);border-color:var(--hea-a);box-shadow:0 0 8px rgba(var(--hea-rgb),.4); }
.hea-chip.on .hea-chip-check svg { opacity:1; }

/* Mode cards */
.hea-mode-row { display:grid;grid-template-columns:repeat(3,1fr);gap:8px; }
.hea-mode-card {
  display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;
  background:rgba(255,255,255,.52);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1.5px solid rgba(255,255,255,.78);border-radius:16px;
  box-shadow:0 2px 8px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.9);
  cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;
  transition:all .18s;
}
.hea-mode-card input { display:none; }
.hea-mode-ico { font-size:22px;line-height:1; }
.hea-mode-lbl { font-family:var(--hea-fb);font-size:12px;font-weight:600;color:var(--hea-sub); }
.hea-mode-card:hover { border-color:rgba(var(--hea-rgb),.4);background:rgba(255,255,255,.72);transform:translateY(-2px);box-shadow:0 8px 20px rgba(var(--hea-rgb),.14), inset 0 1px 0 #fff; }
.hea-mode-card.on { border-color:rgba(var(--hea-rgb),.55);background:rgba(254,215,170,.48);box-shadow:0 6px 18px rgba(var(--hea-rgb),.22), inset 0 1px 0 rgba(255,255,255,.9); }
.hea-mode-card.on .hea-mode-lbl { color:var(--hea-a);font-weight:700; }

/* Time slots */
.hea-times { display:grid;grid-template-columns:1fr 1fr;gap:7px; }
.hea-time {
  display:flex;align-items:center;justify-content:center;padding:10px 8px;
  background:rgba(255,255,255,.52);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1.5px solid rgba(255,255,255,.78);border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.9);
  font-family:var(--hea-fb);font-size:12px;font-weight:600;color:var(--hea-sub);
  text-align:center;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;
  transition:all .18s;
}
.hea-time input { display:none; }
.hea-time:hover { border-color:rgba(var(--hea-rgb),.4);color:var(--hea-text2);transform:translateY(-1px);box-shadow:0 5px 16px rgba(var(--hea-rgb),.12), inset 0 1px 0 #fff; }
.hea-time.on { border-color:rgba(var(--hea-rgb),.55);color:var(--hea-a);background:rgba(254,215,170,.48);font-weight:700;box-shadow:0 4px 14px rgba(var(--hea-rgb),.2), inset 0 1px 0 rgba(255,255,255,.9); }

/* ── Buttons ── */
.hea-btn-next {
  width:100%;margin-top:18px;padding:15px 22px;
  border-radius:16px;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:9px;
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#fb923c 0%,var(--hea-a) 50%,#c2410c 100%);
  color:#fff;font-family:var(--hea-fh);font-size:15px;font-weight:700;letter-spacing:.02em;
  box-shadow:0 6px 28px rgba(var(--hea-rgb),.42), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .2s var(--hea-spring), box-shadow .25s;
}
.hea-btn-next::before { content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 55%);pointer-events:none; }
.hea-btn-next::after { content:'';position:absolute;top:-50%;left:-100%;width:50%;height:200%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-15deg);animation:hea-shimmer 3s ease-in-out infinite; }
@keyframes hea-shimmer { 0%{left:-100%} 55%{left:160%} 100%{left:160%} }
.hea-btn-next svg { width:16px;height:16px;flex-shrink:0;position:relative;z-index:1;transition:transform .2s var(--hea-spring); }
.hea-btn-next span { position:relative;z-index:1; }
.hea-btn-next:hover { transform:translateY(-2px);box-shadow:0 12px 38px rgba(var(--hea-rgb),.55), inset 0 1px 0 rgba(255,255,255,.22); }
.hea-btn-next:hover svg { transform:translateX(3px); }
.hea-btn-next:active { transform:scale(.97); }

.hea-s2-actions { display:flex;gap:10px;margin-top:18px; }

.hea-back-btn {
  padding:14px 18px;border-radius:16px;
  background:rgba(255,255,255,.62);backdrop-filter:blur(8px);
  border:1.5px solid rgba(255,255,255,.82);
  box-shadow:0 2px 10px rgba(0,0,0,.08), inset 0 1px 0 rgba(255,255,255,.9);
  font-family:var(--hea-fb);font-size:14px;font-weight:600;color:var(--hea-sub);
  cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;
  transition:all .2s;
}
.hea-back-btn:hover { background:rgba(255,255,255,.88);color:var(--hea-text);transform:translateX(-2px); }

.hea-submit-btn {
  flex:1;padding:15px 20px;border-radius:16px;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:9px;
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#fb923c 0%,var(--hea-a) 50%,#c2410c 100%);
  color:#fff;font-family:var(--hea-fh);font-size:15px;font-weight:700;letter-spacing:.02em;
  box-shadow:0 6px 28px rgba(var(--hea-rgb),.42), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .2s var(--hea-spring),box-shadow .25s,opacity .2s;
}
.hea-submit-btn::before { content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 55%); }
.hea-submit-btn::after { content:'';position:absolute;top:-50%;left:-100%;width:50%;height:200%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-15deg);animation:hea-shimmer 3.5s ease-in-out 1s infinite; }
.hea-submit-txt, .hea-submit-arr { position:relative;z-index:1; }
.hea-submit-arr { width:16px;height:16px;flex-shrink:0;transition:transform .2s var(--hea-spring); }
.hea-submit-btn:hover { transform:translateY(-2px);box-shadow:0 12px 38px rgba(var(--hea-rgb),.55), inset 0 1px 0 rgba(255,255,255,.22); }
.hea-submit-btn:hover .hea-submit-arr { transform:translate(3px,-2px); }
.hea-submit-btn:active { transform:scale(.97); }
.hea-submit-btn:disabled { opacity:.65;cursor:not-allowed;transform:none; }
.hea-submit-btn:disabled::after { display:none; }

.hea-spinner { width:17px;height:17px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;display:none;animation:hea-spin .7s linear infinite;flex-shrink:0;position:relative;z-index:1; }
@keyframes hea-spin { to{transform:rotate(360deg)} }
.hea-submit-btn.loading .hea-spinner { display:block; }
.hea-submit-btn.loading .hea-submit-txt,
.hea-submit-btn.loading .hea-submit-arr { opacity:.7; }

.hea-form-msg { margin:10px 24px 0;font-family:var(--hea-fb);font-size:13px;font-weight:600;text-align:center;min-height:0;display:flex;align-items:center;justify-content:center;gap:5px;opacity:0;transition:opacity .2s; }
.hea-form-msg.show { opacity:1; }
.hea-form-msg.ok  { color:#16a34a; }
.hea-form-msg.err { color:#dc2626; }

/* ── Success ── */
.hea-success { display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 0 4px; }
.hea-success-icon {
  width:72px;height:72px;border-radius:50%;
  background:linear-gradient(135deg,#86efac,#22c55e);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:18px;
  box-shadow:0 8px 32px rgba(34,197,94,.4), inset 0 2px 0 rgba(255,255,255,.3);
  animation:hea-pop .5s var(--hea-spring) both;
}
.hea-success-icon svg { width:32px;height:32px;color:#fff; }
@keyframes hea-pop { from{transform:scale(0) rotate(-15deg);opacity:0} to{transform:scale(1) rotate(0);opacity:1} }
.hea-success h3 { font-family:var(--hea-fh);font-size:24px;font-weight:800;color:var(--hea-text);letter-spacing:-.02em;margin:0 0 8px; }
.hea-success p { font-family:var(--hea-fb);font-size:14px;color:var(--hea-sub);margin:0 0 22px;line-height:1.55; }
.hea-success-btns { display:flex;gap:10px;flex-wrap:wrap;justify-content:center; }
.hea-call-now {
  display:inline-flex;align-items:center;gap:7px;padding:11px 20px;border-radius:14px;
  background:linear-gradient(135deg,#4ade80,#16a34a);color:#fff;
  font-family:var(--hea-fb);font-size:13px;font-weight:700;text-decoration:none;
  box-shadow:0 4px 18px rgba(22,163,74,.38);transition:transform .2s var(--hea-spring),box-shadow .2s;
}
.hea-call-now:hover { transform:translateY(-2px);box-shadow:0 8px 24px rgba(22,163,74,.5); }
.hea-close-btn {
  padding:11px 20px;border-radius:14px;
  background:rgba(255,255,255,.65);backdrop-filter:blur(8px);
  border:1.5px solid rgba(255,255,255,.85);
  box-shadow:0 2px 10px rgba(0,0,0,.08), inset 0 1px 0 #fff;
  font-family:var(--hea-fb);font-size:13px;font-weight:600;color:var(--hea-sub);cursor:pointer;
  transition:all .2s;
}
.hea-close-btn:hover { background:rgba(255,255,255,.9);color:var(--hea-text); }

/* ══════════════════════════════════
   RESPONSIVE
══════════════════════════════════ */
@media(min-width:600px){
  .hea-bar--bottom:not(.hea-bar--bottom-right){
    bottom:16px;left:50%;right:auto;
    transform:translateX(-50%) translateY(calc(100% + 30px));
    max-width:580px;border-radius:28px;
    border:1.5px solid var(--hea-border);
  }
  .hea-bar--bottom.hea-visible:not(.hea-bar--bottom-right){
    transform:translateX(-50%) translateY(0);
  }
  .hea-modal { align-items:center; }
  .hea-sheet { border-radius:32px;border:1.5px solid var(--hea-border);max-height:90vh; }
  .hea-drag-wrap { display:none; }
  .hea-head h2 { font-size:30px; }
  .hea-pill-label { font-size:14px; }
}

@media(max-width:599px){
  .hea-bar { padding:8px 8px 10px; }
  .hea-pills { gap:6px; }
  .hea-pill { padding:8px 9px;gap:7px; }
  .hea-pill-icon { width:32px;height:32px; }
  .hea-pill-icon svg { width:14px;height:14px; }
  .hea-pill-label { font-size:12px; }
  .hea-pill-sub { font-size:10px; }
  .hea-pill-arrow { display:none; }
  .hea-grid { grid-template-columns:1fr!important; }
  .hea-span2 { grid-column:auto!important; }
  .hea-mode-row { grid-template-columns:repeat(3,1fr)!important; }
  .hea-times { grid-template-columns:1fr 1fr!important; }
  .hea-head h2 { font-size:23px!important; }
  .hea-sheet { max-width:100%!important;border-radius:24px 24px 0 0!important;padding:0 0 34px!important; }
  .hea-step { padding:0 16px!important; }
  .hea-head { padding:16px 16px 0!important; }
  .hea-progress { padding:0 16px 12px!important; }
  .hea-input { font-size:16px!important;padding:12px 36px 12px 38px!important;min-height:44px!important; }
  .hea-with-prefix { padding-left:40px!important; }
  .hea-ii { left:12px!important; }
  .hea-prefix { left:12px!important;font-size:13px!important; }
  .hea-tick { right:10px!important; }
  .hea-btn-next, .hea-submit-btn { padding:14px 18px!important;font-size:14px!important; }
  .hea-trust { gap:5px!important; }
  .hea-trust-item { font-size:10px!important;padding:3px 8px!important; }
  .hea-chip { padding:7px 11px!important;font-size:12px!important; }
  .hea-sub { font-size:12.5px!important; }
}

@media(max-width:380px){
  .hea-pill-text { display:none; }
  .hea-pill { justify-content:center;padding:8px; }
}

.hea-bar.hea-hide-m { display:none!important; }
.hea-bar.hea-hide-d { display:none!important; }

body.hea-has-bar { padding-bottom:80px!important; }
@media(min-width:600px){ body.hea-has-bar { padding-bottom:20px!important; } }

/* ── Course Dropdown ── */
.hea-select-wrap { position: relative; }
.hea-select {
  appearance: none;
  -webkit-appearance: none;
  padding: 13px 42px 13px 16px !important;
  cursor: pointer;
  background: transparent !important;
  color: #1e293b;
  font-size: 14px;
  font-weight: 500;
  width: 100%;
  height: auto !important;
  line-height: 1.4;
}
.hea-select option[value=""] { color: #94a3b8; }
.hea-select-arrow {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--hea-a);
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hea-select:focus { outline: none; }
.hea-select option { background: #fff; color: #1e293b; font-size: 14px; }
