img{max-width:100%;height:auto}
:root{--ink:#0d2b35;--ink2:#143945;--ivory:#f4efe4;--gold:#c4a96f;--mute:#b9c4c6;--display:'Bodoni Moda',Georgia,serif;--body:'Manrope',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:150px}
body{font-family:var(--body);background:var(--ink);color:var(--ivory);font-size:1rem;line-height:1.8;font-weight:300}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.12;color:var(--ivory)}
h1{font-size:clamp(2.6rem,5.5vw,4.6rem)}
h2{font-size:clamp(2.2rem,4.4vw,3.4rem);margin-bottom:1.2rem}
h3{font-size:1.5rem}
a{color:var(--gold);text-decoration:none;transition:opacity .3s,color .3s,border-color .3s}
a:hover{opacity:.75}
.cap,.eyebrow,.btn,.navbar .nav-link,.small-caps{font-family:var(--body);font-size:.68rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase}
.eyebrow{color:var(--gold);display:block;margin-bottom:1.2rem}
.sub{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,2vw,1.45rem);opacity:.82;letter-spacing:.01em}
.sec{padding:96px 0}
.sec.alt{background:var(--ink2)}
.measure{max-width:820px}
.hair{border-top:1px solid rgba(196,169,111,.2)}
/* nav */
.navbar{background:rgba(13,43,53,.93);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(196,169,111,.18);padding:.9rem 0}
.navbar .brand{display:flex;flex-direction:column;align-items:center;color:var(--ivory);text-align:center;line-height:1}
.navbar .brand svg{width:34px;height:34px;margin-bottom:.45rem}
.navbar .brand span{font-family:var(--display);font-size:1.25rem;letter-spacing:.3em;text-transform:uppercase}
.navbar .brand small{font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:.3rem;font-weight:500}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center}
.navbar .nav-link{color:var(--ivory);opacity:.8;padding:.5rem 1rem}
.navbar .nav-link:hover{opacity:1;color:var(--gold)}
.navbar-toggler{border:1px solid rgba(196,169,111,.4);border-radius:0;padding:.4rem .6rem}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23c4a96f' stroke-width='2' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")}
.nav-wrap{display:flex;flex-direction:column;align-items:center;width:100%}
.nav-top{display:flex;width:100%;justify-content:center;position:relative}
.navbar-toggler{position:absolute;right:0;top:50%;transform:translateY(-50%)}
@media(min-width:992px){.navbar-toggler{display:none}}
/* buttons */
.btn{border-radius:0;padding:15px 40px}
.btn-gold{background:var(--gold);color:var(--ink);border:1px solid var(--gold)}
.btn-gold:hover{background:transparent;color:var(--gold);opacity:1}
.btn-ghost{border:1px solid rgba(244,239,228,.35);color:var(--ivory);background:transparent}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);opacity:1}
/* hero */
.hero{position:relative;padding:110px 0 100px;overflow:hidden;background:radial-gradient(ellipse 70% 80% at 70% 40%,#16404d 0%,var(--ink) 75%)}
.hero .compass{position:absolute;right:-120px;top:-60px;width:620px;opacity:.07;pointer-events:none}
.hero h1{margin-bottom:1.4rem}
.arch{border-radius:999px 999px 0 0;overflow:hidden;border:1px solid rgba(196,169,111,.55);padding:10px;max-width:360px;margin:0 auto}
.arch img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 12%;border-radius:999px 999px 0 0}
.arch-cap{text-align:center;margin-top:1rem;font-family:var(--display);font-style:italic;opacity:.85}
.arch-cap small{display:block;font-family:var(--body);font-style:normal;font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-top:.2rem}
.press{font-family:var(--display);font-style:italic;opacity:.75;font-size:1.05rem}
/* services index */
.svc{border-top:1px solid rgba(196,169,111,.2);padding:2rem 0;display:grid;grid-template-columns:1fr 1.6fr;gap:2rem}
.svc:last-child{border-bottom:1px solid rgba(196,169,111,.2)}
.svc h3{margin:0}
.svc p{margin:0 0 .8rem;opacity:.85}
@media(max-width:767px){.svc{grid-template-columns:1fr;gap:.8rem}}
.fid li{margin-bottom:.9rem;padding-left:1.4rem;position:relative;opacity:.9}
.fid li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--gold)}
/* quote band */
.band{position:relative;padding:150px 0;text-align:center;background:linear-gradient(rgba(13,43,53,.72),rgba(13,43,53,.72)),url('img/shore.webp') center/cover no-repeat}
.band blockquote{font-family:var(--display);font-style:italic;font-size:clamp(1.7rem,3.6vw,2.8rem);line-height:1.3;max-width:900px;margin:0 auto 1.4rem}
/* team */
.member img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 25%;display:block;border:1px solid rgba(196,169,111,.4);padding:6px;margin-bottom:1.1rem}
.member h3{font-size:1.3rem;margin-bottom:.2rem}
.member .role{font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.7rem;font-weight:500}
.member p{font-size:.92rem;opacity:.82;line-height:1.7}
/* offices */
.office{border-top:1px solid rgba(196,169,111,.25);padding-top:1.3rem}
.office h3{margin-bottom:.6rem}
.office a.tel{font-family:var(--display);font-size:1.4rem;color:var(--ivory)}
.mapwrap iframe{width:100%;height:100%;min-height:360px;border:0;filter:grayscale(.4) contrast(.95)}
.login-grid{columns:3 200px;column-gap:2rem}
.login-grid a{display:block;padding:.35rem 0;border-bottom:1px solid rgba(196,169,111,.12);color:var(--ivory);opacity:.85;font-size:.92rem}
.login-grid a:hover{color:var(--gold)}
.awards img{width:150px;height:auto}
footer{background:#091f27;padding:64px 0 40px;font-size:.85rem}
footer .logo-chip img{width:200px}
footer p{opacity:.7;line-height:1.7}
footer a{color:var(--ivory);opacity:.8}
.fine{font-size:.78rem;opacity:.6;line-height:1.7}
.social a{margin-right:1.4rem}
@media(max-width:767px){.sec{padding:64px 0}.hero{padding:70px 0}.band{padding:90px 0}.hero .compass{width:380px;right:-140px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:575px){.navbar .brand span{font-size:1rem;letter-spacing:.18em}.navbar .brand{padding:0 48px}}
