@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');
:root{--ink:#12343a;--teal:#0b7478;--deep:#062f38;--soft:#eef9f8;--line:#dcebea;--muted:#63797d;--green:#18a84b;--shadow:0 20px 55px rgba(9,68,75,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:#fff}a{text-decoration:none;color:inherit}.header{height:78px;padding:0 max(5vw,28px);display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);z-index:50}.brand{display:flex;align-items:center;gap:10px;min-width:max-content}.brandMark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#0b6672,#11a09a);color:#fff;font-family:'Playfair Display';font-size:24px}.brand span:last-child{display:grid}.brand b{font-size:17px;letter-spacing:1px}.brand small{font-size:9px;letter-spacing:1.3px;color:var(--muted)}.nav{display:flex;gap:18px;align-items:center;margin-left:auto;font-size:13px;font-weight:700}.nav>a,.dropdown>a{padding:28px 0}.nav a:hover{color:var(--teal)}.dropdown{position:relative}.dropmenu{position:absolute;top:64px;left:50%;transform:translateX(-50%);width:250px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:var(--shadow);display:none}.dropdown:hover .dropmenu{display:grid}.dropmenu a{padding:12px;border-radius:9px}.dropmenu a:hover{background:var(--soft)}.ctaTop{background:var(--teal);color:white;padding:12px 18px;border-radius:10px;font-weight:800;font-size:13px}.menuBtn{display:none;margin-left:auto;border:0;background:none;font-size:24px}.hero{min-height:590px;padding:70px max(6vw,36px);display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;background:radial-gradient(circle at 70% 25%,#dff6f3 0,transparent 34%),linear-gradient(180deg,#fbfefe,#fff)}.hero h1,.pageHero h1{font-family:'Playfair Display',serif;font-size:clamp(46px,5.4vw,76px);line-height:1.02;margin:15px 0}.hero p,.pageHero p{font-size:18px;line-height:1.75;color:var(--muted);max-width:730px}.eyebrow{text-transform:uppercase;letter-spacing:1.6px;font-size:11px;font-weight:800;color:var(--teal)}.heroActions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:11px;font-weight:800}.btn.primary{background:var(--teal);color:#fff}.btn.ghost{border:1px solid var(--line);background:#fff}.heroMedia img{width:100%;height:470px;object-fit:cover;border-radius:30px;box-shadow:var(--shadow)}.pillrow{display:flex;gap:9px;flex-wrap:wrap}.pillrow span{font-size:12px;font-weight:700;padding:8px 11px;background:var(--soft);border-radius:999px}.section{padding:80px max(6vw,36px)}.section.alt{background:#f7fbfb}.sectionHead{max-width:760px;margin:0 auto 38px;text-align:center}.sectionHead h2,.content h2{font-family:'Playfair Display',serif;font-size:clamp(34px,4vw,52px);margin:12px 0}.sectionHead p,.content p{color:var(--muted);line-height:1.75}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1180px;margin:auto}.card{border:1px solid var(--line);border-radius:20px;padding:26px;background:#fff;box-shadow:0 10px 30px rgba(8,68,75,.05)}.card h3{font-size:20px;margin:0 0 10px}.card p{color:var(--muted);line-height:1.65}.card a{color:var(--teal);font-weight:800}.pageHero{padding:75px max(6vw,36px) 55px;background:linear-gradient(135deg,#edf9f8,#fff);text-align:center}.pageHero h1{font-size:clamp(42px,5vw,64px)}.pageHero p{margin:0 auto}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:12px}.content{max-width:950px;margin:auto}.contentGrid{display:grid;grid-template-columns:1.2fr .8fr;gap:45px;align-items:start}.sideCard{background:var(--soft);border-radius:20px;padding:26px;position:sticky;top:105px}.sideCard h3{margin-top:0}.checklist{list-style:none;padding:0}.checklist li{padding:10px 0;border-bottom:1px solid #d7ebe8}.checklist li:before{content:'✓';color:var(--teal);font-weight:900;margin-right:8px}.maps{display:grid;grid-template-columns:1fr 1fr;gap:22px}.mapCard{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff}.mapCard iframe{width:100%;height:330px;border:0}.mapCard .pad{padding:24px}.mapCard p{color:var(--muted);line-height:1.6}.mapButtons{display:flex;gap:10px;flex-wrap:wrap}.contactGrid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.contactPanel,.formPanel{border:1px solid var(--line);border-radius:22px;padding:30px;background:#fff}.contactPanel a{display:block;margin:12px 0;font-weight:800;color:var(--teal)}form{display:grid;gap:12px}input,textarea,select{width:100%;padding:13px 14px;border:1px solid #cfe1df;border-radius:10px;font:inherit}textarea{min-height:120px}.notice{font-size:12px;color:var(--muted);line-height:1.5}.ctaBand{margin:0 max(6vw,36px) 70px;padding:40px;border-radius:24px;background:linear-gradient(120deg,#075967,#0d8588);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px}.ctaBand h2{font-family:'Playfair Display';font-size:38px;margin:0 0 8px}.ctaBand p{margin:0;opacity:.84}.ctaBand .btn{background:#fff;color:var(--ink)}footer{background:var(--deep);color:#cfe3e5;padding:58px max(6vw,36px) 20px}.footerGrid{display:grid;grid-template-columns:1.4fr .8fr .8fr .8fr;gap:45px}.footerBrand{color:#fff}.footerGrid h4{color:white}.footerGrid a:not(.brand){display:block;margin:9px 0;color:#b7d0d3}.footerGrid p{color:#9ebfc4;line-height:1.6}.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:35px;padding-top:18px;text-align:center;font-size:12px;color:#8fb1b5}.floating{position:fixed;right:20px;bottom:20px;display:grid;gap:8px;z-index:60}.floating a{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:900;box-shadow:var(--shadow)}.floating a:last-child{background:var(--teal)}.legal{max-width:900px;margin:auto}.legal h2{font-family:'Playfair Display';margin-top:34px}.legal p,.legal li{color:var(--muted);line-height:1.7}.serviceHeroTag{display:inline-block;background:#dff3f1;color:var(--teal);font-weight:800;border-radius:999px;padding:8px 12px;margin-top:10px}
@media(max-width:980px){.nav{display:none}.nav.open{display:flex;position:absolute;top:78px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:18px 28px;box-shadow:var(--shadow)}.nav.open a{padding:10px 0}.dropmenu{position:static;transform:none;width:auto;box-shadow:none;border:0;display:grid;padding-left:15px}.dropdown:hover .dropmenu{display:grid}.ctaTop{display:none}.menuBtn{display:block}.hero{grid-template-columns:1fr}.heroMedia img{height:360px}.cards{grid-template-columns:1fr 1fr}.maps,.contactGrid,.contentGrid{grid-template-columns:1fr}.sideCard{position:static}.footerGrid{grid-template-columns:1fr 1fr}.ctaBand{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.header{padding:0 18px}.hero,.section,.pageHero{padding-left:20px;padding-right:20px}.hero{padding-top:45px;min-height:auto}.hero h1{font-size:46px}.cards{grid-template-columns:1fr}.footerGrid{grid-template-columns:1fr}.ctaBand{margin:0 20px 45px;padding:28px}.ctaBand h2{font-size:31px}.maps{grid-template-columns:1fr}}


/* ===== Dermatisse Motion System ===== */
:root{--ease:cubic-bezier(.22,1,.36,1);--ease-soft:cubic-bezier(.4,0,.2,1);--ring:0 0 0 4px rgba(11,116,120,.12)}
body{overflow-x:hidden}
::selection{background:#cceeed;color:var(--deep)}
.header{transition:height .35s var(--ease),box-shadow .35s var(--ease),background .35s ease}
.header.is-scrolled{height:68px;box-shadow:0 12px 35px rgba(9,68,75,.08);background:rgba(255,255,255,.94)}
.brandMark{transition:transform .45s var(--ease),box-shadow .45s var(--ease);box-shadow:0 7px 18px rgba(11,116,120,.18)}
.brand:hover .brandMark{transform:rotate(-7deg) scale(1.06);box-shadow:0 10px 26px rgba(11,116,120,.25)}
.nav>a,.dropdown>a{position:relative;transition:color .25s ease}
.nav>a:after,.dropdown>a:after{content:"";position:absolute;left:50%;bottom:20px;width:0;height:2px;border-radius:99px;background:var(--teal);transform:translateX(-50%);transition:width .32s var(--ease)}
.nav>a:hover:after,.nav>a.active:after,.dropdown>a:hover:after,.dropdown>a.active:after{width:100%}
.nav a.active{color:var(--teal)}
.dropmenu{display:grid;visibility:hidden;opacity:0;pointer-events:none;transform:translate(-50%,8px) scale(.98);transform-origin:top;transition:opacity .22s ease,transform .28s var(--ease),visibility .22s}
.dropdown:hover .dropmenu,.dropdown:focus-within .dropmenu{visibility:visible;opacity:1;pointer-events:auto;transform:translate(-50%,0) scale(1)}
.dropmenu a{transition:background .2s ease,color .2s ease,transform .2s var(--ease)}
.dropmenu a:hover{transform:translateX(4px)}
.btn,.ctaTop{position:relative;overflow:hidden;isolation:isolate;transition:transform .28s var(--ease),box-shadow .28s ease,border-color .28s ease,background .28s ease}
.btn:before,.ctaTop:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.34) 48%,transparent 68%);transform:translateX(-130%);transition:transform .65s var(--ease);z-index:-1}
.btn:hover:before,.ctaTop:hover:before{transform:translateX(130%)}
.btn:hover,.ctaTop:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(9,68,75,.16)}
.btn:active,.ctaTop:active{transform:translateY(-1px) scale(.98)}
.btn.ghost:hover{border-color:#b6d9d6;background:var(--soft)}
.heroCopy>*{will-change:transform,opacity}
.heroMedia{position:relative;perspective:1000px}
.heroMedia:before{content:"";position:absolute;inset:8% -4% -5% 8%;border-radius:34px;background:linear-gradient(145deg,rgba(11,116,120,.13),rgba(17,160,154,.03));filter:blur(1px);z-index:-1;transition:transform .5s var(--ease)}
.heroMedia:hover:before{transform:translate(8px,8px)}
.heroMedia img{transition:transform .6s var(--ease),box-shadow .6s var(--ease);will-change:transform}
.heroMedia:hover img{transform:translateY(-7px) scale(1.012);box-shadow:0 30px 70px rgba(9,68,75,.18)}
.card,.mapCard,.contactPanel,.formPanel,.sideCard{position:relative;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s ease}
.card{overflow:hidden}
.card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(11,116,120,.08),transparent 42%);opacity:0;transition:opacity .3s ease;pointer-events:none}
.card:hover{transform:translateY(-8px);border-color:#b9dcda;box-shadow:0 24px 55px rgba(8,68,75,.11)}
.card:hover:before{opacity:1}
.card h3{transition:color .25s ease}.card:hover h3{color:var(--teal)}
.card a{display:inline-block;transition:transform .25s var(--ease)}.card a:hover{transform:translateX(4px)}
.mapCard:hover,.contactPanel:hover,.formPanel:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(8,68,75,.10);border-color:#bfdedc}
.mapCard iframe{filter:saturate(.92);transition:filter .4s ease}.mapCard:hover iframe{filter:saturate(1.08)}
input,textarea,select{transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;background:#fff}
input:hover,textarea:hover,select:hover{border-color:#a9cecb}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--teal);box-shadow:var(--ring);transform:translateY(-1px)}
.floating a{transition:transform .35s var(--ease),box-shadow .35s ease}
.floating a:hover{transform:translateY(-5px) scale(1.06);box-shadow:0 16px 34px rgba(9,68,75,.23)}
.ctaBand{position:relative;overflow:hidden;box-shadow:0 22px 60px rgba(6,47,56,.16)}
.ctaBand:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;top:-120px;background:rgba(255,255,255,.07);pointer-events:none;transition:transform .7s var(--ease)}
.ctaBand:hover:after{transform:scale(1.18) translate(-12px,12px)}
footer a{transition:color .2s ease,transform .2s var(--ease)}footer a:not(.brand):hover{color:#fff;transform:translateX(3px)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .72s var(--ease),transform .72s var(--ease)}
.reveal.from-left{transform:translateX(-28px)}.reveal.from-right{transform:translateX(28px)}
.reveal.is-visible{opacity:1;transform:none}
.stagger>*{opacity:0;transform:translateY(20px)}.stagger.is-visible>*{animation:dmStagger .65s var(--ease) forwards}.stagger.is-visible>*:nth-child(2){animation-delay:.08s}.stagger.is-visible>*:nth-child(3){animation-delay:.16s}.stagger.is-visible>*:nth-child(4){animation-delay:.24s}.stagger.is-visible>*:nth-child(5){animation-delay:.32s}.stagger.is-visible>*:nth-child(6){animation-delay:.40s}
@keyframes dmStagger{to{opacity:1;transform:none}}
.page-transition{position:fixed;inset:0;background:linear-gradient(145deg,#f8fdfd,#e9f7f6);z-index:9999;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s;pointer-events:none}
.page-transition.show{opacity:1;visibility:visible;pointer-events:auto}
.page-loader{display:grid;place-items:center;gap:16px;color:var(--deep);font-weight:800;letter-spacing:.3px}
.page-loader .loader-mark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#0b6672,#11a09a);color:#fff;font:700 31px 'Playfair Display';box-shadow:0 14px 35px rgba(11,116,120,.2);animation:dmPulse 1.5s ease-in-out infinite}
.loader-dots{display:flex;gap:6px;justify-content:center}.loader-dots i{width:7px;height:7px;border-radius:50%;background:var(--teal);animation:dmDot 1s ease-in-out infinite}.loader-dots i:nth-child(2){animation-delay:.12s}.loader-dots i:nth-child(3){animation-delay:.24s}
.page-loader small{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:1px;text-transform:uppercase}
@keyframes dmPulse{50%{transform:translateY(-4px);box-shadow:0 20px 44px rgba(11,116,120,.25)}}@keyframes dmDot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--teal),#3bc3b6);z-index:999;box-shadow:0 1px 6px rgba(11,116,120,.22);transition:width .08s linear}
.menuBtn{cursor:pointer;transition:transform .25s var(--ease),color .2s}.menuBtn:hover{color:var(--teal);transform:scale(1.08)}
@media(max-width:980px){.dropmenu{visibility:visible;opacity:1;pointer-events:auto;transform:none}.nav.open{animation:dmMenu .32s var(--ease) both}.nav>a:after,.dropdown>a:after{bottom:6px;left:0;transform:none}.nav>a:hover:after,.nav>a.active:after,.dropdown>a.active:after{width:42px}@keyframes dmMenu{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.reveal,.stagger>*{opacity:1!important;transform:none!important}.page-transition{display:none!important}}
