/* ================================================================
   NEW LIFE REHAB CENTER — MAIN STYLESHEET (LIGHT THEME)
================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400&family=Barlow+Condensed:wght@600;700;800;900&display=swap');

/* ── Design Tokens — Light Theme ── */
:root {
  --red:        #C0392B;
  --red-dark:   #922B21;
  --red-light:  #FDECEA;
  --red-glow:   rgba(192,57,43,0.14);
  --ink:        #1A1A1A;
  --ink-soft:   #444444;
  --muted:      #777777;
  --border:     #E2E2E2;
  --border-dark:#CCCCCC;
  --surface:    #F8F8F8;
  --surface2:   #F0F0F0;
  --paper:      #FFFFFF;
  --gold:       #D4A843;
  --gold-soft:  #F5C842;
  --green:      #1E8449;
  --shadow-sm:  0 2px 12px rgba(0,0,0,0.08);
  --shadow-md:  0 8px 28px rgba(0,0,0,0.12);
  --shadow-lg:  0 20px 56px rgba(0,0,0,0.16);
  --radius:     14px;

  /* Dark sections (hero, awareness, CTA) keep dark bg */
  --dark-bg:    #111111;
  --dark-surface: #1C1C1C;
  --dark-border:  #2A2A2A;
  --dark-text:    rgba(255,255,255,0.82);
  --dark-muted:   rgba(255,255,255,0.5);
}

.ds-act{
  color:#555!important;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  font-family: 'Barlow', sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 4px; }

/* ── Layout ── */
.wrap { max-width: 1160px; margin: 0 auto; padding: 0 28px; }
.section { padding: 88px 0; }
.section-sm { padding: 60px 0; }
@media (max-width: 768px) { .section { padding: 60px 0; } .section-sm { padding: 44px 0; } }

/* ── Typography ── */
h1, h2, h3 {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--ink);
}
h4, h5 { font-family: 'Barlow', sans-serif; font-weight: 700; color: var(--ink); }
h1 { font-size: clamp(40px, 6.5vw, 76px); }
h2 { font-size: clamp(30px, 4.2vw, 52px); }
h3 { font-size: clamp(20px, 2.8vw, 30px); }
h4 { font-size: 19px; }
p  { color: var(--ink-soft); }

/* On-dark overrides */
.on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4 { color: #FFFFFF; }
.on-dark p { color: var(--dark-text); }

.label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--red); margin-bottom: 14px;
}
.label::before { content: ''; width: 22px; height: 2px; background: var(--red); }
.label.white { color: #fff; }
.label.white::before { background: #fff; }
.label.gold  { color: var(--gold); }
.label.gold::before  { background: var(--gold); }

/* ── Buttons ── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: 'Barlow', sans-serif; font-weight: 700; font-size: 15px;
  padding: 13px 28px; border-radius: 8px; border: none; cursor: pointer;
  white-space: nowrap;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-red { background: var(--red); color: #fff; box-shadow: 0 6px 20px rgba(192,57,43,0.4); }
.btn-red:hover { background: var(--red-dark); box-shadow: 0 10px 28px rgba(192,57,43,0.5); }
.btn-outline-dark { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,0.4); }
.btn-outline-dark:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.7); }
.btn-outline { background: #c0392b!important; color: #fff; border: 1.5px solid var(--border-dark); }
.btn-outline:hover { background: var(--surface); border-color: var(--ink); }
.btn-gold { background: var(--gold); color: var(--ink); }
.btn-gold:hover { background: var(--gold-soft); }
.btn-lg { padding: 17px 36px; font-size: 16.5px; }

/* ── Reveal animations ── */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.22,.9,.32,1), transform .7s cubic-bezier(.22,.9,.32,1); }
.reveal.visible { opacity:1; transform:none; }
.reveal-left { opacity:0; transform:translateX(-28px); transition:opacity .7s cubic-bezier(.22,.9,.32,1), transform .7s cubic-bezier(.22,.9,.32,1); }
.reveal-left.visible { opacity:1; transform:none; }
.reveal-right { opacity:0; transform:translateX(28px); transition:opacity .7s cubic-bezier(.22,.9,.32,1), transform .7s cubic-bezier(.22,.9,.32,1); }
.reveal-right.visible { opacity:1; transform:none; }

/* ── Section header ── */
.sec-head { margin-bottom: 48px; }
.sec-head.center { text-align: center; }
.sec-head.center .label { justify-content: center; }
.sec-head h2 { margin-bottom: 12px; }
.sec-head p { font-size: 18px; color: var(--ink-soft); max-width: 58ch; }
.sec-head.center p { margin: 0 auto; }
.divider { width: 44px; height: 3px; background: var(--red); margin: 14px 0; }
.sec-head.center .divider { margin: 14px auto; }

/* ── Photo frame ── */
.photo-wrap { position: relative; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-md); }
.photo-wrap img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.photo-wrap:hover img { transform: scale(1.04); }
.photo-badge {
  position: absolute; bottom: 14px; left: 14px;
  background: rgba(15,15,15,0.8); backdrop-filter: blur(6px);
  color: #fff; padding: 7px 13px; border-radius: 6px;
  font-size: 12.5px; font-weight: 700;
}

/* ── Split grid ── */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.split.flip { direction: rtl; }
.split.flip > * { direction: ltr; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; gap: 36px; } .split.flip { direction: ltr; } }

/* ── Stats strip ── */
.stats-strip { background: var(--red); padding: 48px 0; position: relative; z-index: 1; }
.stats-strip .wrap { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; text-align: center; }
.stat-num { font-family:'Barlow Condensed',sans-serif; font-size:clamp(36px,5vw,54px); font-weight:900; color:#fff; display:block; line-height:1; }
.stat-label { font-size:12px; font-weight:700; color:rgba(255,255,255,0.8); text-transform:uppercase; letter-spacing:.08em; margin-top:5px; }
@media (max-width:700px) { .stats-strip .wrap { grid-template-columns:1fr 1fr; } }

/* ── Awareness band ── */
.awareness { background: var(--dark-bg); position: relative; z-index: 1; }
.awareness-grid { display: grid; grid-template-columns: 1fr 1fr; }
.awareness-img { position: relative; min-height: 440px; overflow: hidden; }
.awareness-img img { width:100%; height:100%; object-fit:cover; filter:grayscale(15%) contrast(1.08); display:block; }
.awareness-img::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, transparent 55%, var(--dark-bg) 100%); }
.awareness-body { padding: 64px 52px; display:flex; flex-direction:column; justify-content:center; }
.awareness-body h2 { font-size:clamp(26px,3.4vw,42px); color:#fff; margin-bottom:16px; }
.awareness-body p { font-size:15.5px; color:var(--dark-text); margin-bottom:12px; }
.awareness-pills { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.awareness-pill { padding:6px 14px; border-radius:50px; border:1.5px solid var(--dark-border); font-size:12.5px; font-weight:600; color:rgba(255,255,255,0.65); }
@media (max-width:900px) {
  .awareness-grid { grid-template-columns:1fr; }
  .awareness-img { min-height:260px; }
  .awareness-img::after { background:linear-gradient(0deg, var(--dark-bg) 0%, transparent 60%); }
  .awareness-body { padding:36px 24px; }
}

/* ── Program cards ── */
.programs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.prog-card {
  background:var(--paper); border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  box-shadow: var(--shadow-sm);
  transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.prog-card:hover { border-color:var(--red); transform:translateY(-5px); box-shadow:0 14px 36px rgba(192,57,43,0.18); }
.prog-img { height:180px; overflow:hidden; }
.prog-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.prog-card:hover .prog-img img { transform:scale(1.07); }
.prog-body { padding:24px 22px 28px; flex:1; display:flex; flex-direction:column; }
.prog-tag { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--red); margin-bottom:8px; }
.prog-body h3 { font-size:20px; text-transform:none; font-family:'Barlow',sans-serif; font-weight:700; color:var(--ink); margin-bottom:9px; }
.prog-body p { font-size:14px; color:var(--ink-soft); flex:1; }
@media (max-width:980px) { .programs-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:580px)  { .programs-grid { grid-template-columns:1fr; } }

/* ── Journey steps ── */
.journey-wrap { position:relative; padding-top:36px; }
.journey-line { position:absolute; top:64px; left:0; right:0; height:2px; background:linear-gradient(90deg, var(--red), var(--border) 80%); z-index:0; }
.journey-steps { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; position:relative; z-index:1; }
.j-step { text-align:center; padding:0 8px; }
.j-node { width:54px; height:54px; border-radius:50%; border:2px solid var(--red); background:var(--paper); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; transition:background .3s, box-shadow .3s; }
.j-node:hover { background:var(--red); box-shadow:0 0 0 6px var(--red-glow); }
.j-num { font-family:'Barlow Condensed',sans-serif; font-size:20px; font-weight:900; color:var(--red); transition:color .3s; }
.j-node:hover .j-num { color:#fff; }
.j-step h4 { font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:5px; text-transform:uppercase; letter-spacing:.04em; }
.j-step p { font-size:12.5px; color:var(--ink-soft); }
@media (max-width:860px) { .journey-line { display:none; } .journey-steps { grid-template-columns:1fr 1fr; gap:22px; } }
@media (max-width:480px) { .journey-steps { grid-template-columns:1fr; } }

/* ── Testimonials ── */
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.testi-card { background:var(--paper); border:1px solid var(--border); border-radius:var(--radius); padding:28px 24px; display:flex; flex-direction:column; box-shadow:var(--shadow-sm); transition:border-color .3s, box-shadow .3s; }
.testi-card:hover { border-color:rgba(192,57,43,.4); box-shadow:var(--shadow-md); }
.testi-stars { color:var(--gold); font-size:14px; letter-spacing:2px; margin-bottom:12px; }
.testi-quote { font-size:15px; color:var(--ink-soft); font-style:italic; flex:1; margin-bottom:18px; line-height:1.7; }
.testi-who { display:flex; align-items:center; gap:12px; }
.testi-avatar { width:40px; height:40px; border-radius:50%; background:var(--red); display:flex; align-items:center; justify-content:center; font-family:'Barlow Condensed',sans-serif; font-size:18px; font-weight:800; color:#fff; flex-shrink:0; }
.testi-name { font-size:14px; font-weight:700; color:var(--ink); }
.testi-role { font-size:12px; color:var(--muted); }
@media (max-width:900px) { .testi-grid { grid-template-columns:1fr; max-width:480px; margin:0 auto; } }

/* ── Team ── */
.team-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.team-card { background:var(--paper); border:1px solid var(--border); border-radius:var(--radius); display:flex; overflow:hidden; box-shadow:var(--shadow-sm); transition:border-color .3s, transform .3s; }
.team-card:hover { border-color:var(--red); transform:translateY(-4px); }
.team-photo { width:140px; flex-shrink:0; }
.team-photo svg { width:100%; height:100%; display:block; }
.team-body { padding:22px 20px; }
.team-body h4 { font-size:17px; font-weight:800; color:var(--ink); margin-bottom:2px; }
.team-role { font-size:11.5px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.07em; margin-bottom:9px; display:block; }
.team-body p { font-size:13.5px; color:var(--ink-soft); }
@media (max-width:700px) { .team-grid { grid-template-columns:1fr; } }
@media (max-width:420px) { .team-card { flex-direction:column; } .team-photo { width:100%; height:110px; } }

/* ── Gallery ── */
.g-masonry { columns:3; column-gap:16px; }
.g-item { break-inside:avoid; margin-bottom:16px; border-radius:var(--radius); overflow:hidden; position:relative; cursor:pointer; border:1px solid var(--border); box-shadow:var(--shadow-sm); transition:transform .3s, box-shadow .3s; }
.g-item:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.g-item img { width:100%; height:auto; display:block; transition:transform .5s ease; }
.g-item:hover img { transform:scale(1.05); }
.g-item-cap { position:absolute; bottom:0; left:0; right:0; padding:13px 15px; background:linear-gradient(0deg,rgba(0,0,0,.82),transparent); color:#fff; font-size:12.5px; font-weight:600; opacity:0; transition:opacity .3s; }
.g-item:hover .g-item-cap { opacity:1; }
.g-tag { position:absolute; top:11px; left:11px; background:var(--red); color:#fff; padding:4px 10px; border-radius:4px; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.filter-bar { display:flex; gap:9px; flex-wrap:wrap; margin-bottom:32px; }
.f-btn { padding:8px 18px; border-radius:6px; border:1.5px solid var(--border); background:var(--paper); color:var(--ink-soft); font-size:13.5px; font-weight:600; cursor:pointer; transition:all .2s; }
.f-btn:hover { border-color:var(--red); color:var(--red); }
.f-btn.active { background:var(--red); border-color:var(--red); color:#fff; }
@media (max-width:860px) { .g-masonry { columns:2; } }
@media (max-width:520px) { .g-masonry { columns:1; } }

/* ── Lightbox ── */
.lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.94); z-index:1000; align-items:center; justify-content:center; padding:40px; animation:fadeIn .25s ease; }
.lightbox.open { display:flex; }
.lightbox img { max-width:100%; max-height:85vh; border-radius:10px; }
.lightbox-cap { position:absolute; bottom:26px; left:0; right:0; text-align:center; font-size:14px; color:rgba(255,255,255,.7); }
.lb-close { position:absolute; top:20px; right:22px; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff; font-size:20px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.lb-close:hover { background:var(--red); }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:#fff; font-size:24px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.lb-nav:hover { background:rgba(255,255,255,.2); }
.lb-prev { left:18px; } .lb-next { right:18px; }

/* ── FAQ ── */
.faq-wrap { max-width:820px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--border); }
.faq-q { width:100%; background:none; border:none; display:flex; align-items:center; justify-content:space-between; padding:20px 4px; text-align:left; gap:18px; font-family:'Barlow',sans-serif; font-size:16.5px; font-weight:600; color:var(--ink); cursor:pointer; }
.faq-icon { width:26px; height:26px; border-radius:50%; border:1.5px solid var(--border-dark); flex-shrink:0; position:relative; transition:background .25s, border-color .25s; }
.faq-icon::before, .faq-icon::after { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:var(--muted); transition:.25s; }
.faq-icon::before { width:11px; height:1.5px; }
.faq-icon::after  { width:1.5px; height:11px; }
.faq-item.open .faq-icon { background:var(--red); border-color:var(--red); }
.faq-item.open .faq-icon::before, .faq-item.open .faq-icon::after { background:#fff; }
.faq-item.open .faq-icon::after { transform:translate(-50%,-50%) rotate(90deg) scaleY(0); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .4s ease, padding .4s ease; }
.faq-item.open .faq-a { max-height:240px; padding-bottom:20px; }
.faq-a p { font-size:14.5px; color:var(--ink-soft); max-width:70ch; }

/* ── Contact form ── */
.contact-wrap { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:start; }
.c-info h2 { font-size:clamp(26px,3.3vw,42px); margin-bottom:14px; }
.c-info p { font-size:15.5px; color:var(--ink-soft); margin-bottom:26px; }
.c-method { display:flex; gap:14px; align-items:flex-start; margin-bottom:20px; }
.c-icon { width:42px; height:42px; border-radius:9px; flex-shrink:0; background:var(--surface); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; }
.c-method strong { display:block; font-size:14px; font-weight:700; color:var(--ink); margin-bottom:1px; }
.c-method a, .c-method span { font-size:13.5px; color:var(--ink-soft); }
.c-method a:hover { color:var(--red); }
.c-note { margin-top:26px; padding:14px 16px; background:var(--red-light); border-left:3px solid var(--red); border-radius:7px; font-size:13px; color:var(--red-dark); }
.c-form { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:34px; box-shadow:var(--shadow-md); }
.c-form h3 { font-size:22px; font-family:'Barlow',sans-serif; font-weight:800; color:var(--ink); margin-bottom:5px; text-transform:none; }
.c-form > p { font-size:13.5px; color:var(--muted); margin-bottom:22px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.field { margin-bottom:14px; }
.field label { display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:6px; }
.field input, .field select, .field textarea { width:100%; padding:11px 13px; border-radius:8px; border:1.5px solid var(--border); background:var(--paper); color:var(--ink); font-size:14.5px; transition:border-color .2s; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--red); }
.field input::placeholder, .field textarea::placeholder { color:var(--muted); }
.field textarea { resize:vertical; min-height:85px; }
.form-note { font-size:11.5px; color:var(--muted); margin:10px 0 14px; line-height:1.5; }
.c-form .btn { width:100%; }
.form-success { display:none; text-align:center; padding:36px 14px; }
.form-success.show { display:block; }
.check-icon { width:58px; height:58px; border-radius:50%; background:rgba(30,132,73,.1); border:2px solid var(--green); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.form-success h3 { font-family:'Barlow',sans-serif; font-size:20px; font-weight:800; text-transform:none; margin-bottom:8px; color:var(--ink); }
.form-success p { font-size:14px; color:var(--ink-soft); }
@media (max-width:900px) { .contact-wrap { grid-template-columns:1fr; gap:36px; } .form-row { grid-template-columns:1fr; } }

/* ── Map ── */
.map-frame { border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow-sm); }
.map-frame iframe { width:100%; height:300px; border:none; display:block; }

/* ── Crisis bar ── */
.crisis-bar { background:var(--red); text-align:center; padding:13px 20px; font-size:14px; font-weight:700; color:#fff; }
.crisis-bar a { text-decoration:underline; text-underline-offset:3px; }

/* ── CTA band ── */
.cta-band { background:var(--dark-bg); text-align:center; padding:80px 0; }
.cta-band h2 { color:#fff; margin-bottom:14px; }
.cta-band p { font-size:17px; color:var(--dark-text); max-width:54ch; margin:0 auto 28px; }
.cta-actions { display:flex; gap:13px; justify-content:center; flex-wrap:wrap; }

/* ── Page hero (interior pages) ── */
.page-hero { position:relative; background:var(--dark-bg); overflow:hidden; padding:76px 0 64px; }
.page-hero-bg { position:absolute; inset:0; }
.page-hero-bg img { width:100%; height:100%; object-fit:cover; opacity:1; display:block; }
.page-hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,.65) 0%, rgba(17,17,17,.95) 100%); }
.page-hero .wrap { position:relative; z-index:2; }
.breadcrumb { display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,.4); margin-bottom:16px; }
.breadcrumb a { color:rgba(255,255,255,.65); font-weight:600; }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb span { color:rgba(255,255,255,.25); }
.page-hero h1 { font-size:clamp(30px,4.8vw,54px); margin-bottom:14px; color:#fff; }
.page-hero p { font-size:16.5px; color:rgba(255,255,255,.72); max-width:62ch; }

/* ── Location ── */
.location-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.loc-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:28px; }
.loc-card h3 { font-size:20px; font-family:'Barlow',sans-serif; font-weight:800; text-transform:none; color:var(--ink); margin-bottom:11px; }
.loc-card p { font-size:14px; color:var(--ink-soft); margin-bottom:12px; }
@media (max-width:860px) { .location-grid { grid-template-columns:1fr; } }

/* ── Mobile sticky bar ── */
.sticky-bar { display:none; position:fixed; bottom:0; left:0; right:0; z-index:200; background:var(--paper); border-top:1px solid var(--border); padding:12px 16px; gap:10px; box-shadow:0 -4px 20px rgba(0,0,0,.1); }
@media (max-width:720px) { .sticky-bar { display:flex; } body { padding-bottom:68px; } }
.sticky-bar a { flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border-radius:8px; font-weight:700; font-size:14px; }
.sticky-call { background:var(--red); color:#fff; }
.sticky-form { background:var(--surface); color:var(--ink); border:1px solid var(--border); }

/* ── Keyframes ── */
@keyframes fadeIn    { from{opacity:0} to{opacity:1} }
@keyframes slideUp   { from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:none} }
@keyframes pulseDot  { 0%,100%{box-shadow:0 0 0 0 rgba(192,57,43,.5)} 50%{box-shadow:0 0 0 7px rgba(192,57,43,0)} }
@keyframes heroZoom  { from{transform:scale(1)} to{transform:scale(1.07)} }

/* ── WhatsApp Floating Button ── */
.wa-float {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 999;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 24px rgba(37,211,102,0.55);
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease;
  animation: waPulse 2.5s ease-in-out infinite;
}
.wa-float:hover {
  transform: scale(1.12);
  box-shadow: 0 10px 32px rgba(37,211,102,0.7);
  animation: none;
}
.wa-float svg {
  width: 32px;
  height: 32px;
  fill: #ffffff;
  flex-shrink: 0;
}
/* Tooltip */
.wa-float::before {
  content: 'Chat on WhatsApp';
  position: absolute;
  right: 68px;
  top: 50%;
  transform: translateY(-50%);
  background: #1A1A1A;
  color: #fff;
  font-family: 'Barlow', sans-serif;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  padding: 7px 13px;
  border-radius: 7px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.wa-float::after {
  content: '';
  position: absolute;
  right: 62px;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: #1A1A1A;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.wa-float:hover::before,
.wa-float:hover::after {
  opacity: 1;
}
@keyframes waPulse {
  0%, 100% { box-shadow: 0 6px 24px rgba(37,211,102,0.55); }
  50%       { box-shadow: 0 6px 0 8px rgba(37,211,102,0.15), 0 6px 24px rgba(37,211,102,0.55); }
}
/* Push up above mobile sticky bar on small screens */
@media (max-width: 720px) {
  .wa-float {
    bottom: 86px;
    right: 18px;
    width: 52px;
    height: 52px;
  }
  .wa-float svg { width: 28px; height: 28px; }
  .wa-float::before, .wa-float::after { display: none; }
}
