:root{--ease:cubic-bezier(0.22,1,0.36,1);--navy:#0F1B2A;--navy2:#163049;--red:#B33A3A;--red2:#9A2F2F;--blue:#1E5A8E;--blue2:#163F63;--ink:#14171C;--muted:#4A4E56;--bg:#F4F5F7;--bg2:#E6ECF2;--char:#1C1F24;}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Geist',Helvetica,Arial,sans-serif;font-size:18px;line-height:1.6;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
body.dyslexia,body.dyslexia button,body.dyslexia input,body.dyslexia select,body.dyslexia textarea{font-family:'Lexend','Geist',sans-serif;}
button,input,select,textarea{font-family:inherit;font-size:inherit;}
img{max-width:100%;display:block;}
a{color:var(--red);}
a:hover{color:var(--red2);}
::selection{background:var(--red);color:#fff;}
h1,h2,h3,.serif{font-family:'Playfair Display',serif;font-weight:600;letter-spacing:-0.015em;line-height:1.1;text-wrap:pretty;}
.wrap{max-width:1320px;margin:0 auto;padding:0 24px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:0.2em;text-transform:uppercase;font-weight:600;color:var(--red);margin-bottom:16px;}
.eyebrow::before{content:"";display:block;width:28px;height:1px;background:var(--red);}
.eyebrow.light{color:#fff;opacity:0.85;}
.eyebrow.light::before{background:var(--red);width:36px;}

/* keyframes */
@keyframes kenburns{0%{transform:scale(1) translate(0,0);}100%{transform:scale(1.14) translate(-1.5%,-1%);}}
@keyframes loaderSpin{to{transform:rotate(360deg);}}
@keyframes loaderBob{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(60px,-40px) scale(1.12);}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-70px,50px) scale(0.92);}}
@keyframes spinSlow{to{transform:rotate(360deg);}}
@keyframes bgDrift{to{background-position:56px 56px;}}
@keyframes gradientShift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes scrollCue{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}51%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}
@keyframes lineSweep{0%{transform:translateX(-120%);}100%{transform:translateX(220%);}}

/* loader */
.loader{position:fixed;inset:0;z-index:2000;background:radial-gradient(circle at 50% 40%,#163049 0%,#0F1B2A 55%,#0A121C 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;transition:opacity 0.5s var(--ease),visibility 0.5s;}
.loader.done{opacity:0;visibility:hidden;pointer-events:none;}
.loader-rings{width:200px;height:200px;position:relative;}
.loader-rings span{position:absolute;border-radius:50%;}
.loader-rings .r1{inset:0;border:10px dotted rgba(179,58,58,0.9);animation:loaderSpin 6s linear infinite;}
.loader-rings .r2{inset:16px;border:6px dashed rgba(30,90,142,0.85);animation:loaderSpin 4s linear infinite reverse;}
.loader-rings .r3{inset:32px;border:2px solid rgba(255,255,255,0.18);animation:loaderSpin 9s linear infinite;}
.loader-rings img{position:absolute;inset:42px;width:116px;height:116px;border-radius:50%;object-fit:cover;box-shadow:0 20px 50px rgba(0,0,0,0.5);animation:loaderBob 2s ease-in-out infinite;}
.loader-name{color:#F4F5F7;font-size:30px;text-align:center;}
.loader-sub{color:rgba(244,245,247,0.55);font-size:12px;letter-spacing:0.28em;text-transform:uppercase;margin-top:8px;text-align:center;}

.touch-layer{position:fixed;inset:0;pointer-events:none;z-index:1500;overflow:hidden;}
.touch-layer div{position:absolute;width:170px;height:170px;margin:-85px 0 0 -85px;border-radius:50%;background:radial-gradient(circle,rgba(255,215,0,0.22),rgba(255,215,0,0.08) 40%,transparent 70%);filter:blur(6px);opacity:1;transition:opacity 0.4s ease;}

/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:900;background:rgba(244,245,247,0.86);border-bottom:1px solid rgba(20,23,28,0.07);}
.site-header::before{content:"";position:absolute;inset:0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:-1;}
.header-inner{max-width:1320px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:70px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex-shrink:0;}
.brand-logo{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;box-shadow:0 4px 14px rgba(30,90,142,0.25);transition:transform 0.5s var(--ease);}
.brand:hover .brand-logo{transform:rotate(15deg) scale(1.06);}
.brand-logo img{width:100%;height:100%;object-fit:cover;}
.wordmark{font-weight:700;font-size:16px;line-height:1.1;letter-spacing:-0.01em;}
.wordmark small{display:block;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--blue);font-weight:600;}
.site-nav{display:flex;align-items:center;gap:20px;flex:1;justify-content:flex-end;}
.nav-links{display:none;list-style:none;gap:26px;align-items:center;margin-right:auto;margin-left:auto;}
.nav-links a{font-size:14.5px;font-weight:500;color:var(--ink);text-decoration:none;padding-bottom:4px;background-image:linear-gradient(var(--red),var(--red));background-repeat:no-repeat;background-position:left bottom;background-size:0% 2px;transition:background-size 0.35s var(--ease),color 0.3s;}
.nav-links a:hover,.nav-links a.active{background-size:100% 2px;color:var(--red);}
.nav-actions{display:none;align-items:center;gap:6px;flex-shrink:0;}
.icon-btn{border:none;background:transparent;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:all 0.3s var(--ease);}
.icon-btn:hover{background:rgba(30,90,142,0.1);transform:translateY(-1px);}
.icon-btn:active{transform:scale(0.92);}
.lang-btn{border:1px solid rgba(20,23,28,0.14);background:transparent;padding:7px 12px;min-height:44px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:0.06em;cursor:pointer;color:var(--ink);transition:all 0.3s var(--ease);}
.lang-btn:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px);}
.btn{display:inline-flex;align-items:center;gap:10px;border:none;cursor:pointer;font-weight:600;border-radius:8px;text-decoration:none;transition:all 0.4s var(--ease);white-space:nowrap;}
.btn:active{transform:translateY(0) scale(0.97) !important;}
.btn-red{background:var(--red);color:#fff;box-shadow:0 10px 26px rgba(179,58,58,0.3);}
.btn-red:hover{background:var(--red2);color:#fff;transform:translateY(-3px);box-shadow:0 16px 34px rgba(179,58,58,0.4);gap:16px;}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 10px 24px rgba(15,27,42,0.18);}
.btn-blue:hover{background:var(--blue2);color:#fff;transform:translateY(-3px);gap:16px;}
.btn-white{background:#fff;color:var(--navy);box-shadow:0 14px 34px rgba(0,0,0,0.25);}
.btn-white:hover{color:var(--navy);transform:translateY(-3px);box-shadow:0 22px 44px rgba(0,0,0,0.35);gap:16px;}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 10px 24px rgba(15,27,42,0.18);}
.btn-navy:hover{color:#fff;transform:translateY(-3px);gap:16px;}
.btn-sm{padding:11px 20px;font-size:14px;}
.btn-md{padding:14px 26px;font-size:14px;}
.btn-lg{padding:17px 32px;font-size:16px;}
.header-cta{margin-left:6px;}
.hamburger{display:flex;border:none;background:transparent;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.dropdown{position:relative;}
.dropdown-menu{position:absolute;top:50px;right:0;background:#fff;border-radius:12px;box-shadow:0 18px 44px rgba(15,27,42,0.18);padding:8px;min-width:260px;display:none;flex-direction:column;gap:2px;border:1px solid rgba(20,23,28,0.06);}
.dropdown.open .dropdown-menu,.dropdown:focus-within .dropdown-menu{display:flex;}
.dropdown-menu a{padding:12px 12px;min-height:44px;display:flex;align-items:center;border-radius:8px;font-size:14px;color:var(--ink);text-decoration:none;transition:background 0.25s;}
.dropdown-menu a:hover{background:#EEF2F6;}
.search-panel{display:none;border-top:1px solid rgba(20,23,28,0.07);}
.search-panel.open{display:block;}
.search-row{max-width:1320px;margin:0 auto;padding:16px 24px;display:flex;gap:12px;align-items:center;}
.search-row input{flex:1;border:none;background:transparent;font-size:17px;outline:none;min-width:0;}
.mic-btn{border:1px solid rgba(20,23,28,0.14);background:transparent;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:all 0.3s;}
.mic-btn.on{background:var(--red);color:#fff;border-color:var(--red);}
.search-results{max-width:1320px;margin:0 auto;padding:0 24px 14px;display:flex;flex-direction:column;}
.search-results a{padding:8px 0;font-size:14px;color:var(--ink);text-decoration:none;}
.search-results a:hover{color:var(--red);}
.header-spacer{height:70px;}

/* drawer */
.drawer-backdrop{position:fixed;inset:0;background:rgba(10,16,26,0.6);z-index:940;display:none;}
.drawer-backdrop.open{display:block;}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(88vw,380px);background:var(--navy);z-index:950;transform:translateX(100%);transition:transform 0.45s var(--ease);overflow-y:auto;display:none;}
.drawer.open{transform:translateX(0);}
.drawer-inner{max-width:440px;margin:0 auto;padding:22px 24px 40px;display:flex;flex-direction:column;gap:16px;}
.drawer-top{display:flex;justify-content:space-between;align-items:center;}
.drawer .lang-btn{border-color:rgba(244,245,247,0.25);color:#F4F5F7;min-height:44px;padding:10px 18px;}
.drawer-close{border:none;background:transparent;color:#F4F5F7;width:44px;height:44px;cursor:pointer;font-size:18px;}
.drawer-links{list-style:none;display:flex;flex-direction:column;gap:8px;}
.drawer-links a{color:#F4F5F7;font-size:22px;font-weight:600;text-decoration:none;font-family:'Playfair Display',serif;display:block;padding:4px 0;}
.drawer .btn{width:100%;justify-content:center;}
.drawer-contact{display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(244,245,247,0.12);padding-top:16px;}
.drawer-contact a{color:#F4F5F7;font-size:15px;text-decoration:none;display:block;min-height:44px;padding:11px 0;line-height:1.5;}
.drawer-contact a::before{content:"●";color:var(--red);margin-right:10px;}
.drawer-contact a.blue::before{color:var(--blue);}
.drawer-settings{border-top:1px solid rgba(244,245,247,0.12);padding-top:16px;display:flex;flex-direction:column;gap:2px;}
.drawer-settings .label{color:rgba(244,245,247,0.5);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;}
.drawer-settings label{display:flex;justify-content:space-between;align-items:center;color:#F4F5F7;font-size:14px;gap:12px;min-height:44px;}
.drawer-settings select{background:rgba(244,245,247,0.08);color:#F4F5F7;border:1px solid rgba(244,245,247,0.2);border-radius:6px;padding:10px 12px;min-height:44px;font-size:15px;}
.drawer-search{background:rgba(244,245,247,0.08);border:1px solid rgba(244,245,247,0.2);border-radius:8px;padding:12px;color:#F4F5F7;font-size:15px;outline:none;width:100%;}
input[type=checkbox]{width:22px;height:22px;accent-color:var(--red);}
input[type=range]{accent-color:var(--blue);}

/* settings panel */
.settings-backdrop{position:fixed;inset:0;background:rgba(10,16,26,0.35);z-index:940;display:none;}
.settings-backdrop.open{display:block;}
.settings-panel{position:fixed;top:0;right:0;height:100%;width:min(90vw,380px);background:#fff;z-index:950;transform:translateX(100%);transition:transform 0.45s var(--ease);overflow-y:auto;box-shadow:-20px 0 60px rgba(15,27,42,0.15);}
.settings-panel.open{transform:translateX(0);}
.settings-inner{padding:24px;display:flex;flex-direction:column;gap:22px;}
.settings-inner h2{font-size:22px;}
.settings-top{display:flex;justify-content:space-between;align-items:center;}
.settings-close{border:none;background:transparent;width:44px;height:44px;cursor:pointer;font-size:18px;}
.setting{padding:14px;border-radius:10px;background:var(--bg);display:flex;flex-direction:column;gap:14px;font-size:15px;}
.setting label{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;min-height:44px;}
.setting input[type=checkbox]{width:22px;height:22px;accent-color:var(--red);}
.setting input[type=range]{height:44px;}
.setting label.col{flex-direction:column;align-items:stretch;gap:6px;font-size:13px;color:#52555B;}
.setting select{background:#fff;border:1px solid rgba(20,23,28,0.14);border-radius:6px;padding:10px 12px;min-height:44px;font-size:15px;}
.settings-note{font-size:13px;color:#8A8D93;line-height:1.5;}

/* hero */
.hero{position:relative;display:flex;align-items:flex-end;overflow:hidden;background:var(--navy);min-height:max(60vh,520px);}
.hero.hero-home{min-height:max(92vh,600px);align-items:center;}
.hero.hero-short{min-height:max(52vh,460px);}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:kenburns 22s var(--ease) forwards;}
.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,16,26,0.9) 0%,rgba(10,16,26,0.35) 45%,rgba(10,16,26,0) 75%);}
.hero-home .hero-shade{background:linear-gradient(90deg,rgba(10,16,26,0.86) 0%,rgba(10,16,26,0.55) 38%,rgba(10,16,26,0) 68%);}
.blob{position:absolute;border-radius:50%;filter:blur(30px);pointer-events:none;}
.blob.blue{background:radial-gradient(circle,rgba(30,90,142,0.45),transparent 65%);}
.blob.red{background:radial-gradient(circle,rgba(179,58,58,0.35),transparent 65%);}
.hero-content{position:relative;width:100%;max-width:1320px;margin:0 auto;padding:110px 24px 64px;}
.hero-home .hero-content{padding-bottom:40px;}
.hero h1{color:#fff;font-size:clamp(34px,5vw,62px);max-width:760px;}
.hero-home h1{font-size:clamp(40px,6vw,74px);max-width:680px;margin-bottom:24px;}
.hero p{color:rgba(255,255,255,0.86);font-size:18px;max-width:560px;margin-top:18px;}
.hero-home p{font-size:19px;max-width:520px;margin:0 0 34px;}
.hero-cta{display:flex;gap:18px;flex-wrap:wrap;align-items:center;}
.hero-cta span.note{color:rgba(255,255,255,0.7);font-size:14px;max-width:260px;line-height:1.4;}
.scroll-cue{position:absolute;bottom:30px;left:24px;width:1px;height:56px;background:rgba(255,255,255,0.25);overflow:hidden;}
.scroll-cue i{position:absolute;inset:0;background:#fff;animation:scrollCue 2.4s var(--ease) infinite;}

/* sections */
.section{position:relative;overflow:hidden;}
.bg-soft{background:linear-gradient(135deg,#E6ECF2 0%,#F4F5F7 55%,#EEF0F3 100%);}
.bg-navy{background:var(--navy);}
.bg-char{background:linear-gradient(160deg,#1C1F24 0%,#23272E 60%,#1A1E26 100%);}
.dots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,0.09) 1px,transparent 1px);background-size:28px 28px;animation:bgDrift 26s linear infinite;pointer-events:none;}
.ring{position:absolute;border-radius:50%;pointer-events:none;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;position:relative;}
.two-col.pad{padding:120px 24px 110px;}
.about-teaser h2{font-size:clamp(30px,3.6vw,46px);margin-bottom:24px;}
.about-teaser p{color:var(--muted);font-size:17px;line-height:1.75;max-width:540px;margin-bottom:30px;}
.link-arrow{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--blue);font-weight:600;font-size:15px;text-decoration:none;transition:gap 0.3s var(--ease),color 0.3s;}
.link-arrow:hover{gap:16px;color:var(--blue2);}
.photo{position:relative;overflow:hidden;background:#D7DEE6;box-shadow:0 40px 80px rgba(15,27,42,0.22);}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform 0.9s var(--ease);}
.photo:hover img{transform:scale(1.06);}
.about-photo{width:100%;max-width:560px;justify-self:end;position:relative;}
.about-photo .photo{aspect-ratio:4/3;border-radius:6px 6px 6px 72px;}
.badge{position:absolute;left:-36px;bottom:40px;background:var(--navy);color:#fff;padding:18px 22px;border-radius:10px;box-shadow:0 20px 40px rgba(15,27,42,0.3);animation:floatY 6s ease-in-out infinite;max-width:220px;}
.badge b{font-family:'Playfair Display',serif;font-size:22px;font-weight:600;display:block;line-height:1.1;}
.badge small{font-size:12px;color:rgba(255,255,255,0.65);display:block;margin-top:4px;line-height:1.4;}

.services-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px;flex-wrap:wrap;gap:16px;}
.services-head h2{color:#fff;font-size:clamp(30px,3.6vw,46px);}
.pill-link{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,0.25);padding:12px 20px;border-radius:30px;white-space:nowrap;transition:all 0.35s var(--ease);}
.pill-link:hover{border-color:#fff;gap:16px;background:rgba(255,255,255,0.08);transform:translateY(-2px);color:#fff;}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.svc-card{position:relative;border-radius:16px;overflow:hidden;height:380px;display:block;text-decoration:none;background:var(--navy2);border:1px solid rgba(255,255,255,0.08);box-shadow:0 10px 30px rgba(0,0,0,0.25);transition:transform 0.4s var(--ease),box-shadow 0.4s var(--ease),border-color 0.4s;}
.svc-card:hover{transform:translateY(-8px);box-shadow:0 30px 60px rgba(0,0,0,0.45),0 0 0 1px rgba(179,58,58,0.6);border-color:var(--red);}
.svc-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.9s var(--ease);}
.svc-card:hover img{transform:scale(1.08);}
.svc-card .fade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,27,42,0) 30%,rgba(15,27,42,0.92) 100%);}
.svc-card .num{position:absolute;top:18px;left:18px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,0.12);backdrop-filter:blur(6px);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;}
.svc-card .body{position:absolute;bottom:0;left:0;right:0;padding:24px;}
.svc-card h3{color:#fff;font-size:22px;margin-bottom:8px;line-height:1.15;}
.svc-card p{color:rgba(255,255,255,0.78);font-size:14px;line-height:1.5;}

/* testimonials */
.testi-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:44px;flex-wrap:wrap;gap:16px;}
.testi-head h2{color:#fff;font-size:clamp(28px,3.4vw,40px);}
.testi-nav{display:flex;align-items:center;gap:14px;}
.testi-nav button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(244,245,247,0.25);background:transparent;color:#fff;cursor:pointer;transition:all 0.3s var(--ease);}
.testi-nav button:hover{border-color:var(--red);background:rgba(179,58,58,0.15);}
.testi-nav button:active{transform:scale(0.92);}
.testi-counter{color:rgba(244,245,247,0.55);font-size:13px;letter-spacing:0.1em;font-variant-numeric:tabular-nums;}
.carousel{position:relative;height:340px;perspective:1600px;perspective-origin:50% 50%;}
.carousel .floor{position:absolute;left:50%;top:82%;width:70%;height:70px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(30,90,142,0.45),rgba(179,58,58,0.15) 50%,transparent 72%);filter:blur(10px);}
.carousel .bigquote{position:absolute;left:50%;top:-10px;transform:translateX(-50%);font-family:'Playfair Display',serif;font-size:160px;line-height:1;color:rgba(255,255,255,0.05);pointer-events:none;}
.carousel .track{position:relative;width:100%;height:100%;transform-style:preserve-3d;}
.tcard{position:absolute;left:50%;top:50%;width:min(460px,88vw);height:240px;border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,0.08),rgba(255,255,255,0.02));backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.12);box-shadow:0 30px 70px rgba(0,0,0,0.45);padding:32px 36px;transition:transform 1.1s cubic-bezier(0.16,1,0.3,1),opacity 1.1s cubic-bezier(0.16,1,0.3,1);overflow:hidden;transform:translate(-50%,-50%);}
.tcard .sweep{position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,0.06),transparent);animation:lineSweep 6s ease-in-out infinite;pointer-events:none;}
.tcard .stars{color:#D9A441;font-size:14px;letter-spacing:3px;margin-bottom:14px;}
.tcard blockquote{font-family:'Playfair Display',serif;font-style:italic;color:#F0EDE8;font-size:17px;line-height:1.5;margin-bottom:18px;}
.tcard .author{display:flex;align-items:center;gap:12px;}
.tcard .avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;border:2px solid var(--red);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--navy,#1B2A41);color:#fff;font-weight:700;font-size:15px;letter-spacing:.5px;}
.tcard .avatar img{width:100%;height:100%;object-fit:cover;}
.tcard .name{color:#fff;font-weight:700;font-size:14px;}
.tcard .role{color:rgba(244,245,247,0.6);font-size:13px;}
.dots-nav{display:flex;justify-content:center;gap:4px;margin-top:16px;}
.dots-nav button{position:relative;height:44px;min-width:44px;border:none;cursor:pointer;background:transparent;padding:0 6px;}
.dots-nav button::after{content:"";display:block;height:6px;width:6px;border-radius:3px;background:rgba(244,245,247,0.3);transition:width 0.4s var(--ease),background 0.4s;}
.dots-nav button.active::after{width:26px;background:var(--red);}
.dots-nav button:focus-visible{outline:2px solid #fff;outline-offset:3px;}

/* cta band */
.cta-band{position:relative;overflow:hidden;}
.cta-band .grad{position:absolute;inset:0;background:linear-gradient(120deg,#B33A3A 0%,#7A2424 35%,#1E5A8E 75%,#163F63 100%);background-size:220% 220%;animation:gradientShift 16s ease infinite;}
.cta-band .ring{border:1px solid rgba(255,255,255,0.2);animation:floatY 9s ease-in-out infinite;}
.cta-inner{position:relative;padding:100px 24px;max-width:1320px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:28px;}
.cta-inner h2{color:#fff;font-size:clamp(28px,3.6vw,44px);margin-bottom:12px;}
.cta-inner p{color:rgba(255,255,255,0.8);font-size:17px;}

/* about page */
.about-body{grid-template-columns:0.9fr 1.1fr;gap:72px;align-items:start;padding:110px 24px;}
.about-body .sticky{position:sticky;top:110px;}
.about-body .photo{aspect-ratio:4/5;border-radius:80px 4px 4px 4px;}
.about-body .caption{margin-top:16px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--blue);font-weight:600;}
.pull{color:#2C3038;font-size:20px;line-height:1.8;font-family:'Playfair Display',serif;font-style:italic;margin-bottom:28px;}
.about-body .text p.body{color:var(--muted);font-size:17px;line-height:1.8;}

/* services page */
.svc-section .two-col{padding:96px 24px;}
.svc-section .photo{aspect-ratio:5/4;}
.svc-section .photo-wrap{position:relative;}
.svc-section .bignum{position:absolute;font-family:'Playfair Display',serif;font-size:96px;line-height:1;font-weight:600;pointer-events:none;top:-50px;}
.svc-section h2{font-size:clamp(26px,2.8vw,36px);margin-bottom:18px;line-height:1.15;}
.svc-section p.desc{font-size:16px;line-height:1.75;margin-bottom:24px;}
.benefits{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:30px;}
.benefits li{display:flex;gap:12px;font-size:15px;align-items:flex-start;line-height:1.5;}
.benefits li::before{content:"✓";flex-shrink:0;width:20px;height:20px;border-radius:50%;background:rgba(179,58,58,0.12);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:3px;}
.p0{background:linear-gradient(135deg,#F4F5F7,#E9EEF3);color:var(--ink);}
.p1{background:linear-gradient(135deg,#0F1B2A,#163049);color:#fff;}
.p2{background:linear-gradient(135deg,#F1E9E9,#F4F5F7);color:var(--ink);}
.p3{background:linear-gradient(135deg,#1C1F24,#2A2E36);color:#fff;}
.p0 .desc,.p2 .desc{color:var(--muted);}
.p1 .desc,.p3 .desc{color:rgba(255,255,255,0.72);}
.p0 .bignum{color:rgba(30,90,142,0.14);}.p1 .bignum,.p3 .bignum{color:rgba(255,255,255,0.08);}.p2 .bignum{color:rgba(179,58,58,0.14);}
.svc-section.left .photo-wrap{order:1;}.svc-section.left .text{order:2;}
.svc-section.right .photo-wrap{order:2;}.svc-section.right .text{order:1;}
.svc-section.left .photo{border-radius:4px 4px 4px 64px;}.svc-section.right .photo{border-radius:4px 4px 64px 4px;}
.svc-section.left .bignum{right:-10px;}.svc-section.right .bignum{left:-10px;}

/* gallery */
.gallery-intro{padding:60px 24px 20px;color:rgba(244,245,247,0.6);font-size:15px;max-width:620px;}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:240px;gap:8px;padding:36px 0 120px;}
.gtile{position:relative;overflow:hidden;background:#23272E;}
.gtile img{width:100%;height:100%;object-fit:cover;transition:transform 0.9s var(--ease),filter 0.6s;filter:saturate(0.9);}
.gtile:hover img{transform:scale(1.08);filter:saturate(1.1);}
.gtile span{position:absolute;left:0;bottom:0;padding:12px 14px;color:#fff;font-size:12px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,0.7);pointer-events:none;}
.span2{grid-column:span 2;}.row2{grid-row:span 2;}

/* contact */
.contact-grid{grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:start;padding:90px 24px 110px;}
.form-card{background:#fff;border-radius:20px;padding:40px;box-shadow:0 30px 70px rgba(15,27,42,0.14);border:1px solid rgba(20,23,28,0.05);}
.form-card h2{font-size:28px;margin-bottom:8px;}
.form-card .sub{color:#6A6E76;font-size:14px;margin-bottom:26px;}
form{display:flex;flex-direction:column;gap:14px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field{padding:15px 16px;border:1px solid rgba(20,23,28,0.14);border-radius:10px;font-size:16px;background:#F9FAFB;transition:border-color 0.3s,box-shadow 0.3s;width:100%;color:var(--ink);}
.field:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,90,142,0.12);outline:none;}
textarea.field{resize:vertical;}
.form-note{background:rgba(30,90,142,0.1);color:var(--blue2);padding:14px;border-radius:10px;font-size:14px;display:none;}
.form-note.show{display:block;}
.contact-side{display:flex;flex-direction:column;gap:28px;padding-top:12px;}
.contact-side h3{font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--blue);font-weight:600;margin-bottom:16px;font-family:'Geist',sans-serif;}
.contact-list{display:flex;flex-direction:column;gap:0;font-size:16px;}
.contact-list a{color:var(--ink);text-decoration:none;display:flex;gap:12px;align-items:center;min-height:44px;transition:color 0.3s,transform 0.3s;}
.contact-list a::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);flex-shrink:0;}
.contact-list a.blue::before{background:var(--blue);}
.contact-list a:hover{color:var(--red);transform:translateX(4px);}
.contact-list span{color:#6A6E76;font-size:14px;margin-top:4px;}
.socials{display:flex;gap:12px;}
.socials a{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;transition:all 0.35s var(--ease);}
.socials a:hover{transform:translateY(-3px);color:#fff;}
.socials a.fb:hover{background:var(--blue);box-shadow:0 10px 24px rgba(30,90,142,0.4);}
.socials a.yelp:hover{background:var(--red);box-shadow:0 10px 24px rgba(179,58,58,0.4);}
.map{border-radius:16px;overflow:hidden;box-shadow:0 20px 50px rgba(15,27,42,0.16);}
.map iframe{border:0;display:block;width:100%;height:340px;filter:saturate(0.85);}

/* footer */
.site-footer{background:#0B1420;padding:0 24px 32px;position:relative;overflow:hidden;}
.footer-line{height:2px;background:linear-gradient(90deg,#B33A3A,#1E5A8E,#B33A3A);background-size:200% 100%;animation:gradientShift 8s linear infinite;margin:0 -24px 64px;}
.footer-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px;text-decoration:none;}
.footer-brand img{width:40px;height:40px;border-radius:50%;object-fit:cover;}
.footer-brand b{color:#fff;font-family:'Playfair Display',serif;font-weight:600;font-size:20px;}
.footer-grid p{color:rgba(244,245,247,0.55);font-size:14px;line-height:1.6;max-width:360px;}
.site-footer .socials{margin-top:20px;}
.site-footer .socials a{width:44px;height:44px;background:rgba(244,245,247,0.08);}
.footer-h{color:#fff;font-weight:600;font-size:12px;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.16em;}
.footer-links{display:flex;flex-direction:column;gap:0;list-style:none;}
.footer-links a{color:rgba(244,245,247,0.65);font-size:14px;text-decoration:none;width:fit-content;display:inline-flex;align-items:center;min-height:44px;padding-bottom:0;background-image:linear-gradient(var(--red),var(--red));background-repeat:no-repeat;background-position:left bottom;background-size:0% 1px;transition:background-size 0.35s var(--ease),color 0.3s;}
.footer-links a:hover{background-size:100% 1px;color:#fff;}
.footer-links span{color:rgba(244,245,247,0.45);font-size:13px;margin-top:6px;}
.footer-bottom{max-width:1320px;margin:48px auto 0;padding-top:24px;border-top:1px solid rgba(244,245,247,0.08);color:rgba(244,245,247,0.4);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 0.8s var(--ease),transform 0.9s var(--ease);}
[data-reveal].in{opacity:1;transform:none;}

/* responsive */
@media (min-width:1080px){
  .nav-links{display:flex;}
  .nav-actions{display:flex;}
  .hamburger{display:none;}
}
@media (max-width:1079px){
  .drawer{display:block;}
}
@media (max-width:900px){
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .two-col,.about-body,.contact-grid,.footer-grid{grid-template-columns:1fr;}
  .two-col.pad{padding:80px 24px;}
  .about-photo{justify-self:start;}
  .badge{left:12px;}
  .about-body .sticky{position:static;}
  .svc-section .photo-wrap,.svc-section .text{order:initial !important;}
  .form-row{grid-template-columns:1fr;}
  .form-card{padding:28px 22px;}
  .cta-inner{padding:80px 24px;}
}
@media (max-width:560px){
  .services-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:180px;}
  .span2{grid-column:span 2;}.row2{grid-row:span 1;}
  .hero.hero-home{min-height:82vh;}
  .tcard{padding:24px;height:260px;}
  .tcard blockquote{font-size:15px;}
  .carousel .bigquote{font-size:110px;}
  .svc-section .bignum{font-size:64px;top:-32px;}
  .svc-section .two-col{padding:64px 24px;}
}
@media (max-width:440px){ .wordmark{display:none;} }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
  [data-reveal]{opacity:1;transform:none;}
  .hero-bg{animation:none;}
}

.hero .hero-limit{display:inline-block;margin:0 0 20px;padding:10px 16px;border-radius:12px;background:#b33a3a;color:#fff;font-weight:700;font-size:15px;line-height:1.3;letter-spacing:.02em;max-width:100%;height:auto;text-wrap:balance;}
.svc-list-section .wrap{padding-top:88px;padding-bottom:88px;}
.svc-list-section h2{font-size:clamp(28px,3.2vw,42px);margin-bottom:32px;}
.svc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 40px;margin-bottom:28px;}
.svc-list li{font-size:16px;}
.svc-list-note{font-size:15px;line-height:1.6;color:var(--ink);font-weight:600;max-width:720px;}
@media (max-width:760px){.svc-list{grid-template-columns:1fr;}.svc-list-section .wrap{padding-top:64px;padding-bottom:64px;}}
