:root{--cream:#f6f1e7;--paper:#fbf8f2;--green:#173a33;--green-d:#0f2823;--brass:#b98a3a;--brass-l:#e3c27e;--ink:#17211e;--mute:#586360}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:1.08rem;line-height:1.65;color:var(--ink);background:var(--cream)}
h1,h2,h3,h4,.brand{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.02;color:var(--green)}
h2{font-size:clamp(2.2rem,5vw,3.6rem);text-transform:uppercase;letter-spacing:.01em}
a{color:var(--green)}
.eyebrow{font-family:'Hanken Grotesk',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:.8rem}
.eyebrow.light{color:var(--brass-l)}
section{padding:5.5rem 0}
/* utility bar + nav */
.util{background:var(--green-d);color:#e9efe9;font-size:.88rem;padding:.45rem 0}
.util a{color:#fff;text-decoration:none;font-weight:600}
.util .sep{opacity:.4;margin:0 .6rem}
.navbar{background:var(--paper);border-bottom:1px solid #e2d8c3;padding:.7rem 0}
.navbar-brand{display:flex;align-items:center;gap:.7rem;margin:0}
.navbar-brand img{height:46px;width:auto}
.navbar-brand .brand{font-size:1.55rem;line-height:1;text-transform:uppercase;letter-spacing:.03em}
.navbar-brand small{display:block;font-family:'Hanken Grotesk',sans-serif;font-size:.62rem;letter-spacing:.2em;color:var(--brass);font-weight:700;margin-top:.25rem}
.nav-link{color:var(--ink)!important;font-weight:600;font-size:.95rem}
.nav-link:hover{color:var(--brass)!important}
.btn-brass{background:var(--brass);color:#fff;font-weight:700;border:0;border-radius:.25rem;padding:.75rem 1.5rem;letter-spacing:.03em}
.btn-brass:hover{background:#9b7127;color:#fff}
.btn-ghost{border:2px solid var(--green);color:var(--green);font-weight:700;border-radius:.25rem;padding:.7rem 1.4rem;background:transparent}
.btn-ghost:hover{background:var(--green);color:#fff}
/* hero */
.hero{padding:4rem 0 0;background:var(--cream);position:relative;overflow:hidden}
.hero h1{font-size:clamp(3rem,8vw,6.2rem);text-transform:uppercase;letter-spacing:-.005em}
.hero h1 em{font-style:italic;color:var(--brass);text-transform:none}
.hero .lead{font-size:1.2rem;max-width:34rem;color:var(--mute)}
.hero-photo{position:relative;margin-top:1rem}
.hero-photo img{width:100%;height:auto;display:block;border-radius:.4rem;border:6px solid #fff;box-shadow:14px 14px 0 var(--green)}
.plaque{position:absolute;left:-1rem;bottom:-1.6rem;background:linear-gradient(145deg,#d8b66d,#a97c30 55%,#c9a152);color:#2b1f08;padding:1rem 2rem;border-radius:.3rem;text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.28),inset 0 0 0 2px rgba(255,255,255,.35),inset 0 0 0 5px rgba(120,80,10,.35);font-family:'Cormorant Garamond',serif;font-weight:700;text-transform:uppercase;line-height:1.05;letter-spacing:.06em;text-shadow:0 1px 0 rgba(255,255,255,.4)}
.plaque b{display:block;font-size:1.35rem}
.plaque span{display:block;font-family:'Hanken Grotesk',sans-serif;font-size:.62rem;letter-spacing:.24em;margin-top:.3rem}
.plaque::before,.plaque::after{content:"";position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3cc,#7a5410);transform:translateY(-50%)}
.plaque::before{left:.7rem}.plaque::after{right:.7rem}
.skyline{height:150px;margin-top:3.5rem;background:url('img/skyline.webp') center 55%/cover no-repeat}
.stats{background:var(--green);color:#fff;padding:1.8rem 0}
.stats b{font-family:'Cormorant Garamond',serif;font-size:3rem;line-height:1;color:var(--brass-l);display:block;font-weight:700}
.stats span{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase}
/* about */
.about{background:var(--paper)}
.arch img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:60% 40%;border-radius:999px 999px .4rem .4rem;border:6px solid #fff;box-shadow:0 0 0 3px var(--brass)}
.gens{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:1.5rem}
.gens div{border-top:3px solid var(--brass);padding-top:.5rem;font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;color:var(--green)}
.gens small{display:block;font-family:'Hanken Grotesk',sans-serif;font-size:.78rem;color:var(--mute);font-weight:400}
/* services */
.svc{background:var(--cream)}
.card-s{background:#fff;border:1px solid #e6dcc6;border-radius:.4rem;overflow:hidden;height:100%;display:flex;flex-direction:column}
.card-s img{width:100%;height:190px;object-fit:cover;display:block}
.card-s .b{padding:1.3rem 1.4rem 1.5rem}
.card-s h3{font-size:1.8rem;margin-bottom:.4rem}
.card-s p{font-size:.98rem;margin:0;color:var(--mute)}
.card-s.walk{background:var(--green);border-color:var(--green)}
.card-s.walk h3,.card-s.walk p{color:#fff}
.card-s.walk p{opacity:.9}
.card-s.walk .tag{display:inline-block;background:var(--brass);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:.2rem .6rem;border-radius:.2rem;margin-bottom:.6rem}
.index{list-style:none;padding:0;margin:3rem 0 0;column-count:2;column-gap:3rem}
.index li{break-inside:avoid;border-bottom:1px solid #d9ceb6;padding:.8rem 0}
.index b{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--green);font-weight:600;display:block;line-height:1.1}
.index span{font-size:.95rem;color:var(--mute)}
/* team */
.team{background:var(--green);color:#fff}
.team h2{color:#fff}
.doc{border:1px solid rgba(227,194,126,.4);border-radius:.4rem;padding:1.6rem;height:100%;background:rgba(255,255,255,.04)}
.doc h3{color:var(--brass-l);font-size:1.75rem;margin-bottom:.2rem}
.doc .role{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:.8rem;display:block;color:#cfe0d8}
.doc p{font-size:.96rem;margin:0 0 .5rem;color:#e7efeb}
.doc p b{color:#fff}
/* gallery */
.gallery{background:var(--paper)}
.strip{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;-webkit-overflow-scrolling:touch}
.strip figure{flex:0 0 min(78vw,420px);margin:0;scroll-snap-align:start}
.strip img{width:100%;height:300px;object-fit:cover;border-radius:.4rem;border:5px solid #fff;box-shadow:0 0 0 1px #d9ceb6}
.strip::-webkit-scrollbar{height:8px}.strip::-webkit-scrollbar-thumb{background:var(--brass);border-radius:4px}
/* notes */
.notes{background:var(--cream)}
.card-note{background:#fff;padding:.7rem .7rem 1.2rem;box-shadow:0 8px 20px rgba(0,0,0,.14);transform:rotate(-2deg)}
.card-note:nth-child(even){transform:rotate(1.8deg)}
.card-note img{width:100%;height:auto;display:block}
.notes-row>div:nth-child(2n) .card-note{transform:rotate(1.8deg)}
.notes-row>div:nth-child(2n+1) .card-note{transform:rotate(-1.6deg)}
/* contact */
.visit{background:var(--green-d);color:#fff}
.visit h2{color:#fff}
.visit a{color:var(--brass-l)}
.hours{list-style:none;padding:0;margin:0}
.hours li{display:flex;justify-content:space-between;border-bottom:1px dashed rgba(255,255,255,.25);padding:.5rem 0;max-width:22rem}
.mapbox iframe{width:100%;height:100%;min-height:380px;border:0;border-radius:.4rem}
.fine{font-size:.9rem;opacity:.85}
footer{background:#0a1b17;color:#cfd9d4;padding:2.5rem 0;font-size:.92rem}
footer a{color:var(--brass-l)}
.powered{text-decoration:none;font-weight:700;letter-spacing:.04em}
@media(max-width:991px){.index{column-count:1}.plaque{left:.5rem;padding:.8rem 1.4rem}.hero{padding-top:2.5rem}.util .hide-sm{display:none}section{padding:4rem 0}}
@media(max-width:575px){.hero-photo img{box-shadow:8px 8px 0 var(--green)}.skyline{height:100px}.stats b{font-size:2.3rem}}
.navbar-brand img{mix-blend-mode:multiply}
