:root {
  --forest: #17352c;
  --forest-2: #21483c;
  --ink: #1f2824;
  --muted: #66716c;
  --cream: #f2eee6;
  --paper: #faf8f3;
  --sand: #ded5c6;
  --copper: #b77b52;
  --white: #ffffff;
  --line: rgba(31, 40, 36, 0.16);
  --light-line: rgba(255,255,255,0.22);
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --ease: cubic-bezier(.2,.75,.25,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--forest); color: var(--cream); }

.skip-link {
  position: fixed;
  left: 18px;
  top: 18px;
  z-index: 999;
  padding: 10px 14px;
  background: var(--white);
  transform: translateY(-150%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

.shell { width: min(1240px, calc(100% - 56px)); margin-inline: auto; }
.section { padding: 132px 0; }
.section-small { padding: 88px 0; }

.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 11px;
  font-weight: 600;
  color: var(--forest);
  margin-bottom: 20px;
}
.eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
}
.eyebrow.light { color: rgba(255,255,255,.78); }

h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { font-weight: 400; }
h1,h2 { font-family: var(--serif); letter-spacing: -.025em; }
h1 em, h2 em { font-weight: 400; color: var(--copper); }
h1 { font-size: clamp(4.25rem, 7vw, 7.75rem); line-height: .92; margin-bottom: 30px; }
h2 { font-size: clamp(3rem, 5vw, 5.6rem); line-height: .98; margin-bottom: 0; }
h3 { margin-bottom: 0; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 54px;
  padding: 0 24px;
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
  transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 44px; padding: 0 18px; background: var(--forest); color: var(--white); }
.button-cream { background: var(--cream); color: var(--ink); }
.button-cream:hover { background: var(--white); }
.button-dark { background: var(--forest); color: var(--white); }
.button-dark:hover { background: var(--forest-2); }
.button-outline-light { border-color: rgba(255,255,255,.34); color: var(--white); }
.button-outline-light:hover { background: var(--white); color: var(--forest); border-color: var(--white); }

.text-link {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(31,40,36,.3);
  transition: gap .25s var(--ease), border-color .25s ease;
}
.text-link:hover { gap: 18px; border-color: var(--ink); }
.light-link { border-color: rgba(255,255,255,.4); }

/* Header */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  color: var(--white);
  transition: background .3s ease, color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.site-header.scrolled {
  background: rgba(250,248,243,.94);
  backdrop-filter: blur(18px);
  color: var(--ink);
  box-shadow: 0 1px 0 rgba(31,40,36,.09);
}
.header-inner { height: 88px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; }
.brand-mark { width: 34px; height: 34px; display: inline-flex; }
.brand-mark svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.brand-name { font-family: var(--serif); font-size: 25px; letter-spacing: -.02em; line-height: 1; }
.brand-name em { font-style: italic; color: var(--copper); }
.site-nav { display: flex; align-items: center; gap: 30px; font-size: 12px; font-weight: 500; }
.site-nav a { position: relative; }
.site-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-6px; height:1px; background: currentColor; transition:right .25s var(--ease); }
.site-nav a:hover::after { right:0; }
.header-cta { justify-self: end; }
.site-header:not(.scrolled) .header-cta { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.28); }
.site-header:not(.scrolled) .header-cta:hover { background: var(--white); color: var(--forest); }
.menu-toggle { display:none; background:transparent; border:0; width:42px; height:42px; padding:0; position:relative; color:inherit; }
.menu-toggle span { position:absolute; left:9px; right:9px; height:1px; background: currentColor; transition: transform .25s ease, top .25s ease; }
.menu-toggle span:first-child { top:17px; }
.menu-toggle span:last-child { top:24px; }
.menu-toggle.active span:first-child { top:21px; transform: rotate(45deg); }
.menu-toggle.active span:last-child { top:21px; transform: rotate(-45deg); }

/* Hero */
.hero { min-height: 860px; height: 100svh; position: relative; display: flex; align-items: end; color: var(--white); overflow: hidden; }
.hero-media {
  position: absolute; inset: 0;
  background-image: url('https://images.unsplash.com/photo-1748063578185-3d68121b11ff?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=2400');
  background-size: cover;
  background-position: center 56%;
  transform: scale(1.02);
}
.hero-overlay { position:absolute; inset:0; background: linear-gradient(90deg, rgba(7,19,15,.76) 0%, rgba(7,19,15,.48) 43%, rgba(7,19,15,.16) 72%), linear-gradient(0deg, rgba(7,19,15,.42), transparent 44%); }
.hero-grid { position:relative; z-index:2; padding-bottom:76px; display:grid; grid-template-columns:minmax(0, 780px) 310px; gap:120px; align-items:end; }
.hero-copy p { max-width: 640px; color: rgba(255,255,255,.82); font-size: 18px; line-height:1.65; margin-bottom:38px; }
.hero-actions { display:flex; align-items:center; gap:28px; }
.hero-card { border-top:1px solid rgba(255,255,255,.35); padding-top:20px; }
.hero-card-kicker { font-size:11px; text-transform:uppercase; letter-spacing:.14em; opacity:.72; }
.hero-card p { font-family: var(--serif); font-size:28px; line-height:1.1; margin:18px 0 26px; }
.hero-card-rule { height:1px; background:rgba(255,255,255,.2); margin-bottom:16px; }
.hero-card > span:last-child { font-size:12px; opacity:.72; }

/* Trust */
.trust-strip { background: var(--forest); color: var(--white); }
.trust-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.trust-grid > div { display:grid; grid-template-columns:36px 1fr; gap:20px; align-items:start; min-height:118px; padding:30px 34px; border-left:1px solid var(--light-line); }
.trust-grid > div:last-child { border-right:1px solid var(--light-line); }
.trust-grid span { font-family:var(--serif); color:var(--copper); font-size:18px; }
.trust-grid p { margin:0; font-size:13px; color:rgba(255,255,255,.76); max-width:260px; }

/* Intro */
.intro { display:grid; grid-template-columns:1.35fr .65fr; gap:110px; align-items:end; }
.intro h2 { max-width:800px; }
.intro-copy { max-width:470px; padding-bottom:6px; }
.intro-copy p { font-size:17px; color:var(--muted); margin-bottom:30px; }

/* Services */
.services { background: var(--cream); }
.section-heading { display:grid; grid-template-columns:1fr 420px; gap:100px; align-items:end; margin-bottom:70px; }
.section-heading p { margin:0; color:var(--muted); }
.service-list { border-top:1px solid var(--line); }
.service-row { display:grid; grid-template-columns:70px 1.15fr 1fr 56px; gap:28px; align-items:center; min-height:160px; border-bottom:1px solid var(--line); transition:padding .28s var(--ease), background .28s ease; }
.service-row:hover { padding-left:16px; }
.service-number { font-family:var(--serif); color:var(--copper); font-size:18px; }
.service-title h3 { font-family:var(--serif); font-size:38px; line-height:1; }
.service-copy p { margin:0; color:var(--muted); font-size:14px; max-width:470px; }
.round-arrow { width:48px; height:48px; border:1px solid var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; transition: background .25s ease, color .25s ease, transform .25s var(--ease); }
.service-row:hover .round-arrow { background:var(--forest); color:white; transform:rotate(45deg); }

/* Statement */
.statement { background: var(--forest); color:var(--white); }
.statement-inner { display:flex; align-items:flex-start; gap:38px; }
.statement-mark { font-family:var(--serif); font-size:108px; line-height:.7; color:var(--copper); }
.statement p { font-family:var(--serif); font-size:clamp(2.4rem,5vw,5.4rem); line-height:1.02; margin:0; max-width:1000px; }
.statement em { color:var(--copper); }

/* Inspiration */
.inspiration { background:var(--paper); }
.inspiration-heading { margin-bottom:58px; }
.project-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:22px; align-items:start; }
.project { margin:0; }
.project-image { height:470px; background-size:cover; background-position:center; overflow:hidden; filter:saturate(.85); transition: filter .35s ease, transform .35s var(--ease); }
.project:hover .project-image { filter:saturate(1); }
.project-large .project-image { height:620px; }
.project-wide { margin-top:-95px; }
.project-wide .project-image { height:520px; }
.image-kitchen { background-image:url('https://images.unsplash.com/photo-1772567732969-c1506edf80a0?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=1800'); }
.image-bath { background-image:url('https://images.unsplash.com/photo-1770941450515-50f2b8ca380b?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=1600'); background-position:center 46%; }
.image-living { background-image:url('https://images.unsplash.com/photo-1758957701419-2c6e266f7988?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=1800'); }
.image-exterior { background-image:url('https://images.unsplash.com/photo-1748063578185-3d68121b11ff?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=2000'); background-position:center 50%; }
.project figcaption { display:grid; grid-template-columns:32px 1fr auto; gap:16px; padding:18px 0 36px; align-items:start; }
.project figcaption > span:first-child { font-family:var(--serif); color:var(--copper); }
.project figcaption strong { display:block; font-family:var(--serif); font-size:24px; font-weight:400; line-height:1.1; }
.project figcaption small { color:var(--muted); font-size:12px; }
.caption-arrow { font-size:18px; transition:transform .25s var(--ease); }
.project:hover .caption-arrow { transform:translate(3px,-3px); }
.photo-note { margin:28px 0 0; color:var(--muted); font-size:11px; border-top:1px solid var(--line); padding-top:16px; }

/* Process */
.process { background:var(--forest); color:var(--white); }
.process-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:130px; align-items:start; }
.process-sticky { position:sticky; top:130px; }
.process-sticky h2 { max-width:520px; margin-bottom:30px; }
.process-sticky p { color:rgba(255,255,255,.68); max-width:470px; margin-bottom:34px; }
.steps { border-top:1px solid var(--light-line); }
.step { display:grid; grid-template-columns:58px 1fr; gap:28px; padding:40px 0 46px; border-bottom:1px solid var(--light-line); }
.step-number { font-family:var(--serif); color:var(--copper); font-size:18px; }
.step h3 { font-family:var(--serif); font-size:42px; margin-bottom:12px; }
.step p { color:rgba(255,255,255,.65); margin:0; max-width:600px; font-size:14px; }

/* Craft */
.craft-grid { display:grid; grid-template-columns:1fr .88fr; gap:100px; align-items:center; }
.craft-image { min-height:690px; background-image:linear-gradient(0deg, rgba(23,53,44,.08), rgba(23,53,44,.08)), url('https://images.unsplash.com/photo-1673190889421-c02cccd99e2f?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=1800'); background-size:cover; background-position:center; }
.craft-copy h2 { margin-bottom:28px; }
.craft-copy .lead { font-family:var(--serif); font-size:30px; line-height:1.2; max-width:560px; margin-bottom:38px; }
.craft-copy .lead em { color:var(--copper); }
.benefit-list { border-top:1px solid var(--line); }
.benefit-list > div { display:grid; grid-template-columns:38px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
.benefit-list span { font-family:var(--serif); color:var(--copper); }
.benefit-list p { margin:0; color:var(--muted); font-size:14px; }
.benefit-list strong { color:var(--ink); font-weight:600; }

/* Fit */
.fit { background:var(--cream); }
.fit-card { background:var(--paper); border:1px solid var(--line); padding:58px; display:grid; grid-template-columns:1.1fr .75fr auto; gap:54px; align-items:center; }
.fit-card h2 { font-size:clamp(2.6rem,4vw,4.7rem); }
.fit-card p { margin:0; color:var(--muted); font-size:14px; }
.fit-card .button { white-space:nowrap; }

/* Contact */
.contact { background:var(--paper); }
.contact-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:110px; align-items:start; }
.contact-copy { position:sticky; top:130px; }
.contact-copy h2 { max-width:520px; margin-bottom:28px; }
.contact-copy > p { color:var(--muted); max-width:470px; margin-bottom:46px; }
.contact-details { border-top:1px solid var(--line); }
.contact-details > div { display:grid; grid-template-columns:110px 1fr; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.contact-details span { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }
.contact-details p { margin:0; font-size:13px; }
.project-form { background:var(--cream); padding:46px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.project-form label { display:block; margin-bottom:24px; }
.project-form label > span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.12em; margin-bottom:9px; color:var(--muted); }
.project-form input, .project-form select, .project-form textarea { width:100%; border:0; border-bottom:1px solid rgba(31,40,36,.25); background:transparent; border-radius:0; padding:12px 0 13px; color:var(--ink); outline:none; transition:border-color .2s ease; }
.project-form textarea { resize:vertical; min-height:130px; }
.project-form input:focus, .project-form select:focus, .project-form textarea:focus { border-color:var(--forest); }
.project-form input::placeholder, .project-form textarea::placeholder { color:#909792; }
.form-footer { display:flex; align-items:center; gap:22px; margin-top:10px; }
.form-footer p { margin:0; font-size:12px; color:var(--muted); }

/* Footer */
.site-footer { background:#10251f; color:var(--white); padding:76px 0 30px; }
.footer-top { display:grid; grid-template-columns:1fr 1fr auto; gap:50px; align-items:start; padding-bottom:70px; }
.footer-brand .brand-name { font-size:32px; }
.footer-top > p { font-family:var(--serif); font-size:38px; line-height:1.05; margin:0; }
.footer-links { display:grid; gap:10px; font-size:13px; color:rgba(255,255,255,.7); }
.footer-links a:hover { color:var(--white); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.16); padding-top:22px; display:flex; justify-content:space-between; gap:30px; font-size:11px; color:rgba(255,255,255,.5); }
.footer-bottom a:hover { color:var(--white); }

/* Motion */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in-view { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.10s; }
.reveal-delay-2 { transition-delay:.20s; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
  .reveal { opacity:1; transform:none; }
}

/* Responsive */
@media (max-width: 1050px) {
  .shell { width:min(100% - 40px, 1240px); }
  .site-nav { gap:18px; }
  .hero-grid { grid-template-columns:1fr 260px; gap:70px; }
  .section-heading { grid-template-columns:1fr 340px; gap:60px; }
  .service-row { grid-template-columns:52px 1fr .9fr 48px; }
  .process-grid, .craft-grid, .contact-grid { gap:70px; }
  .fit-card { grid-template-columns:1fr .75fr; }
  .fit-card .button { grid-column:1 / -1; width:max-content; }
}

@media (max-width: 820px) {
  .section { padding:92px 0; }
  .section-small { padding:64px 0; }
  .header-inner { grid-template-columns:1fr auto; height:74px; }
  .menu-toggle { display:block; justify-self:end; z-index:3; }
  .header-cta { display:none; }
  .site-nav { position:fixed; inset:0; background:var(--paper); color:var(--ink); padding:120px 28px 40px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; transform:translateX(100%); transition:transform .35s var(--ease); z-index:2; }
  .site-nav.open { transform:none; }
  .site-nav a { font-family:var(--serif); font-size:42px; line-height:1.2; width:100%; padding:10px 0; border-bottom:1px solid var(--line); }
  .site-nav a::after { display:none; }
  .site-header.menu-open { color:var(--ink); }
  .hero { min-height:780px; height:100svh; }
  .hero-grid { grid-template-columns:1fr; gap:34px; padding-bottom:42px; }
  .hero-copy p { max-width:600px; font-size:16px; }
  .hero-card { display:none; }
  .hero-overlay { background:linear-gradient(90deg,rgba(7,19,15,.75),rgba(7,19,15,.28)), linear-gradient(0deg,rgba(7,19,15,.42),transparent 55%); }
  .trust-grid { grid-template-columns:1fr; padding:16px 0; }
  .trust-grid > div { min-height:auto; border:0; border-bottom:1px solid var(--light-line); padding:18px 4px; }
  .trust-grid > div:last-child { border-right:0; border-bottom:0; }
  .intro, .section-heading, .process-grid, .craft-grid, .contact-grid { grid-template-columns:1fr; gap:44px; }
  .section-heading { margin-bottom:48px; }
  .section-heading p { max-width:620px; }
  .service-row { grid-template-columns:42px 1fr 48px; gap:18px; padding:28px 0; }
  .service-copy { grid-column:2 / -1; }
  .service-row:hover { padding-left:0; }
  .service-title h3 { font-size:32px; }
  .project-grid { grid-template-columns:1fr; gap:6px; }
  .project-wide { margin-top:0; }
  .project-image, .project-large .project-image, .project-wide .project-image { height:480px; }
  .process-sticky, .contact-copy { position:static; }
  .craft-image { min-height:520px; order:2; }
  .craft-copy { order:1; }
  .fit-card { grid-template-columns:1fr; padding:38px; gap:28px; }
  .fit-card .button { grid-column:auto; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-links { grid-column:2; }
  .footer-bottom { flex-wrap:wrap; }
}

@media (max-width: 560px) {
  .shell { width:calc(100% - 32px); }
  h1 { font-size:clamp(3.5rem,17vw,5.1rem); }
  h2 { font-size:clamp(2.7rem,13vw,4rem); }
  .hero { min-height:720px; }
  .hero-media { background-position:62% center; }
  .hero-actions { flex-direction:column; align-items:flex-start; gap:20px; }
  .hero-copy p { font-size:15px; }
  .statement-inner { gap:18px; }
  .statement-mark { font-size:68px; }
  .service-row { grid-template-columns:36px 1fr 42px; }
  .service-title h3 { font-size:28px; }
  .round-arrow { width:40px; height:40px; }
  .project-image, .project-large .project-image, .project-wide .project-image { height:360px; }
  .project figcaption { grid-template-columns:28px 1fr auto; gap:10px; }
  .project figcaption strong { font-size:21px; }
  .craft-image { min-height:420px; }
  .project-form { padding:28px 22px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .form-footer { align-items:flex-start; flex-direction:column; }
  .footer-top { grid-template-columns:1fr; }
  .footer-top > p { font-size:32px; }
  .footer-links { grid-column:auto; }
  .footer-bottom { flex-direction:column; gap:10px; }
}


/* Multi-page additions */
.visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.inner-page .site-header { color: var(--white); }
.inner-page .site-header.scrolled { color: var(--ink); }
.page-hero { position:relative; min-height:640px; display:flex; align-items:flex-end; color:var(--white); background-size:cover; background-position:center; }
.page-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,19,15,.78),rgba(7,19,15,.27)),linear-gradient(0deg,rgba(7,19,15,.52),transparent 56%); }
.page-hero-content { position:relative; z-index:1; padding-bottom:76px; max-width:900px; }
.page-hero-content h1 { max-width:880px; margin-bottom:22px; }
.page-hero-content p { max-width:640px; margin:0; color:rgba(255,255,255,.82); font-size:18px; }
.page-hero-services { background-image:url('https://images.unsplash.com/photo-1673190889421-c02cccd99e2f?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=2200'); }
.page-hero-projects { background-image:url('https://images.unsplash.com/photo-1772567732969-c1506edf80a0?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=2200'); }
.page-hero-about { background-image:url('https://images.unsplash.com/photo-1748063578185-3d68121b11ff?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=2200'); }
.page-hero-contact { background-image:url('https://images.unsplash.com/photo-1758957701419-2c6e266f7988?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=2200'); }
.page-intro { max-width:1000px; }
.page-intro h2 { margin-bottom:28px; }
.large-copy { max-width:800px; font-size:20px; color:var(--muted); }
.section-link-row { padding-top:36px; display:flex; justify-content:flex-end; }

.home-showcase { background:var(--paper); }
.feature-collage { display:grid; grid-template-columns:1.05fr .95fr; gap:22px; }
.feature-image { position:relative; min-height:620px; background-size:cover; background-position:center; overflow:hidden; }
.feature-image::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,22,17,.55),transparent 42%); }
.feature-image span { position:absolute; left:28px; bottom:24px; z-index:2; color:#fff; font-family:var(--serif); font-size:34px; }
.feature-image-kitchen { background-image:url('https://images.unsplash.com/photo-1772567732969-c1506edf80a0?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=1800'); }
.feature-image-exterior { background-image:url('https://images.unsplash.com/photo-1748063578185-3d68121b11ff?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=1800'); min-height:520px; margin-top:100px; }

.reviews { background:var(--cream); }
.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.review-card { background:var(--paper); border:1px solid var(--line); padding:34px; min-height:290px; display:flex; flex-direction:column; }
.review-label { text-transform:uppercase; letter-spacing:.12em; color:var(--copper); font-size:10px; font-weight:600; margin-bottom:28px; }
.review-card blockquote { margin:0; font-family:var(--serif); font-size:29px; line-height:1.18; flex:1; }
.review-source { margin:28px 0 0; border-top:1px solid var(--line); padding-top:18px; color:var(--muted); font-size:11px; }

.service-detail { background:var(--paper); }
.service-detail.alt { background:var(--cream); }
.service-detail-grid { display:grid; grid-template-columns:1.02fr .98fr; gap:96px; align-items:center; }
.service-detail-grid.reverse .service-detail-image { order:2; }
.service-detail-grid.reverse .service-detail-copy { order:1; }
.service-detail-image { min-height:620px; background-size:cover; background-position:center; }
.addition-image { background-image:url('https://images.unsplash.com/photo-1748063578185-3d68121b11ff?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=82&w=1800'); }
.service-index { font-family:var(--serif); font-size:20px; color:var(--copper); }
.service-detail-copy h2 { margin:14px 0 28px; }
.service-detail-copy > p { font-size:17px; color:var(--muted); max-width:560px; }
.feature-list { list-style:none; padding:0; margin:30px 0 34px; border-top:1px solid var(--line); }
.feature-list li { padding:13px 0; border-bottom:1px solid var(--line); position:relative; padding-left:28px; }
.feature-list li::before { content:"✓"; position:absolute; left:0; color:var(--forest); font-weight:600; }

.portfolio-note { margin-top:54px; border:1px solid var(--line); padding:32px; display:grid; grid-template-columns:260px 1fr; gap:40px; align-items:start; }
.portfolio-note strong { font-family:var(--serif); font-size:28px; font-weight:400; }
.portfolio-note p { margin:0; color:var(--muted); }

.principles { background:var(--cream); }
.principle-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.principle-card { padding:40px; min-height:300px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.principle-card > span { font-family:var(--serif); color:var(--copper); }
.principle-card h3 { font-family:var(--serif); font-size:34px; margin:32px 0 16px; }
.principle-card p { color:var(--muted); margin:0; }

.map-section { background:var(--cream); }
.map-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:70px; align-items:center; }
.map-copy h2 { margin-bottom:28px; }
.map-copy > p { color:var(--muted); }
.map-copy code { font-size:.92em; background:rgba(23,53,44,.07); padding:2px 5px; }
.map-config { margin-top:32px; padding-top:18px; border-top:1px solid var(--line); }
.map-config span { display:block; text-transform:uppercase; letter-spacing:.12em; font-size:10px; color:var(--muted); margin-bottom:6px; }
.map-config strong { font-weight:500; }
.map-frame { min-height:520px; border:1px solid var(--line); background:#ddd; }
.map-frame iframe { width:100%; min-height:520px; height:100%; border:0; display:block; }
.launch-note { background:var(--forest); color:#fff; }
.launch-card { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; }
.launch-card .eyebrow { color:rgba(255,255,255,.7); }
.launch-card h2 { font-size:clamp(2.7rem,4.5vw,5rem); }
.launch-card p { margin:0; color:rgba(255,255,255,.68); }

@media (max-width: 900px) {
  .review-grid, .principle-grid { grid-template-columns:1fr; }
  .service-detail-grid, .service-detail-grid.reverse, .map-grid, .launch-card { grid-template-columns:1fr; gap:44px; }
  .service-detail-grid.reverse .service-detail-image, .service-detail-grid.reverse .service-detail-copy { order:initial; }
  .service-detail-image { min-height:500px; }
  .feature-collage { grid-template-columns:1fr; }
  .feature-image, .feature-image-exterior { min-height:470px; margin-top:0; }
  .portfolio-note { grid-template-columns:1fr; gap:14px; }
}
@media (max-width: 560px) {
  .page-hero { min-height:610px; }
  .page-hero-content { padding-bottom:42px; }
  .page-hero-content p { font-size:15px; }
  .service-detail-image { min-height:360px; }
  .review-card, .principle-card { padding:28px; }
  .review-card blockquote { font-size:25px; }
  .map-frame, .map-frame iframe { min-height:390px; }
}
