:root { --ink:#19151d; --night:#130f16; --night-soft:#211824; --plum:#4b173b; --berry:#a92360; --violet:#7656d7; --lavender:#f2edf6; --paper:#fbfafc; --white:#fff; --muted:#6c6370; --gold:#f5bd3f; --line:rgba(25,21,29,.14); --serif:"PT Serif",Georgia,serif; --sans:"Roboto",Arial,sans-serif; --max:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; }
img { display:block; max-width:100%; }
button,a { -webkit-tap-highlight-color:transparent; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:1rem; top:-100px; z-index:100; padding:.8rem 1rem; background:var(--white); }
.skip-link:focus { top:1rem; }
.site-header { position:fixed; z-index:50; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; min-height:78px; padding:0 max(24px,calc((100vw - var(--max))/2)); color:var(--white); transition:background .25s ease,box-shadow .25s ease; }
.site-header.is-scrolled { background:rgba(19,15,22,.97); box-shadow:0 8px 30px rgba(0,0,0,.18); }
.brand { display:inline-flex; flex-direction:column; line-height:1; }
.brand-name { color:inherit; text-decoration:none; }
.brand strong { font-size:1.22rem; }
.brand-handle { width:max-content; margin-top:.35rem; color:inherit; font-size:.68rem; font-weight:500; letter-spacing:.03em; text-decoration:none; text-transform:lowercase; opacity:.76; }
.brand-handle:hover { opacity:1; }
.header-socials { display:flex; align-items:center; gap:.45rem; margin-left:auto; margin-right:1.6rem; }
.header-socials a { display:grid; width:34px; height:34px; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.header-socials a:hover { border-color:rgba(255,255,255,.75); background:rgba(255,255,255,.12); transform:translateY(-1px); }
.header-socials img { width:15px; height:15px; }
.desktop-nav { display:flex; align-items:center; gap:1.75rem; font-size:.82rem; font-weight:600; }
.desktop-nav a { text-decoration:none; opacity:.84; }
.desktop-nav a:hover { opacity:1; }
.desktop-nav .nav-cta { padding:.65rem 1.1rem; border:1px solid rgba(255,255,255,.5); opacity:1; }
.menu-button,.mobile-nav { display:none; }
.hero { position:relative; min-height:92svh; overflow:hidden; display:flex; align-items:center; color:var(--white); background:var(--night); }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:68% 34%; filter:saturate(.88); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(19,15,22,.98) 0%,rgba(44,14,39,.9) 35%,rgba(43,16,40,.38) 68%,rgba(19,15,22,.08) 100%); }
.hero-shade::after { content:""; position:absolute; inset:auto 0 0; height:5px; background:linear-gradient(90deg,var(--berry),var(--violet),#6cc5b1); }
.hero-content { position:relative; z-index:1; width:min(var(--max),calc(100% - 48px)); margin:0 auto; padding:9.5rem 0 6.5rem; }
.hero-content>* { max-width:680px; }
.eyebrow { margin:0 0 1.1rem; color:#e7dceb; font-size:.72rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.eyebrow-dark { color:var(--berry); }
h1,h2 { margin:0; font-family:var(--serif); font-weight:400; line-height:1.07; letter-spacing:0; }
h1 { max-width:760px; font-size:clamp(3rem,4.8vw,4.85rem); }
h2 { font-size:clamp(2.3rem,4vw,4.15rem); }
h1 em,h2 em { color:#d84e8c; font-weight:400; }
.hero-promise { margin:1.55rem 0 .7rem; font-size:clamp(1.22rem,2vw,1.58rem); font-weight:700; line-height:1.4; }
.hero-copy { margin:0; color:rgba(255,255,255,.74); font-size:.97rem; }
.hero-actions { display:flex; align-items:center; gap:1.4rem; margin-top:2rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.8rem; min-height:54px; padding:.85rem 1.4rem; border:0; text-decoration:none; font-size:.9rem; font-weight:800; line-height:1.2; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:var(--white); background:var(--berry); }
.button-primary:hover { background:#8f194f; }
.text-link { color:var(--white); border-bottom:1px solid rgba(255,255,255,.45); text-decoration:none; font-size:.88rem; font-weight:600; }
.hero-proof { display:flex; flex-wrap:wrap; margin-top:2.6rem; color:rgba(255,255,255,.66); font-size:.77rem; }
.hero-proof span { padding:0 1.25rem; border-left:1px solid rgba(255,255,255,.24); }
.hero-proof span:first-child { padding-left:0; border-left:0; }
.hero-proof strong { color:var(--white); font-size:.95rem; }
.social-proof-counter strong { font-variant-numeric:tabular-nums; }
.section { padding:7rem 24px; }
.section-inner { width:min(var(--max),100%); margin:0 auto; }
.reviews { color:var(--white); background:var(--night); }
.reviews-lead { display:grid; grid-template-columns:.75fr 1.25fr; gap:7rem; align-items:center; }
.google-rating { display:grid; grid-template-columns:54px 1fr auto; gap:.15rem .85rem; align-items:center; padding:1.4rem 0; border-top:1px solid rgba(255,255,255,.22); border-bottom:1px solid rgba(255,255,255,.22); text-decoration:none; }
.google-mark { grid-row:1/3; display:grid; width:49px; height:49px; place-items:center; border-radius:50%; color:var(--white); background:#4285f4; font-size:1.2rem; font-weight:800; }
.rating-number { font-size:2rem; font-weight:800; line-height:1; }
.rating-number small { font-size:.9rem; font-weight:500; }
.stars { color:var(--gold); letter-spacing:.08em; font-size:.83rem; }
.rating-count { grid-column:2/4; color:rgba(255,255,255,.65); font-size:.78rem; }
.rating-count b { color:var(--white); }
.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2.25rem; margin-top:4rem; }
.review { padding-top:1.35rem; border-top:3px solid var(--berry); }
.review-meta { display:flex; justify-content:space-between; gap:1rem; font-size:.78rem; }
.review-meta span { color:var(--gold); letter-spacing:.06em; }
.review p { margin:1rem 0 0; color:rgba(255,255,255,.74); font-family:var(--serif); font-size:1.16rem; line-height:1.5; }
.recognition { background:var(--white); }
.recognition-layout { display:grid; grid-template-columns:.95fr 1.05fr; gap:8rem; align-items:start; }
.recognition-points { border-top:1px solid var(--line); }
.recognition-points p { position:relative; margin:0; padding:1.25rem 0 1.25rem 2rem; border-bottom:1px solid var(--line); }
.recognition-points p::before { content:""; position:absolute; left:0; top:1.85rem; width:9px; height:9px; border-radius:50%; background:var(--violet); }
.results { color:var(--white); background:var(--plum); }
.section-heading-row { display:grid; grid-template-columns:1.2fr .55fr; gap:5rem; align-items:end; margin-bottom:3rem; }
.section-heading-row>p { margin:0 0 .3rem; color:rgba(255,255,255,.7); }
.results-mosaic { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:250px; gap:.8rem; }
.result { position:relative; overflow:hidden; margin:0; background:var(--night-soft); }
.result-wide { grid-column:span 2; grid-row:span 2; }
.result:nth-child(4),.result:nth-child(5) { grid-row:span 2; }
.result img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.result:hover img { transform:scale(1.02); }
.result figcaption { position:absolute; inset:auto 0 0; display:flex; justify-content:space-between; gap:1rem; padding:2rem 1rem .85rem; background:linear-gradient(transparent,rgba(19,15,22,.8)); font-size:.78rem; font-weight:600; }
.result figcaption strong { color:#fff; font-size:.9rem; }
.results-note { margin:1rem 0 0; color:rgba(255,255,255,.58); font-size:.7rem; }
.answers { background:var(--lavender); }
.answers-heading { max-width:760px; margin-bottom:4.5rem; }
.answer-row { display:grid; grid-template-columns:.9fr 1.1fr; gap:6rem; align-items:center; min-height:320px; padding:3.5rem 4rem; border-top:1px solid var(--line); background:var(--white); }
.answer-row.has-video { grid-template-columns:minmax(210px,.8fr) minmax(250px,1fr) minmax(280px,330px); gap:2.5rem; }
.answer-row+.answer-row { margin-top:1rem; }
.answer-row-dark { color:var(--white); background:var(--night-soft); }
.answer-question { display:grid; grid-template-columns:38px 1fr; gap:1rem; align-items:start; }
.answer-question span { color:var(--berry); font-size:.72rem; font-weight:800; }
.answer-question p { margin:0; font-family:var(--serif); font-size:clamp(1.55rem,2.5vw,2.25rem); line-height:1.25; }
.answer-copy h3 { margin:0 0 .75rem; font-size:1.35rem; }
.answer-copy p { margin:0; color:var(--muted); }
.answer-row-dark .answer-copy p { color:rgba(255,255,255,.7); }
.answer-copy ul { display:flex; flex-wrap:wrap; gap:.6rem; margin:1.3rem 0 0; padding:0; list-style:none; }
.answer-copy li { padding:.38rem .65rem; border:1px solid rgba(255,255,255,.25); font-size:.73rem; }
.answer-video { width:100%; max-width:330px; justify-self:end; }
.video-card { position:relative; display:block; width:100%; aspect-ratio:4/5; overflow:hidden; padding:0; border:0; border-radius:4px; color:#fff; background:var(--plum); cursor:pointer; text-align:left; box-shadow:0 18px 40px rgba(25,21,29,.18); }
.video-card img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.video-card:hover img { transform:scale(1.025); }
.video-card-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(19,15,22,.02) 30%,rgba(19,15,22,.88) 100%); }
.play-button { position:absolute; inset:42% auto auto 50%; width:58px; height:58px; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.78); border-radius:50%; background:rgba(255,255,255,.94); box-shadow:0 8px 24px rgba(19,15,22,.25); }
.play-button::after { content:""; position:absolute; left:23px; top:18px; width:0; height:0; border-top:11px solid transparent; border-bottom:11px solid transparent; border-left:17px solid var(--berry); }
.video-card-copy { position:absolute; inset:auto 1.15rem 1.1rem; display:flex; flex-direction:column; gap:.2rem; }
.video-card-copy small { color:#f4c7db; font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.video-card-copy strong { font-family:var(--serif); font-size:1.15rem; line-height:1.25; }
.video-card-copy span { margin-top:.35rem; font-size:.68rem; font-weight:700; opacity:.78; }
.video-modal { width:min(430px,calc(100% - 28px)); max-height:94svh; overflow:hidden; padding:0; border:0; border-radius:4px; color:var(--ink); background:#fff; box-shadow:0 30px 90px rgba(0,0,0,.45); }
.video-modal::backdrop { background:rgba(19,15,22,.82); backdrop-filter:blur(5px); }
.video-modal-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; }
.video-modal-bar>div { display:flex; min-width:0; flex-direction:column; }
.video-modal-bar small { color:var(--berry); font-size:.58rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.video-modal-bar strong { overflow:hidden; font-size:.86rem; text-overflow:ellipsis; white-space:nowrap; }
.video-modal-bar button { display:grid; flex:0 0 36px; width:36px; height:36px; place-items:center; padding:0; border:0; color:var(--ink); background:var(--lavender); cursor:pointer; font-size:1.4rem; line-height:1; }
.video-modal-frame { height:min(72svh,640px); background:#fff; }
.video-modal-frame iframe { display:block; width:100%; height:100%; border:0; }
.video-modal>a { display:block; padding:.8rem 1rem; color:var(--berry); text-align:center; text-decoration:none; font-size:.72rem; font-weight:800; }
.faq { background:var(--white); }
.faq-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:8rem; align-items:start; }
.faq-heading { position:sticky; top:120px; }
.faq-heading>p:last-child { max-width:420px; color:var(--muted); }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { display:grid; grid-template-columns:1fr 32px; gap:1rem; align-items:center; padding:1.35rem 0; cursor:pointer; font-weight:700; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { display:grid; width:28px; height:28px; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--berry); font-size:1.2rem; font-weight:400; transition:transform .2s ease; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list details p { margin:0; padding:0 48px 1.45rem 0; color:var(--muted); }
.about { color:var(--white); background:var(--night); }
.about-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:7rem; align-items:center; }
.about-photo { position:relative; max-width:440px; }
.about-photo img { width:100%; aspect-ratio:.86; object-fit:cover; object-position:center 24%; }
.about-photo>div { position:absolute; right:-2.5rem; bottom:1.75rem; display:flex; flex-direction:column; padding:.9rem 1.15rem; color:var(--white); background:var(--berry); line-height:1.3; }
.about-photo .brand-handle { font-size:.7rem; }
.about-copy>p { color:rgba(255,255,255,.7); }
.social-links { display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:1.8rem; }
.social-links a { border-bottom:1px solid rgba(255,255,255,.35); text-decoration:none; font-size:.78rem; font-weight:700; }
.final-cta { padding:7rem 24px; text-align:center; color:var(--white); background:var(--berry); }
.final-cta .section-inner { max-width:850px; }
.final-cta .eyebrow { color:rgba(255,255,255,.75); }
.final-cta h2 em { color:var(--white); }
.final-cta p { margin:1.2rem auto 2rem; color:rgba(255,255,255,.82); }
.button-light { color:var(--ink); background:var(--white); }
.final-cta small { display:block; margin-top:1rem; color:rgba(255,255,255,.7); }
.site-footer { padding:3.5rem 24px; color:rgba(255,255,255,.68); background:#0d0a0f; }
.footer-inner { display:grid; grid-template-columns:auto 1fr auto; gap:2rem 4rem; align-items:center; }
.brand-footer { color:var(--white); }
.footer-inner p { margin:0; font-size:.82rem; }
.footer-links { display:flex; gap:1.2rem; font-size:.76rem; }
.footer-links a { text-decoration:none; }
.footer-inner>small { grid-column:1/-1; padding-top:1.3rem; border-top:1px solid rgba(255,255,255,.14); font-size:.66rem; }
.mobile-sticky-cta { display:none; }
.reveal { opacity:0; transform:translateY(22px); transition:opacity .6s ease,transform .6s ease; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{animation:none!important;transition:none!important} .reveal{opacity:1;transform:none} }
@media (max-width:900px) {
  .desktop-nav{display:none}.menu-button{display:grid;gap:6px;width:44px;height:44px;place-content:center;border:0;color:inherit;background:transparent}.menu-button span:not(.sr-only){display:block;width:23px;height:2px;background:currentColor;transition:transform .2s ease}.menu-button[aria-expanded="true"] span:nth-of-type(2){transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-of-type(3){transform:translateY(-4px) rotate(-45deg)}
  .mobile-nav{position:fixed;inset:78px 0 0;display:flex;flex-direction:column;gap:1.2rem;padding:2rem 24px;color:var(--white);background:var(--night)}.mobile-nav[hidden]{display:none}.mobile-nav a{font-family:var(--serif);font-size:1.8rem;text-decoration:none}.mobile-nav .button{margin-top:1rem;font-family:var(--sans);font-size:.9rem}
  .reviews-lead,.recognition-layout,.about-layout,.faq-layout{grid-template-columns:1fr;gap:3.5rem}.faq-heading{position:static}.section-heading-row{grid-template-columns:1fr;gap:1.5rem}.reviews-grid{grid-template-columns:1fr;gap:2rem}.results-mosaic{grid-template-columns:repeat(2,1fr)}.result-wide{grid-column:span 2}.answer-row,.answer-row.has-video{grid-template-columns:1fr;gap:2.2rem;padding:3rem 2.5rem}.answer-video{justify-self:start}.about-photo{margin:0 auto}.footer-inner{grid-template-columns:1fr;gap:1.1rem}.footer-inner>small{grid-column:auto}
}
@media (max-width:620px) {
  body{padding-bottom:66px;font-size:16px}.site-header{min-height:68px;padding-inline:18px}.brand strong{font-size:1.08rem}.brand-handle{font-size:.58rem}.header-socials{gap:.3rem;margin:0 8px 0 auto}.header-socials a{width:29px;height:29px}.header-socials img{width:13px;height:13px}.mobile-nav{inset:68px 0 0}.hero{min-height:94svh;align-items:flex-end}.hero-photo{object-position:58% 16%}.hero-shade{background:linear-gradient(0deg,rgba(19,15,22,.99) 0%,rgba(48,15,42,.9) 53%,rgba(19,15,22,.1) 100%)}.hero-content{width:calc(100% - 36px);padding:8rem 0 4rem}h1{font-size:clamp(2.45rem,11.8vw,3.45rem)}h2{font-size:clamp(2.05rem,9.5vw,3rem)}.hero-promise{font-size:1.08rem}.hero-copy{font-size:.88rem}.hero-actions{align-items:stretch;flex-direction:column;gap:.8rem}.hero-actions .text-link{align-self:flex-start}.hero-proof{margin-top:1.8rem}.hero-proof span{padding-inline:.8rem}.hero-proof .social-proof-counter{width:100%;margin-top:.65rem;padding-left:0;border-left:0}.section{padding:4.75rem 18px}.reviews-lead{gap:2.7rem}.google-rating{grid-template-columns:48px 1fr auto}.google-mark{width:44px;height:44px}
  .results-mosaic{display:flex;overflow-x:auto;gap:.7rem;margin-inline:-18px;padding-inline:18px;scroll-snap-type:x mandatory;scrollbar-width:none}.results-mosaic::-webkit-scrollbar{display:none}.result,.result-wide,.result:nth-child(4),.result:nth-child(5){flex:0 0 84vw;height:330px;grid-column:auto;grid-row:auto;scroll-snap-align:center}.answer-row,.answer-row.has-video{grid-template-columns:1fr;min-height:0;gap:2rem;padding:2.4rem 1.4rem}.answer-question{grid-template-columns:30px 1fr}.answer-copy ul{display:grid}.answer-video{max-width:100%}.video-card{aspect-ratio:5/4}.video-card img{object-position:center 34%}.video-card-copy strong{font-size:1.05rem}.video-modal-frame{height:min(72svh,620px)}.about-photo>div{right:-6px}.final-cta{padding:5rem 18px}.site-footer{padding:3.2rem 18px}.footer-links{flex-wrap:wrap}.mobile-sticky-cta{position:fixed;z-index:45;inset:auto 0 0;display:flex;align-items:center;justify-content:center;min-height:66px;padding:.8rem 1rem;color:var(--white);background:var(--berry);text-decoration:none;font-size:.88rem;font-weight:800;box-shadow:0 -8px 30px rgba(0,0,0,.18)}
}
