/* ==========================================================================
   Dr. Lionella Moraes — drlionellamoraes.com
   Main stylesheet

   Contents
   01  Fonts
   02  Design tokens
   03  Base and accessibility
   04  Custom cursor (desktop, fine pointer only)
   05  Navigation and mobile menu
   06  Hero
   07  Marquee
   08  Shared elements (labels, headings, buttons, divider)
   09  Philosophy
   10  Services
   11  Airway
   12  Numbers band
   13  About
   14  Regenerative / Bio
   15  Investors (partners page)
   16  Professionals
   17  Patient voices (reviews panel + review cards)
   18  FAQ
   19  Contact and form
   20  Footer
   21  WhatsApp floating button
   22  Inner pages (privacy, accessibility, 404)
   23  Animations and reveal
   24  Mobile (max-width 900px)
   25  Reduced motion and print
   ========================================================================== */

/* 01 FONTS — self-hosted, SIL Open Font License ---------------------------- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/cormorant-garamond-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300;font-display:swap;src:url('../fonts/cormorant-garamond-latin-300-italic.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/montserrat-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/montserrat-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/montserrat-latin-500-normal.woff2') format('woff2')}

/* 02 DESIGN TOKENS --------------------------------------------------------- */
:root{
  --ivory:#F9F6F0;
  --warm:#FDFBF7;
  --champagne:#E8D9C0;
  --gold:#C9A96E;
  --gold-l:#DEC48A;
  --gold-d:#A07840;
  --gold-text:#8A6630;      /* gold for small text on light backgrounds: passes contrast */
  --charcoal:#1C1C1C;
  --dark:#0D0D0D;
  --mid:#4A4A4A;
  --soft:#6F6F6F;
  --blush:#F2E8DF;
  --cb:rgba(201,169,110,.22);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Montserrat',system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
}

/* 03 BASE AND ACCESSIBILITY ------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
body{background:var(--warm);color:var(--charcoal);font-family:var(--sans);font-weight:300;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%}
picture{display:block}
.skip-link{position:absolute;left:16px;top:-80px;z-index:10000;background:var(--charcoal);color:var(--ivory);padding:12px 20px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:top .2s}
.skip-link:focus{top:16px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* 04 CUSTOM CURSOR — enabled by JS only on devices with a real mouse ------- */
.cursor,.cursor-ring{display:none}
.has-cursor body,.has-cursor a,.has-cursor button,.has-cursor input,.has-cursor select,.has-cursor textarea,.has-cursor summary,.has-cursor .svc-card{cursor:none}
.has-cursor .cursor{display:block;width:9px;height:9px;background:var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .3s,height .3s;mix-blend-mode:multiply}
.has-cursor .cursor-ring{display:block;width:34px;height:34px;border:1px solid var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .12s ease,height .12s ease;opacity:.65}
.has-cursor .cursor.is-hover{width:18px;height:18px}
.has-cursor .cursor-ring.is-hover{width:52px;height:52px}

/* 05 NAVIGATION ------------------------------------------------------------ */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:26px 64px;display:flex;align-items:center;justify-content:space-between;transition:all .5s ease}
.nav.scrolled,.nav.solid{background:rgba(253,251,247,.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:16px 64px;border-bottom:1px solid var(--cb)}
.nav-logo{font-family:var(--serif);font-size:1.05rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:#fff;text-decoration:none;transition:color .4s}
.nav.scrolled .nav-logo,.nav.solid .nav-logo{color:var(--charcoal)}
.nav-logo span{color:var(--gold-l);transition:color .4s}
.nav.scrolled .nav-logo span,.nav.solid .nav-logo span{color:var(--gold-d)}
.nav-links{display:flex;gap:34px;list-style:none}
.nav-links a{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.78);text-decoration:none;transition:color .3s;position:relative}
.nav.scrolled .nav-links a,.nav.solid .nav-links a{color:var(--mid)}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .4s}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-links-cta{display:none}
.nav-cta{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-l);text-decoration:none;border:1px solid rgba(201,169,110,.5);padding:10px 24px;transition:all .4s}
.nav.scrolled .nav-cta,.nav.solid .nav-cta{color:var(--gold-text);border-color:var(--gold)}
.nav-cta:hover,.nav.scrolled .nav-cta:hover,.nav.solid .nav-cta:hover{background:var(--gold);color:var(--dark);border-color:var(--gold)}

/* Mobile menu button (hidden on desktop) */
.nav-toggle{display:none;width:44px;height:44px;background:none;border:none;position:relative;z-index:1002}
.nav-toggle span{position:absolute;left:10px;right:10px;height:1px;background:#fff;transition:transform .35s ease,opacity .25s ease,background .4s}
.nav-toggle span:nth-child(1){top:16px}
.nav-toggle span:nth-child(2){top:22px}
.nav-toggle span:nth-child(3){top:28px}
.nav.scrolled .nav-toggle span,.nav.solid .nav-toggle span{background:var(--charcoal)}
.nav.open .nav-toggle span{background:var(--ivory)}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* 06 HERO ------------------------------------------------------------------ */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;position:relative}
.hero-left{background:var(--charcoal);display:flex;flex-direction:column;justify-content:center;padding:160px 72px 100px 90px;position:relative;z-index:2}
.hero-left::after{content:'';position:absolute;top:0;right:-60px;bottom:0;width:120px;background:var(--charcoal);clip-path:polygon(0 0,52% 0,100% 100%,0 100%);z-index:3}
.hero-eyebrow{font-size:.58rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:28px;opacity:0;animation:fadeUp 1s ease .3s forwards;display:flex;align-items:center;gap:14px}
.hero-eyebrow::before{content:'';width:30px;height:1px;background:var(--gold)}
.hero-title{font-family:var(--serif);font-size:clamp(3.2rem,4.6vw,5.8rem);font-weight:300;line-height:1.02;color:var(--ivory);margin-bottom:16px;opacity:0;animation:fadeUp 1s ease .5s forwards}
.hero-title em{font-style:italic;color:var(--gold-l)}
.hero-sub{font-family:var(--serif);font-size:clamp(1.2rem,1.7vw,1.8rem);font-weight:300;font-style:italic;color:rgba(255,255,255,.55);margin-bottom:46px;letter-spacing:.06em;opacity:0;animation:fadeUp 1s ease .7s forwards}
.hero-desc{font-size:.79rem;line-height:2.15;color:rgba(255,255,255,.66);max-width:400px;margin-bottom:54px;opacity:0;animation:fadeUp 1s ease .9s forwards}
.hero-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;opacity:0;animation:fadeUp 1s ease 1.1s forwards;position:relative;z-index:4}
.hero-stats{display:flex;gap:40px;margin-top:54px;padding-top:40px;border-top:1px solid rgba(201,169,110,.15);opacity:0;animation:fadeUp 1s ease 1.3s forwards}
.hero-stats-rule{width:1px;background:rgba(201,169,110,.2)}
.stat-num{font-family:var(--serif);font-size:2.4rem;font-weight:300;color:var(--gold-l);line-height:1}
.stat-num sup{font-size:1.1rem;color:var(--gold)}
.stat-label{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:4px}
.hero-right{position:relative;overflow:hidden}
.hero-img-wrap{position:absolute;inset:0}
.hero-img-wrap picture{width:100%;height:100%}
.hero-img-wrap img{width:100%;height:100%;object-fit:cover;object-position:top center;transform:scale(1.05);animation:zoomOut 2.5s ease forwards;display:block}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(28,28,28,.3) 0%,transparent 45%);z-index:1}
.hero-badge{position:absolute;bottom:52px;right:48px;z-index:2;text-align:right;opacity:0;animation:fadeIn 1s ease 1.8s forwards}
.hero-badge-line{width:40px;height:1px;background:var(--gold);margin-left:auto;margin-bottom:7px}
.hero-badge-text{font-size:.54rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.75);text-shadow:0 1px 8px rgba(0,0,0,.35)}
.hero-scroll{position:absolute;bottom:44px;left:50%;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.5);font-size:.5rem;letter-spacing:.3em;text-transform:uppercase;opacity:0;animation:fadeIn 1s ease 2.4s forwards}
.hero-scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,var(--gold),transparent);animation:scrollPulse 2s ease-in-out infinite}

/* 07 MARQUEE --------------------------------------------------------------- */
.marquee-band{background:var(--charcoal);padding:15px 0;overflow:hidden;white-space:nowrap;border-top:1px solid rgba(201,169,110,.1);border-bottom:1px solid rgba(201,169,110,.1)}
.marquee-track{display:inline-flex;animation:marquee 32s linear infinite}
.m-item{font-size:.56rem;letter-spacing:.33em;text-transform:uppercase;color:var(--gold);padding:0 36px}
.m-dot{color:rgba(255,255,255,.16);margin-left:36px}

/* 08 SHARED ---------------------------------------------------------------- */
.lbl{font-size:.57rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold-text);margin-bottom:20px;display:flex;align-items:center;gap:13px}
.lbl::before{content:'';width:24px;height:1px;background:var(--gold);flex-shrink:0}
.lbl.w{color:var(--gold-l)}
.lbl.w::before{background:var(--gold-l)}
.h2{font-family:var(--serif);font-size:clamp(2.6rem,3.3vw,4rem);font-weight:300;line-height:1.08;color:var(--charcoal);margin-bottom:26px}
.h2 em{font-style:italic;color:var(--gold-d)}
.h2.w{color:var(--ivory)}
.h2.w em{color:var(--gold-l)}
.h2.center{text-align:center}
.body-text{font-size:.8rem;line-height:2.15;color:var(--mid);margin-bottom:16px}
.body-text.w{color:rgba(255,255,255,.66)}
.body-text.note{font-size:.74rem;color:var(--soft);font-style:italic}
.body-text.gap{margin-top:14px}
/* Gold button with dark text: same gold as the original, readable contrast */
.btn{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;background:var(--gold);color:var(--dark);padding:15px 36px;text-decoration:none;transition:all .4s;display:inline-block;border:none;font-weight:500}
.btn:hover{background:var(--gold-l);transform:translateY(-2px);box-shadow:0 14px 40px rgba(160,120,64,.38)}
.btn.nowrap{white-space:nowrap}
.btn.mt{margin-top:32px}
.btn-o{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.66);text-decoration:none;display:flex;align-items:center;gap:10px;transition:color .3s;font-weight:400}
.btn-o:hover{color:var(--gold-l)}
.btn-o::after{content:'→';font-size:1rem}
.btn-line{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text);text-decoration:none;border:1px solid var(--gold);padding:14px 34px;display:inline-block;transition:all .4s;font-weight:400}
.btn-line:hover{background:var(--gold);border-color:var(--gold);color:var(--dark)}
.divider{display:flex;align-items:center;gap:16px;margin:28px 0}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--cb)}
.divider span{font-family:var(--serif);font-size:1rem;color:var(--gold)}

/* 09 PHILOSOPHY ------------------------------------------------------------ */
.s-philosophy{padding:130px 90px;display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center;background:var(--warm)}
.phil-vis{position:relative;padding-bottom:36px;padding-right:36px;z-index:0}
.phil-main{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top center;display:block;height:auto}
.phil-inset{position:absolute;width:44%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:top;bottom:0;right:0;border:7px solid var(--warm);display:block;box-shadow:0 20px 60px rgba(0,0,0,.12)}
.phil-frame{position:absolute;top:30px;left:30px;right:0;bottom:0;border:1px solid var(--cb);z-index:-1}
.phil-num{position:absolute;top:-10px;left:-10px;font-family:var(--serif);font-size:10rem;font-weight:300;color:var(--champagne);line-height:1;z-index:-1;opacity:.4;user-select:none;pointer-events:none}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}
.pillar{padding:22px 20px;border:1px solid var(--cb);transition:all .4s;position:relative;overflow:hidden}
.pillar::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.pillar:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 10px 36px rgba(201,169,110,.1)}
.pillar:hover::after{transform:scaleX(1)}
.p-bar{width:24px;height:1px;background:var(--gold);margin-bottom:12px}
.p-title{font-family:var(--serif);font-size:1.02rem;font-weight:500;color:var(--charcoal);margin-bottom:7px}
.p-text{font-size:.69rem;line-height:1.82;color:var(--soft)}

/* 10 SERVICES -------------------------------------------------------------- */
.s-services{padding:130px 0;background:var(--ivory)}
.svc-header{padding:0 90px;display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:64px}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.svc-card{position:relative;aspect-ratio:3/4;overflow:hidden;background:linear-gradient(160deg,#3a322a 0%,var(--charcoal) 60%,var(--dark) 100%)}
.svc-bg.failed{display:none}
.svc-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .8s,filter .6s;filter:brightness(.62) saturate(.72)}
.svc-card:hover .svc-bg,.svc-card:focus-within .svc-bg{transform:scale(1.09);filter:brightness(.42) saturate(.6)}
.svc-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,3,1,.94) 0%,transparent 58%);z-index:1}
.svc-con{position:absolute;bottom:0;left:0;right:0;padding:38px 30px;z-index:2;transform:translateY(36px);transition:transform .5s}
.svc-card:hover .svc-con,.svc-card:focus-within .svc-con{transform:translateY(0)}
.svc-n{font-family:var(--serif);font-size:.65rem;color:var(--gold);letter-spacing:.2em;margin-bottom:8px}
.svc-t{font-family:var(--serif);font-size:1.55rem;font-weight:400;color:#fff;line-height:1.18;margin-bottom:14px}
.svc-d{font-size:.69rem;line-height:1.82;color:rgba(255,255,255,.78);opacity:0;transform:translateY(10px);transition:all .4s ease .1s}
.svc-card:hover .svc-d,.svc-card:focus-within .svc-d{opacity:1;transform:translateY(0)}
.svc-lnk{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:.56rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);text-decoration:none;opacity:0;transition:opacity .4s ease .15s}
.svc-card:hover .svc-lnk,.svc-card:focus-within .svc-lnk{opacity:1}
/* Touch screens cannot hover: show the description by default */
@media (hover:none){
  .svc-con{transform:none}
  .svc-d,.svc-lnk{opacity:1;transform:none}
  .svc-bg{filter:brightness(.42) saturate(.6)}
}

/* 11 AIRWAY ---------------------------------------------------------------- */
.s-airway{display:grid;grid-template-columns:5fr 7fr;min-height:100vh;background:var(--dark);overflow:hidden}
.aw-con{padding:120px 80px;display:flex;flex-direction:column;justify-content:center}
.aw-list{list-style:none;margin-top:34px;display:flex;flex-direction:column;gap:16px}
.aw-list li{display:flex;align-items:flex-start;gap:16px;font-size:.78rem;line-height:1.85;color:rgba(255,255,255,.68)}
.aw-list li::before{content:'';flex-shrink:0;width:18px;height:1px;background:var(--gold);margin-top:13px}
.aw-quote{margin-top:52px;padding:28px 32px;border-left:2px solid var(--gold);font-family:var(--serif);font-size:1.15rem;font-style:italic;color:var(--champagne);line-height:1.75}
.aw-vis{position:relative;overflow:hidden}
.aw-vis picture{width:100%;height:100%}
.aw-vis img{width:100%;height:100%;object-fit:cover;object-position:top center;filter:brightness(.68) saturate(.8);display:block}
.aw-vis::before{content:'';position:absolute;inset:0;background:linear-gradient(to right,var(--dark) 0%,transparent 42%);z-index:1}

/* 12 NUMBERS BAND ---------------------------------------------------------- */
.s-numbers{background:var(--charcoal);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(201,169,110,.1)}
.num-item{padding:60px 40px;border-right:1px solid rgba(255,255,255,.06);text-align:center;position:relative}
.num-item:last-child{border-right:none}
.num-item::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:30px;height:2px;background:var(--gold);opacity:0;transition:opacity .4s}
.num-item:hover::after{opacity:1}
.num-val{font-family:var(--serif);font-size:3.8rem;font-weight:300;color:var(--ivory);line-height:1;margin-bottom:8px}
.num-val sup{font-size:1.6rem;color:var(--gold);vertical-align:super}
.num-lbl{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:10px}
.num-desc{font-size:.7rem;line-height:1.7;color:rgba(255,255,255,.55);max-width:170px;margin:0 auto}

/* 13 ABOUT ----------------------------------------------------------------- */
.s-about{display:grid;grid-template-columns:1fr 1fr;min-height:95vh}
.ab-img{position:relative;overflow:hidden}
.ab-img picture{width:100%;height:100%}
.ab-img img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.ab-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,transparent 58%,var(--warm) 100%);z-index:1}
.ab-con{padding:110px 80px;display:flex;flex-direction:column;justify-content:center;background:var(--warm)}
.creds{margin-top:42px;display:flex;flex-direction:column;list-style:none}
.cred{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--cb)}
.cred-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0;margin-top:7px}
.cred-text{font-size:.75rem;line-height:1.7;color:var(--mid)}
.cred-text strong{color:var(--charcoal);font-weight:500}

/* 14 REGENERATIVE / BIO ---------------------------------------------------- */
.s-bio{padding:130px 90px;background:var(--ivory);display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}
.bio-img{position:relative}
.bio-img img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;object-position:top;display:block}
.bio-cap{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,13,.76) 0%,transparent 52%);display:flex;align-items:flex-end;padding:36px 32px}
.bio-cap-text{font-family:var(--serif);font-size:1.12rem;font-style:italic;color:var(--ivory);line-height:1.65}
.bio-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:46px}
.bc{padding:26px 22px;background:var(--warm);border:1px solid transparent;transition:all .4s;position:relative;overflow:hidden}
.bc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.bc:hover{border-color:var(--cb);transform:translateY(-4px);box-shadow:0 14px 44px rgba(0,0,0,.06)}
.bc:hover::after{transform:scaleX(1)}
.bc-sym{font-family:var(--serif);font-size:2rem;color:var(--gold-l);margin-bottom:10px;line-height:1}
.bc-title{font-family:var(--serif);font-size:1.02rem;font-weight:500;color:var(--charcoal);margin-bottom:7px}
.bc-text{font-size:.69rem;line-height:1.82;color:var(--soft)}
.bc.dark{grid-column:span 2;background:var(--charcoal)}
.bc.dark .bc-title{color:var(--ivory);font-size:1.25rem}
.bc.dark .bc-text{color:rgba(255,255,255,.62)}

/* 15 INVESTORS (partners page) -------------------------------------------- */
.s-investor{padding:130px 90px;background:var(--charcoal);position:relative;overflow:hidden}
.s-investor.page-top{padding-top:190px;min-height:100vh}
.inv-word{position:absolute;top:-60px;right:-30px;font-family:var(--serif);font-size:20vw;font-weight:300;color:rgba(255,255,255,.02);line-height:1;pointer-events:none;user-select:none}
.inv-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:80px;position:relative}
.inv-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.07);position:relative}
.inv-m{padding:46px 34px;border-right:1px solid rgba(255,255,255,.07)}
.inv-m:last-child{border-right:none}
.inv-v{font-family:var(--serif);font-size:3.5rem;font-weight:300;color:var(--ivory);line-height:1;margin-bottom:6px}
.inv-v sup{font-size:1.3rem;color:var(--gold);vertical-align:super}
.inv-l{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:11px}
.inv-d{font-size:.69rem;line-height:1.7;color:rgba(255,255,255,.55)}
.inv-cta{margin-top:70px;padding:52px 56px;border:1px solid rgba(201,169,110,.16);display:grid;grid-template-columns:1fr auto;gap:60px;align-items:center;position:relative}
.inv-cta-t{font-family:var(--serif);font-size:1.65rem;font-weight:300;color:var(--ivory);margin-bottom:12px}
.inv-cta-d{font-size:.77rem;line-height:1.92;color:rgba(255,255,255,.62)}
.inv-note{margin-top:40px;font-size:.66rem;line-height:1.8;color:rgba(255,255,255,.5);max-width:760px;position:relative}

/* 16 PROFESSIONALS --------------------------------------------------------- */
.s-pro{padding:130px 90px;background:var(--blush);display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}
.pro-list{list-style:none;display:flex;flex-direction:column}
.pro-item{display:flex;gap:22px;align-items:flex-start;padding:24px 0;border-bottom:1px solid rgba(201,169,110,.2);transition:padding-left .3s}
.pro-item:hover{padding-left:8px}
.pro-n{font-family:var(--serif);font-size:1.8rem;font-weight:300;color:var(--gold-d);line-height:1;flex-shrink:0}
.pro-t{font-family:var(--serif);font-size:1.18rem;font-weight:400;color:var(--charcoal);margin-bottom:5px}
.pro-d{font-size:.72rem;line-height:1.82;color:var(--mid)}

/* 17 PATIENT VOICES -------------------------------------------------------- */
.s-testi{padding:130px 90px;background:var(--warm)}
.testi-head{text-align:center;margin-bottom:72px}
.testi-head .lbl{justify-content:center}
/* Reviews panel (links to verified Google reviews) */
.rv-panel{max-width:860px;margin:0 auto;padding:64px 56px;border:1px solid var(--cb);text-align:center;position:relative;background:var(--warm);transition:all .4s}
.rv-panel:hover{border-color:var(--gold);box-shadow:0 16px 50px rgba(201,169,110,.1)}
.rv-mark{font-family:var(--serif);font-size:3rem;color:var(--gold-l);line-height:1;opacity:.5;margin-bottom:6px}
.rv-quote{font-family:var(--serif);font-size:1.5rem;font-style:italic;font-weight:300;line-height:1.6;color:var(--charcoal);max-width:600px;margin:0 auto 18px}
.rv-text{font-size:.78rem;line-height:2;color:var(--mid);max-width:520px;margin:0 auto 34px}
.rv-actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
/* Review cards — use these when real, verbatim Google reviews are supplied */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.tc{padding:44px 34px;border:1px solid var(--cb);position:relative;transition:all .4s;background:var(--warm)}
.tc:hover{border-color:var(--gold);box-shadow:0 16px 50px rgba(201,169,110,.1);transform:translateY(-4px)}
.tc-g{position:absolute;top:28px;left:28px;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}
.tc-q{font-family:var(--serif);font-size:3rem;color:var(--gold-l);line-height:1;margin-bottom:12px;opacity:.38;margin-top:26px}
.tc-text{font-family:var(--serif);font-size:1.05rem;font-style:italic;line-height:1.85;color:var(--mid);margin-bottom:26px}
.tc-auth{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid var(--cb)}
.tc-av{width:38px;height:38px;border-radius:50%;background:var(--champagne);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.05rem;color:var(--gold-d);flex-shrink:0}
.tc-name{font-size:.65rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);margin-bottom:3px}
.tc-loc{font-size:.59rem;color:var(--soft)}
.tc.dark{background:var(--charcoal);border-color:rgba(201,169,110,.16)}
.tc.dark .tc-q{color:var(--gold)}
.tc.dark .tc-text{color:rgba(255,255,255,.76)}
.tc.dark .tc-name{color:var(--ivory)}
.tc.dark .tc-loc,.tc.dark .tc-g{color:rgba(255,255,255,.55)}
.tc.dark .tc-auth{border-top-color:rgba(201,169,110,.16)}
.tc.dark .tc-av{background:rgba(201,169,110,.16);color:var(--gold-l)}

/* 18 FAQ ------------------------------------------------------------------- */
.s-faq{padding:130px 90px;background:var(--ivory);display:grid;grid-template-columns:4fr 7fr;gap:110px;align-items:start}
.faq-intro{position:sticky;top:120px}
.faq-list{border-top:1px solid var(--cb)}
.faq-item{border-bottom:1px solid var(--cb)}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0}
.faq-item summary::-webkit-details-marker{display:none}
.faq-q{font-family:var(--serif);font-size:1.3rem;font-weight:400;line-height:1.35;color:var(--charcoal);transition:color .3s}
.faq-item summary:hover .faq-q{color:var(--gold-d)}
.faq-icon{flex-shrink:0;width:28px;height:28px;border:1px solid var(--cb);position:relative;transition:all .3s}
.faq-icon::before,.faq-icon::after{content:'';position:absolute;top:50%;left:50%;width:10px;height:1px;background:var(--gold-d);transform:translate(-50%,-50%);transition:transform .3s}
.faq-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] .faq-icon{background:var(--gold-d);border-color:var(--gold-d)}
.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(0)}
.faq-a{font-size:.8rem;line-height:2.1;color:var(--mid);padding:0 52px 28px 0;max-width:640px}
.faq-a a{color:var(--gold-text);text-underline-offset:3px}

/* 19 CONTACT AND FORM ------------------------------------------------------ */
.s-contact{display:grid;grid-template-columns:1fr 1fr;min-height:90vh}
.ct-left{position:relative;overflow:hidden}
.ct-left picture{width:100%;height:100%}
.ct-left img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.ct-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,13,.9) 0%,rgba(13,13,13,.3) 55%,transparent 100%);z-index:1}
.ct-info{position:absolute;bottom:0;left:0;right:0;padding:60px;z-index:2}
.ct-info .h2.w{font-size:2.5rem;margin-bottom:34px}
.ct-details{display:flex;flex-direction:column;gap:20px;font-style:normal}
.ct-lbl{font-size:.53rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-l);margin-bottom:4px}
.ct-val{font-family:var(--serif);font-size:1rem;color:var(--ivory);font-style:normal}
.ct-val a{color:var(--ivory);text-decoration:none;transition:color .3s}
.ct-val a:hover{color:var(--gold-l)}
.ct-socials{display:flex;gap:14px;margin-top:34px;list-style:none}
.soc{width:44px;height:44px;border:1px solid rgba(201,169,110,.4);display:flex;align-items:center;justify-content:center;color:var(--gold-l);text-decoration:none;font-size:.72rem;transition:all .4s}
.soc:hover{background:var(--gold);color:var(--dark);border-color:var(--gold)}
.ct-right{background:var(--ivory);padding:90px 76px;display:flex;flex-direction:column;justify-content:center}
.fg{margin-bottom:22px}
.fg label{display:block;font-size:.56rem;letter-spacing:.25em;text-transform:uppercase;color:var(--soft);margin-bottom:10px}
.fg input,.fg select,.fg textarea{width:100%;padding:12px 0;border:none;border-bottom:1px solid var(--champagne);border-radius:0;background:transparent;font-family:var(--sans);font-size:.81rem;font-weight:300;color:var(--charcoal);outline:none;transition:border-color .3s;-webkit-appearance:none;appearance:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-bottom-color:var(--gold-d)}
.fg input:focus-visible,.fg select:focus-visible,.fg textarea:focus-visible{outline:none;border-bottom:2px solid var(--gold-d)}
.fg ::placeholder{color:#8f8f8f;opacity:1}
.fg textarea{resize:none;height:70px}
.fg.invalid input{border-bottom-color:#B3261E}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.f-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.fsub{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;background:var(--charcoal);color:#fff;border:none;padding:16px 44px;transition:all .4s;font-weight:400}
.fsub:hover{background:var(--gold);color:var(--dark);transform:translateY(-2px);box-shadow:0 12px 34px rgba(0,0,0,.15)}
.f-alt{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);text-underline-offset:4px}
.f-note{font-size:.66rem;line-height:1.8;color:var(--soft);margin-top:18px;max-width:440px}
.f-note a{color:var(--gold-text)}
.f-status{font-size:.7rem;line-height:1.7;color:var(--gold-text);margin-top:14px;min-height:1.2em}
.lic{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--cb);font-size:.56rem;letter-spacing:.13em;color:var(--soft);margin-top:22px}
.lic::before{content:'✦';color:var(--gold)}

/* 20 FOOTER ---------------------------------------------------------------- */
.footer{background:var(--dark);padding:50px 90px;display:flex;justify-content:space-between;align-items:center;gap:30px;border-top:1px solid rgba(255,255,255,.04)}
.f-logo{font-family:var(--serif);font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.62);text-decoration:none}
.f-links{display:flex;gap:26px;list-style:none;flex-wrap:wrap;justify-content:center}
.f-links a{font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);text-decoration:none;transition:color .3s}
.f-links a:hover{color:var(--gold)}
.f-copy{font-size:.56rem;letter-spacing:.1em;line-height:1.9;color:rgba(255,255,255,.5);text-align:right}

/* 21 WHATSAPP FLOATING BUTTON --------------------------------------------- */
/* Appears once the visitor scrolls past the hero; steps aside at the contact section and footer */
.wa-float{position:fixed;right:26px;bottom:26px;z-index:900;display:flex;align-items:center;gap:10px;height:52px;padding:0 20px 0 16px;background:var(--charcoal);border:1px solid var(--gold);color:var(--gold-l);text-decoration:none;font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;box-shadow:0 12px 34px rgba(0,0,0,.22);transition:opacity .4s,transform .4s,visibility .4s,background .4s,color .4s}
.wa-float:hover{background:var(--gold);color:var(--dark)}
@media (scripting:enabled){
  .wa-float{opacity:0;visibility:hidden;transform:translateY(12px)}
  .wa-float.show{opacity:1;visibility:visible;transform:none}
}
.wa-float svg{width:20px;height:20px;flex-shrink:0}

/* 22 INNER PAGES ----------------------------------------------------------- */
.page{padding:170px 90px 110px;background:var(--warm);min-height:70vh}
.page-inner{max-width:760px;margin:0 auto}
.page h1{font-family:var(--serif);font-size:clamp(2.6rem,3.6vw,4rem);font-weight:300;line-height:1.08;margin-bottom:14px}
.page h1 em{font-style:italic;color:var(--gold-d)}
.page .updated{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-bottom:46px}
.prose h2{font-family:var(--serif);font-size:1.6rem;font-weight:400;margin:44px 0 12px;color:var(--charcoal)}
.prose p,.prose li{font-size:.84rem;line-height:2.05;color:var(--mid)}
.prose p{margin-bottom:14px}
.prose ul{margin:0 0 14px 20px}
.prose a{color:var(--gold-text);text-underline-offset:3px}
.prose strong{font-weight:500;color:var(--charcoal)}
.page.center{display:flex;align-items:center;text-align:center;min-height:100vh}
.page.center .lbl{justify-content:center}
.page.center .lbl::before{display:none}
.page-actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:36px}

/* 23 ANIMATIONS AND REVEAL ------------------------------------------------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes zoomOut{from{transform:scale(1.05)}to{transform:scale(1)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes scrollPulse{0%,100%{opacity:1;transform:scaleY(1)}50%{opacity:.3;transform:scaleY(.5)}}
/* Reveal-on-scroll only hides content when the browser can run scripts */
@media (scripting:enabled){
  .reveal{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
  .reveal.visible{opacity:1;transform:translateY(0)}
}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* 24 MOBILE ---------------------------------------------------------------- */
@media (max-width:1100px){
  .nav{padding:22px 34px}
  .nav.scrolled,.nav.solid{padding:14px 34px}
  .nav-links{gap:22px}
}
@media (max-width:900px){
  .nav{padding:12px 16px 12px 22px}
  .nav.scrolled,.nav.solid{padding:8px 16px 8px 22px}
  .nav-cta{display:none}
  .nav-toggle{display:block}
  .nav-logo{position:relative;z-index:1002;font-size:.95rem}
  .nav.open .nav-logo{color:var(--ivory)}
  .nav.open .nav-logo span{color:var(--gold-l)}
  .nav-links{position:fixed;inset:0;z-index:1001;background:var(--charcoal);flex-direction:column;justify-content:center;align-items:center;gap:30px;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}
  .nav.open .nav-links{opacity:1;visibility:visible}
  .nav-links a,.nav.scrolled .nav-links a,.nav.solid .nav-links a{font-family:var(--serif);font-size:1.7rem;letter-spacing:.06em;text-transform:none;color:var(--ivory)}
  .nav-links-cta{display:list-item}
  .nav .nav-links .nav-links-cta a{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-l);border:1px solid rgba(201,169,110,.5);padding:14px 30px;display:inline-block;margin-top:10px}
  .nav-links .nav-links-cta a::after{display:none}

  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-left{padding:120px 26px 60px}
  .hero-left::after{display:none}
  .hero-title{font-size:clamp(2.6rem,11vw,3.4rem)}
  .hero-right{height:100vw}
  .hero-badge,.hero-stats,.hero-scroll{display:none}

  .s-philosophy,.s-bio,.s-about,.s-pro,.s-contact,.s-faq{grid-template-columns:1fr}
  .s-philosophy,.s-bio,.s-pro,.s-faq{padding:80px 26px;gap:50px}
  .phil-num{font-size:5rem}
  .s-services{padding:80px 0}
  .svc-header{padding:0 26px;flex-direction:column;align-items:flex-start;gap:18px}
  .svc-grid{grid-template-columns:1fr}
  .svc-card{aspect-ratio:4/5}
  .s-airway{grid-template-columns:1fr;min-height:auto}
  .aw-vis{height:110vw;order:-1}
  .aw-vis::before{background:linear-gradient(to top,var(--dark) 0%,transparent 42%)}
  .aw-con{padding:70px 26px 80px}
  .s-numbers{grid-template-columns:1fr 1fr}
  .num-item{padding:44px 20px}
  .num-item:nth-child(2n){border-right:none}
  .num-item:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.06)}
  .s-about{min-height:auto}
  .ab-img{height:120vw}
  .ab-img::after{background:linear-gradient(to bottom,transparent 70%,var(--warm) 100%)}
  .ab-con{padding:50px 26px 80px}
  .pillars,.bio-cards{grid-template-columns:1fr}
  .bc.dark{grid-column:auto}
  .inv-head{grid-template-columns:1fr;gap:20px;margin-bottom:50px}
  .inv-metrics{grid-template-columns:1fr 1fr}
  .inv-m{padding:34px 18px}
  .inv-m:nth-child(2n){border-right:none}
  .inv-cta{grid-template-columns:1fr;padding:36px 26px;gap:30px}
  .s-investor{padding:80px 26px}
  .s-investor.page-top{padding-top:130px}
  .s-testi{padding:80px 26px}
  .testi-head{margin-bottom:46px}
  .testi-grid{grid-template-columns:1fr}
  .rv-panel{padding:44px 24px}
  .rv-quote{font-size:1.25rem}
  .faq-intro{position:static}
  .faq-a{padding-right:0}
  .ct-left{min-height:170vw}
  .ct-info{padding:32px 26px}
  .ct-right{padding:70px 26px 90px}
  .fr{grid-template-columns:1fr;gap:0}
  .footer{flex-direction:column;gap:18px;padding:40px 26px 100px;text-align:center}
  .f-copy{text-align:center}
  .wa-float{right:16px;bottom:16px;width:52px;padding:0;justify-content:center}
  .wa-float span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .page{padding:120px 26px 80px}

  /* Comfortable reading size on phones */
  .body-text,.hero-desc,.aw-list li,.faq-a,.prose p,.prose li{font-size:.9rem;line-height:1.95}
  .p-text,.bc-text,.svc-d,.pro-d,.num-desc,.inv-d,.cred-text{font-size:.8rem}
  .fg input,.fg select,.fg textarea{font-size:1rem}   /* 16px stops iOS zooming into fields */
}

/* 25 REDUCED MOTION AND PRINT --------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .marquee-track{animation:none}
  .reveal{opacity:1;transform:none}
}
@media print{
  .nav,.wa-float,.cursor,.cursor-ring,.marquee-band,.hero-scroll{display:none!important}
  .reveal{opacity:1;transform:none}
  body{background:#fff}
}
