:root{--navy:#0c1f31;--blue:#25558d;--blue2:#315f99;--ivory:#ece6da;--cream:#f5f0e7;--ink:#10243a;--white:#fff;--line:rgba(16,36,58,.18);--max:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",Arial,sans-serif;color:var(--ink);background:var(--cream);font-size:17px;line-height:1.65}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.container{width:min(var(--max),calc(100% - 64px));margin:auto}.site-header{position:fixed;z-index:50;top:0;left:0;width:100%;padding:18px 0;transition:.3s}.site-header.scrolled{background:rgba(12,31,49,.92);backdrop-filter:blur(18px);box-shadow:0 8px 32px rgba(0,0,0,.15)}.nav-shell{width:min(1450px,calc(100% - 52px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{font-weight:700;letter-spacing:.12em;color:white;font-size:19px;white-space:nowrap}.main-nav{display:flex;align-items:center;gap:34px;color:white}.main-nav a{font-size:16px;font-weight:600}.nav-cta{padding:13px 21px;border:1px solid rgba(255,255,255,.6);border-radius:999px}.menu-toggle{display:none;background:none;border:0;color:white;font:inherit;font-weight:700}.hero{min-height:920px;background:radial-gradient(circle at 65% 30%,rgba(66,111,148,.5),transparent 29%),linear-gradient(135deg,#112938,#0a1c2b 68%);color:white;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(to bottom,black,transparent 80%)}.hero-shell{min-height:920px;width:min(1450px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:1.1fr .95fr .55fr;align-items:center;position:relative;padding-top:80px}.hero-copy{z-index:3;align-self:center;max-width:620px;padding-bottom:30px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:13px}.hero h1{font-size:clamp(42px,5vw,72px);line-height:.98;letter-spacing:-.055em;margin:20px 0 28px;max-width:700px}.hero h1 em,.section h2 em{font-family:"Playfair Display",serif;font-weight:600}.hero-lead{font-size:20px;color:rgba(255,255,255,.78);max-width:610px}.hero-actions{display:flex;gap:26px;align-items:center;margin-top:38px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:16px 25px;font-weight:700;font-size:15px;cursor:pointer}.button-light{background:var(--cream);color:var(--navy)}.button-dark{background:var(--navy);color:white;width:100%}.text-link{font-weight:700}.hero-portrait-wrap{height:100%;position:relative;align-self:end;z-index:2}.hero-portrait{position:absolute;bottom:0;left:50%;transform:translateX(-49%);width:min(790px,52vw);max-width:none;height:880px;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 25px 35px rgba(0,0,0,.3))}.portrait-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:rgba(85,145,187,.22);filter:blur(60px);bottom:80px;left:50%;transform:translateX(-50%)}.hero-profile{z-index:3;align-self:center;padding-left:10px}.hero-profile h2{font-size:45px;line-height:.95;letter-spacing:-.04em;margin:0 0 35px}.hero-profile dl{display:grid;gap:23px;margin:0}.hero-profile dl div{border-top:1px solid rgba(255,255,255,.25);padding-top:14px}.hero-profile dt{font-size:17px;font-weight:700}.hero-profile dd{margin:5px 0 0;color:rgba(255,255,255,.64);font-size:13px;line-height:1.4}.section{padding:115px 0}.section-ivory{background:var(--ivory)}.section-cream{background:var(--cream)}.section-blue{background:var(--blue);color:white}.two-col-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:90px;align-items:end;margin-bottom:65px}.section h2{font-size:clamp(40px,5vw,72px);line-height:1.02;letter-spacing:-.055em;margin:14px 0 0}.section-intro{font-size:19px;margin:0;color:#536275}.light .section-intro{color:rgba(255,255,255,.72)}.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.audience-grid article{padding:34px;min-height:240px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.audience-grid span{font-size:12px;font-weight:700}.audience-grid h3{font-size:24px;margin:34px 0 10px}.audience-grid p{margin:0;color:#586679}.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}.offer-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:38px;border-radius:3px;display:flex;flex-direction:column;min-height:580px}.offer-card.featured{background:#111c54;transform:translateY(-18px);box-shadow:0 25px 50px rgba(0,0,0,.15)}.offer-label{text-transform:uppercase;letter-spacing:.1em;font-size:12px}.offer-card h3{font-size:34px;line-height:1.07;margin:15px 0}.offer-card p{color:rgba(255,255,255,.75)}.offer-card ul{padding:0;list-style:none;margin:22px 0 30px}.offer-card li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.15)}.offer-card li:before{content:"✓";margin-right:10px}.offer-card a{margin-top:auto;font-weight:700;border-top:1px solid rgba(255,255,255,.25);padding-top:20px}.why-grid{display:grid;grid-template-columns:1fr .82fr;gap:90px;align-items:center}.why-copy>p:not(.section-kicker){font-size:19px;color:#566579}.proof-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:45px}.proof-list div{border-top:1px solid var(--line);padding-top:18px}.proof-list strong{display:block;font-size:36px}.proof-list span{font-size:13px;color:#697584}.why-image{margin:0}.why-image img{width:100%;height:640px;object-fit:cover}.why-image figcaption{background:var(--navy);color:white;padding:24px;font-size:15px}.impact-header{max-width:960px;margin:0 auto 60px}.editorial-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:15px}.tile{margin:0;position:relative;overflow:hidden;background:#ddd}.tile-wide{grid-column:span 2}.tile-tall{grid-row:span 2}.tile img{width:100%;height:100%;object-fit:cover;transition:.5s}.tile:hover img{transform:scale(1.035)}.tile figcaption{position:absolute;bottom:0;left:0;padding:18px;color:white;font-weight:700;width:100%;background:linear-gradient(transparent,rgba(0,0,0,.75))}.credentials{background:#aa6d54;color:white}.credentials-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:90px}.credential-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.credential-columns div{padding:0 30px 40px;border-left:1px solid rgba(255,255,255,.25)}.credential-columns h3{font-size:24px;margin-top:0}.credential-columns p{color:rgba(255,255,255,.76)}.contact{background:var(--cream)}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px}.contact-copy p{font-size:19px;color:#556273}.contact-note{margin-top:35px;padding-top:25px;border-top:1px solid var(--line);font-weight:700}.contact-form{background:white;padding:42px;display:grid;grid-template-columns:1fr 1fr;gap:22px}.contact-form label{display:grid;gap:8px;font-weight:700;font-size:13px}.contact-form label:nth-last-of-type(1){grid-column:1/-1}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:0;border-bottom:1px solid #a8b0ba;padding:12px 0;font:inherit;background:transparent;color:var(--ink)}.contact-form button{grid-column:1/-1;margin-top:8px}footer{background:var(--navy);color:white;padding:50px 0 25px}.footer-row{display:flex;justify-content:space-between;gap:40px}.footer-row div:last-child{text-align:right}.footer-row p{color:rgba(255,255,255,.55);font-size:13px}.credit{border-top:1px solid rgba(255,255,255,.14);margin-top:30px;padding-top:20px;font-size:13px;color:rgba(255,255,255,.55)}.credit a{color:white}.reveal{opacity:0;transform:translateY(24px);transition:.8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1100px){.main-nav{gap:18px}.hero-shell{grid-template-columns:1fr .85fr}.hero-profile{display:none}.hero-portrait{width:620px;height:790px}.audience-grid{grid-template-columns:repeat(2,1fr)}.two-col-heading,.why-grid,.credentials-grid,.contact-grid{gap:50px}.offer-grid{grid-template-columns:1fr}.offer-card{min-height:auto}.offer-card.featured{transform:none}.editorial-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.container,.nav-shell,.hero-shell{width:min(100% - 36px,var(--max))}.site-header{padding:14px 0}.menu-toggle{display:block}.main-nav{position:absolute;top:70px;left:18px;right:18px;display:none;flex-direction:column;align-items:stretch;background:var(--navy);padding:25px;border:1px solid rgba(255,255,255,.15)}.main-nav.open{display:flex}.main-nav a{font-size:18px}.hero{min-height:1000px}.hero-shell{min-height:1000px;grid-template-columns:1fr;align-content:start;padding-top:140px}.hero-copy{max-width:100%;z-index:4}.hero h1{font-size:80px}.hero-lead{max-width:560px}.hero-portrait-wrap{position:absolute;inset:auto 0 0;height:570px}.hero-portrait{height:620px;width:520px;left:68%;opacity:.88}.hero-copy{padding-bottom:470px}.two-col-heading,.why-grid,.credentials-grid,.contact-grid{grid-template-columns:1fr}.audience-grid{grid-template-columns:1fr}.proof-list{grid-template-columns:1fr 1fr}.credential-columns{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.contact-form label,.contact-form label:nth-last-of-type(1),.contact-form button{grid-column:1}.section{padding:85px 0}.editorial-grid{grid-auto-rows:220px}.footer-row{display:grid}.footer-row div:last-child{text-align:left}}
@media(max-width:540px){body{font-size:16px}.brand{font-size:14px}.hero h1{font-size:80px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-portrait{left:60%;height:550px}.hero-copy{padding-bottom:430px}.section h2{font-size:42px}.two-col-heading{gap:30px}.proof-list{grid-template-columns:1fr}.editorial-grid{grid-template-columns:1fr;grid-auto-rows:260px}.tile-wide,.tile-tall{grid-column:auto;grid-row:auto}.contact-form{padding:28px}.why-image img{height:480px}}

.tile,.glass-card,.service-card{transition:transform .35s ease,box-shadow .35s ease;}
.tile:hover,.glass-card:hover,.service-card:hover{transform:translateY(-10px);box-shadow:0 20px 40px rgba(0,0,0,.25);}
.tile img{cursor:pointer;transition:transform .35s ease;}
.tile:hover img{transform:scale(1.05);}
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:9999}
#lightbox.open{display:flex}
#lightbox img{max-width:92vw;max-height:92vh}
#lightbox .close{position:absolute;top:20px;right:30px;font-size:42px;color:#fff;cursor:pointer}

/* Flagship motion system */
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{overflow-x:hidden}
body.is-loading{overflow:hidden}
.site-loader{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;background:#07123f;transition:opacity .7s cubic-bezier(.22,1,.36,1),visibility .7s}
.site-loader.is-finished{opacity:0;visibility:hidden}
.loader-mark{font-family:"DM Sans",sans-serif;font-weight:700;letter-spacing:.28em;color:#fff;font-size:clamp(26px,4vw,48px);transform:translateX(.14em);animation:loaderPulse 1.5s ease-in-out infinite}
.loader-line{position:absolute;width:min(220px,54vw);height:1px;background:rgba(255,255,255,.18);overflow:hidden;margin-top:90px}
.loader-line span{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent,#d4a24f,transparent);transform:translateX(-100%);animation:loaderSweep 1.35s ease-in-out infinite}
@keyframes loaderPulse{50%{opacity:.55;letter-spacing:.34em}}
@keyframes loaderSweep{to{transform:translateX(100%)}}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:15000;pointer-events:none}
.scroll-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#a66f22,#f0cd75,#fff0b0);box-shadow:0 0 14px rgba(240,205,117,.75)}

/* Cinematic hero load without changing the approved portrait position */
.hero-copy,.hero-profile,.hero-portrait-wrap{will-change:transform,opacity}
body.is-loading .hero-copy{opacity:0;transform:translateY(28px)}
body.is-loading .hero-profile{opacity:0;transform:translateX(24px)}
body.is-loading .hero-portrait-wrap{opacity:0;transform:scale(.985)}
body:not(.is-loading) .hero-copy{animation:heroCopyIn 1s .15s both cubic-bezier(.22,1,.36,1)}
body:not(.is-loading) .hero-profile{animation:heroProfileIn 1s .36s both cubic-bezier(.22,1,.36,1)}
body:not(.is-loading) .hero-portrait-wrap{animation:heroPortraitIn 1.25s .12s both cubic-bezier(.22,1,.36,1)}
@keyframes heroCopyIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes heroProfileIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes heroPortraitIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.hero-particles{position:absolute;inset:7% 4% 8%;pointer-events:none;overflow:hidden;z-index:0}
.hero-particles i{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(245,211,134,.7);box-shadow:0 0 14px rgba(245,211,134,.7);animation:floatParticle 8s ease-in-out infinite}
.hero-particles i:nth-child(1){left:17%;top:32%;animation-delay:-1s}.hero-particles i:nth-child(2){left:76%;top:22%;animation-delay:-4s;width:3px;height:3px}.hero-particles i:nth-child(3){left:62%;top:58%;animation-delay:-2s}.hero-particles i:nth-child(4){left:27%;top:71%;animation-delay:-6s;width:2px;height:2px}.hero-particles i:nth-child(5){left:85%;top:76%;animation-delay:-3s}.hero-particles i:nth-child(6){left:44%;top:15%;animation-delay:-5s;width:2px;height:2px}
@keyframes floatParticle{0%,100%{transform:translate3d(0,0,0);opacity:.18}50%{transform:translate3d(8px,-26px,0);opacity:.85}}

/* Premium text and section storytelling */
.section-kicker,.section h2,.section-intro,.audience-grid article,.offer-card,.proof-list>div,.credential-columns>div,.contact-form,.why-image,.tile{will-change:transform,opacity}
.motion-pending{opacity:0;transform:translateY(34px)}
.motion-ready .motion-in{opacity:1;transform:none;transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}
.section h2 em{position:relative;display:inline-block}
.section h2 em::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:linear-gradient(90deg,transparent,#c79037,transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.1s .25s cubic-bezier(.22,1,.36,1)}
.section h2.motion-in em::after,.motion-in.section h2 em::after{transform:scaleX(1)}

/* Glass reflection and liquid hover engine */
.audience-grid article,.offer-card,.credential-columns>div,.contact-form{position:relative;overflow:hidden;isolation:isolate}
.audience-grid article::before,.offer-card::before,.credential-columns>div::before,.contact-form::before{content:"";position:absolute;inset:-55%;z-index:-1;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(242,205,121,.22),transparent 29%);opacity:0;transition:opacity .35s ease;pointer-events:none}
.audience-grid article::after,.offer-card::after,.credential-columns>div::after,.contact-form::after{content:"";position:absolute;top:-140%;left:-70%;width:48%;height:360%;background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.16) 46%,rgba(255,255,255,.42) 50%,rgba(255,255,255,.12) 55%,transparent 75%);transform:rotate(10deg);transition:transform .9s cubic-bezier(.22,1,.36,1);pointer-events:none}
.audience-grid article:hover::before,.offer-card:hover::before,.credential-columns>div:hover::before,.contact-form:hover::before{opacity:1}
.audience-grid article:hover::after,.offer-card:hover::after,.credential-columns>div:hover::after,.contact-form:hover::after{transform:translateX(420%) rotate(10deg)}
.audience-grid article,.offer-card{transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s,border-color .45s,background .45s}
.audience-grid article:hover{transform:translateY(-9px);z-index:2;background:linear-gradient(145deg,#fffdfa,#f4ead7);box-shadow:0 24px 50px rgba(7,18,63,.13),0 0 0 1px rgba(183,128,45,.3)}
.offer-card:hover{transform:translateY(-12px) scale(1.008);border-color:rgba(240,205,117,.64);box-shadow:0 28px 68px rgba(0,0,0,.24),0 0 30px rgba(209,158,69,.18)}
.offer-card.featured:hover{transform:translateY(-25px) scale(1.008)}

/* Animated gold border on featured cards */
.offer-card.featured{position:relative;background:linear-gradient(#111c54,#111c54) padding-box,linear-gradient(115deg,#7f551c,#f3d58e,#a87327,#fff0b5,#7f551c) border-box;border:1px solid transparent;background-size:100% 100%,300% 300%;animation:borderFlow 7s linear infinite}
@keyframes borderFlow{0%{background-position:0 0,0 50%}100%{background-position:0 0,300% 50%}}

/* Magnetic buttons and premium links */
.button,.nav-cta,.text-link,.offer-card a{position:relative;overflow:hidden;will-change:transform;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,background .28s}
.button::after,.nav-cta::after{content:"";position:absolute;inset:-80%;background:radial-gradient(circle,rgba(255,255,255,.44),transparent 37%);transform:scale(0);transition:transform .45s ease;pointer-events:none}
.button:hover::after,.nav-cta:hover::after{transform:scale(1)}
.button:hover,.nav-cta:hover{box-shadow:0 14px 32px rgba(0,0,0,.2),0 0 22px rgba(223,176,81,.28)}
.text-link span{display:inline-block;transition:transform .3s}.text-link:hover span{transform:translate(5px,-5px)}
.main-nav>a:not(.nav-cta){position:relative}.main-nav>a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:#e8c779;transform:scaleX(0);transform-origin:right;transition:transform .35s}.main-nav>a:not(.nav-cta):hover::after{transform:scaleX(1);transform-origin:left}

/* Gallery depth and cinematic light */
.tile{perspective:900px;transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s}
.tile::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,236,188,.26),transparent 34%);opacity:0;transition:opacity .3s;pointer-events:none}
.tile:hover{transform:translateY(-10px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 26px 60px rgba(7,18,63,.25)}
.tile:hover::after{opacity:1}.tile img{transition:transform .7s cubic-bezier(.22,1,.36,1),filter .45s}.tile:hover img{transform:scale(1.075);filter:saturate(1.06) contrast(1.03)}
#lightbox{backdrop-filter:blur(12px);opacity:0;transition:opacity .35s}
#lightbox.open{opacity:1}.lightbox-frame{position:relative}.lightbox-caption{position:absolute;left:0;right:0;bottom:-40px;color:white;text-align:center;font-weight:600}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:26px;cursor:pointer;backdrop-filter:blur(8px)}.lightbox-prev{left:24px}.lightbox-next{right:24px}

/* Footer atmosphere */
footer{position:relative;overflow:hidden;isolation:isolate}.footer-aurora{position:absolute;inset:-120% -20% auto;height:420px;background:radial-gradient(ellipse,rgba(201,145,48,.2),transparent 65%);animation:footerGlow 9s ease-in-out infinite alternate;z-index:-1}.footer-particles{position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(circle,rgba(238,205,132,.6) 1px,transparent 1.5px);background-size:54px 54px;mask-image:linear-gradient(to bottom,transparent,#000);animation:footerDrift 22s linear infinite;z-index:-1}@keyframes footerGlow{to{transform:translateX(18%) scale(1.08)}}@keyframes footerDrift{to{background-position:108px -54px}}

@media(max-width:820px){.offer-card.featured:hover{transform:translateY(-10px) scale(1.005)}.hero-particles{opacity:.5}.lightbox-nav{width:42px;height:42px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-loader{display:none}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-pending{opacity:1;transform:none!important}}

/* Ensure the complete Why Dr. Garnes section is always visible. */
.why-always-visible .why-copy,
.why-always-visible .why-copy .section-kicker,
.why-always-visible .why-copy h2,
.why-always-visible .why-copy p,
.why-always-visible .why-image,
.why-always-visible .proof-list > div {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}
