@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&display=swap');
:root{--ink:#27302b;--cream:#f4f0e9;--sage:#aab6a3;--rust:#a25b3f;--line:#d8d4cb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:15px 'DM Sans',sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--cream);padding:10px 16px;z-index:10}.skip-link:focus{left:8px}.site-header{height:88px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;font-size:20px;line-height:1;font-weight:600;letter-spacing:-.05em}.brand em{font:italic 16px 'Playfair Display',serif;font-weight:400;letter-spacing:0;margin-left:26px;margin-top:4px}nav{display:flex;gap:27px;align-items:center;text-transform:uppercase;font-size:10px;letter-spacing:.1em}nav a:hover,nav a:focus-visible{opacity:.6}.nav-cta{border:1px solid var(--ink);padding:11px 16px;border-radius:30px}.menu{display:none;background:0;border:0;font-size:22px;color:var(--ink)}.button{border:0;border-radius:30px;padding:15px 21px;font:600 11px 'DM Sans';letter-spacing:.08em;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center}.button span,.text-link span{font-size:18px;line-height:0;margin-left:10px}.dark{background:var(--ink);color:var(--cream)}.light{background:var(--cream);color:var(--ink)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:600;color:var(--rust);margin:0 0 23px}h1,h2{font-weight:400;line-height:1;letter-spacing:-.07em}h1 i,h2 i{font-family:'Playfair Display',serif;letter-spacing:-.05em}.hero{min-height:590px;display:grid;grid-template-columns:50% 50%;position:relative;padding:7vw 6vw 5vw}.hero-copy{align-self:center;padding-bottom:35px}.hero h1{font-size:clamp(55px,7vw,105px);margin:0 0 27px;max-width:700px}.intro{font-size:18px;max-width:380px;margin:0 0 35px}.hero-image{height:520px;max-width:520px;margin-left:auto}.hero-note{position:absolute;bottom:8%;left:6%;font-size:11px;color:var(--rust)}.hero-note span{color:var(--ink);margin-left:25px;text-transform:uppercase;letter-spacing:.1em}.statement,.contact,.services,.content-section,.about{padding:10vw 6vw}.statement{background:var(--sage);display:grid;grid-template-columns:1fr 1fr;gap:20px}.statement h2,.section-top h2,.services h2,.about h2,.contact h2,.content-section h1{font-size:clamp(42px,5vw,72px);margin:0}.statement>p:last-child{align-self:end;max-width:370px;font-size:17px}.work{padding:clamp(72px,10vw,144px) 6vw}.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.section-top h2{line-height:1.08;padding-top:.08em;overflow:visible}.section-desc{max-width:260px;margin:0}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.gallery figure,.gallery .tall,.gallery .wide{height:auto;margin:0;display:flex;flex-direction:column}.gallery .image-placeholder{aspect-ratio:4 / 3;height:auto;min-height:0;flex:none}.gallery figcaption{display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:.12em;font-size:10px;padding-top:13px}.gallery figcaption span{color:var(--rust)}.services{background:#e6ded4;display:grid;grid-template-columns:45% 55%;gap:5vw}.service-list{border-top:1px solid #c9c0b7}.service-list article{display:grid;grid-template-columns:70px 1fr;gap:20px;border-bottom:1px solid #c9c0b7;padding:24px 0}.service-list article>span{color:var(--rust);font-size:11px}.service-list h3{font:26px 'Playfair Display';margin:0}.service-list p{margin:5px 0;max-width:390px}.about{display:grid;grid-template-columns:45% 45%;justify-content:space-between;align-items:center}.about-photo{height:600px}.about-copy{max-width:470px}.about-copy>p:not(.eyebrow){margin:32px 0;font-size:17px}.text-link{font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:11px;border-bottom:1px solid;padding-bottom:7px}.content-section{max-width:1100px;margin:auto}.content-section .lead{font-size:20px;max-width:620px;margin:30px 0 70px}.content-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:6vw;align-items:start}.content-grid h2{font-size:42px;margin:0 0 24px}.content-grid p{max-width:520px}.content-image{height:530px}.related{background:#e6ded4;padding:7vw 6vw}.related h2{font-size:42px;margin:0 0 30px}.related-links{display:flex;flex-wrap:wrap;gap:12px}.related-links a{border:1px solid var(--ink);border-radius:30px;padding:12px 18px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.contact{background:var(--ink);color:var(--cream);display:grid;grid-template-columns:45% 45%;justify-content:space-between}.contact .eyebrow{color:#df9a7d}.contact h2{margin-bottom:28px}.contact>div>p:last-child{max-width:310px;color:#b5bcb4}.contact form{display:grid;grid-template-columns:1fr 1fr;gap:22px 17px}.contact label{font-size:11px;text-transform:uppercase;letter-spacing:.1em}.contact input,.contact select,.contact textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #66716a;color:var(--cream);padding:13px 0;font:15px 'DM Sans';outline:0}.contact textarea{resize:vertical}.contact select option{color:var(--ink)}.contact input:focus,.contact select:focus,.contact textarea:focus{border-color:var(--cream)}.contact label:nth-of-type(3),.contact label:nth-of-type(4),.contact button,.form-status{grid-column:span 2}.form-status{margin:0;color:#df9a7d;font-size:12px}.contact button:disabled{opacity:.5}footer{padding:45px 6vw;display:grid;grid-template-columns:2fr 2fr 1fr 1fr;align-items:center;gap:20px}footer p{margin:0;color:#657068;font-size:13px}footer>a{text-transform:uppercase;letter-spacing:.1em;font-size:11px}footer small{text-align:right;color:#657068;font-size:10px}
@media(max-width:700px){.site-header{height:75px;padding:0 6vw}nav{display:none;position:absolute;top:75px;left:0;right:0;background:var(--cream);z-index:3;padding:25px 6vw;flex-direction:column;align-items:start;border-bottom:1px solid var(--line)}nav.open{display:flex}.menu{display:block}.hero{display:flex;flex-direction:column;padding-top:16vw;min-height:0}.hero-copy{padding-bottom:45px}.hero-image{height:390px;width:88%;margin:0 0 0 auto}.hero-note{position:static;margin-top:20px}.hero-note span{margin-left:12px;font-size:9px}.statement,.services,.about,.contact{display:block;padding:18vw 6vw}.statement h2{margin-bottom:35px}.section-top{display:block;margin-bottom:38px}.section-desc{margin-top:25px}.gallery{grid-template-columns:1fr;gap:15px}.gallery figure,.gallery .tall,.gallery .wide{height:auto}.gallery .wide{grid-column:auto}.services h2{margin-bottom:50px}.about-photo{height:420px;margin-bottom:55px}.contact h2{margin-bottom:22px}.contact>div{margin-bottom:60px}.contact form{display:block}.contact label{display:block;margin-bottom:25px}.contact button{margin-top:5px}.content-section{padding:18vw 6vw}.content-section .lead{margin:25px 0 50px}.content-grid{display:block}.content-grid h2{font-size:38px;margin-top:45px}.content-image{height:390px}footer{display:block;padding:40px 6vw}footer p{margin:25px 0}footer>a{display:block;margin-bottom:25px}footer small{display:block;text-align:left}}
/* Intentional frames keep unpublished portfolio images honest and on-brand. */
.image-placeholder{height:100%;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,var(--sage),#d8d4c7);border:1px solid #94a08f;color:var(--ink);text-align:center;padding:24px}.image-placeholder span{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:600}.image-placeholder small{font:italic 18px 'Playfair Display',serif}.price{font:600 22px 'Playfair Display',serif;margin:0 0 32px}.service-proof{padding-top:0}.testimonials{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:35px}.testimonials blockquote{margin:0;padding:25px;background:var(--sage);font:italic 20px 'Playfair Display',serif}.testimonials cite{display:block;font:11px 'DM Sans',sans-serif;font-style:normal;letter-spacing:.04em;margin-top:18px}.footer-details{display:flex;flex-direction:column;gap:2px;color:#657068;font-size:12px}.footer-details strong{color:var(--ink);font-size:13px}h1{font-size:clamp(48px,5vw,64px)!important}.content-section h1{max-width:800px}
@media(max-width:700px){.testimonials{display:block}.testimonials blockquote{margin-bottom:15px}.footer-details{margin:25px 0}}

/* ── Readability, measured ──────────────────────────────────────────────────
   The rust eyebrow on the sage panel measured 1.73:1. No shade of the brand
   hue clears 4.5:1 on sage — the darkened rust only reaches 2.42 — so this one
   eyebrow uses ink, which is 6.43:1 there. Everywhere else the panel is cream
   and the darkened rust is 4.50.
   Every figure computed from the actual hex values, not judged by eye. */
.statement .eyebrow{color:var(--ink)}
