/* ==========================================================================
   HORNBILL SPA — HOMEPAGE STYLES
   ========================================================================== */

#hornbill-home a { color:inherit !important; text-decoration:none !important; }
#hornbill-home .rule { width:40px; height:1px; background:var(--oxide); border:none; margin:22px 0; }

#hornbill-home .welcome { padding:172px 0; }
#hornbill-home .welcome .wrap { display:grid; grid-template-columns:5fr 7fr; gap:96px; align-items:center; }
#hornbill-home .welcome h2 { font-size:clamp(34px,3.4vw,46px); max-width:420px; }
#hornbill-home .welcome p { margin-top:22px; max-width:400px; font-size:16px; color:#4a453c; }
#hornbill-home .welcome-link { display:inline-block; margin-top:32px; font-size:13px; font-weight:500; border-bottom:1px solid var(--ink); padding-bottom:3px; }
#hornbill-home .frame { border:1px solid var(--line); aspect-ratio:5/4; display:flex; align-items:center; justify-content:center; background:var(--stone-deep); position:relative; }
#hornbill-home .frame svg { width:62%; height:62%; }
#hornbill-home .frame-photo{ width:100%; height:100%; object-fit:cover; }
#hornbill-home .frame-caption { position:absolute; bottom:18px; left:18px; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:#6b6558; line-height:1.7; }
#hornbill-home .frame-caption strong { display:block; color:#211d18; font-weight:600; letter-spacing:0.1em; }

#hornbill-home .specialities { background:var(--ink-soft); color:var(--stone); padding:76px 0 84px; }
#hornbill-home .specialities-head { display:flex; align-items:flex-end; justify-content:space-between; gap:48px; padding-bottom:24px; margin-bottom:46px; border-bottom:1px solid var(--line-on-dark); }
#hornbill-home .specialities-head p { max-width:390px; font-family:'Fraunces',serif; font-size:22px; font-weight:360; line-height:1.3; color:rgba(241,228,204,0.9); }
#hornbill-home .specialities-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:28px; }
#hornbill-home .speciality-item { display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center; }
#hornbill-home .speciality-icon { width:44px; height:44px; color:var(--gold-1); opacity:0.92; }
#hornbill-home .speciality-icon * { vector-effect:non-scaling-stroke; stroke-linecap:round; stroke-linejoin:round; }
#hornbill-home .speciality-label { max-width:130px; font-size:12.5px; line-height:1.45; color:rgba(241,228,204,0.72); }

#hornbill-home .experiences { background:var(--stone-deep); color:var(--ink); padding:172px 0; }
#hornbill-home .exp-head { max-width:640px; margin-bottom:88px; }
#hornbill-home .exp-head .eyebrow { color:var(--oxide); display:block; }
#hornbill-home .exp-head h2 { font-size:clamp(32px,3.2vw,42px); margin-top:18px; color:var(--ink); }
#hornbill-home .exp-head .exp-intro{ margin-top:20px; max-width:640px; font-size:15.5px; color:#6b6558; line-height:1.7; }
#hornbill-home .treatment-list { border-top:1px solid var(--line); }
#hornbill-home .treatment-row { border-bottom:1px solid var(--line); overflow:hidden; cursor:pointer; }
#hornbill-home .treatment-row .row-head { display:grid; grid-template-columns:56px 1fr auto; align-items:center; gap:32px; padding:34px 14px; margin:0 -14px; transition:transform .3s ease, background-color .3s ease; }
#hornbill-home .treatment-row:hover .row-head { transform:translateX(10px); background-color:rgba(140,106,74,0.07); }
#hornbill-home .treatment-row .idx { font-family:'Fraunces',serif; font-size:15px; color:var(--gold-1); }
#hornbill-home .treatment-row .title-col { display:flex; flex-direction:column; gap:7px; }
#hornbill-home .treatment-row h3 { font-family:'Fraunces',serif; font-weight:380; font-size:clamp(22px,2.2vw,28px); color:var(--ink); }
#hornbill-home .treatment-row .treatment-oneline{ display:block; max-width:520px; font-size:13.5px; color:#6b6558; line-height:1.6; margin:4px 0 2px; }
#hornbill-home .treatment-row .view-details { font-size:11px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--oxide); opacity:0; transition:opacity .15s ease; }
#hornbill-home .treatment-row:hover .view-details { opacity:1; transition-delay:.3s; }
#hornbill-home .treatment-row .duration { font-size:13px; color:#6b6558; white-space:nowrap; }
#hornbill-home .treatment-row .row-expand { max-height:0; opacity:0; overflow:hidden; transition:max-height .5s cubic-bezier(.4,0,.2,1), opacity .3s ease; }
#hornbill-home .treatment-row:hover .row-expand { max-height:260px; opacity:1; }
#hornbill-home .treatment-row .row-expand-inner { position:relative; height:220px; margin:0 14px 32px; border:1px solid var(--line); overflow:hidden; }
#hornbill-home .treatment-row .row-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(0.35) brightness(0.92); transform:scale(1.06); transition:transform .6s ease, filter .5s ease; }
#hornbill-home .treatment-row:hover .row-photo { transform:scale(1); filter:grayscale(0) brightness(1); }
#hornbill-home .treatment-row .row-photo-caption { position:absolute; bottom:0; left:0; right:0; padding:20px 24px; background:linear-gradient(to top, rgba(28,20,13,0.75), transparent); opacity:0; transform:translateY(10px); transition:opacity .3s ease, transform .3s ease; }
#hornbill-home .treatment-row:hover .row-photo-caption { opacity:1; transform:translateY(0); transition-delay:.2s; }
#hornbill-home .row-photo-caption span { font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(241,228,204,0.85); }

#hornbill-home .therapists { background:var(--ink-soft); color:var(--stone); padding:172px 0; }
#hornbill-home .therapists .exp-head .eyebrow { color:var(--gold-1); }
#hornbill-home .therapists .exp-head h2 { color:var(--stone); }
#hornbill-home .therapist-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin-top:72px; }
#hornbill-home .therapist-card { display:flex; flex-direction:column; gap:16px; }
#hornbill-home .therapist-avatar {
  aspect-ratio:3/4; border:1px solid var(--line-on-dark); background:var(--ink);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  position:relative;
  transition:border-color .35s ease, transform .35s ease, box-shadow .35s ease;
}
#hornbill-home .therapist-card:hover .therapist-avatar{
  border-color:var(--gold-1);
  transform:translateY(-4px);
  box-shadow:0 12px 28px rgba(0,0,0,0.35);
}
#hornbill-home .therapist-avatar::after{
  content:"";
  position:absolute; inset:0;
  border:1px solid transparent;
  transition:border-color .35s ease, inset .35s ease;
  pointer-events:none;
}
#hornbill-home .therapist-card:hover .therapist-avatar::after{
  border-color:rgba(169,131,93,0.6);
  inset:6px;
}
#hornbill-home .therapist-avatar svg { width:38%; height:38%; }
#hornbill-home .therapist-avatar svg * { stroke:var(--gold-1); }
#hornbill-home .therapist-photo{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(0.15) brightness(0.95);
  transition:transform .5s ease, filter .5s ease;
}
#hornbill-home .therapist-card:hover .therapist-photo{
  transform:scale(1.04);
  filter:grayscale(0) brightness(1);
}
#hornbill-home .therapist-name { font-family:'Fraunces',serif; font-size:18px; color:var(--stone); }
#hornbill-home .therapist-title { font-size:12px; line-height:1.6; color:rgba(241,228,204,0.58); margin-top:2px; }

#hornbill-home .ritual { background:var(--stone); color:var(--ink); padding:172px 0; }
#hornbill-home .ritual .wrap { display:grid; grid-template-columns:6fr 6fr; gap:96px; align-items:center; }
#hornbill-home .ritual .eyebrow { color:var(--oxide); }
#hornbill-home .ritual h2 { font-size:clamp(34px,3.6vw,50px); margin-top:18px; max-width:420px; color:var(--ink); }
#hornbill-home .ritual p { margin-top:22px; max-width:420px; font-size:16px; color:#4a453c; }
#hornbill-home .meta-row { display:flex; gap:34px; margin-top:36px; }
#hornbill-home .meta-item { font-size:12.5px; color:#6b6558; display:flex; align-items:center; gap:8px; }
#hornbill-home .meta-item svg { width:16px; height:16px; opacity:0.85; }
#hornbill-home .ritual-cta { display:inline-block; margin-top:44px; font-size:13px; letter-spacing:0.04em; text-transform:uppercase; font-weight:500; padding:15px 28px; border:1px solid var(--oxide); color:var(--oxide); }
#hornbill-home .ritual-cta:hover { background:var(--oxide); color:var(--stone); }
#hornbill-home .ritual-reveal { position:relative; aspect-ratio:1/1; border:1px solid var(--line); overflow:hidden; cursor:pointer; }
#hornbill-home .ritual-reveal .photo-placeholder { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(0.5) brightness(0.65); transform:scale(1.08); opacity:0.55; transition:opacity .5s ease, transform .6s ease, filter .5s ease; }
#hornbill-home .ritual-reveal:hover .photo-placeholder { opacity:1; transform:scale(1); filter:grayscale(0) brightness(1); }
#hornbill-home .ritual-reveal .reveal-label { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:0 24px; transition:opacity .3s ease; }
#hornbill-home .ritual-reveal .reveal-label .eyebrow { color:rgba(23,32,28,0.55); }
#hornbill-home .ritual-reveal .reveal-label span.room-name { font-family:'Fraunces',serif; font-size:16px; color:rgba(241,228,204,0.85); }
#hornbill-home .ritual-reveal:hover .reveal-label { opacity:0; pointer-events:none; }
#hornbill-home .ritual-reveal .reveal-details { position:absolute; bottom:0; left:0; right:0; padding:28px; background:linear-gradient(to top, rgba(23,32,28,0.92), transparent); opacity:0; transform:translateY(14px); transition:opacity .35s ease, transform .35s ease; }
#hornbill-home .ritual-reveal:hover .reveal-details { opacity:1; transform:translateY(0); transition-delay:.2s; }
#hornbill-home .ritual-reveal .reveal-details strong { display:block; font-family:'Fraunces',serif; font-size:19px; color:var(--stone); margin-bottom:6px; }
#hornbill-home .ritual-reveal .reveal-details span { font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(241,228,204,0.55); }

#hornbill-home .faq { background:var(--ink-soft); color:var(--stone); padding:172px 0; }
#hornbill-home .faq .eyebrow { color:var(--gold-1); }
#hornbill-home .faq-head { max-width:640px; margin-bottom:64px; }
#hornbill-home .faq-head h2 { font-size:clamp(32px,3.2vw,42px); margin-top:18px; color:var(--stone); }
#hornbill-home .faq-head h2 em { font-style:italic; font-weight:380; }
#hornbill-home .faq-list { border-top:1px solid var(--line-on-dark); }
#hornbill-home .faq-item { border-bottom:1px solid var(--line-on-dark); }
#hornbill-home .faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px 0; cursor:pointer; list-style:none; font-family:'Fraunces',serif; font-size:19px; font-weight:380; color:var(--stone); }
#hornbill-home .faq-item summary::-webkit-details-marker { display:none; }
#hornbill-home .faq-item .faq-icon { font-family:'Inter',sans-serif; font-size:22px; font-weight:300; color:var(--gold-1); flex-shrink:0; line-height:1; transition:transform .3s ease; }
#hornbill-home .faq-item[open] .faq-icon { transform:rotate(45deg); }
#hornbill-home .faq-answer { padding:0 48px 30px 0; max-width:640px; font-size:15px; line-height:1.75; color:rgba(241,228,204,0.66); }

#hornbill-home .contact { background:var(--stone-deep); color:var(--ink); padding:172px 0; }
#hornbill-home .contact-map { aspect-ratio:21/6.5; border:1px solid var(--line); position:relative; overflow:hidden; margin-bottom:24px; background:rgba(255,255,255,0.12); }
#hornbill-home .contact-map iframe{ display:block; }
#hornbill-home .contact-address{ margin:16px 0 96px; font-size:13.5px; color:#6b6558; line-height:1.6; max-width:520px; }
#hornbill-home .contact-cols { display:grid; grid-template-columns:1fr 1px 1fr; gap:0; }
#hornbill-home .contact-col { padding:0 64px; }
#hornbill-home .contact-col:first-child { padding-left:0; }
#hornbill-home .contact-col:last-child { padding-right:0; }
#hornbill-home .contact .divider { background:var(--line); }
#hornbill-home .contact .eyebrow { color:var(--oxide); }
#hornbill-home .contact h2 { font-size:clamp(28px,2.6vw,36px); margin-top:18px; max-width:380px; color:var(--ink); }
#hornbill-home .contact p { margin-top:20px; max-width:380px; font-size:15.5px; color:#4a453c; }
#hornbill-home .contact-link { display:inline-block; margin-top:28px; font-size:13px; font-weight:500; color:var(--ink); border-bottom:1px solid var(--oxide); padding-bottom:3px; }
#hornbill-home .contact-list { margin-top:30px; display:flex; flex-direction:column; gap:16px; }
#hornbill-home .contact-list div { display:flex; align-items:center; gap:12px; font-size:14.5px; color:rgba(23,32,28,0.82); }
#hornbill-home .contact-list svg { width:17px; height:17px; }
#hornbill-home .contact-list svg * { stroke:var(--ink); }
#hornbill-home .book-btn { display:inline-block; margin-top:34px; background:var(--gold-grad); color:var(--ink); font-size:13px; letter-spacing:0.04em; text-transform:uppercase; font-weight:600; padding:16px 30px; }

#hornbill-home .hero-v2{ position:relative; min-height:92vh; overflow:hidden; display:flex; align-items:center; background:var(--ink); }
#hornbill-home .hero-v2-bg{ position:absolute; inset:0; }
#hornbill-home .hero-v2-bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform 6s ease; }
#hornbill-home .hero-v2-topo{ position:absolute; inset:0; width:100%; height:100%; opacity:0.5; z-index:1; }
#hornbill-home .hero-v2-overlay{ position:absolute; inset:0; z-index:1; background:linear-gradient(105deg, rgba(23,32,28,0.86) 0%, rgba(23,32,28,0.55) 50%, rgba(23,32,28,0.2) 100%); }
#hornbill-home .hero-v2-content{ position:relative; z-index:2; width:100%; max-width:var(--max); margin:0 auto; padding:0 64px; }
#hornbill-home .hero-v2-inner{ max-width:580px; }
#hornbill-home .hero-v2-eyebrow{ color:var(--gold-1); margin:0 0 4px 0 !important; display:block; }
#hornbill-home .hero-v2-claim{ font-family:'Fraunces',serif; font-weight:340; font-size:clamp(17px,1.8vw,20px); color:var(--stone); margin:0 0 4px 0 !important; line-height:1.3; }
#hornbill-home .hero-v2-claim em{ font-style:italic; color:var(--gold-1); }
#hornbill-home .hero-v2-title{ font-size:clamp(44px,6.5vw,84px); line-height:1.05; color:var(--stone); margin-bottom:20px; }
#hornbill-home .hero-v2-desc{ font-size:16px; color:rgba(241,228,204,0.88); max-width:440px; margin-bottom:34px; line-height:1.72; }
#hornbill-home .hero-v2-actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
#hornbill-home .hero-v2-btn-primary{ display:inline-block; background:var(--gold-grad); color:var(--ink); font-family:'Inter',sans-serif; font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; padding:16px 34px; border-radius:4px; }
#hornbill-home .hero-v2-badges{ display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:36px; }
#hornbill-home .hero-v2-badges span{ font-family:'Inter',sans-serif; font-size:12px; color:rgba(241,228,204,0.7); position:relative; padding-left:16px; }
#hornbill-home .hero-v2-badges span::before{ content:"·"; position:absolute; left:0; color:var(--gold-1); }

.view-details{ text-decoration:none; color:inherit; display:inline-block; cursor:pointer; }
.view-details:hover{ text-decoration:underline; }

@media(max-width:920px){
  #hornbill-home .wrap { padding:0 22px; }
  #hornbill-home .welcome, #hornbill-home .ritual, #hornbill-home .experiences, #hornbill-home .contact, #hornbill-home .therapists, #hornbill-home .faq { padding:96px 0; }
  #hornbill-home .specialities { padding:78px 0 82px; }
  #hornbill-home .specialities-head { display:block; margin-bottom:32px; padding-bottom:22px; }
  #hornbill-home .specialities-grid { grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid var(--line-on-dark); border-left:1px solid var(--line-on-dark); }
  #hornbill-home .speciality-item { min-height:154px; justify-content:center; padding:24px 12px; border-right:1px solid var(--line-on-dark); border-bottom:1px solid var(--line-on-dark); }
  #hornbill-home .welcome .wrap, #hornbill-home .ritual .wrap { grid-template-columns:1fr; gap:40px; }
  #hornbill-home .contact-map { aspect-ratio:4/5; margin-bottom:24px; }
  #hornbill-home .frame { display:none; }
  #hornbill-home .ritual-reveal .photo-placeholder { opacity:1; transform:scale(1); filter:grayscale(0) brightness(1); }
  #hornbill-home .ritual-reveal .reveal-label { display:none; }
  #hornbill-home .ritual-reveal .reveal-details { opacity:1; transform:translateY(0); }
  #hornbill-home .therapist-grid { grid-template-columns:repeat(2,1fr); gap:24px; margin-top:48px; }
  #hornbill-home .treatment-row .row-head { grid-template-columns:32px 1fr; row-gap:10px; padding:28px 14px; margin:0 -14px; }
  #hornbill-home .treatment-row .duration { grid-column:2; font-size:13.5px; }
  #hornbill-home .treatment-row .view-details { display:none; }
  #hornbill-home .treatment-row:hover .row-head { transform:none; background-color:transparent; }
  #hornbill-home .treatment-row h3 { font-size:20px; }
  #hornbill-home .treatment-row .row-expand, #hornbill-home .treatment-row .row-expand-inner { display:none; }
  #hornbill-home .contact-cols { grid-template-columns:1fr; gap:56px; }
  #hornbill-home .contact .divider { display:none; }
  #hornbill-home .contact-col { padding:0; }
  #hornbill-home .book-btn { display:block; text-align:center; width:100%; padding:20px 0; }
  #hornbill-home .hero-v2-content{ padding:0 22px; }
  #hornbill-home .hero-v2-title{ font-size:clamp(38px,11vw,52px); }
  #hornbill-home .hero-v2-inner{ max-width:100%; }
  #hornbill-home .hero-v2-badges{ margin-top:24px; gap:8px 18px; }
}
@media(max-width:600px){
  #hornbill-home .hero-v2{ min-height:100svh; max-height:700px; }
}

/* ==========================================================================
   HIGHLIGHTS — compact feature strip below the hero
   ========================================================================== */
#hornbill-home .highlights {
  background: var(--ink-soft);
  padding: 0;
}
#hornbill-home .highlights-inner {
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
#hornbill-home .highlight-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
  padding: 26px 16px;
  border-right: 1px solid var(--line-on-dark);
  transition: background-color .25s ease;
}
#hornbill-home .highlight-item:last-child { border-right: none; }
#hornbill-home .highlight-item:hover { background-color: rgba(169,131,93,0.08); }
#hornbill-home .highlight-icon {
  width: 26px;
  height: 26px;
  color: var(--gold-1);
  flex-shrink: 0;
}
#hornbill-home .highlight-item span {
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.01em;
  color: rgba(241,228,204,0.85);
}

@media (max-width: 780px) {
  #hornbill-home .highlights-inner { grid-template-columns: repeat(2, 1fr); }
  #hornbill-home .highlight-item:nth-child(2) { border-right: none; }
  #hornbill-home .highlight-item {
    border-bottom: 1px solid var(--line-on-dark);
    padding: 22px 12px;
  }
}
@media (max-width: 480px) {
  #hornbill-home .highlight-item span { font-size: 11.5px; }
}

#hornbill-home .hero-v2-underline {
  display: block;
  width: 160px;
  height: 16px;
  margin: 6px 0 24px 0;
}
@media (max-width: 920px) {
  #hornbill-home .hero-v2-underline { margin: 4px 0 20px 0; }
}

/* ===== Filigree divider ===== */
#hornbill-home .hb-filigree{
  width:180px; height:22px; margin:0 0 10px 0;
  color:#C8A25A;
  display:flex; justify-content:center; align-items:center;
}
#hornbill-home .hb-filigree svg{ width:100%; height:100%; }
#hornbill-home .hb-filigree + .eyebrow{ margin-top:0 !important; }

/* dividers that sit AFTER content need top margin instead */
#hornbill-home .hero-claim + .hb-filigree,
#hornbill-home .ritual-cta + .hb-filigree,
#hornbill-home .meta-row + .hb-filigree,
#hornbill-home .welcome-link + .hb-filigree{
  margin:12px 0 0 0;
}

/* on dark backgrounds (welcome, ritual are light — hero is dark) */
#hornbill-home .hero .hb-filigree{ color:#C8A25A; }
#hornbill-home .welcome .hb-filigree-dark{ color:#B8860B; }
#hornbill-home .ritual .hb-filigree{ color:#B8860B; }

@media(max-width:600px){
  #hornbill-home .hb-filigree{ width:140px; height:18px; }
}

/* ===== Welcome section — fix image/text top alignment ===== */
#hornbill-home .hb-welcome-grid{ align-items:flex-start !important; }
#hornbill-home .hb-welcome-text{ padding-top:0; margin-top:0; }
#hornbill-home .hb-welcome-text .eyebrow{ margin-top:0; }

/* ===== Filigree divider (Hornbill) ===== */
#hornbill-home .hb-filigree{
  width:180px; height:22px; margin:10px 0;
  color:#C8A25A;
  display:flex; justify-content:center; align-items:center;
}
#hornbill-home .hb-filigree svg{ width:100%; height:100%; }
#hornbill-home .welcome .hb-filigree,
#hornbill-home .ritual .hb-filigree{ color:#B8860B; }

@media(max-width:600px){
  #hornbill-home .hb-filigree{ width:140px; height:18px; }
}

/* ── WhatsApp Floating Button ───────────────────── */
.hb-wa-fab {
  position: fixed;
  bottom: 28px;
  right: 24px;
  z-index: 9999;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 4px 16px rgba(37,211,102,0.38), 0 1px 4px rgba(0,0,0,0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  outline: none;
  animation: hb-wa-pop 0.45s cubic-bezier(0.34,1.56,0.64,1) both;
  animation-delay: 1.2s;
  opacity: 0;
  transition: transform 0.2s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.2s ease;
}
@keyframes hb-wa-pop {
  from { opacity:0; transform:scale(0.6) translateY(12px); }
  to   { opacity:1; transform:scale(1) translateY(0); }
}
.hb-wa-fab:hover,
.hb-wa-fab:focus-visible {
  transform: scale(1.1);
  box-shadow: 0 6px 24px rgba(37,211,102,0.50), 0 2px 6px rgba(0,0,0,0.28);
}
.hb-wa-fab:active { transform: scale(0.96); }
.hb-wa-fab::before {
  content: "Chat on WhatsApp";
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  background: #1a1a1a;
  color: #F1E4CC;
  font-size: 12px;
  letter-spacing: 0.05em;
  padding: 6px 12px;
  border-radius: 4px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}
.hb-wa-fab:hover::before { opacity: 1; }
.hb-wa-fab svg { width: 30px; height: 30px; flex-shrink: 0; }
.hb-wa-fab::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #25D366;
  opacity: 0;
  animation: hb-wa-pulse 3s ease-out 2s infinite;
  pointer-events: none;
}
@keyframes hb-wa-pulse {
  0%   { transform:scale(1);   opacity:0.5; }
  70%  { transform:scale(1.6); opacity:0;   }
  100% { transform:scale(1.6); opacity:0;   }
}
@media (max-width: 600px) {
  .hb-wa-fab { width:52px; height:52px; bottom:20px; right:16px; }
  .hb-wa-fab::before { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  .hb-wa-fab { animation:none; opacity:1; }
  .hb-wa-fab::after { animation:none; }
}