/* v3 — density, conversion, animations */

/* floating WhatsApp */
.fab{
  position:fixed;right:24px;bottom:24px;z-index:70;
  width:60px;height:60px;border-radius:99px;
  background:#25d366;color:#fff;
  display:grid;place-items:center;cursor:pointer;
  box-shadow:0 12px 32px rgba(37,211,102,.4),0 4px 12px rgba(0,0,0,.3);
  transition:transform .35s var(--ease),box-shadow .35s;text-decoration:none;
}
.fab:hover{transform:translateY(-4px) scale(1.08);box-shadow:0 18px 42px rgba(37,211,102,.55),0 6px 16px rgba(0,0,0,.4)}
.fab svg{width:30px;height:30px;fill:currentColor}
.fab .pulse{position:absolute;inset:-4px;border-radius:99px;border:2px solid #25d366;animation:pulse 2.4s infinite}
@keyframes pulse{0%{transform:scale(.95);opacity:.7}70%{transform:scale(1.4);opacity:0}100%{opacity:0}}
.fab .lbl{
  position:absolute;right:74px;top:50%;transform:translateY(-50%);
  background:var(--ink);color:var(--bg);
  padding:10px 18px;border-radius:99px;
  font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  white-space:nowrap;pointer-events:none;opacity:0;transform:translate(8px,-50%);
  transition:opacity .3s,transform .3s var(--ease);
}
.fab:hover .lbl{opacity:1;transform:translate(0,-50%)}
@media(max-width:560px){.fab .lbl{display:none}.fab{width:54px;height:54px;right:16px;bottom:16px}.fab svg{width:26px;height:26px}}

/* trust bar */
.featured-in{background:var(--paper);padding:36px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fi-grid{display:grid;grid-template-columns:auto repeat(5,1fr);gap:48px;align-items:center}
.fi-lbl{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--mute);white-space:nowrap}
.fi-logo{font-family:var(--serif);font-size:clamp(15px,1.4vw,21px);font-weight:400;color:rgba(237,229,214,.7);text-align:center;letter-spacing:.02em;transition:color .35s,transform .35s var(--ease)}
.fi-logo em{font-style:italic;color:var(--accent);opacity:.85}
.fi-logo:hover{color:var(--ink);transform:translateY(-2px)}
@media(max-width:760px){.fi-grid{grid-template-columns:1fr 1fr;gap:14px}.fi-lbl{grid-column:1/-1;text-align:center}.fi-logo{font-size:14px}}

/* discipline cards */
.disc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
@media(max-width:900px){.disc-cards{grid-template-columns:1fr;gap:18px}}
.dc{position:relative;overflow:hidden;aspect-ratio:5/6;min-height:520px;background:#141a0b;cursor:pointer;border:1px solid var(--line)}
.dc .dc-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.6s var(--ease),filter .8s;filter:brightness(.55) contrast(1.05)}
.dc:hover .dc-bg{transform:scale(1.08);filter:brightness(.65) contrast(1.05)}
.dc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,17,8,.1) 0%,rgba(12,17,8,.15) 50%,rgba(12,17,8,.95) 100%);pointer-events:none}
.dc-content{position:absolute;inset:0;z-index:2;padding:36px;display:flex;flex-direction:column;justify-content:flex-end;color:var(--ink)}
.dc-num{position:absolute;top:24px;left:24px;font-family:var(--serif);font-size:13px;letter-spacing:.06em;color:var(--accent)}
.dc-content h3{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3vw,42px);line-height:1;letter-spacing:-.02em;margin-bottom:16px}
.dc-content h3 em{color:var(--accent)}
.dc-content p{font-size:14px;line-height:1.65;color:rgba(237,229,214,.85);margin-bottom:24px;max-width:32ch;opacity:1}
.dc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}
.dc-tags span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:99px;color:rgba(237,229,214,.85);backdrop-filter:blur(8px)}
.dc-cta{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);padding-top:18px;border-top:1px solid rgba(168,118,64,.4);display:flex;justify-content:space-between;align-items:center}
.dc-cta .arr{transition:transform .4s var(--ease)}
.dc:hover .dc-cta .arr{transform:translateX(8px)}
@media(max-width:900px){.dc{aspect-ratio:auto;min-height:440px!important;width:100%}.dc-content h3{font-size:32px}.dc-content p{font-size:13.5px}}

/* parallax */
.parallax{will-change:transform}
@media(max-width:900px){.parallax,.dc-bg.parallax{transform:none!important;transition:none!important}.dc-bg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform:none!important;background-position:center center!important;background-size:cover!important}}

/* testimonials */
.testimonials{background:var(--paper);position:relative;overflow:hidden}
.t-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:64px}
@media(max-width:900px){.t-grid{grid-template-columns:1fr;gap:32px}}
.t-card{padding:48px;border:1px solid var(--line);background:var(--bg);position:relative;transition:transform .5s var(--ease),border-color .5s}
.t-card:hover{transform:translateY(-6px);border-color:var(--accent)}
.t-card::before{content:"\201C";position:absolute;top:18px;left:24px;font-family:var(--serif);font-size:96px;line-height:1;color:var(--accent);opacity:.5;font-weight:300}
.t-quote{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(20px,2vw,26px);line-height:1.4;letter-spacing:-.012em;color:var(--ink);margin-bottom:32px;padding-top:28px;opacity:1}
.t-meta{display:flex;align-items:center;gap:16px;padding-top:28px;border-top:1px solid var(--line)}
.t-avatar{width:54px;height:54px;border-radius:99px;background:var(--paper);border:1px solid var(--accent);display:grid;place-items:center;font-family:var(--serif);font-size:22px;color:var(--accent);flex-shrink:0}
.t-name strong{display:block;font-family:var(--serif);font-size:18px;font-weight:400;color:var(--ink);margin-bottom:2px}
.t-name span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
@media(max-width:760px){.t-card{padding:32px 24px}.t-quote{font-size:18px}.t-card::before{font-size:64px}}

/* lead CTA */
.lead-cta{position:relative;overflow:hidden;background:var(--ink);color:var(--bg);padding:0}
.lead-cta-grid{display:grid;grid-template-columns:1fr 1fr;min-height:560px;align-items:stretch}
@media(max-width:900px){.lead-cta-grid{grid-template-columns:1fr}}
.lc-img{position:relative;overflow:hidden;min-height:380px}
.lc-img>div{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);transition:transform 1.4s var(--ease)}
.lead-cta:hover .lc-img>div{transform:scale(1.08)}
.lc-text{padding:80px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:900px){.lc-text{padding:48px 22px 64px}}
.lc-text .eyebrow{color:var(--accent);margin-bottom:24px}
.lc-text h2{font-family:var(--serif);font-weight:300;font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-.025em;margin-bottom:28px;color:var(--bg)}
.lc-text h2 em{color:var(--accent)}
.lc-text p{font-size:15.5px;line-height:1.7;color:rgba(22,28,13,.78);margin-bottom:36px;max-width:46ch;opacity:1}
.lc-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
@media(max-width:900px){.lc-text h2{font-size:36px!important}.lc-actions{flex-direction:column;align-items:stretch}}

/* buttons */
.btn-primary{
  display:inline-flex;align-items:center;gap:10px;
  padding:18px 32px;background:var(--accent);color:var(--bg);
  font-family:var(--sans);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  border-radius:99px;cursor:pointer;border:1px solid var(--accent);
  transition:transform .35s var(--ease),background .35s,color .35s;
}
.btn-primary:hover{transform:translateX(6px);background:var(--bg);color:var(--accent);border-color:var(--accent)}
.btn-secondary{
  display:inline-flex;align-items:center;gap:10px;
  padding:18px 28px;background:transparent;color:rgba(237,229,214,.95);
  font-family:var(--sans);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;
  border-radius:99px;cursor:pointer;border:1px solid rgba(237,229,214,.3);
  transition:border-color .35s,color .35s;
}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:900px){.btn-primary,.btn-secondary{justify-content:center;padding:16px 24px;font-size:11px}}

/* FAQ */
.faq{padding:120px 0}
.faq-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:80px;align-items:start}
@media(max-width:900px){.faq-grid{grid-template-columns:1fr;gap:32px}.faq{padding:80px 0}}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line);cursor:pointer}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 0;font-family:var(--serif);font-weight:300;font-size:clamp(20px,2.2vw,28px);letter-spacing:-.012em;transition:padding .4s var(--ease),color .4s}
.faq-item:hover .faq-q{padding-left:14px;color:var(--accent)}
.faq-q .ic{width:32px;height:32px;border:1px solid var(--line);border-radius:99px;display:grid;place-items:center;font-family:var(--sans);font-size:14px;flex-shrink:0;transition:transform .4s var(--ease),background .4s,color .4s,border-color .4s}
.faq-item.open .faq-q .ic{transform:rotate(45deg);background:var(--accent);color:var(--bg);border-color:var(--accent)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .6s var(--ease),padding .6s var(--ease)}
.faq-item.open .faq-a{max-height:400px;padding:0 0 32px}
.faq-a p{font-size:15px;color:var(--mute);line-height:1.75;max-width:62ch;opacity:1}
@media(max-width:900px){.faq-q{font-size:18px;padding:22px 0;gap:16px}.faq-q .ic{width:28px;height:28px}.faq-a p{font-size:14px}}

/* sticky bar */
.sticky-bar{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(160%);
  z-index:65;background:#0e1409;border:1px solid var(--accent);
  padding:14px 14px 14px 28px;border-radius:99px;
  display:flex;align-items:center;gap:18px;
  box-shadow:0 18px 48px rgba(0,0,0,.65),0 0 0 4px rgba(168,118,64,.08);
  transition:transform .6s var(--ease);max-width:calc(100vw - 32px);backdrop-filter:blur(8px);
}
.sticky-bar.show{transform:translateX(-50%) translateY(0)}
.sticky-bar .sb-text{font-family:var(--serif);font-style:italic;font-size:15px;color:#ede5d6;white-space:nowrap}
.sticky-bar .sb-text em{color:var(--accent);font-weight:400;font-style:italic}
.sticky-bar .sb-cta{background:var(--accent);color:var(--bg);padding:11px 22px;border-radius:99px;font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;transition:background .3s,color .3s}
.sticky-bar .sb-cta:hover{background:var(--bg);color:var(--accent)}
@media(max-width:760px){.sticky-bar{display:none}}

/* section dots */
.section-dots{position:fixed;right:32px;top:50%;transform:translateY(-50%);z-index:55;display:flex;flex-direction:column;gap:14px}
.section-dots a{width:8px;height:8px;border-radius:99px;background:rgba(237,229,214,.25);transition:all .3s;position:relative}
.section-dots a:hover,.section-dots a.active{background:var(--accent);transform:scale(1.4)}
.section-dots a .lab{position:absolute;right:18px;top:50%;transform:translate(8px,-50%);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);white-space:nowrap;opacity:0;transition:opacity .3s,transform .3s var(--ease);pointer-events:none}
.section-dots a:hover .lab{opacity:1;transform:translate(0,-50%);color:var(--accent)}
@media(max-width:1280px){.section-dots{display:none}}

/* hero arrow */
.hero-arrow{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;width:24px;height:40px;border:1px solid rgba(237,229,214,.6);border-radius:14px;display:grid;place-items:center}
.hero-arrow::after{content:"";width:3px;height:8px;background:var(--accent);border-radius:99px;animation:harrow 2s infinite var(--ease)}
@keyframes harrow{0%{transform:translateY(-6px);opacity:0}50%{opacity:1}100%{transform:translateY(8px);opacity:0}}
@media(max-width:760px){.hero-arrow{display:none}}

/* count-up */
.count-up{display:inline-block;font-variant-numeric:tabular-nums}

/* brass divider */
.brass-rule{height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.4;margin:0 auto;max-width:120px}

/* feat flag */
.feat-flag{display:inline-block;margin-right:10px;padding:4px 10px;background:rgba(168,118,64,.14);border:1px solid rgba(168,118,64,.45);border-radius:99px;color:var(--accent);font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;vertical-align:middle}
.feat-credit{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.06em;color:var(--mute);opacity:.85;font-style:italic;font-family:var(--serif)}

/* film grain */
body::after{content:"";position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* footer credit */
.built-by{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);opacity:.75;display:inline-flex;gap:6px;align-items:center}
.built-by a{color:var(--accent);border-bottom:1px solid transparent;padding-bottom:1px;transition:border-color .3s,color .3s}
.built-by a:hover{border-bottom-color:var(--accent);color:var(--ink)}
.built-by .heart{color:var(--accent);font-style:normal}
