@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,700;1,700&display=swap');

:root { --bg:#0c0c0c; --panel:#151515; --panel-strong:#1d1d1b; --text:#f3f0e8; --muted:#aaa79f; --gold:#caa85e; --gold-light:#efd58f; --line:rgb(255 255 255 / 11%); --max-width:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--text); font-family:"DM Sans",Arial,sans-serif; line-height:1.55; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }

.site-header { position:sticky; top:0; z-index:40; display:flex; align-items:center; gap:34px; height:86px; padding:0 max(28px,calc((100vw - var(--max-width)) / 2)); border-bottom:1px solid var(--line); background:rgb(12 12 12 / 90%); backdrop-filter:blur(14px); }
.brand { display:flex; width:58px; margin-right:auto; }.brand .brand-emblem { width:58px; aspect-ratio:1; border-radius:50%; object-fit:cover; }
.nav { display:flex; gap:28px; font-size:14px; }
.nav a { color:#cbc8c0; }.nav a:hover,.nav a:focus-visible { color:var(--gold-light); }
.header-cta { padding:10px 17px; border:1px solid var(--gold); border-radius:999px; font-size:14px; }
.menu-toggle { display:none; padding:8px 12px; border:1px solid var(--line); border-radius:6px; background:none; color:var(--text); font:inherit; }

.hero { display:grid; grid-template-columns:1.05fr .95fr; min-height:calc(100vh - 86px); overflow:hidden; }
.hero-content { align-self:center; padding:clamp(70px,9vw,145px) clamp(28px,5vw,96px); }
.eyebrow { margin:0 0 20px; color:var(--gold); font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
h1 { margin-bottom:30px; font-family:"Playfair Display",Georgia,serif; font-size:clamp(58px,7.2vw,108px); line-height:.92; letter-spacing:-.045em; }
h1 span,.statement em { color:var(--gold-light); font-style:italic; }
.lead { max-width:650px; color:#c7c3ba; font-size:clamp(18px,1.5vw,23px); }
.hero-actions,.contact-actions { display:flex; flex-wrap:wrap; gap:13px; margin:34px 0; }
.btn { display:inline-flex; align-items:center; justify-content:center; padding:14px 20px; border:1px solid transparent; border-radius:3px; font-size:14px; font-weight:700; }
.btn-gold { background:var(--gold); color:#111; }.btn-gold:hover,.btn-gold:focus-visible { background:var(--gold-light); }
.btn-ghost { border-color:var(--line); }.btn-ghost:hover,.btn-ghost:focus-visible { border-color:#777; }
.job-card { max-width:650px; margin:8px 0 30px; padding:22px 24px; border-left:4px solid var(--gold); background:#f3f0e8; color:#171512; box-shadow:0 12px 28px rgb(0 0 0 / 20%); }.job-card-label { margin-bottom:5px; color:#806427; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }.job-card h2 { margin:0 0 7px; font-family:"Playfair Display",Georgia,serif; font-size:29px; line-height:1; }.job-card>p:not(.job-card-label) { margin-bottom:14px; font-size:14px; line-height:1.45; }.job-card-action { display:inline-block; padding:10px 13px; border:0; background:var(--gold); color:#171512; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }.job-card-action:hover,.job-card-action:focus-visible { background:var(--gold-light); }
.job-dialog { width:min(720px,calc(100% - 32px)); max-height:calc(100vh - 48px); overflow:auto; padding:clamp(26px,4vw,48px); border:1px solid rgb(202 168 94 / 55%); background:#151515; color:var(--text); box-shadow:0 24px 70px rgb(0 0 0 / 55%); }.job-dialog::backdrop { background:rgb(0 0 0 / 72%); backdrop-filter:blur(4px); }.job-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }.job-dialog-head .eyebrow { margin-bottom:0; }.job-dialog-close { display:grid; width:34px; height:34px; place-items:center; border:1px solid var(--line); background:transparent; color:var(--text); font-size:27px; line-height:1; cursor:pointer; }.job-dialog h2 { margin:8px 0 22px; font-family:"Playfair Display",Georgia,serif; font-size:clamp(34px,5vw,52px); line-height:1; }.job-dialog>p { max-width:650px; color:#d3cfc6; font-size:16px; }.job-dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:28px 0; }.job-dialog-grid section { padding:22px; border:1px solid var(--line); background:#1d1d1b; }.job-dialog-grid h3 { margin-bottom:12px; color:var(--gold-light); font-size:19px; }.job-dialog-grid ul { margin:0; padding-left:19px; color:#d3cfc6; }.job-dialog-grid li+li { margin-top:7px; }.job-email-callout { display:flex; flex-direction:column; gap:8px; padding:24px; border-left:4px solid var(--gold); background:#f3f0e8; color:#171512; }.job-email-callout strong { font-size:20px; }.job-email-callout span { font-size:14px; }.job-email-callout a { color:#171512; font-size:20px; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.hero-proof { display:flex; flex-wrap:wrap; gap:36px; max-width:670px; margin-top:50px; padding-top:25px; border-top:1px solid var(--line); }
.hero-proof div { display:flex; flex-direction:column; }.hero-proof strong { font-size:23px; }.hero-proof span { color:var(--muted); font-size:12px; }
.hero-photo { position:relative; min-height:560px; overflow:hidden; background:var(--panel); }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:56% center; filter:saturate(.88) contrast(1.03); }
.hero-photo::after { position:absolute; inset:0; pointer-events:none; content:""; background:linear-gradient(90deg,rgb(12 12 12 / 5%),rgb(12 12 12 / 10%) 55%,rgb(12 12 12 / 30%)),linear-gradient(0deg,rgb(12 12 12 / 55%),transparent 42%); }
.hero-photo-badge { position:absolute; z-index:1; bottom:32px; left:34px; display:flex; flex-direction:column; padding:16px 18px; border:1px solid rgb(239 213 143 / 42%); background:rgb(10 10 10 / 72%); backdrop-filter:blur(7px); }
.hero-photo-badge span,.hero-photo-badge small { color:#d9d2bf; font-size:10px; letter-spacing:.22em; }.hero-photo-badge strong { margin:4px 0; color:var(--gold-light); font-family:"Playfair Display",Georgia,serif; font-size:24px; line-height:1.05; }

.statement { padding:120px 28px; border-block:1px solid var(--line); text-align:center; }.statement>p { margin-bottom:12px; color:var(--muted); }
.statement h2,.section-head h2,.about h2,.contact h2 { margin-bottom:20px; font-family:"Playfair Display",Georgia,serif; font-size:clamp(40px,4.6vw,68px); line-height:1.04; }.statement h2 { margin:0; font-size:clamp(42px,5vw,76px); }
.section { max-width:var(--max-width); margin:0 auto; padding:110px 28px; }.section-head { max-width:740px; margin-bottom:55px; }.section-head>p:last-child,.about-panel>p,.contact-copy>p { color:var(--muted); font-size:17px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.service-card { overflow:hidden; border:1px solid var(--line); background:var(--panel); }.service-card img { width:100%; aspect-ratio:4 / 3; object-fit:cover; }.service-copy { padding:26px 26px 30px; }.service-copy>span,.stars { color:var(--gold); font-size:12px; }.service-copy h3 { margin:18px 0 10px; font-size:26px; }.service-copy p { margin:0; color:var(--muted); }
.about,.contact { display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; }.about { gap:80px; }.about-quote { display:flex; flex-direction:column; justify-content:center; min-height:420px; padding:55px; border:1px solid rgb(202 168 94 / 20%); background:var(--panel-strong); }.quote-mark { color:var(--gold); font-family:Georgia,serif; font-size:100px; line-height:.5; }blockquote { margin:32px 0; font-family:"Playfair Display",Georgia,serif; font-size:36px; line-height:1.16; }.about-quote p { color:var(--muted); }
.gallery,.reviews,.contact { border-top:1px solid var(--line); }.gallery-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; grid-auto-rows:240px; gap:12px; }.gallery-grid figure { margin:0; overflow:hidden; background:var(--panel); }.gallery-grid .gallery-large { grid-row:span 2; }.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease,filter .35s ease; }.gallery-grid figure:hover img { transform:scale(1.025); filter:brightness(1.04); }
.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.review-grid article { min-height:190px; padding:32px; border:1px solid var(--line); background:var(--panel); }.stars { margin-bottom:25px; font-size:16px; letter-spacing:.15em; }.review-grid p { font-size:19px; }.source-note,.hours-card>p { color:#777; font-size:12px; }.source-note { max-width:850px; margin-top:25px; }
.hours-card { padding:38px; border:1px solid var(--line); background:var(--panel); }.hours-card h3 { font-size:25px; }.hours-card dl { margin:25px 0; }.hours-card dl div { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); }.hours-card dt { color:var(--muted); }.hours-card dd { margin:0; }
footer { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; max-width:var(--max-width); margin:auto; padding:45px 28px; border-top:1px solid var(--line); color:var(--muted); }footer .footer-emblem { grid-column:2; grid-row:1; width:112px; aspect-ratio:1; border:3px solid var(--text); border-radius:50%; object-fit:cover; }footer>p:not(.footer-small) { grid-column:1; grid-row:1; }footer .footer-small { grid-column:3; grid-row:1; text-align:right; font-size:12px; }

@media (max-width:900px) { .site-header { height:72px; padding:0 20px; }.nav { position:absolute; top:72px; right:0; left:0; display:none; flex-direction:column; padding:20px; border-bottom:1px solid var(--line); background:#111; }.nav.open { display:flex; }.menu-toggle { display:block; }.header-cta { display:none; }.hero { grid-template-columns:1fr; }.hero-content { padding:70px 24px 55px; }.hero-photo { order:-1; min-height:430px; }.hero-photo img { object-position:center; }.hero-proof { gap:18px; }.statement { padding:85px 24px; }.section { padding:80px 22px; }.service-grid,.review-grid,.about,.contact { grid-template-columns:1fr; }.about,.contact { gap:35px; }.about-quote { min-height:330px; padding:35px; }.gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:260px; }.gallery-grid .gallery-large { grid-column:span 2; grid-row:span 1; }footer { grid-template-columns:1fr; justify-items:center; text-align:center; }footer .footer-emblem,footer>p:not(.footer-small),footer .footer-small { grid-column:1; grid-row:auto; text-align:center; } }
@media (max-width:560px) { h1 { font-size:54px; }.hero-photo { min-height:330px; }.hero-photo-badge { bottom:18px; left:18px; }.hero-actions .btn,.contact-actions .btn { width:100%; }.hero-proof { display:grid; grid-template-columns:1fr 1fr; }.gallery-grid { grid-template-columns:1fr; grid-auto-rows:260px; }.gallery-grid .gallery-large { grid-column:auto; }.review-grid article { min-height:auto; }.job-dialog-grid { grid-template-columns:1fr; }.job-email-callout strong { font-size:18px; } }
