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

:root { --ink:#262522; --muted:#716d64; --paper:#f6f4ef; --sand:#e9e4da; --line:#d8d3c9; --dark:#292825; --accent:#b68b63; --ease:cubic-bezier(.23,1,.32,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; font-size:15px; line-height:1.65; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.container { width:min(1180px, calc(100% - 64px)); margin:auto; }
.site-shell { overflow:hidden; }
.site-header { position:fixed; z-index:20; left:0; right:0; top:0; height:82px; display:flex; align-items:center; justify-content:space-between; padding:0 38px; color:white; transition:background .3s var(--ease), color .3s var(--ease), box-shadow .3s; }
.header-scrolled { background:rgba(246,244,239,.94); color:var(--ink); box-shadow:0 1px 0 rgba(38,37,34,.08); backdrop-filter:blur(16px); }
.brand { display:flex; align-items:center; gap:11px; line-height:1; letter-spacing:-.03em; }
.brand-mark { display:grid; place-items:center; width:33px; height:33px; border:1px solid currentColor; font-family:'Playfair Display',serif; font-size:19px; }
.brand strong { display:block; font-size:15px; font-weight:700; letter-spacing:-.04em; }
.brand small { display:block; margin-top:5px; font-size:8px; text-transform:uppercase; letter-spacing:.19em; opacity:.68; }
.main-nav { display:flex; align-items:center; gap:32px; font-size:12px; font-weight:600; letter-spacing:.02em; }
.main-nav a:not(.nav-phone) { opacity:.78; transition:opacity .2s; }.main-nav a:hover { opacity:1; }
.nav-phone { display:flex; align-items:center; gap:7px; margin-left:10px; padding:10px 15px; border:1px solid currentColor; border-radius:100px; }
.menu-toggle { display:none; background:none; border:0; color:inherit; padding:7px; }
.hero { position:relative; min-height:760px; color:white; background-size:cover; background-position:center 40%; display:flex; align-items:center; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,18,17,.74),rgba(18,18,17,.22) 65%,rgba(18,18,17,.28)); }
.hero-content { position:relative; padding-top:72px; }.eyebrow { display:flex; align-items:center; gap:10px; color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }.eyebrow span { width:25px; height:1px; background:currentColor; }.eyebrow.light { color:#e6caa8; }
h1,h2,h3,p { margin-top:0; } h1,h2 { font-family:'Playfair Display',serif; font-weight:500; letter-spacing:-.055em; line-height:1.02; } h1 { max-width:700px; margin:27px 0 27px; font-size:clamp(55px, 8.6vw, 108px); } h1 em,h2 em { color:var(--accent); font-weight:500; } .hero-copy { max-width:360px; margin-bottom:32px; color:rgba(255,255,255,.8); font-size:17px; line-height:1.55; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }.button { display:inline-flex; align-items:center; justify-content:center; gap:11px; min-height:50px; padding:0 20px; border:1px solid transparent; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; transition:transform .2s var(--ease), background .2s, color .2s; }.button:hover { transform:translateY(-2px); }.button:active { transform:scale(.97); }.button-light { background:#f4f0e9; color:var(--ink); }.button-light:hover { background:white; }.button-ghost-light { border-color:rgba(255,255,255,.5); color:#fff; }.button-ghost-light:hover { background:white; color:var(--ink); }.button-dark { background:var(--dark); color:white; }.scroll-cue { position:absolute; left:0; bottom:-160px; display:flex; align-items:center; gap:12px; color:rgba(255,255,255,.72); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }.scroll-cue svg { animation:bob 1.8s infinite; }.hero-stamp { position:absolute; right:38px; bottom:46px; display:flex; align-items:center; gap:9px; color:#e7c8a3; font-family:'Playfair Display',serif; font-style:italic; line-height:1.05; font-size:13px; }.hero-stamp svg { color:#e7c8a3; }
.section-pad { padding:125px 0; }.intro { background:var(--paper); }.intro-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:100px; }.intro h2,.section-heading h2,.story h2,.values h2,.map-copy h2,.contact h2 { margin:24px 0 0; font-size:clamp(42px, 5vw, 68px); }.intro-text { align-self:end; max-width:420px; color:var(--muted); font-size:16px; }.intro-text p { margin-bottom:20px; }.text-link { display:inline-flex; align-items:center; gap:10px; border-bottom:1px solid var(--ink); padding-bottom:5px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }.text-link svg { transition:transform .2s; }.text-link:hover svg { transform:translate(3px,-3px); }
.section-tint { background:var(--sand); }.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:60px; margin-bottom:55px; }.heading-note { max-width:280px; color:var(--muted); font-size:14px; line-height:1.6; }.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }.service-card { position:relative; min-height:280px; padding:28px 28px 24px; background:var(--sand); transition:background .3s var(--ease), transform .3s var(--ease); }.service-card:hover { background:var(--paper); transform:translateY(-4px); z-index:1; box-shadow:0 12px 30px rgba(48,44,35,.1); }.service-top { display:flex; justify-content:space-between; align-items:center; }.service-icon { display:grid; place-items:center; width:43px; height:43px; border:1px solid var(--accent); color:var(--accent); }.service-number { color:var(--muted); font-size:10px; letter-spacing:.1em; }.service-card h3 { max-width:230px; margin:47px 0 12px; font-family:'Playfair Display',serif; font-size:24px; font-weight:500; line-height:1.1; }.service-card p { max-width:270px; margin:0; color:var(--muted); font-size:13px; line-height:1.55; }.service-card>a { position:absolute; right:27px; bottom:25px; color:var(--accent); }
.story { background:var(--paper); }.story-grid { display:grid; grid-template-columns:1fr 1fr; gap:110px; align-items:center; }.story-image-wrap { position:relative; padding-bottom:42px; }.story-image-wrap img { width:100%; height:610px; object-fit:cover; object-position:center; }.story-caption { position:absolute; bottom:0; left:32px; right:0; display:flex; justify-content:space-between; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.13em; }.story-copy { max-width:470px; }.story-copy>p:not(.eyebrow) { color:var(--muted); font-size:15px; }.signature { margin:30px 0; font-family:'Playfair Display',serif; font-style:italic; font-size:28px; }.signature small { display:block; margin-top:2px; color:var(--muted); font-family:'DM Sans',sans-serif; font-size:10px; font-style:normal; text-transform:uppercase; letter-spacing:.12em; }
.section-dark { background:var(--dark); color:white; }.light-heading .heading-note { color:rgba(255,255,255,.57); }.portfolio h2 { color:white; }.gallery-grid { display:grid; grid-template-columns:1.02fr .98fr 1.07fr; grid-template-rows:260px 220px; gap:12px; }.gallery-item { position:relative; overflow:hidden; margin:0; }.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }.gallery-item:hover img { transform:scale(1.045); }.gallery-item:after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(15,15,14,.72)); }.gallery-item figcaption { position:absolute; right:18px; bottom:16px; left:18px; z-index:1; display:flex; justify-content:space-between; align-items:center; color:white; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }.gallery-1 { grid-row:span 2; }.gallery-2 { grid-column:span 2; }.gallery-3 img { object-position:center 35%; }.gallery-5 { grid-column:2 / 4; }
.values { background:var(--paper); }.values .container { display:grid; grid-template-columns:1fr 1.1fr; gap:120px; }.value-list { border-top:1px solid var(--line); }.value-row { display:grid; grid-template-columns:45px 1fr 22px; align-items:center; gap:10px; min-height:70px; border-bottom:1px solid var(--line); }.value-row span { color:var(--accent); font-size:10px; }.value-row strong { font-family:'Playfair Display',serif; font-size:22px; font-weight:500; }.value-row svg { color:var(--accent); }
.map-section { padding:0 0 125px; background:var(--paper); }.map-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:75px; align-items:center; }.map-copy { max-width:330px; }.map-copy>p:not(.eyebrow) { color:var(--muted); }.map-frame { height:440px; background:#ddd; filter:grayscale(.2); }.map-frame iframe { width:100%; height:100%; border:0; }
.contact { position:relative; }.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:120px; align-items:start; }.contact h2 { color:white; }.contact-copy>p:not(.eyebrow) { max-width:380px; color:rgba(255,255,255,.6); margin-top:28px; }.contact-links { display:grid; grid-template-columns:1fr 1fr; gap:25px 30px; margin-top:50px; }.contact-links a,.contact-links>div { display:flex; gap:12px; color:#dfc09a; font-size:13px; }.contact-links span { color:white; }.contact-links small { display:block; margin-top:3px; color:rgba(255,255,255,.45); font-size:10px; }.form-card { background:#f4f1eb; padding:38px; color:var(--ink); }.form-heading { border-bottom:1px solid var(--line); margin-bottom:25px; padding-bottom:18px; }.form-heading span { color:var(--accent); font-size:10px; }.form-heading h3 { margin:5px 0 0; font-family:'Playfair Display',serif; font-size:29px; font-weight:500; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:17px; }form label { display:block; margin-bottom:17px; color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }input,textarea { display:block; width:100%; margin-top:7px; padding:12px 0; border:0; border-bottom:1px solid #c9c3b8; border-radius:0; background:transparent; color:var(--ink); font:14px 'DM Sans',sans-serif; outline:none; }input:focus,textarea:focus { border-color:var(--accent); }textarea { resize:vertical; }.form-submit { width:100%; margin-top:7px; border:0; }.form-note { margin:13px 0 0; color:var(--muted); font-size:10px; text-align:center; }.form-success { display:none; text-align:center; padding:70px 20px; }.form-success svg { margin:auto; color:var(--accent); }.form-success h3 { margin:20px 0 7px; font-family:'Playfair Display',serif; font-size:32px; font-weight:500; }.form-success p { color:var(--muted); }
.site-footer { padding:45px 0 25px; background:#201f1d; color:white; }.footer-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:45px; }.footer-brand { color:white; }.footer-top>p { margin:0; color:rgba(255,255,255,.55); font-family:'Playfair Display',serif; font-style:italic; line-height:1.3; }.back-top { display:flex; align-items:center; gap:8px; color:#dfc09a; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }.footer-bottom { display:flex; justify-content:space-between; padding-top:18px; border-top:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.4); font-size:9px; letter-spacing:.05em; text-transform:uppercase; }.mobile-call { display:none; }
@keyframes bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }
@media (max-width:800px) { .container{width:min(100% - 38px, 600px)}.site-header{height:70px;padding:0 19px}.menu-toggle{display:block}.main-nav{position:absolute;top:70px;left:0;right:0;display:none;padding:15px 19px 23px;background:rgba(246,244,239,.98);color:var(--ink);box-shadow:0 15px 25px rgba(0,0,0,.1)}.main-nav.nav-open{display:grid;gap:0}.main-nav a{padding:12px 0;border-bottom:1px solid var(--line)}.nav-phone{justify-content:center;border:0!important;margin:8px 0 0!important;background:var(--dark);color:white!important}.hero{min-height:690px;background-position:62% center}.hero-content{padding-top:100px}.hero-stamp{right:20px;bottom:30px}.scroll-cue{bottom:-125px}.section-pad{padding:83px 0}.intro-grid,.story-grid,.values .container,.map-grid,.contact-grid{grid-template-columns:1fr;gap:45px}.intro-text{max-width:100%}.section-heading{display:block;margin-bottom:35px}.heading-note{margin-top:22px}.service-grid{grid-template-columns:1fr}.service-card{min-height:240px}.story-image-wrap img{height:440px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:200px 170px 200px}.gallery-1{grid-row:span 2}.gallery-2{grid-column:auto}.gallery-3{grid-column:1 / 3}.gallery-5{grid-column:1 / 3}.map-section{padding-bottom:83px}.map-frame{height:330px}.contact-grid{gap:45px}.contact-links{grid-template-columns:1fr}.form-card{padding:25px 20px}.footer-top,.footer-bottom{display:grid;gap:24px}.footer-bottom{grid-template-columns:1fr}.mobile-call{position:fixed;z-index:19;right:15px;bottom:15px;display:flex;align-items:center;gap:8px;padding:13px 17px;background:var(--accent);color:white;box-shadow:0 8px 20px rgba(0,0,0,.2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em} }
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.error-message{color:#b45748;margin-top:5px;font-size:11px;letter-spacing:0;text-transform:none;font-weight:400;animation:fadeIn .3s ease}.form-success{animation:fadeIn .3s ease}
