:root{--ink:#27343f;--ink2:#1b252e;--ivory:#f7f3ec;--sand:#ece6da;--blue:#6f93b3;--blue-d:#4d7394;--line:rgba(39,52,63,.2);--lineb:rgba(111,147,179,.45)}
img{max-width:100%;height:auto;display:block}
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:92px}
body{font-family:'Hanken Grotesk',sans-serif;font-size:1.02rem;line-height:1.75;color:var(--ink);background:var(--ivory)}
h1,h2,h3,h4{font-family:'Bodoni Moda',serif;font-weight:400;line-height:1.12;color:var(--ink)}
h1{font-size:clamp(2.6rem,5.6vw,4.6rem)}
h2{font-size:clamp(2rem,3.8vw,3rem);margin-bottom:1rem}
h3{font-size:1.35rem}
em,.it{font-family:'Bodoni Moda',serif;font-style:italic}
.eyebrow,.btn,.navbar .nav-link,.tiny{font-family:'Hanken Grotesk',sans-serif;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500}
.eyebrow{display:block;color:var(--blue-d);margin-bottom:1rem}
a{color:var(--blue-d);text-decoration:none;transition:color .3s,opacity .3s}
a:hover{color:var(--ink)}
.sec{padding:96px 0}
.sec.alt{background:var(--sand)}
.sec.dark{background:var(--ink);color:var(--ivory)}
.sec.dark h2,.sec.dark h3{color:var(--ivory)}
.sec.dark .eyebrow{color:#a9c4dc}
.lead-it{font-family:'Bodoni Moda',serif;font-style:italic;font-size:1.25rem;opacity:.85;max-width:640px}
.narrow{max-width:820px}

/* nav (c): centered name stacked above links */
.topnav{background:rgba(247,243,236,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;padding:.7rem 0}
.brand{display:block;text-align:center;font-family:'Bodoni Moda',serif;font-size:1.5rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);line-height:1.1}
.brand small{display:block;font-family:'Hanken Grotesk',sans-serif;font-size:.6rem;letter-spacing:.38em;color:var(--blue-d);margin-top:.3rem}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center}
.navbar .nav-link{color:var(--ink);opacity:.82;padding:.5rem 1.1rem}
.navbar .nav-link:hover{opacity:1;color:var(--blue-d)}
.navbar-toggler{border:1px solid var(--line);border-radius:0;padding:.4rem .6rem}
.navbar-toggler:focus{box-shadow:none}
.nav-top{display:flex;align-items:center;justify-content:space-between;width:100%}
.nav-top .brand{flex:1}
.nav-top .spacer{width:44px}
@media(min-width:992px){.nav-top .spacer,.nav-top .navbar-toggler{display:none}}

/* buttons */
.btn{border-radius:0;padding:15px 36px}
.btn-solid{background:var(--ink);color:var(--ivory);border:1px solid var(--ink)}
.btn-solid:hover{background:var(--blue-d);border-color:var(--blue-d);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid rgba(39,52,63,.4)}
.btn-ghost:hover{background:var(--ink);color:var(--ivory)}
.dark .btn-solid{background:#a9c4dc;color:var(--ink2);border-color:#a9c4dc}
.dark .btn-ghost{color:var(--ivory);border-color:rgba(247,243,236,.4)}

/* hero */
.hero{padding:72px 0 80px;overflow:hidden}
.hero p.lead-it{margin:1.4rem 0 2rem}
.hero .actions{display:flex;gap:.8rem;flex-wrap:wrap}
.hero .where{margin-top:2rem;color:var(--ink);opacity:.75}
.hero .where a{color:inherit}

/* signature moment: the hanging hours sign */
.sign{position:relative;max-width:400px;margin:70px auto 0;padding:2.4rem 2rem 2.6rem;border:2px solid var(--lineb);border-radius:28px;background:var(--ivory)}
.sign:before,.sign:after{content:"";position:absolute;top:-62px;width:2px;height:62px;background:var(--lineb)}
.sign:before{left:22%;transform:rotate(20deg);transform-origin:bottom}
.sign:after{right:22%;transform:rotate(-20deg);transform-origin:bottom}
.sign .pin{position:absolute;top:14px;width:12px;height:12px;border-radius:50%;background:var(--sand);border:1px solid var(--lineb)}
.sign .pin.l{left:16px}.sign .pin.r{right:16px}
.sign h3{text-align:center;font-style:italic;font-size:2rem;color:var(--blue-d);margin-bottom:1.1rem}
.sign h3 span{display:block;font-style:normal;font-size:.7rem;letter-spacing:.38em;text-transform:uppercase;font-family:'Hanken Grotesk',sans-serif;color:var(--ink);margin-top:.2rem}
.hrs{list-style:none;margin:0;padding:0}
.hrs li{display:flex;justify-content:space-between;gap:1rem;padding:.42rem 0;border-bottom:1px dashed var(--line);font-size:.95rem}
.hrs li:last-child{border-bottom:0}
.sign .tag{position:absolute;left:50%;bottom:-17px;transform:translateX(-50%);background:var(--blue);color:#fff;padding:.4rem 1.2rem;border-radius:20px;white-space:nowrap}
.sign-note{text-align:center;font-size:.85rem;opacity:.75;margin-top:2.4rem}

/* service index: dashed leaders like the sign */
.cat{border-top:1px solid var(--line);padding-top:1.6rem;margin-bottom:3rem}
.cat h3{font-size:1.8rem;margin-bottom:.4rem}
.cat .note{font-size:.92rem;opacity:.75;margin-bottom:1rem}
.item{padding:1rem 0;border-bottom:1px dashed var(--line)}
.item .row1{display:flex;align-items:baseline;gap:.6rem}
.item .nm{font-family:'Bodoni Moda',serif;font-size:1.2rem}
.item .dots{flex:1;border-bottom:1px dashed rgba(39,52,63,.35);transform:translateY(-4px)}
.item .pr{font-family:'Bodoni Moda',serif;font-size:1.2rem;color:var(--blue-d);white-space:nowrap}
.item p{margin:.35rem 0 0;font-size:.93rem;opacity:.85}
.mini{display:flex;align-items:baseline;gap:.6rem;padding:.45rem 0;border-bottom:1px dashed var(--line)}
.mini .dots{flex:1;border-bottom:1px dashed rgba(39,52,63,.3);transform:translateY(-4px)}
.mini .pr{color:var(--blue-d);font-family:'Bodoni Moda',serif;white-space:nowrap}
.mini small{opacity:.7}

/* treatments */
.tx{border-top:1px solid rgba(247,243,236,.2);padding:1.4rem 0}
.tx h3{font-size:1.5rem;margin-bottom:.3rem}
.tx p{margin:0;font-size:.95rem;opacity:.82}

/* results */
.res{aspect-ratio:1/1;object-fit:cover;width:100%;border:1px solid var(--lineb);padding:8px;background:var(--ivory)}

/* quotes */
.q{border-top:1px solid var(--line);padding-top:1.4rem;height:100%}
.q p{font-family:'Bodoni Moda',serif;font-style:italic;font-size:1.2rem;line-height:1.5;margin-bottom:.8rem}
.stars{color:var(--blue-d);letter-spacing:.2em;font-size:.8rem}

/* brands */
.brand-b{border-top:1px solid var(--line);padding-top:1.2rem}
.brand-b h3{font-size:1.4rem}
.brand-b p{font-size:.93rem;opacity:.85;margin:0}

/* contact */
.info dt{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-d);font-weight:500;margin-top:1.4rem}
.info dd{margin:.2rem 0 0;font-size:1.05rem}
.map{border:1px solid var(--lineb);width:100%;height:100%;min-height:380px}

footer{background:var(--ink2);color:rgba(247,243,236,.75);padding:56px 0 40px;text-align:center}
footer .brand{color:var(--ivory)}
footer a{color:#a9c4dc}
footer a:hover{color:#fff}
footer .tiny{margin-top:1.2rem}

@media(max-width:991px){
.sec{padding:64px 0}
.hero{padding:44px 0 56px}
.sign{margin-top:80px}
.brand{font-size:1.15rem;letter-spacing:.1em}
.navbar .nav-link{text-align:center}
}
