:root{--navy:#1e2474;--cyan:#1bbfc9;--magenta:#ae30a2;--ink:#30385b;--muted:#666d85;--cream:#fcfbf8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Nunito',sans-serif;font-size:17px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--navy);line-height:1.12;font-weight:800;letter-spacing:-.045em}h1{font-size:clamp(45px,5.1vw,76px);max-width:680px}h2{font-size:clamp(36px,4vw,55px)}h3{font-size:25px;letter-spacing:-.025em}em{font-style:normal;color:var(--magenta)}p{color:var(--muted)}.wrap{width:min(1200px,calc(100% - 80px));margin:auto}.topline{background:var(--navy);color:white;padding:8px 5%;font-size:12px;letter-spacing:.035em;display:flex;justify-content:space-between}header{position:sticky;top:0;z-index:20;background:rgba(252,251,248,.97);display:flex;align-items:center;justify-content:space-between;padding:14px 4%;border-bottom:1px solid #ebeced}.brand{display:flex;align-items:center;gap:12px;color:var(--navy);line-height:1.1;font-size:20px;font-weight:800;letter-spacing:-.035em}.brand img{width:63px;height:63px;object-fit:cover;border-radius:50%}.brand b{display:block;color:var(--magenta)}.brand small{display:block;font-size:8px;letter-spacing:.12em;margin-top:6px}nav{display:flex;gap:28px;align-items:center;font-size:14px;font-weight:700}nav>a:not(.button):hover{color:var(--magenta)}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid var(--navy);background:var(--navy);color:white;border-radius:40px;padding:17px 27px;font-size:15px;font-weight:800;transition:transform .2s,background .2s;line-height:1.4}.button:hover{background:var(--magenta);border-color:var(--magenta);transform:translateY(-2px)}.button.small{padding:13px 20px;font-size:13px}.button.outline{background:transparent;color:var(--navy)}.button.outline:hover{background:var(--navy);color:white}.menubtn{display:none}.hero{display:grid;grid-template-columns:1.07fr 1fr;gap:35px;align-items:center;padding-top:55px;padding-bottom:65px;min-height:690px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.13em;color:var(--navy);margin-bottom:22px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--cyan);margin-right:7px}.hero-copy>p{font-size:18px;max-width:440px;margin:25px 0 30px}.textlink{display:block;font-size:13px;font-weight:800;margin-top:18px}.hero-points{display:flex;gap:18px;font-size:11px;font-weight:700;margin-top:38px}.hero-visual{height:550px;position:relative;margin-left:20px}.portrait{height:100%;width:100%;object-fit:cover;object-position:center 25%;border-radius:46% 46% 40px 40px;position:relative}.oval{position:absolute;background:#d8f1ed;inset:24px -20px -20px 15px;border-radius:48% 48% 40px 40px;transform:rotate(5deg)}.spark{position:absolute;top:22px;right:-20px;font-size:90px;color:var(--magenta);line-height:1}.hero-label{position:absolute;left:-30px;bottom:28px;background:white;padding:15px 27px;border-radius:20px;box-shadow:0 10px 50px #24247412;transform:rotate(-3deg)}.hero-label span,.hero-label small{display:block;font-size:12px}.hero-label strong{display:block;color:var(--navy);font-size:20px}.smile{position:absolute;right:-17px;bottom:8px;border-radius:50%;width:78px;height:78px;display:grid;place-content:center;background:#f7df76;font-size:65px;line-height:1;color:var(--navy);transform:rotate(12deg)}.ribbon{display:flex;align-items:center;justify-content:space-around;gap:35px;overflow:hidden;white-space:nowrap;background:#def3f0;padding:22px 0;font-size:24px;color:#16868b}.ribbon span{font-size:17px;font-weight:800;color:var(--navy)}.section{padding-top:100px;padding-bottom:100px}.section-head{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:42px}.section-head>p{max-width:380px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service{padding:32px;border-radius:28px;position:relative;transition:transform .2s}.service:hover{transform:translateY(-5px)}.mint{background:#e0f3ed}.pink{background:#f9e9f3}.lavender{background:#eeebfa}.service-icon{font-size:40px;color:var(--navy);display:block;margin-bottom:30px}.num{position:absolute;right:30px;top:30px;font-size:12px;opacity:.5}.service h3{max-width:230px}.service p{margin:16px 0 28px;font-size:15px;line-height:1.7}.service a{font-size:13px;font-weight:900;border-bottom:1px solid #c6c9d8;padding-bottom:6px}.under-note{text-align:center;font-size:12px;margin-top:24px}.about-section{background:#f0f3f5;padding:85px 0}.about{display:grid;grid-template-columns:.88fr 1fr;gap:90px;align-items:center}.about-photo{position:relative}.about-photo img{height:510px;width:100%;object-fit:cover;border-radius:30px 110px 30px 30px}.photo-note{text-align:center;display:flex;align-items:center;justify-content:center;background:var(--cyan);color:var(--navy);padding:18px 25px;border-radius:18px;position:absolute;bottom:25px;left:25px;right:25px;font-size:15px;font-weight:800}.about-copy .large{font-size:21px;color:var(--navy);margin:22px 0 16px;line-height:1.5}.about-copy>p{font-size:15px}.credentials{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0}.credentials strong,.credentials span{display:block}.credentials strong{font-size:14px;color:var(--navy)}.credentials span{font-size:12px;color:var(--muted);margin-top:5px}.center{text-align:center}.center>p{max-width:510px;margin:22px auto 0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;text-align:center;margin-top:48px}.steps article>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e4f2ef;color:var(--navy);font-size:23px;font-weight:800;margin:0 auto 22px}.steps h3{font-size:21px;margin-bottom:14px}.steps p{font-size:15px}.contact-section{background:#e7e4f3;padding:85px 0}.contact{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.contact>div>p{margin:25px 0;max-width:380px}.phone{font-size:32px;font-weight:800;letter-spacing:-.03em;color:var(--navy)}.contact-note{display:block;font-size:12px;margin:8px 0 30px}.contact-mascot{display:flex;align-items:center;gap:18px;font-size:14px;font-weight:800}.contact-mascot img{width:85px;border-radius:50%;transform:rotate(-8deg)}form{background:white;border-radius:30px;padding:38px}form>p{font-size:14px;margin:10px 0 24px}label{display:block;font-size:12px;font-weight:800;color:var(--navy);margin:15px 0 7px}input,select{width:100%;border:1px solid #dddde7;border-radius:12px;padding:13px 15px;background:#fcfcfd;font-size:14px;color:var(--ink)}input:focus,select:focus{outline:2px solid var(--cyan);outline-offset:2px}.check{display:flex;gap:10px;font-size:11px;font-weight:500;line-height:1.6;margin:20px 0}.check input{width:17px;flex:none;align-self:start;accent-color:var(--navy);margin-top:3px}form .button{width:100%}form small{display:block;font-size:10px;color:var(--muted);margin-top:15px;line-height:1.6}#formstatus:empty{display:none}.location{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.location p{margin:20px 0}.location iframe{width:100%;height:380px;border:0;border-radius:30px;background:#e5ece8}.faq{border-top:1px solid #e7e5ed;display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;padding-top:70px}details{border-bottom:1px solid #dddfe8;padding:22px 0}summary{font-weight:800;font-size:17px;color:var(--navy);cursor:pointer;list-style:none;position:relative;padding-right:30px}summary:after{content:'+';position:absolute;right:0;font-size:22px}details[open] summary:after{content:'−'}details p{font-size:14px;margin-top:15px}footer{background:var(--navy);color:white;padding:50px 0 30px}footer .brand,footer .brand b{color:white}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-bottom:35px}.footer-main>p{color:#e2e1f2;font-size:22px;line-height:1.35}.footer-main>div a{display:block;font-size:13px;margin:7px 0}.legal{border-top:1px solid #ffffff26;padding-top:20px;display:flex;justify-content:space-between;font-size:10px;color:#deddee}.privacy-link{background:none;border:0;padding:0;color:inherit;text-decoration:underline;font-size:inherit}.legal-note{font-size:9px;opacity:.65;margin-top:12px}.floating{position:fixed;z-index:25;bottom:22px;right:24px;padding:13px 19px;border-radius:40px;background:#25D366;color:white;display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800;box-shadow:0 5px 25px #0002;border:1px solid #ffffff66}.floating svg{width:24px;fill:none;stroke:currentColor;stroke-width:1.5}dialog{border:0;border-radius:25px;padding:40px;max-width:620px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#10134688}dialog h2{font-size:30px;margin-bottom:20px}dialog p{margin:15px 0;font-size:14px}.close{position:absolute;right:18px;top:10px;background:none;border:0;font-size:25px;color:var(--navy)}:focus-visible{outline:3px solid var(--magenta);outline-offset:4px}@media(min-width:1500px){.hero{min-height:740px}}@media(max-width:1000px){nav{gap:15px;font-size:12px}.wrap{width:calc(100% - 48px)}.hero{gap:24px}.hero-visual{height:480px;margin-left:0}.hero-points{gap:10px;font-size:9px}.about,.contact{gap:40px}.service{padding:24px}.brand{font-size:17px}.brand img{width:50px;height:50px}.steps{gap:25px}}@media(max-width:760px){html{scroll-padding-top:95px}.topline{justify-content:center;font-size:10px}.topline span{display:none}header{padding:12px 20px}.brand img{width:48px;height:48px}.menubtn{display:block;background:transparent;border:1px solid #d7d7e6;border-radius:25px;padding:9px 13px;color:var(--navy);font-size:12px;font-weight:800}nav{display:none;position:absolute;top:100%;left:0;right:0;padding:25px;background:var(--cream);border-bottom:1px solid #ddd;flex-direction:column;align-items:stretch;gap:22px;font-size:16px}nav.open{display:flex}.wrap{width:calc(100% - 40px)}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:38px;padding-bottom:48px;gap:35px;min-height:0}.hero-copy{text-align:center}.hero h1{font-size:clamp(43px,10vw,62px)}.hero .eyebrow{font-size:9px;margin-bottom:20px}.hero-copy>p{font-size:16px;margin:22px auto}.hero-points{justify-content:center;font-size:10px;margin-top:25px;gap:15px}.hero-visual{height:450px;max-width:420px;width:calc(100% - 24px);margin:10px auto 0}.spark{font-size:65px;right:-15px}.hero-label{left:-10px;bottom:25px;padding:13px 20px}.hero-label strong{font-size:18px}.smile{width:60px;height:60px;font-size:50px}.oval{inset:15px -10px -10px 12px}.section{padding:65px 0}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:22px;font-size:15px}.services{grid-template-columns:1fr;gap:16px}.service{padding:28px}.service h3{max-width:none}.service-icon{margin-bottom:18px}.service p{margin-bottom:20px}.about-section{padding:55px 0}.about{grid-template-columns:1fr;gap:35px}.about-photo{max-width:440px;width:100%;margin:auto}.about-photo img{height:420px}.about-copy .button{font-size:13px}.steps{grid-template-columns:1fr;text-align:left;gap:30px}.steps article{position:relative;padding-left:70px}.steps article>span{position:absolute;left:0;top:0}.steps h3{font-size:21px}.center>p{font-size:15px}.contact-section{padding:60px 0}.contact{grid-template-columns:1fr;gap:30px}.contact-mascot{display:none}form{padding:27px 23px}.contact-note{margin-bottom:0}.location{grid-template-columns:1fr;gap:30px}.location iframe{height:320px}.faq{grid-template-columns:1fr;gap:25px}.footer-main{flex-wrap:wrap;gap:25px}.footer-main>p{font-size:18px}.footer-main>div{display:flex;gap:25px}.legal{gap:15px}.legal-note{padding-bottom:60px}.floating{right:16px;bottom:16px;padding:12px}.floating span{display:none}.eyebrow{font-size:10px}.photo-note{font-size:12px;left:18px;right:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Brand-led turquoise hero */
.hero{background:#1bc2cb;overflow:hidden;min-height:0;padding:0}.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:32px;align-items:center;min-height:630px;padding-top:50px;padding-bottom:55px}.hero-copy{position:relative;z-index:2}.hero .eyebrow{color:#172478}.hero .dot{background:#ae30a2}.hero h1{color:#172478}.hero h1 em{color:white}.hero-copy>p{color:#183e65;max-width:480px}.hero .button{background:#172478;border-color:#172478;color:white}.hero .button:hover{background:#ae30a2;border-color:#ae30a2}.hero .textlink{color:#172478}.hero-points{color:#172478;gap:20px}.hero-points span{display:inline-flex;gap:7px;align-items:center}.hero-points svg{height:17px;width:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.hero-visual{height:555px;display:grid;place-items:center;margin:0;isolation:isolate}.mascot-glow{position:absolute;z-index:-2;width:88%;aspect-ratio:1;border-radius:50%;background:#fff3;filter:blur(2px)}.orbit{position:absolute;z-index:-1;border:1.5px solid #ffffff5c;border-radius:50%;aspect-ratio:1}.orbit-one{width:106%;transform:rotate(-18deg) scaleY(.83)}.orbit-two{width:86%;transform:rotate(23deg) scaleY(1.09)}.hero-mascot{height:90%;width:100%;object-fit:contain;position:relative;filter:drop-shadow(0 20px 22px #165d8270);transform:rotate(-6deg)}.hero-label{left:0;bottom:26px;transform:rotate(-4deg);border-radius:19px;padding:13px 21px}.hero-label strong{font-size:19px}.hero-label span{font-size:11px;color:#567}.hero-sticker{position:absolute;right:0;top:12%;height:62px;width:62px;background:#f7db73;border-radius:50%;display:grid;place-items:center;transform:rotate(14deg)}.hero-sticker svg{width:38px;height:38px;fill:none;stroke:#172478;stroke-width:3;stroke-linecap:round}.ribbon i{width:12px;height:12px;background:var(--magenta);transform:rotate(45deg);border-radius:4px;flex:none}.service-icon{height:48px;width:48px;display:block;margin-bottom:26px}.service-icon svg{height:100%;width:100%;fill:none;stroke:var(--navy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media(max-width:1000px){.hero-inner{min-height:570px}.hero-visual{height:470px}.hero-points{gap:12px}}@media(max-width:760px){.hero-inner{display:flex;flex-direction:column;min-height:0;gap:10px;padding-top:47px;padding-bottom:24px}.hero-copy{text-align:center}.hero-copy>p{color:#173d68}.hero-points{justify-content:center;flex-wrap:wrap;gap:11px 16px;font-size:10px;margin-top:27px}.hero-points svg{width:15px;height:15px}.hero-visual{height:410px;width:min(100%,420px);margin:0 auto}.hero-mascot{height:94%}.hero-label{left:0;bottom:13px;right:auto}.hero-sticker{right:3%;top:8%;height:50px;width:50px}.hero-sticker svg{width:30px;height:30px}.orbit-one{width:100%}.ribbon{padding:17px 0}.ribbon span{font-size:14px}}
/* Official horizontal lockups, displayed intact with only their surrounding canvas clipped. */
header{background:#fff}.brand{display:block;line-height:1}.brand-logo{display:block;width:255px;height:78px;position:relative;overflow:hidden;flex:none}.brand-logo img{position:absolute;max-width:none;width:345px;height:345px;object-fit:contain;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:0}footer{background:#111f90}.footer-main .brand-logo{width:290px;height:90px}.footer-main .brand-logo img{width:392px;height:392px}.contact-mascot img{width:85px;height:85px;object-fit:contain;border-radius:0;transform:rotate(-8deg)}@media(max-width:1000px){.brand-logo{width:215px;height:72px}.brand-logo img{width:295px;height:295px}}@media(max-width:760px){header{padding:8px 20px}.brand-logo{width:175px;height:60px}.brand-logo img{width:240px;height:240px}.footer-main .brand-logo{width:255px;height:80px}.footer-main .brand-logo img{width:345px;height:345px}}
@media(max-width:980px) and (min-width:761px){.menubtn{display:block;background:transparent;border:1px solid #d7d7e6;border-radius:25px;padding:9px 13px;color:var(--navy);font-size:12px;font-weight:800}nav{display:none;position:absolute;top:100%;left:0;right:0;padding:25px 5%;background:#fff;border-bottom:1px solid #ddd;flex-direction:column;align-items:stretch;gap:22px;font-size:16px}nav.open{display:flex}}
/* Text arrows respond to pointer and touch without relying on an icon font. */
.arrow{display:inline-block;flex:none;white-space:nowrap;line-height:1;font-family:Arial,Helvetica,sans-serif;font-size:1.15em;font-weight:600;transition:transform .22s ease;transform:translateX(0)}
@media(hover:hover){a:hover .arrow,button:hover .arrow{transform:translateX(5px)}}
a:active .arrow,button:active .arrow,a.is-pressed .arrow,button.is-pressed .arrow{transform:translateX(7px)}
.service a .arrow,.phone .arrow,.footer-main a .arrow{margin-left:5px}.textlink .arrow{margin-left:3px}.button{gap:15px}.button .arrow{min-width:1em;text-align:center}
/* The mascot plays around the hero: two clipped glimpses, below the main figure and copy. */
.hero-visual{z-index:1}.hero-mascot{z-index:2;animation:tooth-bob 5.4s ease-in-out infinite}.hero-label{z-index:4}.hero-sticker{z-index:4}.peek-tooth{position:absolute;z-index:1;max-width:none;width:38%;height:auto;object-fit:contain;pointer-events:none;filter:drop-shadow(0 10px 12px #165d8240);opacity:.9}.peek-tooth-left{left:-18%;top:14%;clip-path:inset(0 22% 28% 0);animation:tooth-peek-left 6s ease-in-out infinite}.peek-tooth-right{right:-21%;bottom:3%;clip-path:inset(20% 0 0 32%);animation:tooth-peek-right 6.8s ease-in-out infinite}
@keyframes tooth-bob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-10px) rotate(-4deg)}}
@keyframes tooth-peek-left{0%,100%{transform:translateY(0) rotate(-24deg)}50%{transform:translateY(-8px) rotate(-19deg)}}
@keyframes tooth-peek-right{0%,100%{transform:translateY(0) rotate(20deg)}50%{transform:translateY(10px) rotate(16deg)}}
/* Seamless repeating strip: four identical groups, shifted by one group width. */
.ribbon{display:block;overflow:hidden;padding:18px 0;background:#def3f0;white-space:nowrap}.ticker-track{display:flex;width:max-content;animation:ticker-slide 27s linear infinite;will-change:transform}.ticker-group{display:flex;flex:none;align-items:center;gap:34px;padding-right:34px}.ticker-group span{display:block;font-size:17px;font-weight:800;color:var(--navy)}.ticker-group i{width:11px;height:11px;background:var(--magenta);transform:rotate(45deg);border-radius:3px;flex:none}@keyframes ticker-slide{to{transform:translateX(-25%)}}
@media(max-width:760px){.hero-visual{overflow:visible}.peek-tooth{width:43%}.peek-tooth-left{left:-18%;top:8%}.peek-tooth-right{right:-19%;bottom:2%}.ribbon{padding:15px 0}.ticker-group{gap:25px;padding-right:25px}.ticker-group span{font-size:15px}.ticker-group i{width:9px;height:9px}}
@media(prefers-reduced-motion:reduce){.ticker-track,.hero-mascot,.peek-tooth{animation:none!important}.arrow{transition:none!important}}
/* Keep both playful supporting teeth complete and within the hero, including on phones. */
.peek-tooth{width:25%;z-index:3;opacity:.98;clip-path:none;filter:drop-shadow(0 10px 12px #165d8238)}
.peek-tooth-left{left:8%;top:7%;clip-path:none}
.peek-tooth-right{right:7%;bottom:14%;clip-path:none}
/* Circle is part of the button; the arrow remains a real text glyph. */
.button{position:relative;min-height:58px;gap:14px;padding:10px 13px 10px 24px}
.button .arrow{width:34px;height:34px;min-width:34px;border:1px solid currentColor;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin:0;font-size:18px;font-weight:500;line-height:1;transition:transform .22s ease,background-color .22s ease}
.button.small{min-height:48px;padding:8px 9px 8px 17px;gap:11px}
.button.small .arrow{width:28px;height:28px;min-width:28px;font-size:15px}
@media(hover:hover){.button:hover .arrow{transform:translateX(2px);background-color:#ffffff22}.button.outline:hover .arrow{background-color:#ffffff25}}
.button:active .arrow,.button.is-pressed .arrow{transform:translateX(3px) scale(.9);background-color:#ffffff32}
.hero .button{animation:cta-invite 4.6s ease-in-out infinite}
.hero .button:hover,.hero .button:active{animation:none}
@keyframes cta-invite{0%,74%,100%{box-shadow:0 0 0 0 #17247800}85%{box-shadow:0 0 0 8px #17247824}}
@media(max-width:760px){.peek-tooth{width:24%}.peek-tooth-left{left:7%;top:8%}.peek-tooth-right{right:7%;bottom:16%}.button{min-height:56px}}
@media(prefers-reduced-motion:reduce){.hero .button{animation:none!important}}

/* Let just the top of Sammy’s hair sit slightly above the portrait edge. */
.about-photo{padding-top:13px}
.about-photo-frame{overflow:hidden;border-radius:30px 110px 30px 30px}
.about-photo-frame img{border-radius:0;object-position:center 28%}
.about-photo .sammy-pop{position:absolute;top:0;left:0;width:100%;height:510px;object-fit:cover;object-position:center 28%;border-radius:0;pointer-events:none;z-index:2;mask-image:linear-gradient(to bottom,#000 0,#000 45px,transparent 125px,transparent 100%)}
.about-photo .photo-note{z-index:3}
@media(max-width:760px){.about-photo .sammy-pop{height:420px}}

/* A single aligned portrait, with only the hair above the frame visible. */
.about-photo{padding-top:26px}
.about-photo-frame{height:484px;position:relative}
.about-photo-frame img{position:absolute;top:-26px;left:0;height:510px;width:100%;object-position:center 28%}
.about-photo .sammy-pop{height:510px;object-position:center 28%;mask-image:none;clip-path:inset(0 0 calc(100% - 26px) 0)}
@media(max-width:760px){.about-photo-frame{height:394px}.about-photo-frame img,.about-photo .sammy-pop{height:420px}}

/* The full-width hero contains one centered two-column layout. */
.hero{display:block;width:100%}
.hero-inner{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px}
.hero-copy,.hero-visual{min-width:0}
.hero-copy h1{font-size:clamp(44px,4.6vw,68px);max-width:650px}
.hero-points{flex-wrap:wrap}
/* Keep the whole portrait proportional; expose only the hair above its frame. */
.about-photo{--portrait-pop:clamp(38px,3.4vw,48px);padding:0;aspect-ratio:1122/1402;overflow:visible}
.about-photo-frame{position:absolute;inset:var(--portrait-pop) 0 0;height:auto}
.about-photo-frame img{position:absolute;left:0;top:calc(-1 * var(--portrait-pop));width:100%;height:calc(100% + var(--portrait-pop));object-fit:fill;object-position:center;border-radius:0}
.about-photo .sammy-pop{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:fill;mask-image:none;clip-path:inset(0 0 calc(100% - var(--portrait-pop)) 0)}
.button .arrow{font-family:Arial,Helvetica,sans-serif;font-weight:400}
.phone{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;background:#ffffff80;border:1px solid #1e24742b;border-radius:22px;padding:14px 22px;transition:background .2s,transform .2s}
.phone-label{font-size:12px;letter-spacing:.02em;font-weight:800}
.phone strong{font-size:clamp(26px,3vw,34px);line-height:1.2}
.phone:hover{background:#fff;transform:translateY(-2px)}
.footer-main .social-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.footer-main .social-buttons a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;border:1px solid #ffffff70;border-radius:999px;margin:0;transition:background .2s,transform .2s}
.footer-main .social-buttons a:hover{background:#ffffff20;transform:translateY(-2px)}
@media(min-width:761px){.location{align-items:stretch}.location iframe{height:100%;min-height:380px}}
@media(max-width:760px){.hero-inner{gap:10px}.hero-copy h1{font-size:clamp(40px,9.5vw,58px)}.footer-main .social-buttons{justify-content:flex-start}}

/* One original photo through one mask: no independently scaled portrait layers. */
.about-photo .sammy-portrait{display:block;width:100%;height:auto;overflow:visible}
.phone{background:none;border:0;border-radius:0;padding:0;gap:5px;box-shadow:none}
.phone:hover{background:none;transform:none;color:var(--magenta)}
.phone-label{font-size:14px}
.hero-points{font-size:14px;gap:16px 22px}
.hero-points svg{width:20px;height:20px}
.eyebrow,.hero .eyebrow{font-size:12px}
.textlink,.service a{font-size:15px}
.credentials span,.contact-note,.under-note,label{font-size:14px}
.check,form small{font-size:13px}
.hero-label span,.hero-label small{font-size:13px}
.legal{font-size:12px}.legal-note{font-size:11px;opacity:.8}
@media(min-width:761px){.hero-points{font-size:15px}.topline{font-size:13px}.button.small,.footer-main>div a{font-size:14px}.num{font-size:14px}}
@media(max-width:760px){.hero-points{font-size:13px;gap:12px 16px}.hero-points svg{width:18px;height:18px}.hero .eyebrow{font-size:11px}}

/* Symmetric text space keeps the primary CTA centered at every screen size. */
.hero-copy>.button{padding:14px 58px;min-width:300px;max-width:100%;text-align:center;justify-content:center}
.hero-copy>.button .arrow{position:absolute;right:13px;top:50%;margin-top:-17px}
@media(max-width:360px){.hero-copy>.button{min-width:0;width:100%;padding-left:48px;padding-right:48px;font-size:14px}}

/* The label stays centered; a small left arrow enters on interaction. */
.button,.button.small,.hero-copy>.button{padding:15px 28px;gap:0;text-align:center;justify-content:center}
.button.small{padding:12px 26px}
.button-label{position:relative;display:inline-block;transition:transform .22s ease}
.button-hover-arrow{position:absolute;left:-22px;top:50%;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:18px;line-height:1;opacity:0;transform:translate(-5px,-50%);transition:opacity .22s ease,transform .22s ease;pointer-events:none}
@media(hover:hover){.button:hover .button-label{transform:translateX(5px)}.button:hover .button-hover-arrow{opacity:1;transform:translate(0,-50%)}}
.button:focus-visible .button-label,.button:active .button-label{transform:translateX(5px)}
.button:focus-visible .button-hover-arrow,.button:active .button-hover-arrow{opacity:1;transform:translate(0,-50%)}
@media(prefers-reduced-motion:reduce){.button-label,.button-hover-arrow{transition:none}}

/* Legal notices and optional third-party map */
[hidden]{display:none!important}.legal-links{display:flex;flex-wrap:wrap;gap:12px 22px}.legal-links button{font:inherit}.legal-dialog{width:min(680px,calc(100% - 32px));max-height:85dvh;overflow:auto;padding:34px;border:0;border-radius:28px;color:var(--navy,#191d80);background:#fff}.legal-dialog h2{font-size:30px;padding-right:28px}.legal-dialog h3{font-size:18px;margin:24px 0 8px}.legal-dialog p{font-size:15px;line-height:1.65;margin:12px 0}.legal-dialog a{text-decoration:underline}.legal-dialog .updated{font-size:13px;color:#626575}.legal-dialog::backdrop{background:#10164080}.legal-dialog .close{position:sticky;float:right;top:0;background:#f0f2f5;border:0;border-radius:50%;width:36px;height:36px;cursor:pointer}.cookie-banner{position:fixed;bottom:20px;left:20px;z-index:1000;width:min(560px,calc(100% - 40px));padding:24px;border-radius:24px;background:#fff;color:#191d80;box-shadow:0 8px 40px #10164025;border:1px solid #e5e7ef}.cookie-banner strong{font-size:18px}.cookie-banner p{font-size:14px;line-height:1.5;margin:8px 0}.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.cookie-choice{font:700 14px Nunito,sans-serif;border:1px solid #191d80;border-radius:30px;padding:12px 18px;background:white;color:#191d80;cursor:pointer;transition:background .2s}.cookie-choice:hover{background:#dff6f7}.cookie-choice:focus-visible,.legal-links button:focus-visible{outline:3px solid #b12ba6;outline-offset:3px}.map-shell{position:relative;min-height:380px;border-radius:30px;background:#e5ece8;overflow:hidden}.map-placeholder{height:100%;min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}.map-placeholder p{font-size:16px}.map-shell iframe{display:block}.location .map-shell iframe{height:100%;min-height:380px}@media(max-width:760px){.legal{flex-wrap:wrap}.legal-dialog{padding:24px}.cookie-banner{bottom:12px;left:12px;width:calc(100% - 24px);padding:20px}.cookie-actions{gap:8px}.cookie-choice{flex:1}.map-shell,.map-placeholder,.location .map-shell iframe{min-height:320px}}

.floating:hover{background:#1ebe5d}.floating:focus-visible{outline:3px solid #191d80;outline-offset:4px}

/* Match the supplied circular WhatsApp badge with a solid white glyph. */
.floating{width:64px;height:64px;padding:0;border:0;border-radius:50%;background:#2fc553;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 22px #0002;transition:background .2s ease,transform .2s ease}
.floating svg{display:block;width:38px;height:38px;fill:#fff;stroke:none;stroke-width:0;flex:none}
.floating:hover{background:#28b84b;transform:translateY(-2px)}
.floating:active{transform:scale(.96)}
@media(max-width:760px){.floating{width:60px;height:60px;padding:0}.floating svg{width:36px;height:36px}}
